> ## 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-07-30 — CLMM: مجموعات متعددة مع صلاحيات وحماية حسابات مجمدة لأوامر الحد

> تحديثان لبرنامج CLMM: يسمح CreatePermissionedPool لسلطة مدرجة في القائمة البيضاء بإنشاء مجموعات متعددة لكل زوج عبر seed_index مطوي في PDA المجموعة، و OpenLimitOrder يأخذ حسابات الجانب الناتج لرفض الأوامر ذات حساب الإدخال أو الإخراج المجمد.

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

  [عرض النسخة الإنجليزية →](/reference/changelog/2026-07-30-clmm-permissioned-pools)
</Info>

يوثق هذا الإصدار تغييرين في برنامج CLMM. كلاهما إضافي وعكسي التوافق: المجموعات والمراكز والأوامر المفتوحة الموجودة لن تتأثر، والمسارات الكلاسيكية `CreatePool` / `CreateCustomizablePool` لم تتغير.

## ملخص سريع للمدمجين

* **معرفات المجموعات يمكن أن تكون غير قانونية الآن، خلف بوابة صلاحيات.** تاريخيًا كان هناك عنوان CLMM واحد بالضبط لكل `(amm_config, token_mint_0, token_mint_1)` — بذور PDA ثبتتها. تعليمة جديدة، **`CreatePermissionedPool`**، تطوي `seed_index: u16` من جانب العميل غير صفري في بذور PDA للمجموعة، لذا يمكن لمشغل مدرج في القائمة البيضاء إنشاء **عدة مجموعات لنفس الزوج ورسم الرسوم**، كل واحدة في عنوانها الخاص. لأن عناوين المجموعات التعسفية هي قدرة مميزة، يجب على الدافع أن يحمل **`Permission`** PDA منحها المسؤول. تعليمتان إداريتان، **`CreatePermissionPda`** و **`ClosePermissionPda`**، تدير تلك المنح.
* **`OpenLimitOrder` يتحقق الآن من الجانب الناتج.** التعليمة تأخذ ثلاثة حسابات إضافية — `output_token_account`, `output_vault`, `output_vault_mint` — وترفض الأمر مع `NotApproved` إذا كان حساب الإدخال أو الإخراج للمالك **مجمدًا**. هذا يضمن أن الملء النهائي يمكن تسليمه، وهو مهم لـ Token-2022 mints الافتراضية المجمدة (الرموز المرخصة). يجب على العملاء المبنيين مقابل قائمة الحسابات أحادية الجانب القديمة إضافة الحسابات الثلاثة الناتجة.

## ما تغير في البرنامج

### تعليمة جديدة: `CreatePermissionedPool`

نفس الشكل والمعاملات مثل `CreateCustomizablePool` (تأخذ نفس `CreateCustomizableParams`، لذا الرسوم أحادية الجانب والاختيار الديناميكي للرسوم متاحان)، بالإضافة إلى:

* معامل `seed_index: u16`، والذي **يجب أن يكون غير صفري**. يتم إلحاقه (little-endian) ببذور PDA للمجموعة:
  `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`.
* حساب `permission`: PDA `["permission", payer]`. Anchor يرفض الاستدعاء إذا لم يكن موجودًا أو لم يكن مملوكًا للبرنامج — وجوده وحده هو التفويض.
* حساب `pool_creator` مسجل كـ `pool_state.owner`، والذي قد يختلف عن `payer` الذي يدفع الرسوم.

`seed_index = 0` يبقى محجوزًا للمجموعات القديمة: بالنسبة لتلك المجموعات، مكون البذرة ينهار إلى فارغ، مما يعيد إنتاج عنوان البذور الأربع الكلاسيكي، لذا لا يتغير عنوان مجموعة موجودة.

انظر [Instructions → CreatePermissionedPool](/ar/products/clmm/instructions).

### حساب جديد: `Permission`

حساب قدرة وجوده **هو** المنحة. يخزن فقط `authority` التي تم إنشاؤه لها (بالإضافة إلى الحشو). بذور PDA: `["permission", authority]`. يمنح الحق في استدعاء `CreatePermissionedPool` وليس شيء آخر — لا يمكنه نقل الأموال أو تغيير الرسوم أو تغيير أي مجموعة. انظر [Accounts → Permission](/ar/products/clmm/accounts).

### تعليمات إدارية جديدة: `CreatePermissionPda` / `ClosePermissionPda`

* `CreatePermissionPda` تهيئ `Permission` PDA لـ `permission_authority` معينة.
* `ClosePermissionPda` تغلقها وتسترد الإيجار للمتصل، مما يلغي المنحة. المجموعات المنشأة بالفعل تحت تلك المنحة لن تتأثر.

