Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
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 →
Qué es un IDL
Los programas Anchor en Solana publican un archivo IDL (Interface Definition Language) que describe sus instrucciones, esquemas de cuenta, enumeración de errores y esquemas de struct. El IDL es la fuente de verdad para la generación de código cliente — el SDK de TS, la crate de CPI de Rust y los clientes de terceros se generan a partir de él (o se escriben manualmente contra él). Raydium publica IDLs para CPMM, CLMM y LaunchLab. AMM v4, Stable AMM y Farm (v3 / v5 / v6) son anteriores a Anchor o no se distribuyen con Anchor de otra manera — sus estructuras de cuenta se mantienen manualmente en el SDK.Dónde encontrarlos
Los IDLs viven en un repositorio dedicado:| Programa | Archivo IDL |
|---|---|
| CPMM | raydium_cpmm/raydium_cp_swap.json |
| CLMM | raydium_clmm/raydium_clmm.json |
| LaunchLab | raydium_launchpad/raydium_launchpad.json |
| AMM v4 | sin IDL oficial — consulta raydium-sdk-V2/src/raydium/liquidity/layout.ts para esquemas escritos manualmente |
| Stable AMM | sin IDL oficial — esquemas en el SDK |
| Farm | sin IDL oficial — esquemas en el SDK |
Regenerar un cliente TypeScript
La generación de código de Anchor produce un cliente tipificado a partir del IDL:raydium.cpmm.swap(...) que envuelve los métodos de Anchor más toda la gestión (creación de ATA, ajuste de comisión de transferencia, presupuesto de cómputo, enrutamiento de programa Token-2022). Regenera solo cuando necesites una capa por debajo del SDK.
Regenerar un cliente Rust (crate de CPI)
Raydium publica crates de Anchor para los programas que tienen IDLs:cpi expone structs de cuenta cpi::accounts::<Ix> e invocadores cpi::<ix>() — envoltorios de CPI listos para usar. Consulta sdk-api/rust-cpi para patrones de uso.
Si prefieres generar enlaces frescos:
Regenerar un cliente Python
No hay un SDK oficial de Raydium para Python. Los generadores de terceros incluyen:anchorpy— puerto de Python de@coral-xyz/anchor. Genera constructores de métodos tipificados a partir de IDLs.solders— primitivos de Solana de bajo nivel (transacciones, keypairs, pubkeys) en enlaces de Rust; se usa debajo deanchorpy.
sdk-api/python-integration para un recorrido más completo.
Política de cambios de IDL
Raydium sigue estas reglas para la estabilidad del IDL:- Los discriminadores de instrucción nunca cambian. Agregar nuevas instrucciones extiende la enumeración al final; los discriminadores existentes permanecen estables.
- Los esquemas de struct de cuenta evolucionan solo de manera aditiva. Los nuevos campos van al final, precedidos por un bump de tamaño en el esquema on-chain. Los campos existentes mantienen sus desplazamientos.
- Los códigos de enumeración de errores son solo aditivos. Un código de error existente siempre significa lo mismo.
- Los cambios que rompen compatibilidad se envían en nuevos programas. Cuando se necesita un rediseño, el equipo despliega un nuevo ID de programa (por ejemplo, CPMM como un programa nuevo en lugar de actualizar AMM v4). Los pools antiguos continúan ejecutándose en el programa antiguo; los nuevos pools van al nuevo.
Qué hacer cuando cambia el IDL
- Actualiza el SDK.
npm update @raydium-io/raydium-sdk-v2. - Regenera tu código cliente si usas la generación de código de Anchor directamente.
- Compara el esquema de cuenta. Los campos finales del nuevo esquema son la única cosa que tu código no ha visto; confirma si los necesitas.
- No asumas que los discriminadores de instrucción antiguos son inválidos. Según la regla 1, aún funcionan.
- Vuelve a ejecutar las pruebas de integración contra devnet antes de pasar a mainnet.
Solución de problemas de IDL
Errores de “Invalid discriminator”
Generalmente significa que un cliente construido contra la versión N del IDL intenta invocar una instrucción que existía solo en una versión anterior del programa. Vuelve a extraer el IDL del programa en vivo:Fallos al decodificar cuentas
Siprogram.account.<Name>.fetch(pubkey) falla con “Invalid account discriminator”, la cuenta fue creada por una versión anterior del programa y Anchor está rechazando su discriminador de 8 bytes. La solución es usar el analizador de esquema sin procesar del SDK (PoolInfoLayout.decode(accountData)) que no hace cumplir los discriminadores de Anchor.
Instrucciones faltantes en el cliente generado
La generación de código TS de Anchor solo genera métodos para instrucciones cuya entrada de IDL tiene unname que se analiza como un identificador válido. Las instrucciones de Raydium todas satisfacen esto, pero si ves una discrepancia, verifica si el archivo IDL es de la versión actual del SDK.
Referencias
sdk-api/rust-cpi— usando las crates de CPI de Rust.sdk-api/python-integration— Python a través deanchorpy.sdk-api/typescript-sdk— el cliente de TS de nivel superior.


