Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
OpenPositionV2 ou OpenPositionWithToken22Nft e pelo menos um mint de vault subjacente carrega uma autoridade de congelamento da lista de issuer restrito codificada.
TL;DR para integradores
- Novos mints de NFT de posição têm uma autoridade de congelamento, mas não são congelados por padrão.
OpenPosition,OpenPositionV2eOpenPositionWithToken22Nftdefinem opool_stateda posição como autoridade de congelamento de mint. A autoridade de mint ainda é removida após o único NFT ser cunhado. - Congelamento requer um caminho V2 mais uma correspondência de issuer.
OpenPositionV2eOpenPositionWithToken22Nftinspecionamvault_0_mint.freeze_authorityevault_1_mint.freeze_authority. A nova conta de NFT é congelada apenas se pelo menos uma corresponder à lista do programa. Sem correspondência, permanece descongelada e transferível. - Congelado significa vinculado ao proprietário. SPL Token rejeita transferência de NFT e mudanças de proprietário de conta de token com seu erro nativo
AccountFrozen. Aumentar/diminuir liquidez e coleta de taxa/recompensa continuam funcionando quando o proprietário do NFT assina. - Fechar permanece disponível.
ClosePositiondetecta uma conta de NFT congelada, usa o PDA do pool para descongelá-la, depois queima o NFT e fecha a posição atomicamente. - Fechamento congelado requer uma conta restante. O cliente deve anexar
personal_position.pool_idcomo a primeira conta restante. Omiti-la retorna CLMMAccountLack; passar o pool errado retornaNotApproved. - Posições existentes não são afetadas. A atualização não altera retroativamente autoridades de mint de NFT ou congela contas de token existentes.
- Nenhuma mudança de layout de estado CLMM ou lista de contas IDL declarada.
PoolState,PersonalPositionStatee argumentos de instrução permanecem compatíveis em bytes. O requisito de caminho de fechamento é transmitido através deremaining_accounts.
Lógica de acionamento
O programa avalia os dois mints de vault no momento da abertura:reference/program-addresses.
A verificação é executada no manipulador de posição aberta compartilhado apenas quando contas de mint de vault são fornecidas. Isso significa:
Mudanças de autoridade de NFT de posição
Antes desta atualização, um mint de NFT de posição SPL clássico recém-criado não retinha uma autoridade de congelamento. Após a atualização, cada novo mint de NFT de posição nomeia seu pool como autoridade de congelamento, incluindo posições em pools ordinários. Esta configuração de autoridade sozinha não congela a conta de token do NFT; posições ordinárias e sem correspondência permanecem descongeladas. Usar o PDA do pool em vez de uma chave de admin global ou issuer restringe a autoridade a um pool. Uma parte externa não pode assinar como o PDA, e CLMM não expõe nenhuma instrução de propósito geral para congelar ou descongelar contas de posição arbitrárias. O novo código usa a autoridade em apenas dois lugares:- Congelar imediatamente após cunhagem quando a verificação de issuer subjacente corresponde.
- Descongelar durante
ClosePositionimediatamente antes de queimar.
Migração de ClosePosition
As seis contas declaradas não mudam. Para um NFT congelado, adicione o pool como a primeira conta restante:
PoolState, deriva as sementes do assinante do pool e executa:
Matriz de compatibilidade
Nenhuma variante de erro personalizado CLMM nova ou mudança numérica é introduzida. O erro nativo
AccountFrozen do SPL Token rejeita tentativas de transferência ou mudança de proprietário.
Páginas atualizadas
products/clmm/overview— resumo de versão e ressalva de transferibilidade restrita.products/clmm/ticks-and-positions— modelo de autoridade, acionador, capacidades do proprietário e aviso de migração de fechamento.products/clmm/accounts— comportamento de mint e ciclo de vida de NFT de posição.products/clmm/instructions— pós-condições abertas e caminho de conta restanteClosePositioncongelado.products/clmm/code-demos— exemplo de fechamento direto de Anchor e aviso de SDK fixado.user-flows/add-remove-liquidity— comportamento de posição restrita voltado para o usuário.user-flows/burn-and-earn— posições congeladas não podem transferir para escrow de bloqueio.security/oracle-and-token-risks/security/attack-vectors— limites de risco de issuer e transferência.reference/token-2022-support— distinção entre lista de permissões de pool e custódia de posição.reference/error-codes— causas expandidas deAccountLackeNotApproved.reference/program-addresses— chaves de correspondência de autoridade de issuer restrito.reference/fee-comparison/reference/glossary— exceções de transferibilidade.
- Ramo de pré-lançamento CLMM
feat/position-nft-freezeemecb157760776f83f97507fa78c6e32cfb30d92a9. - Commits
2e95310(congelamento de NFT de issuer restrito) eecb1577(autoridade de congelamento com escopo de pool), comparados commasterem51fdba2. - Fontes do programa em
instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rseutil/token.rs. position-nft-freeze.test.ts, cobrindo transferibilidade ordinária, rejeição de transferência/mudança de proprietário congelada e fluxos de descongelamento V2 mais Token-2022.

