【问题标题】:web3dart estimating gas fee exceptionweb3dart 估算 gas 费用异常
【发布时间】:2022-07-06 19:01:09
【问题描述】:

我正在尝试估算 ERC20 代币交易的汽油费 - 在这种情况下,将 DAI 从一个地址转移到另一个地址(在孟买)。

gas费用估算代码:

final contract = DeployedContract(ContractAbi.fromJson(abi, token.id),  // 'dai'
          EthereumAddress.fromHex(token.contractAddress)); // 0xcB1e72786A6eb3b44C2a2429e317c8a2462CFeb1

final transferFunction = contract.function('transferFrom');

final transaction = Transaction.callContract(
  contract: contract,
  function: transferFunction,
  parameters: [
    EthereumAddress.fromHex(address),  // 0x2970C7181450B6c13071131f0005ccA18436c12B
    EthereumAddress.fromHex(recipientAddress),  // 0xc7c6BAEA62Ff6BBAca799156CC4e9f50BC9e8060
    10000000000000,  // 0.001 Dai
  ],
);

final fee = await _client.estimateGas(
  to: transaction.to,
  value: transaction.value,
  data: transaction.data,
);

但是,我收到了RPCError: got code 3 with msg "execution reverted: Dai/insufficient-allowance"。发件人地址持有足够的代币(约 0.0038 Dai)。我首先尝试以相同的数量调用approve,但我得到了一个不同的异常RPCError: got code -32000 with msg "already known".,并且气体估计仍然失败。

关于如何使用web3dart 正确估计的任何想法?

【问题讨论】:

    标签: dart erc20 web3dart


    【解决方案1】:

    尝试将sender添加到estimateGas函数中,

      final fee = await _client.estimateGas(
          sender: EthereumAddress.fromHex(fromAddress),
          to: transaction.to,
          value: transaction.value,
          data: transaction.data,
        );
    

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 2022-08-04
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 2012-01-09
      • 1970-01-01
      • 2019-05-21
      相关资源
      最近更新 更多