Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
Stable AMM هو برنامج مستقل؛ هيكل حساباته على جانب المجمع يشبه AMM v4 (AmmInfo والخزائن والسلطة)، وبالإضافة إلى ذلك يحتوي على حساب ModelDataInfo يخزن جدول البحث. تغطي هذه الصفحة كليهما.

الجرد

AMM خالص. يحتفظ Stable AMM بكل السيولة في خزائنه الخاصة ولا يعتمد على OpenBook. كان لديه مسار صنع السوق على OpenBook في بداية حياته، لكن هذا المسار ظل خاملاً لسنوات، وترقية 2026-06-22 أزالت الكود المتبقي. حسابات السوق serum_* و amm_open_orders أدناه هي بالتالي إرث قديم: قد تظهر لا تزال في معاملات التخطيط القديم للتوافقية العكسية، لكن البرنامج لا يتحقق منها أو يقرأها، والتعليمات ذات التخطيط الجديد تحذفها بالكامل.
الجرد النشط الآن على جانب المجمع بالكامل:

AmmInfo

حساب الحالة الجذري. التخطيط متطابق تقريباً مع AMM v4 — معاملات المجمع والعشريات والرسوم والمراجع إلى الخزائن والعملات — مع إضافة واحدة: حقل model_data_key يشير إلى جدول البحث.
الحقول الرئيسية الموجهة للمدمجين:
  • model_data_key — عنوان جدول البحث. يجب تمريره إلى كل تعليمة.
  • fees — هيكل متطابق مع AMM v4. الافتراضي هو رسم تجارة 0.25%، تقسيم LP 0.22% / بروتوكول 0.03%.
  • coin_vault, pc_vault — خزائن المجمعات.
  • status — bitmask يتحكم في swap/deposit/withdraw/crank.
  • out_put.need_take_pnl_* — يتم مسحها بواسطة WithdrawPnl.

ModelDataInfo

جدول البحث. مصفوفة متفرقة كبيرة من نقاط السعر والكمية.
دورة الحياة: تم حذف التعليمات الإعدادية التي بنت هذه الجداول — InitModelData (أنشأت الحساب) و UpdateModelData (ملأت العناصر، وضبط valid_data_count) — في ترقية 2026-06-22. الجداول في المجمعات الموجودة الآن ثابتة. في وقت التشغيل، التعليمات القابلة للاستدعاء المتبقية لا تزال تستهلكها:
  • Swap / deposit / withdraw تستدعي دوال البحث التي تبحث ثنائياً وتقحم داخل elements[0..valid_data_count].

DataElement

الإدخال الذري في الجدول. يجب أن يكون مرتباً (x تصاعدي، y تنازلي، السعر تصاعدي) لكي يعمل البحث الثنائي.
عند ملء الجدول، يحدد المسؤول هذه مقاسة مسبقاً. البرنامج لا يتحقق من ترتيب الفرز على السلسلة (للسرعة)، لذا الترتيب الخاطئ يسبب اقتباسات غير صحيحة.

السلطة والخزائن

نفس AMM v4:
  • amm_authority هو PDA واحد على مستوى البرنامج مشتق بـ seed ["amm authority"]. يمتلك جميع خزائن المجمع ويوقّع حركاتها.
  • الخزائن هي حسابات SPL Token يملكها amm_authority، وليست ATAs.
Token-2022 غير مدعوم.

bitmask الحالة

متطابق مع AMM v4. يتحكم في ما إذا كانت swap/deposit/withdraw/crank مفعلة.

تتبع الرسوم و PnL

يتتبع هيكل out_put:
  • need_take_pnl_coin, need_take_pnl_pc — رسوم البروتوكول المتراكمة لكن لم يتم مسحها بعد. WithdrawPnl ينقلها للخارج.
  • swap_coin_in_amount, swap_pc_in_amount، إلخ. — عدادات التحليلات.
حساب أصول المجمع (بعد الفصل). لأنه لا توجد أموال مرهونة كأوامر مفتوحة على OpenBook بعد الآن، يتم حساب إجمالي أصول المجمع الآن بالكامل من الخزائن:
يجب على المفهرسات وكود الاقتباس الذي أعاد بناء قيمة المجمع من أرصدة OpenOrders أن يحذف هذا الحد.

حجم الحساب

ModelDataInfo كبير (~1.2 MB، لأن 50,000 عنصر × 24 بايت لكل عنصر). هذا هو السبب في أن إنشاء مجمع Stable يتطلب تخصيص إيجار وحساب صريح. SDK و أدوات Raydium تتعامل مع هذا بشفافية؛ المدمجون نادراً ما يحتاجون إلى تخصيص يدوي.

اشتقاق الحسابات من الصفر

مثل AMM v4، يستخدم Stable AMM مفاتيح مزروعة (وليست PDAs خالصة). هوية المجمع الكنسية مشتقة عبر:
وبالمثل للخزائن وعملة LP والأوامر المستهدفة، إلخ. في الممارسة العملية، استخدم SDK أو API لجلب العناوين المحسوبة مسبقاً.

ما يجب قراءته أين

المصادر: