هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
بيان الإصدار. جميع أمثلة TypeScript تستهدف
@raydium-io/raydium-sdk-v2@0.2.64-alpha؛ تم تنفيذها آخر مرة مقابل 0.2.42-alpha (2026-04) وتم إعادة فحص توقيعات الاستدعاء الخاصة بها مقابل مصدر 0.2.64-alpha في 2026-09-09، مقابل Solana mainnet-beta. هيكل Rust CPI يستهدف raydium-cp-swap على فرع chore/upgrade-anchor، Anchor 1.0.2 — master لا يزال يثبّت 0.32.1. يتم سحب معرّفات البرامج عبر الثوابت من reference/program-addresses.المتطلبات الأساسية
raydium-sdk-V2-demo/src/cpmm؛ رابط GitHub يظهر بجانب كل قسم. يتبع التهيئة ملف config.ts.template من مستودع العروض التوضيحية (المصدر):
Raydium هو واجهة SDK — كل مثال أدناه يستخدمه. Raydium.load غير متزامن لأنه يحمّل قائمة الرموز بشكل افتراضي؛ مرّر disableLoadToken: true لتخطي هذا الجلب. فحص توفر الميزات مُتخطّى بالفعل ما لم تمرّر disableFeatureCheck: false. يتم جلب تكوينات الرسوم بكسل على الاستخدام الأول عبر raydium.api.getCpmmConfigs().
إنشاء pool CPMM
المصدر:src/cpmm/createCpmmPool.ts
- ترتيب الرموز في ترتيب token0/token1 قبل اشتقاق PDA.
- دفع
create_pool_feeلمرة واحدة إلىpoolFeeAccount. - إنشاء حسابات الرموز المرتبطة بالمتصل إذا كانت مفقودة.
- اختيار برنامج الرموز الصحيح (SPL Token مقابل Token-2022) لكل جانب.
Swap (base-input)
المصدر:src/cpmm/swap.ts
getPoolInfoFromRpc. لا تقتبس من api-v3.raydium.io لمعاملة على وشك التوقيع — اقتباس قديم بمقدار كتلة واحدة يمكن أن ينزلق إلى ExceededSlippage في وقت الهبوط.
Swap (base-output)
المصدر:src/cpmm/swapBaseOut.ts
إيداع السيولة
المصدر:src/cpmm/deposit.ts
maximum_*، وينشئ إنشاءات ATA إذا لزم الأمر. raydium.cpmm.computePairAmount({ ... }) يعيد نفس الأرقام إذا كنت تريدها لمعاينة واجهة المستخدم.
سحب السيولة
المصدر:src/cpmm/withdraw.ts
جمع رسوم البروتوكول/الصندوق/المنشئ
المصدر:src/cpmm/collectCreatorFee.ts، src/cpmm/collectAllCreatorFee.ts
جمع البروتوكول والصندوق يبقى محمياً بالسلطة. رسوم المنشئ لها مساران: CollectCreatorFee الموقّع من المنشئ، و CollectCreatorFeePermissionless الإضافي، الذي يمكن لأي دافع استدعاؤه لكن يمكنه نقل فقط إلى ATAs المنشئ الكنسية. 0.2.64-alpha يشحن منشئي مستوى الوحدة لكلا مساري المنشئ:
تعليمات المنشئ الاثنتان لها مميزات وتخطيطات حسابات مختلفة — الواحد
بدون إذن يستبدل موقّع المنشئ بدافع منفصل و
منشئ غير موقّع. استخدم المنشئ المطابق بدلاً من تبديل الحسابات يدويًا على الآخر.لا يوجد منشئ رسوم بروتوكول أو صندوق في SDK (
makeCollectProtocolFeeInstruction و
makeCollectFundFeeInstruction لا توجد تحت أي اسم) — تلك مسارات إدارية، وكذلك
CreateCreatorFeeShare / CloseCreatorFeeShare، التي لا تملك منشئ أيضاً. منشئو التعليمات
منخفضة المستوى التي تفعل موجودة هي collectCpFeeInstruction،
makeCollectCreatorFeeInstruction و collectCreatorFeePermissionlessInInstruction.PoolState:
هيكل Rust CPI
إذا كنت تريد استدعاء CPMM من برنامج Anchor الخاص بك — على سبيل المثال، خزينة تقوم بـ swap نيابة عن المودعين — سياق CPI يبدو هكذا. ترتيب الحساب يتبعproducts/cpmm/instructions.
CpiContext::new بـ CpiContext::new_with_signer ومرّر بذورك.
الأخطاء الشائعة
قائمة تحقق قصيرة قبل فتح تذكرة دعم:- الرموز المرتبة. إذا كان
poolStatePDA المشتق الخاص بك لا يطابق pool على السلسلة، فربما نسيت ترتيب الرموز. - اقتباس API قديم. لا تمرّر قيمة احتياطي من
api-v3.raydium.ioإلىCurveCalculator.swap. اجلب من RPC. - برنامج الرموز الخاطئ. خزينة mint Token-2022 مملوكة من قبل برنامج Token-2022، وليس من قبل SPL Token. استخدم دائماً حقول pool
token_0_program/token_1_program. - Slippage تحت المقسوم عليه لرموز رسوم النقل. إذا كان أي جانب من pool هو mint Token-2022 برسوم نقل، فإن
minimum_amount_outالخاص بك يجب أن يكون مقوّماً بما يتلقاه المستخدم فعلاً، وليس بما تُرسله الخزينة. NotApprovedعلى swap. تحقق منPoolState.status— قد يكون المسؤول قد أوقف swaps على هذا pool. انظرproducts/cpmm/instructionsلقناع الحالة.
أين تذهب بعد ذلك
sdk-api/typescript-sdk— مرجع SDK الكامل.sdk-api/rest-api— نقاط نهاية الاقتباس وبيانات وصف pool.user-flows/create-cpmm-pool— شرح بدون كود لنفس التدفق.integration-guides/aggregator— إذا كنت توجّه CPMM كجزء من مسار متعدد الخطوات.

