هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
المتطلبات الأساسية
raydium-sdk-V2-demo/src/cpmm؛ رابط GitHub يظهر بجانب كل قسم. يتبع الإعداد الأولي ملف config.ts.template من مستودع العروض التوضيحية (المصدر):
Raydium هي واجهة SDK — كل مثال أدناه يستخدمها. Raydium.load غير متزامن لأنه يحمل قائمة الرموز بشكل افتراضي؛ مرر disableLoadToken: true لتخطي هذا الجلب. فحص توفر الميزات مُتخطى بالفعل ما لم تمرر disableFeatureCheck: false. يتم جلب تكوينات الرسوم بشكل كسول عند الاستخدام الأول عبر raydium.api.getCpmmConfigs().
إنشاء مجمع CPMM
المصدر:src/cpmm/createCpmmPool.ts
- ترتيب الرموز في ترتيب token0/token1 قبل اشتقاق PDA.
- دفع رسوم
create_pool_feeلمرة واحدة إلىpoolFeeAccount. - إنشاء حسابات الرموز المرتبطة للمتصل إذا كانت مفقودة.
- اختيار برنامج الرموز الصحيح (SPL Token مقابل Token-2022) لكل جانب.
المبادلة (إدخال أساسي)
المصدر:src/cpmm/swap.ts
getPoolInfoFromRpc. لا تقتبس من api-v3.raydium.io لمعاملة أنت على وشك التوقيع عليها — اقتباس قديم بمقدار كتلة واحدة يمكن أن ينزلق إلى ExceededSlippage عند وقت الهبوط.
المبادلة (إخراج أساسي)
المصدر: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 يشحن منشئي مستوى الوحدة لكلا مساري المنشئ:
تعليمات المنشئ الاثنتان لها محددات وتخطيطات حسابات مختلفة — الواحد بدون إذن يستبدل
موقّع المنشئ بدافع منفصل و
creator غير موقّع. استخدم المنشئ المطابق بدلاً من تبديل الحسابات
يدويًا على الآخر.لا يوجد منشئ بروتوكول أو صندوق في SDK (makeCollectProtocolFeeInstruction و
makeCollectFundFeeInstruction لا توجد تحت أي اسم) — تلك مسارات إدارية، وكذلك
CreateCreatorFeeShare / CloseCreatorFeeShare، التي ليس لها منشئ أيضاً. منشئو التعليمات
منخفضة المستوى التي تفعل موجودة هي collectCpFeeInstruction،
makeCollectCreatorFeeInstruction و collectCreatorFeePermissionlessInInstruction.PoolState:
هيكل عظمي Rust CPI
إذا كنت تريد استدعاء CPMM من برنامجك Anchor الخاص — على سبيل المثال، خزينة تبادل نيابة عن مودعيها — سياق CPI يبدو هكذا. ترتيب الحساب يتبعproducts/cpmm/instructions.
CpiContext::new بـ CpiContext::new_with_signer ومرر بذورك.
الأخطاء الشائعة
قائمة تحقق قصيرة قبل فتح تذكرة دعم:- الرموز المرتبة. إذا كان PDA
poolStateالمشتق الخاص بك لا يطابق المجمع على السلسلة، فربما نسيت ترتيب الرموز. - اقتباس API قديم. لا تمرر أبداً قيمة احتياطي من
api-v3.raydium.ioإلىCurveCalculator.swap. اجلب من RPC. - برنامج الرموز الخاطئ. خزينة رمز Token-2022 مملوكة ببرنامج Token-2022، وليس بـ SPL Token. استخدم دائماً حقول
token_0_program/token_1_programللمجمع. - الانزلاق تحت المقوّم لرموز رسوم النقل. إذا كان أي جانب من المجمع رمز نقل رسوم Token-2022، فإن
minimum_amount_outالخاص بك يجب أن يكون مقوّماً بما يستقبله المستخدم فعلاً، وليس بما يرسله الخزينة. NotApprovedعلى مبادلة. تحقق منPoolState.status— قد يكون المسؤول قد أوقف المبادلات على هذا المجمع. انظرproducts/cpmm/instructionsلقناع الحالة.
أين تذهب بعد ذلك
sdk-api/typescript-sdk— مرجع SDK الكامل.sdk-api/rest-api— نقاط نهاية الاقتباس وبيانات وصف المجمع.user-flows/create-cpmm-pool— شرح غير برمجي لنفس التدفق.integration-guides/aggregator— إذا كنت توجه CPMM كجزء من مسار متعدد القفزات.