كلاهما يقبل إما مفتاح `admin` للبرنامج **أو** مفتاح `permission_pda_admin` مخصص (ثابت مختلف على mainnet مقابل devnet). انظر [Admin keys and multisig → CLMM](/ar/security/admin-and-multisig).

### `PoolState`: حقل `seed_index`

تم نحت بايتين من منطقة حشو موجودة (`padding: [u8; 6]` → `seed_index: [u8; 2]` + `padding: [u8; 4]`) مباشرة بعد `fee_on`. **حجم الحساب الإجمالي لم يتغير، ولا يلزم ترحيل الفهرس.** بالنسبة للمجموعات المنشأة عبر `CreatePool` / `CreateCustomizablePool`، `seed_index` هو `[0, 0]`؛ بالنسبة للمجموعات المرخصة، يحمل الفهرس المختار من قبل المنشئ وهو مطلوب لإعادة اشتقاق عنوان المجموعة خارج السلسلة.

### `OpenLimitOrder`: حسابات الجانب الناتج وحماية الحساب المجمد

قائمة حساب `OpenLimitOrder` تكتسب `output_token_account`, `output_vault`, و `output_vault_mint`. يتم استخدامها فقط للتحقق — لا يتم خصم أي إخراج عند الفتح. المعالج الآن يتطلب أن **لا** حساب الإدخال ولا حساب الإخراج مجمد، مما يعيد `NotApproved` بخلاف ذلك (نفس الكود الذي تم إرجاعه بالفعل عندما تكون المجموعة بها swap أو limit-order معطل). هذا يغلق فجوة حيث يمكن فتح أمر ضد حساب رمز قد لا يتمكن أبدًا من استقبال الملء (على سبيل المثال، حساب لم يتم إذابته بعد لـ Token-2022 mint افتراضي مجمد).

انظر [Instructions → OpenLimitOrder](/ar/products/clmm/instructions).

## رموز الخطأ

لا توجد رموز خطأ جديدة. `6000 NotApproved` الموجود يغطي الآن بالإضافة إلى ذلك حساب الإدخال/الإخراج المجمد وحالات swap/limit-order-disabled على `OpenLimitOrder`، وحالة "الموقع ليس `admin` ولا `permission_pda_admin`" على تعليمات الصلاحيات. جدول رموز الخطأ والترقيم بخلاف ذلك لم يتغيروا من [إصدار 2026-05-18](/reference/changelog/2026-05-18-clmm-limit-orders). انظر [Error codes → CLMM](/ar/reference/error-codes).

## ملاحظات الترحيل

* **قراءة عناوين المجموعات**: لا تفترض مجموعة واحدة لكل `(config, mint0, mint1)`. قد يكون لدى الزوج الآن مجموعة قانونية بالإضافة إلى مجموعة أو أكثر مرخصة في عناوين مشتقة من `seed_index`. عدّد المجموعات من API / الفهرس بدلاً من اشتقاق PDA واحد، وخزّن `seed_index` عندما تحتاج إلى إعادة اشتقاق مجموعة مرخصة.
* **وضع أوامر الحد**: أضف الحسابات الثلاثة على الجانب الناتج إلى معاملة `OpenLimitOrder` الخاصة بك، وعرض رسالة واضحة عند إرجاع `NotApproved` لحساب مجمد.
* **لا توجد فاصلة حجم الحساب أو التخطيط**: `PoolState` بنفس الحجم؛ بايتات الحشو المتقاعدة تحمل الآن `seed_index`.

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

* `products/clmm/overview` — ملاحظة "ما الجديد" حول المجموعات المتعددة المرخصة وحماية أوامر الحد.
* `products/clmm/instructions` — قسم `CreatePermissionedPool` جديد، `CreatePermissionPda` / `ClosePermissionPda` في جدول التعليمات وملاحظة البوابة الإدارية، وقائمة حساب `OpenLimitOrder` المحدثة / الشروط المسبقة / الأخطاء.
* `products/clmm/accounts` — `Permission` في الجرد وقسمه الخاص، حقل `PoolState.seed_index`، مساعدات اشتقاق PDA (`derivePermissionedPool`, `derivePermission`)، ومرجع دورة الحياة السريع.
* `security/admin-and-multisig` — صف `permission_pda_admin` جديد وشارح نطاق الصلاحيات في جدول أدوار CLMM.
* `reference/error-codes` — وصف `NotApproved` الموسع.

**تم التحقق منه مقابل**:

* مصدر `raydium-clmm` (`create_permissioned_pool.rs`, `admin/create_permission_pda.rs`, `admin/close_permission_pda.rs`, `states/permission.rs`, `states/pool.rs`, `limit_order/open_limit_order.rs`, `lib.rs`).
