هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لافتة الإصدار.
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - Cluster: Solana
mainnet-beta - معرّف البرنامج: انظر
reference/program-addresses - آخر تحقق: 2026-09-09 مقابل SDK
0.2.64-alphasource،raydium-sdk-V2-demo/src/launchpad، وبرنامجraydium-launchsource
package.json الخاص بك. واجهة منحنى الربط تطورت بين الإصدارات الثانوية.الإعداد
العروض التوضيحية هنا تعكس الملفات فيraydium-sdk-V2-demo/src/launchpad. يتبع التمهيد config.ts.template من مستودع العرض التوضيحي:
إنشاء إطلاق
المصدر:src/launchpad/createMint.ts (وcreateBonkMintApi.ts لمتغير Bonk المدفوع بواسطة API)
معظم الاقتصاديات الخاصة بالإطلاق ليست معاملات — فهي تأتي من GlobalConfig التي تربطها عبر configId، والـ SDK يملأ الباقي من معاملات API الافتراضية. تمرر هوية الـ mint، والإعدادات المراد الربط بها، و(اختياريًا) عملية شراء أولى:
- لا يوجد معامل
curveType،graduationFractionBps،initialK،quoteMint،openTime،feesأوpostGraduationLpPolicy. شكل المنحنى و quote mint هما خصائصGlobalConfigالتي تربطها؛ معدلات الرسوم تعيش علىGlobalConfigوPlatformConfig؛ التخلص من LP عند التخرج هو إعدادPlatformConfig. انظرproducts/launchlab/instructionsلمعرفة بالضبط ما يقبلهInitializeV2. symbolأطول من 10 أحرف وuriفارغ يتم رفضهما من جانب العميل قبل أي RPC.- تمرير
transferFeeExtensionParamsيحول المنشئ إلىInitializeWithToken2022ويفرضmigrateTypeعلى"cpmm". - يعيد المنشئ مصفوفة
transactions؛createOnly: falseيضيف معاملة الشراء الأولى. استخدم دائمًاexecute({ sequentially: true })— يجب أن يكون الـ mint موجودًا قبل وصول الشراء.
جلب حالة الإطلاق
المصدر:src/launchpad/poolInfo.ts
لا يوجد getLaunchById. معرّف المجموعة هو PDA من (programId, mintA, mintB)، و getRpcPoolInfo يعيد PoolState المفكك مع configInfo المرتبط به:
getRpcPoolsInfo({ poolIdList }) هي الشكل المجمع وتعيد poolInfoMap مفهرسة حسب معرّف المجموعة — استخدمها لعروض المحفظة بدلاً من الحلقات. إذا كنت تريد فك تشفير الحسابات الخام بنفسك، فإن LaunchpadPool.decode و LaunchpadConfig.decode يتم تصديرهما.
الشراء — إدخال quote دقيق
المصدر:src/launchpad/buy.ts
مساعد الاقتباس خارج السلسلة هو Curve.buyExactIn، وهي طريقة ثابتة على فئة Curve المُصدَّرة — وليست طريقة على raydium.launchpad. منشئ المعاملة هو buyToken. كلاهما يحتاج إلى معدلات الرسوم الخاصة بالمنصة، التي تعيش على حساب PlatformConfig منفصل:
minMintAAmount بشكل صريح بدلاً من slippage؛ حذف كليهما والـ SDK يحسب الحد من بيانات RPC المباشرة. shareFeeRate يجب ألا يتجاوز poolInfo.configInfo.maxShareFeeRate، وينطبق فقط عندما تمرر أيضًا shareFeeReceiver.
الشراء — إخراج base دقيق
المنشئ هوbuyTokenExactOut، ومعاملات المبلغ هي outAmount (base التي تريدها) و maxBuyAmount (quote التي ستنفقها على الأكثر). Curve.buyExactOut({ poolInfo, amountA, ... }) هي معاينة خارج السلسلة المطابقة.
outAmount من الصفر من جانب العميل، والبرنامج يعود إذا تحرك المنحنى بما يكفي بحيث يتجاوز متطلب الاقتباس maxBuyAmount.
البيع
المصدر:src/launchpad/sell.ts
المنشئ هو sellToken (sellTokenExactOut لمتغير الإخراج الدقيق للاقتباس)، مع sellAmount و minAmountB اختياري. Curve.sellExactIn({ poolInfo, amountA, ... }) يعاينه.
real_a بمقدار sellAmount يعيد quote_out مساويًا للمنطقة المتكاملة تحت المنحنى بين real_a − sellAmount و real_a، مطروحًا منها رسم البيع. sellAmount يجب أن يكون أكبر من الصفر — يرفض المنشئ الصفر قبل أي RPC.
التخرج
يتم تشغيل تلك المحافظ بواسطة crank التخرج الخاص بـ Raydium، لذا في الممارسة العملية تهبط الهجرة في ثوانٍ بعد تجاوز الحد الأدنى بغض النظر عمن قام بالشراء النهائي. من جانب المدمج، الشيء الوحيد الذي يجب فعله هو معاملة انتقال الحالة كحدث سريع: استطلعgetRpcPoolInfo (أو اشترك عبر gRPC، أدناه) وبدّل واجهة المستخدم الخاصة بك من المنحنى إلى مجموعة CPMM الناتجة عندما يتغير status.
انظر products/launchlab/instructions لقوائم الحسابات، ورسم الهجرة، وكيفية تقسيم LP عند التخرج.
جمع رسوم المنشئ
المصدر:src/launchpad/claimCreatorFee.ts (mint واحد) و collectAllCreatorFees.ts (مجمع)
الطريقة هي claimCreatorFee (و claimMultipleCreatorFee للشكل المجمع). يتم تفتيشها بواسطة quote mint، وليس بواسطة إطلاق — استدعاء واحد يكتسح رسوم المنشئ المتراكمة للموقّع في هذا الـ mint عبر عمليات الإطلاق الخاصة به:
claimPlatformFee / claimAllPlatformFee / claimVaultPlatformFee المتوازيون.
تتبع إطلاق عبر دورة حياته
بجمع كل شيء معًا، قد تبدو نصيحة المراقبة كالتالي:getRpcPoolInfo على مؤقت 10 ثوانٍ جيد لإطلاق واحد. بالنسبة لمفهرس، استخدم اشتراك gRPC أدناه بدلاً من ذلك — getRpcPoolsInfo({ poolIdList }) يجمع، لكن استطلاع مئات المجموعات لا يزال يحرق أرصدة RPC بدون فائدة.
مراقبة الإعدادات والمجموعات عبر gRPC
المصدر:src/grpc/launchpadPoolInfo.ts
يشترك في برنامج LaunchLab عبر Yellowstone gRPC ويسجل كل تحديث GlobalConfig و PoolState مع برنامج الرمز الخاص بكل mint. مرشحا datasize على اشتراك accounts واحد يفصلان بين نوعي الحساب، لذا يغطي تيار واحد كليهما.
العرض التوضيحي هو أقصر مرجع صحيح لتصنيف mints الإطلاق، والذي يجعل إصدار quote-mint Token-2022 ضروريًا:
- يتم تصنيف المجموعات مباشرة من
PoolState.token_program_flag، وفك تشفير bit0 للـ mint الأساسي و bit1 لـ quote mint بدون جلب mint على الإطلاق. اختبار البايت بالكامل مقابل0— والذي كان كافيًا بينما كانت quote mints قديمة فقط — يسيء قراءة mint أساسي قديم كـ Token-2022 كلما كان quote mint هو Token-2022. - لا يمكن تصنيف الإعدادات بهذه الطريقة:
GlobalConfigيخزن عنوان quote mint الخاص به وعدم وجود علم برنامج، لذا يقرأ العرض التوضيحي مالك حساب الـ mint مرة واحدة ويخزنه مؤقتًا لكل mint.
create مقابل update يتم استنتاجه من ذاكرات التخزين المؤقت الخاصة بالعرض التوضيحي، والتي تم بذرها عند بدء التشغيل من getProgramAccounts؛ مع تعطيل هذا البذر، اقرأ “create” كـ “أول ظهور على هذا التيار”.
وصول gRPC ليس جزءًا من سطح RPC العام — انظر src/grpc/README.md من مستودع العرض التوضيحي.
Rust CPI
استدعاء LaunchLab من برنامج Anchor الخاص بك نادر (معظم تكاملات الإطلاق هي TS-side فقط). إذا فعلت:- الصندوق هو
raydium-launchpad(اسم libraydium_launchpad)، الإصدار0.2.0، وهو يعرض ميزةcpi. لا يوجدraydium_launchlab. - إنه غير منشور على crates.io — اعتمد عليه بمراجعة git، بنفس الطريقة التي تعتمد بها صناديق برنامج Raydium الأخرى.
- نقاط دخول CPI سميت على اسم التعليمات على السلسلة، وليس على اسم طرق TypeScript الخاصة بـ SDK:
buy_exact_in،buy_exact_out،sell_exact_in،sell_exact_out،claim_creator_fee،create_vesting_account،claim_vested_token.migrate_to_amm/migrate_to_cpswapيتم حراستهما بواسطة الموقّع لمحافظ هجرةGlobalConfigوليسا قابلين للاستدعاء من برنامج مدمج.
sdk-api/rust-cpi لقواعد تثبيت الصندوق — على وجه الخصوص انقسام إصدار Anchor، الذي يقرر ما إذا كان يمكن لصندوق واحد أن يدخل CPI في كل من LaunchLab و CLMM.
الأخطاء الشائعة
- الخلط بين أسماء التعليمات على السلسلة وأسماء طرق SDK. البرنامج لديه
buy_exact_in/sell_exact_in؛ SDK لديهbuyToken/sellToken.buyExactInوsellExactInموجودة فقط كـ طرق ثابتة علىCurve، وتحسب اقتباسًا — فهي لا تبني معاملة. - نسيان
extraSigners.createLaunchpadينشئ mint الأساسي من keypair تنشئه، لذا يجب أن يوقع هذا keypair. حذفextraSigners: [pair]والمعاملة تفشل التحقق من التوقيع. - عدم اختيار quote mint. أنت لا تمرر واحدة. quote mint هو خاصية
GlobalConfigالتي تربطها عبرconfigId—getPdaLaunchpadConfigId(programId, quoteMint, curveType, index). لإطلاق ضد quote mint مختلف، ربط إعدادات مختلفة؛raydium.api.fetchLaunchConfigs()يسرد الإعدادات المتاحة مع معاملات افتراضياتها. - حجم البيانات الوصفية. سلاسل
uriالطويلة تدفع Metaplex CPI فوق الميزانية. احتفظ بـuriتحت ~200 حرف — معظم بيانات JSON المستضافة على CDN تناسب بسهولة.symbolمقيد بـ 10 أحرف. - معاملة التخرج كسباق يمكنك الدخول فيه. إنه ليس كذلك — انظر التحذير أعلاه. واجهة المستخدم الخاصة بك يجب أن تعامل انتقالات
statusكأحداث سريعة، لأن crank Raydium تهبط الهجرة في ثوانٍ من تجاوز الحد الأدنى.
أين تذهب بعد ذلك
products/launchlab/bonding-curve— رياضيات المنحنى.products/cpmm/code-demos— ماذا تفعل مع المجموعة الناتجة.user-flows/launch-token-launchlab— دليل إطلاق الرمز من البداية إلى النهاية، بما في ذلك الخطوات خارج السلسلة.
- Raydium SDK v2
- مصدر برنامج Raydium LaunchLab

