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 →
Thông tin phiên bản
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - Network: mainnet-beta
- Router program ID:
routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS - Xác minh: Tháng 4 năm 2026
Ví dụ 1: Routing dựa trên SDK
Nguồn:src/trade/routeSwap.ts
Raydium SDK trừu tượng hóa việc xây dựng route. Sử dụng các hàm trade của SDK để soạn một route đa bước và thực thi nó thông qua router một cách tự động.
Thiết lập
Xây dựng một swap đa bước
Routing trong@raydium-io/raydium-sdk-v2 được expose trên raydium.tradeV2. Hình dạng toàn diện — tìm nạp dữ liệu pool, tính toán route, xếp hạng theo output, và xây dựng giao dịch swap — được hiển thị dưới đây; điều này phù hợp với ví dụ chính thức trong raydium-sdk-V2-demo/src/trade/routeSwap.ts.
Hành vi dự kiến
SDK xử lý:- Khám phá route trong AMM v4, CPMM, CLMM, và Stable AMM.
- Derivation tài khoản (trạng thái pool, vault, tài khoản quan sát, tạo trước ATA).
- Packing instruction cho chương trình router (
Router) khi route là đa bước, hoặc swap pool trực tiếp khi một pool đơn đã cho kết quả tốt nhất. - Thực thi slippage thông qua tham số
slippagetrêngetAllRouteComputeAmountOut.
raydium.tradeV2.swap có thể trả về nhiều hơn một transaction — transaction đầu tiên thường khởi tạo các ATA trung gian và transaction thứ hai thực hiện swap. Luôn truyền sequentially: true tới execute() để chúng xác nhận theo thứ tự.
Ví dụ 2: Xây dựng instruction thô (mã giả kiểu Rust)
Nếu bạn cần kiểm soát tốt hơn hoặc đang xây dựng một chương trình CPI vào router, hãy xây dựng instruction theo cách thủ công. Ví dụ dưới đây sử dụng tag 8 (SwapBaseIn) — biến thể Current được khuyến nghị — và định tuyến thông qua các ATA do người dùng sở hữu từ đầu đến cuối.
Kịch bản: USDC → SOL (CPMM) → mSOL (CPMM)
Bước 1: Derive các ATA của người dùng
Bước 2: Thu thập tài khoản cho mỗi bước
Hop 1 là USDC/SOL trên CPMM. Hop 2 là SOL/mSOL trên CPMM.Bước 3: Xây dựng instruction
Bước 4: Gửi giao dịch
Ví dụ 3: Xử lý lỗi
Những lỗi phổ biến và cách khôi phục:ExceededSlippage
Output nhỏ hơnminimum_amount_out. Thử lại với dung sai slippage cao hơn hoặc tái báo giá route.
SqrtPriceX64 (CLMM)
Giá của một bước CLMM trôi ngoài ranh giớilimit_prices. Cập nhật ranh giới và thử lại.
InvalidOwner
Một ATA trung gian hoặc output không do người gọi sở hữu. Router xác thực quyền sở hữu trên mỗi slot; đảm bảo mỗi ATA bạn truyền được derive từ ví của người dùng (không phải từ bất kỳ authority nào khác).Mẹo và best practices
Tạo trước các ATA trung gian
Trước khi định tuyến qua một token trung gian mới lần đầu tiên, hãy tạo ATA của người dùng để route không bị lỗi xác thực:CreateSyncNative (tag 5) — nó tạo ATA, chuyển SOL, và đồng bộ hóa trong một instruction.
Báo giá trước khi thực thi
Luôn truy vấn các pool và tính toán output dự kiến trước khi xây dựng instruction:Sử dụng các biến thể instruction mới hơn (8–9)
Tag 8 và 9 (SwapBaseIn và SwapBaseOut) lịch sự hơn với limit_prices. Ưu tiên chúng hơn các biến thể kế thừa nếu bạn không cần xác thực giá CLMM.
Tiếp theo
products/routing/instructions— tham chiếu instruction đầy đủ.products/routing/accounts— chi tiết derivation tài khoản.products/cpmm/code-demos— ví dụ swap CPMM để so sánh.reference/program-addresses— ID chương trình chính thức và địa chỉ devnet.
@raydium-io/raydium-sdk-v2trên npmraydium-io/raydium-sdk-V2(nguồn mở)raydium-io/raydium-sdk-V2-demo— các demo đầu cuối chính thức bao gồmrouteSwap.ts- Mã nguồn chương trình AMM Routing không được công khai; xác minh ID chương trình dựa trên API trực tiếp và bytecode on-chain


