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 列舉在此版本中被重新編號:五個舊版變體(LOK、ZeroMintAmount、InvalidLiquidity、TransactionTooOld、InvalidRewardDesiredAmount)和多個拼寫錯誤(Liquitity、enought、emissiones)被移除/修復,十一個新變體被附加(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 列舉,通過 ProgramError::Custom(e as u32) 轉換,所以其代碼從 0 開始,而不是 6000 ——並且,如同 Anchor 的,由原始碼順序指派。2026-09 升級附加一個變體: 代碼 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 的整合者知道重新整理其錯誤處理器。 來源: