Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Баннер версии. Все примеры ориентированы на
@raydium-io/raydium-sdk-v2@0.2.64-alpha для Solana mainnet-beta, проверено 2026-09-09 — каждое имя построителя, имя параметра и тип параметра ниже сверены с исходным кодом этого релиза и с raydium-sdk-V2-demo/src/amm. ID программы: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (см. reference/program-addresses).Две ловушки, на которые попадается большинство первых интеграций: slippage у computeAmountOut — это обычное число (0.005 = 0.5%), а не Percent; и liquidity.swap требует inputMint в виде строки base58.Создание новых пулов здесь не показано. Интерфейс Raydium больше не предлагает создание пулов AMM v4 — новые пары по умолчанию идут в CPMM. Сама программа AMM v4 по-прежнему принимает Initialize2 в цепи; просто это не рекомендуемый путь. Примеры ниже покрывают операции с живыми пулами, которые по-прежнему нужны каждому интегратору: своп, депозит, вывод.Создание новых пулов здесь не показано. Интерфейс Raydium больше не предлагает создание пулов AMM v4 — новые пары по умолчанию переходят на CPMM. Сама программа AMM v4 по-прежнему принимает
Initialize2 в цепи; это просто не рекомендуемый путь. Примеры ниже охватывают операции с активными пулами, которые нужны каждому интегратору: swap, deposit, withdraw.Настройка
Получение пула по ID
poolKeys — это структура, которую потребляют построители инструкций. Она содержит все учётные записи AMM v4 в порядке, ожидаемом программой, плюс устаревшие поля маркета, которые текущая программа принимает позиционно, но больше не читает.
Своп (base-in)
Своп (base-out)
Добавление ликвидности
fixedSide: "a" указывает SDK, что вы предоставили точное значение amountInA, а amountInB должно быть не более maxAnotherAmount. Пропорциональная математика считается от балансов хранилищ минус накопленный PnL — никакого on-book компонента, который нужно было бы сначала урегулировать, больше нет.
Удаление ликвидности
Настройка compute-unit / priority fee
После удаления OpenBook своп AMM v4 больше не проверяет никакое состояние маркета, поэтому V1SwapBaseIn заметно дешевле, чем раньше, — а SwapBaseInV2 (8 учётных записей, без заглушек маркета) ещё дешевле. Измеряйте свой собственный путь, а не планируйте бюджет по историческим цифрам, и всегда передавайте явный лимит compute-unit:
computeBudgetConfig, SDK может всё ещё использовать своё собственное значение по умолчанию; проверьте возвращённую transaction для подтверждения. См. integration-guides/priority-fee-tuning.
Прямой Rust CPI
Если вы должны вызвать CPI в AMM v4 из вашей собственной программы Anchor, вам нужно будет смоделировать список учетных записейSwapBaseIn дословно. Минимальный набросок:
Instruction.
Набросок CPI выше использует устаревший макет v1
SwapBaseIn (тег 9, 17 учетных записей) для чтения/воспроизведения существующих транзакций. После обновления в июле 2026 г. учетные записи маркета принимаются, но игнорируются. Для нового кода предпочитайте SwapBaseInV2 / SwapBaseOutV2 (теги 16 / 17), которые полностью исключают учетные записи маркета (и amm_open_orders) — передавайте только 8 учетных записей: token_program, amm, amm_authority, два хранилища пула, две учетные записи токенов пользователя и user_owner.Подводные камни
- Неправильное количество учетных записей на свопах v1. Устаревшие
SwapBaseIn/SwapBaseOutпо-прежнему требуют полный список из 17 учетных записей (или 18) — несоответствие количества приводит к откату сWrongAccountsNumber. Содержимое учетных записей маркета больше не проверяется, но вы все равно должны занять их слоты. Предпочитайте точки входа V2, чтобы избежать этого. - Чтение сырых балансов хранилища. Резервы теперь только в хранилище; вычтите накопленный PnL (
need_take_pnl_*). Котировка SDK илиapi-v3.raydium.io/pools/info/idsсправляется с этим за вас. - Вызов удаленных инструкций.
MonitorStep,MigrateToOpenBook,WithdrawSrm,SimulateInfo,AdminCancelOrdersи устаревшиеInitialize/PreInitializeтеперь откатываются. ИспользуйтеInitialize2для создания пула; нет крана для вызова. - Минты Token-2022. Не поддерживаются. Пул AMM v4 не может быть создан для минта Token-2022; любая пара Token-2022 должна быть на CPMM или CLMM.
Что дальше
products/amm-v4/instructions— поверхность уровня инструкций за этими примерами.user-flows/migrate-amm-v4-to-cpmm— если вы LP, рассматривающий миграцию.integration-guides/priority-fee-tuning— размер priority-fee для тяжелых свопов AMM v4.

