Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
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 للسلطات الموثوقة.

التخطيط

اشتقاق PDA:
(تحقق من ترتيب البذور الدقيق من الحساب على السلسلة قبل التوقيع — تعليمة 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. كل إطلاق مهيأ حديثًا يستخدم هذا المسار.
عادة ما تُحتفظ بها بواسطة كرنك التخرج الذي تشغله Raydium، لذا يحدث التخرج بعد وقت قصير من وصول المنحنى إلى الحد الأدنى بدلاً من انتظار المنشئ لاستدعاؤه.

قوائم السماح على جانب المنصة

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) لاختيار أي GlobalConfig PDA يتم تحميله.
  • 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 من عميل

لواجهة مستخدم تسرد جميع التكوينات المتاحة، امشِ عبر مساعد SDK getAllGlobalConfigs أو استعلم نقطة نهاية LaunchLab API التي تعكسها؛ عدد الحسابات على السلسلة صغير (أرقام فردية في الممارسة).

مؤشرات

المصادر:
  • raydium-launch/programs/launchpad/src/states/config.rs — هيكل GlobalConfig و initialize.
  • raydium-launch/programs/launchpad/src/lib.rscreate_config، update_config.