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 muestra:
  • 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 cambiar de 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 agregadas (6040–6050) por la versión de orden limitada; 6051 (InvalidTickArrayBitmapExtensionAccount) provino de un cambio separado y posterior. Eso hizo 52 variantes, 6000–6051, que es el recuento que el IDL en cadena del programa actualmente desplegado reporta. La actualización del 2026-09-30 agrega 6052 sin cambiar nada, para 53 en total. Debido a que Anchor numera errores por orden de fuente, cada código en o después de 6000 se ha desplazado 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 están documentados en sus respectivos capítulos (véase products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Dado que estos programas utilizan una mezcla de superficies de error de Anchor y Solana puro, sus tablas de errores se encuentran junto a la referencia de instrucciones en lugar de aquí. Los códigos siguientes están reservados por esos capítulos: Los lanzamientos recientes de LaunchLab mantienen los códigos 6000–6021 sin cambios. El lanzamiento del 2026-08-17 eliminó 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 6024–6030; el lanzamiento del 2026-09-09 añade 6031: Las antiguas variantes PlatformGlobalAccessDenied (6022) e InvalidPlatformGlobalAccess (6023) se han eliminado. No decodifiques 6022 usando el IDL anterior, y ten en cuenta que 6023 — vacado por el lanzamiento del 2026-08-17 — es reutilizado por el lanzamiento del 2026-08-24 para un error no relacionado, por lo que no debe decodificarse con un IDL de ninguna versión anterior. 6020 se retiene deliberadamente. Anchor numera variantes por posición, por lo que eliminarlo desplazaría cada código posterior y rompería cada cliente que decodifica 6021–6031.

AMM v4: AmmError no está numerado por Anchor

AMM v4 es anterior a Anchor. AmmError es un enum thiserror plano con FromPrimitive, convertido a través de ProgramError::Custom(e as u32), por lo que sus códigos comienzan en 0, no en 6000 — y, como los de Anchor, se asignan por orden de fuente. La actualización de 2026-09 añade una variante: Los códigos 0–59 no cambian, por lo que nada se desplaza. En los registros de transacciones, esto aparece como custom program error: 0x3c. Fuente de regeneración: github.com/raydium-io/raydium-amm — error.rs.

Mapeo de errores del SDK a errores del programa

El SDK oficial de TypeScript envuelve errores en cadena en SendTransactionError y, para programas Anchor, AnchorError:
Si no estás usando Anchor en el lado del cliente, analiza los registros de transacciones:
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, reextrae 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 errores. Fuentes: