Skip to main content
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, DepositWithdraw 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ố
Tài khoản (có thể ghi 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 / market vẫ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ành 0.
Lỗi phổ biếnInvalidInput (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ố
Tài khoản (tóm tắt) 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ố
Tài khoản — giống như 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ó.
Tham số
Tài khoản (tóm tắt) Toán học — xem products/amm-v4/math. Điều kiện trước
  • amm.status cho 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_account giữ ít nhất amount_in.
Điều kiện sau
  • Người dùng mất amount_in của token nguồn, nhận amount_out ≥ minimum_amount_out củ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_amount khô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.
Lỗi phổ biếnExceededSlippage, 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

Đã loại bỏ — không còn có thể gọi được. Kể từ nâng cấp 2026-07, MonitorStep (tag 2) đã bị loại bỏ khỏi chương trình và hiện trả về lỗi (unimplemented!) nếu được gọi. Trình tạo client của nó cũng đã bị xóa. Điều tương tự áp dụng cho MigrateToOpenBook (5), WithdrawSrm (8), SimulateInfo (12), AdminCancelOrders (13), và các điểm vào tạo pool cũ Initialize (0) / PreInitialize (10) — sử dụng Initialize2 thay thế.
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_ordersamm_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ố
  • WithdrawPnl không có tham số; nó đọc need_take_pnl_* và di chuyển những số tiền chính xác đó.
Thay đổi phá vỡ (chỉ admin). Danh sách tài khoản giảm từ 17 (+1 tùy chọn) xuống 10amm_open_orders và tất cả sáu tài khoản thị trường đã bị loại bỏ — không có phân tích tương thích. Bố cục cũ không khớp (cũ #5 là amm_open_orders, hiện là pool_coin_token_account) và thất bại với các lỗi như InvalidCoinVault. Công cụ admin phải được cập nhật.
Tài khoản (bố cục 10 tài khoản mới) Hiệu ứng
  • Chuyển need_take_pnl_coin từ pool_coin_token_account đến pnl_coin_token_account.
  • Tương tự cho pc.
  • Đặt need_take_pnl_coinneed_take_pnl_pc thành 0.
  • Thay đổi logic: nếu số dư vault không đủ để bao gồm PnL đã tích lũy, lệnh trả về TakePnlError trực tiếp (nó không còn thao tác với trạng thái sổ đặt hàng).
Không thay đổi dự trữ vì PnL đã tích lũy đã bị loại trừ khỏi bất biến.

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.
Thay đổi phá vỡ (chỉ admin). Danh sách tài khoản được giảm xuống chỉ còn [amm (W), admin (S)] (quyền hạn, open-orders, target-orders, vault, và tất cả các tài khoản thị trường đã bị loại bỏ). Enum param được đánh số lại và cắt ngắn: Status = 0, State = 1, Fees = 2 (trước đó là 9), SetOpenTime = 3 (trước đó là 11). Tất cả các tham số lưới sổ đặt hàng và AmmOwner, LastOrderDistance, UpdateOpenOrder đã bị loại bỏ, và struct SetParamsInstruction đã loại bỏ new_pubkeylast_order_distance. Công cụ admin phải được cập nhật.

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

Nguồn: