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 →
Raydium không chấp nhận những mint Token-2022 bất kỳ. Cả CPMM và CLMM đều chạy ở chế độ danh sách cho phép nghiêm ngặt: chỉ có một tập nhỏ các extension được phép mặc định; mọi thứ khác bị từ chối khi tạo pool. Một số mint đáng tin cây được chấp nhận thông qua địa chỉ được mã hóa cứng; CLMM còn hỗ trợ thêm thanh ghi cho từng mint do quản trị viên quản lý và phát hiện token Superstate khi chạy. Trang này là tài liệu tham khảo duy nhất cho những gì được thực thi ở đâu, kèm theo các trích dẫn dòng file từ mã nguồn chương trình.
Hỗ trợ cấp chương trình
| Chương trình | Mint Token-2022 base/quote? | Chế độ |
|---|---|---|
| CPMM | Có — bị kiểm soát | Danh sách cho phép extension nghiêm ngặt + danh sách trắng tĩnh 4 mint. |
| CLMM | Có — bị kiểm soát | Danh sách cho phép extension nghiêm ngặt + danh sách trắng tĩnh 6 mint + thanh ghi cho từng mint do quản trị viên quản lý + phát hiện Superstate. |
| AMM v4 | Không | Chương trình ra đời trước Token-2022; cả hai mint phải là Token SPL cổ điển. |
| Stable AMM | Không | Các ràng buộc giống như AMM v4. |
| Farm v6 | Có, một phần | Mint phần thưởng có thể là Token-2022 (tuân theo danh sách cho phép khi farm bọc LP của CPMM/CLMM); mint LP đặt cược của người dùng kế thừa từ pool được bọc. |
| LaunchLab | Có, do chương trình quản lý | Mint base có thể là Token-2022, nhưng chỉ thông qua lệnh initialize_with_token_2022 chuyên dụng; chính chương trình tạo mint với MetadataPointer (luôn có) và tùy chọn TransferFeeConfig (tỷ lệ ≤ 5%). Những mint Token-2022 đã tồn tại với các extension bất kỳ không thể được sử dụng làm base. |
| Burn & Earn | Phản ánh chương trình pool | Kế thừa kiểm soát của CPMM / CLMM. |
- CPMM:
is_supported_minttrongraydium-cp-swap/programs/cp-swap/src/utils/token.rs:178, được gọi từInitialize. - CLMM:
is_supported_minttrongraydium-clmm/programs/amm/src/util/token.rs:280, được gọi từCreatePool. - LaunchLab:
initialize_with_token_2022trongraydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs(mã nguồn không công khai).
Danh sách cho phép extension của CPMM và CLMM
Sau khi kiểm tra danh sách trắng tĩnh (được đề cập dưới đây), chương trình lặp qua những extension của mint và từ chối mint nếu nó mang bất kỳ extension nào khác ngoài năm extension này:| Extension | Lý do cho phép |
|---|---|
TransferFeeConfig | Toán pool trừ đi phí đến; chương trình Token-2022 xử lý phí đi. Xem algorithms/token-2022-transfer-fees. |
MetadataPointer | Trang trí — trỏ đến metadata trên chuỗi. |
TokenMetadata | Trang trí — metadata nội tuyến. |
InterestBearingConfig | Pool thấy số tiền gốc; bộ nhân UI chỉ là trang trí và số dư cơ bản được bảo toàn. |
ScaledUiAmount | Hình dạng giống với lãi suất — hệ số tỷ lệ chỉ áp dụng cho hiển thị UI. |
TransferHook, NonTransferable, ConfidentialTransferMint, PermanentDelegate, MintCloseAuthority, DefaultAccountState, GroupPointer, GroupMemberPointer, MemberPointer, Pausable, v.v. — khiến is_supported_mint trả về false và tạo pool bị hoàn nguyên.
Những dòng liên quan (CPMM, hình dạng giống hệt trong CLMM):
cp-swap/src/utils/token.rs:190–200
Đường dẫn vượt qua
Một mint Token-2022 không phù hợp với danh sách cho phép vẫn có thể được chấp nhận thông qua một trong ba đường dẫn vượt qua rõ ràng. Chúng được cố gắng theo thứ tự, trước khi lặp lại extension chạy.1. Danh sách mint tĩnh
Một mảng hằng sốMINT_WHITELIST của các chuỗi base58 được mã hóa cứng trong mỗi chương trình. Nếu địa chỉ mint khớp, hàm trả về true ngay lập tức và không có kiểm tra extension nào được thực hiện.
| Chương trình | Mint được liệt kê |
|---|---|
| CPMM | HVbpJAQGNpkgBaYBZQBR1t7yFdvaYVp2vCQQfKKEN4tM, Crn4x1Y2HUKko7ox2EZMT6N2t2ZyH7eKtwkBGVnhEq1g, FrBfWJ4qE5sCzKm3k3JaAtqZcXUh4LvJygDeketsrsH4, 2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo |
| CLMM | Bốn cái giống nhau, cộng với DAUcJBg4jSpVoEzASxYzdqHMUN8vuTpQyG2TvDcCHfZg, AUSD1jCcCyPLybk1YnvPWsHQSrZ46dxwoMniN4N2UEB9 |
2. Thanh ghi cho từng mint — chỉ CLMM
CLMM còn tham khảo một PDASupportMintAssociated tại seed [b"support_mint", mint]. Nếu PDA đó tồn tại cho mint, nó được chấp nhận bất kể tập hợp extension của nó.
PDA được tạo bởi CreateSupportMintAssociated (admin/create_support_mint_associated.rs). Lệnh được kiểm soát với hai người ký:
crate::admin::ID— quyền hạn quản trị viên tiêu chuẩn của Raydium.crate::create_support_mint_associated_owner::ID— quyền hạn chuyên dụng cho mục đích này:RayVyjyJQz9vAi126A4sGexKnSU1XeZaHTRcM1mZMPY(mainnet),rayf3nEbb3bnfN6RDGFpqPbjc5uUa3tRUzu6UVYrRx5(devnet).
3. Phát hiện Superstate — chỉ CLMM
CLMM có một đường dẫn thứ ba cụ thể cho những tài sản được token hóa của Superstate, sử dụng extensionScaledUiConfig mà phiên bản spl-token-2022 được liên kết vào chương trình CLMM không thể giải nén. Thay vì nâng cấp phụ thuộc, CLMM phát hiện token Superstate bằng hình dạng quyền hạn của chúng:
raydium-clmm/programs/amm/src/util/token.rs:485
Một mint vượt qua nhánh này nếu tất cả bốn điều sau được thỏa mãn:
- Chương trình sở hữu nó là chương trình Token-2022.
- Quyền hạn đóng băng của nó bằng
superstate_allowlist::ID. Mainnet:2Yq4T3mPNfjtEyTxSbRjRKqLf1pwbTasuCQrWe6QpM7x. Devnet:3TRuL3MFvzHaUfQAb6EsSAbQhWdhmYrKxEiViVkdQfXu. - Extension
DefaultAccountStatecủa nó được đặt thànhFrozen. - Đại biểu vĩnh viễn của nó cũng là
superstate_allowlist::ID.
Những gì những đường dẫn vượt qua không miễn khỏi
Những đường dẫn vượt qua bỏ qua danh sách cho phép extension, nhưng chương trình vẫn thực thi:- Mint được sở hữu bởi
TokenhoặcToken-2022. Một chương trình token tùy chỉnh bị từ chối phía ngược dòng. - Những hầm pool được tạo với những extension ATA phù hợp cho pool Token-2022 (
ImmutableOwner, v.v.). - Tất cả những lần chuyển đều đi qua
transfer_checked— mint có phí hạ cánh số tiền đúng vào hầm.
TransferHook không nhận được kiểm tra khi swap; hook sẽ chỉ chạy trên mỗi lần chuyển và có thể gây trục trặc cho swap. Do đó, danh sách trắng là một hành động đòi hỏi lòng tin cao.
Ngữ nghĩa “Bị chặn”
Khiis_supported_mint trả về false, tạo pool bị hoàn nguyên với ErrorCode::NotSupportMint (CPMM) / ErrorCode::NotSupportMint (CLMM). Xem reference/error-codes để biết những mã số.
Những pool hiện tại không thể không thành công kỳ vọng kiểm tra này — cánh cổng chỉ chạy khi tạo. Những extension mint là bất biến cho những danh mục Raydium từ chối (transfer hook, non-transferable, confidential transfer không thể được thêm sau tạo), vì vậy kiểm tra tĩnh là đủ.
Tại sao mỗi extension bị loại trừ lại bị loại trừ
- TransferHook — gọi một chương trình tùy chỉnh trên mỗi lần chuyển, với tiêu thụ CU bất kỳ, những điều kiện lỗi bất kỳ, và khả năng nhập lại chương trình gọi. Không có hộp cát an toàn nào tồn tại. Một số DEX duy trì danh sách cho phép hook; Raydium thì không.
- NonTransferable —
Transferluôn thất bại. Một pool không thể giữ quyền nuôi. - ConfidentialTransfer — những số tiền chuyển được mã hóa; đường cong không thể định giá swap.
- PermanentDelegate — người nắm giữ đại biểu có thể quét bất kỳ tài khoản token nào, bao gồm hầm pool. Chỉ được phép thông qua danh sách trắng tĩnh cho những nhà phát hành đáng tin cây (ví dụ, stablecoin được quản lý).
- MintCloseAuthority — mint có thể được đóng; những pool hiện tại trở nên không sử dụng được. Bị cấm mặc định.
- DefaultAccountState (Frozen) — những ATA của pool sẽ hạ cánh trong trạng thái
Frozenvà cần phải được giải phóng cho mỗi tài khoản. Chỉ được phép thông qua phát hiện Superstate, giả định rằng nhà phát hành giải phóng những tài khoản thể chế khi ghi danh. - Group/Member pointers — không tích cực gây hại, nhưng chưa được xem xét. Bị cấm mặc định để giữ bề mặt hẹp.
Kế toán phí chuyển
Đối với những mint mangTransferFeeConfig, mỗi swap, tiền gửi và rút lại di chuyển ít hơn số tiền danh nghĩa. SDK trình bày cả hai nửa của tính toán:
amountIn + token2022FeeInlà “bạn gửi”amountOut - token2022FeeOutlà “bạn nhận”feeAmountlà phí pool (LP + giao thức), riêng biệt với phí chuyển Token-2022
amountIn → amountOut sẽ làm giảm những chi phí.
Giới hạn maximumFee
Những phí chuyển Token-2022 được giới hạn mỗi lần chuyển. Đối với mint 1 % với giới hạn 10,000 token, một lần chuyển 100,000,000 token chỉ trả 10,000 trong phí. Phương pháp computeSwapAmount của SDK áp dụng giới hạn; những người gọi chương trình trực tiếp phải sao chép nó.
Chuyển đổi epoch
Một quyền hạn mint có thể lên lịch thay đổi tỷ lệ phí kích hoạt ở epoch tiếp theo. Trong cửa sổ chuyển đổi, hai cấu hình (older, newer) tồn tại trên mint cùng một lúc và TransferChecked chọn theo epoch hiện tại. Cả SwapV2 của CPMM và SwapV2 của CLMM đều chuyển toàn bộ tài khoản mint trong accounts, vì vậy chương trình đọc cấu hình phù hợp mà không cần tra cứu thêm.
Nếu bạn trích dẫn nhiều hơn một epoch trước qua Trade API hoặc SDK, phí đã thực thi có thể khác với phí được trích dẫn — được giới hạn bởi maximum_fee_basis_points của cấu hình cũ hơn.
Lãi suất và ScaledUiAmount
Pool giữ số tiền gốc; “số tiền UI” là số tiền gốc nhân với hệ số tỷ lệ phụ thuộc thời gian hoặc được đặt bởi quản trị viên. Toán swap hoạt động trên gốc:pool.token0Vault.amount là gốc.
Định nghĩa “pool Token-2022”
Một pool là pool Token-2022 nếu bất kỳ mint nào cóprogramId == TokenzQdB.... API trình bày điều này:
programId để điều phối, và hasTransferFee để trình bày cảnh báo UI.
Trợ giúp SDK
Những lỗi tích hợp phổ biến
- Pre-flighting chỉ ID chương trình. Một mint có thể là Token-2022 và không được hỗ trợ. Đi bộ danh sách extension so với danh sách cho phép (và danh sách trắng tĩnh) trước khi cho phép tạo pool.
- Tin tưởng vào quote của SDK khi mint không được chấp nhận hoàn toàn. API quote không từ chối trích dẫn — tạo pool là những gì bị hoàn nguyên. Xác nhận ngữ nghĩa
is_supported_mintngoài chuỗi trước khi công khai tạo pool trong UI của bạn. - Trích dẫn mà không có cắt phí chuyển. Một mint phí chuyển 1% trên cả hai phía của pool CPMM 0.25% có phí hiệu quả khoảng 2.25%, không phải 0.25%. Sử dụng quote SDK hoặc quote Trade API — không bao giờ tính toán phí theo cách thủ công từ mức phí pool một mình.
- Gọi lệnh
Swapkế thừa trên pool Token-2022.Swapra đời trước Token-2022. Sử dụngSwapV2bất cứ khi nào bất kỳ mint nào là Token-2022. - Tự động liệt kê mint Token-2022 mới. Những ví và bộ tập hợp nên kiểm tra
TransferHookvàNonTransferabletrước khi trình bày mint cho người dùng; cả hai đều không thân thiện với Raydium.
Công việc trong tương lai
Những mục tiêu của bản đồ đường dùm lỗi hệ sinh thái Solana và giao thức sẽ thay đổi ma trận này:- Transfer-hook programs được cho phép ở cấp độ Solana (quy ước hệ sinh thái đang phát triển).
- Những AMM tương thích với confidential-transfer (giai đoạn nghiên cứu).
- Thanh ghi cho từng mint CPMM rộng hơn (bằng với CLMM).
- Nâng cấp phụ thuộc để giải mã
ScaledUiConfigcủa CLMM hoạt động mà không cần heuristic Superstate.
Con trỏ
algorithms/token-2022-transfer-fees— toán phí trong swap.products/cpmm/instructions—SwapV2,Initialize.products/clmm/instructions—SwapV2,CreatePool,CreateSupportMintAssociated.reference/error-codes— mã sốNotSupportMintcho mỗi chương trình.
raydium-cp-swap/programs/cp-swap/src/utils/token.rs—MINT_WHITELIST,is_supported_mint.raydium-clmm/programs/amm/src/util/token.rs—MINT_WHITELIST,superstate_allowlist,is_superstate_token,is_supported_mint.raydium-clmm/programs/amm/src/instructions/admin/create_support_mint_associated.rs— lệnh thanh ghi cho từng mint.raydium-launchpad/programs/launchpad/src/instructions/initialize_with_token_2022.rs— tạo mint base Token-2022 của LaunchLab.


