← 首页

链上交易失败但仍产生费用时,怎样做账

Articles

失败状态与费用事实分开

智能合约执行失败时,预期的状态变化可能没有完成,但验证者仍处理了已经执行的计算。Ethereum Gas 文档说明费用取决于实际使用的 Gas 和价格,因此账本应同时记录失败状态与链上实际费用。

从回执读取实际字段

使用对应网络的可信区块浏览器保存哈希、状态、Gas used、有效 Gas price、区块时间和发送账户。不要用签名前看到的费用上限替代实际支出,也不要只凭钱包弹窗中的法币估值填写最终金额。

资产转移和网络费分别入账

交易失败时,目标资产转移通常没有按预期完成,但原生资产网络费可能已经扣除。记录表应分设转账数量、网络费和平台费用,缺少证据的字段保持未知,不用二者差额推测隐藏收费。

重试形成新的费用事件

后续重试会产生新的交易哈希和独立回执,应另起一行并关联原失败记录。不能把两次 Gas 相加后写成单笔交易费,也不应为了摊薄成本反复提交;是否重试要先理解失败原因。

核对要点

  • 失败交易仍可能产生已用 Gas 成本
  • 实际费用以链上回执而非预估上限为准
  • 每次重试建立独立费用记录

资料来源

文中核对流程为本站整理,适用条件以具体产品当前官方文档为准。示例不是账户实际数据。