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

TON区块链:如何判断交易是否成功?

解决TonWeb交易状态判断问题
  • 你收到的{ '@type': 'ok', '@extra': '1723716788.6499352:4:0.3484654105500832' }只是Ton节点确认交易已被接收并广播,不代表最终执行成功。

  • 要准确判断交易是否成功,按以下方式操作:

    1. 查看交易状态码:调用tonweb.provider.getTransactions(address, limit=1)获取最新交易列表,交易对象里的status字段是核心判断依据:
      • 0 = 交易执行成功
      • 1 = 交易执行失败(如余额不足、合约逻辑报错等)
      • 2 = 交易仍在等待打包确认
    2. 辅助验证消息状态:检查交易的in_msg.state,成功的交易该字段会显示processed;若有合约交互,可查看out_msgs是否存在对应输出消息。
    3. 等待区块确认:Ton网络需要1-2个区块确认才能锁定交易最终状态,建议发送交易后延迟3-5秒再查询,避免拿到未稳定的中间状态。
  • 实用代码片段:

    async function verifyTransaction(address) {
      const latestTxs = await tonweb.provider.getTransactions(address, 1);
      if (latestTxs.length === 0) {
        console.log('交易暂未被区块打包');
        return;
      }
      const targetTx = latestTxs[0];
      console.log('交易状态码:', targetTx.status);
      console.log('交易是否成功:', targetTx.status === 0);
      console.log('输入消息处理状态:', targetTx.in_msg.state);
    }
    
  • 若涉及合约调用,还可通过查询合约的余额、存储数据等状态变化,来间接验证交易是否达到预期效果。

内容的提问来源于stack exchange,提问作者Lê Văn Anh Tú

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:13:09