このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
OpenPositionV2 または OpenPositionWithToken22Nft を使用し、かつ基礎となるボルトミントのいずれかがハードコードされた制限発行者リストからのフリーズ権限を持つ場合にのみ、それをフリーズします。
インテグレーター向け TL;DR
- 新しいポジション NFT ミントはフリーズ権限を持ちますが、デフォルトではフリーズされません。
OpenPosition、OpenPositionV2、OpenPositionWithToken22Nftはポジションのpool_stateをミントフリーズ権限として設定します。ミント権限は単一の NFT がミントされた後も削除されます。 - フリーズには V2 パスと発行者マッチが必要です。
OpenPositionV2とOpenPositionWithToken22Nftはvault_0_mint.freeze_authorityとvault_1_mint.freeze_authorityを検査します。新しい NFT アカウントは、少なくとも 1 つがプログラムリストと一致する場合にのみフリーズされます。マッチがない場合、それはフリーズされたままで転送可能です。 - フリーズは所有者にバインドされることを意味します。 SPL Token は、ネイティブ
AccountFrozenエラーで NFT 転送とトークンアカウント所有者の変更を拒否します。NFT 所有者が署名する場合、リクイディティの増加・減少とフィー・報酬の収集は引き続き機能します。 - クローズは利用可能なままです。
ClosePositionはフリーズされた NFT アカウントを検出し、プール PDA を使用してそれをシャーすると、NFT をバーンしてポジションをアトミックに閉じます。 - フリーズされたクローズには 1 つの残りアカウントが必要です。 クライアントは
personal_position.pool_idを最初の残りアカウントとして追加する必要があります。それがない場合は CLMMAccountLackを返します。間違ったプールを渡すとNotApprovedを返します。 - 既存のポジションは影響を受けません。 このアップデートは、NFT ミント権限を遡及的に変更したり、既存のトークンアカウントをフリーズしたりしません。
- CLMM 状態レイアウトまたは宣言された IDL アカウントリストの変更はありません。
PoolState、PersonalPositionState、命令引数はバイト互換のままです。クローズパス要件はremaining_accountsを通じて実行されます。
トリガーロジック
プログラムはオープン時に 2 つのボルトミントを評価します:reference/program-addresses にあります。
チェックは、ボルトミントアカウントが提供される場合にのみ、共有オープンポジションハンドラーで実行されます。これは以下を意味します:
ポジション NFT 権限の変更
このアップデート前は、新しく作成されたクラシック SPL ポジション NFT ミントはフリーズ権限を保持していませんでした。アップデート後、すべての新しいポジション NFT ミントは、通常のプール内のポジションを含め、そのプールをフリーズ権限として指定します。この権限設定だけでは NFT トークンアカウントをフリーズしません。通常のポジションとマッチしないポジションはフリーズされたままです。 グローバル管理者または発行者キーの代わりにプール PDA を使用すると、権限を 1 つのプールに限定します。外部パーティは PDA として署名できず、CLMM は任意のポジションアカウントをフリーズまたはシャーするための汎用命令を公開していません。新しいコードは権限を 2 つの場所でのみ使用します:- 基礎となる発行者チェックがマッチする場合、ミント直後にフリーズします。
- バーン直前の
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 シャー前クローズフローをカバー。

