هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يغطي هذا الإدراج تحديثًا قادمًا لبرنامج LaunchLab. تم التحقق منه مقابل فرع الإصدار المحلي قبل النشر. تأكد من البرنامج المنشور قبل الاعتماد على الحسابات أو التعليمات الجديدة.
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.
ملخص سريع للمدمجين
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.6020CurveParamIsNotExistمحتفظ به كعنصر نائب على الرغم من أن آخر مستدعي له اختفى، لذا لا يتحول شيء بعده. انظرreference/error-codes. - يلزم تحديث IDL. نوع حساب جديد، أربع تعليمات جديدة، اثنتان محذوفتان، متغيرا إرسال جديدان، سبعة رموز خطأ جديدة.
- تحقق من القواعد بدون اتصال قبل إرسال أي شيء. يكشف SDK عن
checkLaunchAgainstCurveRule(يعكس فحص وقت الإطلاق، السلوك الفاشل المغلق مضمن) وcheckCurveRuleGroupWritable(يعكس التحقق من وقت الكتابة). كلاهما دوال نقية. انظر تحقق قبل الإرسال. - تدرب على devnet قبل التفعيل على mainnet. تشغيل
restrict_curve_paramيغير ما يمكن لمنشئيك فعله على الفور. التسلسل الموصى به — بما في ذلك إطلاق رمز واحد يجب رفضه، لإثبات أن منشئك يمر حقًا عبر حساب القاعدة — موجود في اختبر على devnet أولاً.
ما يمكن للقاعدة التعبير عنه لم تستطع قائمة البيضاء
تتضمن الحقول الـ 19 المعدلات الأربعة المشتقة —
SellRateA، LockRate، MigrateRateA، FundRaisingRateB — وهذا ما يجعل القاعدة محمولة عبر الإمدادات بدلاً من تثبيتها على واحدة.
الإدارة المفوضة
PlatformConfig.curve_rule_manager هي محفظة ساخنة قد تنشئ وتحدث وتزيل وتغلق حسابات القاعدة لهذه المنصة. تحرير القواعس روتيني وعادة ما يكون مفتاح مسؤول المنصة متعدد التوقيع؛ هذا هو الحقل الذي يبقي متعدد التوقيع خارج الحلقة. اضبطه مرة واحدة من خلال UpdatePlatformConfig::CurveRuleManager.
يحتفظ مسؤول المنصة بنفس القوة بالتوازي — يقبل البرنامج بإعادة اشتقاق PlatformConfig PDA من الموقّع — لذا فإن مفتاح المدير المفقود قابل للاسترجاع بتدوير الحقل. Pubkey::default() يعني مسؤول فقط.
مفتاح مدير مخترق يمكنه تخفيف أو حذف قيود المعاملات واسترجاع إيجار حساب القاعدة. لا يمكنه قلب restrict_curve_param، لمس أي محفظة رسوم، حقل استحقاق، أو إعدادات CPMM، أو كسر حد GlobalConfig.
الإيجار والحجم
يتم إنشاء حساب القاعدة بدون مجموعة وتغيير حجمه عند كل تغيير، لذا تدفع المنصة مقابل القواعس التي كتبتها فعلاً، وإزالة مجموعة ترد الفرق إلى الموقّع.
لأن الحجم ديناميكي، يجب على فك التشفير قراءة الطول الفعلي للحساب بدلاً من افتراض ثابت.
تكلفة الحساب عند الإطلاق
يعمل الفحص على كل إطلاق بينما يكون مفعلاً. تم قياسه من البداية إلى النهاية — اشتقاق PDA، مسحremaining_accounts، فك التسلسل، التقييم:
يكلف القيد المشتق حوالي 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.

