Web3js
使用 Web3 估算 Gas 價格(不是 Gas)
使用 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
.