Passer au contenu principal
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Banneau de version. Tous les exemples ciblent @raydium-io/raydium-sdk-v2@0.2.42-alpha sur Solana mainnet-beta, vérifiés en 2026-04. ID du programme : 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 (voir reference/program-addresses).
La création de nouveaux pools n’est pas montrée ici. L’interface Raydium n’offre plus la création de pools AMM v4 — les nouvelles paires utilisent par défaut CPMM. Le programme AMM v4 lui-même accepte toujours Initialize2 on-chain ; ce n’est simplement pas le chemin recommandé. Les exemples ci-dessous couvrent les opérations sur pools actifs que chaque intégrateur doit connaître : swap, dépôt, retrait.

Configuration

Récupérer un pool par ID

poolKeys est la structure que les constructeurs d’instructions consomment. Elle contient tous les comptes AMM v4 et OpenBook dans l’ordre attendu par le programme.

Swap (base-in)

Le SDK achemine les swaps AMM v4 via les points d’entrée V2, qui ne contiennent pas les comptes OpenBook. (Après la mise à jour de 2026-07, les comptes de marché ne sont plus validés même sur le chemin v1 hérité.)

Swap (base-out)

Ajouter de la liquidité

fixedSide: "a" indique au SDK que vous avez fourni l’amountInA exact et que amountInB doit être au maximum maxAnotherAmount. La liquidité on-book du pool est réglée avant le calcul au prorata, de sorte que le ratio de dépôt correspond aux réserves les plus récentes.

Retirer de la liquidité

Les minimums de slippage protègent contre les changements d’état du pool entre votre pré-quote et le moment de l’exécution.

Ajustement des unités de calcul et des frais de priorité

Les swaps AMM v4 sont lourds en calcul car chaque instruction valide l’état complet d’OpenBook. Un swap typique utilise 180k–250k CU selon le nombre de commandes ouvertes à régler en chemin. Passez toujours une limite d’unités de calcul :
Si vous omettez computeBudgetConfig, le SDK peut toujours utiliser sa propre valeur par défaut ; inspectez innerTransactions pour confirmer. Voir integration-guides/priority-fee-tuning.

CPI Rust direct

Si vous devez faire un CPI dans AMM v4 depuis votre propre programme Anchor, vous devrez modéliser la liste de comptes de SwapBaseIn exactement. Un esquisse minimale :
AMM v4 ne fournit pas de caisse Anchor pour CPI. L’esquisse ci-dessus utilise une Instruction construite manuellement.
L’esquisse CPI ci-dessus utilise la disposition héritée v1 SwapBaseIn (tag 9, 17 comptes) pour lire/reproduire les transactions existantes. Depuis la mise à jour de 2026-07, les comptes de marché sont acceptés mais ignorés. Pour le nouveau code, préférez SwapBaseInV2 / SwapBaseOutV2 (tags 16 / 17), qui suppriment les comptes de marché (et amm_open_orders) entièrement — passez seulement 8 comptes : token_program, amm, amm_authority, les deux coffres du pool, les deux comptes de tokens utilisateur, et user_owner.

Pièges

  • Mauvais nombre de comptes sur les swaps v1. Les anciens SwapBaseIn / SwapBaseOut nécessitent toujours la liste complète de 17 comptes (ou 18 comptes) — un nombre mal assorti revient avec WrongAccountsNumber. Le contenu des comptes de marché n’est plus validé, mais vous devez toujours occuper leurs emplacements. Préférez les points d’entrée V2 pour éviter cela.
  • Lecture des soldes bruts des coffres. Les réserves sont maintenant réservées aux coffres ; soustrayez le PnL accumulé (need_take_pnl_*). Le devis du SDK ou api-v3.raydium.io/pools/info/ids gère cela pour vous.
  • Appel d’instructions supprimées. MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, AdminCancelOrders, et les anciens Initialize / PreInitialize reviennent maintenant. Utilisez Initialize2 pour la création de pools ; il n’y a pas de crank à appeler.
  • Mints Token-2022. Non supportés. Un pool AMM v4 ne peut pas être créé contre un mint Token-2022 ; toute paire Token-2022 doit être sur CPMM ou CLMM.

Où aller ensuite

Sources :