الانتقال إلى المحتوى الرئيسي

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.

هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
توثق هذه الصفحة رسم البيان الحسابي لكل إطلاق: PoolState (حساب الحالة الجذري لإطلاق واحد)، ومخزناه الاثنان، PDA السلطة، والمراجع التي يكتسبها بعد استقرار الإطلاق.لمعرفة إعدادات البروتوكول على مستوى الكل التي تحدد كل إطلاق، اطلع على products/launchlab/global-config. للطبقة الإضافية لكل منصة، اطلع على products/launchlab/platform-config. لحسابات الاستحقاق (VestingSchedule على PoolState، وVestingRecord لكل مستفيد)، اطلع على products/launchlab/vesting.

جرد الحسابات

الحسابالمالكالغرض
GlobalConfigبرنامج LaunchLabقواعد البروتوكول: الرسوم، حدود الإمدادات، محافظ الهجرة. واحد لكل (curve_type, index).
PlatformConfigبرنامج LaunchLabطبقة إضافية لكل منصة: العلامات التجارية، رسوم المنصة، تقسيم NFT عند التخرج، قائمة بيضاء لشكل المنحنى.
PoolStateبرنامج LaunchLabحالة جذر الإطلاق الواحد: الإصدارات، المخزن، معاملات المنحنى، عدادات البيع، عدادات الرسوم، جدول الاستحقاق، حالة التخرج.
authorityبرنامج LaunchLabPDA واحد عند بذرة [b"vault_auth_seed"] يمتلك المخازن عبر جميع الإطلاقات ويوقع CPI بعد التخرج.
base_vaultSPL Token / Token-2022مخزن الإطلاق الواحد يحتفظ بالرموز الأساسية غير المباعة.
quote_vaultSPL Tokenمخزن الإطلاق الواحد يحتفظ برموز الاقتباس المتراكمة.
VestingRecordبرنامج LaunchLabسجل التحرر المتدرج + المشروط لكل مستفيد. اختياري.
creator_fee_vaultSPL Tokenمخزن الرسوم المستحقة لكل منشئ + لكل رمز اقتباس، يتم مسحه بواسطة ClaimCreatorFee.
platform_fee_vaultSPL Tokenمخزن الرسوم المستحقة لكل منصة + لكل رمز اقتباس، يتم مسحه بواسطة ClaimPlatformFeeFromVault.
(بعد التخرج) cpmm_pool_state أو amm_pool_stateبرنامج CPMM / AMM v4الـ pool الذي أنشأته MigrateToCpswap / MigrateToAmm.
(بعد التخرج) Fee Key NFTبرنامج LP-Lockيغلف حصة المنشئ من LP عند تخرج CPMM؛ يخول حامله الحصول على ClaimCreatorFee على pool CPMM.
يعيد raydium.launchpad.getLaunchById في SDK PoolState بالإضافة إلى علم يشير إلى ما إذا كان الإطلاق قد تخرج؛ إذا كان كذلك، يتم تضمين معرف pool بعد الهجرة.

PoolState

حالة جذر الإطلاق الواحد. أسماء الحقول أدناه تتطابق مع struct Rust على السلسلة (states/pool.rs)؛ بعض القيم مبسطة من أجل الوضوح — استشر المصدر لمخطط الذاكرة الدقيق.
// states/pool.rs (abridged)
pub struct PoolState {
    pub epoch:                     u64,        // recent_epoch tracker
    pub auth_bump:                 u8,
    pub status:                    u8,         // PoolStatus enum
    pub base_decimals:             u8,
    pub quote_decimals:            u8,
    pub migrate_type:              u8,         // 0 = AMM v4, 1 = CPMM
    pub supply:                    u64,        // total base tokens (no decimals)
    pub total_base_sell:           u64,        // base supply allocated to the curve
    pub virtual_base:              u64,        // virtual-reserve seed
    pub virtual_quote:             u64,        // virtual-reserve seed
    pub real_base:                 u64,        // base sold so far
    pub real_quote:                u64,        // quote raised so far (excl. fees)
    pub total_quote_fund_raising:  u64,        // graduation threshold in quote

    pub quote_protocol_fee:        u64,        // accrued, pending CollectFee
    pub platform_fee:              u64,        // accrued, pending ClaimPlatformFee
    pub migrate_fee:               u64,        // accrued, pending CollectMigrateFee
    pub vesting_schedule:          VestingSchedule,

    pub global_config:             Pubkey,
    pub platform_config:           Pubkey,
    pub creator:                   Pubkey,
    pub base_mint:                 Pubkey,
    pub quote_mint:                Pubkey,
    pub base_vault:                Pubkey,
    pub quote_vault:               Pubkey,

    pub amm_creator_fee_on:        u8,         // 0 = QuoteToken, 1 = BothToken (CPMM-only)
    pub token_program_flag:        u8,         // bit flags for SPL Token vs Token-2022
    pub padding:                   [u8; 54],
}

