我目前正在升级以太坊 dApp(使用 React JS)以符合新的 EIP-1559 标准(又名伦敦硬分叉)。该应用程序使用 web3.js (v1.5.2) 发起交易,其形式类似于
const contract = new web3.eth.Contract(
contractABI,
CONTRACT_ADDRESS,
);
await contract.methods
.deposit(recepient, amount)
.send({ from: account, value })
Run Code Online (Sandbox Code Playgroud)
我们鼓励用户使用 MetaMask 与我们的应用程序交互。
尽管我在发送交易时既没有指定gasPrice、gasLimit、 也没有指定等效项maxPriorityFeePerGas或maxFeePerGas由 EIP-1559 指定,MetaMask 仍然警告(在我的本地测试环境中)“localhost 建议的汽油费”,并带有“未知的处理时间”和潜在的潜在风险。巨额费用。
单击“编辑”时会出现另一条警告消息,更糟糕的是,根据 MetaMask 的估计,我(或我猜 web3)所谓“建议”的值并不合理。
有没有办法使用 web3 与 MetaMask 接口来接受 MetaMask 的建议值,删除这些 MetaMask 警告并确保费用计算正确?我注意到查看https://app.uniswap.org/时发现,尽管 MetaMask 仍然显示第一个“app.unswap.org 建议的汽油费”警告,但 txn 时间已正确计算,并且单击“编辑”不会出现任何进一步的警告警告。Uniswap 与 MetaMask 更合理的交互是否可以使用 web3.js 复制?