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 不變。它移除了舊的平台全域存取錯誤,並將 6022 指派給新的允許帳戶驗證錯誤: 舊的 PlatformGlobalAccessDenied6022)和 InvalidPlatformGlobalAccess6023)變體被移除。不要使用先前的 IDL 解碼 6022

將 SDK 錯誤對應到程式錯誤

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

重新生成這些表格

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