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.
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Résumé des instructions
| Tag | Discriminateur | Exact | Variante |
|---|---|---|---|
| 0 | SwapBaseInWithUserAccount | Input | Legacy |
| 1 | SwapBaseOutWithUserAccount | Output | Legacy |
| 5 | CreateSyncNative | — | Utilitaire |
| 6 | CloseTokenAccount | — | Utilitaire |
| 8 | SwapBaseIn | Input | Courant |
| 9 | SwapBaseOut | Output | Courant |
- Exact : quel montant est fixé par l’appelant (Input = montant fixe en entrée
amount_in; Output = montant fixe en sortieamount_out). - Variante : Les instructions Legacy nécessitent une deque
limit_pricesnon vide même s’il n’y a pas de saut CLMM dans la route. Les instructions courantes (8 / 9) traitent unelimit_pricesvide comme « pas de vérifications », ce qui est le chemin recommandé pour le nouveau code.
SwapBaseIn) ou tag 9 (SwapBaseOut) sauf si vous avez une raison précise d’appeler une variante Legacy.
Instructions de swap courants (recommandées)
Ce sont les points d’entrée que le nouveau code devrait utiliser. La structure des arguments est la même que pour les variantes Legacy maislimit_prices peut être vide.
SwapBaseIn (tag 8)
Swap multi-saut avec montant fixe en entrée. L’appelant fixe amount_in ; le routeur exécute saut par saut et affirme que le montant final atteint ou dépasse minimum_amount_out.
Arguments
- L’appelant signe avec
user_input_ata. user_input_ata.amount >= amount_in.- Chaque ATA intermédiaire utilisateur existe et est possédé par l’appelant.
- Si un saut est CLMM et que vous voulez appliquer un contrôle de prix, fournissez une entrée
limit_pricespar saut CLMM.
- Le solde de
user_input_atadiminue deamount_in. - Le solde de
user_output_ataaugmente de ≥minimum_amount_out. - Chaque ATA intermédiaire est laissé avec zéro changement net (la route consomme ce qu’elle a produit un saut plus tôt).
ExceededSlippage— sortie finale <minimum_amount_out.InvalidInput— route vide, comptes malformés oupool_programnon supporté.SqrtPriceX64— le prix d’un saut CLMM s’est déplacé en dehors de la limitelimit_pricesfournie (seulement quandlimit_pricesest non vide).
SwapBaseOut (tag 9)
Swap multi-saut avec montant fixe en sortie. L’appelant fixe amount_out ; le routeur affirme que l’entrée réelle ne dépasse pas maximum_amount_in.
Arguments
- L’appelant signe avec
user_input_ata; solde>= maximum_amount_in(cas limite). - Chaque ATA intermédiaire et de sortie existent.
user_input_atadiminue du montant réel nécessaire (≤maximum_amount_in).user_output_ataaugmente d’exactementamount_out.
ExceededSlippage— entrée requise dépassemaximum_amount_in.InvalidInput,SqrtPriceX64— comme pour tag 8.
Instructions de swap Legacy
Ces variantes plus anciennes sont toujours appelables sur le programme en direct et sont documentées ici pour exhaustivité. Préférez tag 8 / tag 9 pour le nouveau code ; les deux variantes Legacy ci-dessous nécessitent une dequelimit_prices non vide même quand aucun saut CLMM n’est impliqué, ce qui les rend maladroites à utiliser.
SwapBaseInWithUserAccount (tag 0)
Swap multi-saut avec montant fixe en entrée, identique en structure à tag 8 mais avec l’exigence limit_prices plus stricte.
Arguments
SwapBaseIn (tag 8). Tous les emplacements intermédiaires doivent être des ATAs possédés par l’appelant.
Pré-conditions
- L’appelant signe avec
user_input_ata. user_input_ata.amount >= amount_in.- Tous les ATAs intermédiaires utilisateur existent et sont possédés par l’appelant.
limit_pricesest non vide (une entrée par saut CLMM ; remplissez avec des valeurs d’espace réservé s’il n’y a pas de saut CLMM).
- Le solde de
user_input_atadiminue deamount_in. - Le solde de
user_output_ataaugmente de ≥minimum_amount_out.
ExceededSlippage.InvalidInput— unelimit_pricesvide est rejetée pour cette variante Legacy.SqrtPriceX64.
SwapBaseOutWithUserAccount (tag 1)
Swap avec montant fixe en sortie, l’équivalent Legacy de SwapBaseOut (tag 9).
Arguments
- L’appelant signe avec
user_input_ata. user_input_ata.amount >= maximum_amount_in.- Tous les ATAs intermédiaires utilisateur existent et sont possédés par l’appelant.
limit_pricesest non vide.
user_input_atadiminue du montant réel nécessaire (≤maximum_amount_in).user_output_ataaugmente d’exactementamount_out.
ExceededSlippage.InvalidInput.SqrtPriceX64.
Instructions utilitaires
CreateSyncNative (tag 5)
Créez (si absent) et synchronisez un ATA wSOL en une seule étape. Pratique quand vous enveloppez SOL en ligne avec un swap.
Arguments
- Crée
user_wsol_atas’il n’existe pas encore. - Transfère
amountlamports du solde SOL natif du signataire vers l’ATA. - Appelle
SyncNativesur l’ATA afin que son solde de tokens reflète les nouveaux lamports.
InvalidOwner— le propriétaire deuser_wsol_atan’est pas le signataire.
CloseTokenAccount (tag 6)
Fermez un compte de token et retournez son loyer au portefeuille de destination. Fonctionne avec CreateSyncNative : après un swap avec branche wSOL, appelez CloseTokenAccount pour récupérer le loyer qui soutenait l’ATA wSOL.
Arguments — aucun.
Comptes
- Ferme
token_account_to_close. - Transfère le solde en lamports exempt de loyer (~0.00203928 SOL sur mainnet pour un compte SPL Token vanilla) vers
destination_for_rent. - Le compte de token doit avoir un solde de token nul.
InvalidOwner— l’appelant n’est pas le propriétaire de l’ATA.- Le solde du compte de token est non nul.
Prochaines étapes
products/routing/code-demos— construisez chacune de ces instructions en TypeScript.products/routing/accounts— clés de dispatch par AMM et mise en page des comptes par saut.reference/error-codes— liste complète deRouteError.


