跳到正文
← 使用教程

Subscan 交易失败怎么看?核对 finalized、success 与子调用

链小知 · 入门 · 核验 · 依官方文档整理

按链定位extrinsic,保存模块错误、事件和子调用结果,防止把区块收录当成功转账。

开始前准备

  • 准备具体Substrate链名、交易hash或extrinsic_index、预期资产与收款地址;不把EVM交易字段自动套用。
  • 适用当前Subscan Extrinsic API(2026-07-21文档);各链运行时与API部署分别核对。
  • 公开网页只读;API访问权限、密钥方案和计费查当前套餐,不发送extrinsic或签名。

1. 先选具体链再定位索引

在Subscan对应链页面搜索原交易hash或extrinsic_index,记录链名与页面URL。不同平行链可以有相同格式的地址和区块索引,不能跨链用一串index确认同一交易。

如果使用API,当前文档展示Altair服务https://altair.api.subscan.io,路径为/api/scan/extrinsic;查其他链必须选其实际部署,不把Altair入口当通用全链API。

检查结果:链名、hash或index、查询部署一一对应。

2. 取得详情并保存读取条件

API读取使用POST JSON,传实际hash或extrinsic_index。要看事件不要照抄示例的hide_events:true;明确记录hide_events与events_limit设置,防止主动隐藏后误判没有事件。

HTTP成功仍要检查业务code、message和data。读取失败或无data先检查部署与输入,不能按样例中的success:true填真实结果。

检查结果:保留请求筛选项、业务结果及实际extrinsic_hash/index。

3. 分开最终性与执行结果

读取pending、finalized和success。进入区块或finalized表明状态已进入相应链确认阶段,success才是执行结果字段,两者不互相替代。

失败时记录error.module、name、doc及可见batch_index;保存原文字段,避免把链运行时特有错误翻成一个未经核实的“余额不足”。

检查结果:形成pending/finalized/success及错误原文记录。

4. 展开子调用和事件

若有sub_calls或multisig,读取子调用exec_status、exec_result和相关参数。顶层调用完成不自动证明批量内每项、或多签流程中最终目标动作已完成。

查看event条目与event_count;事件被筛选、限制或隐藏时先标不完整。核对与该extrinsic关联的事件及最终资产记录,不能从一个事件标题推断所有资产变化。

检查结果:子调用及事件的覆盖范围明确;缺失项留待补读。

5. 核对收款记录与实际费用

若返回transfer对象,对照from、to、asset_symbol、amount与transfer.success;没有transfer对象时按实际调用和事件解释,不把空对象当零金额。

费用字段包括fee/fee_used,使用其他资产付费时还可能有asset_fee与decimal、symbol。数字与单位要一起保存;无法确认精度就不算成人类金额。最终交付记录支持排查,但不能证明交易所已入账。

检查结果:保存实际收款记录、费用单位及仍需核对的运行时信息。

怎样确认完成

  • 得到完整定位、最终性、执行错误与资产/费用证据。
  • 依据官方文档整理,尚未完成真实账户查询或交易行为验收。

常见错误与边界

  • 文档样例字段true只是数据结构示例。
  • 批量/多签/跨链消息的顶层完成不能替代内部资产变化。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据