Chuyển đến nội dung chính
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 →
AMM v4 đã ngừng chia sẻ thanh khoản cho OpenBook (trước đây là Serum) từ lâu; con đường tạo thị trường hybrid order-book đã không hoạt động trong nhiều năm. Bản nâng cấp này là công việc dọn dẹp: nó loại bỏ phụ thuộc Serum, tất cả các CPI order-book và các hướng dẫn tạo thị trường chết khỏi chương trình, để lại AMM v4 như một AMM constant-product (x·y=k) thuần túy. Nó không thay đổi bất kỳ hành vi giao dịch trực tiếp nào — không còn đơn hàng OpenBook nào để dừng đặt.

TL;DR cho các nhà tích hợp

  • Swap / Deposit / Withdraw tiếp tục hoạt động mà không có thay đổi. Các giao dịch được xây dựng với bố cục tài khoản cũ vẫn thực thi — các tài khoản Serum/market bị loại bỏ được đơn giản bỏ qua (không xác thực, không CPI). SwapBaseIn / SwapBaseOut vẫn mong đợi 17 (+1 tùy chọn) tài khoản; bố cục DepositWithdraw không thay đổi. Bạn không phải gửi bản cập nhật máy khách để giữ các luồng hiện có hoạt động.
  • Di chuyển sang các điểm vào swap V2. SwapBaseInV2 / SwapBaseOutV2 không có tài khoản thị trường và không có amm_open_orders (8 tài khoản tổng cộng), vì vậy các giao dịch nhỏ hơn và rẻ hơn. Các bộ định tuyến/tổng hợp nên định tuyến qua V2.
  • WithdrawPnl là một thay đổi phá vỡ hoàn toàn (chỉ quản trị viên). Nó đi từ 17 (+1 tùy chọn) → 10 tài khoản với 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) và không vượt qua xác thực. Công cụ quản trị phải được cập nhật.
  • SetParams là một thay đổi phá vỡ hoàn toàn (chỉ quản trị viên). Tài khoản thu nhỏ thành [amm, admin], và enum param được đánh số lại (Fees 9 → 2, SetOpenTime 11 → 3); AmmOwner, LastOrderDistance, UpdateOpenOrder và các tham số lưới bị loại bỏ.
  • Một số hướng dẫn không còn có thể gọi được. Initialize, PreInitialize, MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfoAdminCancelOrders giờ đây hoàn nguyên. Sử dụng Initialize2 để tạo pool.
  • Bố cục tài khoản trên chuỗi ổn định về byte, và mã lỗi không thay đổi. AmmInfo / StateData giữ bố cục của chúng (các trường OpenBook cũ được giữ lại nhưng không dùng nữa/đóng băng); việc đánh số AmmError được bảo tồn, chỉ có NotAllowed mới được thêm vào.

Tại sao điều này quan trọng (cho các nhà giao dịch, LP và nhà tích hợp)

  • Các nhà giao dịch không thấy thay đổi nào trong hành vi hoặc giá swap — đường cong constant-product không thay đổi. Các swap bố cục V2 rẻ hơn để đặt vì chúng mang ~8 tài khoản ít hơn.
  • LP giữ lại cùng một kinh tế gửi/rút. Thanh khoản đã lâu nằm hoàn toàn trong các kho pool, vì vậy giá trị pool hoàn toàn nằm trên pool; bản nâng cấp này chỉ xóa đi các đường ống thị trường cũ.
  • Các nhà tích hợp nhận được các giao dịch nhỏ hơn, đơn giản hơn và một mô hình trích dẫn đọc thẳng từ các kho. Các tích hợp hiện có không bị phá vỡ (ngoại trừ quản trị viên WithdrawPnl / SetParams), nhưng shim tương thích v1-swap là tạm thời — di chuyển sang V2 khi bạn thuận tiện.

Thay đổi cấp độ hướng dẫn

Vẫn có thể gọi được, bố cục không thay đổi (tương thích ngược)

