当交易结果在 TRONSCAN 上标记为“失败”时,发送人钱包里需要转移的资金不会被扣除而依然在钱包中。但由于该笔交易已上链且不可回退,交易产生的手续费依然会被扣除。若交易结果标记为“失败”,可能是存在以下几种情况:
1.能量不足
如果交易失败的原因是“能量不足”,通常是以下原因导致:
- 发起方在本笔合约交易中设置的 fee_limit 过低,无法覆盖调用方需要承担的能量。fee_limit 是以 SUN 表示的交易级能量预算上限(1 TRX = 1,000,000 SUN);即使账户已有质押或受委托能量,也受该上限约束。它不包含带宽及其他费用。
- 发起方的可用能量与可用于支付能量缺口的 TRX 余额不足。应同时检查本笔交易的 fee_limit、可用能量和可用 TRX 余额;fee_limit 的设置入口以所用钱包或应用实际支持为准。
2.交易回退
如果交易失败的原因是“交易回退”,则该交易并未执行,通常是因为该笔交易所调用的合约代码中有故障,请联系合约部署者以获得进一步的帮助。
3.合约调用超时
如果交易失败的原因是“合约调用超时”,通常是因为该笔交易所调用的合约复杂度太高导致执行时间超过 80ms 或全节点性能较差,建议合约开发者参考以下两点:
- 编写智能合约时,确保功能尽可能简单,不要在合约中使用长循环。
- Fee_limit 设置得较小以减少损失,因为超时将导致全额Fee_limit的罚款。
4.交易异常
如果交易失败的原因是“非法交易”,通常是因为该笔交易所调用的合约执行过程中出现故障,请联系合约部署者以获得进一步的帮助。