هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
اعتبارًا من ترقية 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— حالةu64مُعدَّدة واحدة تحدّ العمليات، وهي ليست bitmask. قابلة للتعيين من قبل المسؤول عبرSetParamsمعparam = 0(Status). انظر الحالة أدناه.lp_amount— إجمالي LP الداخلي للمجمع. وهو لا يساويlp_mint.supply: إنه أعلى بمقدار رمز LP كامل واحد بالضبط (10^coin_decimalsوحدة أساسية)، لأن ذلك المقدار يُحسب عند التهيئة لكنه لا يُصدر أبدًا. كل الحسابات التناسبية تستخدمlp_amount، فاستخدمه أنت أيضًا.amm_owner— يُكتب عند الإنشاء من مفتاح المسؤول المضمّن في البرنامج، وليس من المنشئ.state_data.need_take_pnl_*— الفرق بين الرسوم المتراكمة الإجمالية وما تم مسحه.TakePnlيصفر هذه.
توصيل OpenBook
تم الحذف. تم حذف اعتماد OpenBook / Serum من البرنامج (ترقية 2026-07). الحسابات الموصوفة في هذا القسم لم تعد يتم التحقق منها أو استخدامها. تبقى كحقول مرجعية على
AmmInfo وكعناصر نائبة موضعية على تخطيطات التعليمات v1 القديمة. استخدم نقاط نهاية المبادلة V2 (SwapBaseInV2 / SwapBaseOutV2) التي تتخطى هذه الحسابات تمامًا.SwapBaseIn / SwapBaseOut أو Deposit أو Withdraw، يجب أن يطابق عدد الحسابات التخطيط القديم (حسابات السوق تحتل مواضعها التاريخية)، لكن محتوياتها لم تعد يتم فحصها — لا يتم إصدار CPI ضدها. يجب أن يستخدم الكود الجديد متغيرات المبادلة V2، التي لا تأخذ هذه الحسابات على الإطلاق.
amm_open_orders للمجمع هو حساب مملوك لـ OpenBook يحتفظ بحالة الطلب المحدود للمجمع على هذا السوق: الطلبات النشطة والأرصدة المستقرة والمحيلون وما إلى ذلك. amm_target_orders من جانب AMM: يحتفظ بالشبكة المقصودة للمجمع (السعر/الحجم لكل فتحة طلب) حتى يتمكن البرنامج من المقارنة بسهولة مع ما يتم نشره حاليًا ووضع / إلغاء الفرق.
PDAs السلطة
يوجد بالضبط PDAamm_authority واحد لبرنامج AMM v4 بأكمله. بذره تافهة (["amm authority"]) وتُخزن نتيجته على كل AmmInfo. توقّع هذه السلطة جميع حركات الرموز لجميع مجمعات AMM v4.
254 على الشبكة الرئيسية وهي مُنسَخة على كل AmmInfo كـ nonce؛ وتعيد WithdrawExcessLamports اشتقاقها مع تضمين ذلك الـ nonce بشكل ثابت.
الخزائن
خزائن SPL Token للمجمع هي حسابات رموز قياسية يكونowner لها amm_authority. ليست ATAs — عناوينها PDAs مشتقة عند Initialize2 من [AMM_V4_PROGRAM_ID, market, "coin_vault_associated_seed"] و [AMM_V4_PROGRAM_ID, market, "pc_vault_associated_seed"]. العملة ليست بذرة، ولا amm_id كذلك. يتم تخزين العناوين على AmmInfo؛ الاشتقاق فضول لمرة واحدة.
Token-2022 غير مدعوم. يحمّل البرنامج معرّف برنامج SPL Token لجميع حركات الخزائن. محاولة ربط مجمع AMM v4 بعملة Token-2022 تفشل عند Initialize2 بـ InvalidSplTokenProgram.
عملة LP
عملة SPL Token كلاسيكية سلطتهاamm_authority. إجمالي العرض يتتبع ملكية LP للمجمع؛ حرق LP يعيد الرموز من كلا الخزائن بنسبة.
توجد مرآة داخل الحالة: AmmInfo.lp_amount. وهي لا تساوي عرض العملة — إنها أعلى بمقدار رمز LP كامل واحد بالضبط (10^coin_decimals وحدة أساسية)، لأن ذلك المقدار يُحسب عند التهيئة لكنه لا يُصدر أبدًا. كل حساب تناسبي في البرنامج يقسم على lp_amount، فاستخدم ذلك الحقل بدلاً من عرض العملة على السلسلة.
الحالة
AmmInfo.status هي حالة u64 مُعدَّدة واحدة، وهي ليست bitmask. اختبرها بالتساوي — العميل الذي يختبر status & 1 يصنّف كل مجمع نشط تصنيفًا خاطئًا، لأن حالة التداول العادية هي 6، والتي بها البت 0 مضبوط.
تكتب
Initialize2 القيمة 7 عندما يكون open_time في المستقبل و 6 غير ذلك؛ والمجمع الموجود عند 7 يقلب نفسه إلى 6 عند أول مبادلة عند أو بعد state_data.pool_open_time. أي قيمة خارج 0..=7 تجعل AmmStatus::from_u64 يتعطل.
تعيّن مجموعة Raydium متعددة التوقيع الحالة عبر SetParams مع param = 0 (Status)؛ ولا تُقبل إلا القيم 1–7. (تم إزالة AdminCancelOrders.)
الملاحظة / الأوراكل
لا يمتلك AMM v4 حساب مراقبة مخصصًا، ومنذ إزالة OpenBook لم تبقَ حالة دفتر أوامر يمكن اشتقاق واحد منها أيضًا. إذا احتجت إلى TWAP من Raydium بدعم من البرنامج، فاستخدم CPMM أو CLMM — كلاهما يحتفظ بحاوية حلقيةObservationState. غير ذلك، فهرِس سجلات المبادلة خارج السلسلة.
اشتقاق حسابات المجمع من الصفر
حسابات مجمع AMM v4 هي PDAs عادية مفتاحها السوق المرتبط — ليست مفاتيح مزروعة، وليست PDAs لكل زوج. كل واحد منها يستخدم نفس شكل البذور الثلاثية[AMM_V4_PROGRAM_ID, market, <label>] تحت AMM_V4_PROGRAM_ID:
raydium-sdk-v2 الخاص بـ Liquidity.getAssociatedPoolKeys.
في الممارسة العملية، يقرأ المدمجون مجموعة الحسابات الكاملة للمجمع من GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> أو من SDK. الاشتقاق اليدوي نادرًا ما يكون مطلوبًا.
مرجع دورة الحياة السريع
تستمر المجمعات وحساباتها إلى الأبد. حتى لو تم سحب السيولة بالكامل،
AmmInfo يبقى.
ما يجب قراءته أين
- الرياضيات وحسابات الرسوم:
products/amm-v4/math. - تقسيم الرسوم وكيفية مقارنتها بـ CPMM/CLMM:
products/amm-v4/fees. - قوائم حسابات التعليمات:
products/amm-v4/instructions. - اشتقاق حساب OpenBook: مصدر برنامج OpenBook (
github.com/openbook-dex/program) — مستودع Rust أحادي، وليس وثائق نصية.
- برنامج Raydium AMM —
raydium-io/raydium-amm reference/program-addressesلمعرفات البرامج الكنسية- بروتوكول OpenBook / Serum لحسابات الطرف الآخر

