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 →
Kể từ nâng cấp chương trình 2026-07, phụ thuộc OpenBook / Serum của AMM v4 đã bị loại bỏ. Các lệnh v1 cũ
SwapBaseIn / SwapBaseOut, Deposit và Withdraw giữ nguyên bố cục tài khoản cũ để tương thích ngược: các tài khoản thị trường vẫn được chấp nhận ở vị trí cũ, nhưng chúng không còn được xác thực hoặc sử dụng (không có CPI được phát hành). Các tích hợp mới nên sử dụng các điểm vào swap V2, loại bỏ hoàn toàn các tài khoản thị trường. Một số lệnh đã bị loại bỏ và hiện trả về lỗi — xem mục nhập changelog. Danh sách tài khoản dưới đây sử dụng tên trường từ Raydium SDK; IDL cơ bản đôi khi sử dụng tiền tố serum_*.Danh sách lệnh
SDK chỉ cung cấp các builder cho các lệnh hướng tới người dùng. Các lệnh bảo trì thường được gọi bởi người giữ Raydium.
Đã loại bỏ / không còn có thể gọi được (chúng hiện trả về lỗi
unimplemented!, và các builder client của chúng đã bị xóa): Initialize (tag 0, sử dụng Initialize2), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, sử dụng Initialize2), SimulateInfo (12), AdminCancelOrders (13).
Initialize2
Khởi động một pool AMM v4 mới được liên kết với một thị trường OpenBook hiện có.
Tham số
W, ký S)
Điều kiện sau
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, trong đóINIT_BURN≈ 100 đơn vị LP được giữ ngoài lưu thông.- Không có đơn hàng OpenBook nào được đăng (lưới sổ đặt hàng đã bị loại bỏ).
market_program/marketvẫn được truyền nhưng chỉ được lưu trữ dưới dạng các trường tham chiếu;coin_lot_size/pc_lot_size/min_sizeđược khởi tạo thành0.
InvalidInput (số thập phân không khớp, không được sắp xếp), NotAllowed.
Deposit
Thêm thanh khoản.
Tham số
Toán học — theo tỷ lệ tiêu chuẩn. Sử dụng dự trữ hiệu quả của pool (vault + trên sổ), SDK tính toán cặp coin/pc mang lại số lượng LP nhất định và kiểm tra nó so với
max_*. Trả về lỗi ExceededSlippage nếu một trong hai bên vượt quá giới hạn.
Withdraw
Đốt LP, nhận cả hai bên.
Tham số
Deposit với hướng đảo ngược; lp_mint có thể ghi để đốt, các ATA của người dùng là người nhận. Bố cục tài khoản không thay đổi (tài khoản thị trường vẫn được truyền theo vị trí, bị bỏ qua). Không còn bước thanh toán từ OpenBook nữa — toán học theo tỷ lệ sử dụng trực tiếp số dư vault.
SwapBaseIn
Swap đầu vào chính xác. Luôn là swap đường dẫn AMM (không định tuyến qua khớp OpenBook).
Sử dụng các biến thể V2 cho mã mới. Vì phụ thuộc OpenBook của AMM v4 đã bị loại bỏ, các điểm vào V1 (
SwapBaseIn, SwapBaseOut) vẫn mong đợi danh sách tài khoản đầy đủ 17 tài khoản (hoặc 18 với tài khoản target-orders tùy chọn), nhưng các tài khoản OpenBook/thị trường hiện được chấp nhận theo vị trí và bị bỏ qua — chúng không được xác thực và không có CPI được phát hành. Truyền số lượng tài khoản sai vẫn trả về lỗi WrongAccountsNumber, nhưng nội dung tài khoản thị trường không còn được kiểm tra. Các tích hợp mới nên sử dụng SwapBaseInV2 / SwapBaseOutV2, chúng có danh sách tài khoản nhỏ hơn nhiều và đại diện cho đường dẫn thực thi chính tắc ngày hôm nay. Các hình thức V1 được ghi lại ở đây để hoàn chỉnh và để đọc các giao dịch trên chuỗi hiện có.
Toán học — xem
products/amm-v4/math.
Điều kiện trước
amm.statuscho phép swap (bit 0 của mặt nạ trạng thái không được đặt).amm.state_data.pool_open_time <= now.amount_in > 0.user_source_token_accountgiữ ít nhấtamount_in.
- Người dùng mất
amount_incủa token nguồn, nhậnamount_out ≥ minimum_amount_outcủa token đích. need_take_pnl_*tăng thêm phần chia sẻ phí giao thức.- Lưu ý: các bộ đếm phân tích
state_data.swap_*_in_amount/swap_*_out_amountkhông còn được cập nhật — giá trị của chúng bị đóng băng. Sử dụng nhật ký giao dịch để phân tích khối lượng.
ExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (mint coin/pc giống nhau).
SwapBaseOut
Đầu ra chính xác, nghịch đảo của SwapBaseIn. Cùng tài khoản.
Tham số
SwapBaseInV2 / SwapBaseOutV2
Các điểm vào swap biến thể (tag 16 / 17) bỏ qua hoàn toàn các tài khoản OpenBook. Toán học giống với đường dẫn V1, nhưng danh sách tài khoản thu nhỏ chỉ còn phía AMM và người dùng — 8 tài khoản, và amm_open_orders không được truyền:
Dự trữ pool hiện là số dư vault (trừ PnL đang chờ xử lý), vì vậy toán học báo giá rõ ràng và giống với đường dẫn v1. Sử dụng V2 để tiết kiệm tính toán và tránh truyền các tài khoản thị trường (hiện bị bỏ qua). Bộ định tuyến Raydium luôn sử dụng hình thức V2 khi định tuyến qua AMM v4.
Các tham số giống như các hình thức V1 (
amount_in / minimum_amount_out cho SwapBaseInV2; max_amount_in / amount_out cho SwapBaseOutV2).
MonitorStep và các lệnh bị loại bỏ khác
Về mặt lịch sử, MonitorStep quay vòng tương tác OpenBook của pool: nó thanh toán các đơn hàng đã điền (di chuyển tiền từ vault thị trường vào vault pool thông qua CPI OpenBook), hủy các đơn hàng cũ, và đăng các đơn hàng mới để đóng khoảng cách giữa target_orders và amm_open_orders. Với phụ thuộc OpenBook bị loại bỏ, không có gì để quay vòng và lệnh đã biến mất. Bất kỳ người giữ hoặc tích hợp nào vẫn gọi nó phải loại bỏ lệnh gọi.
WithdrawPnl / TakePnl
Quét admin của phí giao thức đã tích lũy.
Tham số
WithdrawPnlkhông có tham số; nó đọcneed_take_pnl_*và di chuyển những số tiền chính xác đó.
Hiệu ứng
- Chuyển
need_take_pnl_cointừpool_coin_token_accountđếnpnl_coin_token_account. - Tương tự cho pc.
- Đặt
need_take_pnl_coinvàneed_take_pnl_pcthành 0. - Thay đổi logic: nếu số dư vault không đủ để bao gồm PnL đã tích lũy, lệnh trả về
TakePnlErrortrực tiếp (nó không còn thao tác với trạng thái sổ đặt hàng).
SetParams
Thay đổi tham số admin, được gọi bởi multisig Raydium. Các tham số là tag param: u8 + tải trọng.
Ma trận thay đổi trạng thái
Cột OpenBook đã biến mất — không có lệnh nào chạm vào sổ đặt hàng nữa.Tiếp theo
products/amm-v4/code-demos— Ví dụ TypeScript cho các luồng swap và LP.products/amm-v4/fees— Chi tiếtWithdrawPnlvà phân chia phí.reference/error-codes— Bảng tham chiếu phía trước (các lỗi AMM v4 được liệt kê trên trang đó).
- Chương trình Raydium AMM —
raydium-io/raydium-amm - Mô-đun
Liquiditycủa Raydium SDK v2 - Chương trình OpenBook — xác thực tài khoản ở phía thị trường

