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.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Stable AMM использует ту же структуру учетных записей пула, что и AMM v4 (AmmInfo, хранилища, authority), но дополнительно требует учетную запись
ModelDataInfo, в которой хранится таблица поиска. На этой странице рассматриваются обе.Перечень
Пул Stable AMM привязан ровно к одному рынку OpenBook. Полный перечень учетных записей почти идентичен AMM v4:| Категория | Учетная запись | Владелец | Роль |
|---|---|---|---|
| Пул | AmmInfo | Программа Stable | Состояние пула, ссылки на хранилища, OpenBook и учетную запись данных модели. |
| Пул | amm_authority | Программа Stable | Управляемый программой PDA, подписывающий передачи хранилища. Общая для всех пулов Stable AMM. |
| Пул | amm_open_orders | OpenBook | Учетная запись OpenBook OpenOrders пула. |
| Пул | amm_target_orders | Программа Stable | Таблица лимит-ордеров со стороны пула. |
| Пул | pool_coin_token_account | SPL Token | Хранилище пула со стороны coin. |
| Пул | pool_pc_token_account | SPL Token | Хранилище пула со стороны pc. |
| Пул | 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. |
| Рынок | serum_vault_signer | OpenBook | Подписант хранилища уровня рынка. |
AmmInfo
Корневая учетная запись состояния. Структура практически идентична AMM v4 — параметры пула, десятичные разряды, комиссии, ссылки на хранилища и минт — с одним добавлением: поле model_data_key, указывающее на таблицу поиска.
model_data_key— адрес таблицы поиска. Должен передаваться каждой инструкции.fees— идентична структуре AMM v4. По умолчанию 0.25% комиссия за сделку, разделение 0.22% LP / 0.03% протокол.coin_vault,pc_vault— хранилища пула.status— маска, ограничивающая swap/deposit/withdraw/crank.out_put.need_take_pnl_*— выбираетсяWithdrawPnl.
ModelDataInfo
Таблица поиска. Большой разреженный массив точек цены/количества.
InitModelDataсоздает учетную запись и устанавливаетstatus = Initialized,multiplier = <предоставлено-администратором>,valid_data_count = 0.UpdateModelData(вызывается до 5 раз за транзакцию) заполняет элементы через:- Ввод: массив пар
(index: u64, DataElement). - Записывает каждую в
elements[index]. - Увеличивает
valid_data_count, еслиindex >= valid_data_count.
- Ввод: массив пар
- Swap/deposit/withdraw вызывают функции поиска, которые выполняют двоичный поиск и интерполяцию в пределах
elements[0..valid_data_count].
DataElement
Атомарная запись в таблице. Должна быть отсортирована (x возрастает, y убывает, цена возрастает) для корректной работы двоичного поиска.
Authority и хранилища
Аналогично AMM v4:amm_authority— единственный программный PDA, полученный с сидом["amm authority"]. Владеет всеми хранилищами пула и подписывает их перемещения.- Хранилища — это счета SPL Token, владелец которых
amm_authority, а не ATA.
Маска статуса
Идентична 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 МБ, так как 50 000 элементов × 24 байта на элемент). Поэтому создание пула Stable требует явного выделения rent и предварительного выделения учетной записи. SDK Raydium и инструменты обрабатывают это прозрачно; интеграторам редко нужно самостоятельно выделять.
Получение учетных записей с нуля
Как и AMM v4, Stable AMM использует seeded keys (не чистые PDA). Идентификатор канонического пула получается через:Где читать что
- Списки учетных записей инструкций:
products/stable/instructions. - Как интерполяция использует таблицу:
products/stable/math. - Структура комиссий и WithdrawPnL:
products/stable/fees. - Получение адреса учетной записи OpenBook: документация программы OpenBook.


