Saltar para o conteúdo principal
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Banner de versão. Todos os demos visam @raydium-io/raydium-sdk-v2@0.2.42-alpha contra Solana mainnet-beta, verificado em 2026-04. ID do programa: 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (veja reference/program-addresses).
Criação de novo pool não é mostrada aqui. A interface do Raydium não oferece mais criação de pool AMM v4 — novos pares usam CPMM por padrão. O próprio programa AMM v4 ainda aceita Initialize2 on-chain; apenas não é o caminho recomendado. Os demos abaixo cobrem as operações de pool ativo que todo integrador ainda precisa: swap, depósito, saque.

Configuração

Buscar um pool por ID

poolKeys é a struct que os construtores de instruções consomem. Ela carrega todas as contas AMM v4 e OpenBook na ordem que o programa espera.

Swap (base-in)

O SDK roteia swaps AMM v4 através dos pontos de entrada V2, que não carregam as contas OpenBook. (Após a atualização de 2026-07, as contas de mercado não são mais validadas nem mesmo no caminho legado v1.)

Swap (base-out)

Adicionar liquidez

fixedSide: "a" diz ao SDK que você forneceu o amountInA exato e que amountInB deve ser no máximo maxAnotherAmount. A liquidez on-book do pool é liquidada antes da matemática pro-rata, então a proporção de depósito corresponde às reservas mais recentes.

Remover liquidez

Os mínimos de slippage protegem contra o estado do pool mudar entre sua pré-cotação e o tempo de execução.

Ajuste de unidade de computação / taxa de prioridade

Swaps AMM v4 são pesados em computação porque cada instrução valida o estado completo do OpenBook. Um swap típico usa 180k–250k CU dependendo de quantas ordens abertas precisam ser liquidadas no caminho. Sempre passe um limite de unidade de computação:
Se você omitir computeBudgetConfig, o SDK ainda pode usar seu próprio padrão; inspecione innerTransactions para confirmar. Veja integration-guides/priority-fee-tuning.

CPI Rust direto

Se você deve fazer CPI para AMM v4 a partir de seu próprio programa Anchor, você precisará modelar a lista de contas de SwapBaseIn verbatim. Um esboço mínimo:
AMM v4 não fornece uma crate Anchor para CPI. O esboço acima usa uma Instruction construída manualmente.
O esboço de CPI acima usa o layout legado v1 SwapBaseIn (tag 9, 17 contas) para ler/reproduzir transações existentes. Desde a atualização de 2026-07, as contas de mercado são aceitas mas ignoradas. Para novo código, prefira SwapBaseInV2 / SwapBaseOutV2 (tags 16 / 17), que eliminam as contas de mercado (e amm_open_orders) inteiramente — passe apenas 8 contas: token_program, amm, amm_authority, os dois vaults do pool, as duas contas de token do usuário, e user_owner.

Armadilhas

  • Contagem de contas errada em swaps v1. O SwapBaseIn / SwapBaseOut legado ainda requer a lista completa de 17 contas (ou 18 contas) — uma contagem incompatível reverte com WrongAccountsNumber. O conteúdo das contas de mercado não é mais validado, mas você ainda deve ocupar seus slots. Prefira os pontos de entrada V2 para evitar isso.
  • Leitura de saldos brutos de vault. As reservas agora são apenas vault; subtraia PnL acumulado (need_take_pnl_*). A cotação do SDK ou api-v3.raydium.io/pools/info/ids faz isso para você.
  • Chamada de instruções removidas. MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, AdminCancelOrders, e Initialize / PreInitialize legado agora revertam. Use Initialize2 para criação de pool; não há crank para chamar.
  • Mints Token-2022. Não suportado. Um pool AMM v4 não pode ser criado contra um mint Token-2022; qualquer par Token-2022 deve estar em CPMM ou CLMM.

Próximos passos

Fontes: