> ## 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-10-30 — CPMM: InitializeV2 تفتح رسوم المنشئ لكل منشئ مجموعة

> يضيف CPMM التعليمة InitializeV2، وهي تعليمة لإنشاء المجموعات بدون إذن تأخذ معامل creator_fee_on اختياريًا. يمكن الآن لأي منشئ تفعيل رسوم المنشئ واختيار جانبها دون Permission PDA. لم تتغير Initialize و InitializeWithPermission وكل تعليمة أخرى. تغيير إضافي: لم يتغير تخطيط الحساب أو رمز الخطأ أو أي قائمة حسابات موجودة.

> [!NOTE]
>
> **هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.**
>
> [عرض النسخة الإنجليزية →](https://docs.raydium.io/reference/changelog/2026-10-30-cpmm-initialize-v2.md)

> [!NOTE]
>
> يغطي هذا الإدخال ترقية برنامج CPMM مجدولة لـ **2026-10-30**. تم التحقق منها مقابل فرع `feat/initialize-v2` من `raydium-cp-swap` (head `40cbd81`) قبل النشر. تأكد من البرنامج المنشور قبل الاعتماد على التعليمة الجديدة.

لكل مجموعة CPMM علم `enable_creator_fee` وجانب `creator_fee_on`، وكلاهما ثابت عند الإنشاء. حتى الآن، لم يكن بإمكان المنشئ تعيينهما إلا عبر `InitializeWithPermission`، التي تتطلب `Permission` PDA يصدره المسؤول. كانت `Initialize` العامة تخزّن الرسوم دائمًا كمعطّلة. عمليًا، كانت تخرجات LaunchLab والتدفقات المقيّدة الأخرى وحدها قادرة على إنشاء مجموعة تفرض رسوم المنشئ.

يضيف هذا الإصدار **`InitializeV2`**. إنها `Initialize` مع معامل إضافي واحد، `creator_fee_on: Option<CreatorFeeOn>`، ويمكن لأي شخص استدعاؤها. رياضيات المجموعة والمبادلة والسيولة وجمع الرسوم وحصة البروتوكول من رسوم المنشئ لم تُمس.

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

* **تعليمة جديدة: `InitializeV2`.** بدون إذن. المعاملات هي `init_amount_0` و `init_amount_1` و `open_time` و `creator_fee_on: Option<CreatorFeeOn>`. المميز `[67, 153, 175, 39, 218, 16, 38, 32]`.
* **`Some(side)` يفعّل رسوم المنشئ على ذلك الجانب؛ `None` يتركها معطّلة.** يخزّن `None` بالضبط ما تخزّنه `Initialize`.
* **نفس حسابات `Initialize`، ناقص `rent`.** أول 19 حسابًا متطابقة وبنفس الترتيب. انظر [قائمة الحسابات](https://docs.raydium.io/ar/products/cpmm/instructions.md#initializev2).
* **المنشئ هو الموقّع.** `pool_state.pool_creator` هو `creator` الموقّع. على عكس `InitializeWithPermission`، لا يمكن تعيين المستفيد إلى عنوان آخر.
* **يختار المنشئ التفعيل/التعطيل والجانب، لا المعدل.** تفرض المجموعة `AmmConfig.creator_fee_rate` الخاص بفئة رسومها. القيمة الافتراضية لهذا المعدل `0`، لذا لا تراكم المجموعة المفعّلة على مثل هذه الفئة شيئًا.
* **لم يتغير أي شيء موجود.** تحتفظ `Initialize` و `InitializeWithPermission` بمميزاتها وحساباتها ومعاملاتها وسلوكها. لم يتغير تخطيط الحساب أو رمز الخطأ.
* **حدّث IDL الخاص بك** للحصول على التعليمة الجديدة. العملاء الذين لا يستدعونها لا يحتاجون إلى أي تغيير.

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

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

تنفّذ `InitializeV2` نفس كود الإنشاء الذي تنفّذه `Initialize`. فهي:

* تقبل إما PDA المجموعة القانوني أو مفتاحًا عشوائيًا موقّعًا كـ `pool_state`؛
* تطبّق نفس فحوصات قائمة امتدادات Token-2022 المسموح بها و `SupportMintAssociated`، عبر `remaining_accounts`؛
* ترفض الإنشاء عندما يكون `amm_config.disable_create_pool` مُعيّنًا؛
* ترفع `open_time` إلى `block_timestamp + 1` عندما لا يكون في المستقبل؛
* تقفل 100 وحدة أساسية من LP وتصك الباقي للمنشئ؛
* تفرض `amm_config.create_pool_fee`.

الفرق الوحيد هو ما تكتبه في `PoolState` الجديد:

| معامل `creator_fee_on` | بايتات Borsh | `enable_creator_fee` | `creator_fee_on` |
| - | - | - | - |
| `None` | `00` | `false` | `0` (`BothToken`) |
| `Some(BothToken)` | `01 00` | `true` | `0` |
| `Some(OnlyToken0)` | `01 01` | `true` | `1` |
| `Some(OnlyToken1)` | `01 02` | `true` | `2` |

بايت الوسم أو المتغير غير الصالح يفشل في إلغاء تسلسل المعاملات في Anchor. لا يوجد رمز خطأ جديد.

| | المميز |
| - | - |
| `initialize` (دون تغيير) | `[175, 175, 109, 31, 13, 152, 155, 237]` |
| `initialize_with_permission` (دون تغيير) | `[63, 55, 254, 65, 49, 178, 89, 121]` |
| `initialize_v2` (جديد) | `[67, 153, 175, 39, 218, 16, 38, 32]` |

### مقارنة مسارات الإنشاء الثلاثة

| | `Initialize` | `InitializeV2` | `InitializeWithPermission` |
| - | - | - | - |
| من يمكنه الاستدعاء | أي شخص | أي شخص | حامل `Permission` PDA |
| رسوم المنشئ | معطّلة دائمًا | اختيار المنشئ | مفعّلة دائمًا |
| الجانب (`creator_fee_on`) | `BothToken` (غير مستخدم) | اختيار المنشئ | اختيار المستدعي |
| `pool_creator` المسجَّل | `creator` الموقّع | `creator` الموقّع | حساب `creator` منفصل، ليس موقّعًا |
| الدافع | `creator` | `creator` | `payer` منفصل |
| sysvar `rent` الأخير | نعم | لا | لا |

### إعادة هيكلة داخلية

تتشارك المعالجات الثلاثة الآن روتين `initialize_pool` واحدًا. لا تغيّر إعادة الهيكلة حسابات أو معاملات أو فحوصات أو القيم المخزّنة لـ `Initialize` أو `InitializeWithPermission`. تتحقق الاختبارات الجديدة أيضًا من أن `Initialize` العادية على نفس الإعدادات لا تزال تخزّن رسوم المنشئ كمعطّلة.

## ما يجب أن يعرفه المنشئون

* **تحقق من فئة الرسوم أولًا.** معدل رسوم المنشئ ينتمي إلى `AmmConfig`، لا إلى المجموعة. اختر فئة يكون `creator_fee_rate` فيها هو ما تريد فرضه. المعدلات مدرجة في [`products/cpmm/fees`](https://docs.raydium.io/ar/products/cpmm/fees).
* **الاختيار دائم.** لا توجد تعليمة تغيّر `enable_creator_fee` أو `creator_fee_on` بعد الإنشاء. لتغييره، يجب عليك إنشاء مجموعة جديدة.
* **يدفعها المتداولون فوق رسوم التداول.** رسوم المنشئ معدل منفصل يُضاف إلى المبادلة. لا تقلل حصص LP أو البروتوكول أو الصندوق، لكنها تجعل التداول مقابل المجموعة أغلى من مجموعة على نفس الفئة مع تعطيل الرسوم.
* **الجمع لم يتغير.** استخدم `CollectCreatorFee` أو `CollectCreatorFeePermissionless`. تُطبَّق حصة البروتوكول من [إصدار 2026-09-19](https://docs.raydium.io/ar/reference/changelog/2026-09-19-cpmm-creator-fee-protocol-share.md)، ولا يمكنك إلغاء الاشتراك فيها عند الإنشاء.

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

* **منشئو المجموعات.** انتقل من `Initialize` إلى `InitializeV2` فقط إذا كنت تريد تفعيل رسوم المنشئ. مرّر `Some(side)` واحذف حساب `rent`. تستمر `Initialize` في العمل.
* **مستخدمو SDK.** تبني `raydium.cpmm.createPool` في `@raydium-io/raydium-sdk-v2@0.2.64-alpha` التعليمة `Initialize`. إلى أن يصدر إصدار يتضمن منشئًا لـ `InitializeV2`، رمّزها من IDL المحدَّث.
* **المفهرسون والموجّهات.** توقّع المزيد من المجموعات ذات `enable_creator_fee = true`، أنشأتها محافظ عادية بدلًا من LaunchLab. احسب الأسعار من `enable_creator_fee` و `creator_fee_on` الخاصين بكل مجموعة، وليس أبدًا من مسار الإنشاء أو الفئة وحدها. فكّ ترميز التعليمة الجديدة إذا كنت تتتبع إنشاء المجموعات من التعليمات. التتبع من حسابات `PoolState` لا يحتاج إلى أي تغيير.
* **واجهات المستخدم.** اعرض ما إذا كانت المجموعة تفرض رسوم منشئ وبأي معدل، إذ يمكن الآن أن تختلف مجموعتان على نفس الفئة.
* **LaunchLab والتدفقات المقيّدة بإذن الأخرى.** لا تغيير. تظل `InitializeWithPermission` هي المسار عندما يجب أن يختلف الدافع عن المنشئ المسجَّل.

## ما لم يتغير

* **كل تخطيطات الحسابات**، بما في ذلك `PoolState` و `AmmConfig`.
* **`Initialize` و `InitializeWithPermission`**: المميزات والحسابات والمعاملات والقيم المخزّنة.
* **`Permission` و `CreatePermissionPda` و `ClosePermissionPda`.**
* **رياضيات المبادلة والإيداع والسحب**، وفرض رسوم المنشئ، وحصة البروتوكول من رسوم المنشئ.
* **رموز الخطأ.** `6000`–`6015` لم تتغير؛ لم يُلحَق شيء.
* **معرّف البرنامج.**

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

* `products/cpmm/instructions`: لافتة الترقية؛ صفوف الملخص ومصفوفة تغيّر الحالة؛ قسم `InitializeV2` جديد بالمعاملات والترميز وقائمة الحسابات؛ يشير الشرط اللاحق لـ `Initialize` الآن إلى `InitializeV2`.
* `products/cpmm/fees`: يسرد قسم "رسوم المنشئ" مسارات الإنشاء الثلاثة ويشير إلى أن تفعيل الرسوم لا يحدد معدلها.
* `products/cpmm/accounts`: ملاحظات `poolState` ومعرّف المجموعة؛ ملاحظات حقلي `creator_fee_on` / `enable_creator_fee`؛ ملاحظة `Permission`؛ صف دورة حياة الحساب.
* `products/cpmm/overview`: تنبيه "ما الجديد" وبند "رسوم يمكن التنبؤ بها".
* `products/cpmm/code-demos`: ملاحظة بأن `createPool` تبني `Initialize` وكيفية الوصول إلى `InitializeV2`.
* `protocol-overview/shared-infrastructure`: لم تعد رسوم المنشئ مقتصرة على مجموعات LaunchLab المتخرجة.
* `reference/token-2022-support`: مسارات إنشاء مجموعات CPMM.

**تم التحقق مقابل**: فرع `raydium-cp-swap` `feat/initialize-v2` (`40cbd81`): `programs/cp-swap/src/lib.rs`، `instructions/initialize_v2.rs`، `instructions/initialize.rs`، `instructions/initialize_with_permission.rs`، `instructions/mod.rs`، `states/pool.rs`، و `tests/initialize_v2.test.ts`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.