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

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

يعكس التقسيم “ExactIn/ExactOut” SwapBaseInput / SwapBaseOutput الخاص بـ CPMM — على السلسلة عبارة عن فاصلات تعليمات منفصلة بتقريب مختلف قليلاً. اختيار مسار التخرج. يتم تسجيل migrate_type على PoolState في وقت Initialize{V2,WithToken2022} ويحدد أي من التعليمات الخريجين يمكن أن يعمل. تهاجر إطلاقات Token-2022 دائماً إلى CPMM. تهاجر إطلاقات SPL Token إلى AMM v4 أو CPMM اعتماداً على إعداد amm_creator_fee_on:
  • BothTokenMigrateToAmm → مجموعة AMM v4 (يمكن جمع رسوم المنشئ من أي جانب؛ AMM v4 ليس لديه حقل رسوم منشئ أصلي، لذا يتم أخذ رسوم المنشئ عبر آلية قفل LP NFT بدلاً من ذلك).
  • QuoteTokenMigrateToCpswap → مجموعة CPMM مع creator_fee_on = OnlyQuoteToken (يستمر المنشئ في كسب الرسوم من مجموعة CPMM من خلال LaunchLab Fee Key NFT — انظر products/launchlab/creator-fees).
ملاحظة حول اسم enum AmmCreatorFeeOn. يسمي المصدر Rust هذا enum AmmCreatorFeeOn مع variants QuoteToken و BothToken. الاسم مضلل: في الممارسة التشغيلية الحالية، لا يتحكم variant فقط في الجانب الذي يتم جمع رسوم المنشئ منه على مجموعة CPMM بعد التخرج — بل يختار أيضاً برنامج الهدف للتخرج (AMM v4 مقابل CPMM) ويقترن مع migrate_type على PoolState الخاص بالإطلاق. تعامل مع الحقل كـ “هدف الهجرة + جانب رسوم المنشئ بعد التخرج” مدمج في واحد. لم يتم إعادة تسمية enum على السلسلة، لكن التفكير فيه كـ MigrationTarget يطابق الواقع بشكل أوثق.

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

تخرج إطلاق إلى مجموعة AMM قابلة للتداول بمجرد أن يصل المنحنى إلى total_quote_fund_raising. المتغيران المقابلان لهدفي التخرج — AMM v4 و CPMM — و يكون واحد منهما فقط صالحاً لأي إطلاق معين، محدد بواسطة pool_state.migrate_type (مضبوط في وقت Initialize). من يوقّع
  • MigrateToAmm — المحفظة migrate_to_amm_wallet المسجلة على GlobalConfig الملزم.
  • MigrateToCpswap — المحفظة migrate_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. قسّم LP الناتج وفقاً لـ PlatformConfig.{platform_scale, creator_scale, burn_scale} الملزم (CPMM فقط) — قطعة واحدة ممنوحة لـ platform_nft_wallet، واحدة لـ creator NFT ملفوفة ببرنامج LP-Lock، واحدة محترقة عبر Burn & Earn. لتخرج AMM v4، يتم حكم تخصيص LP بواسطة معاملات التهيئة الخاصة بـ AMM v4.
  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.

CollectFee

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

CollectMigrateFee

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

ClaimCreatorFee

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

ClaimPlatformFee

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

ClaimPlatformFeeFromVault

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

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

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

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

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

المصادر: