هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
توثق هذه الصفحة رسم البياني للحسابات لكل إطلاق:
PoolState (حساب الحالة الجذري لإطلاق واحد)، وخزائنه الاثنتان، وسلطة PDA، والمراجع اللاحقة للتخرج التي يكتسبها عند استقرار الإطلاق.للحصول على الإعدادات على مستوى البروتوكول التي تحد من كل إطلاق، انظر products/launchlab/global-config. للحصول على الطبقة الإضافية لكل منصة، انظر products/launchlab/platform-config. لحسابات الاستحقاق (VestingSchedule على PoolState، VestingRecord لكل مستفيد)، انظر products/launchlab/vesting.جرد الحسابات
يقرأ SDK هذا عبر
raydium.launchpad.getRpcPoolInfo({ poolId })، التي تُعيد PoolState المفكوك مع GlobalConfig المرتبط مُلحقًا باسم configInfo (و getRpcPoolsInfo({ poolIdList }) للشكل المجمّع). ولا وجود لـ getLaunchById. ومعرّف المجمع نفسه هو PDA من (programId, mintA, mintB) — getPdaLaunchpadPoolId.
PoolState
حالة الجذر لكل إطلاق. أسماء الحقول أدناه تطابق بنية Rust على السلسلة (states/pool.rs)؛ تم تبسيط بعض القيم لسهولة القراءة — استشر المصدر للحصول على تخطيط الذاكرة الدقيق.
PoolStatus (أسماء المتغيرات في IDL هي Fund / Migrate / Trade):
status— ثلاث قيم، رتيبة (Fund→Migrate→Trade). القراءات آمنة دائماً؛ الكتابات مقيدة. وتتطلبClaimVestedTokenالحالةTrade.real_base,real_quote— حالة المنحنى الحالية. معvirtual_base/virtual_quoteفهي كافية لحساب سعر الفائدة دون لمس الخزائن. انظرbonding-curve.total_base_sellمقابلreal_base— نسبة “التقدم نحو التخرج” لواجهات المستخدم.migrate_type— يتطلب التهيئة الجديدة1(CPSWAP). يبقى0المخزن ذا معنى فقط لإطلاق موجود تم إنشاؤه قبل فرض CPMM فقط.amm_creator_fee_on— يختارcreator_fee_on = OnlyQuoteToken(0) أوBothToken(1) على مجموعة CPMM بعد التخرج. لا يختار هدف الهجرة. انظرcreator-fees.token_program_flag— حقل بت، وليس منطقي. Bit0 هو نعت الأساس و bit1 هو نعت الاقتباس، كل منهما0لـ SPL Token و1لـ Token-2022، لذا يأخذ البايت أربع قيم:0(كلاهما قديم)،1(Token-2022 أساس)،2(Token-2022 اقتباس)،3(كلاهما Token-2022). اقرأ نعت واحد مع(token_program_flag >> bit) & 1. مقارنة البايت بالكامل مقابل0لتصنيف نعت الأساس تحل2إلى البرنامج الخاطئ. كان Bit1 ثابتاً0حتى تم دعم نعات اقتباس Token-2022.quote_protocol_fee/platform_fee/migrate_fee— ثلاثة عدادات رسوم مستقلة. لكل منها تعليمة مطالبة خاصة بها؛ انظرinstructions.vesting_schedule— موجود على كلPoolStateلكن غير نشط عندماtotal_locked_amount == 0. انظرvestingللدورة الحياة الكاملة.
سلطة PDA
يستخدم LaunchLab سلطة PDA واحدة عبر جميع الإطلاقات، مشتقة بدون بذرة لكل إطلاق:- السلطة على
base_vaultوquote_vaultلكل إطلاق. - لا شيء على
base_mint— يتم إلغاء سلطة النعت قبل عودةInitializeV2(انظر أدناه). - الموقّع على CPI تخرج CPMM، وعلى تخرج AMM v4 القديم للحالة الموجودة.
- الموقّع على تحويلات
ClaimVestedTokenخارج base vault. transfer_fee_config_authorityعلىTransferFeeConfigلنعت أساس Token-2022، لمرحلة ما قبل التخرج بالكامل — وwithdraw_withheld_authorityأيضاً، لكن فقط عندما تترك المنصةPlatformConfig.transfer_fee_extension_authغير محدد.
mint_authority في تعليمة التهيئة، وليس عند التخرج: InitializeV2 و InitializeWithToken2022 تصك العرض الكامل في base_vault ثم تعيّن MintTokens إلى None في نفس التعليمة. العرض ثابت إذاً من لحظة وجود الإطلاق، والهجرة ليس لها خطوة سلطة نعت. تأثير جانبي: لا أحد يمكنه التوقيع على نعت الأساس، لذا لا يمكن استرجاع إيجاره بواسطة CollectExcessLamports.
اثنان من PDAs الإضافية يحكمان خزائن الرسوم:
ClaimCreatorFee و ClaimPlatformFeeFromVault.
نعت الأساس
تم إنشاؤه بشكل مضمّن بواسطةInitialize مع:
mint_authority = authority(ملغى عند التخرج).freeze_authority = None.supply = supply، مصكوك بالكامل فيbase_vault.decimalsاختاره المنشئ عندInitialize(عادة 6).
base_mint.supply ثابت لحياة الإطلاق. عمليات شراء المنحنى تنقل الرموز من base_vault إلى المشتري، لكن لا تستدعي mint_to.
Initialize / InitializeV2 تنشئ نعات أساس SPL Token. تعليمة InitializeWithToken2022 المخصصة تسمح بأن يكون نعت الأساس نعت Token-2022 (مع TransferFeeConfig اختياري). جميع مسارات التهيئة الثلاثة تتطلب تخرج CPMM.
عندما ترفق InitializeWithToken2022 TransferFeeConfig، يتم إنشاء النعت مع transfer_fee_config_authority = authority و withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth، العودة إلى authority عندما لم تعيّن المنصة هذا الحقل. يتم إعادة تعيين كلا السلطتين إلى مفتاح المنصة عند التخرج، الجانب الانسحاب فقط إذا كان PDA لا يزال يحتفظ به. انظر platform-config.
نعت الاقتباس مستقل عن نعت الأساس وقد يكون بنفسه نعت Token-2022 — InitializeV2 و InitializeWithToken2022 يقبلان أي برنامج في فتحة برنامج الاقتباس. Initialize المهجور لا يفعل: حساب برنامج الاقتباس الخاص به لا يزال مكتوباً لـ SPL Token، لذا يمكن فقط إطلاق إعداد نعت اقتباس Token-2022 من خلال الاثنين الآخرين. لا يتم إنشاء نعت الاقتباس بواسطة LaunchLab؛ إنه ما يسميه GlobalConfig.quote_mint. انظر global-config و reference/token-2022-support.
الخزائن
كل منbase_vault و quote_vault هما حسابات رموز يملكها LaunchLab authority PDA، كل منهما تم إنشاؤه على البرنامج الذي يمتلك نعته الخاص — لذا يمكن لإطلاق أن يكون لديه خزانة أساس قديمة وخزانة اقتباس Token-2022، أو أي مزيج آخر. token_program_flag يسجل أي منهما. يتم تخزين العناوين على PoolState ويمكن أيضاً اشتقاقها:
Initialize في المصدر قبل الاعتماد على الاشتقاق في الإنتاج.)
خزائن الرسوم
اثنان من PDAs يجمعان الرسوم عبر الإطلاقات:- خزانة رسوم المنشئ — PDA عند البذور
[creator, quote_mint]. كل إطلاق يكسب رسوم منشئ على نفس نعت الاقتباس يصب في نفس الخزانة. المنشئ يمسحها عبرClaimCreatorFee. - خزانة رسوم المنصة — PDA عند البذور
[platform_config, quote_mint]. كل إطلاق موجه عبر نفس المنصة التي تستخدم نفس نعت الاقتباس يصب في نفس الخزانة.platform_fee_walletللمنصة يمسحها عبرClaimPlatformFeeFromVault. هناك أيضاً متغير مسح لكل إطلاق (ClaimPlatformFee) يسحب منquote_vaultللإطلاق مباشرة دون المرور عبر الخزانة المجمعة.
Quote vault ↔ real_quote
quote_vault.balance و PoolState.real_quote يجب أن يبقيا متزامنين. يمكنهما الانجراف بحد أقصى مجموع عدادات الرسوم الثلاثة المعلقة (quote_protocol_fee, platform_fee, migrate_fee)، التي تجلس في الخزانة لكنها تنتمي إلى عدادات الرسوم وليس احتياطي المنحنى. رياضيات المنحنى تستخدم دائماً real_quote، أبداً رصيد الخزانة الخام.
ثابت ما قبل التخرج:
PlatformCurveRule
حساب واحد لكل زوج (PlatformConfig, GlobalConfig)، يحتفظ بأشكال الإطلاق التي تسمح بها تلك المنصة على هذا الإعداد. بذور PDA هي [b"platform_curve_rule", platform_config, global_config].
150 + Σ(14 + 18 × constraints) والمفكّكات يجب ألا تفترض حجماً ثابتاً. المجموعات مرتبطة بـ OR: يُسمح بإطلاق بمجرد أن تحتفظ جميع قيود مجموعة واحدة. صفر مجموعات يعني لا تقييد.
اقرأها فقط عندما يكون PlatformConfig.restrict_curve_param المالك 1 — عند 0 يتجاهل البرنامج الحساب، وقد تكون هناك قاعدة قديمة جالسة هناك. معرفات الحقول والمشغلات والكتيبات موجودة في products/launchlab/curve-rules.
انتقالات دورة حياة الحساب
أين تذهب بعد ذلك
products/launchlab/bonding-curve— الرياضيات خلفreal_base↔real_quote.products/launchlab/instructions— قوائم الحسابات لكل تعليمة.products/launchlab/global-config— الربط على مستوى البروتوكول.products/launchlab/platform-config— طبقة المنصة الإضافية.products/launchlab/vesting— ميكانيكا العرض المقفول.products/cpmm/accounts— كيف يبدوcpmm_pool_stateبعد التخرج.
raydium-launch/programs/launchpad/src/states/pool.rs—PoolState,PoolStatus,VestingSchedule,AmmCreatorFeeOn.raydium-launch/programs/launchpad/src/lib.rs— ثوابت بذور PDA (AUTH_SEED,CREATOR_FEE_VAULT_AUTH_SEED,PLATFORM_FEE_VAULT_AUTH_SEED).- وحدة Raydium SDK v2
launchpad.

