【发布时间】:2019-10-26 05:49:19
【问题描述】:
具体来说,我希望我的 node.js 能够将 ERC721 令牌发送到另一个钱包。有时,gas 价格很高,我的交易会卡在那里几个小时。在这些情况下,我希望我的 node.js 使用更多的气体来按时发送令牌。
我已经尝试获取最后一个区块的 gas 限制,但它似乎总是太低了。
var count = web3.eth.getTransactionCount(sender);
var rawTransaction;
var block = web3.eth.getBlock("latest");
var currGas = block.gasLimit;
currGas = currGas.toString(16);
currGas = '0x' + currGas;
if(isSending){
rawTransaction = {
"from": sender,
"nonce": web3.toHex(count),
"gasPrice": currGas,
"gasLimit": "0x3A980",
"to": skyDropContract,
"value": "0x0",
"data": myContractABI.startGame.getData(index, {from: sender}),
"chainId": 0x01
};
}
我正在使用web3@0.20.0,但如果我真的需要,可以切换版本。有没有办法在发送之前估算我的交易成本?我什至可能比当前估计的成本高出 1 gWei。
【问题讨论】:
-
您似乎混淆了gas限制和gas价格。你得到了区块的 gas 限制,并试图将其用作 gas 价格。区块气体限制是一个区块中所有交易总共可以使用多少气体。 Gas 价格是您愿意支付的每个 Gas 单位的 wei 来让您的交易被挖掘。
标签: javascript ethereum solidity web3 web3js