首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ethers.js -估计气体极限

ethers.js -估计气体极限
EN

Ethereum用户
提问于 2019-11-09 02:12:48
回答 2查看 8.1K关注 0票数 2

使用ethers.js库,如何确定在向合同发送事务或部署新合同时的气体限制?

EN

回答 2

Ethereum用户

发布于 2023-01-30 08:58:19

( OP对这样一个问题发表了评论:他们正在寻找一种方法来估计气体价格,而不是气体极限,这个答案是基于这一澄清的。)

方法1

醚有一个内置的估计气体的功能:https://docs.ethers.org/v5/api/providers/provider/#Provider-estimateGas

下面是上面链接的文档片段的副本:

代码语言:javascript
复制
await provider.estimateGas({
  // Wrapped ETH address
  to: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",

  // `function deposit() payable`
  data: "0xd0e30db0",

  // 1 ether
  value: parseEther("1.0")
});
// { BigNumber: "27938" }

您需要实例化一个提供程序,还需要能够在to地址和原始数据中进行管道传输。下面是一个关于如何对原始数据进行编码的链接。这可能有点麻烦,所以如果您在合同调用中需要这样的解决方案,您可能需要继续阅读另一个潜在的解决方案。

方法2

实现契约调用的另一种方法是专门使用名为estimateGas的内置契约方法。(链接到文档,您将需要向下滚动,但它在该部分)

假设您有一个在以太内部实例化为foo的契约。如果foo有一个函数bar (其中包含0个参数),并且要估计调用bar的成本,则可以使用:

代码语言:javascript
复制
await foo.estimateGas.bar();
// { BigNumber: "34458" }

如果您对更多的数据感兴趣,而不仅仅是对气体的估计感兴趣,您可能还想看看callStatic contract (与docs在同一节中)。

票数 1
EN

Ethereum用户

发布于 2019-11-09 11:28:57

从正式文档中,请参阅部署模块中的contracts部分。本节提供了在ropsten上部署合同的示例。从契约部署哈希中,您可以了解不同的gas参数:

交易费用:0.00181826 Ether ($0.000000)

气体限制:363,652

交易使用的气体:363,652 (100%)

天然气价格:0.000000005 Ether (5 Gwei)

您可以从本期本期了解更多关于气体估计的内容。

希望能帮上忙。

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

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

复制
相关文章

相似问题

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