Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →

المتطلبات الأساسية

كل مثال في هذه الصفحة يعكس ملف في raydium-sdk-V2-demo/src/cpmm؛ الرابط إلى GitHub يظهر بجانب كل قسم. يتبع الإعداد الأولي ملف config.ts.template من مستودع العروض التوضيحية (المصدر):
تمثل نسخة Raydium واجهة SDK — يستخدمها كل مثال أدناه. يتم جلب قوائم الرموز وإعدادات الرسوم بشكل كسول من api-v3.raydium.io؛ يمكنك إعدادها ببيانات خاصة بك في البيئات غير المتصلة.

إنشاء مجمع CPMM

المصدر: src/cpmm/createCpmmPool.ts
بعض الأشياء التي يتولاها SDK بصمت:
  • ترتيب الرموز حسب ترتيب token0/token1 قبل اشتقاق PDA.
  • دفع create_pool_fee لمرة واحدة إلى poolFeeAccount.
  • إنشاء حسابات الرموز المرتبطة للمستدعي إذا كانت مفقودة.
  • اختيار برنامج الرمز الصحيح (SPL Token مقابل Token-2022) لكل جانب.
بعد التأكيد، يمكنك جلب حالة المجمع الحية باستخدام:

المبادلة (الإدخال الأساسي)

المصدر: src/cpmm/swap.ts
ملاحظة: SDK يجلب دائماً حالة المجمع من RPC داخل getPoolInfoFromRpc. لا تحصل على عرض من api-v3.raydium.io لمعاملة أنت على وشك التوقيع عليها — قد يحدث انزلاق لعرض قديم بمقدار كتلة واحدة إلى ExceededSlippage عند وقت الهبوط.

المبادلة (الإخراج الأساسي)

المصدر: src/cpmm/swapBaseOut.ts

إيداع السيولة

المصدر: src/cpmm/deposit.ts
يحول SDK lpAmount إلى needed_token_0 و needed_token_1 باستخدام الاحتياطيات الحالية للمجمع، ويضخم كل واحد بـ 1 + slippage لحجج maximum_* الخاصة بالتعليمات، ويبني عمليات إنشاء ATA إذا لزم الأمر.

سحب السيولة

المصدر: src/cpmm/withdraw.ts

جمع رسوم البروتوكول والصندوق والمنشئ

المصدر: src/cpmm/collectCreatorFee.ts، src/cpmm/collectAllCreatorFee.ts هذه التعليمات محمية بالمسؤول أو منشئ وعادة ما يتم استدعاؤها من موقّع يحتفظ به نطاق Raydium متعدد التوقيع أو منشئ المجمع. SDK يعرضها كمنشئي خام:
خارج السلسلة، يمكنك قراءة الرسوم المستحقة مباشرة من PoolState:

هيكل عظمي لـ Rust CPI

إذا كنت تريد استدعاء CPMM من برنامج Anchor الخاص بك — على سبيل المثال، خزان يقوم بمبادلة نيابة عن المودعين — يبدو سياق CPI كما يلي. ترتيب الحساب يتبع products/cpmm/instructions.
إذا وقّع CPI كـ PDA (على سبيل المثال، تدير خزانًا نيابة عن المودعين)، استبدل 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 لقناع الحالة.

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

المصادر: