Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Баннер версии. Все примеры ориентированы на
@raydium-io/raydium-sdk-v2@0.2.42-alpha для Solana mainnet-beta, проверено в апреле 2026 г. ID программы: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (см. reference/program-addresses).Создание новых пулов здесь не показано. Интерфейс Raydium больше не предлагает создание пулов AMM v4 — новые пары по умолчанию переходят на CPMM. Сама программа AMM v4 по-прежнему принимает
Initialize2 в цепи; это просто не рекомендуемый путь. Примеры ниже охватывают операции с активными пулами, которые нужны каждому интегратору: swap, deposit, withdraw.Настройка
Получение пула по ID
poolKeys — это структура, которую потребляют построители инструкций. Она содержит все учетные записи AMM v4 и OpenBook в порядке, ожидаемом программой.
Своп (base-in)
Своп (base-out)
Добавление ликвидности
fixedSide: "a" указывает SDK, что вы предоставили точное значение amountInA, а amountInB должно быть не более maxAnotherAmount. Ликвидность пула на книге рассчитывается перед пропорциональной математикой, поэтому коэффициент депозита соответствует самым свежим резервам.
Удаление ликвидности
Настройка compute-unit / priority fee
Свопы AMM v4 требуют много вычислений, потому что каждая инструкция проверяет полное состояние OpenBook. Типичный своп использует 180k–250k CU в зависимости от того, сколько открытых ордеров нужно урегулировать на пути. Всегда передавайте лимит compute-unit:computeBudgetConfig, SDK может все еще использовать свое собственное значение по умолчанию; проверьте innerTransactions для подтверждения. См. 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.

