Skip to main content
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
Stable AMM 是獨立的程式;其池端帳戶結構類似於 AMM v4(AmmInfo、金庫、授權者),並額外包含一個儲存查詢表的 ModelDataInfo 帳戶。本頁涵蓋兩者。

清單

純 AMM。 Stable AMM 在自己的金庫中持有所有流動性,不依賴 OpenBook。它在早期曾有 OpenBook 做市路徑,但該路徑已多年未使用,2026-06-22 升級移除了遺留程式碼。因此下方的 serum_* 市場帳戶和 amm_open_orders遺留項目:它們可能仍出現在舊版配置交易中以保持向後相容性,但程式不驗證或讀取它們,新版指令完全省略它們。
現在的活躍清單完全是池端的:

AmmInfo

根狀態帳戶。配置幾乎與 AMM v4 相同——池參數、小數位、費用、金庫/鑄幣參考——加上一個新增項:指向查詢表的 model_data_key 欄位。
關鍵的整合者面向欄位:
  • model_data_key — 查詢表的地址。必須傳遞給每個指令。
  • fees — 與 AMM v4 相同的結構。預設為 0.25% 交易費、0.22% LP / 0.03% 協議分割。
  • coin_vaultpc_vault — 池的金庫。
  • status — 位元遮罩,控制 swap/deposit/withdraw/crank 是否啟用。
  • out_put.need_take_pnl_* — 由 WithdrawPnl 掃除。

ModelDataInfo

查詢表。價格/數量點的大型稀疏陣列。
生命週期: 建立這些表的設定指令——InitModelData(建立帳戶)和 UpdateModelData(填充元素,設定 valid_data_count)——在 2026-06-22 升級中被移除。現有池上的表現在是固定的。在執行時,其餘可呼叫的指令仍然使用它們:
  • Swap / deposit / withdraw 呼叫查詢函數,在 elements[0..valid_data_count] 內進行二分搜尋和插值。

DataElement

表中的原子項目。必須排序(x 遞增、y 遞減、price 遞增)以便二分搜尋正常工作。
填充表時,管理員指定這些預先縮放的值。程式不在鏈上驗證排序順序(為了速度),所以排序錯誤會導致報價不正確。

授權者和金庫

與 AMM v4 相同:
  • amm_authority 是使用種子 ["amm authority"] 衍生的單一程式級 PDA。它擁有所有池金庫並簽署它們的操作。
  • 金庫是 SPL Token 帳戶,其擁有者是 amm_authority,不是 ATA。
不支援 Token-2022。

狀態位元遮罩

與 AMM v4 相同。控制 swap/deposit/withdraw/crank 是否啟用。

費用和 PnL 追蹤

out_put 結構追蹤:
  • need_take_pnl_coinneed_take_pnl_pc — 已累積但尚未掃除的協議費用。WithdrawPnl 將這些移出。
  • swap_coin_in_amountswap_pc_in_amount 等 — 分析計數器。
池資產計算(解耦後)。 因為不再有資金作為 OpenBook 未平倉訂單進行託管,池的總資產現在完全從金庫計算:
從 OpenOrders 餘額重建池價值的索引器和報價程式碼必須刪除該項。

帳戶大小

ModelDataInfo 很大(約 1.2 MB,因為 50,000 個元素 × 每個元素 24 位元組)。這就是為什麼建立 Stable 池需要明確的租金和帳戶預先分配。Raydium SDK 和工具透明地處理這個問題;整合者很少需要手動分配。

從頭衍生帳戶

與 AMM v4 一樣,Stable AMM 使用有種子的金鑰(不是純 PDA)。規範池身份通過以下方式衍生:
金庫、LP 鑄幣、目標訂單等也類似。實際上,使用 SDK 或 API 來取得預先計算的地址。

在哪裡閱讀什麼

來源: