Gas
使用 ethers.js 估算 gas 價格
我希望在應用程序中估算交易費用。為此,我需要在執行交易之前估計目前的 gas 價格。
我看到 web3.js 有一個
getGasPrice
方法: https ://web3js.readthedocs.io/en/v1.3.4/web3-eth.html#getgaspriceethers.js 中是否有類似的方法?或者這裡推薦的方法是什麼?
找到了! https://docs.ethers.io/v5/api/providers/provider/#Provider-getGasPrice
提示:docs.ethers.io 上的搜尋功能不是很好 - 這種方法沒有通過搜尋“gasprice”來顯示: https ://docs.ethers.io/v5/search/?search=gasprice
類中有一個方法叫做estimateGas
Contract
。如何使用它的範例: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);
注意事項:
- 您必須連接到提供商,但幸運的是,使用該
getDefaultProvider
功能很容易做到這一點。- 不要期望 gas 估算非常精確,尤其是當您的合約呼叫正在對其他合約進行額外呼叫時。