Skip to main content
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
Nguồn chính thức. Các bảng dưới đây được tạo lại từ error.rs của mỗi chương trình trong các kho lưu trữ công khai của Raydium. Khi một chương trình được nâng cấp và thêm một biến thể mới, hãy chạy lại quá trình trích xuất (liên kết ở cuối mỗi bảng) và thêm vào bảng thay vì sắp xếp lại — các mã lỗi Anchor được gán theo thứ tự nguồn, không phải theo tên, vì vậy sắp xếp lại sẽ làm hỏng xử lý lỗi của người tích hợp.

Cách mã lỗi Anchor hoạt động

Anchor gán cho mỗi biến thể của enum ErrorCode của chương trình một mã số bắt đầu từ 6000. Một giao dịch thất bại sẽ hiển thị:
  • Mã lỗi số (ví dụ: 0x1771 = 6001) trong nhật ký giao dịch.
  • Tên lỗi (ví dụ: InvalidOwner) từ IDL.
  • Chuỗi #[msg(...)] mà Anchor phát ra trong log_messages.
Những người tích hợp nên khớp với mã số, không phải chuỗi thông báo (chuỗi có thể được diễn đạt lại mà không cần tăng phiên bản).

Lỗi CPMM (Standard AMM)

ID chương trình: xem reference/program-addresses. Nguồn: raydium-cp-swap/programs/cp-swap/src/error.rs. Nguồn tái tạo: github.com/raydium-io/raydium-cp-swap — error.rs.

Lỗi CLMM

ID chương trình: xem reference/program-addresses. Nguồn: raydium-clmm/programs/amm/src/error.rs.
Lưu ý về đánh số lại. Enum ErrorCode của CLMM đã được đánh số lại trong bản phát hành này: năm biến thể kế thừa (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) và một số lỗi chính tả (Liquitity, enought, emissiones) đã bị xóa/sửa, và mười một biến thể mới đã được thêm vào. Vì Anchor đánh số lỗi theo thứ tự nguồn, mọi mã ở hoặc sau 6000 đã thay đổi so với các bản dựng trước phát hành. Các máy khách đã mã hóa cứng các mã số so với phiên bản trước cần ánh xạ lại.
Nguồn tái tạo: github.com/raydium-io/raydium-clmm — error.rs.

Lỗi AMM v4, Farm v3 / v5 / v6, LaunchLab

Các chương trình này được ghi chép trong các chương tương ứng của chúng (xem products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Vì các chương trình này sử dụng một hỗn hợp các bề mặt lỗi Anchor và Solana thuần túy, các bảng lỗi của chúng nằm cạnh tham chiếu hướng dẫn thay vì ở đây. Các mã dưới đây được dành riêng bởi các chương: Bản phát hành LaunchLab giữ nguyên các mã 60006021. Nó xóa các lỗi truy cập toàn cầu nền tảng trước đó và gán 6022 cho lỗi xác thực tài khoản cho phép mới: Các biến thể PlatformGlobalAccessDenied (6022) và InvalidPlatformGlobalAccess (6023) cũ bị xóa. Không giải mã 6022 bằng IDL trước đó.

Ánh xạ lỗi SDK thành lỗi chương trình

SDK TypeScript chính thức bao bọc các lỗi on-chain thành SendTransactionError và, đối với các chương trình Anchor, AnchorError:
Nếu bạn không sử dụng máy khách Anchor, hãy phân tích nhật ký giao dịch:
Mẫu Error Number: (\d+) ổn định trên các phiên bản Anchor và an toàn để khớp.

Tái tạo các bảng này

Khi một chương trình được nâng cấp và thêm một lỗi mới, hãy trích xuất lại từ nguồn:
Luôn cập nhật reference/changelog khi thêm một biến thể mới, để những người tích hợp nâng cấp SDK biết cần làm mới trình xử lý lỗi của họ. Nguồn: