이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
OpenPositionV2 또는 OpenPositionWithToken22Nft를 사용하고 기본 볼트 민트 중 하나가 하드코딩된 제한 발행자 목록의 동결 권한을 가질 때만 동결합니다.
통합자를 위한 요약
- 새 포지션 NFT 민트는 동결 권한을 가지지만 기본적으로 동결되지 않습니다.
OpenPosition,OpenPositionV2,OpenPositionWithToken22Nft는 포지션의pool_state를 민트 동결 권한으로 설정합니다. 민트 권한은 단일 NFT가 민트된 후에도 제거됩니다. - 동결은 V2 경로와 발행자 일치가 필요합니다.
OpenPositionV2와OpenPositionWithToken22Nft는vault_0_mint.freeze_authority와vault_1_mint.freeze_authority를 검사합니다. 새 NFT 계정은 최소 하나가 프로그램 목록과 일치할 때만 동결됩니다. 일치하지 않으면 동결되지 않은 상태로 유지되어 양도 가능합니다. - 동결은 소유자에게 바인딩됨을 의미합니다. SPL Token은 네이티브
AccountFrozen오류로 NFT 전송 및 토큰 계정 소유자 변경을 거부합니다. NFT 소유자가 서명할 때 유동성 증가/감소 및 수수료/보상 수집은 계속 작동합니다. - 클로즈는 계속 사용 가능합니다.
ClosePosition은 동결된 NFT 계정을 감지하고, 풀 PDA를 사용하여 해제한 다음, NFT를 소각하고 포지션을 원자적으로 닫습니다. - 동결된 클로즈는 하나의 남은 계정이 필요합니다. 클라이언트는
personal_position.pool_id를 첫 번째 남은 계정으로 추가해야 합니다. 누락되면 CLMMAccountLack을 반환하고, 잘못된 풀을 전달하면NotApproved를 반환합니다. - 기존 포지션은 영향을 받지 않습니다. 업데이트는 NFT 민트 권한을 소급 적용하거나 기존 토큰 계정을 동결하지 않습니다.
- CLMM 상태 레이아웃 또는 선언된 IDL 계정 목록 변경 없음.
PoolState,PersonalPositionState, 명령 인수는 바이트 호환성을 유지합니다. 클로즈 경로 요구 사항은remaining_accounts를 통해 전달됩니다.
트리거 로직
프로그램은 오픈 시간에 두 개의 볼트 민트를 평가합니다:reference/program-addresses에 있습니다.
검사는 볼트 민트 계정이 제공될 때만 공유 오픈 포지션 핸들러에서 실행됩니다. 이는 다음을 의미합니다:
포지션 NFT 권한 변경
이 업데이트 이전에는 새로 생성된 클래식 SPL 포지션 NFT 민트가 동결 권한을 유지하지 않았습니다. 업데이트 후에는 모든 새 포지션 NFT 민트가 일반 풀의 포지션을 포함하여 풀을 동결 권한으로 지정합니다. 이 권한 설정만으로는 NFT 토큰 계정을 동결하지 않으며, 일반 및 비일치 포지션은 동결되지 않은 상태로 유지됩니다. 풀 PDA를 글로벌 관리자 또는 발행자 키 대신 사용하면 권한을 한 풀로 제한합니다. 외부 당사자는 PDA로 서명할 수 없으며, CLMM은 임의의 포지션 계정을 동결하거나 해제하는 범용 명령을 노출하지 않습니다. 새 코드는 권한을 두 곳에서만 사용합니다:- 기본 발행자 검사가 일치할 때 민트 직후 동결합니다.
- 소각 직전
ClosePosition중에 해제합니다.
ClosePosition 마이그레이션
선언된 6개 계정은 변경되지 않습니다. 동결된 NFT의 경우 풀을 첫 번째 남은 계정으로 추가합니다:
PoolState를 로드하기 전에 키를 확인하고, 풀 서명자 시드를 파생하며, 다음을 수행합니다:
호환성 매트릭스
새로운 CLMM 커스텀 오류 변형 또는 숫자 시프트는 도입되지 않습니다. SPL Token의 네이티브
AccountFrozen 오류는 전송 또는 소유자 변경 시도를 거부합니다.
업데이트된 페이지
products/clmm/overview— 릴리스 요약 및 제한된 양도성 주의 사항.products/clmm/ticks-and-positions— 권한 모델, 트리거, 소유자 기능, 클로즈 마이그레이션 경고.products/clmm/accounts— 포지션 NFT 민트 및 라이프사이클 동작.products/clmm/instructions— 오픈 사후 조건 및 동결된ClosePosition남은 계정 경로.products/clmm/code-demos— 직접 Anchor 클로즈 예제 및 고정 SDK 경고.user-flows/add-remove-liquidity— 사용자 대면 제한 포지션 동작.user-flows/burn-and-earn— 동결된 포지션은 락 에스크로우로 전송할 수 없습니다.security/oracle-and-token-risks/security/attack-vectors— 발행자 및 전송 위험 경계.reference/token-2022-support— 풀 허용 목록과 포지션 보관의 구분.reference/error-codes— 확장된AccountLack및NotApproved원인.reference/program-addresses— 제한 발행자 권한 일치 키.reference/fee-comparison/reference/glossary— 양도성 예외.
- 사전 릴리스 CLMM 브랜치
feat/position-nft-freezeatecb157760776f83f97507fa78c6e32cfb30d92a9. - 커밋
2e95310(제한 발행자 NFT 동결) 및ecb1577(풀 범위 동결 권한),masterat51fdba2와 비교. instructions/{open_position,open_position_v2,open_position_with_token22_nft,close_position}.rs및util/token.rs의 프로그램 소스.position-nft-freeze.test.ts, 일반 양도성, 동결된 전송/소유자 변경 거부, V2 및 Token-2022 해제 전 클로즈 흐름을 다룹니다.

