Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
يكشف LaunchLab عن مجموعة تعليمات مشدودة: ستة استدعاءات موجهة للمستخدم بالإضافة إلى عدد قليل من البدائيات الإدارية. يغلف SDK جميعها؛ توثق هذه الصفحة السطح الخام للمُجمِّعات وأدوات المراقبة والبرامج التي تحتاج إلى CPI.
جرد التعليمات
| المجموعة | التعليمة | يمكن استدعاؤها من قبل |
|---|
| الإعدادات العامة | CreateConfig / UpdateConfig | المسؤول |
| دورة حياة الإطلاق | Initialize / InitializeV2 | أي شخص (المنشئ) — إطلاقات SPL Token؛ V2 يسجل amm_creator_fee_on للتخرج CPMM النهائي |
| دورة حياة الإطلاق | InitializeWithToken2022 | أي شخص (المنشئ) — إطلاق Token-2022، TransferFeeConfig اختياري |
| التداول | BuyExactIn / BuyExactOut | أي شخص — شراء الإدخال الدقيق / الإخراج الدقيق على منحنى الربط |
| التداول | SellExactIn / SellExactOut | أي شخص — بيع الإدخال الدقيق / الإخراج الدقيق على منحنى الربط |
| التخرج | MigrateToAmm | محفظة الهجرة (مضبوطة على GlobalConfig) — التخرج إلى AMM v4. يُستخدم عندما amm_creator_fee_on = BothToken بحيث يمكن جمع رسوم المنشئ على أي جانب. |
| التخرج | MigrateToCpswap | محفظة الهجرة — التخرج إلى CPMM. يُستخدم عندما amm_creator_fee_on = QuoteToken وضروري لإطلاقات Token-2022. يغلف InitializeWithPermission على CPMM. |
| الرسوم | CollectFee | المسؤول — مسح رسوم البروتوكول المتراكمة من إطلاق |
| الرسوم | CollectMigrateFee | المسؤول — مسح رسوم الهجرة المتراكمة |
| الرسوم | ClaimCreatorFee | المنشئ — المطالبة برسوم المنشئ المتراكمة أثناء مرحلة المنحنى |
| الاستحقاق | CreateVestingAccount | المنشئ — تخصيص الرموز المقفولة لمستفيد، غير مقفول بعد التخرج |
| الاستحقاق | CreatePlatformVestingAccount | مسؤول منصة — تخصيص الرموز المقفولة لمستفيدي جانب المنصة |
| الاستحقاق | ClaimVestedToken | المستفيد — المطالبة برموز غير مقفولة بعد الجرف |
| إعدادات المنصة | CreatePlatformConfig / UpdatePlatformConfig | مسؤول منصة |
| إعدادات المنصة | UpdatePlatformCurveParam / RemovePlatformCurveParam | مسؤول منصة — إدارة قائمة أشكال المنحنى المسموحة لكل منصة |
| رسوم المنصة | ClaimPlatformFee / ClaimPlatformFeeFromVault | مسؤول منصة |
| وصول المنصة | CreatePlatformGlobalAccess / ClosePlatformGlobalAccess | المسؤول — بوابة المنصات التي قد تستخدم GlobalConfig معين |
يعكس التقسيم “ExactIn/ExactOut” SwapBaseInput / SwapBaseOutput الخاص بـ CPMM — على السلسلة عبارة عن فاصلات تعليمات منفصلة بتقريب مختلف قليلاً.
اختيار مسار التخرج. يتم تسجيل migrate_type على PoolState في وقت Initialize{V2,WithToken2022} ويحدد أي من التعليمات الخريجين يمكن أن يعمل. تهاجر إطلاقات Token-2022 دائماً إلى CPMM. تهاجر إطلاقات SPL Token إلى AMM v4 أو CPMM اعتماداً على إعداد amm_creator_fee_on:
BothToken → MigrateToAmm → مجموعة AMM v4 (يمكن جمع رسوم المنشئ من أي جانب؛ AMM v4 ليس لديه حقل رسوم منشئ أصلي، لذا يتم أخذ رسوم المنشئ عبر آلية قفل LP NFT بدلاً من ذلك).
QuoteToken → MigrateToCpswap → مجموعة 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
إنشاء إطلاق جديد.
الحجج
launch_params: {
curve_type: u8,
base_supply_max: u64,
base_supply_graduation: u64,
k: u128, // or initial_virtual_quote_reserve for curve_type=1
open_time: u64,
quote_mint: Pubkey,
base_token_metadata: { // inline name/symbol/uri; program CPIs to Metaplex
name: String,
symbol: String,
uri: String,
},
fees: {
buy_numerator: u64,
buy_denominator: u64,
sell_numerator: u64,
sell_denominator: u64,
lp_share: u64,
creator_share: u64,
protocol_share: u64,
total_share: u64,
},
post_graduation_lp_policy: u8, // 0 = Burn, 1 = Lock, 2 = ToCreator
}
الحسابات (مختصرة)
| # | الاسم | W | S | الملاحظات |
|---|
| 1 | creator | W | S | يدفع الإيجار + إنشاء mint الأساس. |
| 2 | launch_config | | | ربط إعدادات البروتوكول. |
| 3 | launch_state | W | | حساب جديد. |
| 4 | launch_authority | | | PDA. |
| 5 | base_mint | W | S | Keypair جديد (أو PDA) — تقوم هذه التعليمة بتهيئته. |
| 6 | base_vault | W | | ATA من launch_authority على base_mint. |
| 7 | quote_mint | | | |
| 8 | quote_vault | W | | ATA من launch_authority على quote_mint. |
| 9 | metadata | W | | Metaplex metadata PDA. |
| 10 | metaplex_program | | | |
| 11 | token_program | | | SPL Token فقط. |
| 12 | system_program | | | |
| 13 | rent | | | |
الشروط السابقة
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.
الحجج
quote_in: u64
minimum_base_out: u64
الحسابات
| # | الاسم | W | S |
|---|
| 1 | user | W | S |
| 2 | launch_state | W | |
| 3 | launch_authority | | |
| 4 | base_vault | W | |
| 5 | quote_vault | W | |
| 6 | user_base_ata | W | |
| 7 | user_quote_ata | W | |
| 8 | base_mint | | |
| 9 | quote_mint | | |
| 10 | token_program | | |
| 11 | associated_token_program | | |
| 12 | system_program | | |
الشروط السابقة
launch_state.status == Active.
now ≥ open_time.
user_quote_ata.balance ≥ quote_in.
quote_in > 0.
التأثير
- قسّم
quote_in إلى quote_in_after_fee وأجزاء الرسوم.
- حل منحنى Newton للحصول على
base_out من الحصة بعد الرسم.
require(base_out ≥ minimum_base_out) وإلا رجوع ExceededSlippage.
- انقل
quote_in من المستخدم → الخزان. انقل base_out من الخزان → المستخدم.
- تحديث
base_sold += base_out، quote_reserve_real += quote_in_after_fee × (lp_share / total_share).
- تحديث عدادات الرسوم (
protocol_fees_quote، creator_fees_quote).
state_data.num_buys += 1.
- إذا كان
quote_reserve_real ≥ quote_reserve_target بعد التحديث، فإن SDK عادةً يسلسل تعليمة Graduate في نفس المعاملة. لا يقوم البرنامج بالتخرج التلقائي داخل Buy — يلزم استدعاء Graduate لاحقاً.
BuyExactOut
يحدد المستخدم الدقيق base_out؛ يحسب البرنامج quote_in.
الحجج
base_out: u64
maximum_quote_in: u64
نفس الحسابات مثل 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):
base_lot_size: u64
quote_lot_size: u64
market_vault_signer_nonce: u8
MigrateToCpswap لا يأخذ أي شيء.
التأثير (مشترك بين الاثنين)
- تحقق من
pool_state.status == Migrate (أي، تم الوصول إلى quote_reserve_target). وإلا عاد برجوع PoolMigrated (كانت الحالة بالفعل Migrated) أو PoolFunding (لا يزال في مرحلة التمويل).
- تحقق من أن
pool_state.migrate_type يطابق التعليمة (0 لـ AMM، 1 لـ CPMM). وإلا عاد برجوع MigrateTypeNotMatch.
- حساب احتياطيات ما بعد التخرج:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI في برنامج الهدف (
AMM v4 Initialize2 أو CPMM InitializeWithPermission) بهذه الاحتياطيات لإنشاء مجموعة ما بعد التخرج.
- قسّم LP الناتج وفقاً لـ
PlatformConfig.{platform_scale, creator_scale, burn_scale} الملزم (CPMM فقط) — قطعة واحدة ممنوحة لـ platform_nft_wallet، واحدة لـ creator NFT ملفوفة ببرنامج LP-Lock، واحدة محترقة عبر Burn & Earn. لتخرج AMM v4، يتم حكم تخصيص LP بواسطة معاملات التهيئة الخاصة بـ AMM v4.
- استدعاء
base_mint.mint_authority (تعيين إلى None).
- اقلب
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
مسح إداري لرسوم البروتوكول المتراكمة للتجارة على إطلاق واحد.
الحجج — لا شيء.
الحسابات
| # | الاسم | W | S | الملاحظات |
|---|
| 1 | protocol_fee_owner | | S | يجب أن يساوي global_config.protocol_fee_owner. |
| 2 | authority | | | PDA [b"vault_auth_seed"]؛ يوقع نقل الخزان. |
| 3 | pool_state | W | | تم الطفرة لتصفير quote_protocol_fee. |
| 4 | global_config | | | مصدر الحقيقة للموقع. |
| 5 | quote_vault | W | | تُستنزف بواسطة quote_protocol_fee. |
| 6 | recipient_token_account | W | | ATA من protocol_fee_owner على quote_mint. |
| 7 | quote_mint | | | |
| 8 | token_program | | | SPL Token (quote mint هو دائماً SPL Token). |
التأثير — نقل 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. يصرف خزان رسوم المنشئ، لا الخزان لكل مجموعة.
الحجج — لا شيء.
الحسابات
| # | الاسم | W | S | الملاحظات |
|---|
| 1 | creator | W | S | منشئ المجموعة. |
| 2 | fee_vault_authority | | | PDA [b"creator_fee_vault_auth_seed"]. |
| 3 | creator_fee_vault | W | | PDA في البذور [creator, quote_mint]؛ الخزان الموحد للمنشئ. |
| 4 | recipient_token_account | W | | init_if_needed؛ ATA من creator على quote_mint. |
| 5 | quote_mint | | | |
| 6 | token_program | | | |
| 7 | system_program | | | لإنشاء ATA إذا لزم الأمر. |
| 8 | associated_token_program | | | |
التأثير — نقل رصيد creator_fee_vault بالكامل إلى recipient_token_account. يعود برجوع مع فحص require-greater-than-zero إذا كان الخزان فارغاً.
مسح لكل منصة يصرف خزان quote للإطلاق مباشرة. استخدم هذا عندما تريد منصة المطالبة بحصتها لإطلاق محدد واحد دون المرور عبر خزان المنصة الموحد.
الحجج — لا شيء.
الحسابات
| # | الاسم | W | S | الملاحظات |
|---|
| 1 | platform_fee_wallet | W | S | يجب أن يساوي platform_config.platform_fee_wallet. |
| 2 | authority | | | PDA [b"vault_auth_seed"]. |
| 3 | pool_state | W | | مستنزف بواسطة pool_state.platform_fee. |
| 4 | platform_config | | | مصدر الحقيقة للموقع. |
| 5 | quote_vault | W | | مستنزف. |
| 6 | recipient_token_account | W | | init_if_needed؛ ATA من platform_fee_wallet. |
| 7 | quote_mint | | | |
| 8 | token_program | | | |
| 9 | system_program | | | |
| 10 | associated_token_program | | | |
التأثير — نقل pool_state.platform_fee من quote_vault إلى recipient_token_account، تصفير العداد.
مسح موحد لكل منصة. يصرف خزان رسوم المنصة لكل quote-mint الذي يتراكم الرسوم من كل إطلاق موجه عبر المنصة.
الحجج — لا شيء.
الحسابات
| # | الاسم | W | S | الملاحظات |
|---|
| 1 | platform_fee_wallet | W | S | يجب أن يساوي platform_config.platform_fee_wallet. |
| 2 | fee_vault_authority | | | PDA [b"platform_fee_vault_auth_seed"]. |
| 3 | platform_config | | | |
| 4 | platform_fee_vault | W | | PDA في البذور [platform_config, quote_mint]. |
| 5 | recipient_token_account | W | | init_if_needed؛ ATA من platform_fee_wallet. |
| 6 | quote_mint | | | |
| 7 | token_program | | | |
| 8 | system_program | | | |
| 9 | associated_token_program | | | |
التأثير — نقل الرصيد الكامل لـ platform_fee_vault إلى recipient_token_account. يعود برجوع إذا كان الخزان فارغاً.
تعليمات الاستحقاق وإعدادات المنصة
تم توثيق هذه على صفحات مخصصة لأن لكل واحدة نموذج حالة خاص بها:
مصفوفة تغيير الحالة
| التعليمة | status | real_base | real_quote | عدادات الرسوم | مجموعة ما بعد الحالة |
|---|
Initialize{V2,WithToken2022} | Funding | 0 | 0 | 0 | — |
BuyExactIn(q_in) | Funding | +∆ | +∆q_after_fee | quote_protocol_fee += ∆، platform_fee += ∆ | — |
SellExactIn(b_in) | Funding | −∆ | −∆q_before_fee | (نفس الشيء) | — |
| تم الوصول إلى الحد الأدنى | → Migrate | — | — | — | — |
MigrateToAmm / MigrateToCpswap | → Migrated | (مجمد) | (مجمد) | تم تعيين migrate_fee | تم الإنشاء، تم تقسيم LP وفقاً لـ PlatformConfig |
CollectFee / CollectMigrateFee | أي | — | — | تم تصفير العداد | — |
ClaimCreatorFee / ClaimPlatformFee* | أي | — | — | يصرف الخزان | — |
CreateVestingAccount | Funding | — | — | — | يرفع allocated_share_amount |
ClaimVestedToken | Migrated | — | — | — | يصرف base_vault |
إلى أين تذهب بعد ذلك
المصادر: