> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-06-22 — Stable AMM：移除已停用的 OpenBook（市場）程式碼

> Stable AMM 移除其閒置的 OpenBook 造市帳戶和程式碼：更小的 Swap/Deposit/Withdraw 佈局、一項重大破壞性的 WithdrawPnl 變更，以及簡化的流動性池資產公式。

<Info>
  **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**

  [查看英文版 →](/reference/changelog/2026-06-22-stable-amm-openbook-cleanup)
</Info>

<Info>
  文件變更日誌項目。如需所有更新的索引，請參閱 [`reference/changelog`](/zh-Hant/reference/changelog)。如需協議本身的歷史時間軸，請參閱 [`introduction/history-and-milestones`](/zh-Hant/introduction/history-and-milestones)。
</Info>

Stable AMM 是一個**獨立程式**（擁有自己的程式 ID — 不透過 AMM v4 程式交易）。它**很久以前就停止向 OpenBook 發佈訂單**；OpenBook 造市路徑已閒置多年。此升級是清理工作：它**從指令佈局中移除現已停用的市場相關帳戶和程式碼**。它**不會**改變任何實時交易行為 — 沒有遺留的 OpenBook 訂單需要停止發佈。

## 整合者快速摘要

* **Swap / Deposit / Withdraw 保持不變運作。** 使用舊帳戶佈局建構的交易仍會執行 — 移除的 Serum/市場帳戶會被忽略。你**不需要**發佈客戶端更新來保持現有流程運作。
* **但你應該盡快遷移到新的、更小的佈局。** 新佈局移除了已停用的市場帳戶，減少交易大小：`SwapBaseIn` / `SwapBaseOut` 從 **18 → 9** 個帳戶，`Deposit` **14 → 12**，`Withdraw` **21（+1 可選）→ 12**。相容性路徑將在未來版本中移除。
* **`WithdrawPnl` 是一項重大破壞性變更（僅限管理員）。** 它從 **16（+1 可選）→ 10** 個帳戶，**沒有相容性解析**。發送舊佈局會因帳戶錯位而失敗，出現 `InvalidTokenCoin` 等驗證錯誤（舊的 #3 是 `open_orders`）。任何呼叫 `WithdrawPnl` 的管理員工具都必須更新。
* **在 `Withdraw` 和 `WithdrawPnl` 上移除推薦費。** 可選的 `referrer_pc_wallet` 帳戶仍可在 `Withdraw` 的舊佈局上傳遞以保持向後相容，但它不再生效。
* **流動性池資產會計簡化。** 總流動性池資產現在為 `保管庫餘額 − 待結 PnL`；OpenBook 掛單項 — 實際上已為零 — 從公式中移除。仍然新增 OpenOrders 項的索引器和報價程式碼應移除它。
* **大多數指令已移除。** 只有 `SwapBaseIn`、`SwapBaseOut`、`Deposit`、`Withdraw` 和 `WithdrawPnl` 保持可呼叫。`Initialize`、`PreInitialize`、`InitModelData`、`UpdateModelData`、`MonitorStep`、`SetParams`、`WithdrawSrm` 和 `SimulateInfo` 不再可呼叫。

## 為什麼這很重要（對交易者、LP 和整合者）

* **交易者**在交換行為或定價形狀上看不到變化 — 查詢表曲線保持不變。新佈局交換成本更低，因為交易攜帶的帳戶少九個。
* **LP** 保持相同的存入/提取經濟學。流動性長期以來完全位於流動性池保管庫中，因此流動性池價值完全在池上；此升級只刪除了過時的市場管道。
* **整合者**獲得更小、更簡單的交易和一個少一個（已經是遺留的）項的報價模型。現有整合不會中斷（除了管理員 `WithdrawPnl`），但相容性墊片是臨時的 — 在移除前按你的方便進行遷移。

## 指令級變更

### `SwapBaseIn` / `SwapBaseOut` — 18 → 9 個帳戶（舊佈局仍相容）

九個 OpenBook 帳戶（`amm_open_orders`、`serum_program`、`serum_market`、`serum_bids`、`serum_asks`、`serum_event_queue`、`serum_coin_vault`、`serum_pc_vault`、`serum_vault_signer`）已移除。**相容性**：如果指令接收的帳戶數不是 9，則使用舊的 18 帳戶佈局進行解析；Serum 帳戶必須仍佔據其位置，但其內容不再被驗證或使用。

### `Deposit` — 14 → 12 個帳戶（舊佈局仍相容）

`amm_open_orders`（舊 #3）和 `serum_market`（舊 #9）已移除。當傳遞 14 個帳戶時，舊佈局會被解析以保持相容。

### `Withdraw` — 21（+1 可選）→ 12 個帳戶（舊佈局仍相容）

九個 Serum 帳戶已移除。舊的 21 或 22 帳戶佈局仍被接受，**但第 22 個可選 `referrer_pc_wallet` 的推薦費邏輯已移除** — 帳戶仍可傳遞但不再生效。

### `WithdrawPnl` — 16（+1 可選）→ 10 個帳戶（⚠️ 無相容性路徑，重大破壞性）

固定 10 帳戶、僅限管理員的佈局。舊佈局**沒有**相容性解析；發送它會因帳戶錯位而失敗，出現 `InvalidTokenCoin` 等錯誤。**邏輯變更**：當流動性池的可用資金不足以提取累積的 PnL 時，流動性池不再進入 `CancelAllOrdersState` / `Disabled`；指令直接返回 `TakePnlError`。可選的 `referrer_pc_wallet` 同樣已移除。

## 流動性池資產計算變更

該公式歷來新增了流動性池在其 OpenBook OpenOrders 帳戶中作為掛單持有的資金。該項自流動性池停止發佈訂單以來實際上一直為零；此升級完全從公式中移除它，只保留保管庫計算：

|   | 公式                                                                         |
| - | -------------------------------------------------------------------------- |
| 舊 | `保管庫餘額 + 掛單資金（native_coin_total / native_pc_total）− 待結 PnL（need_take_pnl）` |
| 新 | `保管庫餘額 − 待結 PnL（need_take_pnl）`                                            |

## 更新的頁面

* `products/stable/overview` — 純 AMM 模型，移除 OpenBook 依賴，更新比較和帳戶計數表。
* `products/stable/index` — 「它是什麼」和關鍵事實表不再聲稱 OpenBook 依賴。
* `products/stable/accounts` — OpenBook 帳戶從清單中移除；`AmmInfo` Serum/掛單欄位標記為遺留/未使用；新增流動性池資產說明。
* `products/stable/instructions` — 新的 Swap / Deposit / Withdraw / WithdrawPnl 帳戶表，包含相容性標註；所有其他指令（`Initialize`、`PreInitialize`、`InitModelData`、`UpdateModelData`、`MonitorStep`、`SetParams`、`WithdrawSrm`、`SimulateInfo`）標記為已移除/不再可呼叫。
* `products/stable/math` — 流動性池資產公式更新；`MonitorStep` / OpenBook 部分重新框架為長期已停用。
* `products/stable/fees` — 「來自 OpenBook 的 PnL」部分已停用；收集流程不再結算 OpenBook 成交。
* `products/stable/code-demos` — 帳戶計數指導已更新；SDK 仍抽象化佈局選擇。

**驗證對象**：

* `raydium-stable` 程式原始碼（升級後的 `instruction.rs` / `processor.rs`）。
* Solana mainnet-beta 上的鏈上 Stable AMM 程式部署。
