Web3js

使用 Web3 估算 Gas 價格(不是 Gas)

  • October 17, 2019

使用 Web3,我們能夠估計交易所需的氣體量

let estimatedGas = web3.eth.estimateGas({
   to: "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
   data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
})

contractObject.deploy().send({gas:estimatedGas, gasPrice: 2e9, ...})

**問題:**我們如何估計gasPrice要使用的值,而不是定義像 2 Gwei 這樣的靜態值?

可以使用以下程式碼計算平均 gas 價格(作為最後幾個區塊的中位數):

web3.eth.getGasPrice().then((result) => {
console.log(web3.utils.fromWei(result, 'ether'))
})

您可以通過向其 API 的此 URL 發送 GET 請求來使用ETHGasStation.info :

https://ethgasstation.info/json/ethgasAPI.json

這會產生如下響應:

{
 "average": 46,
 "fastestWait": 0.5,
 "fastWait": 0.7,
 "fast": 131,
 "safeLowWait": 2.9,
 "blockNum": 6545673,
 "avgWait": 2.6,
 "block_time": 15.095744680851064,
 "speed": 0.5118320026004425,
 "fastest": 400,
 "safeLow": 40
}

average欄位包含您應該用於平均交易等待時間的 GasPrice。safeLow包含您目前應該使用的最低價格。如果您趕時間,請使用fastest.

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