本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
文件變更日誌條目。如需所有更新的索引,請參閱
reference/changelog。如需協議本身的歷史時間軸,請參閱 introduction/history-and-milestones。x·y=k)AMM。它不會改變任何實時交易行為——沒有遺留的 OpenBook 訂單需要停止下單。
整合者速覽
- Swap / Deposit / Withdraw 無需變更即可繼續運作。 使用舊帳戶佈局構建的交易仍會執行——已移除的 Serum/市場帳戶會被簡單忽略(無驗證、無 CPI)。
SwapBaseIn/SwapBaseOut仍需要 17 個(+1 個可選) 帳戶;Deposit和Withdraw佈局保持不變。你無需發佈客戶端更新來保持現有流程運作。 - 遷移至 V2 交換進入點。
SwapBaseInV2/SwapBaseOutV2不含市場帳戶和amm_open_orders(共 8 個帳戶),因此交易更小、成本更低。路由器/聚合器應透過 V2 路由。 WithdrawPnl是硬性破壞性變更(僅限管理員)。 帳戶數從 17 個(+1 個可選)→ 10 個,無相容性解析;舊佈局會錯位(舊的 #5 是amm_open_orders)並驗證失敗。管理員工具必須更新。SetParams是硬性破壞性變更(僅限管理員)。 帳戶縮減至[amm, admin],param列舉被重新編號(Fees9 → 2,SetOpenTime11 → 3);AmmOwner、LastOrderDistance、UpdateOpenOrder和網格參數已移除。- 多個指令不再可呼叫。
Initialize、PreInitialize、MonitorStep、MigrateToOpenBook、WithdrawSrm、SimulateInfo和AdminCancelOrders現在會回復。使用Initialize2建立池。 - 鏈上帳戶佈局位元組穩定,錯誤代碼保持不變。
AmmInfo/StateData保持其佈局(舊 OpenBook 欄位保留但已棄用/凍結);AmmError編號保留,僅在末尾附加新的NotAllowed。
為什麼這很重要(對交易者、LP 和整合者)
- 交易者在交換行為或定價上看不到變化——常數乘積曲線保持不變。V2 佈局交換成本更低,因為它們攜帶的帳戶少約 8 個。
- LP 保持相同的存入/提取經濟學。流動性長期以來完全位於池金庫中,因此池價值完全在池上;此升級僅刪除了陳舊的市場管道。
- 整合者獲得更小、更簡單的交易和直接從金庫讀取的報價模型。現有整合不會中斷(除了管理員
WithdrawPnl/SetParams),但 v1 交換相容性墊片是臨時的——請在方便時遷移至 V2。
指令級變更
仍可呼叫,佈局不變(向後相容)
Initialize2、Deposit、Withdraw、SwapBaseIn、SwapBaseOut、CreateConfigAccount 和 UpdateConfigAccount 保持其現有帳戶列表。在 SwapBaseIn / SwapBaseOut、Deposit 和 Withdraw 上,OpenBook/市場帳戶仍被按位置接受,但不再被驗證或使用——不發出 CPI,池準備金僅從金庫計算。帳戶數量仍必須匹配,因此現有交易繼續無變化地執行。
SwapBaseInV2 / SwapBaseOutV2 — 推薦路徑
完全省略市場帳戶和 amm_open_orders(8 個帳戶;標籤 16 / 17)。報價數學與 v1 相同。新整合和路由器應使用 V2。
WithdrawPnl — 17 個(+1 個可選)→ 10 個帳戶(⚠️ 硬性破壞,無相容性路徑)
amm_open_orders 和所有六個市場帳戶已移除。新的固定 10 帳戶、僅限管理員的佈局沒有相容性解析;舊佈局會錯位並因 InvalidCoinVault 等錯誤而失敗。
SetParams — 縮減至 [amm, admin](⚠️ 硬性破壞)+ 重新編號的參數
權限、開放訂單、目標訂單、金庫和所有市場帳戶已移除。param 列舉被重新編號和修剪:
| 參數 | 舊值 | 新值 |
|---|---|---|
Status | 0 | 0 |
State | 1 | 1 |
Fees | 9 | 2 |
SetOpenTime | 11 | 3 |
OrderNum、Depth、AmountWave、MinPriceMultiplier、MaxPriceMultiplier、MinSize、VolMaxCutRatio、InitOrderDepth、SetSwitchTime、ClearOpenTime、Seperate)加上 AmmOwner、LastOrderDistance 和 UpdateOpenOrder 已移除。SetParamsInstruction 結構刪除了 new_pubkey 和 last_order_distance。
不再可呼叫(運行時回復;構建器已移除)
| 指令 | 標籤 | 替代品 |
|---|---|---|
Initialize | 0 | Initialize2 |
MonitorStep | 2 | 無(訂單簿 crank,已停用) |
MigrateToOpenBook | 5 | 無 |
WithdrawSrm | 8 | 無(SRM 費用折扣,已停用) |
PreInitialize | 10 | Initialize2 |
SimulateInfo | 12 | 鏈下 / SDK 報價 |
AdminCancelOrders | 13 | 無 |
準備金 / 狀態變更
- 池資產公式。 總池資產現為
金庫餘額 − 待處理 PnL (need_take_pnl);OpenBook 開放訂單項——實際上已為零——已刪除。報價代碼可直接從金庫餘額讀取。 - 已棄用的狀態欄位。
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_amount和swap_acc_coin_fee為了佈局相容性而保留,但不再更新。依賴swap_*交易量計數器的消費者應切換至交易日誌。 AmmInfo初始化。coin_lot_size、pc_lot_size和min_size現初始化為0。- 已移除的依賴和 CPI。
serum_dexcrate 從Cargo.toml中刪除;所有 Serum DEX CPI(invoke_dex_new_order_v3、invoke_dex_cancel_order_v2、invoke_dex_settle_funds、invoke_dex_init_open_orders、…)從invokers.rs中移除。已移除的數據結構:LastOrderDistance、SimulateParams、RunCrankData、GetPoolData、GetSwapBaseInData、GetSwapBaseOutData。

