> ## 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-31 — LaunchLab: قواعد منحنى المنصة تحل محل قائمة معاملات المنحنى البيضاء

> تنتقل قيود معاملات الإطلاق من PlatformConfig.curve_params إلى حسابات PlatformCurveRule لكل إعدادات مع قيود (field, op, value)، نطاقات القيم، مجموعات الفحص المرتبطة بـ OR، ومحفظة مدير مفوضة. يحتفظ PlatformConfig بحجمه البالغ 944 بايت؛ تتم إزالة الحقل القديم وتعليماته الاثنتين، وتُضاف سبعة رموز خطأ.

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

  [عرض النسخة الإنجليزية →](/reference/changelog/2026-08-31-launchlab-platform-curve-rules)
</Info>

<Info>
  يغطي هذا الإدراج تحديثًا قادمًا لبرنامج LaunchLab. تم التحقق منه مقابل فرع الإصدار المحلي قبل النشر. تأكد من البرنامج المنشور قبل الاعتماد على الحسابات أو التعليمات الجديدة.
</Info>

كانت المنصة قادرة بالفعل على تقييد أشكال الإطلاق التي قد يختارها منشئوها، من خلال `PlatformConfig.curve_params`. اختبرت تلك الآلية **المساواة الدقيقة فقط**: إما أن يثبت الإدخال حقلاً على قيمة واحدة أو يستخدم بطاقة برية مع قيمة حارسة. كما أنها احتفظت بـ 10 إدخالات على الأكثر عبر كل `GlobalConfig` تدعمه المنصة، وكانت موجودة على حساب `PlatformConfig` نفسه، مما زاد حجمه بـ 491 بايت لكل إدخال.

تصادمت هذه الخصائص الثلاث مع إضافة البروتوكول للإعدادات. التعبير عن "هدف جمع أموال بين 50 و 200 SOL" احتاج إلى إدخال واحد لكل قيمة مسموحة وبالتالي كان مستحيلاً. تم فتح حدود `GlobalConfig` الخاصة بها على مصراعيها في الوقت نفسه — معدلات 1 bps، حدود الإمداد 99999 — بالضبط حتى تناسب كل منصة تحتها، مما ترك المنصات بدون طريقة لتضييقها.

يستبدل هذا الإصدار قائمة البيضاء بـ **قواعد المنحنى**: حساب `PlatformCurveRule` واحد لكل زوج (منصة، إعدادات)، يحتوي على ما يصل إلى 10 مجموعات فحص، كل منها يحتوي على ما يصل إلى 25 قيد `(field, op, value)` على 19 معامل إطلاق، مع `Eq`، `Gte`، `Lte`، و `Neq`. يتم ربط القيود داخل المجموعة بـ AND، والمجموعات بـ OR. النطاق هو `Gte` بالإضافة إلى `Lte` على نفس الحقل.

النموذج الكامل وتسعة كتيبات عملية موجودة على الصفحة الجديدة: [`products/launchlab/curve-rules`](/ar/products/launchlab/curve-rules).

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

