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 →
Stable AMM là một chương trình riêng; cấu trúc tài khoản phía pool của nó tương tự AMM v4 (AmmInfo, vaults, authority), và nó còn có một tài khoản ModelDataInfo lưu trữ bảng tra cứu. Trang này bao gồm cả hai.

Danh sách tài khoản

Thuần AMM. Stable AMM giữ tất cả thanh khoản trong các vault riêng của nó và không phụ thuộc vào OpenBook. Nó từng có một đường dẫn market-making OpenBook vào đầu cuộc đời của nó, nhưng đường dẫn đó đã không hoạt động trong nhiều năm, và bản nâng cấp 2026-06-22 đã loại bỏ mã còn sót lại. Do đó, các tài khoản thị trường serum_*amm_open_orders dưới đây là di sản: chúng có thể vẫn xuất hiện trong các giao dịch bố cục cũ để tương thích ngược, nhưng chương trình không xác thực hoặc đọc chúng, và các hướng dẫn bố cục mới sẽ bỏ qua chúng hoàn toàn.
Danh sách tài khoản hoạt động hiện nay hoàn toàn ở phía pool:

AmmInfo

Tài khoản trạng thái gốc. Bố cục gần như giống hệt AMM v4 — các tham số pool, số thập phân, phí, tham chiếu vault/mint — với một bổ sung: trường model_data_key trỏ đến bảng tra cứu.
Các trường quan trọng đối với người tích hợp:
  • model_data_key — địa chỉ của bảng tra cứu. Phải được truyền cho mọi hướng dẫn.
  • fees — cấu trúc giống hệt AMM v4. Mặc định là phí giao dịch 0,25%, chia tách LP 0,22% / giao thức 0,03%.
  • coin_vault, pc_vault — các vault của pool.
  • status — bitmask kiểm soát swap/deposit/withdraw/crank.
  • out_put.need_take_pnl_* — được quét bởi WithdrawPnl.

ModelDataInfo

Bảng tra cứu. Một mảng thưa lớn các điểm giá/số lượng.
Vòng đời: Các hướng dẫn thiết lập đã xây dựng các bảng này — InitModelData (tạo tài khoản) và UpdateModelData (điền các phần tử, đặt valid_data_count) — đã bị xóa trong bản nâng cấp 2026-06-22. Các bảng trên các pool hiện có hiện đã cố định. Tại thời chạy, các hướng dẫn có thể gọi còn lại vẫn tiêu thụ chúng:
  • Swap / deposit / withdraw gọi các hàm tra cứu thực hiện tìm kiếm nhị phân và nội suy trong elements[0..valid_data_count].

DataElement

Mục nhập nguyên tử trong bảng. Phải được sắp xếp (x tăng dần, y giảm dần, giá tăng dần) để tìm kiếm nhị phân hoạt động.
Khi điền bảng, quản trị viên chỉ định các giá trị này đã được chia tỷ lệ. Chương trình không xác thực thứ tự sắp xếp trên chuỗi (để tăng tốc độ), vì vậy sắp xếp sai gây ra báo giá không chính xác.

Authority và vaults

Giống như AMM v4:
  • amm_authority là một PDA duy nhất trên toàn chương trình được lấy từ seed ["amm authority"]. Nó sở hữu tất cả các vault pool và ký các lần di chuyển của chúng.
  • Vaults là các tài khoản SPL Token có chủ sở hữu là amm_authority, không phải ATA.
Token-2022 không được hỗ trợ.

Bitmask trạng thái

Giống hệt AMM v4. Kiểm soát xem swap/deposit/withdraw/crank có được bật hay không.

Theo dõi phí và PnL

Struct out_put theo dõi:
  • need_take_pnl_coin, need_take_pnl_pc — phí giao thức tích lũy nhưng chưa được quét. WithdrawPnl di chuyển những phí này ra ngoài.
  • swap_coin_in_amount, swap_pc_in_amount, v.v. — các bộ đếm phân tích.
Tính toán tài sản pool (sau khi tách rời). Vì không còn quỹ nào được ký quỹ dưới dạng các lệnh mở OpenBook nữa, tổng tài sản của pool hiện được tính toàn bộ từ các vault:
Các indexer và mã báo giá đã tái cấu trúc giá trị pool từ số dư OpenOrders phải loại bỏ thuật ngữ đó.

Kích thước tài khoản

ModelDataInfo rất lớn (~1,2 MB, vì 50.000 phần tử × 24 byte trên mỗi phần tử). Đây là lý do tại sao việc tạo một pool Stable yêu cầu cấp phát rent và tài khoản rõ ràng. SDK và công cụ Raydium xử lý điều này một cách minh bạch; những người tích hợp hiếm khi cần phân bổ thủ công.

Lấy tài khoản từ đầu

Giống như AMM v4, Stable AMM sử dụng khóa được seed (không phải PDA thuần). Danh tính pool chính tắc được lấy thông qua:
Tương tự đối với vaults, LP mint, target orders, v.v. Trong thực tế, hãy sử dụng SDK hoặc API để tìm nạp các địa chỉ được tính toán trước.

Đọc ở đâu

Nguồn: