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 →
Esta entrada cubre una actualización del programa CPMM programada para 2026-10-30. Se verificó contra la rama feat/initialize-v2 de raydium-cp-swap (head 40cbd81) antes del despliegue. Confirma el programa desplegado antes de confiar en la nueva instrucción.
Cada pool CPMM tiene un indicador enable_creator_fee y un lado creator_fee_on, ambos fijados en la creación. Hasta ahora, un creador solo podía establecerlos mediante InitializeWithPermission, que necesita un PDA Permission emitido por el administrador. La instrucción pública Initialize siempre almacenaba la comisión como deshabilitada. En la práctica, solo las graduaciones de LaunchLab y otros flujos controlados podían crear un pool que cobrara una comisión del creador. Este lanzamiento agrega InitializeV2. Es Initialize con un argumento extra, creator_fee_on: Option<CreatorFeeOn>, y cualquiera puede llamarla. La matemática del pool, el swap, la liquidez, la recopilación de comisiones y la parte del protocolo de la comisión del creador no se tocan.

TL;DR para integradores

  • Nueva instrucción: InitializeV2. Sin permisos. Los argumentos son init_amount_0, init_amount_1, open_time y creator_fee_on: Option<CreatorFeeOn>. Discriminador [67, 153, 175, 39, 218, 16, 38, 32].
  • Some(side) habilita la comisión del creador en ese lado; None la deja desactivada. None almacena exactamente lo mismo que Initialize.
  • Mismas cuentas que Initialize, menos rent. Las primeras 19 cuentas son idénticas y están en el mismo orden. Consulta la lista de cuentas.
  • El creador es el firmante. pool_state.pool_creator es el creator firmante. A diferencia de InitializeWithPermission, el beneficiario no se puede establecer en otra dirección.
  • El creador elige si la activa y el lado, no la tasa. El pool cobra el AmmConfig.creator_fee_rate de su nivel de comisión. Esa tasa es 0 por defecto, así que un pool habilitado en un nivel así no acumula nada.
  • Nada existente cambió. Initialize e InitializeWithPermission conservan sus discriminadores, cuentas, argumentos y comportamiento. Ningún diseño de cuenta ni código de error cambió.
  • Actualiza tu IDL para obtener la nueva instrucción. Los clientes que nunca la llamen no necesitan cambios.

Qué cambió en el programa

Nueva instrucción: InitializeV2

InitializeV2 ejecuta el mismo código de creación que Initialize. Esta instrucción:
  • acepta como pool_state la PDA canónica del pool o un keypair aleatorio firmado;
  • aplica las mismas verificaciones de la lista de permitidos de Token-2022 y de SupportMintAssociated, mediante remaining_accounts;
  • rechaza la creación cuando amm_config.disable_create_pool está activado;
  • aumenta open_time a block_timestamp + 1 cuando no está en el futuro;
  • bloquea 100 unidades base de LP y acuña el resto al creador;
  • cobra amm_config.create_pool_fee.
La única diferencia es lo que escribe en el nuevo PoolState: Un byte de etiqueta o de variante no válido falla en la deserialización de argumentos de Anchor. No interviene ningún código de error nuevo.

Cómo se comparan las tres rutas de creación

Refactorización interna

Los tres handlers ahora comparten una única rutina initialize_pool. La refactorización no cambia las cuentas, argumentos, verificaciones ni valores almacenados de Initialize o InitializeWithPermission. Las nuevas pruebas también verifican que un Initialize simple sobre la misma configuración sigue almacenando la comisión del creador como deshabilitada.

Qué deben saber los creadores

  • Revisa primero el nivel de comisión. La tasa de la comisión del creador pertenece a la AmmConfig, no al pool. Elige un nivel cuyo creator_fee_rate sea lo que quieres cobrar. Las tasas se enumeran en products/cpmm/fees.
  • La elección es permanente. Ninguna instrucción cambia enable_creator_fee ni creator_fee_on después de la creación. Para cambiarla, debes crear un nuevo pool.
  • Los traders la pagan además de la comisión de trading. La comisión del creador es una tasa separada que se suma al swap. No reduce las partes de LP, protocolo o fondo, pero sí hace que operar contra el pool sea más caro que contra un pool del mismo nivel con la comisión desactivada.
  • La recopilación no cambia. Usa CollectCreatorFee o CollectCreatorFeePermissionless. Se aplica la parte del protocolo del lanzamiento 2026-09-19, y no puedes excluirte de ella en la creación.

Notas de migración

  • Creadores de pools. Cambia de Initialize a InitializeV2 solo si quieres activar la comisión del creador. Pasa Some(side) y elimina la cuenta rent. Initialize sigue funcionando.
  • Usuarios del SDK. raydium.cpmm.createPool en @raydium-io/raydium-sdk-v2@0.2.64-alpha construye Initialize. Hasta que una versión incluya un constructor de InitializeV2, codifícala a partir del IDL actualizado.
  • Indexadores y routers. Espera más pools con enable_creator_fee = true, creados por wallets comunes en lugar de LaunchLab. Cotiza a partir de los propios enable_creator_fee y creator_fee_on de cada pool, nunca a partir de la ruta de creación o del nivel por sí solo. Decodifica la nueva instrucción si rastreas la creación de pools a partir de instrucciones. El rastreo a partir de cuentas PoolState no necesita cambios.
  • Interfaces. Muestra si un pool cobra una comisión del creador y a qué tasa, ya que dos pools del mismo nivel ahora pueden diferir.
  • LaunchLab y otros flujos con permisos. Sin cambios. InitializeWithPermission sigue siendo la ruta cuando el pagador y el creador registrado deben ser distintos.

Qué no cambió

  • Todos los diseños de cuenta, incluidos PoolState y AmmConfig.
  • Initialize e InitializeWithPermission: discriminadores, cuentas, argumentos y valores almacenados.
  • Permission, CreatePermissionPda y ClosePermissionPda.
  • La matemática de swap, depósito y retiro, el cobro de la comisión del creador y la parte del protocolo de la comisión del creador.
  • Códigos de error. 6000–6015 no cambian; no se añadió nada.
  • ID del programa.

Páginas actualizadas

  • products/cpmm/instructions: banner de la actualización; filas del resumen y de la matriz de cambio de estado; nueva sección InitializeV2 con argumentos, codificación y lista de cuentas; la postcondición de Initialize ahora apunta a InitializeV2.
  • products/cpmm/fees: la sección “Comisión del creador” enumera las tres rutas de creación y señala que habilitar la comisión no establece su tasa.
  • products/cpmm/accounts: notas sobre poolState y el ID del pool; notas de los campos creator_fee_on / enable_creator_fee; nota sobre Permission; fila del ciclo de vida de cuentas.
  • products/cpmm/overview: el aviso “Novedades” y la viñeta “Comisiones predecibles”.
  • products/cpmm/code-demos: nota de que createPool construye Initialize y de cómo llegar a InitializeV2.
  • protocol-overview/shared-infrastructure: las comisiones de creador ya no se limitan a pools graduados de LaunchLab.
  • reference/token-2022-support: rutas de creación de pools de CPMM.
Verificado contra: rama feat/initialize-v2 de raydium-cp-swap (40cbd81): programs/cp-swap/src/lib.rs, instructions/initialize_v2.rs, instructions/initialize.rs, instructions/initialize_with_permission.rs, instructions/mod.rs, states/pool.rs y tests/initialize_v2.test.ts.