> ## 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 — CPMM: جمع رسوم المنشئ بدون إذن

> يضيف CPMM تعليمة مقيدة بالوجهة تسمح لأي دافع بتجميع رسوم المنشئ إلى حسابات ATA الأساسية لمنشئ المجموعة، ويفوض إنشاء PDA الإذن دون تفويض الإلغاء.

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

  [عرض النسخة الإنجليزية →](/reference/changelog/2026-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

<Info>
  إدخال سجل تغييرات التوثيق لتحديث برنامج CPMM القادم. للاطلاع على فهرس جميع التحديثات، انظر [`reference/changelog`](/ar/reference/changelog). للخط الزمني التاريخي للبروتوكول نفسه، انظر [`introduction/history-and-milestones`](/ar/introduction/history-and-milestones).
</Info>

يضيف هذا الإصدار مسارًا تشغيليًا بدون إذن لجمع رسوم المنشئ. يمكن لأي شخص الدفع لتفعيل التجميع، لكن البرنامج يثبت مالك المستقبل على `PoolState.pool_creator` ويثبت كلا الوجهتين على حسابات الرموز المرتبطة الأساسية لذلك المنشئ. تبقى التعليمة الموقعة من المنشئ الموجودة دون تغيير.

كما يسمح لسلطة مخصصة بإنشاء PDAs `Permission` في CPMM. هذا التفويض غير متماثل عن قصد: يمكن للسلطة المخصصة منح الوصول إلى `InitializeWithPermission`، بينما فقط مسؤول البرنامج يمكنه إلغاء المنحة باستخدام `ClosePermissionPda`.

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

* **تعليمة جديدة إضافية: `CollectCreatorFeePermissionless`.** أي موقّع يمكن أن يكون `payer`. منشئ المجموعة المسجل لا يوقع.
* **لا يمكن للمستدعي إعادة توجيه الأموال.** يجب أن يساوي `creator` قيمة `pool_state.pool_creator`. يجب أن تكون `creator_token_0` و `creator_token_1` حسابات ATA الأساسية لذلك المنشئ لأغراض خزائن المجموعة والبرامج الرمزية الخاصة بهما.
* **الدافع يغطي حسابات ATA المفقودة.** كلا حسابي المستقبل يستخدمان `init_if_needed`؛ يمول الدافع الإيجار عندما لا يكون أي من الحسابين موجودًا.
* **الجمع كل شيء أو لا شيء.** تنقل التعليمة كلا عدادات رسوم المنشئ المتراكمة بالكامل، وتصفر كليهما، وتحدث `recent_epoch`. تُرجع خطأ `NoFeeCollect` الموجود عندما يكون كلا العدادين صفرًا.
* **التكاملات الموجودة تبقى متوافقة.** لم يتم تعديل أو إزالة `CollectCreatorFee`. لا توجد تغييرات في تخطيط `PoolState` أو `AmmConfig` أو `Permission` أو الحدث أو رمز الخطأ.
* **إنشاء الإذن له مالك ثانٍ.** يقبل `CreatePermissionPda` مسؤول البرنامج أو مالك إنشاء PDA الإذن المخصص. يبقى `ClosePermissionPda` مقتصرًا على المسؤول فقط.

## حسابات التعليمة الجديدة

يأخذ `CollectCreatorFeePermissionless` 14 حسابًا بهذا الترتيب:

| #     | الحساب                               | القيد أو الدور                                                         |
| ----- | ------------------------------------ | ---------------------------------------------------------------------- |
| 1     | `payer`                              | موقّع قابل للكتابة؛ يمول حسابات ATA للمنشئ المفقودة.                   |
| 2     | `creator`                            | يجب أن يساوي `pool_state.pool_creator`؛ لا يوقع.                       |
| 3     | `authority`                          | PDA سلطة الخزينة العامة CPMM.                                          |
| 4     | `pool_state`                         | قابل للكتابة؛ يحتفظ بعدادات رسوم المنشئ.                               |
| 5–6   | `token_0_vault`, `token_1_vault`     | قابل للكتابة؛ يجب أن يطابق الخزائن المخزنة في المجموعة.                |
| 7–8   | `vault_0_mint`, `vault_1_mint`       | يجب أن يطابق الرمز المقابل للخزينة.                                    |
| 9–10  | `creator_token_0`, `creator_token_1` | حسابات ATA الأساسية للمنشئ القابلة للكتابة؛ يتم تهيئتها إذا لزم الأمر. |
| 11–12 | `token_0_program`, `token_1_program` | SPL Token أو Token-2022 لكل رمز.                                       |
| 13    | `associated_token_program`           | ينشئ حساب ATA للمنشئ المفقود.                                          |
| 14    | `system_program`                     | يدعم إنشاء الحساب الممول من الدافع.                                    |

بخلاف `CollectCreatorFee`، يحتوي التخطيط الجديد على حسابات `payer` و `creator` منفصلة وغير موقعة ولا يأخذ `amm_config`. لذلك يتطلب مميز خاص به ومنشئ.

## تأثير SDK و IDL

فرع مصدر البرنامج لا يتضمن تحديث SDK أو IDL ملتزم به. يجب على المدمجين تحديث IDL CPMM المنشور أو استخدام إصدار عميل يدعم بشكل صريح `CollectCreatorFeePermissionless`. مجموعة المنشئ المثبتة في التوثيق `@raydium-io/raydium-sdk-v2@0.2.42-alpha` تغطي فقط مسار التوقيع الأصلي من المنشئ.

## حدود الأمان

الاستدعاء بدون إذن لا يعني الحفظ بدون إذن. يمكن للمستدعي اختيار متى يتم الجمع وقد ينفق SOL لإنشاء حسابات ATA للمنشئ المفقودة. لا يمكن للمستدعي اختيار المستفيد أو استبدال حسابات رموز عشوائية أو طلب مبلغ جزئي أو تغيير تكوين رسوم المنشئ للمجموعة.

دور منشئ PDA الإذن الجديد يمكنه إنشاء منحة لأي `permission_authority`، وهو يدفع إيجار الحساب الجديد. لا يمكنه إغلاق ذلك PDA بموجب هذا التغيير. تعامل معه كسلطة منحة مفوضة، وليس كمسؤول إذن كامل.

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

* احتفظ بمعاملات `CollectCreatorFee` الموجودة دون تغيير.
* أضف التعليمة بدون إذن فقط بعد نشر CPMM المستهدف وIDL العميل يتضمنانها.
* يمكن للأتمتة مسح المجموعات ذات `creator_fees_token_0` أو `creator_fees_token_1` غير الصفرية وتفعيل الجمع دون حفظ مفاتيح المنشئ.
* تعامل مع `NoFeeCollect` كسباق حميد عندما يستنزف مستدعٍ آخر العدادات أولاً.
* لا تمرر حسابات رموز مستقبل عشوائية؛ اشتق حسابات ATA للمنشئ من `pool_state.pool_creator` وكل رمز خزينة والبرنامج الرمزي المطابق.

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

* `products/cpmm/overview` — تحديث جمع رسوم المنشئ وملخص سلامة الوجهة.
* `products/cpmm/instructions` — ملخص التعليمة الجديدة وقائمة الحساب الكاملة والتأثيرات ومصفوفة تغيير الحالة.
* `products/cpmm/accounts` — مسارات جمع عداد رسوم المنشئ وإنشاء PDA الإذن المفوض.
* `products/cpmm/fees` — ميكانيكا الجمع بدون إذن والتدفق التشغيلي.
* `products/cpmm/code-demos` — تحذير توفر SDK وحد ترحيل العميل.
* `products/launchlab/platform-config` — توضيح أن منشئ CPMM المسجل يبقى المستفيد حتى عندما يفعل دافع آخر الجمع.
* `protocol-overview/shared-infrastructure` — مسارات الجمع المحدودة بالسلطة والمقيدة بالوجهة.
* `security/admin-and-multisig` — حدود سلطة المنحة المفوضة وحدود جامع بدون إذن.
* `reference/program-addresses` — عناوين مالك `CreatePermissionPda` المخصص الأساسي.
* `reference/error-codes` — توسيع `NoFeeCollect` لتغطية جمع رسوم المنشئ.

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

* فرع [`raydium-cp-swap` `feat/permissionless-collect-creator-fee`](https://github.com/raydium-io/raydium-cp-swap/tree/feat/permissionless-collect-creator-fee).
* الالتزامات [`9585ea1`](https://github.com/raydium-io/raydium-cp-swap/commit/9585ea1efeb27be7be7eab1ebc033449f9c793b4) و [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9)، مقارنة مع `master` في [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c).

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