Tx Doctor / EVM リバート事典 / Solidity panic(算术・境界エラー)
EVM エラー:Solidity panic(算术・境界エラー) (Panic 0x11)
コントラクトがコンパイラ挿入の panic に当たりました。オーバーフロー、ゼロ除算、配列の範囲外読み取り、assert() 失敗です。ウォレットではなくコントラクト側の問題です。
原因
- 算術のオーバーフロー/アンダーフロー(panic 0x11)。想定外の 0 や極端な値を使った計算でよく起きます。
- ゼロ除算(0x12)。プールが空の状態での価格やシェアの計算です。
- 配列の範囲外や空配列への pop()(0x32 / 0x31)。状態変化後にインデックスが古くなっています。
- assert() の失敗(0x01)。コントラクトが前提とする不変条件が破られました。
解決方法
- 入力を確認してください。ダスト額、ゼロアドレス、空のプールがほとんどの panic の原因です。
- 見積もり直して取引を再構築し、インデックスと数量を現在の状態に合わせてください。
- 通常規模の取引でも繰り返すなら、コントラクトにバグがあります。チームに報告し、別ルートを使ってください。
ウォレット/エクスプローラーでの表示例
Panic(0x11) — arithmetic overflow
いまこの問題が出ていますか?トランザクションハッシュを貼ると、チェーンを自動判定して実際に失敗した理由をデコードします。
自分のトランザクションを診断