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). يحدّ معدل رسوم حصة المنصة من PlatformConfig الملزم (انظر platform-config). يفرض البرنامج 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) مختلفًا.
  • protocol_fee_owner — مفتاح عام يوقع CollectFee ويطالب برسوم البروتوكول المتراكمة على كل إطلاق مرتبط بهذا التكوين. مخزن على السلسلة؛ يمكن للمسؤول تدويره عبر UpdateConfig.
  • migrate_fee_owner — مفتاح عام يوقع CollectMigrateFee.

محافظ الهجرة

تتطلب محفظتا التخرج المخزنتان موقعين مختلفين:
  • 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) لاختيار PDA GlobalConfig الذي سيتم تحميله.
  • 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.