Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
TL;DR для интеграторов
- Swap / Deposit / Withdraw продолжают работать без изменений. Транзакции, собранные со старыми макетами аккаунтов, всё ещё выполняются — удалённые счета Serum/маркета просто игнорируются. Вам не нужно обновлять клиент, чтобы сохранить существующие потоки.
- Но вам стоит перейти на новые, более компактные макеты в ближайшее время. Новые макеты убирают мёртвые счета маркета, сокращая размер транзакции:
SwapBaseIn/SwapBaseOutидут 18 → 9 аккаунтов,Deposit14 → 12,Withdraw21 (+1 опциональный) → 12. Путь совместимости будет удалён в будущем релизе. WithdrawPnl— критическое изменение (только для администраторов). Идёт 16 (+1 опциональный) → 10 аккаунтов без парсинга совместимости. Отправка старого макета приводит к ошибкам валидации, таким какInvalidTokenCoin, из-за смещения аккаунтов (старый #3 былopen_orders). Любой инструмент администратора, вызывающийWithdrawPnl, должен быть обновлён.- Реферальный сбор удалён из
WithdrawиWithdrawPnl. Опциональный аккаунтreferrer_pc_walletвсё ещё можно передать для обратной совместимости в старом макетеWithdraw, но он больше не действует. - Учёт активов пула упрощён. Общие активы пула теперь — это
остатки в хранилище − ожидающий PnL; термин OpenBook open-order — уже нулевой на практике — удалён из формулы. Индексеры и код котировок, которые всё ещё добавляли термин 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 также удалён.
Изменение расчёта активов пула
Исторически формула добавляла средства, которые пул держал как открытые ордера в своём аккаунте OpenOrders в OpenBook. Этот термин был нулевым на практике с тех пор, как пул перестал размещать ордера; это обновление полностью удаляет его из формулы, оставляя только расчёт на основе хранилища:| Формула | |
|---|---|
| Старая | остатки в хранилище + средства в открытых ордерах (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 удалены из инвентаря; поля Serum/open-orders вAmmInfoотмечены как устаревшие/неиспользуемые; добавлена заметка об активах пула.products/stable/instructions— новые таблицы аккаунтов для Swap / Deposit / Withdraw / WithdrawPnl с примечаниями о совместимости; все остальные инструкции (Initialize,PreInitialize,InitModelData,UpdateModelData,MonitorStep,SetParams,WithdrawSrm,SimulateInfo) отмечены как удалённые / больше не вызываются.products/stable/math— обновление формулы активов пула; разделMonitorStep/ OpenBook переформулирован как давно устаревший.products/stable/fees— раздел “PnL из OpenBook” удалён; поток сбора больше не урегулирует заполнения OpenBook.products/stable/code-demos— обновлено руководство по количеству аккаунтов; SDK всё ещё абстрагирует выбор макета.
- исходном коде программы
raydium-stable(post-upgradeinstruction.rs/processor.rs). - развёрнутой программе Stable AMM на Solana mainnet-beta.

