Skip to main content
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
اعتبارًا من ترقية 2026-07، تم إزالة اعتماد AMM v4 على OpenBook / Serum — لا توجد تعليمات تقرأ أو تكتب حالة OpenBook بعد الآن. يتم الاحتفاظ بحسابات السوق أدناه فقط كعناصر نائبة موضعية على تخطيطات التعليمات v1 القديمة (مقبولة لكن مُتجاهلة) وكحقول مرجعية على AmmInfo. استخدم نقاط نهاية المبادلة V2، التي تحذفها تمامًا. تجمع هذه الصفحة الحسابات في أقسام “مملوكة للمجمع” و”OpenBook (قديمة)” لقراءة المعاملات الأقدم.

الجرد

يسجل مجمع AMM v4 سوقًا واحدًا مرتبطًا على AmmInfo عند الإنشاء. الصورة الكاملة: ملاحظة: يتم الاحتفاظ بـ “serum” كبادئة في IDL وأسماء الحقول الخاصة بـ AMM v4 للتوافق العكسي. لم تعد هذه الحسابات وظيفية بعد إزالة OpenBook.

AmmInfo

حساب حالة جذر المجمع. كبير (≈ 752 بايت) لأنه يحمل مراجع المجمع و OpenBook مضمنة.
تخطيط البنية لم يتغير (متوافق بايت) لذا تبقى المُفكّكات الموجودة تعمل، لكن بعد إزالة OpenBook الحقول المُشار إليها بـ DEPRECATED أعلاه لم تعد تُكتب — عدادات الحجم swap_* مجمدة عند آخر قيمة لها. لتحليلات الحجم، استخدم سجلات التداول بدلاً من هذه الحقول. فقط need_take_pnl_* و pool_open_time يتم صيانتهما بنشاط.
الحقول الموجهة للمدمجين:
  • coin_vault, pc_vault — خزائن SPL Token للمجمع. coin هو token_0 حسب اتفاقية Serum/OpenBook (الأساس)، pc هو token_1 (الاقتباس).
  • coin_decimals, pc_decimals — مطابقة للعملات.
  • open_orders, target_orders, market — حقول مرجعية قديمة. لا تزال موجودة على AmmInfo وتُمرر موضعيًا على تخطيطات التعليمات v1، لكن البرنامج لم يعد يقرأها أو يتحقق منها. نقاط نهاية المبادلة V2 تحذفها.
  • fees.swap_fee_numerator / swap_fee_denominator — رسم التداول المدمج. الافتراضي 25 / 10_000 = 0.25%.
  • status — bitmask يحد العمليات. قابل للتعيين من قبل المسؤول عبر AdminSetStatus.
  • state_data.need_take_pnl_* — الفرق بين الرسوم المتراكمة الإجمالية وما تم مسحه. TakePnl يصفر هذه.

توصيل OpenBook

تم الحذف. تم حذف اعتماد OpenBook / Serum من البرنامج (ترقية 2026-07). الحسابات الموصوفة في هذا القسم لم تعد يتم التحقق منها أو استخدامها. تبقى كحقول مرجعية على AmmInfo وكعناصر نائبة موضعية على تخطيطات التعليمات v1 القديمة. استخدم نقاط نهاية المبادلة V2 (SwapBaseInV2 / SwapBaseOutV2) التي تتخطى هذه الحسابات تمامًا.
عند استدعاء تعليمة v1 قديمة SwapBaseIn / SwapBaseOut أو Deposit أو Withdraw، يجب أن يطابق عدد الحسابات التخطيط القديم (حسابات السوق تحتل مواضعها التاريخية)، لكن محتوياتها لم تعد يتم فحصها — لا يتم إصدار CPI ضدها. يجب أن يستخدم الكود الجديد متغيرات المبادلة V2، التي لا تأخذ هذه الحسابات على الإطلاق.
amm_open_orders للمجمع هو حساب مملوك لـ OpenBook يحتفظ بحالة الطلب المحدود للمجمع على هذا السوق: الطلبات النشطة والأرصدة المستقرة والمحيلون وما إلى ذلك. amm_target_orders من جانب AMM: يحتفظ بالشبكة المقصودة للمجمع (السعر/الحجم لكل فتحة طلب) حتى يتمكن البرنامج من المقارنة بسهولة مع ما يتم نشره حاليًا ووضع / إلغاء الفرق.

PDAs السلطة

يوجد بالضبط PDA amm_authority واحد لبرنامج AMM v4 بأكمله. بذره تافهة (["amm authority"]) وتُخزن نتيجته على كل AmmInfo. توقّع هذه السلطة جميع حركات الرموز لجميع مجمعات AMM v4.
يوجد سلطة محدودة النطاق بالمجمع منفصلة مشتقة لكل مجمع لتوقيع عمليات OpenBook (amm_authority أعلاه يغطي كليهما في الواقع في تصميم هذا البرنامج؛ استخدمت الإصدارات المختلفة اشتقاقات مختلفة، لذا تحقق من AmmInfo.nonce للمجمع المحدد في الكود).

الخزائن

خزائن SPL Token للمجمع هي حسابات رموز قياسية يكون owner لها amm_authority. ليست ATAs — عناوينها PDAs محددة مشتقة عند Initialize ببذور ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id]. يتم تخزين العناوين على AmmInfo؛ الاشتقاق فضول لمرة واحدة. Token-2022 غير مدعوم. يحمّل البرنامج معرّف برنامج SPL Token لجميع حركات الخزائن. محاولة ربط مجمع AMM v4 بعملة Token-2022 تفشل عند Initialize.

عملة LP

عملة SPL Token كلاسيكية سلطتها amm_authority. إجمالي العرض يتتبع ملكية LP للمجمع؛ حرق LP يعيد الرموز من كلا الخزائن بنسبة. لأن AMM v4 سابق لـ CPMM، لا توجد مرآة lp_supply في حالة المجمع — اقرأ عرض العملة على السلسلة مباشرة.

bitmask الحالة

AmmInfo.status يحد العمليات. البتات (قد يختلف الموضع عبر إصدارات البرنامج — تأكد عبر المصدر): تعيّن مجموعة Raydium متعددة التوقيع هذه عبر SetParams (مع param = Status). (تم إزالة AdminCancelOrders.)

الملاحظة / الأوراكل

AMM v4 ليس لديه حساب ملاحظة مخصص. البروتوكولات الأخرى التي تحتاج إلى TWAP على السلسلة عادة ما تستهلك عبور كتاب OpenBook بشكل غير مباشر أو تقرأ خارج السلسلة. إذا كنت بحاجة إلى Raydium TWAP مع دعم البرنامج، استخدم CPMM أو CLMM.

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

لأن AMM v4 لم يتم تصميمه لـ PDAs حتمية لكل زوج (سابق لهذه الاتفاقية Solana)، amm_id الكنسي هو مفتاح مزروع مشتق مع:
ينطبق نفس نمط المفتاح المزروع على amm_open_orders و amm_target_orders و amm_withdraw_queue و pool_temp_lp و pool_coin_token_account و pool_pc_token_account و lp_mint. SDK والـ API يحسبان هذه مسبقًا لك؛ انظر raydium-sdk-v2 الخاص بـ Liquidity.getAssociatedPoolKeys. في الممارسة العملية، يقرأ المدمجون مجموعة الحسابات الكاملة للمجمع من GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> أو من SDK. الاشتقاق اليدوي نادرًا ما يكون مطلوبًا.

مرجع دورة الحياة السريع

تستمر المجمعات وحساباتها إلى الأبد. حتى لو تم سحب السيولة بالكامل، AmmInfo يبقى.

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

المصادر: