هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
GlobalConfig هو حساب التكوين على مستوى البروتوكول. يمكن أن يكون هناك عدة منها — مفهرسة حسب (curve_type, index) — وكل إطلاق يختار واحدًا بالضبط في وقت Initialize. تصبح القيم على GlobalConfig المختار حدودًا صارمة لمعاملات ذلك الإطلاق. للتخصيص على مستوى المنصة (معدل الرسوم لكل منصة، أشكال المنحنيات المسموحة، تقسيمات NFT عند التخرج)، انظر products/launchlab/platform-config.ما هو
GlobalConfig هو حساب PDA فريد لكل (curve_type, index) يحدد قواعد جانب البروتوكول التي يجب على كل إطلاق الامتثال لها:
- نوع منحنى الربط المسموح به (
curve_type). - معدل رسوم التداول الذي يفرضه المنحنى على كل عملية شراء وبيع.
- رسوم الهجرة المفروضة عند التخرج.
- حدود دنيا على العرض ومعدل القفل ومعدل البيع ومعدل الهجرة.
- عملة الاقتباس (عادة SOL المغلفة أو USDC) — الأصل الذي يشتري به المستخدمون.
- أربع محافظ على جانب البروتوكول: مالك رسوم البروتوكول، مالك رسوم الهجرة، ومحفظتا التحكم في الهجرة المحتفظ بهما لتخرج CPMM و AMM v4 القديم.
GlobalConfig بواسطة مسؤول برنامج LaunchLab أو سلطة إنشاء التكوين المفوضة. فقط المسؤول يحدّث التكوينات الموجودة. انظر reference/program-addresses للسلطات الموثوقة.
التخطيط
create_config للبرنامج هي مصدر الحقيقة.)
دلالات الحقول
curve_type و index
معًا يفهرسان GlobalConfig بشكل فريد. يوجد GlobalConfig واحد لكل زوج (curve_type, index):
curve_type = 0— منحنى الاحتياطي الافتراضي ذو المنتج الثابت. الافتراضي والأكثر استخدامًا.curve_type = 1— منحنى السعر الثابت.curve_type = 2— منحنى السعر الخطي.
index هو u16 يسمح للمسؤول بنشر عدة تكوينات لكل نوع منحنى (على سبيل المثال، واحد برسوم أضيق، وآخر برفع حد أدنى أعلى للاقتباس). في Initialize يوفر الإطلاق زوج (curve_type, index) والبرنامج يحمل GlobalConfig المطابق.
الرسوم
trade_fee_rate— معبّر عنه بـ1/1_000_000من حجم التداول. يُطبّق على كل عملية شراء وبيع على المنحنى. يطالبprotocol_fee_ownerبحصته عبرCollectFee.migrate_fee— رسم ثابت بالـ lamports (أو وحدات الاقتباس، حسب التكوين) يُفرض مرة واحدة عند التخرج. يطالب بهmigrate_fee_ownerعبرCollectMigrateFee.max_share_fee_rate— مهيأ إلى10_000(100 bps). يحدّ من معاملshare_fee_rateالذي تقبلهBuyExactInوBuyExactOutوSellExactInوSellExactOut— رسم الإحالة المدفوع مباشرة لمستقبل المشاركة أثناء التداول. لا يحدّ منPlatformConfig.fee_rate؛ لهذا المعدل حدوده الخاصة، موصوفة فيplatform-config. كل منCreateConfigوUpdateConfigيفرضانtrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
حدود العرض والمعدل
تحدّ هذه الحدود من معاملات شكل المنحنى التي يمكن لإطلاق اختيارها فيInitialize. إذا انتهكت CurveParams للمنشئ أيًا منها، يعود Initialize مع InvalidInput.
min_base_supply— الحد الأدنىsupply(بدون عشريات) الذي يمكن للمنحنى أن يعلنه. الافتراضي10_000_000.max_lock_rate— معبّر عنه بـ1/1_000_000؛ الافتراضي300_000(30%). يحدّ الاستحقاق عبرtotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— معبّر عنه بـ1/1_000_000؛ الافتراضي200_000(20%). يحدّbase_supply_graduation / supplyمن الأسفل.min_base_migrate_rate— معبّر عنه بـ1/1_000_000؛ الافتراضي200_000(20%). يحدّ عدد الرموز المتبقية لتمويل مجموعة ما بعد التخرج.min_quote_fund_raising— الحد الأدنىquote_reserve_targetالذي قد يعلنه إطلاق (مع عشريات). الافتراضي30_000_000_000وحدة من عملة الاقتباس.
عملة الاقتباس ومحافظ البروتوكول
quote_mint— الأصل الذي يشتري به المستخدمون. تستخدم معظم الإطلاقات SOL المغلفة (So111…112) أو USDC (EPjF…Dt1v).GlobalConfigواحد مرتبط بعملة اقتباس واحدة؛ الإطلاقات التي تحتاج هدفًا مختلفًا تستهدف(curve_type, index)مختلفًا. قد تكون العملة مملوكة لبرنامج SPL Token أو Token-2022 — انظر أدناه.protocol_fee_owner— مفتاح عام يوقّعCollectFeeويطالب برسوم البروتوكول المتراكمة على كل إطلاق مرتبط بهذا التكوين. مخزّن على السلسلة؛ يمكن للمسؤول تدويره عبرUpdateConfig.migrate_fee_owner— مفتاح عام يوقّعCollectMigrateFee.
عملات اقتباس Token-2022
CreateConfig يقبل quote_mint من Token-2022، والمجموعات المرتبطة بهذا التكوين تحملها من البداية إلى النهاية: خزان الاقتباس، كلا خزاني الرسوم، وحساب الرموز لمستقبل رسم المشاركة يتم إنشاؤها جميعًا على Token-2022، وتعليمات المبادلة تحسب TransferFeeConfig على جانب الاقتباس. بت PoolState.token_program_flag bit1 يسجل الاختيار لكل إطلاق.
هناك قيدان يستحقان المعرفة قبل الاعتماد على أحدهما:
- لا يمكن لـ
Initializeالمهجور إطلاق ضده. فقطInitializeV2وInitializeWithToken2022يقبلان برنامج اقتباس Token-2022. انظرinstructions. - لا يتم تطبيق قائمة السماح للامتدادات. بخلاف CPMM و CLMM، لا يفحص LaunchLab امتدادات عملة الاقتباس —
CreateConfigيأخذ العملة كما هي، لذا البوابة الوحيدة هي تقدير المسؤول حول أي عملات تُرتبط بتكوين. فحصNoSupportExtensionللبرنامج يغطي فقط عملات Token-2022 الأساسية التي ينشئها LaunchLab بنفسه. تعامل مع ربط واحدة كإجراء عالي الثقة؛ انظرreference/token-2022-support.
محافظ الهجرة
محفظتا التخرج المخزنتان تتطلبان موقّعين مختلفين:migrate_to_amm_wallet— توقّعMigrateToAmmلإطلاق قديم موجود يخزّنmigrate_type = 0.migrate_to_cpswap_wallet— توقّعMigrateToCpswap. كل إطلاق مهيأ حديثًا يستخدم هذا المسار.
قوائم السماح على جانب المنصة
GlobalConfig لم يعد يحتوي على requires_platform_auth. بايته السابق هو حشو، لذا حجم الحساب لا يتغير. يتم التحكم في الوصول الآن بواسطة PlatformConfig.restrict_global_config وحسابات PlatformAllowConfig التي ينشئها مسؤول تلك المنصة. انظر platform-config.
الافتراضيات عند التهيئة
عند استدعاءCreateConfig، يزرع البرنامج العديد من الحقول بقيم افتراضية مشفرة:
curve_type و index و migrate_fee و trade_fee_rate و quote_mint والمفاتيح العامة الأربعة للمحافظ بشكل صريح في وقت الإنشاء؛ يمكن ضبط القيم اللاحقة عبر UpdateConfig.
كيف يختار إطلاق GlobalConfig
في Initialize، يمرر المنشئ:
(curve_type, index)لاختيار أيGlobalConfigPDA يتم تحميله.CurveParamsيصف شكل المنحنى (supply،total_base_sell،total_quote_fund_raising،migrate_type).VestingParamsيصف العرض المقفول.MintParamsللعملة الأساسية.
curve_typeيطابقglobal_config.curve_type.supply >= global_config.min_base_supply.total_locked_amount <= supply * max_lock_rate / 1_000_000.total_base_sell >= supply * min_base_sell_rate / 1_000_000.(supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000— أي، رموز كافية متبقية لتمويل مجموعة ما بعد التخرج.total_quote_fund_raising >= min_quote_fund_raising.migrate_type == 1(CPSWAP).- إذا كانت المنصة المختارة لديها
restrict_global_config == 1، يتم تضمينPlatformAllowConfigالمطابق.
Initialize، يخزّن PoolState للإطلاق مفتاح global_config العام مباشرة، لذا الربط دائم.
مسار التحديث
UpdateConfig مقتصر على المسؤول ويأخذ زوج (param: u8, value: u64). كل قيمة param تختار أي حقل يتم تغييره:
تدويرات المحافظ (
protocol_fee_owner، migrate_fee_owner، migrate_to_amm_wallet، migrate_to_cpswap_wallet) تأخذ شكل معامل Pubkey منفصل؛ تحقق من مصدر update_config لجدول الإرسال الدقيق قبل تكوين معاملة المسؤول.
محدد UpdateConfig السابق 12 لتفويض المنصة تم حذفه. يدير مسؤولو المنصة الآن قوائم السماح الخاصة بهم.
قراءة GlobalConfig من عميل
getAllGlobalConfigs أو استعلم نقطة نهاية LaunchLab API التي تعكسها؛ عدد الحسابات على السلسلة صغير (أرقام فردية في الممارسة).
مؤشرات
products/launchlab/platform-config— طبقة تراكب لكل منصة تحدّ شكل المنحنى بشكل أكبر.products/launchlab/accounts— الرسم البياني الكامل للحسابات لإطلاق.products/launchlab/instructions— تعليماتInitializeوالتحديث.reference/program-addresses— مفتاح المسؤول، معرف البرنامج، السلطات المشتركة.
raydium-launch/programs/launchpad/src/states/config.rs— هيكلGlobalConfigوinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config،update_config.

