الانتقال إلى المحتوى الرئيسي
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
Stable AMM هو برنامج مستقل (معرّف برنامج خاص به — لا يتم تداوله عبر برنامج AMM v4). لقد توقف عن نشر الأوامر على OpenBook منذ زمن طويل؛ مسار صنع السوق على OpenBook كان خاملاً لسنوات. هذا الترقية هي التنظيف: تزيل الحسابات والكود المتعلقة بالسوق الميتة الآن من تخطيطات التعليمات. لا تغيّر أي سلوك تداول مباشر — لم تكن هناك أوامر OpenBook متبقية للتوقف عن وضعها.

ملخص سريع للمدمجين

  • Swap / Deposit / Withdraw تستمر في العمل بدون تغييرات. المعاملات المبنية بتخطيطات الحساب القديمة تنفذ بنجاح — حسابات Serum/السوق المحذوفة يتم تجاهلها ببساطة. لا تضطر إلى شحن تحديث عميل للحفاظ على التدفقات الموجودة.
  • لكن يجب أن تهاجر إلى التخطيطات الجديدة الأصغر قريباً. التخطيطات الجديدة تسقط حسابات السوق الميتة، مما يقلل حجم المعاملة: SwapBaseIn / SwapBaseOut تذهب 18 → 9 حسابات، Deposit 14 → 12، Withdraw 21 (+1 اختياري) → 12. سيتم إزالة مسار التوافق في إصدار مستقبلي.
  • WithdrawPnl هو تغيير كسر صعب (مسؤول فقط). يذهب 16 (+1 اختياري) → 10 حسابات بدون تحليل توافق. إرسال التخطيط القديم يفشل مع أخطاء التحقق مثل InvalidTokenCoin بسبب عدم محاذاة الحساب (القديم #3 كان open_orders). أي أداة إدارة تستدعي WithdrawPnl يجب أن تُحدّث.
  • رسم الإحالة محذوف على Withdraw و WithdrawPnl. حساب referrer_pc_wallet الاختياري يمكن لا يزال تمريره للتوافق العكسي على التخطيط القديم لـ Withdraw، لكنه لم يعد له تأثير.
  • محاسبة أصول المجموعة مبسطة. إجمالي أصول المجموعة الآن أرصدة الخزينة − PnL المعلقة؛ مصطلح OpenBook open-order — بالفعل صفر عملياً — محذوف من الصيغة. يجب على الفهارس وكود الاقتباس الذي أضاف مصطلح OpenOrders أن يزيله.
  • معظم التعليمات محذوفة الآن. فقط SwapBaseIn، SwapBaseOut، Deposit، Withdraw، و WithdrawPnl تبقى قابلة للاستدعاء. Initialize، PreInitialize، InitModelData، UpdateModelData، MonitorStep، SetParams، WithdrawSrm، و SimulateInfo لم تعد قابلة للاستدعاء.

لماذا هذا مهم (للمتداولين والمزودين والمدمجين)

  • المتداولون لا يرون تغييراً في سلوك المبادلة أو شكل التسعير — منحنى جدول البحث لم يتغير. المبادلات بالتخطيط الجديد أرخص للتنفيذ لأن المعاملة تحمل تسعة حسابات أقل.
  • مزودو السيولة يحافظون على نفس اقتصاديات الإيداع/السحب. السيولة جلست بالكامل في خزائن المجموعة لفترة طويلة، لذا قيمة المجموعة بالكامل على المجموعة؛ هذا الترقية فقط يحذف السباكة البالية للسوق.
  • المدمجون يحصلون على معاملات أصغر وأبسط وموديل اقتباس بمصطلح واحد أقل (بالفعل بقايا). التكاملات الموجودة لا تنكسر (باستثناء WithdrawPnl للمسؤول)، لكن shim التوافق مؤقت — هاجر في وقتك المناسب، قبل إزالته.

تغييرات على مستوى التعليمات

SwapBaseIn / SwapBaseOut — 18 → 9 حسابات (التخطيط القديم لا يزال متوافقاً)

تسعة حسابات OpenBook (amm_open_orders، serum_program، serum_market، serum_bids، serum_asks، serum_event_queue، serum_coin_vault، serum_pc_vault، serum_vault_signer) محذوفة. التوافق: إذا تلقت التعليمة عدداً من الحسابات غير 9، يتم تحليلها بالتخطيط القديم 18-حساب؛ يجب أن تحتل حسابات Serum مواضعها لكن محتوياتها لم تعد يتم التحقق منها أو استخدامها.

Deposit — 14 → 12 حساباً (التخطيط القديم لا يزال متوافقاً)

amm_open_orders (القديم #3) و serum_market (القديم #9) محذوفة. عند تمرير 14 حساباً، يتم تحليل التخطيط القديم للتوافق.

Withdraw — 21 (+1 اختياري) → 12 حساباً (التخطيط القديم لا يزال متوافقاً)

تسعة حسابات Serum محذوفة. التخطيطات القديمة 21- أو 22-حساب لا تزال مقبولة، لكن منطق رسم الإحالة للحساب الاختياري 22 referrer_pc_wallet تم حذفه — يمكن لا يزال تمرير الحساب لكنه لم يعد له تأثير.

WithdrawPnl — 16 (+1 اختياري) → 10 حسابات (⚠️ بدون مسار توافق، كسر صعب)

تخطيط ثابت 10-حساب، مسؤول فقط. لا يوجد تحليل توافق للتخطيط القديم؛ إرساله يفشل مع أخطاء مثل InvalidTokenCoin بسبب عدم محاذاة الحساب. تغيير المنطق: عندما تكون الأموال المتاحة للمجموعة غير كافية للسحب من PnL المتراكم، لم تعد المجموعة توضع في CancelAllOrdersState / Disabled؛ التعليمة ترجع TakePnlError مباشرة. حساب referrer_pc_wallet الاختياري كذلك تم حذفه.

تغيير حساب أصول المجموعة

الصيغة تاريخياً أضافت الأموال التي احتفظت بها المجموعة كأوامر مفتوحة في حساب OpenOrders على OpenBook. هذا المصطلح كان صفراً عملياً منذ توقفت المجموعة عن نشر الأوامر؛ هذا الترقية يسقطه من الصيغة بالكامل، تاركاً حساب الخزينة فقط:
الصيغة
القديمةأرصدة الخزينة + أموال الأوامر المفتوحة (native_coin_total / native_pc_total) − PnL المعلقة (need_take_pnl)
الجديدةأرصدة الخزينة − PnL المعلقة (need_take_pnl)

الصفحات المحدثة

  • products/stable/overview — نموذج AMM نقي، إزالة اعتماد OpenBook، جداول المقارنة وعدد الحسابات محدثة.
  • products/stable/index — “ما هو” وجدول الحقائق الرئيسية لم تعد تدعي اعتماد OpenBook.
  • products/stable/accounts — حسابات OpenBook محذوفة من الجرد؛ حقول Serum/open-orders في AmmInfo وضعت علامة عليها كقديمة/غير مستخدمة؛ ملاحظة أصول المجموعة مضافة.
  • products/stable/instructions — جداول حسابات Swap / Deposit / Withdraw / WithdrawPnl جديدة مع callouts التوافق؛ جميع التعليمات الأخرى (Initialize، PreInitialize، InitModelData، UpdateModelData، MonitorStep، SetParams، WithdrawSrm، SimulateInfo) وضعت علامة عليها كمحذوفة / لم تعد قابلة للاستدعاء.
  • products/stable/math — تحديث صيغة أصول المجموعة؛ قسم MonitorStep / OpenBook أعيد صياغته كمتقاعد منذ زمن طويل.
  • products/stable/fees — قسم “PnL من OpenBook” متقاعد؛ تدفق الجمع لم يعد يسوي ملء OpenBook.
  • products/stable/code-demos — إرشادات عدد الحسابات محدثة؛ SDK لا يزال يجرد اختيار التخطيط.
تم التحقق منه مقابل:
  • مصدر برنامج raydium-stable (بعد الترقية instruction.rs / processor.rs).
  • نشر برنامج Stable AMM على السلسلة على Solana mainnet-beta.