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 Raydium. Lorsqu’un programme est mis à niveau et qu’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 (par ex. 0x1771 = 6001) dans les logs de la transaction.
  • Nom de l’erreur (par 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 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 (60406050) par la version des ordres limites ; 6051 (InvalidTickArrayBitmapExtensionAccount) provient d’un changement distinct et ultérieur. Cela fait 52 variantes au total, 60006051 — le même nombre que celui que rapporte l’IDL on-chain du programme déployé. 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). Parce que ces programmes utilisent un mélange de surfaces d’erreur Anchor et Solana brutes, 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 60006021 inchangés. La version 2026-08-17 a supprimé les anciennes erreurs d’accès global à la plateforme et a assigné 6022 à l’erreur de validation du compte d’autorisation ; la version 2026-08-24 ajoute 6023 ; la version 2026-08-31 ajoute 60246030 ; la version 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 2026-08-17 — est réutilisé par la version 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 60216031.

AMM v4 : AmmError n’est pas numéroté par Anchor

AMM v4 précède Anchor. AmmError est une énumération thiserror brute avec FromPrimitive, convertie via ProgramError::Custom(e as u32), donc ses codes commencent à 0, pas 6000 — et, comme Anchor, sont assignés par ordre source. La mise à niveau 2026-09 ajoute une variante : Les codes 059 sont inchangés, donc rien ne change. Dans les logs 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 logs de transaction :
Le motif Error Number: (\d+) est stable entre les versions d’Anchor et sûr à faire correspondre.

Régénération de ces tableaux

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