هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
بيان الإصدار. جميع أمثلة TypeScript تستهدف
@raydium-io/raydium-sdk-v2@0.2.42-alpha على Solana mainnet-beta، تم التحقق منها في 2026-04. هيكل عظمي Rust CPI يستهدف raydium-cp-swap على فرع master، Anchor 0.30.x. يتم سحب معرفات البرامج عبر ثوابت من reference/program-addresses.المتطلبات الأساسية
raydium-sdk-V2-demo/src/cpmm؛ رابط GitHub يقع بجانب كل قسم. يتبع التمهيد ملف config.ts.template من مستودع العرض التوضيحي (المصدر):
Raydium هو واجهة SDK — كل مثال أدناه يستخدمه. يجلب قوائم الرموز وتكوينات الرسوم بكسل من api-v3.raydium.io؛ يمكنك تعيينها ببيانات خاصة بك في البيئات غير المتصلة بالإنترنت.
إنشاء pool CPMM
المصدر:src/cpmm/createCpmmPool.ts
- فرز الـ mints إلى ترتيب 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
lpAmount إلى needed_token_0 و needed_token_1 باستخدام احتياطيات pool الحالية، ينفخ كل واحد بـ 1 + slippage لحجج maximum_* الخاصة بالتعليمات، وينشئ ATAs إذا لزم الأمر.
سحب السيولة
المصدر:src/cpmm/withdraw.ts
جمع رسوم البروتوكول/الصندوق/المنشئ
المصدر:src/cpmm/collectCreatorFee.ts، src/cpmm/collectAllCreatorFee.ts
جمع البروتوكول والصندوق يبقى محمياً بالسلطة. رسوم المنشئ لها مساران: CollectCreatorFee الموقع من المنشئ الموجود، و CollectCreatorFeePermissionless الإضافي، الذي يمكن لأي دافع استدعاؤه لكن يمكنه نقل فقط إلى ATAs الكنسية للمنشئ. يكشف SDK المثبت عن منشئي الخام الموجودين:
PoolState:
هيكل عظمي Rust CPI
إذا كنت تريد استدعاء CPMM من برنامج Anchor الخاص بك — على سبيل المثال، vault يقوم بـ swap نيابة عن المودعين — سياق CPI يبدو هكذا. ترتيب الحساب يتبعproducts/cpmm/instructions.
CpiContext::new بـ CpiContext::new_with_signer وأمرر بذورك.
الأخطاء الشائعة
قائمة تحقق قصيرة قبل فتح تذكرة دعم:- Sorted mints. إذا كان
poolStatePDA المشتق الخاص بك لا يطابق pool على السلسلة، فربما نسيت فرز الـ mints. - Stale API quote. لا تمرر قيمة احتياطي من
api-v3.raydium.ioإلىCurveCalculator.swap. اجلب من RPC. - Wrong token program. vault mint Token-2022 مملوك ببرنامج Token-2022، وليس بـ SPL Token. استخدم دائماً حقول
token_0_program/token_1_programالخاصة بـ pool. - Slippage under-denominated for transfer-fee mints. إذا كان أي جانب من pool هو mint Token-2022 transfer-fee، فإن
minimum_amount_outالخاص بك يجب أن يكون مقوماً بما يتلقاه المستخدم فعلياً، وليس بما يرسله vault. NotApprovedon a 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 كجزء من مسار متعدد الخطوات.

