Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يعرّض LaunchLab مجموعة تعليمات محكمة: ستة استدعاءات موجهة للمستخدمين بالإضافة إلى عدد قليل من البدائيات الإدارية. يغلّف SDK جميعها؛ تتناول هذه الصفحة السطح الخام للمجمّعات وأدوات المراقبة والبرامج التي تحتاج إلى CPI.

جرد التعليمات

ينعكس الانقسام “ExactIn/ExactOut” في CPMM SwapBaseInput / SwapBaseOutput — على السلسلة يكونان محددات تعليمات منفصلة برقم مختلف قليلاً. اختيار مسار التخرج. يجب أن تعيّن كل استدعاء Initialize و InitializeV2 و InitializeWithToken2022 جديد migrate_type = 1 (CPSWAP). أي محاولة لتهيئة مجموعة جديدة مرتبطة بـ AMM v4 تُرجع MigrateTypeNotMatch. amm_creator_fee_on يختار فقط ما إذا كانت رسوم منشئ CPMM الناتجة تنطبق على رمز الاقتباس أو كلا الرمزين؛ لا يختار برنامج الهدف. يبقى MigrateToAmm قابلاً للاستدعاء لـ PoolState موجود تمت تهيئته بـ migrate_type = 0 قبل هذا التقييد. الإصدار لا يعيد كتابة حالة المجموعة الموجودة أو يزيل التعليمة القديمة.

Initialize

إنشاء إطلاق جديد. الوسائط
الحسابات (مختصرة) الشروط السابقة
  • quote_mint ∈ launch_config.allowed_quote_mints.
  • base_supply_graduation ≤ base_supply_max.
  • معاملات الرسوم تمرّ فحوصات launch_config.max_*_fee_rate.
  • open_time ≥ now − slop (SDK يفرض ≥ now؛ البرنامج يتسامح مع التأخير البسيط).
  • curve_type معروف.
الشروط اللاحقة
  • base_mint له supply = base_supply_max، الكل في base_vault.
  • base_mint.mint_authority = launch_authority، freeze_authority = None.
  • LaunchState مهيأ مع status = Active، base_sold = 0، quote_reserve_real = 0.
  • quote_reserve_target محسوب من معاملات المنحنى + base_supply_graduation + buy_numerator (تقريبًا).
الأخطاء الشائعةInvalidQuoteMint، FeeRateTooHigh، InvalidCurveParams، MathOverflow.

Buy (المتغير الأساسي: BuyExactIn)

يوفر المستخدم quote_in ثابت؛ يحسب المنحنى base_out. الوسائط
الحسابات الشروط السابقة
  • launch_state.status == Active.
  • now ≥ open_time.
  • user_quote_ata.balance ≥ quote_in.
  • quote_in > 0.
التأثير
  1. تقسيم quote_in إلى quote_in_after_fee وأجزاء الرسوم.
  2. حل Newton للمنحنى لـ base_out بناءً على الاقتباس بعد الرسوم.
  3. require(base_out ≥ minimum_base_out) وإلا عكس ExceededSlippage.
  4. نقل quote_in من المستخدم → الخزينة. نقل base_out من الخزينة → المستخدم.
  5. تحديث base_sold += base_out، quote_reserve_real += quote_in_after_fee × (lp_share / total_share).
  6. تحديث عدادات الرسوم (protocol_fees_quote، creator_fees_quote).
  7. state_data.num_buys += 1.
  8. إذا كان quote_reserve_real ≥ quote_reserve_target بعد التحديث، يسلسل SDK عادةً تعليمة Graduate في نفس المعاملة. البرنامج لا يتخرج تلقائيًا داخل Buy — يلزم Graduate لاحق.

BuyExactOut

يحدد المستخدم base_out الدقيق؛ يحسب البرنامج quote_in. الوسائط
نفس الحسابات مثل BuyExactIn. يستخدم التكامل التربيعي الشكل المغلق (أو معكوس CPMM، لـ curve_type 1) بدلاً من تكرار Newton.

Sell / SellExactIn / SellExactOut

مرآة Buy. يعيد المستخدم base_in إلى المنحنى ويتلقى quote_out. يتم خصم الرسوم من quote_out، لذا يتلقى المستخدم أقل من العائدات المتكاملة الخام. الشروط السابقة
  • user_base_ata.balance ≥ base_in.
  • البيع لا يمكن أن يدفع base_sold تحت 0 (زائد مع المحاسبة المتسقة).
  • الإطلاق هو Active.
التأثير — متماثل مع Buy. base_sold ينخفض، quote_reserve_real ينخفض. الرسوم لا تزال تتراكم.

MigrateToAmm / MigrateToCpswap

تخرج إطلاق إلى مجموعة قابلة للتداول بمجرد وصول المنحنى إلى total_quote_fund_raising. الإطلاقات الجديدة هي CPMM فقط. يتم الاحتفاظ بـ MigrateToAmm للمجموعات الموجودة التي يكون migrate_type المخزن فيها 0. من يوقّع
  • MigrateToAmmmigrate_to_amm_wallet المسجل على GlobalConfig الملزم.
  • MigrateToCpswapmigrate_to_cpswap_wallet المسجل على GlobalConfig الملزم.
