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 →
OpenPositionV2 u OpenPositionWithToken22Nft y al menos uno de los mints de bóveda subyacentes lleva una autoridad de congelación de la lista de emisores restringidos codificada.
Resumen ejecutivo para integradores
- Los nuevos mints de NFT de posición tienen una autoridad de congelación, pero no están congelados por defecto.
OpenPosition,OpenPositionV2yOpenPositionWithToken22Nftestablecen elpool_statede la posición como autoridad de congelación del mint. La autoridad del mint se sigue eliminando después de que se acuña el único NFT. - La congelación requiere una ruta V2 más una coincidencia de emisor.
OpenPositionV2yOpenPositionWithToken22Nftinspeccionanvault_0_mint.freeze_authorityyvault_1_mint.freeze_authority. La nueva cuenta de NFT se congela solo si al menos una coincide con la lista del programa. Sin coincidencia, permanece descongelada y transferible. - Congelado significa vinculado al propietario. SPL Token rechaza la transferencia de NFT y cambios de propietario de cuenta de token con su error nativo
AccountFrozen. El aumento/disminución de liquidez y la recopilación de comisiones/recompensas continúan funcionando cuando el propietario del NFT firma. - Cerrar sigue disponible.
ClosePositiondetecta una cuenta de NFT congelada, usa el PDA del pool para descongelarla, luego quema el NFT y cierra la posición atómicamente. - El cierre congelado requiere una cuenta restante. El cliente debe añadir
personal_position.pool_idcomo la primera cuenta restante. Si falta, devuelveAccountLackde CLMM; pasar el pool incorrecto devuelveNotApproved. - Las posiciones existentes no se ven afectadas. La actualización no cambia retroactivamente las autoridades de mint de NFT ni congela cuentas de token existentes.
- Sin cambio de diseño de estado CLMM ni lista de cuentas IDL declarada.
PoolState,PersonalPositionStatey argumentos de instrucción permanecen compatibles a nivel de bytes. El requisito de ruta de cierre se transmite a través deremaining_accounts.
Lógica de activación
El programa evalúa los dos mints de bóveda en el momento de apertura:reference/program-addresses.
La verificación se ejecuta en el controlador de posición abierta compartida solo cuando se suministran cuentas de mint de bóveda. Esto significa:
Cambios de autoridad de NFT de posición
Antes de esta actualización, un mint de NFT de posición SPL clásico recién creado no retenía una autoridad de congelación. Después de la actualización, cada nuevo mint de NFT de posición nombra su pool como autoridad de congelación, incluidas las posiciones en pools ordinarios. Esta configuración de autoridad por sí sola no congela la cuenta de token del NFT; las posiciones ordinarias y sin coincidencia permanecen descongeladas. Usar el PDA del pool en lugar de una clave de administrador global o emisor limita la autoridad a un pool. Una parte externa no puede firmar como el PDA, y CLMM no expone ninguna instrucción de propósito general para congelar o descongelar cuentas de posición arbitrarias. El nuevo código usa la autoridad en solo dos lugares:- Congelar inmediatamente después de acuñar cuando la verificación de emisor subyacente coincide.
- Descongelar durante
ClosePositioninmediatamente antes de quemar.
Migración de ClosePosition
Las seis cuentas declaradas no cambian. Para un NFT congelado, añade el pool como la primera cuenta restante:
PoolState, deriva las semillas del firmante del pool y realiza:
Matriz de compatibilidad
No se introducen nuevas variantes de error personalizado de CLMM ni cambios numéricos. El error nativo
AccountFrozen de SPL Token rechaza intentos de transferencia o cambio de propietario.
Páginas actualizadas
products/clmm/overview— resumen de versión y advertencia de transferibilidad restringida.products/clmm/ticks-and-positions— modelo de autoridad, activación, capacidades del propietario y advertencia de migración de cierre.products/clmm/accounts— comportamiento del mint de NFT de posición y ciclo de vida.products/clmm/instructions— postcondiciones abiertas y ruta de cuenta restanteClosePositioncongelada.products/clmm/code-demos— ejemplo de cierre directo de Anchor y advertencia de SDK fijado.user-flows/add-remove-liquidity— comportamiento de posición restringida visible para el usuario.user-flows/burn-and-earn— las posiciones congeladas no pueden transferirse a depósito de bloqueo.security/oracle-and-token-risks/security/attack-vectors— límites de riesgo de emisor y transferencia.reference/token-2022-support— distinción entre lista de permitidos de pool y custodia de posición.reference/error-codes— causas expandidas deAccountLackyNotApproved.reference/program-addresses— claves de coincidencia de autoridad de emisor restringido.reference/fee-comparison/reference/glossary— excepciones de transferibilidad.
- Rama de pre-lanzamiento de CLMM
feat/position-nft-freezeenecb157760776f83f97507fa78c6e32cfb30d92a9. - Commits
2e95310(congelación de NFT de emisor restringido) yecb1577(autoridad de congelación con alcance de pool), comparados conmasteren51fdba2. - Fuentes del programa bajo
instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rsyutil/token.rs. position-nft-freeze.test.ts, cubriendo transferibilidad ordinaria, rechazo de transferencia/cambio de propietario congelado y flujos de descongelación V2 más Token-2022.