Initialize2, Deposit, Withdraw, SwapBaseIn, SwapBaseOut, CreateConfigAccountUpdateConfigAccount giữ danh sách tài khoản hiện có của chúng. Trên SwapBaseIn / SwapBaseOut, DepositWithdraw, các tài khoản OpenBook/market vẫn được chấp nhận theo vị trí nhưng không còn được xác thực hoặc sử dụng — không có CPI được phát hành và dự trữ pool được tính toán chỉ từ kho. Số lượng tài khoản phải vẫn khớp, vì vậy các giao dịch hiện có tiếp tục thực thi không thay đổi.

SwapBaseInV2 / SwapBaseOutV2 — con đường được khuyến nghị

Bỏ qua các tài khoản thị trường và amm_open_orders hoàn toàn (8 tài khoản; thẻ 16 / 17). Toán học trích dẫn giống hệt v1. Các tích hợp mới và bộ định tuyến nên sử dụng V2.

WithdrawPnl — 17 (+1 tùy chọn) → 10 tài khoản (⚠️ phá vỡ hoàn toàn, không có con đường tương thích)

amm_open_orders và tất cả sáu tài khoản thị trường bị loại bỏ. Bố cục 10 tài khoản cố định mới, chỉ dành cho quản trị viên, không có phân tích tương thích; bố cục cũ không khớp và không vượt qua với các lỗi như InvalidCoinVault.

SetParams — giảm xuống [amm, admin] (⚠️ phá vỡ hoàn toàn) + tham số được đánh số lại

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:
ParamGiá trị cũGiá trị mới
Status00
State11
Fees92
SetOpenTime113
Tất cả các tham số lưới order-book (OrderNum, Depth, AmountWave, MinPriceMultiplier, MaxPriceMultiplier, MinSize, VolMaxCutRatio, InitOrderDepth, SetSwitchTime, ClearOpenTime, Seperate) cộng với AmmOwner, LastOrderDistanceUpdateOpenOrder bị loại bỏ. Struct SetParamsInstruction loại bỏ new_pubkeylast_order_distance.

Không còn có thể gọi được (hoàn nguyên tại thời gian chạy; các nhà xây dựng bị loại bỏ)

Hướng dẫnthẻThay thế
Initialize0Initialize2
MonitorStep2không (order-book crank, đã loại bỏ)
MigrateToOpenBook5không
WithdrawSrm8không (chiết khấu phí SRM, đã loại bỏ)
PreInitialize10Initialize2
SimulateInfo12trích dẫn ngoài chuỗi / SDK
AdminCancelOrders13không

Thay đổi dự trữ / trạng thái

  • Công thức tài sản pool. Tổng tài sản pool hiện là số dư kho − PnL đang chờ xử lý (need_take_pnl); thuật ngữ open-order OpenBook — đã bằng không trong thực tế — bị loại bỏ. Mã trích dẫn có thể đọc thẳng từ số dư kho.
  • Các trường trạng thái không dùng nữa. StateData.total_pnl_pc, total_pnl_coin, orderbook_to_init_time, swap_coin_in_amount, swap_pc_out_amount, swap_acc_pc_fee, swap_pc_in_amount, swap_coin_out_amountswap_acc_coin_fee được giữ lại để tương thích bố cục nhưng không còn được cập nhật. Các người tiêu dùng dựa vào các bộ đếm khối lượng swap_* nên chuyển sang nhật ký giao dịch.
  • Khởi tạo AmmInfo. coin_lot_size, pc_lot_sizemin_size hiện được khởi tạo thành 0.
  • Phụ thuộc bị loại bỏ và CPI. Crate serum_dex bị loại bỏ khỏi Cargo.toml; tất cả các CPI Serum DEX (invoke_dex_new_order_v3, invoke_dex_cancel_order_v2, invoke_dex_settle_funds, invoke_dex_init_open_orders, …) bị loại bỏ khỏi invokers.rs. Các struct dữ liệu bị loại bỏ: LastOrderDistance, SimulateParams, RunCrankData, GetPoolData, GetSwapBaseInData, GetSwapBaseOutData.