الانتقال إلى المحتوى الرئيسي
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
توقف AMM v4 عن مشاركة السيولة مع OpenBook (المعروف سابقًا باسم Serum) منذ وقت طويل؛ مسار صنع السوق الهجين القائم على دفتر الطلبات ظل خاملاً لسنوات. هذا الترقية هي عملية التنظيف: تزيل تبعية Serum وجميع CPIs دفتر الطلبات وتعليمات صنع السوق الميتة من البرنامج، تاركة AMM v4 كـ AMM ثابت الحاصل النقي (x·y=k). لا تغير أي سلوك تداول مباشر — لم تكن هناك طلبات OpenBook متبقية لإيقاف وضعها.

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

  • Swap / Deposit / Withdraw تستمر في العمل بدون تغييرات. المعاملات المبنية بتخطيطات الحسابات القديمة تستمر في التنفيذ — حسابات Serum/السوق المحذوفة يتم تجاهلها ببساطة (بدون تحقق، بدون CPI). SwapBaseIn / SwapBaseOut لا تزال تتوقع 17 (+1 اختياري) حساب؛ تخطيطات Deposit و Withdraw لم تتغير. لا تحتاج إلى شحن تحديث عميل للحفاظ على تدفقات موجودة.
  • انتقل إلى نقاط دخول V2 swap. SwapBaseInV2 / SwapBaseOutV2 لا تحمل حسابات سوق ولا amm_open_orders (8 حسابات إجمالاً)، لذا المعاملات أصغر وأرخص. يجب على الموجهات/المجمعات التوجيه عبر V2.
  • WithdrawPnl تشكل تغييرًا جذريًا (للمسؤول فقط). تنتقل من 17 (+1 اختياري) → 10 حساب بدون تحليل توافق؛ التخطيط القديم لا يتوافق (الرقم 5 القديم كان amm_open_orders) ويفشل التحقق. يجب تحديث أدوات المسؤول.
  • SetParams تشكل تغييرًا جذريًا (للمسؤول فقط). تنكمش الحسابات إلى [amm, admin]، وتعداد param معاد ترقيمه (Fees 9 → 2، SetOpenTime 11 → 3)؛ تم حذف AmmOwner و LastOrderDistance و UpdateOpenOrder وپارامترات الشبكة.
  • عدة تعليمات لم تعد قابلة للاستدعاء. Initialize و PreInitialize و MonitorStep و MigrateToOpenBook و WithdrawSrm و SimulateInfo و AdminCancelOrders تعود الآن. استخدم Initialize2 لإنشاء مجموعات.
  • تخطيطات الحسابات على السلسلة مستقرة بايت، وأكواد الخطأ لم تتغير. AmmInfo / StateData تحتفظ بتخطيطها (حقول OpenBook القديمة محتفظ بها لكن مهملة/مجمدة)؛ ترقيم AmmError محفوظ، مع إضافة NotAllowed جديد فقط.

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

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

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

لا تزال قابلة للاستدعاء، التخطيط لم يتغير (متوافق للخلف)

Initialize2 و Deposit و Withdraw و SwapBaseIn و SwapBaseOut و CreateConfigAccount و UpdateConfigAccount تحتفظ بقوائم حساباتها الموجودة. على SwapBaseIn / SwapBaseOut و Deposit و Withdraw، حسابات OpenBook/السوق لا تزال مقبولة موضعيًا لكن لم تعد يتم التحقق منها أو استخدامها — لا يتم إصدار CPI وتُحسب احتياطيات المجموعة من الخزائن فقط. عدد الحساب يجب أن يطابق بعد، لذا المعاملات الموجودة تستمر في التنفيذ دون تغيير.

SwapBaseInV2 / SwapBaseOutV2 — المسار الموصى به

حذف حسابات السوق و amm_open_orders بالكامل (8 حسابات؛ العلامات 16 / 17). رياضيات الاقتباس متطابقة مع v1. يجب على التكاملات الجديدة والموجهات استخدام V2.

WithdrawPnl — 17 (+1 اختياري) → 10 حسابات (⚠️ تغيير جذري، بدون مسار توافق)

تم حذف amm_open_orders وجميع حسابات السوق الستة. التخطيط الثابت الجديد البالغ 10 حسابات، الخاص بالمسؤول فقط، لا يحتوي على تحليل توافق؛ التخطيط القديم لا يتوافق ويفشل مع أخطاء مثل InvalidCoinVault.

SetParams — مختزل إلى [amm, admin] (⚠️ تغيير جذري) + پارامترات معاد ترقيمها

تم حذف السلطة وحسابات الطلبات المفتوحة والطلبات المستهدفة والخزائن وجميع حسابات السوق. تعداد param معاد ترقيمه ومختزل:
Paramالقيمة القديمةالقيمة الجديدة
Status00
State11
Fees92
SetOpenTime113
تم حذف جميع پارامترات شبكة دفتر الطلبات (OrderNum و Depth و AmountWave و MinPriceMultiplier و MaxPriceMultiplier و MinSize و VolMaxCutRatio و InitOrderDepth و SetSwitchTime و ClearOpenTime و Seperate) بالإضافة إلى AmmOwner و LastOrderDistance و UpdateOpenOrder. تسقط بنية SetParamsInstruction new_pubkey و last_order_distance.

لم تعد قابلة للاستدعاء (تعود في وقت التشغيل؛ المنشئون محذوفون)

التعليمةالعلامةالبديل
Initialize0Initialize2
MonitorStep2لا شيء (كرنك دفتر الطلبات، متقاعد)
MigrateToOpenBook5لا شيء
WithdrawSrm8لا شيء (خصم رسوم SRM، متقاعد)
PreInitialize10Initialize2
SimulateInfo12اقتباس خارج السلسلة / SDK
AdminCancelOrders13لا شيء

تغييرات الاحتياطي / الحالة

  • صيغة أصول المجموعة. إجمالي أصول المجموعة الآن أرصدة الخزائن − PnL المعلقة (need_take_pnl)؛ حد دفتر الطلبات المفتوح — بالفعل صفر عمليًا — تم حذفه. يمكن لكود الاقتباس أن يقرأ مباشرة من أرصدة الخزائن.
  • حقول الحالة المهملة. StateData.total_pnl_pc و total_pnl_coin و orderbook_to_init_time و swap_coin_in_amount و swap_pc_out_amount و swap_acc_pc_fee و swap_pc_in_amount و swap_coin_out_amount و swap_acc_coin_fee محتفظ بها لتوافق التخطيط لكن لم تعد يتم تحديثها. يجب على المستهلكين الذين يعتمدون على عدادات حجم swap_* الانتقال إلى سجلات التداول.
  • تهيئة AmmInfo. coin_lot_size و pc_lot_size و min_size يتم تهيئتها الآن إلى 0.
  • تبعية محذوفة و CPIs. تم حذف صندوق serum_dex من Cargo.toml؛ تم حذف جميع Serum DEX CPIs (invoke_dex_new_order_v3 و invoke_dex_cancel_order_v2 و invoke_dex_settle_funds و invoke_dex_init_open_orders و …) من invokers.rs. بنى البيانات المحذوفة: LastOrderDistance و SimulateParams و RunCrankData و GetPoolData و GetSwapBaseInData و GetSwapBaseOutData.