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 →
Le routeur ne fait aucun calcul
Le programme de routage n’implémente aucune logique de tarification. C’est un pur orchestrateur : il accepte une route, transmet les comptes aux programmes enfants, et enchaîne les flux de jetons. Chaque saut se tarifie selon la courbe de son propre programme de pool :- Sauts AMM v4 : utilisent la formule du produit constant (
x · y = k) avec tarification hybride OpenBook. Voirproducts/amm-v4/math. - Sauts CPMM : utilisent la formule du produit constant avec niveaux de frais configurables. Voir
products/cpmm/math. - Sauts CLMM : utilisent les mathématiques des tick de liquidité concentrée. Voir
algorithms/clmm-math. - Sauts stables : utilisent la courbe stable-swap pour les actifs équivalents. Voir
products/stable/math.
- Appeler l’instruction de swap de chaque pool via CPI.
- Collecter le montant en sortie.
- Le passer comme montant en entrée au saut suivant.
- Vérifier la sortie finale par rapport à la limite de slippage de l’appelant.
Composition du slippage
Sur une route multi-saut, le slippage à chaque saut se compose. Un petit slippage au saut 1 devient un slippage plus grand au saut 2 parce que le volume entrant au saut 2 est déjà réduit. Exemple :minimum_amount_out, le routeur vérifie votre sortie finale par rapport à cette limite globale. Chaque saut vérifie aussi son propre swap par rapport à sa structure de frais locale, mais le routeur n’effectue pas de nouvelle cotation en cours de route—vous devez pré-calculer la route et intégrer suffisamment de tolérance de slippage.
Sauts CLMM et limit_prices
Pour chaque saut dans un pool CLMM, le routeur vérifie que lesqrt_price_x64 actuel du pool se situe dans une limite spécifiée. Les limites sont passées comme un VecDeque<u128> appelé limit_prices :
- Un
sqrt_price_x64par saut CLMM dans la route. sqrt_price_x64est la représentation du prix basée sur les tick utilisée par CLMM. Voiralgorithms/clmm-mathpour la définition.- Le routeur applique :
Variantes d’instruction et limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Hérité, tags 0 et 1) : le VecDequelimit_pricesest requis. Une deque vide est rejetée avec une erreur si un saut est un pool CLMM. Vous devez fournir un prix par saut CLMM, dans l’ordre. -
SwapBaseIn,SwapBaseOut(Actuel, tags 8 et 9) : le VecDequelimit_pricesest optionnel. Une deque vide est silencieusement ignorée ; aucune vérification de prix n’est effectuée. Le nouveau code doit utiliser ceux-ci.
Construction de limit_prices
Pour une route avec M sauts CLMM, la deque doit contenir exactement M entrées. Ordonnez-les par saut :Quand vérifier limit_prices
Lesqrt_price_x64 est un instantané du prix actuel du pool. Il change continuellement à mesure que les swaps s’exécutent. Vous devez :
- Récupérer l’état actuel du pool en chaîne.
- Calculer les limites acceptables (par exemple, ±0,5 % du prix actuel).
- Encoder ces limites dans
limit_prices. - Inclure les limites dans votre instruction de routeur.
Gestion des frais
Chaque pool facture ses propres frais selon sa configuration :- AMM v4 : 0,25 % (fixe) partagé entre LP, protocole et fonds.
- CPMM : configurable par
AmmConfig(par défaut 0,25 %, partage varie selon le niveau). - CLMM : configurable par pool, prélevé sur le montant en entrée.
- Stable : comme AMM v4, 0,25 % partagé.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(si disponible)products/stable/fees(si disponible)
Exemple de comptabilité multi-saut
Supposons que vous routiez USDC → SOL → STEP à travers deux pools de produit constant, chacun avec un frais de 0,25 % :Considérations de précision
Comme tous les programmes Solana, le routeur utilise l’arithmétique entière :- Tous les montants sont
u64(lamports ou plus petites unités de jeton). - Les calculs de courbe utilisent des intermédiaires
u128si nécessaire pour éviter le débordement. - Les conventions d’arrondi dépendent du programme enfant. Le routeur n’effectue pas d’arrondi supplémentaire.
Où aller ensuite
products/amm-v4/math— mathématiques du produit constant.products/cpmm/math— CPMM produit constant avec Token-2022.algorithms/clmm-math— tarification de la liquidité concentrée.products/stable/math— courbe stable-swap.products/routing/code-demos— exemples de cotation avant routage.


