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 →

Informações de versão

  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Rede: mainnet-beta
  • ID do programa roteador: routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS
  • Verificado: abril de 2026

Exemplo 1: Roteamento baseado em SDK

Fonte: src/trade/routeSwap.ts O SDK da Raydium abstrai a construção de rotas. Use as funções de negociação do SDK para compor uma rota multi-hop e executá-la através do roteador automaticamente.

Configuração

Construir um swap multi-hop

O roteamento em @raydium-io/raydium-sdk-v2 é exposto em raydium.tradeV2. A forma completa — buscando dados do pool, computando rotas, classificando por output e construindo a transação de swap — é mostrada abaixo; isto corresponde ao exemplo canônico em raydium-sdk-V2-demo/src/trade/routeSwap.ts.

Comportamento esperado

O SDK trata:
  • Descoberta de rotas através de AMM v4, CPMM, CLMM e Stable AMM.
  • Derivação de contas (estados do pool, vaults, contas de observação, pré-criação de ATA).
  • Empacotamento de instruções para o programa roteador (Router) quando a rota é multi-hop, ou um swap de pool direto quando um único pool já oferece o melhor preço.
  • Aplicação de slippage através do parâmetro slippage em getAllRouteComputeAmountOut.
raydium.tradeV2.swap pode retornar mais de uma transaction — a primeira geralmente inicializa ATAs intermediárias e a segunda realiza o swap propriamente. Sempre passe sequentially: true para execute() para que elas se confirmem na ordem correta.

Exemplo 2: Construção manual de instruções (pseudocódigo semelhante ao Rust)

Se você precisa de controle mais fino ou está construindo um programa que faz CPI no roteador, construa as instruções manualmente. O exemplo abaixo usa tag 8 (SwapBaseIn) — a variante Current recomendada — e roteamento através de ATAs de propriedade do usuário de ponta a ponta.

Cenário: USDC → SOL (CPMM) → mSOL (CPMM)

Passo 1: Derivar as ATAs do usuário

Passo 2: Coletar contas para cada hop

Hop 1 é USDC/SOL no CPMM. Hop 2 é SOL/mSOL no CPMM.

Passo 3: Construir a instrução

Passo 4: Enviar transação


Exemplo 3: Tratamento de erros

Erros comuns e como recuperar:

ExceededSlippage

O output foi menor que minimum_amount_out. Tente novamente com tolerância de slippage mais alta ou obtenha uma nova cotação da rota.

SqrtPriceX64 (CLMM)

O preço de um hop CLMM saiu dos limites de limit_prices. Atualize os limites e tente novamente.

InvalidOwner

Uma ATA intermediária ou de output não é de propriedade do chamador. O roteador valida a propriedade a cada slot; certifique-se de que cada ATA que você passa foi derivada da carteira do usuário (não de nenhuma outra autoridade).

Dicas e melhores práticas

Pré-criar ATAs intermediárias

Antes de rotear através de um novo token intermediário pela primeira vez, crie a ATA do usuário para que a rota não falhe na validação:
Para wSOL especificamente, prefira CreateSyncNative (tag 5) — ele cria a ATA, transfere o SOL e sincroniza em uma única instrução.

Obter cotação antes de executar

Sempre consulte os pools e calcule o output esperado antes de construir a instrução:

Use as variantes mais novas de instruções (8–9)

As tags 8 e 9 (SwapBaseIn e SwapBaseOut) são mais flexíveis com limit_prices. Prefira-as sobre as variantes legadas se você não precisar de validação de preço CLMM.

Próximos passos

Fontes: