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ừ bản nâng cấp 2026-07, phụ thuộc OpenBook / Serum của AMM v4 đã bị xóa — không có lệnh nào đọc hoặc ghi trạng thái OpenBook nữa. Các tài khoản thị trường dưới đây chỉ được giữ lại như những placeholder vị trí trên bố cục lệnh v1 cũ (được chấp nhận nhưng bỏ qua) và như các trường tham chiếu trên AmmInfo. Hãy sử dụng các điểm vào swap V2, những điểm này hoàn toàn bỏ qua chúng. Trang này vẫn nhóm các tài khoản thành các phần “pool-owned” và “OpenBook (legacy)” để đọc các giao dịch cũ hơn.

Danh sách khoá

Một pool AMM v4 ghi lại một thị trường được liên kết trên AmmInfo tại thời điểm tạo. Bức tranh đầy đủ: Lưu ý: “serum” được giữ lại như tiền tố trong IDL và tên trường của AMM v4 để tương thích ngược. Các tài khoản này không còn hoạt động sau khi xóa OpenBook.

AmmInfo

Tài khoản trạng thái gốc của pool. Lớn (≈ 752 byte) vì nó mang cả tham chiếu pool và OpenBook nội tuyến.
Bố cục struct không thay đổi (tương thích byte) nên các deserializer hiện tại tiếp tục hoạt động, nhưng sau khi xóa OpenBook, các trường được đánh dấu DEPRECATED ở trên không còn được ghi — các bộ đếm khối lượng swap_* bị đóng băng ở giá trị cuối cùng của chúng. Để phân tích khối lượng, hãy sử dụng nhật ký giao dịch thay vì các trường này. Chỉ need_take_pnl_*pool_open_time được duy trì tích cực.
Các trường hướng đến người tích hợp:
  • coin_vault, pc_vault — các vault SPL Token của pool. cointoken_0 theo quy ước Serum/OpenBook (base), pctoken_1 (quote).
  • coin_decimals, pc_decimals — khớp với các mint.
  • open_orders, target_orders, market — các trường tham chiếu cũ. Vẫn có trên AmmInfo và vẫn được truyền theo vị trí trên bố cục lệnh v1 cũ, nhưng chương trình không còn đọc hoặc xác thực chúng. Các điểm vào swap V2 bỏ qua chúng.
  • fees.swap_fee_numerator / swap_fee_denominator — phí giao dịch kết hợp. Mặc định 25 / 10_000 = 0.25%.
  • status — bitmask gating các hoạt động. Có thể đặt bởi admin thông qua AdminSetStatus.
  • state_data.need_take_pnl_* — delta giữa phí tích lũy brutto và những gì đã được quét. TakePnl đặt lại những cái này thành không.

Dây dẫn OpenBook

Đã xóa. Phụ thuộc OpenBook / Serum đã bị xóa khỏi chương trình (bản nâng cấp 2026-07). Các tài khoản được mô tả trong phần này không còn được xác thực hoặc sử dụng. Chúng vẫn tồn tại như các trường tham chiếu trên AmmInfo và như các placeholder vị trí trên bố cục lệnh v1 cũ. Sử dụng các điểm vào swap V2 (SwapBaseInV2 / SwapBaseOutV2) bỏ qua hoàn toàn các tài khoản này.
Khi bạn gọi lệnh v1SwapBaseIn / SwapBaseOut, Deposit, hoặc Withdraw, số lượng tài khoản phải vẫn khớp với bố cục cũ (các tài khoản thị trường chiếm các vị trí lịch sử của chúng), nhưng nội dung của chúng không còn được kiểm tra — không có CPI nào được phát hành đối với chúng. Mã mới nên sử dụng các biến thể swap V2, không lấy các tài khoản này.
amm_open_orders của AMM là một tài khoản do OpenBook sở hữu chứa trạng thái lệnh giới hạn của pool trên thị trường này: các lệnh hoạt động, số dư đã giải quyết, người giới thiệu, v.v. amm_target_orders là phía AMM: nó chứa lưới dự định của AMM (giá/kích thước cho mỗi khe lệnh) để chương trình có thể so sánh rẻ tiền với những gì hiện đang được đăng và đặt / hủy sự khác biệt.

PDA Authority

Có chính xác một PDA amm_authority cho toàn bộ chương trình AMM v4. Seed của nó là tầm thường (["amm authority"]) và bump của nó được lưu trữ trên mỗi AmmInfo. Authority này ký tất cả các lần di chuyển token cho tất cả các pool AMM v4.
Có một authority scoped pool riêng biệt được lấy cho mỗi pool để ký các hoạt động OpenBook (amm_authority ở trên thực tế bao gồm cả hai trong thiết kế chương trình này; các phiên bản khác nhau sử dụng các lệnh lấy khác nhau, vì vậy hãy kiểm tra AmmInfo.nonce của pool cụ thể trong mã).

Vaults

Các vault SPL Token của pool là các tài khoản token tiêu chuẩn có owneramm_authority. Không phải ATA — địa chỉ của chúng là các PDA cụ thể được lấy tại Initialize với các seed ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id]. Địa chỉ được lưu trữ trên AmmInfo; lệnh lấy là một điều tò mò một lần. Token-2022 không được hỗ trợ. Chương trình hardcode ID chương trình SPL Token cho tất cả các lần di chuyển vault. Cố gắng liên kết một pool AMM v4 với một mint Token-2022 sẽ thất bại tại Initialize.

LP mint

Một mint SPL Token cổ điển có authority là amm_authority. Tổng cung theo dõi quyền sở hữu LP của pool; đốt LP trả lại token từ cả hai vault theo tỷ lệ. Vì AMM v4 trước CPMM, không có lp_supply mirror trong trạng thái pool — đọc cung cấp trên chuỗi của mint trực tiếp.

Bitmask trạng thái

AmmInfo.status gating các hoạt động. Các bit (vị trí có thể khác nhau giữa các phiên bản chương trình — xác nhận thông qua nguồn): Multisig Raydium đặt những cái này thông qua SetParams (với param = Status). (AdminCancelOrders đã bị xóa.)

Quan sát / oracle

AMM v4 không có tài khoản quan sát chuyên dụng. Các giao thức khác cần TWAP trên chuỗi thường tiêu thụ các lần giao nhau sách OpenBook gián tiếp hoặc đọc ngoài chuỗi. Nếu bạn cần TWAP Raydium với hỗ trợ chương trình, hãy sử dụng CPMM hoặc CLMM.

Lấy các tài khoản của pool từ đầu

Vì AMM v4 không được thiết kế cho các PDA xác định theo cặp (nó trước quy ước Solana đó), amm_id chính tắc là một seeded keypair được lấy với:
Mô hình seeded-key tương tự áp dụng cho amm_open_orders, amm_target_orders, amm_withdraw_queue, pool_temp_lp, pool_coin_token_account, pool_pc_token_account, và lp_mint. SDK và API tính toán trước những cái này cho bạn; xem raydium-sdk-v2’s Liquidity.getAssociatedPoolKeys. Trong thực tế, các người tích hợp đọc bộ tài khoản đầy đủ của pool từ GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> hoặc từ SDK. Lệnh lấy bằng tay hiếm khi cần thiết.

Tham chiếu nhanh vòng đời

Các pool và tài khoản của chúng tồn tại vô thời hạn. Ngay cả khi thanh khoản được rút hoàn toàn, AmmInfo vẫn tồn tại.

Đọc ở đâu

Nguồn: