Skip to main content
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Source de vérité. Les tableaux ci-dessous sont régénérés à partir du fichier error.rs de chaque programme dans les dépôts publics de Raydium. Quand un programme est mis à jour et une nouvelle variante est ajoutée, réexécutez l’extraction (lien en bas de chaque tableau) et ajoutez au tableau plutôt que de le réorganiser — les codes d’erreur Anchor sont assignés par ordre source, pas par nom, donc réorganiser casse la gestion des erreurs des intégrateurs.

Fonctionnement des codes d’erreur Anchor

Anchor assigne à chaque variante de l’énumération ErrorCode d’un programme un code numérique commençant à 6000. Une transaction échouée affiche :
  • Code d’erreur numérique (ex. 0x1771 = 6001) dans les logs de la transaction.
  • Nom de l’erreur (ex. InvalidOwner) depuis l’IDL.
  • Chaîne #[msg(...)] qu’Anchor a émise dans log_messages.
Les intégrateurs doivent faire correspondre le code numérique, pas la chaîne de message (la chaîne peut être reformulée sans augmenter une version).

Erreurs CPMM (AMM standard)

ID du programme : voir /fr/reference/program-addresses. Source : raydium-cp-swap/programs/cp-swap/src/error.rs. Source de régénération : github.com/raydium-io/raydium-cp-swap — error.rs.

Erreurs CLMM

ID du programme : voir reference/program-addresses. Source : raydium-clmm/programs/amm/src/error.rs.
Note sur la renumérotation. L’énumération ErrorCode de CLMM a été renumérotée dans cette version : cinq variantes héritées (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) et plusieurs fautes de frappe (Liquitity, enought, emissiones) ont été supprimées/corrigées, et onze nouvelles variantes ont été ajoutées (6040–6050) par la version des ordres limites ; 6051 (InvalidTickArrayBitmapExtensionAccount) provient d’un changement séparé et ultérieur. Cela a fait 52 variantes, 6000–6051, ce qui est le nombre que l’IDL on-chain du programme actuellement déployé rapporte. La mise à jour du 2026-09-30 ajoute 6052 sans rien décaler, pour 53 au total. Parce qu’Anchor numérote les erreurs par ordre source, chaque code à partir de 6000 a changé par rapport aux versions de pré-version. Les clients qui ont codé en dur les codes numériques par rapport à une version antérieure doivent remapper.
Source de régénération : github.com/raydium-io/raydium-clmm — error.rs.

Erreurs AMM v4, Farm v3 / v5 / v6, LaunchLab

Ces programmes sont documentés dans leurs chapitres respectifs (voir products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Comme ces programmes utilisent un mélange de surfaces d’erreur Anchor et Solana natif, leurs tableaux d’erreurs se trouvent à côté de la référence d’instruction plutôt qu’ici. Les codes ci-dessous sont réservés par ces chapitres : Les versions récentes de LaunchLab conservent les codes 6000–6021 inchangés. La version du 2026-08-17 a supprimé les anciennes erreurs d’accès global à la plateforme et a assigné 6022 à l’erreur de validation du compte allow ; la version du 2026-08-24 ajoute 6023 ; la version du 2026-08-31 ajoute 6024–6030 ; la version du 2026-09-09 ajoute 6031 : Les anciennes variantes PlatformGlobalAccessDenied (6022) et InvalidPlatformGlobalAccess (6023) sont supprimées. Ne décodez pas 6022 en utilisant l’IDL précédent, et notez que 6023 — libéré par la version du 2026-08-17 — est réutilisé par la version du 2026-08-24 pour une erreur sans rapport, il ne doit donc pas être décodé avec un IDL d’une version antérieure. 6020 est conservé délibérément. Anchor numérote les variantes par position, donc le supprimer décalerait chaque code après lui et casserait chaque client qui décode 6021–6031.

AMM v4 : AmmError n’est pas numéroté à la manière d’Anchor

AMM v4 est antérieur à Anchor. AmmError est une énumération thiserror simple avec FromPrimitive, convertie via ProgramError::Custom(e as u32), donc ses codes commencent à 0, pas 6000 — et, comme ceux d’Anchor, sont assignés par ordre source. La mise à niveau de 2026-09 ajoute une variante : Les codes 0–59 restent inchangés, rien ne se décale donc. Dans les journaux de transaction, cela s’affiche comme custom program error: 0x3c. Source de régénération : github.com/raydium-io/raydium-amm — error.rs.

Mappage des erreurs SDK aux erreurs de programme

Le SDK TypeScript officiel enveloppe les erreurs on-chain dans SendTransactionError et, pour les programmes Anchor, AnchorError :
Si vous n’utilisez pas Anchor côté client, analysez les journaux de transaction :
Le motif Error Number: (\d+) est stable entre les versions d’Anchor et sûr à utiliser.

Régénération de ces tableaux

Quand un programme est mis à niveau et ajoute une nouvelle erreur, réextrayez depuis la source :
Mettez toujours à jour reference/changelog quand une nouvelle variante est ajoutée, afin que les intégrateurs mettant à niveau le SDK sachent rafraîchir leurs gestionnaires d’erreurs. Sources :