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 →
Router không thực hiện toán học
Chương trình định tuyến không triển khai bất kỳ logic định giá nào. Nó là một công cụ điều phối thuần túy: nó chấp nhận một tuyến đường, truyền tài khoản cho các chương trình con, và kết nối các luồng token. Mỗi bước định giá dựa trên curve của chương trình pool của nó:- Bước AMM v4: sử dụng công thức tích không đổi (
x · y = k) với định giá hybrid OpenBook. Xemproducts/amm-v4/math. - Bước CPMM: sử dụng công thức tích không đổi với mức phí có thể cấu hình. Xem
products/cpmm/math. - Bước CLMM: sử dụng toán học tick thanh khoản tập trung. Xem
algorithms/clmm-math. - Bước ổn định: sử dụng curve stable-swap cho tài sản cùng loại. Xem
products/stable/math.
- Gọi lệnh swap của mỗi pool thông qua CPI.
- Thu thập số lượng đầu ra.
- Truyền nó làm số lượng đầu vào cho bước tiếp theo.
- Kiểm tra đầu ra cuối cùng so với giới hạn slippage của người gọi.
Slippage tăng dồn
Trên một tuyến đường multi-hop, slippage ở mỗi bước tăng dồn. Một slippage nhỏ ở bước 1 trở thành slippage lớn hơn ở bước 2 vì thể tích vào bước 2 đã bị giảm. Ví dụ:minimum_amount_out, router sẽ kiểm tra đầu ra cuối cùng của bạn so với giới hạn toàn cục này. Mỗi bước cũng kiểm tra swap của nó so với cấu trúc phí cục bộ của nó, nhưng router không tái định giá giữa tuyến đường—bạn phải tính toán trước tuyến đường và bao gồm đủ dung sai slippage.
Bước CLMM và limit_prices
Đối với mỗi bước vào một pool CLMM, router kiểm tra xemsqrt_price_x64 hiện tại của pool có nằm trong giới hạn được chỉ định hay không. Các giới hạn được truyền dưới dạng VecDeque<u128> gọi là limit_prices:
- Một
sqrt_price_x64cho mỗi bước CLMM trong tuyến đường. sqrt_price_x64là biểu diễn giá dựa trên tick được sử dụng bởi CLMM. Xemalgorithms/clmm-mathđể xem định nghĩa.- Router thực thi:
Các biến thể lệnh và limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Cũ, thẻ 0 và 1): VecDequelimit_priceslà bắt buộc. Một deque trống bị từ chối bằng một lỗi nếu bất kỳ bước nào là một pool CLMM. Bạn phải cung cấp một giá cho mỗi bước CLMM, theo thứ tự. -
SwapBaseIn,SwapBaseOut(Hiện tại, thẻ 8 và 9): VecDequelimit_priceslà tùy chọn. Một deque trống bị bỏ qua im lặng; không có kiểm tra giá nào được thực hiện. Mã mới nên sử dụng các mã này.
Xây dựng limit_prices
Đối với một tuyến đường có M bước CLMM, deque phải chứa chính xác M mục. Sắp xếp chúng theo bước:Khi nào để kiểm tra limit_prices
sqrt_price_x64 là một ảnh chụp nhanh của giá hiện tại của pool. Nó thay đổi liên tục khi các swap được thực hiện. Bạn nên:
- Tìm nạp trạng thái hiện tại của pool từ on-chain.
- Tính toán các giới hạn có thể chấp nhận được (ví dụ: ±0,5% của giá hiện tại).
- Mã hóa các giới hạn đó vào
limit_prices. - Bao gồm các giới hạn trong lệnh router của bạn.
Xử lý phí
Mỗi pool tính phí theo cấu hình của nó:- AMM v4: 0,25% (cố định) chia giữa LP, giao thức và quỹ.
- CPMM: có thể cấu hình cho mỗi
AmmConfig(mặc định 0,25%, phân chia khác nhau theo tầng). - CLMM: có thể cấu hình cho mỗi pool, lấy từ số lượng đầu vào.
- Ổn định: giống AMM v4, 0,25% phân chia.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(nếu có)products/stable/fees(nếu có)
Ví dụ kế toán multi-hop
Giả sử bạn định tuyến USDC → SOL → STEP trên hai pool tích không đổi, mỗi cái có phí 0,25%:Cân nhắc độ chính xác
Giống như tất cả các chương trình Solana, router sử dụng số học số nguyên:- Tất cả các số lượng là
u64(lamports hoặc đơn vị nhỏ nhất token). - Tính toán curve sử dụng các trung gian
u128khi cần để tránh tràn. - Các quy ước làm tròn phụ thuộc vào chương trình con. Router không làm tròn lại.
Bước tiếp theo
products/amm-v4/math— toán học tích không đổi.products/cpmm/math— CPMM tích không đổi với Token-2022.algorithms/clmm-math— định giá thanh khoản tập trung.products/stable/math— curve stable-swap.products/routing/code-demos— ví dụ về định giá trước khi định tuyến.


