Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
اعتبارًا من ترقية البرنامج 2026-07، تم إزالة اعتماد AMM v4 على OpenBook / Serum. تحتفظ تعليمات v1 القديمة SwapBaseIn / SwapBaseOut و Deposit و Withdraw بتخطيطات الحسابات القديمة للتوافق العكسي: لا تزال حسابات السوق مقبولة في مواضعها القديمة، لكن لم تعد يتم التحقق منها أو استخدامها (لا يتم إصدار CPI). يجب على التكاملات الجديدة استخدام نقاط الدخول V2 للمبادلة، التي تحذف حسابات السوق بالكامل. تم إزالة عدة تعليمات والآن تعود — انظر إدخال السجل. تستخدم قوائم الحسابات أدناه أسماء الحقول من Raydium SDK؛ IDL الأساسي يستخدم أحيانًا بادئات serum_*.

جرد التعليمات

يكشف SDK عن منشئات للتعليمات الموجهة للمستخدم فقط. عادة ما يتم استدعاء تعليمات الصيانة بواسطة حارس Raydium. تم إزالتها / لم تعد قابلة للاستدعاء (تعود الآن مع unimplemented!، وتم حذف منشئات العميل الخاصة بها): Initialize (الوسم 0، استخدم Initialize2MonitorStep (2)، MigrateToOpenBook (5)، WithdrawSrm (8)، PreInitialize (10، استخدم Initialize2SimulateInfo (12)، AdminCancelOrders (13).

Initialize2

بدء تشغيل pool AMM v4 جديد مرتبط بسوق OpenBook موجود. المعاملات
الحسابات (قابلة للكتابة W، موقّع S) الشروط اللاحقة
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN، حيث يتم الاحتفاظ بـ INIT_BURN ≈ 100 وحدة LP خارج التداول.
  • لا يتم نشر أوامر OpenBook (تم إزالة شبكة دفتر الطلبات). لا يزال يتم تمرير market_program / market لكن يتم تخزينهما كحقول مرجعية فقط؛ يتم تهيئة coin_lot_size / pc_lot_size / min_size إلى 0.
الأخطاء الشائعةInvalidInput (عدم تطابق الكسور العشرية، غير مرتبة)، NotAllowed.

Deposit

إضافة السيولة. المعاملات
الحسابات (مختصرة) الرياضيات — نسبة متناسبة قياسية. باستخدام احتياطيات pool الفعلية (الأقبية + المُدرجة)، يحسب SDK زوج coin/pc الذي ينتج عنه مبلغ LP المعطى ويتحقق منه مقابل max_*. يعود مع ExceededSlippage إذا تجاوز أي جانب الحد الأقصى.

Withdraw

حرق LP، استقبال كلا الجانبين. المعاملات
الحسابات — مثل Deposit مع عكس الاتجاه؛ lp_mint قابل للكتابة للحرق، ATAs المستخدم هي المستقبلات. تخطيط الحسابات لم يتغير (حسابات السوق لا تزال تُمرر بشكل موضعي، مُتجاهلة). لا توجد خطوة تسوية من OpenBook — تستخدم الرياضيات النسبة المتناسبة أرصدة الأقبية مباشرة.

SwapBaseIn

مبادلة بمدخل دقيق. دائمًا مبادلة مسار AMM (لا تسير عبر مطابقة OpenBook).
استخدم متغيرات V2 للكود الجديد. نظرًا لأنه تم إزالة اعتماد AMM v4 على OpenBook، لا تزال نقاط الدخول V1 (SwapBaseIn، SwapBaseOut) تتوقع قائمة الحسابات الكاملة المكونة من 17 حسابًا (أو 18 مع حساب target-orders الاختياري)، لكن حسابات OpenBook/market الآن مقبولة بشكل موضعي ومُتجاهلة — لا يتم التحقق منها ولا يتم إصدار CPI. تمرير عدد حسابات خاطئ لا يزال يعود مع WrongAccountsNumber، لكن محتويات حساب السوق لم تعد يتم التحقق منها. يجب على التكاملات الجديدة استخدام SwapBaseInV2 / SwapBaseOutV2، التي تأخذ قائمة حسابات أصغر بكثير وتمثل مسار التنفيذ الكنسي اليوم. يتم توثيق النماذج V1 هنا للاكتمال وللقراءة من المعاملات على السلسلة الموجودة.
المعاملات
الحسابات (مختصرة) الرياضيات — انظر products/amm-v4/math. الشروط السابقة
  • amm.status يسمح بالمبادلة (البت 0 من قناع حالة الحالة غير مضبوط).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account يحتفظ بـ amount_in على الأقل.
الشروط اللاحقة
  • يفقد المستخدم amount_in من الرمز المصدر، ويكسب amount_out ≥ minimum_amount_out من رمز الوجهة.
  • need_take_pnl_* مزيد بحصة رسوم البروتوكول.
  • ملاحظة: عدادات التحليلات state_data.swap_*_in_amount / swap_*_out_amount لم تعد يتم تحديثها — قيمها مجمدة. استخدم سجلات التداول لتحليلات الحجم.
الأخطاء الشائعةExceededSlippage، InvalidInput، InvalidStatus، NotAllowed (رمز coin/pc متطابق).

SwapBaseOut

مخرج دقيق، معكوس SwapBaseIn. نفس الحسابات. المعاملات

SwapBaseInV2 / SwapBaseOutV2

نقاط دخول مبادلة متغيرة (الوسوم 16 / 17) التي تتخطى حسابات OpenBook بالكامل. الرياضيات متطابقة مع مسار V1، لكن قائمة الحسابات تنكمش إلى جانب AMM والمستخدم فقط — 8 حسابات، و amm_open_orders لا يتم تمريره: احتياطيات Pool الآن هي أرصدة الأقبية (ناقص PnL المعلق)، لذا رياضيات الاقتباس مباشرة ومتطابقة مع مسار v1. استخدم V2 لتوفير الحساب وتجنب تمرير حسابات السوق (المُتجاهلة الآن). يستخدم موجه Raydium دائمًا نموذج V2 عند التوجيه عبر AMM v4. المعاملات هي نفسها نماذج V1 (amount_in / minimum_amount_out لـ SwapBaseInV2؛ max_amount_in / amount_out لـ SwapBaseOutV2).

MonitorStep والتعليمات المحذوفة الأخرى

تم إزالتها — لم تعد قابلة للاستدعاء. اعتبارًا من ترقية 2026-07، تم إزالة MonitorStep (الوسم 2) من البرنامج والآن تعود (unimplemented!) إذا تم استدعاؤها. تم حذف منشئ العميل الخاص بها أيضًا. ينطبق الشيء نفسه على MigrateToOpenBook (5)، WithdrawSrm (8)، SimulateInfo (12)، AdminCancelOrders (13)، ونقاط دخول إنشاء pool القديمة Initialize (0) / PreInitialize (10) — استخدم Initialize2 بدلاً من ذلك.
تاريخيًا، كانت MonitorStep تشغل تفاعل pool مع OpenBook: كانت تسوي الطلبات المملوءة (نقل العائدات من أقبية السوق إلى أقبية pool عبر OpenBook CPI)، وتلغي الطلبات القديمة، وتنشر طلبات جديدة لإغلاق الفجوة بين target_orders و amm_open_orders. مع إزالة اعتماد OpenBook، لا يوجد شيء لتشغيله والتعليمة اختفت. يجب على أي حارس أو تكامل لا يزال يستدعيها إزالة الاستدعاء.

WithdrawPnl / TakePnl

مسح المسؤول لرسوم البروتوكول المتراكمة. المعاملات
  • WithdrawPnl لا تأخذ أي معاملات؛ تقرأ need_take_pnl_* وتنقل تلك المبالغ بالضبط.
كسر التوافق (المسؤول فقط). انخفضت قائمة الحسابات من 17 (+1 اختياري) إلى 10 — تم إزالة amm_open_orders وجميع حسابات السوق الستة — بدون تحليل التوافق. التخطيط القديم لا يتطابق (كان #5 القديم amm_open_orders، الآن pool_coin_token_account) ويفشل مع أخطاء مثل InvalidCoinVault. يجب تحديث أدوات المسؤول.
الحسابات (تخطيط 10 حسابات جديد) التأثير
  • ينقل need_take_pnl_coin من pool_coin_token_account إلى pnl_coin_token_account.
  • نفس الشيء لـ pc.
  • يصفر need_take_pnl_coin و need_take_pnl_pc.
  • تغيير المنطق: إذا كان رصيد القبو غير كافٍ لتغطية PnL المتراكم، تعود التعليمة مع TakePnlError مباشرة (لم تعد تتلاعب بحالة دفتر الطلبات).
لا يوجد تغيير في الاحتياطيات لأن PnL المتراكم كان مستبعدًا بالفعل من الثابت.

SetParams

تغييرات معاملات المسؤول، يتم استدعاؤها بواسطة توقيع متعدد Raydium. المعاملات هي وسم param: u8 + حمولة.
كسر التوافق (المسؤول فقط). تم تقليل قائمة الحسابات إلى مجرد [amm (W)، admin (S)] (تم إزالة السلطة، open-orders، target-orders، vault، وجميع حسابات السوق). تم إعادة ترقيم واختصار تعداد param: Status = 0، State = 1، Fees = 2 (كان 9)، SetOpenTime = 3 (كان 11). تم إزالة جميع معاملات شبكة دفتر الطلبات و AmmOwner، LastOrderDistance، UpdateOpenOrder، وأسقطت بنية SetParamsInstruction new_pubkey و last_order_distance. يجب تحديث أدوات المسؤول.

مصفوفة تغيير الحالة

عمود OpenBook اختفى — لا تعليمة تلمس دفتر طلبات بعد الآن.

الخطوات التالية

المصادر: