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.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Обзор инструкций
| Тег | Дискриминатор | Точно | Вариант |
|---|---|---|---|
| 0 | SwapBaseInWithUserAccount | Вход | Устаревший |
| 1 | SwapBaseOutWithUserAccount | Выход | Устаревший |
| 5 | CreateSyncNative | — | Утилита |
| 6 | CloseTokenAccount | — | Утилита |
| 8 | SwapBaseIn | Вход | Текущий |
| 9 | SwapBaseOut | Выход | Текущий |
- Точно: какое значение фиксируется вызывающей стороной (Вход = фиксированный вход
amount_in; Выход = фиксированный выходamount_out). - Вариант: устаревшие инструкции требуют непустой deque
limit_prices, даже если в маршруте нет хопа CLMM. Текущие инструкции (8 / 9) воспринимают пустойlimit_pricesкак «без проверок», что рекомендуется для нового кода.
SwapBaseIn) или тег 9 (SwapBaseOut), если у вас нет конкретной причины вызывать устаревший вариант.
Текущие инструкции swap (рекомендуется)
Это точки входа, которые должны использовать новые коды. Структура аргументов такая же, как у устаревших вариантов, ноlimit_prices может быть пуста.
SwapBaseIn (тег 8)
Мультихоп swap с фиксированным входом. Вызывающая сторона фиксирует amount_in; маршрутизатор выполняет хоп за хопом и проверяет, что финальное количество достигает или превышает minimum_amount_out.
Аргументы
- Вызывающая сторона подписывает
user_input_ata. user_input_ata.amount >= amount_in.- Каждая промежуточная ATA пользователя существует и принадлежит вызывающей стороне.
- Если какой-либо хоп является CLMM и вы хотите применить ограничения по цене, предоставьте одну запись
limit_pricesна хоп CLMM.
- Баланс
user_input_ataуменьшен наamount_in. - Баланс
user_output_ataувеличен на ≥minimum_amount_out. - Каждая промежуточная ATA остаётся с нулевым чистым изменением (маршрут потребляет то, что произвёл предыдущий хоп).
ExceededSlippage— финальный выход <minimum_amount_out.InvalidInput— пустой маршрут, некорректные аккаунты или неподдерживаемаяpool_program.SqrtPriceX64— цена хопа CLMM вышла за границы предоставленного ограниченияlimit_prices(только когдаlimit_pricesнепуста).
SwapBaseOut (тег 9)
Мультихоп swap с фиксированным выходом. Вызывающая сторона фиксирует amount_out; маршрутизатор проверяет, что фактический вход не превышает maximum_amount_in.
Аргументы
- Вызывающая сторона подписывает
user_input_ata; баланс>= maximum_amount_in(наихудший случай). - Каждая промежуточная ATA и выходная ATA существуют.
user_input_ataуменьшена на фактически необходимое количество (≤maximum_amount_in).user_output_ataувеличена ровно наamount_out.
ExceededSlippage— требуемый вход превышаетmaximum_amount_in.InvalidInput,SqrtPriceX64— как для тега 8.
Устаревшие инструкции swap
Эти более старые варианты всё ещё могут быть вызваны в работающей программе и документируются здесь для полноты. Предпочитайте теги 8 / 9 для нового кода; оба устаревших варианта ниже требуют непустую dequelimit_prices даже при отсутствии хопа CLMM, что затрудняет их использование.
SwapBaseInWithUserAccount (тег 0)
Мультихоп swap с фиксированным входом, идентичный по структуре тегу 8, но с более строгим требованием limit_prices.
Аргументы
SwapBaseIn (тег 8). Все промежуточные слоты должны быть ATA, принадлежащими вызывающей стороне.
Предусловия
- Вызывающая сторона подписывает
user_input_ata. user_input_ata.amount >= amount_in.- Все промежуточные ATA пользователя существуют и принадлежат вызывающей стороне.
limit_pricesнепуста (по одной записи на хоп CLMM; при отсутствии хопа CLMM заполните заполнителями).
- Баланс
user_input_ataуменьшен наamount_in. - Баланс
user_output_ataувеличен на ≥minimum_amount_out.
ExceededSlippage.InvalidInput— пустаяlimit_pricesотклоняется в этом устаревшем варианте.SqrtPriceX64.
SwapBaseOutWithUserAccount (тег 1)
Swap с фиксированным выходом, устаревший аналог SwapBaseOut (тег 9).
Аргументы
- Вызывающая сторона подписывает
user_input_ata. user_input_ata.amount >= maximum_amount_in.- Все промежуточные ATA пользователя существуют и принадлежат вызывающей стороне.
limit_pricesнепуста.
user_input_ataуменьшена на фактически необходимое количество (≤maximum_amount_in).user_output_ataувеличена ровно наamount_out.
ExceededSlippage.InvalidInput.SqrtPriceX64.
Утилиты
CreateSyncNative (тег 5)
Создание (если отсутствует) и синхронизация ATA wSOL в один шаг. Удобно при обёртывании SOL параллельно с swap.
Аргументы
- Создаёт
user_wsol_ata, если она ещё не существует. - Переводит
amountlamports с собственного баланса SOL подписанта на ATA. - Вызывает
SyncNativeна ATA, чтобы её баланс токена отразил новые lamport.
InvalidOwner— владелецuser_wsol_ataне является подписантом.
CloseTokenAccount (тег 6)
Закрытие счёта токена и возврат его ренты в кошелёк назначения. Пара для CreateSyncNative: после swap-ноги wSOL вызовите CloseTokenAccount, чтобы вернуть ренту, которая поддерживала ATA wSOL.
Аргументы — отсутствуют.
Аккаунты
- Закрывает
token_account_to_close. - Переводит баланс lamport, не облагаемый рентой (~0.00203928 SOL в mainnet для обычного счёта SPL Token), на
destination_for_rent. - Баланс токена на счёте должен быть равен нулю.
InvalidOwner— вызывающая сторона не является владельцем ATA.- Баланс счёта токена не равен нулю.
Что дальше
products/routing/code-demos— создание каждой из этих инструкций на TypeScript.products/routing/accounts— ключи отправки per-AMM и макет аккаунтов per-хоп.reference/error-codes— полный списокRouteError.


