OUT_OF_ENERGY:含义与解决方法

OUT_OF_ENERGY 表示智能合约调用在执行完成前耗尽了发送地址可用的能量。交易的状态变更可能被回滚,但网络仍可能对已经完成的计算收取费用。重试前,请查看交易回执和实际错误,估算该次调用所需能量,并确认足够的能量已代理给发送地址。

重试前应检查什么

先检查失败交易本身:确认回执确实显示 OUT_OF_ENERGY,按当前链上状态估算同类合约调用,并将估算值与发送地址的可用能量比较。您可以向发送地址代理能量、保留足够的 TRX 支付可能产生的网络费用,或通过质押获得能量。只有当前市场报价能够满足所需数量和期限时,才会显示可用的实时租赁报价;提交订单前,请将显示的价格与其他方案比较。

为什么失败的交易仍可能消耗 TRX

合约调用耗尽能量时,状态变更可能被回滚,但网络已经完成了部分计算。交易回执会列出结果、资源消耗和实际收取的费用;请以回执为准,不要只根据错误名称推断费用。

为什么提高 fee limit 仍可能无效

fee limit 规定智能合约交易最多可收取多少 TRX;它不会代理能量,也无法修正其他交易错误。提高限额可能让网络在发送地址能量不足时收取更多 TRX,但交易仍可能失败。修改限额前,请先估算交易并查看实际错误。

降低再次失败的风险

对于定期或自动化转账,应根据实际合约调用和接收地址状态估算所需能量,监控发送地址的可用能量,并在提交交易前准备资源。合约或网络发生相关变化后应重新估算;上一次转账或租赁成功,并不表示下一次调用一定有足够能量。

当问题其实与能量无关

请查看实际错误和交易回执。带宽不足涉及另一种资源,增加能量无法解决。校验错误和合约回滚也可能有其他原因;应处理回执所报告的问题,不要假定每笔失败的转账都需要更多能量。

常见问题

失败交易收取的 TRX 费用会退还吗?

仅仅因为交易的状态变更被回滚,实际收取的网络费用通常不会退还。重试前,请查看交易回执和费用明细,区分网络收费与其他余额变化。

应该准备多少能量?

并不存在适用于所有转账的可靠固定数值。所需能量取决于合约调用和当前状态,包括接收地址的状态。请估算拟提交的交易,预留合理余量,并在提交前再次检查发送地址的可用能量。只有实时市场报价能够满足请求时,才会显示租赁报价;该价格仅供参考,交易结果仍取决于交易本身。

我租了能量,转账仍然失败,为什么?

先确认能量代理给了交易发送地址,而不是代币接收地址。然后将发送地址的可用能量与最新估算值比较,并查看交易回执和实际错误。正确代理只能解决能量不足,无法修复校验错误、带宽不足或由其他原因导致的合约回滚。

普通 TRX 转账会出现 OUT_OF_ENERGY 吗?

普通 TRX 转账不会执行代币合约,通常消耗的是带宽,而非智能合约能量。它仍可能因其他原因失败,因此应查看该笔交易返回的具体错误。