Skip to main content
このページは 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 つのレガシーバリアント(LOK、ZeroMintAmount、InvalidLiquidity、TransactionTooOld、InvalidRewardDesiredAmount)と複数のタイポ(Liquitity、enought、emissiones)が削除・修正され、11 の新しいバリアント(6040–6050)がリミットオーダーリリースで追加されました。6051(InvalidTickArrayBitmapExtensionAccount)は別の後の変更から来ました。これにより 52 のバリアント 6000–6051 となり、現在デプロイされているプログラムのオンチェーン IDL が報告するカウントです。2026-09-30 アップグレードは何もシフトさせずに 6052 を追加し、合計 53 になります。Anchor はエラーをソース順でナンバリングするため、6000 以降のすべてのコードは以前のプレリリースビルドに対して相対的にシフトしています。以前のバージョンに対して数値コードをハードコードしたクライアントは再マップが必要です。
再生成ソース:github.com/raydium-io/raydium-clmm — error.rs。

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

これらのプログラムは各章で説明されています(products/amm-v4/instructions、products/farm-staking/instructions、products/launchlab/instructions を参照)。これらのプログラムは Anchor とプレーン Solana エラーの混合を使用しているため、エラーテーブルはここではなく、命令リファレンスの隣に配置されています。以下のコードはこれらの章で予約されています: 最新の LaunchLab リリースではコード 6000–6021 は変更されていません。2026-08-17 リリースでは以前のプラットフォーム全体アクセスエラーが削除され、6022 が許可アカウント検証エラーに割り当てられました。2026-08-24 リリースでは 6023 が追加され、2026-08-31 リリースでは 6024–6030 が追加され、2026-09-09 リリースでは 6031 が追加されました: 古い PlatformGlobalAccessDenied (6022) および InvalidPlatformGlobalAccess (6023) バリアントは削除されました。以前の IDL を使用して 6022 をデコードしないでください。また、6023 は 2026-08-17 リリースで空いており、2026-08-24 リリースで関連のないエラーに再利用されているため、どちらかの以前のバージョンの IDL でデコードしてはいけません。 6020 は意図的に保持されています。Anchor はバリアントを位置で番号付けするため、削除すると後続のすべてのコードがシフトし、6021–6031 をデコードするすべてのクライアントが破損します。

AMM v4:AmmError は Anchor 番号付けではありません

AMM v4 は Anchor より前のものです。AmmError は FromPrimitive を備えたプレーン thiserror enum で、ProgramError::Custom(e as u32) を通じて変換されるため、そのコードは 0 から始まります。Anchor と同様に、ソース順序で割り当てられます。2026-09 アップグレードでは 1 つのバリアントが追加されます: コード 0–59 は変更されていないため、何もシフトしません。トランザクションログではこれは custom program error: 0x3c として表示されます。再生成ソース:github.com/raydium-io/raydium-amm — error.rs。

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

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

これらのテーブルを再生成する

プログラムがアップグレードされて新しいエラーが追加されたときは、ソースから再抽出してください:
新しいバリアントが追加されるたびに必ず reference/changelog を更新してください。これにより、SDK をアップグレードするインテグレータはエラーハンドラーをリフレッシュする必要があることを知ることができます。 ソース: