هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
يكشف LaunchLab عن مجموعة تعليمات محكمة: ستة استدعاءات موجهة للمستخدمين بالإضافة إلى عدد قليل من البدائيات الإدارية. يغلف SDK جميعها؛ توثق هذه الصفحة السطح الخام للمجمعات وأدوات المراقبة والبرامج التي تحتاج إلى CPI.أعاد ترقية البرنامج 2026-09 بناء LaunchLab على Anchor 1.0.2 / Solana 3.1.10 وأزالت ثلاث آليات انتقالية:
Initialize المهجورة الآن تفشل دائمًا، فقدت MigrateToAmm وسائطها الثلاثة وكل حسابات OpenBook، وذهبت بوابة get_upgrade_timestamp التي جعلت عدة فحوصات مشروطة بالساعة. كما تضيف تعليمة إدارية واحدة، CollectExcessLamports. انظر إلى إدخال السجل 2026-09-09.جرد التعليمات
ينعكس الانقسام “ExactIn/ExactOut” على
SwapBaseInput / SwapBaseOutput الخاص بـ CPMM — على السلسلة يكونان مميزات تعليمات منفصلة برقم تقريبي مختلف قليلاً.
اختيار مسار التخرج. يجب على كل استدعاء InitializeV2 و InitializeWithToken2022 جديد تعيين migrate_type = 1 (CPSWAP). أي محاولة لتهيئة مجموعة جديدة مرتبطة بـ AMM v4 تُرجع MigrateTypeNotMatch. amm_creator_fee_on يختار فقط ما إذا كانت رسوم منشئ CPMM الناتجة تنطبق على رمز الاقتباس أو كلا الرمزين؛ لا يختار برنامج الهدف. لا يمكن لـ Initialize القديم إنشاء إطلاق على الإطلاق بعد الآن (انظر أدناه).
يبقى MigrateToAmm قابلاً للاستدعاء لـ PoolState موجود تم تهيئته مع migrate_type = 0 قبل هذا التقييد. لا تعيد الإصدار كتابة حالة المجموعة الموجودة أو تزيل التعليمة القديمة.
برنامج الرمز من جانب الاقتباس. قد تكون quote mint مملوكة لبرنامج SPL Token أو Token-2022. كل تعليمة تلمسها — CreateConfig, InitializeV2, InitializeWithToken2022، جميع التعليمات التجارية الأربع، CollectFee, CollectMigrateFee, ClaimCreatorFee, ClaimPlatformFee, و ClaimPlatformFeeFromVault — تأخذ البرنامج المالك في فتحة حسابها للبرنامج المقتبس. لم تتغير مواضع الحسابات؛ فقط القيمة المقبولة. مرر البرنامج الذي يمتلك فعلاً GlobalConfig.quote_mint، والذي يمكنك قراءته من بت PoolState.token_program_flag bit1 لإطلاق موجود (انظر accounts) أو من مالك حساب mint بخلاف ذلك.
Initialize المهجورة غير ذات صلة هنا: حساب برنامج الاقتباس الخاص بها لا يزال مكتوبًا إلى SPL Token، ومنذ ترقية 2026-09 تفشل التعليمة قبل قراءة أي حساب. قم بالإطلاق من خلال InitializeV2 أو InitializeWithToken2022.
MigrateToCpswap هو الاستثناء الآخر، في الاتجاه المعاكس — يأخذ كلا البرنامجين بدون شرط بدلاً من واحد لكل mint. انظر حسابات الهجرة أدناه.
Initialize
إنشاء إطلاق جديد. InitializeV2 يضيف فقط حجة amm_fee_on على Initialize المهجور؛ عدد الحسابات والترتيب متطابقان تمامًا، والفرق الوحيد على مستوى الحسابات هو أن quote_token_program مكتوب Interface<TokenInterface> بحيث يتم قبول mint اقتباس Token-2022.
الحجج
أربع حجج موضعية، وليست هيكلاً واحدًا. (InitializeWithToken2022 يضيف خامسة، transfer_fee_extension_param: Option<TransferFeeExtensionParams>؛ الـ Initialize المهجور يحذف amm_fee_on.)
global_config.curve_type أو ستنعكس التعليمة مع InputNotMatchCurveConfig (6003). لا يوجد open_time، لا حجة quote_mint (تأتي من global_config)، لا هيكل fees ولا post_graduation_lp_policy — يتم تعيين التخلص من LP على PlatformConfig، وليس لكل إطلاق.
الحسابات — 18 في المجموع (16 معلنة بالإضافة إلى إضافات #[event_cpi] الاثنتان)
الشروط المسبقة
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 = curve_param.supply، كل شيء فيbase_vault.- سلطة الـ mint تكون ملغاة في نفس التعليمة (
set_authority(MintTokens, None)) مباشرة بعد سك الإمداد — وليس عند التخرج. mint الأساسي بالتالي ذو إمداد ثابت دائمًا، ولا يمكن لأي تعليمة لاحقة أن تسك المزيد. PoolStateمهيأ معstatus = Fund(0)،real_a = 0،real_b = 0.total_fund_raising_bيأتي مباشرة منcurve_param.total_quote_fund_raising.- لـ
InitializeWithToken2022معTransferFeeConfigمرفق:transfer_fee_config_authority = launch_authority، وwithdraw_withheld_authority = PlatformConfig.transfer_fee_extension_authعندما يتم تعيين هذا الحقل، وإلاlaunch_authority. يتم كتابة جانب السحب عند إنشاء mint بالضبط حتى تتمكن المنصة من مسح الرسوم المحتفظ بها قبل التخرج. انظرplatform-config.
NotApproved (6000، بدون شروط، لـ Initialize المهجور)، InvalidInput (6002، انتهاك إمداد / معدل / حد أدنى لجمع الأموال من GlobalConfig)، InputNotMatchCurveConfig (6003، متغير curve_param لا يطابق global_config.curve_type)، MigrateTypeNotMatch (6007، migrate_type != 1)، MathOverflow (6008)، VestingRatioTooHigh (6010)، NoSupportExtension (6017)، NotEnoughRemainingAccounts (6018)، InvalidPlatformAllowConfig (6022)، CurveParamNotMatchPlatformRule (6025). فشل فحص Anchor address = / constraint = يظهر كرمز 2xxx، وليس أحد هذه — لا يوجد InvalidQuoteMint أو FeeRateTooHigh أو InvalidCurveParams في تعداد الأخطاء في البرنامج.
Buy (المتغير الأساسي: BuyExactIn)
يوفر المستخدم مبلغ إدخال ثابت؛ المنحنى يحسب الإخراج.
الحجج
الحسابات المتبقية — أنابيب الرسوم، تُقرأ بهذا الترتيب الدقيق:
share_fee_receiver— فقط عندماshare_fee_rate > 0.system_program— دائمًا؛ يتم التحقق من== System::id()، وإلاInvalidInput.platform_fee_vault— PDA[platform_config, quote_token_mint]؛ تُنشأ عند الاستخدام الأول.creator_fee_vault— PDA[creator, quote_token_mint]؛ تُنشأ عند الاستخدام الأول.
NotEnoughRemainingAccounts (6018). لا توجد فتحة associated_token_program، و 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.
الحجج
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 (زائد مع ما سبق نظراً لأن المحاسبة متسقة). - Launch في حالة
Active.
Buy. ينخفض base_sold، ينخفض quote_reserve_real. تستمر الرسوم في التراكم.
رسوم التحويل من جانب الاقتباس
عندما يحمل mint الاقتباسTransferFeeConfig، يختلف المبلغ الذي تنقله الخزانة عن المبلغ الذي يتم خصمه أو إضافته للدافع، ويتم فحص حد الانزلاق مقابل جانب الدافع. على mint اقتباس بدون الامتداد، كل حالة أدناه متطابقة مع mint موروث عادي.
نتيجتان للاقتباس:
- حد محسوب كما لو كانت mint خالية من الرسوم يتم رفضه. تمرير التكلفة الخالية من الرسوم كـ
maximum_amount_in، أو العائد الخالي من الرسوم كـminimum_amount_out، يعود معExceededSlippage. real_quoteيتقدم فقط بما وصل إلى الخزانة.BuyExactInمنamount_inعلى mint اقتباس بنسبة 5% يحركreal_quoteبمقدارamount_in × 0.95.
10000 نقطة أساس) ويعود مع CalculateOverflow على مسارات exact-out.
كلا mint جانب التجارة مقيدة أيضاً ببرنامج تم تمريره في فتحتهما المطابقة، لذا فإن عدم تطابق base_token_program الآن يفشل بدلاً من تجاهله. انظر algorithms/token-2022-transfer-fees للحصول على رياضيات الرسم الأساسية.
حسابات التجارة المتبقية
تأخذ جميع التعليمات التجارية الأربع أنابيب الرسوم الخاصة بها من خلالremaining_accounts، بهذا الترتيب:
تم التغيير في 2026-09: الثلاثة الأخيرة الآن غير مشروطة، و
system_program يتم التحقق منه. قبل هذا الإصدار، كان البرنامج يقرأها فقط عندما unix_timestamp >= get_upgrade_timestamp()، وتخطى تقسيم رسم platform/creator بالكامل قبل تلك اللحظة. الطابع الزمني قد مضى، لذا السلوك على mainnet لم يتغير عملياً — لكن الفرع اختفى من الكود، والمُنشئ الذي لا يزال يحذف الحسابات الثلاثة الآن يفشل دائماً مع NotEnoughRemainingAccounts (6018) بدلاً من فقط بعد القطع. يتم فحص فتحة system_program بشكل إضافي مقابل System::id() وتعود InvalidInput (6002) إذا كانت تحتوي على أي شيء آخر، حيث تم قبول أي حساب في هذا الموضع سابقاً.MigrateToAmm / MigrateToCpswap
تخريج إطلاق إلى مجموعة قابلة للتداول بمجرد وصول المنحنى إلى total_quote_fund_raising. الإطلاقات الجديدة تكون CPMM فقط. يتم الاحتفاظ بـ MigrateToAmm للمجموعات الموجودة التي يكون migrate_type المخزن فيها هو 0.
من يوقّع
MigrateToAmm— محفظةmigrate_to_amm_walletالمسجلة علىGlobalConfigالمرتبط.MigrateToCpswap— محفظةmigrate_to_cpswap_walletالمسجلة علىGlobalConfigالمرتبط.
- تحقق من
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_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- قم بـ CPI إلى البرنامج المستهدف (
AMM v4 Initialize2أوCPMM InitializeWithPermission) بتلك الاحتياطيات لإنشاء مجموعة ما بعد التخريج. - بالنسبة لهجرات CPMM المنفذة بعد ترقية 2026-08-17، دمج
platform_scale + creator_scaleفي حصة LP مقفولة واحدة مملوكة للمنصة وصك على الأكثر مفتاح رسوم NFT واحد إلىplatform_nft_wallet. احرق باقيburn_scale. قبل الترقية، كانcreator_scaleمقفولاً بشكل منفصل وكان مفتاح الرسوم الخاص به يذهب إلى منشئ الرمز. لا يتم تعديل الهجرات التاريخية المكتملة. بالنسبة لتخريج AMM v4 القديم، يتبع توزيع LP تدفق التعليمات الموجود. - (لا توجد خطوة سلطة صك. تم بالفعل تعيين
base_mint.mint_authorityإلىNoneعند إنشاء الإطلاق — انظر الملاحظة أدناه.) - اقلب
pool_state.status = Migrated، اضبطvesting_schedule.start_time = block_time + cliff_period.
TransferFeeConfig و PlatformConfig.transfer_fee_extension_auth غير افتراضي، تقوم الهجرة أيضاً بإعادة تعيين سلطات هذا الامتداد إلى مفتاح المنصة:
- يتم إعادة تعيين
transfer_fee_config_authorityدائماً. يحتفظ بها PDAauthorityالخاص بالإطلاق طوال مرحلة ما قبل التخريج، لذا هناك دائماً شيء يجب نقله. - يتم إعادة تعيين
WithheldWithdrawفقط عندما يحتفظ بها PDAauthorityلا تزال. الإطلاقات المنشأة من 2026-08-27 فما بعده تحمل بالفعلtransfer_fee_extension_authعلى تلك السلطة من إنشاء الرمز، لذا يتم تخطي الخطوة. الحراسة هي ما يمنع الهجرة من الرجوع على تلك الرموز — لا يمكن لـ PDA أن توقع سلطة لم تعد تحتفظ بها.
transfer_fee_extension_auth هو Pubkey::default() في وقت الهجرة، فلا تتحرك أي سلطة وكلاهما يبقى مع authority PDA بشكل دائم. انظر platform-config.
عرض base mint ثابت من الإنشاء، وليس من التخريج.
InitializeV2 و InitializeWithToken2022 يصكان العرض الكامل في base vault ثم يلغيان فوراً MintTokens في نفس التعليمات، لذا base_mint.mint_authority هو None طوال حياة الإطلاق. الهجرة لا تلمسه. (الإصدارات السابقة من هذه الصفحة وضعت الإلغاء عند التخريج؛ كان ذلك خطأ.) السلطات الوحيدة التي يمكن للهجرة نقلها هي سلطات Token-2022 transfer-fee الموصوفة أدناه.BuyExactIn، BuyExactOut، SellExactIn، SellExactOut سترفض من هذه النقطة فصاعداً مع PoolMigrated. مجموعة AMM الناتجة قانونية وتتداول مثل أي مجموعة AMM v4 / CPMM أخرى.
الأخطاء الشائعة — PoolFunding، PoolMigrated، MigrateTypeNotMatch، InvalidCpSwapConfig، MathOverflow.
حسابات CPMM migration المتبقية
يجب على العملاء الذين ينشئونMigrateToCpswap استخدام مؤشرات remaining_accounts الثابتة هذه:
تتطلب التعليمات على الأقل عشرة حسابات متبقية. حسابات support-mint هي مدخلات CPI للقراءة فقط. اشتق كلا العنوانين حتى عندما لا يكون للرمز سجل دعم مهيأ. يجب تحديث المُنشئين الأقدم الذين لا يزالون يضيفون حسابات creator-lock أو يحذفون المؤشرات 8–9.
تم التغيير في 2026-09. تنظيفان، لا أحدهما يغير المُنشئ الصحيح:
- مسار CPMM المرخص هو الآن المسار الوحيد. اعتاد
MigrateToCpswapعلى الاختيار بينInitializeCpSwapوInitializeCpSwapWithPermissionبناءً علىunix_timestamp >= get_upgrade_timestamp(). مساعد الطابع الزمني والـ CPI القديم كلاهما اختفى، لذا ينطبق المسار المرخص — وبالتالي الحد الأدنى من عشرة حسابات — بدون شروط. - تم نقل ثلاثة قيود عنوان من هيكل الحساب إلى جسم التعليمات.
platform_config،base_vault، وquote_vaultلا تزال مطلوبة لمطابقة القيم المخزنة علىPoolState، لكن عدم التطابق الآن يتم رفعه بواسطةrequire_keys_eq!بدلاً من قيد Anchoraddress =. الفحص معادل؛ فقط السطح الخطأ يختلف — تحصل علىRequireKeysEqViolated(2502) العام من Anchor بدلاً منConstraintAddress(2012)، ويتم الإبلاغ عنه بدون اسم حساب. حدّث أي معالجة خطأ طابقت على2012لهذه الحسابات الثلاثة.
برامج رموز هجرة CPMM
يأخذMigrateToCpswap كلا برنامج الرموز بدون شروط ويعرف أي برنامج يمتلك كل رمز بنفسه. تمت إعادة تسمية حسابات برنامج الرموز الخاصة به وفقاً لذلك:
يحلان محل
base_token_program السابق (أي برنامج امتلك base mint) و quote_token_program (دائماً قديم). المواضع لم تتغير، لذا هذا تغيير قيمة وليس تغيير تخطيط — لكن القيمتين قريبتان من الانعكاس، والمُنشئ الذي يستمر في تمرير زوجه القديم سيوفر Token-2022 حيث يكون البرنامج القديم مطلوباً بمجرد أن يكون أي رمز Token-2022 mint.
البرنامج القديم مطلوب حتى عندما لا يستخدمه أي رمز، لأن CPMM LP mint و Fee Key NFT السيولة المقفولة يعيشان دائماً عليه.
قائمة السماح GlobalConfig للمنصة
يتحكم PlatformConfig.restrict_global_config في الفحص:
0: تقبل المنصة أيGlobalConfigصحيح بخلاف ذلك؛ لا يلزم حساب السماح.1: يجب أن تتضمنInitialize،InitializeV2، وInitializeWithToken2022PlatformAllowConfigالمطابق في أي مكان فيremaining_accounts.
CreatePlatformAllowConfig و ClosePlatformAllowConfig. بذوره هي [b"platform_allow_config", platform_config, global_config]. تم إيقاف تعليمات PlatformGlobalAccess و PDA المُدارة من قبل المسؤول السابق.
قواعد معاملات الإطلاق للمنصة
أربع تعليمات تدير حسابPlatformCurveRule واحد. جميع الأربعة موقعة من قبل PlatformConfig.curve_rule_manager أو من قبل مسؤول المنصة — يقبل البرنامج المسؤول بإعادة اشتقاق PDA PlatformConfig من الموقّع، لذا لا حساب منفصل يثبته. الموقّع الذي ليس أياً منهما يعيد InvalidCurveRuleAuthority.
platform_curve_rule هو PDA في [b"platform_curve_rule", platform_config, global_config].
Createيخصص الحساب الذي لا يحتوي على مجموعة. تلك الحالة لا تقيد أي شيء.Updateيدرج أو يحدّث المجموعة بـgroup_idذلك، مستبدلاً بالكامل إذا كانت موجودة. يغيّر حجم الحساب ليناسب، لذا يضيف الموقّع الإيجار الذي ينمو به ويستقبل الإيجار الذي ينكمش به. مجموعة جديدة تتجاوز العاشرة تعيدCurveRuleGroupsExceeded؛ أكثر من 25 قيد، حقل غير معروف أو عامل، أو نفس زوج(field, op)مرتين في مجموعة واحدة يعيدInvalidCurveRuleConstraint؛ الحقول الأربعة المشتقة منTotalSellAعلى تكوين غير ثابت الناتج يعيدCurveRuleFieldNotSupportedByCurve.Removeيسقط مجموعة واحدة حسب المعرّف، ينكمش الحساب ويسترجع الفرق. معرّف غير معروف يعيدCurveRuleGroupNotExist.Closeيعيد الإيجار بالكامل إلى الموقّع. التكوين غير مقيد بعد ذلك حتى عندما يبقىrestrict_curve_paramعلى1.
UpdatePlatformConfig::RestrictCurveParam(0 | 1)، والذي يمكن فقط لمسؤول المنصة استدعاؤه.
على مسار الإطلاق. بينما restrict_curve_param هو 1، تتطلب InitializeV2 و InitializeWithToken2022 PDA القاعدة في remaining_accounts — بما في ذلك عندما لا توجد، بحيث لا يمكن حذفها تخطي الفحص. حساب مفقود هو NotEnoughRemainingAccounts؛ إطلاق لا يرضي أي مجموعة هو CurveParamNotMatchPlatformRule. يعمل الفحص قبل حدود GlobalConfig الخاصة به ويمكن فقط تضييقها. النموذج والكتيبات: products/launchlab/curve-rules. كلا الخطأين قابلان للتجنب من جانب العميل — يعكس SDK هذا الفحص كدالة نقية، انظر تحقق قبل الإرسال.
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. يتراجع إذا كانت الخزينة فارغة.
CollectExcessLamports
عملية مسح إداري لـ lamports الموجودة فوق الحد الأدنى المعفي من الإيجار على الحسابات التي يتحكم فيها LaunchLab. تمت إضافتها في ترقية 2026-09 بحيث يمكن للبروتوكول استرجاع التمويل الزائد الذي يتركه SIMD-0437 rent reduction على الحسابات المُنشأة قبل كل خطوة.
فقط الزيادة تتحرك. أرصدة الرموز وبيانات الحساب والمالكون وحالة المنحنى والاستحقاق لا تتأثر، والتعليمات هي عملية بدون تأثير على حساب بالفعل عند الحد الأدنى — لذا من الآمن إعادة التشغيل بعد كل خطوة نشر.
المعاملات — لا توجد.
الحسابات
اختيار
authority
يتم تمرير الحساب بدون فحص ويتم حله بواسطة البرنامج، الذي يعيد اشتقاق جميع ثلاث PDAs سلطة LaunchLab ومطابقة:
مفتاح لا يطابق أيًا من الثلاثة يفشل التعليمات بالكامل مع
InvalidOwner (6001).
كيفية التعامل مع كل حساب مصدر
لا يمكن مسح العملات الأساسية.
InitializeV2 و InitializeWithToken2022 يلغيان MintTokens على العملة الأساسية في نفس التعليمات التي تصك الإمداد، لذا لا يمكن لأي مفتاح توقيع WithdrawExcessLamports لها — يبقى إيجار العملة حيث هو بشكل دائم.
الأخطاء الشائعة — InvalidOwner (6001، موقّع خاطئ أو authority ليس أحد ثلاث PDAs)، LamportsCalculateError (6031، رحلة wSOL ذهاباً وإياباً لم تصل إلى صفر)، و InsufficientFunds من مسار البرنامج المملوك عندما يحتفظ حساب برصيد أقل من حد الإيجار الخاص به.
لا منشئ SDK. @raydium-io/raydium-sdk-v2 لا يشحن منشئ لهذه التعليمات، وكذلك مستودع raydium-sdk-V2-demo — إنها مسار إداري. قم بترميزها يدويًا، بالطريقة التي يفعلها مسح جانب المحفظة في solana-fundamentals/rent-and-reclaimable-rent لتعليمات برنامج الرموز.
تعليمات الاستحقاق وتكوين المنصة
يتم توثيق هذه على صفحات مخصصة لأن كل واحدة لها نموذج حالة خاص بها:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreatePlatformCurveRule,UpdatePlatformCurveRule,RemovePlatformCurveRule,ClosePlatformCurveRuleCreateConfig,UpdateConfig
مصفوفة تغيير الحالة
الخطوات التالية
products/launchlab/code-demos— أمثلة TypeScript لكل تعليمات.products/launchlab/accounts— شكل الحالة الكامل.reference/error-codes— تعداد خطأ LaunchLab.
- Raydium SDK v2
LaunchLabmodule - مصدر برنامج Raydium LaunchLab

