You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

与Disperse合约交互时出现Awaiting internal transactions错误求助

问题排查与解决方案

针对调用Disperse合约时出现的Error: (Awaiting internal transactions for reason)错误,结合你的交易信息和代码,可按以下步骤排查解决:

可能的错误原因

  • 钱包余额不足:发起交易的钱包需要覆盖转账总金额(0.2 BNB)加上gas费用,若余额不够会导致交易失败或pending。
  • Gas参数设置不合理:硬编码的gasPrice可能低于当前网络建议价,导致交易无法被矿工打包;虽设置了较高的gasLimit,但动态估算更贴合实际需求。
  • 交易处于Pending状态:测试网偶尔拥堵,gasPrice不足时交易会长时间等待打包,ethers.js在等待内部交易确认时触发该提示。

具体解决步骤

1. 确认钱包余额

检查发起交易的钱包BNB余额,确保至少大于0.2 + (gasLimit * gasPrice / 1e18),按你当前设置的参数,需要至少0.21 BNB(0.2转账金额 + 0.01 gas费)。

2. 优化Gas参数(推荐动态估算)

不要硬编码gas值,改用ethers.js的内置方法获取网络建议值并适当加成,避免因gas不足或价格过低导致的问题:

const wallets = [ 
    '0x8F9E9f3c63C14374f3F522343523eF2ae8497391',
    '0x7B2419E0Ee0BD034F7Bf24874C12512AcAC6e21C'
];
const amounts = wallets.map(() => ethers.utils.parseEther("0.1"));

// 动态获取并调整gas参数
const gasPrice = await ethers.provider.getGasPrice();
const estimatedGasLimit = await connect.estimateGas.disperseEther(wallets, amounts);

const tx = await connect.disperseEther(wallets, amounts, {
    gasLimit: estimatedGasLimit.mul(110).div(100), // 增加10%的gas余量
    gasPrice: gasPrice.mul(120).div(100), // 增加20%的gas价格,提高打包优先级
});

3. 检查交易状态

查看你的交易记录,若交易处于Pending状态:

  • 等待一段时间,或使用钱包的"加速交易"功能提高gasPrice;
  • 若交易已失败,查看链上浏览器的失败详情(如"out of gas"或"insufficient funds"),针对性调整。

4. 验证合约调用参数

确认wallets数组和amounts数组长度一致(你的代码中已满足),且钱包地址格式为有效的以太坊标准地址。

内容的提问来源于stack exchange,提问作者Huynh Son

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:05:28