Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
OpenPositionV2 ou OpenPositionWithToken22Nft et qu’au moins un des mints de coffre sous-jacents porte une autorité de gel de la liste des émetteurs restreints codée en dur.
TL;DR pour les intégrateurs
- Les nouveaux mints NFT de position ont une autorité de gel, mais ne sont pas gelés par défaut.
OpenPosition,OpenPositionV2etOpenPositionWithToken22Nftdéfinissent lepool_statede la position comme autorité de gel du mint. L’autorité de mint est toujours supprimée après la création du seul NFT. - Le gel nécessite un chemin V2 plus une correspondance d’émetteur.
OpenPositionV2etOpenPositionWithToken22Nftinspectentvault_0_mint.freeze_authorityetvault_1_mint.freeze_authority. Le nouveau compte NFT est gelé uniquement si au moins l’un d’eux correspond à la liste du programme. Sans correspondance, il reste dégelé et transférable. - Gelé signifie lié au propriétaire. SPL Token rejette le transfert de NFT et les changements de propriétaire du compte de token avec son erreur native
AccountFrozen. L’augmentation/diminution de liquidité et la collecte de frais/récompenses continuent de fonctionner lorsque le propriétaire du NFT signe. - La fermeture reste disponible.
ClosePositiondétecte un compte NFT gelé, utilise le PDA du pool pour le dégeler, puis brûle le NFT et ferme la position de manière atomique. - La fermeture gelée nécessite un compte restant. Le client doit ajouter
personal_position.pool_idcomme premier compte restant. Son absence retourneAccountLackde CLMM ; passer le mauvais pool retourneNotApproved. - Les positions existantes ne sont pas affectées. La mise à jour ne change pas rétroactivement les autorités de mint NFT ni ne gèle les comptes de token existants.
- Aucun changement de disposition d’état CLMM ou de liste de comptes IDL déclarée.
PoolState,PersonalPositionStateet les arguments d’instruction restent compatibles au niveau des octets. L’exigence du chemin de fermeture est portée viaremaining_accounts.
Logique de déclenchement
Le programme évalue les deux mints de coffre au moment de l’ouverture :reference/program-addresses.
La vérification s’exécute dans le gestionnaire de position d’ouverture partagé uniquement lorsque les comptes de mint de coffre sont fournis. Cela signifie :
Changements d’autorité du NFT de position
Avant cette mise à jour, un mint NFT de position SPL classique nouvellement créé ne conservait pas d’autorité de gel. Après la mise à jour, chaque nouveau mint NFT de position nomme son pool comme autorité de gel, y compris les positions dans les pools ordinaires. Ce paramètre d’autorité seul ne gèle pas le compte de token NFT ; les positions ordinaires et non correspondantes restent dégelées. L’utilisation du PDA du pool au lieu d’une clé d’administrateur global ou d’émetteur limite l’autorité à un seul pool. Une partie externe ne peut pas signer en tant que PDA, et CLMM n’expose aucune instruction à usage général pour geler ou dégeler des comptes de position arbitraires. Le nouveau code utilise l’autorité en deux endroits seulement :- Geler immédiatement après la création du mint lorsque la vérification de l’émetteur sous-jacent correspond.
- Dégeler pendant
ClosePositionimmédiatement avant la destruction.
Migration de ClosePosition
Les six comptes déclarés ne changent pas. Pour un NFT gelé, ajoutez le pool comme premier compte restant :
PoolState, dérive les graines du signataire du pool, et effectue :
Matrice de compatibilité
Aucune nouvelle variante d’erreur personnalisée CLMM ou décalage numérique n’est introduit. L’erreur native
AccountFrozen de SPL Token rejette les tentatives de transfert ou de changement de propriétaire.
Pages mises à jour
products/clmm/overview— résumé de la version et mise en garde sur la transférabilité restreinte.products/clmm/ticks-and-positions— modèle d’autorité, déclencheur, capacités du propriétaire et avertissement de migration de fermeture.products/clmm/accounts— comportement du mint NFT de position et du cycle de vie.products/clmm/instructions— postconditions d’ouverture et chemin de compte restantClosePositiongelé.products/clmm/code-demos— exemple de fermeture Anchor direct et avertissement SDK épinglé.user-flows/add-remove-liquidity— comportement de position restreinte côté utilisateur.user-flows/burn-and-earn— les positions gelées ne peuvent pas être transférées dans l’escrow de verrouillage.security/oracle-and-token-risks/security/attack-vectors— limites d’émetteur et de risque de transfert.reference/token-2022-support— distinction entre la liste blanche du pool et la garde de position.reference/error-codes— causes élargies deAccountLacketNotApproved.reference/program-addresses— clés de correspondance d’autorité à émetteur restreint.reference/fee-comparison/reference/glossary— exceptions de transférabilité.
- Branche de pré-version CLMM
feat/position-nft-freezeàecb157760776f83f97507fa78c6e32cfb30d92a9. - Commits
2e95310(gel NFT à émetteur restreint) etecb1577(autorité de gel à portée de pool), comparés avecmasterà51fdba2. - Sources du programme sous
instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rsetutil/token.rs. position-nft-freeze.test.ts, couvrant la transférabilité ordinaire, le rejet de transfert/changement de propriétaire gelé, et les flux de dégel V2 plus Token-2022 avant fermeture.

