Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Баннер версии.
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - Кластер: Solana
mainnet-beta - ID программы Stable AMM:
5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h(см.reference/program-addresses) - Последняя проверка: 2026-09-09 против исходного кода SDK
0.2.64-alphaи демонстраций amm/trade вraydium-sdk-V2-demo
liquidity SDK нативно поддерживает пулы Stable AMM. Стабильные пулы отображаются как version: 5 (или pooltype: "StablePool") на ApiV3PoolInfoStandardItem; те же вспомогательные функции addLiquidity / removeLiquidity / swap работают для них, как и для пулов AMM v4 (version: 4) с постоянным произведением — SDK автоматически определяет вариант и генерирует правильные инструкции. Математика стабильной кривой находится в src/raydium/liquidity/stable.ts.Настройка
Определение пула Stable
Два эквивалентных сигнала наApiV3PoolInfoStandardItem:
version: 4, постоянное произведение), и Stable AMM (version: 5) проходят через один и тот же API LiquidityModule на SDK. Внутри модуль ветвится на:
InstructionType.AmmV4AddLiquidity/AmmV4RemoveLiquidityдля пулов v4InstructionType.AmmV5AddLiquidity/AmmV5RemoveLiquidityдля пулов v5 (Stable)
programId пула (возвращаемый с ключами пула) сообщает SDK, в какую программу выполнить CPI; вам не нужно жёстко кодировать его.
Поиск пула по паре монет
Своп через пул Stable
ПотокLiquidityModule.swap имеет ту же форму, что и для пулов v4 — просто передайте объект пула v5. Два момента легко упустить: computeAmountOut нуждается в живых резервах пула, привитых к информации пула (элемент API сам по себе их не содержит), и его slippage — это простое число, а не Percent:
programId пула из ключей пула и ветвится в программу Stable AMM. Никакой специальный аргумент programId не требуется.
Добавление и удаление ликвидности
addLiquidity и removeLiquidity работают одинаково для пулов v4 и v5:
InstructionType.AmmV5AddLiquidity, потому что pooltype.includes("StablePool") истинно. Соответствующий поток removeLiquidity симметричен — передайте lpAmount и минимальные суммы, которые вы примете с каждой стороны.
Вспомогательные функции для расчёта цены (stable.ts)
Для расчёта цены на сервере или бэктестирования SDK предоставляет базовую математику стабильной кривой:ModelDataInfo из блокчейна загружается один раз initLayout() и кэшируется внутри raydium.liquidity.stableLayout, доступный как .stableModelData. initStableModelLayout() идемпотентна: она повторно загружает только пока validDataCount === 0, поэтому повторный вызов initLayout() бесплатен. Передайте текущие резервы (x, y) и вспомогательные функции вычислят путём двоичного поиска в таблице поиска и линейной интерполяции между двумя окружающими строками DataElement. См. products/stable/math для базового алгоритма.
Маршрутизация через AMM Routing (многоскачковые / лучшая цена)
Если вы не хотите выбирать площадку самостоятельно, программа AMM Routing рассмотрит каждый Raydium AMM (v4 / CPMM / CLMM / Stable) и маршрутизирует через любую комбинацию, которая лучше всего: Маршрутизатор — это пятивызовный конвейер, а не одинswap(), и он полностью написан — с советом по кэшированию, который делает его пригодным для использования в production — на products/routing/code-demos. Форма такова:
Рекомендации
- Для свопов конечных пользователей предпочитайте поток маршрутизации
tradeV2. Он обрабатывает каждый тип пула Raydium, включая Stable. - Для операций, специфичных для пула (добавление / удаление LP на известном пуле Stable), используйте
LiquidityModuleнапрямую — он автоматически определяет пулы v5. - Для расчёта цены на сервере / аналитики вызовите
getStablePrice/getDyByDxBaseIn/getDxByDyBaseInпослеinitLayout(). Никакого трафика RPC за расчёт после кэширования данных модели. - Не кодируйте вручную сыр инструкции
SwapBaseIn. Обновление от 2026-06-22 удалило мёртвые счета OpenBook, поэтому новая раскладка своппа принимает 9 счётов (старая раскладка из 18 счётов всё ещё парсится для обратной совместимости).Depositтеперь 12 счётов (старые 14 совместимы),Withdraw12 (старые 21/22 совместимы), иWithdrawPnl10 без пути совместимости. Предварительно построенные вспомогательные функции SDK выбирают правильную раскладку и порядок для вас; самостоятельное написание подвержено ошибкам. См.products/stable/instructionsдля полных таблиц счётов.
Куда дальше
- Math — как работает интерполяция таблицы поиска.
- Instructions — полный справочник инструкций.
- AMM Routing — маршрутизация между несколькими пулами через AMM v4, CPMM, CLMM, Stable.
raydium-sdk-V2/src/raydium/liquidity/liquidity.ts— точка входа модуля; ветвление v4 / v5.raydium-sdk-V2/src/raydium/liquidity/stable.ts—StableLayout,getStablePrice,getDxByDyBaseIn,getDyByDxBaseIn.

