Gas

使用 ethers.js 估算 gas 價格

  • September 13, 2021

我希望在應用程序中估算交易費用。為此,我需要在執行交易之前估計目前的 gas 價格。

我看到 web3.js 有一個getGasPrice方法: https ://web3js.readthedocs.io/en/v1.3.4/web3-eth.html#getgasprice

ethers.js 中是否有類似的方法?或者這裡推薦的方法是什麼?

找到了! https://docs.ethers.io/v5/api/providers/provider/#Provider-getGasPrice

提示:docs.ethers.io 上的搜尋功能不是很好 - 這種方法沒有通過搜尋“gasprice”來顯示: https ://docs.ethers.io/v5/search/?search=gasprice

類中有一個方法叫做estimateGasContract。如何使用它的範例:

const erc20Abi = [ /* ... */ ];
const address = "TOKEN_ADDRESS_HERE";
const provider = ethers.getDefaultProvider();
const erc20 = new ethers.Contract(address, abi, provider);

const recipient = "SOME_ADDRESS_HERE";
const estimation = await erc20.estimateGas.transfer(recipient, 100);

注意事項:

  1. 您必須連接到提供商,但幸運的是,使用該getDefaultProvider功能很容易做到這一點。
  2. 不要期望 gas 估算非常精確,尤其是當您的合約呼叫正在對其他合約進行額外呼叫時。

引用自:https://ethereum.stackexchange.com/questions/100209