هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لافتة الإصدار.
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - الكتلة: Solana
mainnet-beta - معرّف برنامج Stable AMM:
5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h(انظرreference/program-addresses) - آخر تحقق: 2026-09-09 مقابل مصدر SDK
0.2.64-alphaوعروض amm/trade التوضيحية فيraydium-sdk-V2-demo
liquidity في SDK تتعامل مع مجمعات Stable AMM بشكل أصلي. تظهر مجمعات الاستقرار كـ version: 5 (أو pooltype: "StablePool") على ApiV3PoolInfoStandardItem؛ نفس مساعدات addLiquidity / removeLiquidity / swap تعمل معها كما هو الحال مع مجمعات الناتج الثابت AMM v4 (version: 4) — يكتشف SDK المتغير ويصدر التعليمات الصحيحة تلقائيًا. رياضيات منحنى الاستقرار خارج السلسلة توجد في src/raydium/liquidity/stable.ts.الإعداد
تحديد مجمع Stable
إشارتان متكافئتان علىApiV3PoolInfoStandardItem:
version: 4، الناتج الثابت) و Stable AMM (version: 5) عبر نفس واجهة برمجة تطبيقات LiquidityModule على SDK. داخليًا تتفرع الوحدة إلى:
InstructionType.AmmV4AddLiquidity/AmmV4RemoveLiquidityلمجمعات v4InstructionType.AmmV5AddLiquidity/AmmV5RemoveLiquidityلمجمعات v5 (Stable)
programId للمجمع (المُرجع مع مفاتيح المجمع) SDK ببرنامج CPI؛ لا تحتاج إلى ترميزه بشكل ثابت.
البحث عن مجمع حسب زوج العملات
المبادلة عبر مجمع Stable
تدفقLiquidityModule.swap له نفس الشكل كما هو الحال مع مجمعات v4 — فقط سلّمه كائن v5. هناك تفصيلان من السهل الخطأ فيهما: computeAmountOut يحتاج إلى الاحتياطيات الحية للمجمع المدمجة في معلومات المجمع (عنصر واجهة برمجة التطبيقات وحده لا يحملها)، و slippage الخاص به هو رقم عادي، وليس Percent:
programId للمجمع من مفاتيح المجمع ويتفرع إلى برنامج Stable AMM. لا يلزم أي حجة programId خاصة.
إضافة وإزالة السيولة
يعملaddLiquidity و removeLiquidity بشكل متطابق عبر مجمعات v4 و v5:
InstructionType.AmmV5AddLiquidity لأن pooltype.includes("StablePool") صحيح. تدفق removeLiquidity المقابل متماثل — أدخل lpAmount والحد الأدنى من المبالغ التي ستقبلها على كل جانب.
مساعدات الاقتباس خارج السلسلة (stable.ts)
للاقتباس من جانب الخادم أو الاختبار العكسي، يكشف SDK عن رياضيات منحنى الاستقرار الأساسية:ModelDataInfo على السلسلة مرة واحدة بواسطة initLayout() وتخزينها مؤقتًا داخل raydium.liquidity.stableLayout، قابلة للقراءة كـ .stableModelData. initStableModelLayout() عملية متكررة: تعيد الجلب فقط بينما validDataCount === 0، لذا استدعاء initLayout() مرة أخرى مجاني. مرر الاحتياطيات الحالية (x, y) والمساعدات تحسب بالبحث الثنائي عن جدول البحث والاستيفاء الخطي بين صفي DataElement المحيطين. انظر products/stable/math للخوارزمية الأساسية.
التوجيه عبر AMM Routing (متعدد القفزات / أفضل سعر)
إذا كنت لا تريد اختيار مكان بنفسك، فسيأخذ برنامج AMM Routing في الاعتبار كل Raydium AMM (v4 / CPMM / CLMM / Stable) والتوجيه عبر أي مزيج هو الأفضل: الموجه عبارة عن خط أنابيب من خمس استدعاءات بدلاً منswap() واحد، وهو مكتوب بالكامل — مع نصيحة التخزين المؤقت التي تجعله قابلاً للاستخدام في الإنتاج — على products/routing/code-demos. الشكل هو:
التوصيات
- لمبادلات المستخدم النهائي، فضّل تدفق التوجيه
tradeV2. يتعامل مع كل نوع مجمع Raydium بما في ذلك Stable. - للعمليات الخاصة بالمجمع (إضافة / إزالة LP على مجمع Stable معروف)، استخدم
LiquidityModuleمباشرة — يكتشف تلقائيًا مجمعات v5. - للاقتباس خارج السلسلة / التحليلات، استدعِ
getStablePrice/getDyByDxBaseIn/getDxByDyBaseInبعدinitLayout(). لا حركة RPC لكل اقتباس بعد تخزين بيانات النموذج مؤقتًا. - لا تقم بترميز تعليمات
SwapBaseInالخام يدويًا. أزالت ترقية 2026-06-22 حسابات OpenBook الميتة، لذا يأخذ تخطيط المبادلة الجديد 9 حسابات (التخطيط القديم 18 حساب لا يزال يحلل للتوافق العكسي).Depositالآن 12 حساب (القديم 14 متوافق)،Withdraw12 (القديم 21/22 متوافق)، وWithdrawPnl10 بدون مسار توافق. تختار مساعدات SDK المدمجة مسبقًا التخطيط والترتيب الصحيح لك؛ لف الخاص بك عرضة للخطأ. انظرproducts/stable/instructionsلجداول الحسابات الكاملة.
أين تذهب بعد ذلك
- الرياضيات — كيفية عمل استيفاء جدول البحث.
- التعليمات — مرجع التعليمات الكامل.
- AMM Routing — التوجيه متعدد المجمعات عبر AMM v4، CPMM، CLMM، Stable.
raydium-sdk-V2/src/raydium/liquidity/liquidity.ts— نقطة دخول الوحدة؛ إرسال v4 / v5.raydium-sdk-V2/src/raydium/liquidity/stable.ts—StableLayout،getStablePrice،getDxByDyBaseIn،getDyByDxBaseIn.

