Chuyển đến nội dung chính
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 gốc xác thực. Các bảng dưới đây được tái tạo từ file error.rs của từng chương trình trong các repository công khai của Raydium. Khi một chương trình được nâng cấp và có biến thể mới được thêm vào, 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 cuối bảng thay vì sắp xếp lại — mã lỗi Anchor được gán theo thứ tự trong source code, không phải theo tên, vì vậy việc thay đổi thứ tự sẽ làm hỏng logic xử lý lỗi của các integrator.

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

Anchor gán cho mỗi biến thể trong enum ErrorCode của một 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 dạng số (ví dụ: 0x1771 = 6001) trong transaction logs.
  • Tên lỗi (ví dụ: InvalidOwner) từ IDL.
  • Chuỗi #[msg(...)] mà Anchor đã emit trong log_messages.
Các integrator nên so khớp theo mã số, không phải theo chuỗi thông báo (chuỗi có thể được thay đổi mà không cần tăng phiên bản).

Lỗi CPMM (Standard AMM)

Program ID: 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

Program ID: xem reference/program-addresses. Nguồn: raydium-clmm/programs/amm/src/error.rs.
Lưu ý về việc đá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ể cũ (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) và một số lỗi chính tả (Liquitity, enought, emissiones) đã bị xóa/sửa, đồng thời mười một biến thể mới được thêm vào cuối. Vì Anchor đánh số lỗi theo thứ tự trong source, mọi code từ 6000 trở đi đã dịch chuyển so với các bản build trước khi phát hành. Các client đã hard-code mã số với phiên bản cũ hơn cần remap 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 lại trong các chương tương ứng (xem products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Vì các chương trình đó sử dụng kết hợp Anchor và surface lỗi Solana thuần, bảng lỗi của chúng được đặt cạnh tài liệu tham khảo instruction thay vì ở đây. Các mã dưới đây được dành riêng cho các chương đó:

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

TypeScript SDK chính thức bọc các lỗi on-chain vào SendTransactionError và, với các chương trình Anchor, là AnchorError:
Nếu bạn không sử dụng Anchor ở phía client, hãy phân tích transaction logs:
Pattern Error Number: (\d+) ổn định qua các phiên bản Anchor và an toàn để so 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 lỗi mới, hãy trích xuất lại từ source:
Luôn cập nhật reference/changelog khi có biến thể mới được thêm vào, để các integrator đang nâng cấp SDK biết cần làm mới error handler của họ. Nguồn tham khảo: