BEP-20 代币交易中交易价格被低估

问题描述 投票:0回答:4

我已经在币安智能链的 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
});

我已经将我的 Gas 增加了 10%,并添加了比通过调用给我的值更多的随机数

web3.eth.getTransactionCount('ADDRESS')
。但它们都不起作用。我曾经在 Binance-Peg BUSD-T 上进行过很多交易,所以这对我来说是一个大问题。有办法解决这个问题吗???

node.js ethereum smartcontracts web3js binance-smart-chain
4个回答
8
投票

当您尝试替换交易并且替换的 Gas 价格太低时,会出现“交易定价过低”错误。

web3.eth.getTransactionCount()
仅返回挖掘交易的数量。但是您可以有 N 个(不仅仅是一个)交易等待使用已经更高的随机数进行挖掘。

示例:

  • 您已提交 4 笔交易 - 随机数 1、2、3 和 4。
  • 交易1和2已成功挖矿。
  • getTransactionCount()
    返回 2
  • 当您尝试提交另一个随机数为 3 或 4 的交易时,它会尝试替换已经存在的交易。

解决方案:

如果您想替换现有交易,请使用更高的汽油价格。

或者,如果您想提交新交易(而不是替换之前的交易),请使用您的地址尚未使用的更高的随机数(“成功开采”+“等待开采”+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
});

准确来说,gasPrice 不是 20 gwei,而是 0.2 gwei。在 GasPrice 中添加 2 个额外的零应该可以消除定价过低的错误,因为 0.2 gwei 小于 BSC 区块链上的最低 GasPrice。


0
投票

我不知道发生了什么,但就我而言,我想使用 Remix IDE 部署我的合约,但出现了此错误。我更改了所有气体设置,但没有任何改变。在我重新运行从元掩码失败的交易后,我不知道如何部署我的合约。 (我也遇到了与松露迁移相同的错误)


-1
投票
const tx = await router.swapExactTokensForTokens(
  amountIn,
  amountOutMin,
  [tokenIn, tokenOut],
  addresses.recipient,
  Date.now() + 1000 * 60 * 10, //10 minutes
  // Math.floor(Date.now() / 1000) + 60 * 20,

  {
    gasPrice: ethers.utils.parseUnits('6','gwei').toString(),
    gasLimit: 177302
  }

);
© www.soinside.com 2019 - 2024. All rights reserved.