> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-08-17 — CLMM: تجميد NFT للمراكز المقيدة بالمُصدِّر

> يقوم CLMM بتجميد حساب NFT للمركز الجديد بشكل مشروط فقط عندما يجد مسار V2 مفتوح عملة أساسية تطابق سلطة التجميد قائمة المُصدِّرين المقيدين.

<Info>
  **هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.**

  [عرض النسخة الإنجليزية →](/reference/changelog/2026-08-17-clmm-restricted-position-nft-freeze)
</Info>

يضيف هذا الإصدار مسار عدم قابلية التحويل المشروط لمجموعات المُصدِّرين المقيدين بـ KYC المختارة. لا يقوم بتجميد كل مركز جديد، أو تجميد أصول المجموعة، أو منع مالكي المراكز من إدارة السيولة. يصبح PDA لمجموعة CLMM سلطة التجميد لكل عملة NFT للمركز الجديد، لكن حساب رمز NFT يبقى غير مجمد بشكل افتراضي. يقوم البرنامج بتجميده فقط عندما يستخدم المركز `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 نقل NFT وتغييرات مالك حساب الرمز برسالة الخطأ الأصلية `AccountFrozen`. تستمر عمليات زيادة/تقليل السيولة وجمع الرسوم/المكافآت في العمل عندما يوقع مالك NFT.
* **الإغلاق يبقى متاحًا.** تكتشف `ClosePosition` حساب NFT المجمد، وتستخدم PDA المجموعة لإذابته، ثم تحرق NFT وتغلق المركز بشكل ذري.
* **إغلاق مجمد يتطلب حساب متبقي واحد.** يجب على العميل إضافة `personal_position.pool_id` كأول حساب متبقي. عدم وجوده يُرجع `AccountLack` من CLMM؛ تمرير المجموعة الخاطئة يُرجع `NotApproved`.
* **المراكز الموجودة لم تتأثر.** لا يقوم التحديث بتغيير سلطات عملة NFT بأثر رجعي أو تجميد حسابات الرموز الموجودة.
* **لا توجد تغييرات في تخطيط حالة CLMM أو قائمة حسابات IDL المُعلنة.** تبقى `PoolState` و `PersonalPositionState` وحجج التعليمات متوافقة على مستوى البايت. يتم نقل متطلبات مسار الإغلاق عبر `remaining_accounts`.

## منطق التشغيل

يقيّم البرنامج عملات الخزان الاثنتين في وقت الفتح:

```rust theme={null}
must_freeze = restricted_ids.contains(vault_0_mint.freeze_authority)
           || restricted_ids.contains(vault_1_mint.freeze_authority)
```

سلطة التجميد المفقودة لا تطابق. جانب واحد متطابق كافٍ. القائمة هي `frozen_position_nft_authorities::IDS` وتحمل إدخالاً واحداً. مفاتيح mainnet-beta و devnet الحالية موجودة في [`reference/program-addresses`](/ar/reference/program-addresses#clmm-restricted-issuer-freeze-authorities).

يتم تشغيل الفحص في معالج الموضع المفتوح المشترك فقط عندما يتم توفير حسابات عملة الخزان. هذا يعني:

| مسار الفتح                   | برنامج NFT للمركز | سلوك تجميد المُصدِّر المقيد                                                                    |
| ---------------------------- | ----------------- | ---------------------------------------------------------------------------------------------- |
| `OpenPosition` V1            | SPL Token         | لا يقوم بالتجميد. لا يمكن لـ V1 أن يخدم أصول المُصدِّر Token-2022 المستهدفة بالقائمة المُرسلة. |
| `OpenPositionV2`             | SPL Token         | يفحص كلا عملات الخزان ويقوم بالتجميد عند التطابق.                                              |
| `OpenPositionWithToken22Nft` | Token-2022        | يفحص كلا عملات الخزان ويقوم بالتجميد عند التطابق.                                              |

## تغييرات سلطة NFT للمركز

قبل هذا التحديث، لم تحتفظ عملة NFT للمركز الكلاسيكي SPL المُنشأة حديثًا بسلطة تجميد. بعد التحديث، تسمي كل عملة NFT للمركز الجديد مجموعتها كسلطة تجميد، بما في ذلك المراكز في المجموعات العادية. هذا الإعداد للسلطة وحده لا يقوم بتجميد حساب رمز NFT؛ تبقى المراكز العادية وغير المتطابقة غير مجمدة.

يؤدي استخدام PDA المجموعة بدلاً من مفتاح إداري عام أو مفتاح المُصدِّر إلى تضييق السلطة على مجموعة واحدة. لا يمكن لطرف خارجي التوقيع كـ PDA، ولا يكشف CLMM عن تعليمة ذات غرض عام لتجميد أو إذابة حسابات مراكز عشوائية. يستخدم الكود الجديد السلطة في مكانين فقط:

1. التجميد فورًا بعد الصك عندما يطابق فحص المُصدِّر الأساسي.
2. الإذابة أثناء `ClosePosition` فورًا قبل الحرق.

## هجرة `ClosePosition`

الحسابات الستة المُعلنة لا تتغير. بالنسبة لـ NFT مجمد، أضف المجموعة كأول حساب متبقي:

```text theme={null}
declared: nft_owner, position_nft_mint, position_nft_account,
          personal_position, system_program, token_program