#[derive(Default, Debug, Clone)]
pub struct VestingSchedule {
    pub total_locked_amount:    u64,
    pub cliff_period:           u64,
    pub unlock_period:          u64,
    pub start_time:             u64,           // set at graduation
    pub allocated_share_amount: u64,           // running sum across VestingRecords
}
قيم PoolStatus (من Anchor IDL):
0 = Funding         — قبول الشراء / البيع؛ أسفل quote_reserve_target
1 = Migrate         — تم الوصول إلى quote_reserve_target؛ في انتظار MigrateTo*
2 = Migrated        — تم بالفعل تنفيذ MigrateTo*؛ ساعة الاستحقاق تعمل
الحقول المواجهة للمدمج:
  • status — ثلاث قيم، رتيبة (Funding → Migrate → Migrated). القراءات آمنة دائماً؛ الكتابات محمية.
  • real_base، real_quote — حالة المنحنى الحالية. مدمجة مع virtual_base / virtual_quote يكفيان لحساب سعر البقعة دون اللمس المخازن. انظر bonding-curve.
  • total_base_sell مقابل real_base — نسبة “التقدم نحو التخرج” لواجهات المستخدم.
  • migrate_type — يختار ما إذا كانت MigrateToAmm أو MigrateToCpswap هي مسار التخرج الصحيح. يجب أن تستخدم إطلاقات Token-2022 CPMM.
  • amm_creator_fee_on — ذات معنى فقط عند التخرج إلى CPMM. يختار creator_fee_on = OnlyQuoteToken (0) أو BothToken (1) على pool CPMM بعد التخرج. على الرغم من الاسم، يؤثر هذا التعداد بشكل فعال على هدف الهجرة أيضاً — BothToken يقترن مع MigrateToAmm في الممارسة العملية الحالية؛ QuoteToken مع MigrateToCpswap. انظر creator-fees.
  • quote_protocol_fee / platform_fee / migrate_fee — ثلاثة عدادات رسوم مستقلة. لكل منها تعليمة مطالبة خاصة بها؛ انظر instructions.
  • vesting_schedule — موجود على كل PoolState لكن غير نشط عندما total_locked_amount == 0. اطلع على vesting لدورة الحياة الكاملة.

PDA السلطة

يستخدم LaunchLab PDA سلطة واحد عبر جميع الإطلاقات، مشتق بدون بذرة خاصة بالإطلاق:
const LAUNCHLAB_PROGRAM_ID = new PublicKey("<LAUNCHLAB_ID>"); // see reference/program-addresses

const [authority, bump] = PublicKey.findProgramAddressSync(
  [Buffer.from("vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);
هذا PDA الواحد هو:
  • السلطة على base_vault و quote_vault لكل إطلاق.
  • mint_authority على base_mint لكل إطلاق (قبل التخرج).
  • الموقّع على CPI بعد التخرج إلى AMM v4 / CPMM (MigrateTo*).
  • الموقّع على تحويلات ClaimVestedToken خارج مخزن الأساس.
يتم إلغاء mint_authority فوراً بعد MigrateToAmm / MigrateToCpswap بحيث يكون الإمداد ثابت دائماً. PDA إضافيان يحمياān مخازن الرسوم:
const [creatorFeeVaultAuthority] = PublicKey.findProgramAddressSync(
  [Buffer.from("creator_fee_vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);

const [platformFeeVaultAuthority] = PublicKey.findProgramAddressSync(
  [Buffer.from("platform_fee_vault_auth_seed")],
  LAUNCHLAB_PROGRAM_ID,
);
هذان يوقعان نقل خارج مخزن الرسوم المقابل أثناء ClaimCreatorFee و ClaimPlatformFeeFromVault.

Base mint

تم إنشاؤه بشكل مضمن بواسطة 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 برمز base mint يكون Token-2022 mint (مع اختياري TransferFeeConfig)؛ رمز الاقتباس لا يزال SPL Token. يجب أن تتخرج إطلاقات Token-2022 إلى pool CPMM لأن AMM v4 يدعم فقط مخازن SPL Token.

المخازن

كلا من base_vault و quote_vault عبارة عن حسابات SPL Token قياسية مملوكة لـ authority PDA الخاص بـ LaunchLab. يتم تخزين العناوين على PoolState ويمكن أيضاً اشتقاقها:
const [baseVault] = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), baseMint.toBuffer()],
  LAUNCHLAB_PROGRAM_ID,
);
const [quoteVault] = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), quoteMint.toBuffer()],
  LAUNCHLAB_PROGRAM_ID,
);
(تحقق من بادئات البذور الدقيقة من struct حسابات Initialize في المصدر قبل الاعتماد على اشتقاق في الإنتاج.)

مخازن الرسوم

يجمع PDA اثنان الرسوم عبر الإطلاقات:
  • مخزن رسوم المنشئ — 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، وليس رصيد المخزن الخام. ثابت قبل التخرج:
quote_vault.balance ==
   real_quote
 + quote_protocol_fee
 + platform_fee
 + migrate_fee

انتقالات الحساب في دورة الحياة

الحدثالحالةreal_basereal_quotepool بعد التخرج
InitializeFunding00
BuyExactIn / BuyExactOutFunding+base_out+quote_in_after_fee
SellExactIn / SellExactOutFunding−base_in−quote_out_before_fee
MigrateToAmm / MigrateToCpswapFunding → Migrate → Migrated(مجمد)(مجمد)تم الإنشاء، تقسيم LP لكل PlatformConfig
ClaimCreatorFee / ClaimPlatformFee*أييستنزف مخزن رسوم
CreateVestingAccountFundingيزيد vesting_schedule.allocated_share_amount
ClaimVestedTokenMigrated onlyيستنزف base_vault

الخطوات التالية

المصادر:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — ثوابت بذرة PDA (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • وحدة launchpad من Raydium SDK v2.