Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Resumo de instruções
| Tag | Discriminador | Exato | Variante |
|---|---|---|---|
| 0 | SwapBaseInWithUserAccount | Entrada | Legado |
| 1 | SwapBaseOutWithUserAccount | Saída | Legado |
| 5 | CreateSyncNative | — | Utilitário |
| 6 | CloseTokenAccount | — | Utilitário |
| 8 | SwapBaseIn | Entrada | Atual |
| 9 | SwapBaseOut | Saída | Atual |
- Exato: qual quantidade é fixada pelo chamador (Entrada = entrada exata
amount_in; Saída = saída exataamount_out). - Variante: instruções legadas exigem uma deque
limit_pricesnão vazia mesmo se nenhum hop CLMM estiver na rota. Instruções atuais (8 / 9) tratam umlimit_pricesvazio como “sem verificações”, que é o caminho recomendado para novo código.
SwapBaseIn) ou tag 9 (SwapBaseOut) a menos que você tenha um motivo específico para chamar uma variante Legada.
Instruções de swap atuais (recomendadas)
Estes são os pontos de entrada que o novo código deve usar. A estrutura de argumentos é a mesma que as variantes Legadas, maslimit_prices pode estar vazio.
SwapBaseIn (tag 8)
Swap multi-hop com entrada exata. O chamador fixa amount_in; o roteador executa hop a hop e afirma que o montante final fica em ou acima de minimum_amount_out.
Argumentos
- O chamador assina com
user_input_ata. user_input_ata.amount >= amount_in.- Cada ATA intermediária do usuário existe e é de propriedade do chamador.
- Se algum hop é CLMM e você quer aplicação vinculada a preço, forneça uma entrada de
limit_pricespor hop CLMM.
- Saldo de
user_input_atadiminuído poramount_in. - Saldo de
user_output_ataaumentado por ≥minimum_amount_out. - Cada ATA intermediária é deixada com mudança líquida zero (a rota consome tudo que produziu um hop anterior).
ExceededSlippage— saída final <minimum_amount_out.InvalidInput— rota vazia, contas malformadas oupool_programnão suportado.SqrtPriceX64— o preço de um hop CLMM se moveu fora do limite delimit_pricesfornecido (apenas quandolimit_pricesnão está vazio).
SwapBaseOut (tag 9)
Swap multi-hop com saída exata. O chamador fixa amount_out; o roteador afirma que a entrada real não excede maximum_amount_in.
Argumentos
- O chamador assina com
user_input_ata; saldo>= maximum_amount_in(pior caso). - Cada ATA intermediária e de saída existem.
user_input_atadiminuído pelo montante real necessário (≤maximum_amount_in).user_output_ataaumentado por exatamenteamount_out.
ExceededSlippage— entrada necessária excedemaximum_amount_in.InvalidInput,SqrtPriceX64— como para tag 8.
Instruções de swap legadas
Estas variantes mais antigas ainda podem ser chamadas no programa ao vivo e são documentadas aqui por completude. Prefira tag 8 / tag 9 para novo código; ambas as variantes Legadas abaixo exigem uma dequelimit_prices não vazia mesmo quando nenhum hop CLMM está envolvido, o que as torna incômodas de usar.
SwapBaseInWithUserAccount (tag 0)
Swap multi-hop com entrada exata, idêntico em forma à tag 8, mas com o requisito mais rigoroso de limit_prices.
Argumentos
SwapBaseIn (tag 8). Todos os slots intermediários devem ser ATAs de propriedade do chamador.
Pré-condições
- O chamador assina com
user_input_ata. user_input_ata.amount >= amount_in.- Todas as ATAs intermediárias do usuário existem e são de propriedade do chamador.
limit_pricesé não vazio (uma entrada por hop CLMM; preencha com valores de placeholder se nenhum hop CLMM estiver envolvido).
- Saldo de
user_input_atadiminuído poramount_in. - Saldo de
user_output_ataaumentado por ≥minimum_amount_out.
ExceededSlippage.InvalidInput—limit_pricesvazio é rejeitado nesta variante Legada.SqrtPriceX64.
SwapBaseOutWithUserAccount (tag 1)
Swap com saída exata, o equivalente Legado de SwapBaseOut (tag 9).
Argumentos
- O chamador assina com
user_input_ata. user_input_ata.amount >= maximum_amount_in.- Todas as ATAs intermediárias do usuário existem e são de propriedade do chamador.
limit_pricesé não vazio.
user_input_atadiminuído pelo montante real necessário (≤maximum_amount_in).user_output_ataaumentado por exatamenteamount_out.
ExceededSlippage.InvalidInput.SqrtPriceX64.
Instruções de utilitário
CreateSyncNative (tag 5)
Cria (se ausente) e sincroniza uma ATA wSOL em uma única etapa. Conveniente ao encapsular SOL junto com um swap.
Argumentos
- Cria
user_wsol_atase ela ainda não existir. - Transfere
amountlamports do saldo SOL nativo do assinante para a ATA. - Chama
SyncNativena ATA para que seu saldo de token reflita os novos lamports.
InvalidOwner— o proprietário deuser_wsol_atanão é o assinante.
CloseTokenAccount (tag 6)
Fecha uma conta de token e retorna seu aluguel para a carteira de destino. Funciona em par com CreateSyncNative: após um swap de wSOL, chame CloseTokenAccount para recuperar o aluguel que apoiou a ATA wSOL.
Argumentos — nenhum.
Contas
- Fecha
token_account_to_close. - Transfere o saldo de lamports isento de aluguel (~0.00203928 SOL em mainnet para uma conta SPL Token vanilla) para
destination_for_rent. - A conta de token deve ter saldo de token zero.
InvalidOwner— o chamador não é o proprietário da ATA.- Saldo da conta de token é não zero.
Próximas etapas
products/routing/code-demos— construindo cada uma destas instruções em TypeScript.products/routing/accounts— chaves de dispatch por AMM e layout de conta por hop.reference/error-codes— lista completa deRouteError.


