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 →
Qu’est-ce qu’un IDL
Les programmes Anchor sur Solana publient un fichier IDL (Interface Definition Language) qui décrit leurs instructions, structures de comptes, énumérations d’erreurs et schémas de structures. L’IDL est la source de vérité pour la génération de code client — le SDK TS, la crate CPI Rust et les clients tiers sont tous générés à partir de celui-ci (ou écrits manuellement selon ses spécifications). Raydium publie des IDLs pour CPMM, CLMM et LaunchLab. AMM v4, Stable AMM et Farm (v3 / v5 / v6) sont antérieurs à Anchor ou ne sont pas distribués via Anchor — leurs structures de comptes sont maintenues manuellement dans le SDK.Où les trouver
Les IDLs vivent dans un dépôt dédié :| Programme | Fichier IDL |
|---|---|
| CPMM | raydium_cpmm/raydium_cp_swap.json |
| CLMM | raydium_clmm/raydium_clmm.json |
| LaunchLab | raydium_launchpad/raydium_launchpad.json |
| AMM v4 | pas d’IDL officiel — voir raydium-sdk-V2/src/raydium/liquidity/layout.ts pour les structures maintenues manuellement |
| Stable AMM | pas d’IDL officiel — structures dans le SDK |
| Farm | pas d’IDL officiel — structures dans le SDK |
Régénérer un client TypeScript
La génération de code d’Anchor produit un client typé à partir de l’IDL :raydium.cpmm.swap(...) qui encapsule les méthodes Anchor plus toute la comptabilité (création d’ATA, ajustement des frais de transfert, budget de calcul, routage du programme Token-2022). Régénérez uniquement si vous avez besoin d’une couche en dessous du SDK.
Régénérer un client Rust (crate CPI)
Raydium publie des crates Anchor pour les programmes qui ont des IDLs :cpi expose les structures de comptes cpi::accounts::<Ix> et les invocateurs cpi::<ix>() — des enveloppes CPI prêtes à l’emploi. Consultez sdk-api/rust-cpi pour les modèles d’utilisation.
Si vous préférez générer de nouvelles liaisons :
Régénérer un client Python
Il n’existe pas de SDK Python officiel de Raydium. Les générateurs tiers incluent :anchorpy— port Python de@coral-xyz/anchor. Génère des constructeurs de méthodes typées à partir d’IDLs.solders— primitives Solana de bas niveau (transactions, paires de clés, clés publiques) dans des liaisons Rust ; utilisées sousanchorpy.
sdk-api/python-integration pour une description plus complète.
Politique de changement d’IDL
Raydium suit ces règles pour la stabilité de l’IDL :- Les discriminateurs d’instruction ne changent jamais. L’ajout de nouvelles instructions étend l’énumération à la fin ; les discriminateurs existants restent stables.
- Les structures de comptes évoluent uniquement de manière additive. Les nouveaux champs vont à la fin, précédés d’une augmentation de taille dans le schéma on-chain. Les champs existants conservent leurs décalages.
- Les codes d’erreur énumérés ne font qu’augmenter. Un code d’erreur existant signifie toujours la même chose.
- Les changements radicaux sont livrés dans de nouveaux programmes. Lorsqu’une refonte est nécessaire, l’équipe déploie un nouvel ID de programme (par exemple, CPMM en tant que programme indépendant plutôt que de mettre à niveau AMM v4). Les anciens pools continuent à fonctionner sur l’ancien programme ; les nouveaux pools vont vers le nouveau.
Que faire quand l’IDL change
- Mettez à jour le SDK.
npm update @raydium-io/raydium-sdk-v2. - Régénérez votre code client si vous utilisez directement la génération de code Anchor.
- Comparez la structure du compte. Les champs de fin de la nouvelle structure sont la seule chose que votre code n’a pas vue ; confirmez si vous les avez besoin.
- Ne supposez pas que les anciens discriminateurs d’instruction sont invalides. Selon la règle 1, ils fonctionnent toujours.
- Re-lancez les tests d’intégration sur devnet avant de basculer vers mainnet.
Dépannage d’IDL
Erreurs « Invalid discriminator »
Cela signifie généralement qu’un client construit selon la version N de l’IDL tente d’invoquer une instruction qui n’existait que dans une version pré-déploiement du programme. Re-récupérez l’IDL à partir du programme actif :Échecs du décodage des comptes
Siprogram.account.<Name>.fetch(pubkey) lève une erreur « Invalid account discriminator », le compte a été créé par une version précédente du programme et Anchor rejette son discriminateur de 8 octets. La solution est d’utiliser l’analyseur de structure brut du SDK (PoolInfoLayout.decode(accountData)) qui n’applique pas les discriminateurs Anchor.
Instructions manquantes dans le client généré
La génération de code TS d’Anchor génère uniquement des méthodes pour les instructions dont l’entrée IDL a unname qui s’analyse comme un identifiant valide. Les instructions de Raydium satisfont toutes à cela, mais si vous voyez une incohérence, vérifiez si le fichier IDL provient de la version SDK actuelle.
Pointeurs
sdk-api/rust-cpi— utiliser les crates Rust CPI.sdk-api/python-integration— Python viaanchorpy.sdk-api/typescript-sdk— le client TS de haut niveau.


