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.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Информация о версии
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - Сеть: mainnet-beta
- ID программы маршрутизатора:
routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS - Проверено: апрель 2026
Пример 1: маршрутизация на основе SDK
Источник:src/trade/routeSwap.ts
Raydium SDK абстрагирует построение маршрутов. Используйте функции торговли SDK для составления многопрыжкового маршрута и его автоматического выполнения через маршрутизатор.
Настройка
Построение многопрыжкового свопа
Маршрутизация в@raydium-io/raydium-sdk-v2 доступна через raydium.tradeV2. Полный конец‑в‑конец процесс — выборка данных пула, вычисление маршрутов, ранжирование по выходу и построение транзакции своpa — показан ниже; это соответствует каноническому примеру в raydium-sdk-V2-demo/src/trade/routeSwap.ts.
Ожидаемое поведение
SDK обрабатывает:- Обнаружение маршрутов через AMM v4, CPMM, CLMM и Stable AMM.
- Дериважию аккаунтов (состояния пулов, хранилища, аккаунты наблюдений, предварительное создание ATA).
- Упаковку инструкций для программы маршрутизатора (
Router), когда маршрут многопрыжковый, или прямой своп пула, когда один пул уже дает наилучшую цену. - Принудительное соблюдение slippage через параметр
slippageнаgetAllRouteComputeAmountOut.
raydium.tradeV2.swap может вернуть более одной transaction — первая обычно инициализирует промежуточные ATA, а вторая выполняет сам своп. Всегда передавайте sequentially: true в execute(), чтобы они подтверждались по порядку.
Пример 2: построение необработанных инструкций (псевдокод в стиле Rust)
Если вам нужен больший контроль или вы создаете программу, которая использует CPI в маршрутизатор, постройте инструкции вручную. Пример ниже использует тег 8 (SwapBaseIn) — рекомендуемый текущий вариант — и маршрутизирует через принадлежащие пользователю ATA конца в конец.
Сценарий: USDC → SOL (CPMM) → mSOL (CPMM)
Шаг 1: дериважия ATA пользователя
Шаг 2: сбор аккаунтов для каждого прыжка
Прыжок 1 — это USDC/SOL на CPMM. Прыжок 2 — это SOL/mSOL на CPMM.Шаг 3: построение инструкции
Шаг 4: отправка транзакции
Пример 3: обработка ошибок
Распространенные ошибки и способы их устранения:ExceededSlippage
Выход был меньшеminimum_amount_out. Повторите попытку с более высокой толерантностью скольжения или переоценіте маршрут.
SqrtPriceX64 (CLMM)
Цена прыжка CLMM выходила за границыlimit_prices. Обновите границы и повторите попытку.
InvalidOwner
Промежуточный или выходящий ATA не принадлежит вызывающей стороне. Маршрутизатор проверяет собственность в каждом слоте; убедитесь, что каждый ATA, который вы передали, был выведен из кошелька пользователя (не из какого-либо другого полномочия).Советы и лучшие практики
Предварительное создание промежуточных ATA
Перед маршрутизацией через новый промежуточный токен в первый раз создайте ATA пользователя, чтобы маршрут не прошел проверку:CreateSyncNative (тег 5) — он создает ATA, передает SOL и синхронизирует в одной инструкции.
Цитирование перед выполнением
Всегда запрашивайте пулы и вычисляйте ожидаемый выход перед построением инструкции:Используйте более новые варианты инструкций (8–9)
Теги 8 и 9 (SwapBaseIn и SwapBaseOut) более снисходительны к limit_prices. Предпочитайте их устаревшим вариантам, если вам не нужна проверка цены CLMM.
Куда дальше
products/routing/instructions— полный справочник инструкций.products/routing/accounts— детали дериважии аккаунтов.products/cpmm/code-demos— примеры своппов CPMM для сравнения.reference/program-addresses— канонические ID программ и адреса devnet.
@raydium-io/raydium-sdk-v2на npmraydium-io/raydium-sdk-V2(открытый исходный код)raydium-io/raydium-sdk-V2-demo— официальные полнофункциональные демонстрации, включаяrouteSwap.ts- Источник программы маршрутизации AMM недоступен публично; проверьте ID программы по сравнению с прямым API и на цепочке байт-кодом


