首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EtherJS计算煤气费太低

EtherJS计算煤气费太低
EN

Ethereum用户
提问于 2023-05-17 10:14:20
回答 1查看 94关注 0票数 1

这里的新手请耐心点。

我使用EthersJS最新v5是为了与我们的合同进行交互,到目前为止,这是很好的工作。然而,我发现,在一段时间(大约3月1日),我们的许多交易失败,因为汽油用完了。

您可以看到事务这里的列表。

据我所知,EthersJS将通过estimateGas在内部通过合同计算费用数额。至少在我们这边我们不做任何手动气体计算。

因此,我想知道为什么在某一段时间内,许多交易失败了。也许这与使用某种RPC url有关?

我想了解一下。我们称之为redeemAuto的合同方法之一如下:

代码语言:javascript
复制
 const contract = new ethers.Contract(
  contracts[contractName].address,
  contracts[contractName].abi,
  library.getSigner()
);

await contract.redeemAuto(etherToWei(amount))

所以这里没什么好想的。

谢谢

EN

回答 1

Ethereum用户

回答已采纳

发布于 2023-05-23 22:15:24

气体估计并不总是准确的,或者可能在呼叫执行时发生变化。这是一个估计。你的交易失败已经使用了98%的气体,所以你可能需要提高你的估计,给你的气体一些回旋的空间。

您可以通过提供所有必要的参数作为选项来覆盖默认的气体估计值。

与以太;

代码语言:javascript
复制
const tx = await contract.redeemAuto(amount,{value:value,gas:150000,...})

有一些工具可以评估您的交易的天然气成本,并调查为什么气体单位不同。

例如

硬质煤气记者

我怀疑您在契约中执行的循环和或具有未定义长度的数组可能会导致这种行为。

请注意,提供比所需的更多的气体单元是安全的,因为EVM永远不会对这些单元充电过高。你只会用你所需要的。(你需要有这个平衡)

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/150354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档