Skip to main content
Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Fuente de verdad. Las tablas siguientes se regeneran a partir de error.rs en cada programa de los repositorios públicos de Raydium. Cuando se actualiza un programa y se añade una nueva variante, vuelve a ejecutar la extracción (enlace al final de cada tabla) y añade a la tabla en lugar de reorganizar — los códigos de error de Anchor se asignan por orden de fuente, no por nombre, así que reorganizar rompe el manejo de errores de los integradores.

Cómo funcionan los códigos de error de Anchor

Anchor asigna a cada variante de la enumeración ErrorCode de un programa un código numérico comenzando en 6000. Una transacción fallida expone:
  • Código de error numérico (p. ej. 0x1771 = 6001) en los registros de transacción.
  • Nombre del error (p. ej. InvalidOwner) del IDL.
  • Cadena #[msg(...)] que Anchor emitió en log_messages.
Los integradores deben coincidir con el código numérico, no con la cadena de mensaje (la cadena puede reescribirse sin aumentar una versión).

Errores de CPMM (AMM estándar)

ID del programa: consulta reference/program-addresses. Fuente: raydium-cp-swap/programs/cp-swap/src/error.rs. Fuente de regeneración: github.com/raydium-io/raydium-cp-swap — error.rs.

Errores de CLMM

ID del programa: consulta reference/program-addresses. Fuente: raydium-clmm/programs/amm/src/error.rs.
Nota sobre renumeración. La enumeración ErrorCode de CLMM fue renumerada en esta versión: cinco variantes heredadas (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) y varios errores tipográficos (Liquitity, enought, emissiones) fueron removidos/corregidos, y once nuevas variantes fueron añadidas. Debido a que Anchor numera errores por orden de fuente, cada código en o después de 6000 ha cambiado en relación con compilaciones previas al lanzamiento. Los clientes que codificaron códigos numéricos contra una versión anterior necesitan remapear.
Fuente de regeneración: github.com/raydium-io/raydium-clmm — error.rs.

Errores de AMM v4, Farm v3 / v5 / v6, LaunchLab

Estos programas se documentan en sus respectivos capítulos (consulta products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Debido a que esos programas utilizan una mezcla de superficies de error de Anchor y Solana plano, sus tablas de error viven junto a la referencia de instrucción en lugar de aquí. Los códigos siguientes están reservados por esos capítulos: El lanzamiento de LaunchLab mantiene los códigos 60006021 sin cambios. Elimina los antiguos errores de acceso global de plataforma y asigna 6022 al nuevo error de validación de cuenta permitida: Las antiguas variantes PlatformGlobalAccessDenied (6022) e InvalidPlatformGlobalAccess (6023) se eliminan. No decodifiques 6022 usando el IDL anterior.

Mapeo de errores del SDK a errores del programa

El SDK oficial de TypeScript envuelve errores en cadena en SendTransactionError y, para programas de Anchor, AnchorError:
Si no estás usando Anchor en el lado del cliente, analiza los registros de transacción:
El patrón Error Number: (\d+) es estable en versiones de Anchor y seguro para coincidir.

Regeneración de estas tablas

Cuando se actualiza un programa y añade un nuevo error, vuelve a extraer de la fuente:
Siempre actualiza reference/changelog cuando se añade una nueva variante, para que los integradores que actualicen el SDK sepan que deben actualizar sus manejadores de error. Fuentes: