Saltar al contenido principal
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 a continuación se regeneran desde el archivo error.rs de cada programa en los repositorios públicos de Raydium. Cuando un programa se actualiza y se añade una nueva variante, vuelve a ejecutar la extracción (enlace al final de cada tabla) y añade filas al final en lugar de reorganizar — los códigos de error de Anchor se asignan por orden en el código fuente, no por nombre, por lo que reorganizarlos 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 a partir de 6000. Una transacción fallida expone:
  • Código de error numérico (p. ej. 0x1771 = 6001) en los logs de la transacción.
  • Nombre del error (p. ej. InvalidOwner) desde el IDL.
  • Cadena #[msg(...)] que Anchor emitió en log_messages.
Los integradores deben comparar contra el código numérico, no contra la cadena del mensaje (el texto puede reformularse sin cambiar la versión).

Errores de CPMM (AMM estándar)

Program ID: 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

Program ID: ver reference/program-addresses. Fuente: raydium-clmm/programs/amm/src/error.rs.
Nota sobre la renumeración. El enum ErrorCode de CLMM fue renumerado en esta versión: se eliminaron/corrigieron cinco variantes heredadas (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) y varios errores tipográficos (Liquitity, enought, emissiones), y se añadieron once nuevas variantes al final. Dado que Anchor numera los errores por orden en el código fuente, todos los códigos a partir de 6000 se han desplazado respecto a las versiones previas al lanzamiento. Los clientes que tenían códigos numéricos codificados de forma fija para una versión anterior deben actualizar su mapeo.
Fuente de regeneración: github.com/raydium-io/raydium-clmm — error.rs.

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

Estos programas están documentados en sus capítulos respectivos (ver products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Como esos programas utilizan una combinación de Anchor y superficies de error de Solana nativo, sus tablas de errores están junto a la referencia de instrucciones y no aquí. Los códigos a continuación están reservados por esos capítulos:

Mapeo de errores del SDK a errores del programa

El SDK oficial de TypeScript envuelve los errores on-chain en SendTransactionError y, para programas Anchor, en AnchorError:
Si no usas el cliente Anchor, analiza los logs de la transacción:
El patrón Error Number: (\d+) es estable entre versiones de Anchor y es seguro usarlo para comparaciones.

Regeneración de estas tablas

Cuando un programa se actualiza y añade un nuevo error, vuelve a extraerlo del código fuente:
Actualiza siempre reference/changelog cuando se añada una nueva variante, para que los integradores que actualicen el SDK sepan que deben refrescar sus manejadores de errores. Fuentes: