メインコンテンツへスキップ
このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
信頼できる情報源。 以下のテーブルは、公開されているRaydiumリポジトリ内の各プログラムの error.rs から再生成されています。プログラムがアップグレードされ新しいバリアントが追加された場合は、テーブルを並べ替えるのではなく、抽出処理(各テーブル下部のリンクを参照)を再実行して行を追記してください。Anchorエラーコードは名前ではなくソースの順序で割り当てられるため、並べ替えるとインテグレーターのエラーハンドリングが壊れます。

Anchorエラーコードの仕組み

Anchorはプログラムの ErrorCode 列挙型の各バリアントに、6000 から始まる数値コードを割り当てます。失敗したトランザクションでは次の情報が表示されます:
  • 数値エラーコード(例:0x1771 = 6001):トランザクションログに記録されます。
  • エラー名(例:InvalidOwner):IDLから取得されます。
  • #[msg(...)] 文字列:Anchorが log_messages に出力します。
インテグレーターは数値コードで照合してください。メッセージ文字列はバージョンアップなしに変更される可能性があります。

CPMM(標準AMM)エラー

プログラムID:reference/program-addresses を参照。ソース:raydium-cp-swap/programs/cp-swap/src/error.rs 再生成ソース:github.com/raydium-io/raydium-cp-swap — error.rs

CLMMエラー

プログラムID:reference/program-addresses を参照。ソース:raydium-clmm/programs/amm/src/error.rs
番号付け変更に関する注意。 CLMMの ErrorCode 列挙型はこのリリースで番号が振り直されました。5つのレガシーバリアント(LOKZeroMintAmountInvalidLiquidityTransactionTooOldInvalidRewardDesiredAmount)といくつかのタイポ(Liquitityenoughtemissiones)が削除・修正され、11個の新しいバリアントが追加されました。Anchorはソースの順序でエラーに番号を付けるため、6000 以降のすべてのコードはプレリリースビルドに対して相対的にずれています。以前のバージョンに対して数値コードをハードコードしているクライアントはリマップが必要です。
再生成ソース:github.com/raydium-io/raydium-clmm — error.rs

AMM v4、Farm v3 / v5 / v6、LaunchLabエラー

これらのプログラムはそれぞれの章に記載されています(products/amm-v4/instructionsproducts/farm-staking/instructionsproducts/launchlab/instructions を参照)。これらのプログラムはAnchorとプレーンなSolanaエラーサーフェスが混在しているため、エラーテーブルはここではなく命令リファレンスの隣に記載されています。以下のコードはそれらの章によって予約されています:

SDKエラーをプログラムエラーにマッピングする

公式TypeScript SDKは、オンチェーンエラーを SendTransactionError にラップし、Anchorプログラムの場合は AnchorError にもラップします:
Anchorクライアントを使用していない場合は、トランザクションログを解析してください:
パターン Error Number: (\d+) はAnchorバージョン間で安定しており、照合に安全に使用できます。

テーブルの再生成

プログラムがアップグレードされて新しいエラーが追加された場合は、ソースから再抽出してください:
新しいバリアントが追加された場合は、必ず reference/changelog を更新してください。SDKをアップグレードするインテグレーターがエラーハンドラーを更新すべきタイミングを把握できます。 ソース: