Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
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 enumErrorCode 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 tronglog_messages.
Lỗi CPMM (Standard AMM)
Program ID: xem reference/program-addresses. Nguồn:raydium-cp-swap/programs/cp-swap/src/error.rs.
| Code | Variant | Chuỗi #[msg] | Nguyên nhân thường gặp | UX được đề xuất |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | Người gọi không phải là authority được cấu hình cho một lệnh admin. | ”Chỉ admin của pool mới có thể thực hiện thao tác này.” |
| 6001 | InvalidOwner | Input account owner is not the program address | Một account được truyền vào thuộc sở hữu của chương trình sai (thường là token program sai hoặc PDA sai chương trình). | ”Lỗi nội bộ: sai owner account — hãy làm mới và thử lại.” |
| 6002 | EmptySupply | Input token account empty | Số dư LP hoặc token account bằng không tại bước yêu cầu số lượng dương. | ”Không có gì để rút.” |
| 6003 | InvalidInput | InvalidInput | Đối số không hợp lệ (số lượng ngoài phạm vi, flag sai). | ”Đầu vào không hợp lệ — kiểm tra lại số lượng và thử lại.” |
| 6004 | IncorrectLpMint | Address of the provided lp token mint is incorrect | Account LP mint được truyền vào không khớp với pool_state.lp_mint. | ”Lỗi nội bộ: LP mint sai — hãy làm mới dữ liệu pool.” |
| 6005 | ExceededSlippage | Exceeds desired slippage limit | Giá thực thi tệ hơn minAmountOut / maxAmountIn của người dùng. | ”Giá đã vượt quá ngưỡng slippage của bạn. Hãy tăng slippage hoặc thử lại.” |
| 6006 | ZeroTradingTokens | Given pool token amount results in zero trading tokens | Phép tính deposit/withdraw làm tròn một phía về không (vị thế quá nhỏ). | ”Số lượng thấp hơn mức tối thiểu của pool này.” |
| 6007 | NotSupportMint | Not support token_2022 mint extension (lỗi ngữ pháp trong source) | Pool gặp phải một extension Token-2022 mà nó không thể xử lý an toàn (ví dụ: TransferHook, DefaultAccountState=Frozen). | ”Token này có extension mà Raydium không hỗ trợ trong CPMM.” |
| 6008 | InvalidVault | invaild vault (lỗi chính tả trong source) | Account vault được truyền vào không khớp với vault đã lưu trong pool_state. | ”Lỗi nội bộ: vault sai — hãy làm mới và thử lại.” |
| 6009 | InitLpAmountTooLess | Init lp amount is too less(Because 100 amount lp will be locked) (lỗi ngữ pháp trong source) | Khi khởi tạo pool, lượng LP supply được tính toán thấp hơn số lượng khóa vĩnh viễn. | ”Thanh khoản ban đầu quá nhỏ. Hãy tăng số lượng deposit.” |
| 6010 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Số lượng sau khi chuyển thực tế của một fee mint Token-2022 không khớp với dự tính trước. | ”Phí chuyển token thay đổi giữa chừng. Hãy thử lại.” |
| 6011 | MathOverflow | Math overflow | Tính toán trung gian trong swap/deposit/phí bị tràn số. | ”Số lượng quá lớn đối với pool này.” |
| 6012 | InsufficientVault | Insufficient vault | Số dư vault của pool quá thấp để đáp ứng đầu ra được yêu cầu. | ”Pool không đủ thanh khoản cho giao dịch này.” |
| 6013 | InvalidFeeModel | Invalid fee model | Admin đặt tổ hợp tham số AmmConfig bị từ chối on-chain. | N/A — chỉ admin mới dùng đường này. |
| 6014 | NoFeeCollect | Fee is zero | collect_protocol_fee / collect_fund_fee được gọi khi phí thu được bằng không. | N/A — đường admin; tooling nên bỏ qua. |
Lỗi CLMM
Program ID: xem reference/program-addresses. Nguồn:raydium-clmm/programs/amm/src/error.rs.
| Code | Variant | Chuỗi #[msg] | Nguyên nhân thường gặp | UX được đề xuất |
|---|---|---|---|---|
| 6000 | NotApproved | Not approved | Người gọi không phải là admin được cấu hình cho lệnh này. | ”Chỉ admin của pool mới có thể thực hiện thao tác này.” |
| 6001 | InvalidUpdateConfigFlag | invalid update amm config flag | Admin truyền giá trị param không được nhận dạng vào update_amm_config. | N/A — chỉ admin. |
| 6002 | AccountLack | Account lack | Remaining account bắt buộc bị thiếu trong tx (thường là tick-array hoặc oracle extension). | ”Lỗi nội bộ: thiếu account — hãy làm mới dữ liệu pool.” |
| 6003 | ClosePositionErr | Remove liquidity, collect fees owed and reward then you can close position account | Cố đóng vị thế vẫn còn thanh khoản, phí chưa thu hoặc phần thưởng chưa nhận. | ”Hãy rút toàn bộ thanh khoản và nhận phí/phần thưởng trước khi đóng vị thế.” |
| 6004 | InvalidTickIndex | Tick out of range | tick_lower hoặc tick_upper nằm ngoài [-443636, 443636]. | ”Phạm vi giá vượt giới hạn của pool này.” |
| 6005 | TickInvalidOrder | The lower tick must be below the upper tick | tick_lower >= tick_upper. | ”Giá dưới phải thấp hơn giá trên.” |
| 6006 | TickLowerOverflow | The tick must be greater, or equal to the minimum tick(-443636) | Tick dưới bị underflow. | ”Giá dưới quá thấp.” |
| 6007 | TickUpperOverflow | The tick must be lesser than, or equal to the maximum tick(443636) | Tick trên bị overflow. | ”Giá trên quá cao.” |
| 6008 | TickAndSpacingNotMatch | tick % tick_spacing must be zero | Tick được gửi không phải bội số của tick_spacing của pool. | ”Hãy căn chỉnh giá về bước hợp lệ gần nhất.” |
| 6009 | InvalidTickArray | Invalid tick array account | PDA sai được truyền cho một slot tick-array. | ”Lỗi nội bộ: tick array sai — hãy làm mới dữ liệu pool.” |
| 6010 | InvalidTickArrayBoundary | Invalid tick array boundary | Lỗi off-by-one trong đánh chỉ mục tick-array. | ”Lỗi nội bộ: lỗi ranh giới tick-array.” |
| 6011 | SqrtPriceLimitOverflow | Square root price limit overflow | sqrt_price_limit do người gọi cung cấp nằm ngoài phạm vi hợp lệ. | ”Giới hạn giá ngoài phạm vi.” |
| 6012 | SqrtPriceX64 | sqrt_price_x64 out of range | Sqrt price hiện tại của pool bị lệch ra ngoài phạm vi giữa chừng swap. | ”Hãy thử lại swap.” |
| 6013 | LiquiditySubValueErr | Liquidity sub delta L must be smaller than before | Vi phạm bất biến nội bộ khi decrease-liquidity. | ”Lỗi nội bộ: lỗi tính toán thanh khoản.” |
| 6014 | LiquidityAddValueErr | Liquidity add delta L must be greater, or equal to before | Vi phạm bất biến nội bộ khi increase-liquidity. | ”Lỗi nội bộ: lỗi tính toán thanh khoản.” |
| 6015 | ForbidBothZeroForSupplyLiquidity | Both token amount must not be zero while supply liquidity | Gọi increase-liquidity với cả amount_0_max và amount_1_max đều bằng không. | ”Hãy cung cấp ít nhất một loại token.” |
| 6016 | LiquidityInsufficient | Liquidity insufficient | Vị thế không đủ thanh khoản để đáp ứng yêu cầu rút. | ”Số lượng rút vượt thanh khoản của vị thế.” |
| 6017 | PriceSlippageCheck | Price slippage check | Giá thực thi không vượt qua kiểm tra slippage của người gọi. | ”Giá đã vượt quá ngưỡng slippage của bạn. Hãy tăng slippage hoặc thử lại.” |
| 6018 | TooLittleOutputReceived | Too little output received | SwapBaseInput: số lượng đầu ra thấp hơn other_amount_threshold. | ”Slippage vượt quá — đầu ra tối thiểu không đạt.” |
| 6019 | TooMuchInputPaid | Too much input paid | SwapBaseOutput: số lượng đầu vào cao hơn other_amount_threshold. | ”Slippage vượt quá — đầu vào tối đa bị vượt.” |
| 6020 | ZeroAmountSpecified | Swap special amount can not be zero | amount bằng không trong một lệnh swap. | ”Hãy nhập số lượng lớn hơn không.” |
| 6021 | InvalidInputPoolVault | Input pool vault is invalid | Account input-vault của swap không khớp với vault đã lưu trong pool. | ”Lỗi nội bộ: input vault sai — hãy làm mới dữ liệu pool.” |
| 6022 | TooSmallInputOrOutputAmount | Swap input or output amount is too small | Phép tính swap làm tròn về không, thường là các khoản dust rất nhỏ. | ”Số lượng quá nhỏ để swap trong pool này.” |
| 6023 | NotEnoughTickArrayAccount | Not enough tick array account | Không cung cấp đủ remaining account tick-array cho phạm vi swap. | ”Lỗi nội bộ: không đủ tick-array — hãy làm mới dữ liệu pool.” |
| 6024 | InvalidFirstTickArrayAccount | Invalid first tick array account | Account tick-array đầu tiên được truyền vào không bao phủ tick hiện tại. | ”Lỗi nội bộ: tick array đầu tiên sai — hãy làm mới dữ liệu pool.” |
| 6025 | InvalidRewardIndex | Invalid reward index | reward_index nằm ngoài [0, 2]. | N/A — đường admin. |
| 6026 | FullRewardInfo | The init reward token reach to the max | Pool đã có đủ số lượng reward mint tối đa (3). | N/A — đường admin. |
| 6027 | RewardTokenAlreadyInUse | The init reward token already in use | Reward mint trùng với một mint đã tồn tại. | N/A — đường admin. |
| 6028 | ExceptRewardMint | The reward tokens must contain one of pool vault mint except the last reward | Trước slot 2, reward mint phải bằng một trong các vault mint của pool. | N/A — đường admin. |
| 6029 | InvalidRewardInitParam | Invalid reward init param | Thời gian bắt đầu/kết thúc phát thưởng hoặc tốc độ phát thưởng mỗi giây không hợp lệ. | N/A — đường admin. |
| 6030 | InvalidRewardInputAccountNumber | Invalid collect reward input account number | Số lượng remaining account truyền vào CollectReward sai. | ”Lỗi nội bộ: số account sai — hãy làm mới và thử lại.” |
| 6031 | InvalidRewardPeriod | Invalid reward period | Chu kỳ phát thưởng không hợp lệ (end <= start, thời gian bằng không). | N/A — đường admin. |
| 6032 | NotApproveUpdateRewardEmissions | Modification of emissions is allowed within 72 hours from the end of the previous cycle | Admin cố sửa đổi phát thưởng ngoài cửa sổ 72 giờ quanh ranh giới chu kỳ. | N/A — đường admin. |
| 6033 | UnInitializedRewardInfo | uninitialized reward info | Slot phần thưởng chưa được khởi tạo nhưng lại được tham chiếu. | N/A — đường admin. |
| 6034 | NotSupportMint | Not support token_2022 mint extension | CLMM gặp phải extension Token-2022 mà nó không thể xử lý. | ”Token này có extension mà Raydium CLMM không hỗ trợ.” |
| 6035 | MissingTickArrayBitmapExtensionAccount | Missing tickarray bitmap extension account | Swap vượt qua phạm vi tick không được bitmap cơ sở bao phủ; cần account bitmap mở rộng. | ”Lỗi nội bộ: thiếu tick-array extension — hãy làm mới dữ liệu pool.” |
| 6036 | InsufficientLiquidityForDirection | Insufficient liquidity for this direction | Không đủ thanh khoản theo chiều swap được yêu cầu. | ”Không đủ thanh khoản cho kích thước swap này.” |
| 6037 | MaxTokenOverflow | Max token overflow | Số lượng đầu vào/đầu ra vượt quá u64. | ”Số lượng quá lớn đối với pool này.” |
| 6038 | CalculateOverflow | Calculate overflow | Tính toán phí/thanh khoản bị tràn số. | ”Số lượng quá lớn đối với pool này.” |
| 6039 | TransferFeeCalculateNotMatch | TransferFee calculate not match | Số lượng thực tế của phí chuyển Token-2022 không khớp với dự tính. | ”Phí chuyển token thay đổi giữa chừng. Hãy thử lại.” |
| 6040 | OrderAlreadyFilled | Order already fully filled, cannot modify | IncreaseLimitOrder / DecreaseLimitOrder được gọi trên một lệnh có phần chưa khớp bằng không. | ”Lệnh giới hạn này đã được khớp hoàn toàn — hãy settle để nhận đầu ra.” |
| 6041 | InvalidOrderPhase | Invalid order phase | Thay đổi một lệnh mà phase cohort FIFO của nó không còn khớp với cohort hiện tại của tick. | ”Không thể thực hiện thao tác này ở trạng thái hiện tại của lệnh.” |
| 6042 | InvalidLimitOrderAmount | Invalid limit order amount | Đầu vào của lệnh thấp hơn mức tối thiểu của pool (hoặc bằng không) khi mở/tăng/giảm. | ”Kích thước lệnh thấp hơn mức tối thiểu của pool.” |
| 6043 | OrderPhaseSaturated | Tick order phase saturated | Bộ đếm order_phase của cohort trên tick đã bão hòa; không thể mở thêm lệnh tại tick đó cho đến khi các cohort hiện có được settle và rollover. | ”Quá nhiều lệnh đang hoạt động tại mức giá này; hãy thử tick lân cận hoặc chờ các lệnh được settle.” |
| 6044 | InvalidDynamicFeeConfigParams | Invalid dynamic fee config params | CreateDynamicFeeConfig / UpdateDynamicFeeConfig bị từ chối; hoặc CreateCustomizablePool bật dynamic fee mà không có config hợp lệ. | N/A ở đường admin; “Cấu hình phí động không hợp lệ” ở đường người dùng. |
| 6045 | InvalidFeeOn | Invalid fee on which token (must be 0, 1, or 2) | CreateCustomizablePool truyền giá trị collect_fee_on nằm ngoài {0, 1, 2}. | ”Lỗi nội bộ: chế độ phí không hợp lệ.” |
| 6046 | ZeroSqrtPrice | sqrt_price_x64 must be greater than 0 | CreateCustomizablePool (hoặc đường khác cho phép tùy chỉnh sqrt price ban đầu) được gọi với sqrt_price_x64 == 0. | ”Giá ban đầu phải lớn hơn không.” |
| 6047 | ZeroLiquidity | liquidity must be greater than 0 | Một đường cung cấp thanh khoản được gọi với liquidity == 0 và không có số lượng bù đắp. | ”Số lượng thanh khoản phải lớn hơn không.” |
| 6048 | MissingBaseFlag | base_flag is required when liquidity is zero | Đường mở vị thế theo số lượng tính ra liquidity == 0 và người gọi không cung cấp base_flag để xác định bên nào là base. | ”Hãy cung cấp thanh khoản khác không hoặc chỉ định token nào là base.” |
| 6049 | MissingMintAccount | Mint account is required but not provided | Một đường có nhận thức Token-2022 được gọi mà thiếu account mint đầu vào/đầu ra cần để xác thực extension và phí chuyển. | ”Lỗi nội bộ: thiếu mint account — hãy làm mới dữ liệu pool.” |
| 6050 | MissingTokenProgram2022 | Token-2022 program is required but not provided | Tương tự trên nhưng cho account chương trình SPL-Token-2022. | ”Lỗi nội bộ: thiếu chương trình Token-2022 — hãy làm mới và thử lại.” |
Lưu ý về việc đánh số lại. EnumNguồn tái tạo: github.com/raydium-io/raydium-clmm — error.rs.ErrorCodecủ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ừ6000trở đ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.
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 (xemproducts/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 đó:
| Chương trình | Phạm vi mã (chỉ Anchor) | Tài liệu tham khảo |
|---|---|---|
| AMM v4 | Mã u32 tùy chỉnh, không theo kiểu Anchor | products/amm-v4/instructions |
| Farm v3 / v5 | Mã u32 tùy chỉnh | products/farm-staking/instructions |
| Farm v6 | 6000+ (Anchor) | products/farm-staking/instructions |
| LaunchLab | 6000+ (Anchor) | products/launchlab/instructions |
Á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àoSendTransactionError và, với các chương trình Anchor, là AnchorError:
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: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:


