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.
Remarque 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. Parce qu’Anchor numérote les erreurs par ordre source, chaque code à partir de 6000 a changé par rapport aux versions 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 : La version LaunchLab conserve les codes 60006021 inchangés. Elle supprime les anciennes erreurs d’accès global à la plateforme et assigne 6022 à la nouvelle erreur de validation du compte d’autorisation : Les anciennes variantes PlatformGlobalAccessDenied (6022) et InvalidPlatformGlobalAccess (6023) sont supprimées. Ne décodez pas 6022 en utilisant l’IDL précédent.

Mappage des erreurs SDK aux erreurs du programme

Le SDK TypeScript officiel enveloppe les erreurs on-chain dans SendTransactionError et, pour les programmes Anchor, AnchorError :
Si vous n’utilisez pas le client Anchor, analysez les logs de la 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 :