Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
PlatformConfig هو تراكب على مستوى المنصة يقع فوق GlobalConfig. بينما يحدد GlobalConfig القواعد على مستوى البروتوكول (“رسم التداول 1%، يجب أن يكون الإمداد 10 مليون على الأقل، فقط هذا المحفظة يمكنها التخرج”)، PlatformConfig هو ما تستخدمه كل منصة إطلاق — pump.fun، واجهة Raydium الخاصة، منصات الإطلاق من جهات خارجية — لإضافة رسومها، والمطالبة بحصتها من LP بعد التخرج، وتقييد أشكال المنحنيات التي يمكن لعمليات الإطلاق الخاصة بها أن تختارها، وعرض علامتها التجارية (الاسم والموقع والصورة) على السلسلة.

ما هو

حساب PlatformConfig يمتلك خمس مخاوف متقاطعة لمنصة:
  1. العلامة التجارية — الاسم والموقع ورابط الصورة، كلها مخزنة بشكل مضمن بحيث يمكن لأي مستكشف أو معالج بيانات عرض المنصة التي أطلقت الرمز.
  2. رسم المنصة — رسم تداول إضافي (fee_rate) بالإضافة إلى trade_fee_rate الخاص بالبروتوكول. يتراكم في platform_fee_wallet الخاص بالمنصة. محدود بـ 100 bps بواسطة GlobalConfig.max_share_fee_rate.
  3. تقسيم هجرة LP — ثلاثة أعداد مخزنة (platform_scale, creator_scale, burn_scale) تجمع إلى 1_000_000. قبل ترقية 2026-08-17، كان مقياس المنشئ ينتج مفتاح رسم منشئ منفصل. الهجرات المنفذة بعد الترقية تجمع الاثنين الأولين في حصة LP مقفلة واحدة مملوكة للمنصة؛ الباقي يتم حرقه.
  4. قائمة بيضاء لمعاملات المنحنىVec<PlatformCurveParam> يسرد بالضبط أي مجموعات (supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...) مسموحة على هذه المنصة. إذا كان المتجه فارغًا أو جميع الإدخالات غير صالحة، أي مجموعة مسموحة؛ وإلا يجب أن تطابق عمليات الإطلاق أحد الإدخالات بالضبط.
  5. قائمة بيضاء للتكوين العام — تقييد اختياري يتطلب PlatformAllowConfig التي أنشأتها المنصة للـ GlobalConfig المختار.
اشتقاق PDA:
(انظر create_platform_config في المصدر للحصول على قائمة البذور الموثوقة.)

التخطيط

يجب أن يساوي 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 يتراكم في خزينة لكل منشئ مفتاح بواسطة pubkey المنشئ + quote mint (يتم المطالبة به عبر ClaimCreatorFee).
creator_fee_rate محدود بـ MAX_CREATOR_FEE_RATE = 5000 (50 bps). fee_rate (رسم المنصة) محدود بـ 10000 (100 bps) بواسطة GlobalConfig.max_share_fee_rate.

تقسيم هجرة 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 القديم. يرفض التهيئة الجديدة نوع الهجرة هذا.

قائمة بيضاء لمعاملات المنحنى

curve_params: Vec<PlatformCurveParam> هي آلية المنصة لتقييد أشكال المنحنيات التي يمكن لعمليات الإطلاق الخاصة بها أن تختارها. إذا كان المتجه غير فارغ وكان هناك إدخال واحد على الأقل صالحًا، يفرض البرنامج عند Initialize أن معاملات الإطلاق تطابق إدخالًا واحدًا على الأقل بالضبط.
كل حقل له قيمة حارسة تعني wildcard (أي قيمة تطابق): u64::MAX للحقول u64، u8::MAX للحقول u8، 0 لحقول الإمداد / البيع / جمع التمويل. BondingCurveParam مع جميع الحراس هو “السماح بأي شيء” — مكافئ لسلوك القائمة البيضاء الفارغة. خوارزمية المطابقة عند Initialize:
  1. تصفية curve_params للإدخالات التي يطابق global_config الخاص بها GlobalConfig المختار للإطلاق.
  2. إذا كانت القائمة المصفاة فارغة، السماح بأي معاملات (لم تقم المنصة بإدراج أي شيء في القائمة البيضاء لهذا GlobalConfig).
  3. إذا كان كل إدخال في القائمة المصفاة يحتوي على all_is_invalid() (كل حقل هو wildcard)، السماح بأي معاملات.
  4. وإلا كرر الإدخالات؛ لكل إدخال، تحقق من معاملات الإطلاق مقابل كل حقل غير wildcard. إذا طابقت جميع الحقول غير wildcard، اقبل وعد.
  5. إذا لم يطابق أي إدخال، عد مع InvalidInput.
هذا يسمح لمنصة بالقول “نحن نسمح فقط بشكل الإمداد القياسي 1B / 800M-sold / 30k-USDC-raise / no-vesting” بكتابة إدخال واحد بقيم ملموسة لتلك الحقول الأربعة و wildcards في كل مكان آخر. أو قد تحدد منصة أكثر صرامة ثلاثة أو أربعة أشكال منفصلة، واحد لكل مستوى إطلاق مدعوم. MAX_CURVE_PARAMS = 10 يحد من حجم القائمة البيضاء.

PlatformAllowConfig — تقييد منصة

تقرر كل منصة ما إذا كانت ستقيد أي حسابات GlobalConfig قد تستخدمها عمليات الإطلاق الخاصة بها. اضبط restrict_global_config مع UpdatePlatformConfig::RestrictGlobalConfig(0 | 1).
بذور PDA: [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 الدقيقة.

الأخطاء الشائعة

  • حراس القائمة البيضاء غير محددة بشكل صحيح. BondingCurveParam مع total_locked_amount = 0 ليس wildcard — يطابق عمليات الإطلاق التي تختار بشكل صريح عدم استخدام التوزيع المؤقت. wildcard لهذا الحقل هو u64::MAX. نفس الفخ موجود لـ cliff_period و unlock_period. استخدم clear() (الذي يعرضه البرنامج) لتعيين الحراس بشكل صحيح.
  • تقريب تقسيم 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 الموثوقة للمفتاح المسجل. قرر في وقت إنشاء تكوين المنصة أي نموذج تريد.
  • التقييد بدون حساب سماح. تفعيل restrict_global_config قبل إنشاء PlatformAllowConfig المطلوب يحجب عمليات الإطلاق الجديدة التي تختار هذا التكوين.

المؤشرات

المصادر:
  • raydium-launch/programs/launchpad/src/states/platform_config.rsPlatformConfig, PlatformParams, MigrateNftInfo, PlatformCurveParam, BondingCurveParam, is_valid_curve_param.
  • raydium-launch/programs/launchpad/src/states/platform_allow_config.rsPlatformAllowConfig.
  • raydium-launch/programs/launchpad/src/lib.rs — نقاط دخول تكوين المنصة وتكوين السماح.