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 del archivo error.rs de cada programa en 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 del enum 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 la 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 cambiar de versión).

Errores de CPMM (AMM estándar)

ID del programa: ver 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: ver reference/program-addresses. Fuente: raydium-clmm/programs/amm/src/error.rs.
Nota sobre renumeración. El enum ErrorCode de CLMM fue renumerado 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. Porque Anchor numera errores por orden de fuente, cada código en o después de 6000 ha cambiado en relación con compilaciones previas a la versión. Los clientes que codificaron números de códigos 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 (ver products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Porque esos programas usan 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: Los lanzamientos recientes de LaunchLab mantienen los códigos 60006021 sin cambios. El lanzamiento del 2026-08-17 removió los antiguos errores de acceso global de plataforma y asignó 6022 al error de validación de cuenta permitida; el lanzamiento del 2026-08-24 añade 6023; el lanzamiento del 2026-08-31 añade 60246030: Las antiguas variantes PlatformGlobalAccessDenied (6022) e InvalidPlatformGlobalAccess (6023) se han removido. No decodifiques 6022 usando el IDL anterior, y nota que 6023 — vacado por el lanzamiento del 2026-08-17 — es reutilizado por el lanzamiento del 2026-08-24 para un error no relacionado, así que no debe ser decodificado con un IDL de ninguna versión anterior. 6020 se retiene deliberadamente. Anchor numera variantes por posición, así que eliminarlo cambiaría cada código después y rompería cada cliente que decodifica 60216030.

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 la transacción:
El patrón Error Number: (\d+) es estable entre 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: