Gas

尋找交易使用的gas

  • June 28, 2021

有沒有辦法在交易實際發生之前找到交易將使用的總氣體?

使用的氣體是否取決於以 kb 為單位的 tx 大小?

是的,有一種方法可以使用 web3 估算氣體消耗量。對於涉及合約函式執行的交易,您可以使用:

myContract.methods.myMethod([param1[, param2[, ...]]]).estimateGas(options[, callback])請參閱此處了解更多資訊。

對於簡單的乙太交易,您可以使用:

web3.eth.estimateGas({from: address, to: address, value: web3.toWei(1, "ether")})

有關更多資訊,請參閱此討論

至少 Metamask 有一些估計氣體使用量的功能,但它並不完美。有關此的更多資訊:MetaMask 耗氣的一般原因是什麼?

所需的氣體量取決於您要執行的操作。這樣的交易沒有“kb”大小 - 天然氣需求的計算方式不同。如果您只是發送一些 Ether,則預設為 21000,這很好。如果您正在創建合約,則需要更多的gas。關於合約gas需求的一些想法:如何在合約創建過程中最小化gas消耗

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