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

Archway升级后使用arch3.js发送交易遇gas不足错误求助

解决Archway V4.0.0补丁+CLI V2更新后的交易Gas超限问题

问题现象

更新Archway CLI到V2并安装V4.0.0补丁后,合约读取功能正常,但发送交易时触发Gas超限错误,报错详情:

Error: Error when broadcasting tx DBBC8D3AD1923DE02D019A105879FBEFDFC76C07CB55084CDCBF0A3665C8ADAE at height 1688875. Code: 11; Raw log: out of gas in location: WriteFlat; gasWanted: 182764, gasUsed: 184087: out of gas

该问题在使用Keplr插件的前端代码、调用DirectSecp256k1HdWallet的后端JS代码中均会出现。

解决方案

  • 手动提高交易Gas上限
    V4.0.0补丁可能调整了合约写入操作的Gas计算逻辑,默认预估量不足以覆盖实际消耗。构建交易时,手动将gasWanted设为实际消耗值的1.1~1.2倍(比如本次案例可设为200000),预留足够余量。

    • 前端Keplr代码示例:
      const tx = await keplr.signAndSend(txMsg, {
        gas: "200000", // 手动指定Gas上限
        feeAmount: [{ denom: "uarch", amount: "20000" }] // 对应调整手续费
      });
      
    • 后端DirectSecp256k1HdWallet代码示例:
      const txBuilder = await client.sign(
        walletAddress,
        msgs,
        {
          gasLimit: 200000, // 手动设置Gas上限
          amount: [{ denom: "uarch", amount: "20000" }]
        },
        ""
      );
      
  • 调整CLI的Gas预估配置
    检查Archway CLI的Gas预估参数,执行命令查看当前配置:

    archway config get gas-adjustment
    

    若返回值小于1.1,调整为1.1或更高:

    archway config set gas-adjustment 1.1
    

    该配置会让CLI自动在预估Gas基础上增加10%余量,避免超限。

  • 优化合约写入逻辑
    补丁更新可能暴露了合约中之前未触发的冗余写入操作。检查合约WriteFlat相关代码,移除不必要的存储写入,降低Gas消耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:52:20