Passer au contenu principal
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Ce que cela fait. Charge un pool CPMM depuis le RPC, donne un devis de swap avec 0,5 % de slippage, construit la transaction, la signe avec votre keypair et l’envoie. Le tout en ~30 lignes.

Configuration

Assurez-vous d’avoir lu les prérequis du Démarrage rapide et d’avoir RPC_URL, KEYPAIR, et les dépendances installées.

Le script

Enregistrez en tant que swap.mjs :

Lancer le script

Choisissez n’importe quel pool CPMM pour lequel vous avez de la liquidité. Exemple avec le pool CPMM canonique SOL/USDC :
Résultat attendu :

Ce qui vient de se passer

  1. Raydium.load a initialisé le SDK — récupéré la config globale, configuré le contexte de votre portefeuille.
  2. getPoolInfoFromRpc a tiré l’état du pool en direct depuis le RPC (pas du cache de l’API). Pour les swaps de grande valeur, vous voulez toujours un état à jour.
  3. CurveCalculator.swap a calculé la sortie produit constant nets des frais du pool. C’est la même math que le programme exécute en chaîne, donc vous pouvez comparer les devis hors chaîne et sur chaîne.
  4. raydium.cpmm.swap a construit la transaction au format V0 (tables de recherche d’adresses activées) et ajouté une config de budget de calcul explicite. Le pourboire du budget de calcul aide la tx à se poser dans les fenêtres chargées.
  5. execute({ sendAndConfirm: true }) a signé, envoyé et attendu la confirmation.

Erreurs courantes

  • Pool not found — Mauvais POOL_ID, ou vous pointez sur le mauvais cluster (ID de pool mainnet par rapport à un RPC devnet, etc.).
  • Insufficient funds for transaction — Votre portefeuille n’a pas assez de SOL pour le montant du swap + frais + ATA loyer.
  • Slippage tolerance exceeded — Le prix du pool a changé entre le devis et l’exécution. Relancez ; ou augmentez le paramètre slippage ; ou utilisez computeAmountOut du SDK qui récupère toujours à nouveau les réserves.
  • Token account not initialized — L’ATA du jeton de sortie n’existait pas et l’instruction de création implicite s’est posée mais a échoué pour une raison quelconque ; vérifiez le solde SOL de votre portefeuille et réessayez.

Ensuite