* **`PlatformConfig` يحتفظ بحجمه وكل إزاحة حقل موجودة.** إنه 944 بايت ثابت. `curve_params` اختفى؛ `restrict_curve_param` (`u8`)، `curve_rule_manager` (`Pubkey`)، و 4 بايتات التي احتلتها بادئة طول vec تخرج من الحشو، الذي ينكمش من 107 إلى 78.
* **يجب على فك التشفير إسقاط vec الزائدة.** فك تشفير يتوقع لا يزال `Vec<PlatformCurveParam>` بعد الحشو سيقرأ الحقلين الجديدين كبايتات vec. كل شيء قبل الحشو لم يتأثر، لذا فك تشفير يقرأ فقط محافظ الرسوم والمعدلات يستمر في العمل دون تغيير.
* **بناة الإطلاق يحتاجون إلى حساب إضافي عندما تكون العلامة قيد التشغيل.** بينما `restrict_curve_param` هو `1`، يتطلب `InitializeV2` و `InitializeWithToken2022` قاعدة PDA في `remaining_accounts` — *حتى عندما لا يكون الحساب موجودًا*، بحيث لا يمكن حذفه لتخطي الفحص. الاشتقاق: `[b"platform_curve_rule", platform_config, global_config]`.
* **لا توجد منصة مقيدة بشكل افتراضي.** `restrict_curve_param` هو `0` على كل حساب موجود، و `0` يعني أن البرنامج لا يقرأ القواعد على الإطلاق.
* **تتم إزالة تعليمتين:** `UpdatePlatformCurveParam` و `RemovePlatformCurveParam`. تمت إضافة أربع: `CreatePlatformCurveRule`، `UpdatePlatformCurveRule`، `RemovePlatformCurveRule`، `ClosePlatformCurveRule`.
* **`UpdatePlatformConfig` يكتسب متغيرين:** `RestrictCurveParam(u64)` في فهرس الإرسال 13 و `CurveRuleManager(Pubkey)` في 14. الفهارس الموجودة 0–12 لم تتغير.
* **تمت إضافة سبعة رموز خطأ،** `6024`–`6030`. `6020` `CurveParamIsNotExist` محتفظ به كعنصر نائب على الرغم من أن آخر مستدعي له اختفى، لذا لا يتحول شيء بعده. انظر [`reference/error-codes`](/ar/reference/error-codes).
* **يلزم تحديث IDL.** نوع حساب جديد، أربع تعليمات جديدة، اثنتان محذوفتان، متغيرا إرسال جديدان، سبعة رموز خطأ جديدة.
* **تحقق من القواعد بدون اتصال قبل إرسال أي شيء.** يكشف SDK عن `checkLaunchAgainstCurveRule` (يعكس فحص وقت الإطلاق، السلوك الفاشل المغلق مضمن) و `checkCurveRuleGroupWritable` (يعكس التحقق من وقت الكتابة). كلاهما دوال نقية. انظر [تحقق قبل الإرسال](/ar/products/launchlab/curve-rules#check-before-you-send).
* **تدرب على devnet قبل التفعيل على mainnet.** تشغيل `restrict_curve_param` يغير ما يمكن لمنشئيك فعله على الفور. التسلسل الموصى به — بما في ذلك إطلاق رمز واحد يجب رفضه، لإثبات أن منشئك يمر حقًا عبر حساب القاعدة — موجود في [اختبر على devnet أولاً](/ar/products/launchlab/curve-rules#test-on-devnet-first).

## ما يمكن للقاعدة التعبير عنه لم تستطع قائمة البيضاء

| النية                               | قائمة البيضاء            | قاعدة المنحنى                             |
| ----------------------------------- | ------------------------ | ----------------------------------------- |
| شكل إطلاق دقيق واحد                 | إدخال واحد               | مجموعة واحدة مع قيود `Eq`                 |
| هدف جمع أموال في نطاق               | غير قابل للتعبير         | قيدان: `Gte` + `Lte`                      |
| ثلاث طبقات إطلاق                    | ثلاثة إدخالات، دقيقة فقط | ثلاث مجموعات                              |
| نطاق قيمة التخرج المستقل عن الإمداد | غير قابل للتعبير         | قيدان على `FundRaisingRateB` المشتق       |
| حد أدنى لما يصل إلى مجموعة التخرج   | غير قابل للتعبير         | قيد واحد على `MigrateRateA` المشتق        |
| SPL Token فقط، أو Token-2022 فقط    | غير قابل للتعبير         | قيد واحد على `BaseTokenProgram`           |
| "إذا تم تعيين رسم نقل، حده عند 1%"  | غير قابل للتعبير         | مجموعتان، مبوابة على `TransferFeeEnabled` |
| قاعدة تتحول في تاريخ، بدون مراقبة   | غير قابل للتعبير         | مجموعتان، مبوابة على `UnixTimestamp`      |

تتضمن الحقول الـ 19 المعدلات الأربعة المشتقة — `SellRateA`، `LockRate`، `MigrateRateA`، `FundRaisingRateB` — وهذا ما يجعل القاعدة محمولة عبر الإمدادات بدلاً من تثبيتها على واحدة.

## الإدارة المفوضة

`PlatformConfig.curve_rule_manager` هي محفظة ساخنة قد تنشئ وتحدث وتزيل وتغلق حسابات القاعدة لهذه المنصة. تحرير القواعس روتيني وعادة ما يكون مفتاح مسؤول المنصة متعدد التوقيع؛ هذا هو الحقل الذي يبقي متعدد التوقيع خارج الحلقة. اضبطه مرة واحدة من خلال `UpdatePlatformConfig::CurveRuleManager`.

يحتفظ مسؤول المنصة بنفس القوة بالتوازي — يقبل البرنامج بإعادة اشتقاق `PlatformConfig` PDA من الموقّع — لذا فإن مفتاح المدير المفقود قابل للاسترجاع بتدوير الحقل. `Pubkey::default()` يعني مسؤول فقط.

مفتاح مدير مخترق يمكنه تخفيف أو حذف قيود المعاملات واسترجاع إيجار حساب القاعدة. لا يمكنه قلب `restrict_curve_param`، لمس أي محفظة رسوم، حقل استحقاق، أو إعدادات CPMM، أو كسر حد `GlobalConfig`.

## الإيجار والحجم

يتم إنشاء حساب القاعدة بدون مجموعة وتغيير حجمه عند كل تغيير، لذا تدفع المنصة مقابل القواعس التي كتبتها فعلاً، وإزالة مجموعة ترد الفرق إلى الموقّع.

| محتوى القاعدة               | الحجم      | الإيجار      |
| --------------------------- | ---------- | ------------ |
| فارغ                        | 150 بايت   | \~0.0019 SOL |
| 1 مجموعة، 2 قيد             | 200 بايت   | \~0.0023 SOL |
| 3 مجموعات، 4 قيود لكل منها  | 408 بايت   | \~0.0037 SOL |
| 10 مجموعات، 25 قيد لكل منها | 4 790 بايت | \~0.034 SOL  |

لأن الحجم ديناميكي، يجب على فك التشفير قراءة الطول الفعلي للحساب بدلاً من افتراض ثابت.

## تكلفة الحساب عند الإطلاق

يعمل الفحص على كل إطلاق بينما يكون مفعلاً. تم قياسه من البداية إلى النهاية — اشتقاق PDA، مسح `remaining_accounts`، فك التسلسل، التقييم:

| محتوى القاعدة               | الحقول المباشرة | الحقول المشتقة |
| --------------------------- | --------------- | -------------- |
| مفعل، لا توجد حساب قاعدة    | 1 936           | —              |
| 1 مجموعة، 2 قيد             | 2 576           | 2 926          |
| 3 مجموعات، 4 قيود لكل منها  | 3 624           | 5 724          |
| 10 مجموعات، 25 قيد لكل منها | 24 344          | 68 094         |

يكلف القيد المشتق حوالي 223 CU مقابل حوالي 48 لقراءة حقل مباشر. حتى القاعدة المحملة بالكامل تبقى داخل ثلث ميزانية 200 000 CU الافتراضية لكل تعليمة. يتم تقييم المجموعات حتى تطابق واحدة، لذا فإن الطبقة الأكثر استخدامًا تنتمي أولاً.

## الهجرة لمرة واحدة

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

حافظت الترجمة على الدلالات القديمة بالضبط: أصبح كل إدخال مجموعة واحدة، أصبح كل حقل غير حارس قيد `Eq` واحد، وأصبح إدخال كل الحراس — الذي طابق كل إطلاق — مجموعة بدون قيود، التي تطابق أيضًا كل إطلاق.

كتبت الهجرة القواعس لكن لم تفعلها. بقيت المنصة المهاجرة غير مقيدة حتى ضبطت `restrict_curve_param` على `1` بنفسها. تمت إزالة تعليمات الهجرة من البرنامج الآن بعد اكتمال الممر، جنبًا إلى جنب مع الحقل القديم الذي قرأته.

## ما لم يتغير

* **`GlobalConfig`.** نفس التخطيط، نفس الحدود، نفس التعليمات. تضيق القواعس تلك الحدود ويتم فحصها جنبًا إلى جنب معها؛ لا يمكنهم أبدًا توسيع واحدة.
* **قوائم حسابات تعليمات الإطلاق والحجج.** `InitializeV2` و `InitializeWithToken2022` تأخذ نفس الحسابات الثابتة والحجج نفسها. فقط `remaining_accounts` يكتسب إدخالاً، وفقط بينما تكون العلامة قيد التشغيل.
* **مسارات التجارة والتخرج والرسوم والاستحقاق.** لم تتغير.
* **`PlatformAllowConfig`.** لم تتغير وغير ذات صلة: تقرر *أي إعدادات* قد تستخدمها إطلاقات المنصة، بينما تقرر القاعدة *أي معاملات* داخل إعدادات. العلامتان مستقلتان.
* **رموز الخطأ `6000`–`6023`.** لم تتغير، `6020` مضمنة.
* **حجم `PlatformConfig` وإزاحات ما قبل الحشو.** لم تتغير، لذا لا تحتاج الحسابات الموجودة إلى هجرة خاصة بها.

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

* `products/launchlab/curve-rules` — **صفحة جديدة.** النموذج ثلاثي المستويات، جداول الحقول الـ 19 والمشغل الـ 4، تسعة كتيبات، قيد نوع المنحنى، مساعدان فحص بدون اتصال، تسلسل البروفة devnet، الإدارة المفوضة، الإيجار، ترتيب الطرح، وتكلفة الحساب.
* `products/launchlab/platform-config` — تم استبدال "قائمة معاملات المنحنى البيضاء" بـ "قواعد معاملات الإطلاق"؛ تم تحديث التخطيط لـ `restrict_curve_param`، `curve_rule_manager`، والحشو 78 بايت؛ تم إعادة كتابة جدول مسار التحديث، مقتطف مسار القراءة، والمخاطر.
* `products/launchlab/instructions` — قسم "قواعد معاملات إطلاق المنصة" الجديد يغطي التعليمات الأربع وحساباتها وحججها وأخطاؤها؛ تم استبدال صف الجرد.
* `products/launchlab/accounts` — تمت إضافة `PlatformCurveRule` إلى الجرد وحصلت على قسمها الخاص مع التخطيط الكامل وتحذير الحجم المتغير.
* `reference/error-codes` — تم توثيق `6024`–`6030`؛ تم شرح `6018` و `6020`.
