Skip to main content
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
O que isso faz. Carrega um pool CPMM do RPC, faz cotação de um swap com 0,5% de slippage, constrói a transação, assina com sua keypair e a submete. Tudo em ~30 linhas.

Configuração

Certifique-se de ter lido os pré-requisitos do Quick start e de ter RPC_URL, KEYPAIR e as dependências instaladas.

O script

Salve como swap.mjs:
swap.mjs

Execute

Escolha qualquer pool CPMM para o qual você tenha liquidez. Exemplo com o pool CPMM canônico SOL/USDC:
Saída esperada:

O que acabou de acontecer

  1. Raydium.load inicializou o SDK — buscou a configuração global e configurou o contexto da sua carteira.
  2. getPoolInfoFromRpc puxou o estado do pool ao vivo diretamente do RPC (não do cache da API). Para swaps de alto valor, você sempre quer estado fresco.
  3. CurveCalculator.swap calculou a saída de produto constante descontando a taxa do pool. Esta é a mesma matemática que o programa executa on-chain, então você pode comparar cotações off-chain e on-chain.
  4. raydium.cpmm.swap construiu a transação com formato V0 (address lookup tables habilitadas) e adicionou uma configuração explícita de compute budget. A dica de compute budget ajuda a transação a ser incluída em períodos de congestionamento.
  5. execute({ sendAndConfirm: true }) assinou, enviou e aguardou a confirmação.

Erros comuns

  • Pool not foundPOOL_ID incorreto, ou você está apontando para o cluster errado (ID de pool mainnet contra um RPC devnet, etc.).
  • Insufficient funds for transaction — Sua carteira não tem SOL suficiente para o input do swap + taxas + aluguel da ATA.
  • Slippage tolerance exceeded — O preço do pool mudou entre a cotação e a execução. Execute novamente; ou aumente o parâmetro slippage; ou use o computeAmountOut do SDK que sempre refaz a busca das reservas.
  • Token account not initialized — A ATA do token de saída não existia e a instrução de criação implícita foi incluída mas falhou por algum motivo; verifique o saldo de SOL da sua carteira e tente novamente.

Próximos passos