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 →
Banner de versión. Todas las demostraciones de TypeScript apuntan a
@raydium-io/raydium-sdk-v2@0.2.42-alpha contra Solana mainnet-beta, verificado en 2026-04. El esqueleto de Rust CPI apunta a raydium-cp-swap en la rama master, Anchor 0.30.x. Los ID de programa se extraen mediante constantes de reference/program-addresses.Requisitos previos
raydium-sdk-V2-demo/src/cpmm; el enlace de GitHub se encuentra junto a cada sección. El arranque sigue el config.ts.template del repositorio de demostración (fuente):
Raydium es la fachada del SDK — cada demostración a continuación la utiliza. Obtiene de forma perezosa listas de tokens y configuraciones de comisiones desde api-v3.raydium.io; puedes inicializarla con tus propios datos en entornos sin conexión.
Crear un pool CPMM
Fuente:src/cpmm/createCpmmPool.ts
- Ordena los mints en orden token0/token1 antes de derivar el PDA.
- Paga la
create_pool_feeúnica apoolFeeAccount. - Crea las cuentas de token asociadas del llamador si faltan.
- Elige el programa de token correcto (SPL Token vs Token-2022) por lado.
Swap (entrada base)
Fuente:src/cpmm/swap.ts
getPoolInfoFromRpc. No cotes desde api-v3.raydium.io para una transacción que estés a punto de firmar — una cotización que está un bloque desactualizada puede deslizarse en ExceededSlippage en el momento de la ejecución.
Swap (salida base)
Fuente:src/cpmm/swapBaseOut.ts
Depositar liquidez
Fuente:src/cpmm/deposit.ts
lpAmount en needed_token_0 y needed_token_1 usando las reservas actuales del pool, infla cada una por 1 + slippage para los argumentos maximum_* de la instrucción, y construye las creaciones de ATA si es necesario.
Retirar liquidez
Fuente:src/cpmm/withdraw.ts
Cobrar comisiones de protocolo/fondo/creador
Fuente:src/cpmm/collectCreatorFee.ts, src/cpmm/collectAllCreatorFee.ts
La recopilación de protocolo y fondo permanece protegida por autoridad. Las comisiones del creador tienen dos caminos: el CollectCreatorFee firmado por creador existente, y el aditivo CollectCreatorFeePermissionless, que cualquier pagador puede invocar pero que solo puede transferir a las ATA canónicas del creador. El SDK fijado expone los constructores sin procesar existentes:
PoolState:
Esqueleto de Rust CPI
Si deseas invocar CPMM desde tu propio programa Anchor — por ejemplo, una bóveda que realiza swaps en nombre de sus depositantes — el contexto de CPI se ve así. El orden de cuentas sigueproducts/cpmm/instructions.
CpiContext::new con CpiContext::new_with_signer y pasa tus semillas.
Errores comunes
Una lista de verificación breve antes de abrir un ticket de soporte:- Mints ordenados. Si tu PDA
poolStatederivado no coincide con el pool en cadena, probablemente olvidaste ordenar los mints. - Cotización de API desactualizada. Nunca pases un valor de reserva de
api-v3.raydium.ioaCurveCalculator.swap. Obtén desde un RPC. - Programa de token incorrecto. El vault de un mint de Token-2022 es propiedad del programa Token-2022, no de SPL Token. Siempre usa los campos
token_0_program/token_1_programdel pool. - Slippage subestimado para mints con comisión de transferencia. Si cualquiera de los lados del pool es un mint de Token-2022 con comisión de transferencia, tu
minimum_amount_outdebe estar denominado en lo que el usuario realmente recibe, no en lo que el vault envía. NotApproveden un swap. VerificaPoolState.status— el administrador puede haber pausado los swaps en ese pool. Consultaproducts/cpmm/instructionspara la máscara de bits de estado.
Dónde ir a continuación
sdk-api/typescript-sdk— referencia completa del SDK.sdk-api/rest-api— puntos finales de cotización y metadatos de pool.user-flows/create-cpmm-pool— el recorrido sin código del mismo flujo.integration-guides/aggregator— si estás enrutando CPMM como parte de una ruta de múltiples saltos.

