Erf*_*ina 9 node.js ethereum smartcontracts web3js binance-smart-chain
我已经在币安智能链的 Binance-Peg BUSD-T 中进行了一些交易,并且成功运行。但5次交易后。我遇到一个问题说Returned error: transaction underpriced!这是我的代码:
const web3 = new Web3('https://bsc-dataseed1.binance.org:443');
const contract = new web3.eth.Contract(abi, usdtContractAddr, {
from: 'SENDER_ADDRESS', // default from address
gasPrice: '200000000' // default gas price in wei, 20 gwei in this case
});
web3.eth.accounts.wallet.add('SENDER_PRIVATE_KEY');
const receipt = await contract.methods.transfer('TO_ADDRESS', '1000000000000000000').send({
from: 'SENDER_ADDRESS',
gas: 100000
});
Run Code Online (Sandbox Code Playgroud)
我已经将我的 Gas 增加了 10%,并添加了比通过调用 给我的值更多的随机数
web3.eth.getTransactionCount('ADDRESS')。但它们都不起作用。我曾经在 Binance-Peg BUSD-T 上进行过很多交易,所以这对我来说是一个大问题。有办法解决这个问题吗???
当您尝试替换交易并且替换的 Gas 价格太低时,就会出现“交易定价过低”错误。
web3.eth.getTransactionCount()只返回挖掘交易的数量。但是您可以有 N 个(不仅仅是一个)交易等待使用已经更高的随机数进行挖掘。
例子:
getTransactionCount()返回 2解决方案:
如果您想替换现有交易,请使用更高的汽油价格。
或者,如果您想提交新交易(而不是替换之前的交易),请使用您的地址尚未使用的更高的随机数(“成功开采”+“等待开采”+ 1 的总和)。
小智 5
const contract = new web3.eth.Contract(abi, usdtContractAddr, {
from: 'SENDER_ADDRESS', // default from address
gasPrice: '200000000' // default gas price in wei, 20 gwei in this case
});
Run Code Online (Sandbox Code Playgroud)
准确来说,gasPrice 不是 20 gwei,而是 0.2 gwei。在 GasPrice 中添加 2 个额外的零应该可以消除定价过低的错误,因为 0.2 gwei 小于 BSC 区块链上的最低 GasPrice。
| 归档时间: |
|
| 查看次数: |
34244 次 |
| 最近记录: |