عادةً ما تحتفظ بهذه المحافظ بواسطة كرنك التخرج الذي تديره Raydium؛ في الممارسة العملية يحدث التخرج ثوانٍ بعد تجاوز الحد الأدنى، بغض النظر عمن أطلق الشراء النهائي. الوسائط يأخذ MigrateToAmm ثلاثة (بشكل أساسي معاملات سوق OpenBook التي يعيد البرنامج توجيهها إلى AMM v4):
MigrateToCpswap لا يأخذ أي شيء. التأثير (مشترك بين الاثنين)
  1. التحقق من pool_state.status == Migrate (أي تم الوصول إلى quote_reserve_target). وإلا عكس مع PoolMigrated (كانت الحالة بالفعل Migrated) أو PoolFunding (لا تزال في التمويل).
  2. التحقق من أن pool_state.migrate_type يطابق التعليمة (0 لـ AMM، 1 لـ CPMM). وإلا عكس مع MigrateTypeNotMatch.
  3. حساب الاحتياطيات بعد التخرج:
    • base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
    • quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
  4. CPI إلى برنامج الهدف (AMM v4 Initialize2 أو CPMM InitializeWithPermission) مع تلك الاحتياطيات لإنشاء مجموعة ما بعد التخرج.
  5. لهجرات CPMM المنفذة بعد ترقية 2026-08-17، دمج platform_scale + creator_scale في حصة LP مقفلة مملوكة للمنصة واحدة وضرب على الأكثر مفتاح رسوم NFT واحد إلى platform_nft_wallet. حرق بقية burn_scale. قبل الترقية، كان creator_scale مقفلاً بشكل منفصل وذهب مفتاح الرسوم الخاص به إلى منشئ الرمز. الهجرات التاريخية المكتملة لم تُعدّل. لتخرج AMM v4 القديم، يتبع توزيع LP تدفق التعليمة الموجود.
  6. إلغاء base_mint.mint_authority (تعيين إلى None).
  7. قلب pool_state.status = Migrated، تعيين vesting_schedule.start_time = block_time + cliff_period.
الشروط اللاحقةBuyExactIn، BuyExactOut، SellExactIn، SellExactOut سترفض من هذه النقطة فصاعدًا مع PoolMigrated. مجموعة AMM الناتجة أساسية وتتداول مثل أي مجموعة AMM v4 / CPMM أخرى. الأخطاء الشائعةPoolFunding، PoolMigrated، MigrateTypeNotMatch، InvalidCpSwapConfig، MathOverflow.

حسابات CPMM المتبقية للهجرة

يجب على العملاء الذين يبنون MigrateToCpswap استخدام مؤشرات remaining_accounts الثابتة هذه: تتطلب التعليمة عشرة حسابات متبقية على الأقل على المسار المحدث. حسابات دعم النعناع هي مدخلات CPI للقراءة فقط. اشتق كلا العنوانين حتى عندما لا يكون للنعناع سجل دعم مهيأ. يجب تحديث المنشئين الأقدم الذين لا يزالون يضيفون حسابات قفل المنشئ أو يحذفون المؤشرات 8–9.

قائمة السماح GlobalConfig للمنصة

PlatformConfig.restrict_global_config يتحكم في الفحص:
  • 0: تقبل المنصة أي GlobalConfig صحيح بخلاف ذلك؛ لا يلزم حساب السماح.
  • 1: يجب أن تتضمن Initialize و InitializeV2 و InitializeWithToken2022 PlatformAllowConfig المطابق في أي مكان في remaining_accounts.
ينشئ مسؤول المنصة أو يغلق PDA باستخدام CreatePlatformAllowConfig و ClosePlatformAllowConfig. بذوره هي [b"platform_allow_config", platform_config, global_config]. تعليمات PlatformGlobalAccess المدارة من قبل المسؤول السابق و PDA متقاعدة.

CollectFee

تجميع المسؤول لرسوم التداول المتراكمة للبروتوكول على إطلاق واحد. الوسائط — لا شيء. الحسابات التأثير — نقل pool_state.quote_protocol_fee من quote_vault إلى recipient_token_account، ثم تصفير العداد. قابل للاستدعاء في أي وقت بعد الشراء الأول.

CollectMigrateFee

تجميع المسؤول لرسوم الهجرة المتراكمة عند التخرج. نفس شكل الحساب مثل CollectFee مع migrate_fee_owner كموقّع (بدلاً من protocol_fee_owner) و pool_state.migrate_fee كعداد مستنزف.

ClaimCreatorFee

تجميع لكل منشئ لرسوم المنشئ المتراكمة عبر كل إطلاق يملكه المنشئ الذي يستخدم نفس رمز الاقتباس. يستنزف خزينة رسوم لكل منشئ، وليس خزينة لكل مجموعة. الوسائط — لا شيء. الحسابات التأثير — نقل الرصيد الكامل لـ creator_fee_vault إلى recipient_token_account. يعكس مع فحص require-greater-than-zero إذا كانت الخزينة فارغة.

ClaimPlatformFee

تجميع لكل منصة يستنزف خزينة الاقتباس للإطلاق مباشرة. استخدم هذا عندما تريد منصة المطالبة بحصتها لإطلاق واحد محدد دون المرور عبر خزينة المنصة المجمعة. الوسائط — لا شيء. الحسابات التأثير — نقل pool_state.platform_fee من quote_vault إلى recipient_token_account، تصفير العداد.

ClaimPlatformFeeFromVault

تجميع مجمع لكل منصة. يستنزف خزينة رسوم المنصة لكل رمز اقتباس التي تتراكم الرسوم من كل إطلاق موجه عبر المنصة. الوسائط — لا شيء. الحسابات التأثير — نقل الرصيد الكامل لـ platform_fee_vault إلى recipient_token_account. يعكس إذا كانت الخزينة فارغة.

تعليمات الاستحقاق وإعدادات المنصة

يتم توثيقها على صفحات مخصصة لأن كل واحدة لها نموذج حالة خاص بها:

مصفوفة تغيير الحالة

أين تذهب بعد ذلك

المصادر: