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 列舉在此版本中被重新編號:五個舊版變體(LOKZeroMintAmountInvalidLiquidityTransactionTooOldInvalidRewardDesiredAmount)和多個拼寫錯誤(Liquitityenoughtemissiones)被移除/修復,十一個新變體被附加。由於 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 錯誤表面的混合,它們的錯誤表位於指令參考旁邊,而不是此處。以下代碼由這些章節保留: 最近的 LaunchLab 版本保持代碼 60006021 不變。2026-08-17 版本移除了前平台全域存取錯誤,並將 6022 指派給允許帳戶驗證錯誤;2026-08-24 版本附加 6023;2026-08-31 版本附加 60246030 舊的 PlatformGlobalAccessDenied6022)和 InvalidPlatformGlobalAccess6023)變體已移除。不要使用先前的 IDL 解碼 6022,並注意 6023——由 2026-08-17 版本空出——由 2026-08-24 版本為不相關的錯誤重新使用,因此不得使用任一早期版本的 IDL 解碼。 6020 被刻意保留。Anchor 按位置編號變體,所以刪除它會移動其後的每個代碼,並破壞每個解碼 60216030 的用戶端。

將 SDK 錯誤對應到程式錯誤

官方 TypeScript SDK 將鏈上錯誤包裝到 SendTransactionError 中,對於 Anchor 程式,包裝到 AnchorError
如果您不在用戶端使用 Anchor,請解析交易日誌:
模式 Error Number: (\d+) 在 Anchor 版本中是穩定的,可以安全地匹配。

重新生成這些表格

當程式升級並新增新錯誤時,從來源重新提取:
每當新增變體時,始終更新 reference/changelog,以便升級 SDK 的整合者知道重新整理其錯誤處理程式。 來源: