Skip to main content
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Баннер версии.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Кластер: Solana mainnet-beta
  • ID программы Stable AMM: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h (см. reference/program-addresses)
  • Последняя проверка: 2026-04
Модуль liquidity SDK нативно поддерживает пулы Stable AMM. Стабильные пулы отображаются как version: 5 (или pooltype: "StablePool") на ApiV3PoolInfoStandardItem; те же вспомогательные функции addLiquidity / removeLiquidity / swap работают для них, как и для пулов AMM v4 (version: 4) с постоянным произведением — SDK определяет вариант и автоматически генерирует правильные инструкции. Математика стабильной кривой находится в src/raydium/liquidity/stable.ts.

Настройка

Определение пула Stable

Два эквивалентных сигнала на ApiV3PoolInfoStandardItem:
Как AMM v4 (version: 4, постоянное произведение), так и Stable AMM (version: 5) проходят через один и тот же API LiquidityModule на SDK. Внутри модуль отправляет на:
  • InstructionType.AmmV4AddLiquidity / AmmV4RemoveLiquidity для пулов v4
  • InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity для пулов v5 (Stable)
programId пула (возвращаемый с ключами пула) сообщает SDK, в какую программу выполнить CPI; вам не нужно жестко кодировать его.

Поиск пула по паре монет

Если пара монет имеет как пул v4 (постоянное произведение), так и пул v5 (stable), ответ включает оба — выберите тот, который нужен вашему потоку, или передайте их программе AMM Routing и позвольте ей выбрать лучший маршрут.

Своп через пул Stable

Поток LiquidityModule.swap имеет ту же форму, что и для пулов v4 — просто передайте ему объект пула v5:
SDK читает programId пула из ключей пула и отправляет в программу Stable AMM. Специальный аргумент programId не требуется.

Добавление и удаление ликвидности

addLiquidity и removeLiquidity работают одинаково для пулов v4 и v5:
Внутри SDK генерирует InstructionType.AmmV5AddLiquidity, потому что pooltype.includes("StablePool") истинно. Соответствующий поток removeLiquidity симметричен — передайте lpAmount и минимальные суммы, которые вы примете с каждой стороны.

Вспомогательные функции для цитирования вне цепи (stable.ts)

Для цитирования на стороне сервера или бэктестирования SDK предоставляет базовую математику стабильной кривой:
Это чистые функции — без RPC, без подписания. ModelDataInfo на цепи загружается один раз initLayout() и кэшируется в raydium.liquidity.stableLayout. Передайте текущие резервы (x, y) и вспомогательные функции вычисляют путём двоичного поиска в таблице поиска и линейной интерполяции между двумя окружающими строками DataElement. См. products/stable/math для базового алгоритма.

Маршрутизация через AMM Routing (многоскачковые / лучшая цена)

Если вы не хотите выбирать площадку самостоятельно, программа AMM Routing рассмотрит каждый Raydium AMM (v4 / CPMM / CLMM / Stable) и маршрутизирует через любую комбинацию, которая лучше всего:
Это рекомендуемый путь для производственных свопов и агрегаторов — вам никогда не нужно вручную решать, существует ли пул Stable или является ли он лучшей площадкой сегодня.

Рекомендации

  1. Для свопов конечных пользователей предпочитайте поток маршрутизации tradeV2. Он обрабатывает каждый тип пула Raydium, включая Stable.
  2. Для операций, специфичных для пула (добавление / удаление LP в известном пуле Stable), используйте LiquidityModule напрямую — он автоматически определяет пулы v5.
  3. Для цитирования вне цепи / аналитики вызывайте getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn после initLayout(). Нет трафика RPC за цитирование после кэширования данных модели.
  4. Не кодируйте вручную необработанные инструкции SwapBaseIn. Обновление от 2026-06-22 удалило мёртвые учётные записи OpenBook, поэтому новый макет своп принимает 9 учётных записей (старый макет из 18 учётных записей всё ещё парсится для обратной совместимости). Deposit теперь 12 учётных записей (старые 14 совместимы), Withdraw 12 (старые 21/22 совместимы), и WithdrawPnl 10 без пути совместимости. Предварительно созданные вспомогательные функции SDK выбирают правильный макет и порядок для вас; самостоятельное написание подвержено ошибкам. См. products/stable/instructions для полных таблиц учётных записей.

Что дальше

  • Math — как работает интерполяция таблицы поиска.
  • Instructions — полный справочник инструкций.
  • AMM Routing — маршрутизация между несколькими пулами через AMM v4, CPMM, CLMM, Stable.
Источники: