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.
本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
Stable AMM 与 AMM v4 共享池侧账户结构(AmmInfo、vault、authority),并额外需要一个存储查找表的
ModelDataInfo 账户。本页涵盖两者。账户清单
Stable AMM 池绑定到恰好一个 OpenBook 市场。完整的账户清单与 AMM v4 相似:| 类别 | 账户 | 所有者 | 用途 |
|---|---|---|---|
| 池 | AmmInfo | Stable 程序 | 池状态、vault、OpenBook 和模型数据账户的引用。 |
| 池 | amm_authority | Stable 程序 | 程序拥有的 PDA,对 vault 转账进行签名。在所有 Stable AMM 池间共享。 |
| 池 | amm_open_orders | OpenBook | 池的 OpenBook OpenOrders 账户。 |
| 池 | amm_target_orders | Stable 程序 | 池侧限价订单网格。 |
| 池 | pool_coin_token_account | SPL Token | 池的 coin 侧 vault。 |
| 池 | pool_pc_token_account | SPL Token | 池的 pc 侧 vault。 |
| 池 | lp_mint | SPL Token | 可替换 LP 代币。 |
| 模型 | model_data_account | Stable 程序 | 查找表:50,000 × DataElement。 |
| 市场 | serum_market | OpenBook | OpenBook 市场。 |
| 市场 | serum_bids、serum_asks | OpenBook | 买价/卖价队列。 |
| 市场 | serum_event_queue | OpenBook | 事件队列。 |
| 市场 | serum_coin_vault、serum_pc_vault | SPL Token | OpenBook 市场级 vault。 |
| 市场 | serum_vault_signer | OpenBook | 市场级 vault 签名者。 |
AmmInfo
根状态账户。布局几乎与 AMM v4 相同——池参数、精度、费用、vault/mint 引用——多了一个字段:指向查找表的 model_data_key 字段。
model_data_key— 查找表的地址。必须传递给每条指令。fees— 与 AMM v4 相同的结构。默认 0.25% 交易费,0.22% LP / 0.03% 协议费分割。coin_vault、pc_vault— 池的 vault。status— 位掩码,门控 swap/deposit/withdraw/crank。out_put.need_take_pnl_*— 由WithdrawPnl清扫。
ModelDataInfo
查找表。一个大型稀疏的价格/数量点数组。
InitModelData创建账户并设置status = Initialized、multiplier = <admin-provided>、valid_data_count = 0。UpdateModelData(每个交易最多调用 5 次)通过以下方式填充元素:- 输入:
(index: u64, DataElement)对的数组。 - 将每个写入
elements[index]。 - 如果
index >= valid_data_count,则增加valid_data_count。
- 输入:
- Swap/deposit/withdraw 调用查找函数,在
elements[0..valid_data_count]内进行二分查找和插值。
DataElement
表格中的原子条目。必须排序(x 升序、y 降序、价格升序),以便二分查找正确工作。
Authority 和 vault
与 AMM v4 相同:amm_authority是一个程序级 PDA,使用种子["amm authority"]派生。它拥有所有池 vault 并对其转账进行签名。- Vault 是 SPL Token 账户,其所有者是
amm_authority,而非 ATA。
Status 位掩码
与 AMM v4 相同。控制是否启用 swap/deposit/withdraw/crank。费用和 PnL 追踪
与 AMM v4 相同。out_put 结构追踪:
need_take_pnl_coin、need_take_pnl_pc— 累计但未清扫的协议费。WithdrawPnl将其转出。swap_coin_in_amount、swap_pc_in_amount等 — 分析计数器。
账户大小
ModelDataInfo 体积很大(约 1.2 MB,因为 50,000 个元素 × 每个元素 24 字节)。这就是为什么创建 Stable 池需要显式的 rent 和账户预分配。Raydium SDK 和工具以透明的方式处理这一点;集成者很少需要手动分配。
从头派生账户
与 AMM v4 一样,Stable AMM 使用有种子的密钥(不是纯 PDA)。规范的池标识通过以下方式派生:阅读资源
- 指令账户列表:
products/stable/instructions。 - 插值如何使用表格:
products/stable/math。 - 费用结构和 WithdrawPnl:
products/stable/fees。 - OpenBook 账户派生:OpenBook 程序文档。