remaining[0]: personal_position.pool_id   // read-only, non-signer
```

يتحقق المعالج من المفتاح قبل تحميل `PoolState`، ويشتق بذور توقيع المجموعة، ويقوم بـ:

```text theme={null}
thaw NFT account → burn NFT → close NFT token account / position state
```

تعمل جميع الخطوات في تعليمة Solana واحدة وبالتالي تُلتزم أو تُرجع معًا. تمرير المجموعة في كل إغلاق آمن: يتجاهل المعالج الحسابات المتبقية عندما لا يكون حساب NFT مجمدًا.

<Warning>
  **فاصل عميل مشروط.** يمكن لعميل أقدم فتح مركز بنجاح بعد الترقية لأن تخطيطات حساب V2 المفتوح لم تتغير. إذا تم تجميد هذا المركز، قد يفشل نفس العميل لاحقًا في إغلاقه لأن منشئ `ClosePosition` الخاص به يحذف حساب المجموعة المتبقي. حدّث منشئ الإغلاق قبل السماح للمستخدمين بفتح مراكز في المجموعات المتأثرة.
</Warning>

## مصفوفة التوافقية

| السيناريو                         | نقل NFT    | إدارة السيولة | منشئ الإغلاق القديم   | منشئ الإغلاق المُحدّث |
| --------------------------------- | ---------- | ------------- | --------------------- | --------------------- |
| مركز موجود                        | بدون تغيير | نعم           | نعم                   | نعم                   |
| مركز جديد، مجموعة عادية           | نعم        | نعم           | نعم                   | نعم                   |
| مركز V2 جديد، مجموعة مُصدِّر مقيد | لا         | نعم           | يفشل مع `AccountLack` | نعم؛ إذابة وحرق ذري   |

لا يتم إدخال متغيرات خطأ مخصصة جديدة من CLMM أو تحولات رقمية. يرفض رسالة الخطأ الأصلية `AccountFrozen` من SPL Token محاولات النقل أو تغيير المالك.

## الصفحات المُحدّثة

* `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` — استثناءات القابلية للتحويل.

**تم التحقق منه 2026-08-13 مقابل**:

* فرع CLMM قبل الإصدار `feat/position-nft-freeze` في `ecb157760776f83f97507fa78c6e32cfb30d92a9`.
* الالتزامات `2e95310` (تجميد NFT للمُصدِّر المقيد) و `ecb1577` (سلطة التجميد ذات النطاق المجموعة)، مقارنة مع `master` في `51fdba2`.
* مصادر البرنامج تحت `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 قبل الإغلاق.

<Warning>
  يغطي هذا التحقق فرع المصدر قبل الإصدار، وليس نشر mainnet-beta أو إصدار SDK منشور. تأكد من البرنامج المنشور وقائمة السلطة المقيدة الإنتاجية ومنشئ SDK للإغلاق قبل تفعيل التدفق.
</Warning>
