Skip to main content
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 CLMM programada para 2026-10-22. Se verificó contra la rama feat/create-customizable-pool-v2 de raydium-clmm (head 18f5db1) antes del despliegue. Confirma el programa desplegado antes de confiar en el nuevo nombre de instrucción o lista de cuentas.
El lanzamiento del 2026-07-30 agregó CreatePermissionedPool, que permite a un llamador crear más de un pool para el mismo (amm_config, token_mint_0, token_mint_1) incorporando un seed_index en el PDA del pool. Estaba controlado: el pagador tenía que poseer un PDA Permission emitido por un administrador. Este lanzamiento elimina esa compuerta. La instrucción se renombra a CreateCustomizablePoolV2, cualquiera puede llamarla, y toda la maquinaria de permisos se elimina del programa. Las matemáticas del pool, swap, liquidez, órdenes limitadas, comisiones y recompensas no se modifican.

TL;DR para integradores

  • CreatePermissionedPool → CreateCustomizablePoolV2. Los mismos argumentos (CreateCustomizableParams, seed_index: u16) y la misma derivación de dirección del pool. El discriminador de Anchor cambia con el nombre, por lo que una transacción construida contra la instrucción anterior falla después de la actualización. Reconstruyela contra el nuevo IDL.
  • La cuenta permission se ha eliminado de la lista de cuentas. Estaba en la posición 3, por lo que cada cuenta desde amm_config en adelante se mueve una posición hacia arriba. Consulta la nueva lista de cuentas.
  • La creación de múltiples pools ahora es sin permisos. Cualquier pagador puede crear pools adicionales para un par y nivel de comisión con un seed_index distinto de cero. Trata un par como potencialmente teniendo muchos pools CLMM por nivel de comisión, creados por cualquiera.
  • Permission, CreatePermissionPda y ClosePermissionPda se eliminan. El programa e IDL ya no conocen el tipo Permission.
  • Actualiza tu IDL. Elimina dos instrucciones y un tipo de cuenta, para 37 instrucciones y 53 errores.
  • Ningún diseño de cuenta cambió y ningún código de error se agregó. PoolState.seed_index mantiene su desplazamiento; solo su significado se amplía de “pool con permisos” a “cualquier pool V2”.

Qué cambió en el programa

CreatePermissionedPool renombrado a CreateCustomizablePoolV2

El manejador es el mismo código bajo un nuevo nombre. Todavía:
  • requiere seed_index > 0;
  • deriva el pool en ["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()];
  • toma los mismos CreateCustomizableParams que CreateCustomizablePool, por lo que la comisión de un lado (collect_fee_on) y la opción de comisión dinámica funcionan de la misma manera;
  • aplica las mismas comprobaciones de soporte de Token-2022 que CreatePool;
  • registra pool_creator como pool_state.owner y escribe seed_index en PoolState;
  • emite PoolCreatedEvent.
La comprobación del PDA Permission es el único comportamiento eliminado.

Lista de cuentas de CreateCustomizablePoolV2

remaining_accounts no cambian: los PDAs del registro de mint de soporte cuando un mint de Token-2022 los necesita, y DynamicFeeConfig al final cuando enable_dynamic_fee = true.
pool_creator no se autentica. Cualquier pagador puede escribir cualquier dirección en pool_state.owner. Esa dirección obtiene el derecho de llamar a InitializeReward en el pool, pero no puede usarse como prueba de quién lo creó. No clasifiques, etiquetes ni confíes en un pool V2 por su campo owner.

Eliminado: Permission, CreatePermissionPda, ClosePermissionPda

  • El tipo de cuenta Permission (["permission", authority], 280 bytes) se elimina del programa.
  • CreatePermissionPda y ClosePermissionPda se eliminan, junto con la clave dedicada permission_pda_admin que podía firmarlas.
  • Los PDAs de Permission creados antes de la actualización permanecen en la cadena. El programa ya no los lee y ya no tiene una instrucción que los cierre.

Códigos de error

Sin cambios. 6000–6052 mantienen sus números. NotApproved (6000) ya no tiene un caso “el firmante no es ni admin ni permission_pda_admin”, porque esas instrucciones se han eliminado.

Notas de migración

  • Creadores de pools. Cambia de CreatePermissionedPool a CreateCustomizablePoolV2, elimina la cuenta permission y desplaza las cuentas restantes una posición hacia arriba. Ya no necesitas una concesión de administrador.
  • Indexadores y enrutadores. Indexa pools CLMM desde PoolCreatedEvent o escaneando cuentas PoolState, no derivando el PDA de cuatro semillas. Almacena seed_index para cualquier pool donde sea distinto de cero, porque lo necesitas para re-derivar la dirección. Espera más pools no canónicos ahora que cualquiera puede crearlos, y no asumas que el pool canónico es el más profundo.
  • Interfaces de usuario. Un par y nivel de comisión pueden tener muchos pools con diferentes precios iniciales. Muestra la liquidez y la dirección del pool, y no presentes un pool como oficial por su owner.
  • Consumidores de IDL. Elimina cualquier código de decodificador o cliente para Permission, CreatePermissionPda y ClosePermissionPda.

Qué no cambió

  • Cada diseño de cuenta, incluyendo PoolState (el campo seed_index y su desplazamiento son los mismos).
  • CreatePool y CreateCustomizablePool. Todavía crean el único pool canónico por par y nivel, con seed_index = [0, 0].
  • Pools creados a través de CreatePermissionedPool antes de la actualización. Sus direcciones, estado y seed_index no cambian.
  • Códigos de error, comportamiento de swap, liquidez, comisión, comisión dinámica, recompensa y órdenes limitadas.
  • ID del programa.

Páginas actualizadas

  • products/clmm/instructions: banner de actualización; filas de inventario y control administrativo; sección CreateCustomizablePoolV2 con la nueva lista de cuentas.
  • products/clmm/accounts: Permission eliminado del inventario y documentado como retirado; descripción de seed_index; ayudante de PDA renombrado a deriveCustomizablePoolV2; filas de ciclo de vida.
  • products/clmm/overview: nota “Novedades”.
  • security/admin-and-multisig: rol permission_pda_admin eliminado de la tabla CLMM.
  • reference/error-codes: descripción de NotApproved.
  • reference/token-2022-support: rutas de creación de pools CLMM.
  • sdk-api/anchor-idl: recuento de instrucciones CLMM.
  • protocol-overview/versions-and-migration: viñeta del historial de actualizaciones CLMM.
Verificado contra: rama raydium-clmm feat/create-customizable-pool-v2 (18f5db1): instructions/create_customizable_pool_v2.rs, instructions/mod.rs, instructions/admin/mod.rs, states/mod.rs, states/pool.rs, lib.rs, y los eliminados admin/create_permission_pda.rs, admin/close_permission_pda.rs, states/permission.rs.