Web3js
如何發送更高gas價格的替換交易?
我正在使用 sendSignedTransaction 發送交易:
const tx = new Tx({ ... "gasPrice": web3.utils.toHex(41 * 1e9), ... } await web3.eth.sendSignedTransaction(serializedTx) .on('transactionHash', (hash) => { console.log('waiting....'); }) .on('receipt', (receipt) => { console.log('... Transaction validated !'); });
它工作正常。這是我想做的:
- 我想為 gasPrice 設置一個非常低的值:例如 41 gwei
- 如果交易在 15 秒後未驗證,我想將 gasPrice 增加到 51 gwei
- 等等
我怎樣才能以程式方式做到這一點?
謝謝
您可以發送相同的交易但不同
tx['gasPrice']
的交易,如果新交易具有相同tx['nonce']
的交易,那麼具有更高gas價格的交易將被礦工添加到下一個塊中,因此舊的交易將被自動丟棄。然而 15 秒是一個非常小的時間間隔,也許最好在每個新區塊重新發送交易(目前平均區塊時間約為 13 秒)將 gas 價格設置為前一個區塊 gas 價格的百分比並嘗試增加這個每個新區塊的百分比。