Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لافتة الإصدار. تتناول هذه الصفحة
@raydium-io/raydium-sdk-v2@0.2.42-alpha، وهو الإصدار المُتحقَّق من كل عرض توضيحي للكود في هذا الموقع (2026-04). SDK في مرحلة ما قبل 1.0 وتطورت سطح الأنواع عبر الإصدارات — قم بتثبيت إصدار محدد.التثبيت
.d.ts بجانب artifact JS الخاص به. أدنى مجموعة أدوات: Node 18+، TypeScript 5.0+، moduleResolution: "bundler" أو "node16".
التهيئة
نقطة الدخول هيRaydium.load:
Raydium.load غير متزامن لأنه يجلب حمولة /config صغيرة من api-v3.raydium.io عند بدء التشغيل (حيث يتم سرد حسابات AmmConfig الحالية وفئات الرسوم وما إلى ذلك). عيّن disableFeatureCheck: true في البيئات غير المتصلة؛ سيتعين عليك توفير تلك القيم يدويًا لبعض المنشئين.
واجهات الوحدات الأربع
بمجرد التحميل، يكشف الكائنraydium عن أربع واجهات وحدات، واحدة لكل سطح منتج:
trade و token كأدوات دعم مساعدة.)
منشئو المعاملات
تُرجع كل دالة طفرة منشئًا بدلاً من التنفيذ الفوري:execute— دالة راحة توقّع وترسل. مكافئة لـbuilder.execute.builder— مثيلTxBuilderمع جميع التعليمات والموقِّعين المتراكمة. استدع.build()للحصول علىVersionedTransaction[]؛ مفيد عندما تحتاج إلى إدراج تعليماتك الخاصة أو التوقيع باستخدام موقِّعين خارجيين.transaction/innerTransactions— مصفوفات التعليمات الخام. استخدم عند بناء معاملات متعددة البرامج المركبة.extInfo— إضافات خاصة بالمنتج. على سبيل المثال،createPoolترجعextInfo.poolId؛createLaunchpadترجع PDA حالة الإطلاق الجديدة.
txVersion يتحكم في صيغة المعاملات القديمة مقابل V0. يُوصى افتراضيًا بـ V0 (جداول البحث عن ال주소) — فهو يسمح بدخول swaps أكبر في معاملة واحدة.
لماذا منشئو غير متزامنين؟
يجلب كل منشئ داخليًا حالة on-chain تقريبًا: معلومات المجموعة (للاقتباسات)، ملكية برنامج الرموز (لـ Token-2022 مقابل توجيه SPL)، إعفاء الإيجار للحساب (لإنشاء ATA)، وما إلى ذلك. SDK يخزن مؤقتًا بعدوانية لكن الاستدعاء الأول لمجموعة جديدة يتضمن جولات RPC. احتفظ بمثيلraydium طويل المدى لتجنب إعادة الجلب.
إضافات وحدة CLMM (أحدث إصدار)
اكتسبت واجهة CLMM أسطحًا للميزات الجديدة للرسوم الديناميكية والرسوم أحادية الجانب وأوامر الحدود:raydium.clmm.createCustomizablePool— مجموعة فائقة منcreatePoolالتي تقبلcollectFeeOnوenableDynamicFeeوdynamicFeeConfigId. استخدم هذا لأي مجموعة جديدة تحتاج إلى الأزرار الجديدة؛ يستمرcreatePoolالكلاسيكي في العمل للمجموعات الافتراضية الرسوم.raydium.clmm.openLimitOrder— فتح أمر حد على علامة واحدة في مجموعة تدعمها. يأخذpoolInfoوpoolKeysوlimitOrderConfig(من/main/clmm-limit-order-config) وinputMintوinputAmountوالـtickالمستهدف.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— اضبط الجزء غير المملوء من أمر موجود. الانخفاض ينعكس في أمر مملوء بالكامل معInvalidOrderPhase.raydium.clmm.settleLimitOrder/settleAllLimitOrder— اكسح المخرجات المملوءة إلى ATA المالك. يمكن لمالك الأمر أو حارسlimit_order_adminللمجموعة استدعاؤها.raydium.clmm.closeLimitOrder/closeAllLimitOrder— أغلق الأوامر المستقرة بالكامل لاسترجاع الإيجار.raydium.api.getClmmDynamicConfigs()/getClmmLimitOrderConfigs()— مساعدات REST التي تضرب نقاط النهاية الجديدة/main/clmm-dynamic-configو/main/clmm-limit-order-config.
utils/ إلى libraries/. يجب على الكود الذي استورد من @raydium-io/raydium-sdk-v2/utils/... الانتقال إلى @raydium-io/raydium-sdk-v2/libraries/.... برميل الحزمة على المستوى الأعلى لم يتغير، لذا لا يرى معظم المستخدمين إعادة التسمية أبدًا.
تُوجد الشروح التفصيلية من البداية إلى النهاية في TypeScript في products/clmm/code-demos.
الأخطاء الشائعة
1. عدم تطابق العنقود
تكوين بدء SDK الخاص بـ SDK خاص بالعنقود. خلطcluster: "mainnet" مع Connection devnet يسبب توجيهًا صامتًا خاطئًا: SDK يقتبس ضد mainnet AmmConfig لكنه يرسل إلى devnet. مرر الاثنين دائمًا.
2. نسيان إنشاء ATAs مسبقًا
عند أول تفاعل مع mint، قد لا يكون Associated Token Account للمستخدم موجودًا. SDK يُسبق تلقائيًا تعليماتAssociatedTokenAccount::create عندما يكتشف ATA مفقودًا، مما يكلف قدرًا صغيرًا من الإيجار. إذا كان محفظتك منخفضة على SOL سيفشل بصمت. تحقق وموّل قبل إعادة المحاولة.
3. poolInfo قديم
poolInfo لقطة مخزنة مؤقتًا. إذا تغيرت حالة المجموعة منذ جلبتها (حركة كبيرة حركت السعر، على سبيل المثال)، قد يتم حساب minAmountOut للـ swap مقابل الحالة القديمة والهبوط تحت المبلغ على السلسلة، مما يعكس. أعد جلب poolInfo فورًا قبل بناء المعاملات عالية القيمة، أو استخدم computeAmountOut الخاص بـ SDK الذي يعيد الاستعلام عن الاحتياطيات.
4. رسوم الأولوية
SDK لا يضيف أسعار وحدات الحساب افتراضيًا. في نوافذ الحجم العالي (إطلاقات المجموعات الجديدة وأحداث العملات المسخرة) هذا يعني أن معاملتك تتنافس مع أخرى كثيرة وقد لا تهبط. وفّرcomputeBudgetConfig صريح:
integration-guides/priority-fee-tuning لإرشادات التحديد.
5. تحمل الانزلاق يجب أن يطابق نوع المجموعة
CPMM و AMM v4 هي رياضيات CPMM (تأثير منخفض على التداولات العادية). CLMM متعددة الأجزاء (التأثير يقفز عند عبور التسميات). إذا نسخت تحمل انزلاق 0.5٪ من مثال CPMM إلى swap CLMM يعبر عدة علامات، فمن المحتمل أن تنعكس المعاملة.computeAmountOut الخاص بـ SDK يُرجع priceImpact؛ حجم تحملك فوقه.
6. BN مقابل number
جميع حقول المبلغ في SDK هي نسخ BN من bn.js — أبدًا JavaScript number. تحويل قيم المبلغ عبر .toNumber() يُقطع صامتًا عند 2^53؛ لأي قيمة فوق ~9 مليار مليار (ليس نادرًا على mints 9-عشري)، هذا ينتج النتيجة الخاطئة. احتفظ بكل شيء في BN حتى عرض الواجهة الأمامية النهائي.
سياسة الإصدارات
@raydium-io/raydium-sdk-v2هو SDK الوحيد الذي يحتفظ به Raydium. جميع الوثائق والعروض التوضيحية وإرشادات التكامل تستهدفه.- حزمة v1 أقدم (
@raydium-io/raydium-sdk) موجودة على npm لأسباب تاريخية. انتهت الصيانة بعد شحن CPMM و LaunchLab (v1 لم تحصل أبدًا على الدعم لكليهما)، ولم تكن هناك إصدارات v1 منذ 2024. اعتبر v1 انتهى من العمل: لا تستخدمه للكود الجديد، وهاجر أي عمليات تكامل v1 المتبقية إلى v2. - SDK v2 في مرحلة ما قبل 1.0. التغييرات الكسرية بين الإصدارات الثانوية 0.x ممكنة؛ ثبّت الإصدار الذي تحققت منه واطّلع على ملاحظات إصدار GitHub عند الترقية.
الترقية
عند الترقية بين الإصدارات الثانوية للـ SDK:- أعد فحص نوع الإرجاع لكل استدعاء طفرة — تغييرات الشكل (على سبيل المثال،
extInfo) تهبط بشكل متكرر. - أعد إنشاء توقيعات جلب
poolInfo— قد تم إعادة تسمية حقل. - أعد التحقق من معالجة الانزلاق الخاصة بك؛ تحول SDK بين السلوك المحدود تلقائيًا والسلوك المحدود اختياريًا عبر الإصدارات.
- إذا كنت تستخدم
raydium.trade(التوجيه)، أعد التحقق من شكل المسار — فهو الجزء الأقل استقرارًا من السطح.
الحصول على المساعدة
لأسئلة SDK و API:- مشاكل GitHub — أرسل إلى github.com/raydium-io/raydium-sdk-V2/issues للأخطاء والطلبات الميزة. فريق Raydium يراقب بنشاط.
- Discord — قناة
#dev-supportفي discord.gg/raydium للمساعدة المتزامنة. - Telegram — دردشة المطورين المرتبطة من raydium.io (تجنب مجموعات Telegram غير المتحقق منها).
security/disclosure.
مؤشرات
sdk-api/rest-api— المكمل HTTP للـ SDK.sdk-api/trade-api— معاملات swap المدمجة على الخادم.sdk-api/anchor-idl— إعادة تطبيقات التوليد مباشرة من IDLs البرنامج.sdk-api/python-integration— المكافئ Python عبرsolana-py.integration-guides/priority-fee-tuning— تحديد حجمcomputeBudgetConfig.
- Raydium SDK v2 source
- ملاحظات إصدار Raydium SDK.


