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 →
Requisitos previos
raydium-sdk-V2-demo/src/cpmm; el enlace de GitHub se encuentra junto a cada sección. El arranque sigue la config.ts.template del repositorio de demostración (source):
Raydium es la fachada del SDK — todas las demostraciones de abajo la utilizan. Obtiene de forma lazy las 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
Origen:src/cpmm/createCpmmPool.ts
- Ordena los mints en el orden token0/token1 antes de derivar el PDA.
- Paga la comisión única
create_pool_feeapoolFeeAccount. - Crea las cuentas de tokens asociados del llamador si faltan.
- Elige el programa de tokens correcto (SPL Token vs Token-2022) por lado.
Swap (entrada base)
Origen:src/cpmm/swap.ts
getPoolInfoFromRpc. No hagas cotizaciones desde api-v3.raydium.io para una transacción que estés a punto de firmar — una cotización que está un bloque anticuada puede resultar en ExceededSlippage en el momento de la ejecución.
Swap (salida base)
Origen:src/cpmm/swapBaseOut.ts
Depositar liquidez
Origen: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
Origen:src/cpmm/withdraw.ts
Recolectar comisiones de protocolo/fondo/creador
Origen:src/cpmm/collectCreatorFee.ts, src/cpmm/collectAllCreatorFee.ts
Estas instrucciones están controladas por acceso de administrador o creador e invocadas típicamente desde un firmante tenido por el multisig de Raydium o el creador del pool. El SDK las expone como constructores crudos:
PoolState:
Esqueleto de Rust CPI
Si quieres invocar CPMM desde tu propio programa Anchor — por ejemplo, una bóveda que hace swap en nombre de sus depositantes — el contexto CPI se ve así. El ordenamiento de cuentas sigueproducts/cpmm/instructions.
CpiContext::new con CpiContext::new_with_signer y pasa tus semillas.
Errores comunes
Una lista de verificación corta antes de abrir un ticket de soporte:- Mints ordenados. Si tu PDA de
poolStatederivado no coincide con el pool en cadena, probablemente olvidaste ordenar los mints. - Cotización API anticuada. Nunca pases un valor de reserva desde
api-v3.raydium.ioaCurveCalculator.swap. Obtén desde un RPC. - Programa de tokens incorrecto. El bóveda de un mint Token-2022 es propiedad del programa Token-2022, no de SPL Token. Siempre usa los campos
token_0_program/token_1_programdel pool. - Slippage sub-denominado para mints con comisión de transferencia. Si algún lado del pool es un mint Token-2022 con comisión de transferencia, tu
minimum_amount_outdebe denominarse en lo que el usuario realmente recibe, no en lo que el bóveda envía. NotApproveden un swap. VerificaPoolState.status— el administrador puede haber pausado los swaps en ese pool. Consultaproducts/cpmm/instructionspara la máscara de estado.
A dónde ir a continuación
sdk-api/typescript-sdk— referencia completa del SDK.sdk-api/rest-api— endpoints 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 multi-hop.

