Skip to main content
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, récupère un devis de swap avec 0,5 % de slippage, construit la transaction, la signe avec votre paire de clés, et la soumet. De bout en bout en ~30 lignes.

Configuration

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

Le script

Enregistrez sous swap.mjs :
swap.mjs

Exécutez-le

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

Ce qui vient de se passer

  1. Raydium.load a initialisé le SDK — récupéré la configuration globale, configuré le contexte de votre portefeuille.
  2. getPoolInfoFromRpc a extrait 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 frais.
  3. CurveCalculator.swap a calculé la sortie du produit constant déduction faite des frais du pool. C’est la même mathématique que le programme exécute on-chain, vous pouvez donc comparer les devis hors-chaîne et on-chain.
  4. raydium.cpmm.swap a construit la transaction au format V0 (tables de recherche d’adresses activées) et ajouté une configuration de budget de calcul explicite. Le pourboire du budget de calcul aide la transaction à se valider dans les périodes chargées.
  5. execute({ sendAndConfirm: true }) a signé, envoyé et attendu la confirmation.

Erreurs courantes

  • Pool not found — Mauvais POOL_ID, ou vous pointez vers le mauvais cluster (ID de pool mainnet contre un RPC devnet, etc.).
  • Insufficient funds for transaction — Votre portefeuille n’a pas assez de SOL pour l’entrée du swap + frais + loyer ATA.
  • 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 les réserves.
  • Token account not initialized — L’ATA du token de sortie n’existait pas et l’instruction de création implicite s’est exécutée mais a échoué pour une raison quelconque ; vérifiez le solde SOL de votre portefeuille et réessayez.

Suivant