Tx Doctor / EVM 回滚错误库 / Gas 不足
EVM 错误:Gas 不足
调用完成前 gas 上限就用完了,EVM 回滚了全部状态——但 gas 照样被扣。
为什么会这样
- gas 上限来自过期的估算:报价与执行之间池子或代币状态变了。
- 调用撞上了长度依赖状态的循环(批量领取奖励、批量转账)。
- 合约升级之后逻辑变得更贵。
- 在 rollup 上 L1 数据费是另算的——L2 gas 上限低、calldata 又大就会失败。
怎么解决
- 把 gas 上限设成当前估算的 1.3 到 1.5 倍再重试。
- 把批量操作拆成多笔交易。
- 兑换要在提交前重新报价,让估算匹配池子状态。
- 如果同样的调用以前能成功,怀疑合约升级——查它的实现地址。
钱包或区块浏览器里显示的样子
Warning! Error encountered during contract execution [out of gas]
现在就遇到这个问题?粘贴交易哈希,工具会自动找到所在链并解码真正失败的原因。
诊断我的交易