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 →
O que faz. Carrega um pool CPMM a partir do RPC, faz cotação de um swap com slippage de 0,5%, 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 Início Rápido e tenha RPC_URL, KEYPAIR e as dependências instaladas.

O script

Salve como swap.mjs:

Execute

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

O que acabou de acontecer

  1. Raydium.load inicializa o SDK — busca a configuração global e configura o contexto da sua carteira.
  2. getPoolInfoFromRpc puxa o estado live do pool diretamente do RPC (não do cache da API). Para swaps de alto valor, você sempre quer estado fresco.
  3. CurveCalculator.swap calcula a saída do produto constante descontando a taxa do pool. É a mesma matemática que o programa executa on-chain, então você pode comparar cotações off- e on-chain.
  4. raydium.cpmm.swap constrói a transação no formato V0 (tabelas de lookup de endereço habilitadas) e adiciona uma configuração explícita de orçamento de computação. A dica de orçamento de computação ajuda a transação a pousar em janelas ocupadas.
  5. execute({ sendAndConfirm: true }) assina, envia e aguarda confirmação.

Erros comuns

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

Próximos passos