هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
PlatformConfig هو طبقة التراكب على مستوى المنصة التي تقع فوق GlobalConfig. بينما يحدد GlobalConfig القواعس على مستوى البروتوكول (“رسم التداول 1%، يجب أن يكون الإمداد 10 ملايين على الأقل، فقط هذا المحفظة يمكنها التخرج”)، PlatformConfig هو ما تستخدمه كل منصة إطلاق — pump.fun، واجهة Raydium الخاصة، منصات الإطلاق من جهات خارجية — لإضافة رسمها، والمطالبة بحصتها من LP بعد التخرج، وتقييد معاملات الإطلاق التي يمكن لعمليات الإطلاق الخاصة بها اختيارها، وعرض علامتها التجارية (الاسم، الموقع الإلكتروني، الصورة) على السلسلة.ما هو
حسابPlatformConfig يمتلك خمس مخاوف متقاطعة لمنصة:
- العلامة التجارية — الاسم، الموقع الإلكتروني، رابط الصورة، كل شيء مخزن بشكل مضمن بحيث يمكن لأي مستكشف أو معالج بيانات عرض المنصة التي أطلقت الرمز.
- رسم المنصة — رسم تداول إضافي (
fee_rate) بالإضافة إلىtrade_fee_rateالخاص بالبروتوكول. يتراكم فيplatform_fee_walletالخاص بالمنصة. محدود بـ 500 bps (50000) على كل من مسار الإنشاء والتحديث، تم رفعه من 100 bps (10000) في 2026-08-26 — انظر حدود الأسعار. - تقسيم هجرة LP — ثلاثة أعداد صحيحة مخزنة (
platform_scale,creator_scale,burn_scale) تجمع إلى1_000_000. قبل ترقية 2026-08-17، أنتج مقياس المنشئ مفتاح رسم منفصل للمنشئ. الهجرات المنفذة بعد الترقية تجمع الاثنين الأولين في حصة LP مقفلة واحدة مملوكة للمنصة؛ الباقي يتم حرقه. - قواعد معاملات الإطلاق — تقييد اختياري (
restrict_curve_param) يتطلب من الإطلاق تلبية حسابPlatformCurveRuleالخاص بـGlobalConfigالذي اختاره. تدعم القواعد نطاقات القيم والمستويات البديلة والبوابات من نوع الرمز؛ تعيش في حساباتها الخاصة، وليس علىPlatformConfig. - قائمة المسموح بها للتكوين العام — تقييد اختياري يتطلب من المنصة إنشاء
PlatformAllowConfigلـGlobalConfigالمختار.
create_platform_config في المصدر للحصول على قائمة البذور الموثوقة.)
التخطيط
Vec<PlatformCurveParam> نهائي حتى إصدار 2026-08-31 الذي نقل معاملات الإطلاق إلى حسابات PlatformCurveRule؛ restrict_curve_param و curve_rule_manager و 4 بايتات التي احتلتها بادئة طول vec كلها تخرج من الحشو، لذا فإن عدد البايتات وكل إزاحة حقل سابقة لم تتغير. انظر إدخال السجل لما يجب أن يتغير في أجهزة فك التشفير.
يجب أن يساوي platform_scale + creator_scale + burn_scale 1_000_000. قبل ترقية 2026-08-17، كان creator_scale مقفولاً بشكل منفصل وذهب مفتاح الرسم الخاص به إلى منشئ الرمز. بالنسبة للهجرات المنفذة بعد الترقية، يتم إضافته إلى platform_scale وتذهب حقوق LP المقفلة الخاصة به إلى المنصة بدلاً من ذلك. نتائج الأمثلة بموجب المنطق المحدث:
(0, 100_000, 900_000)— 90% LP محروق، 10% مقفول للمنصة.(50_000, 100_000, 850_000)— 85% محروق، 15% مقفول للمنصة.(0, 0, 1_000_000)— حرق كامل، لا توجد عملات NFT. عمليات إطلاق صارمة “بدون مطلعين”.
حقول العلامة التجارية
name و web و img عبارة عن مصفوفات بايت مضمنة مملوءة بأصفار حتى ثوابتها. لقراءتها كسلاسل، قم بالتقطيع حتى أول \0:
name: 64, web: 256, img: 256) بحيث يمكن للمنصات تضمين بيانات وصفية كافية للمستكشفات ومعالجات البيانات دون لمس التخزين خارج السلسلة. أي شيء يتجاوز هذه الأحجام يعود عند CreatePlatformConfig مع InvalidInput.
ميكانيكا الرسوم
يفرض التبديل على منحنى مرتبط بـPlatformConfig ثلاث رسوم متعددة الطبقات:
trade_feeيتراكم فيprotocol_fee_ownerالخاص بالبروتوكول (يتم المطالبة به عبرCollectFee).platform_feeيتراكم في خزينة لكل منصة (يتم المطالبة به عبرClaimPlatformFeeأوClaimPlatformFeeFromVault؛ انظرinstructions).creator_feeيتراكم في خزينة لكل منشئ مفتاحة بواسطة مفتاح المنشئ العام + رمز الاقتباس (يتم المطالبة به عبرClaimCreatorFee).
حدود الأسعار
كلا المعدلين مقومان بـ1/1_000_000، لذا 5000 هو 50 bps و 50000 هو 500 bps.
نقطتا الفرض لـ
fee_rate عبارة عن استدعاءات require! منفصلة في ملفات مختلفة، لذا فإنها تحمل رموز خطأ مختلفة، لكنها تطبق نفس السقف. يمكن تحرير منصة تم إنشاؤها بأي معدل مسموح به لاحقاً، بما في ذلك من خلال متغير AllInfo الشامل الذي يعيد كتابة كل حقل في وقت واحد.
كان حد fee_rate الأصلي 100 bps (10000). تم نقل حد التحديث إلى 25000 (250 bps) في 2026-01-27؛ في 2026-08-26 انتقل كلاهما إلى 50000 (500 bps) — انظر إدخال السجل.
GlobalConfig.max_share_fee_rate لا يحد أي من المعدلين. يحد معامل share_fee_rate لكل معاملة الذي تأخذه تعليمات المبادلة الأربع — رسم الإحالة — وليس شيء آخر. انظر global-config.
سلطات رسم نقل Token-2022
transfer_fee_extension_auth يسمي مفتاح المنصة الذي ينتهي به الحال في الاحتفاظ بسلطات TransferFeeConfig الخاصة بـ mint الأساسي عند إنشاء إطلاق من خلال InitializeWithToken2022 مع رسم نقل مرفق. يحمل الامتداد سلطتين، ويتم تسليمهما في نقاط مختلفة في دورة حياة الإطلاق:
قبل 2026-08-27 تم إنشاء mint مع PDA
authority على كلا السلطتين، وانتقل كلاهما إلى المنصة عند التخرج. البرنامج لا يعرض أي تعليمات سحب محتفظ بها أو حصاد، لذا كانت الرسوم المحتفظ بها أثناء مرحلة منحنى الترابط غير قابلة للوصول حتى تخرج الإطلاق. كتابة جانب السحب عند إنشاء mint يجعلها قابلة للمطالبة من أول تداول — انظر إدخال السجل.
هناك عاقبتان تستحقان التخطيط:
- اضبط الحقل قبل الإطلاق، وليس بعده. إطلاق تم إنشاؤه بينما
transfer_fee_extension_authهوPubkey::default()يضع PDAauthorityعلى جانب السحب. تعيين الحقل لاحقاً لا يزال يعمل — التخرج يجد PDA في مكانه ويسلم السلطة — لكن لا شيء يمكنه سحب الرصيد المحتفظ به في الوقت الفاصل. - تدوير الحقل في منتصف الإطلاق يقسم السلطتين. غير
transfer_fee_extension_authبين إنشاء الإطلاق وتخرجه وسلطة السحب المحتفظ بها في mint تبقى مع المفتاح المكون عند الإنشاء (PDA لم تعد تحتفظ به، لذا تخطي الهجرة هذا التسليم) بينما تذهب سلطة تكوين الرسم إلى المفتاح الجديد. قم بالتدوير بين عمليات الإطلاق، أو خطط للتوفيق بين المفتاحين بنفسك من خلال Token-2022 مباشرة.
Pubkey::default() لحياة الإطلاق كاملة تحتفظ بكلا السلطتين على PDA authority بشكل دائم: لا يمكن تغيير معدل الرسم ولا يمكن سحب الرصيد المحتفظ به. قم فقط بإرفاق رسم نقل بإطلاق إذا كانت المنصة تنوي الاحتفاظ بهذه المفاتيح.
تقسيم هجرة NFT (CPMM فقط)
عندما يتخرج الإطلاق إلى CPMM، تقسم تعليمات الهجرة رموز LP التي تم سكها بواسطةCPMM::InitializeWithPermission بطريقتين:
lp_to_platform غير صفري، يقوم برنامج LP-Lock بلفه إلى NFT مفتاح رسم واحد مملوك لـ platform_nft_wallet. هذا يحل محل السلوك السابق للترقية الذي أنشأ مفاتيح رسم منفصلة للمنصة والمنشئ. تبقى مفاتيح الرسم التي تم إنشاؤها بواسطة الهجرات المكتملة قبل الترقية دون تغيير. هذا الحق في رسم LP منفصل عن رسوم منشئ CPMM التي يتحكم فيها platform_cp_creator.
يتم حرق شريحة الحرق مباشرة، لذا لا يمكن لأي حساب سحبها أو المطالبة برسوم LP التي تمثلها تلك الحصة.
الإطلاقات الموجودة مع migrate_type = 0 المخزنة لا تزال يمكنها استخدام مسار AMM v4 القديم. يرفض الإنشاء الجديد نوع الهجرة هذا.
قواعد معاملات الإطلاق
restrict_curve_param هو المفتاح. عند 0 البرنامج لا يقرأ القواعد على الإطلاق. عند 1، يجب أن يفي كل إطلاق يتم توجيهه عبر هذه المنصة بحساب PlatformCurveRule الخاص بـ GlobalConfig الذي اختاره، ويجب على منشئ الإطلاق إلحاق هذا الحساب بـ remaining_accounts.
(field, op, value) تدعم Eq و Gte و Lte و Neq. يغطي هذا نطاقات القيم والمستويات البديلة وحدود تقييم التخرج وحدود الهجرة والبوابات من نوع الرمز والمجموعات المحدودة بالوقت — النموذج الكامل وجدول الحقول وتسعة كتيبات عملية موجودة في products/launchlab/curve-rules.
شيئان ينتميان هنا بدلاً من تلك الصفحة:
curve_rule_managerهو تفويض، وليس نقل. اضبطه من خلالUpdatePlatformConfig::CurveRuleManagerوهذا المحفظة يمكنها إنشاء وتحديث وإزالة وإغلاق حسابات القواعد الخاصة بهذه المنصة دون مفتاح المسؤول. يحتفظ مسؤول المنصة بنفس القوة بالتوازي، لذا فإن تدوير أو مسح الحقل يستعيد التحكم.Pubkey::default()يعني أن المسؤول فقط يمكنه إدارة القواعد. لا يمكنه تبديلrestrict_curve_param، الذي يبقى استدعاء مسؤول فقط.- يتم فرض القواعد على
GlobalConfig، وليس بدلاً منها. يتم تشغيل فحص القاعدة قبل حدود التكوين الخاصة به ويمكنه فقط تضييقها.
curve_params: Vec<PlatformCurveParam> السابقة، التي يمكنها فقط اختبار المساواة الدقيقة، وتحتفظ بـ 10 إدخالات على الأكثر عبر جميع التكوينات، وتنمو حساب PlatformConfig نفسه. تم ترحيل المنصات التي استخدمتها بواسطة البروتوكول في تمرير لمرة واحدة؛ الحقل القديم وتعليماته الاثنتان و MAX_CURVE_PARAMS اختفت.
PlatformAllowConfig — تقييد منصة
تقرر كل منصة ما إذا كانت تريد تقييد حسابات GlobalConfig التي قد تستخدمها عمليات الإطلاق الخاصة بها. اضبط restrict_global_config مع UpdatePlatformConfig::RestrictGlobalConfig(0 | 1).
[b"platform_allow_config", platform_config, global_config].
ينشئ مسؤول المنصة أو يغلق حساباً واحداً لكل زوج مسموح به عبر CreatePlatformAllowConfig و ClosePlatformAllowConfig. عندما يكون التقييد 1، يبحث الإنشاء في remaining_accounts عن PDA المتوقع ويرفض حساباً مفقوداً مع NotEnoughRemainingAccounts. عندما يكون التقييد 0، لا يلزم حساب السماح.
حساب PlatformGlobalAccess الذي تديره مسؤول البروتوكول السابق وتعليمات الإنشاء/الإغلاق الخاصة به متقاعد. أحجام PlatformConfig و GlobalConfig الموجودة لا تتغير، لكن أجهزة فك التشفير يجب أن تستبدل العلم العام القديم بالعلم الجديد للمنصة. لا يتم استهلاك PDAs الوصول القديمة بواسطة الفحص الجديد.
مسار القراءة
PoolState.platform_config يشير إلى PlatformConfig الأصلي مباشرة — اجلبه مرة واحدة وخزن العلامة التجارية.
مسار التحديث
تدويرات المحفظة (
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config) كلها تمر عبر UpdatePlatformConfig. اقرأ جدول إرسال update_platform_config في المصدر للحصول على رموز param الدقيقة.
الأخطاء الشائعة
restrict_curve_paramمفعل قبل تحديث المنشئ. بينما هو1يجب أن يكون PDA القاعدة فيremaining_accountsعلى كل إطلاق، حتى بالنسبة لتكوين بدون حساب قاعدة — حساب غائب هوNotEnoughRemainingAccounts، وليس تمرير. شحن تغيير المنشئ أولاً، ثم اقلب العلم.restrict_curve_paramمفعل مع قاعدة فارغة. قاعدة تحتفظ بمجموعات صفرية، أو مجموعة تحتفظ بقيود صفرية، تسمح بكل شيء. تفعيل العلم ليس بحد ذاته تقييداً؛ اكتب المجموعات أولاً، تحقق منها مع فحص SDK، وتدرب على التسلسل كله على devnet.- تقريب تقسيم NFT. يجب أن تجمع المقاييس الثلاثة إلى
1_000_000بالضبط. أخطاء قبالة واحد فيCreatePlatformConfigتعود؛ قبالة واحد في وقت التشغيل ستسك أو تحرق وحدة LP إضافية واحدة، وهذا ما يوجد فحص المساواة الصارمة لمنعه. - تخصيص استحقاق منصة مزدوج. إذا كان
platform_vesting_scale > 0، يجب على المنصة استدعاءCreatePlatformVestingAccountمرة واحدة بعد انتهاء جمع أموال الإطلاق؛ إذا نسيت، تبقى تلك الحصة غير مخصصة وخاملة إلى الأبد (ميزانيةtotal_locked_amountالخاصة بالإطلاق يتم استهلاكها لكن المنصة لا تطالب أبداً). - غموض
platform_cp_creator. عند التعيين إلىPubkey::default()، يتم تسجيل منشئ الإطلاق كـpool_creatorلمجموعة CPMM بعد التخرج؛ عند التعيين إلى مفتاح حقيقي، يتم تسجيل هذا المفتاح بدلاً من ذلك. هذا يحدد المستفيد من رسوم منشئ CPMM بعد التخرج ومن يمكنه توقيع مسارCPMM::CollectCreatorFeeالأصلي. مسار الجمع بدون إذن لا يزال يدفع ATAs الموثوقة للمفتاح المسجل. قرر في وقت إنشاء تكوين المنصة أي نموذج تريد. transfer_fee_extension_authتعيين متأخر أو تدوير. يتم قراءة الحقل مرتين لكل إطلاق Token-2022 — مرة عند إنشاء mint لـwithdraw_withheld_authority، مرة عند التخرج لـtransfer_fee_config_authority— لذا فإن قيمة تتغير بين هاتين اللحظتين تترك السلطتين على مفاتيح مختلفة. انظر سلطات رسم نقل Token-2022.- تقييد بدون حساب سماح. تفعيل
restrict_global_configقبل إنشاءPlatformAllowConfigالمطلوب يحجب عمليات الإطلاق الجديدة التي تختار هذا التكوين.
مؤشرات
products/launchlab/global-config— قواعس جانب البروتوكول يجب أن يفي بها الإطلاق.products/launchlab/vesting— ميكانيكاplatform_vesting_scale.products/launchlab/creator-fees— رسوم المنشئ مقابل حقوق مفتاح الرسم للمنصة.products/launchlab/platforms— دليل متكامل منصة.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,is_curve_rule_manager,is_platform_admin.raydium-launch/programs/launchpad/src/states/platform_curve_rule.rs—PlatformCurveRule,CurveRuleGroup,ParamConstraint.raydium-launch/programs/launchpad/src/states/platform_allow_config.rs—PlatformAllowConfig.raydium-launch/programs/launchpad/src/instructions/platform/update_platform_config.rs— إرسالPlatformConfigParamوالمعينات لكل حقل التي تفرض حدود معدل وقت التحديث.raydium-launch/programs/launchpad/src/lib.rs— نقاط دخول تكوين المنصة والسماح بالتكوين.raydium-launch/programs/launchpad/src/instructions/initialize_with_token_2022.rs— حيث يتم كتابةtransfer_fee_extension_authفيTransferFeeConfigالخاص بـ mint الجديد.raydium-launch/programs/launchpad/src/instructions/admin/migrate_to_cpswap.rs— تسليم السلطة في وقت التخرج وحارسهاget_withdraw_withheld_authority.

