الانتقال إلى المحتوى الرئيسي

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →

المستوى المنشور الوحيد

على عكس CPMM و CLMM، لا يحتوي AMM v4 على حساب AmmConfig. يتم تخزين الرسوم مباشرة في هيكل AmmInfo.fees لكل pool، وتكون ثابتة عند إنشاء pool. القيم الافتراضية التي تغطي جميع أحواض AMM v4 النشطة فعليًا:
حقل السلسلةالقيمة الافتراضيةالمعنى
swap_fee_numerator / swap_fee_denominator25 / 10_000إجمالي رسم المتاجرة على مبادلات مسار AMM: 0.25% من حجم الإدخال.
trade_fee_numerator / trade_fee_denominator25 / 10_000يُستخدم من قبل تكامل OpenBook لحساب تسعير أوامر الحد التي تتضمن الرسوم. بنفس نسبة swap_fee وهي 0.25% افتراضيًا.
pnl_numerator / pnl_denominator12 / 100حصة البروتوكول من رسم المبادلة: 12% — أي 0.25% × 12% = 0.03% من الحجم. تتراكم في عدادات need_take_pnl_*.
min_separate_numerator / min_separate_denominator5 / 10_000حد الدقة الداخلي المستخدم من قبل منطق تقريب تقسيم الرسم.
لاحظ أن pnl_numerator / pnl_denominator هي نسبة من رسم المبادلة، وليست من حجم المتاجرة — وهي قراءة خاطئة شائعة. حصة LP هي المتمم (88% من الرسم = 0.22% من الحجم) وهي ضمنية؛ لا توجد بسط منفصل لـ “حصة LP”. تم إنشاء عدد قليل من الأحواض المبكرة برقم منفصل؛ تابع دائمًا AmmInfo.fees قبل الاستشهاد. لا توجد رسم الصندوق ولا رسم المنشئ: هذه اختراعات CPMM/CLMM لم تكن موجودة في نموذج رسم AMM v4 الأصلي.

كيفية حساب التقسيم

في كل مبادلة، يفرض pool رسم المتاجرة الإجمالية من مبلغ الإدخال، ثم يوزع:
gross_fee   = ceil(amount_in * swap_fee_numerator / swap_fee_denominator)        // 0.25% من amount_in
pnl_portion = gross_fee * pnl_numerator / pnl_denominator                        // 12% من gross_fee
lp_portion  = gross_fee − pnl_portion                                            // 88% من gross_fee
  • يتم ترك lp_portion في الخزينة ويساهم في k التالي. يحصل مزودو السيولة عليه من خلال استرجاع رموز LP لاحقًا.
  • pnl_portion يزيد من AmmInfo.state_data.need_take_pnl_coin أو need_take_pnl_pc حسب الجانب الذي يكون فيه الإدخال.
نفس الحيلة الحفاظ على عدم التغير كما في CPMM: مبلغ PnL يجلس فعليًا في الخزينة لكن يتم طرحه من الاحتياطيات المستخدمة في المنحنى، لذا فإن TakePnl ينقل الرموز بدون تغيير السعر.

PnL من OpenBook (تاريخي)

لم تعد تتراكم. تم تعطيل تكامل OpenBook، لذا فإن تيار PnL الثاني الموصوف في هذا القسم لم يعد يتم توليده. قد تحمل عدادات total_pnl_{coin,pc} على الأحواض الموجودة قيمًا تاريخية، لكن لا يتم إضافة مبالغ جديدة. مسار رسم البروتوكول 0.03% (أعلاه) لم يتأثر ولا يزال نشطًا.
تاريخيًا، كان لدى AMM v4 تيار ثانٍ يشبه الرسم للإيرادات: عندما تم ملء الأوامر المحدودة الخاصة به على OpenBook، كان يمكن للـ pool أن يكون على جانب المتخذ من الملء والحصول على أو دفع فروق الصانع/المتخذ بالسوق. تم تسوية أحداث PnL هذه في خزائن pool أثناء MonitorStep وقام البرنامج بإقرارها إلى state_data.total_pnl_{coin,pc} كعدادات معلوماتية.
  • عندما تم معايرة شبكة المنشورات بشكل صحيح حول سعر المنحنى، كانت عمليات OpenBook الممتلئة تميل إلى أن تكون إيجابية برسوم للـ pool — كان AMM فعليًا يقوم بصنع السوق على OpenBook والحصول على خصومات الصانع.
  • عندما توقف OpenBook أو امتلأت قائمة الأحداث، كان يمكن للـ pool أن يجلس على أوامر قديمة تم ملؤها بأسعار غير مواتية، مما ينتج عنه PnL سلبي. كان هذا الاقتران التشغيلي أحد الدوافع للابتعاد عن التصميم الهجين.
كان OpenBook PnL هذا ليس نفس رسم البروتوكول 0.03%. أضاف OpenBook PnL احتياطيات pool بشكل مباشر (مما يعود على مزودي السيولة والبروتوكول بما يتناسب مع تقسيم الرسم)، بينما تم وضع علامة على رسم البروتوكول 0.03% بشكل محدد لمسح المسؤول. مع إيقاف جانب OpenBook، فإن تراكم الرسوم الوحيد اليوم هو 0.25% على مبادلات AMM وتقسيمه 22/3.

التجميع

يستدعي المسؤول (مجموعة Raydium متعددة التوقيع) WithdrawPnl / TakePnl لمسح need_take_pnl_* إلى حسابات “مالك PnL” على مستوى pool المكونة على برنامج AmmConfig (config مختلف، ذو نطاق برنامج — وليس AmmConfig على غرار CPMM لكل pool). المسح:
  1. يسوي أي ملآت OpenBook معلقة أولاً. (بدون عملية الآن بعد إيقاف OpenBook.)
  2. يحول need_take_pnl_coin / need_take_pnl_pc من خزائن pool إلى وجهة PnL.
  3. يصفر العدادات.
العملية لا تحرك المنحنى. يجب ألا يشهد مزودو السيولة أي تغيير في السعر عبر استدعاء TakePnl.

استرجاع رسوم LP

لا توجد تعليمات مخصصة “تجميع رسوم LP”. تتراكم رسوم LP في الخزائن وتضخم k بمرور الوقت؛ يدرك مزودو السيولة ذلك من خلال حرق رموز LP عبر Withdraw. تنمو قيمة رمز LP بشكل رتيب حيث ينمو (coin_reserve_effective, pc_reserve_effective).

التصور: أين يذهب 1000 USDC من الحجم

في مبادلة ثقيلة USDC بـ 1000 دولار مقابل pool بمعاملات افتراضية:
إجمالي رسم المتاجرة (0.25%):   $2.50
  حصة LP    (0.22%):       $2.20   → تبقى في pool، ترفع k
  حصة PnL  (0.03%):       $0.30   → need_take_pnl_pc، تم مسحها بواسطة TakePnl
الباقي المرسل للمستخدم:   $997.50   (ناقص تأثير السعر المدفوع بالمنحنى)
قارن مع CPMM AmmConfig[0] (طبقة 0.25%، بدون رسم منشئ): يحصل LP على $2.10، البروتوكول $0.30، الصندوق $0.10. يقدم CPMM خط الصندوق بنحته من ما كان سيكون حصة LP في طبقة AMM v4 المعادلة.

جدول المقارنة

AMM v4CPMM index=0CLMM index=2
رسم المتاجرة0.25%0.25%0.25%
LP0.22%0.21%يختلف حسب الانبعاثات
البروتوكول0.03%0.03%لكل طبقة
الصندوقغير قابل0.01%لكل طبقة
المنشئ (اختياري)غير قابل0 بشكل افتراضيغير قابل
حيث تجلس الرسومخزينة pool + need_take_pnl_*خزينة pool + protocol_fees_* + fund_fees_*عام + لكل علامة + لكل موضع
المصفوفة الكاملة في reference/fee-comparison.

ملاحظات للمدمجين

  • الاستشهاد. احصل على AmmInfo عبر SDK أو api-v3.raydium.io/pools/info/ids. لا تحسب عرضك الخاص مقابل أرصدة الخزينة الخام — تسحب المبالغ المحجوزة بـ OpenBook واستبعاد PnL كليهما الاحتياطيات الفعلية بعيدًا عما يعرضه getTokenAccountBalance.
  • معاملات رسوم قديمة. من حيث المبدأ، قد يستطيع SetParams تغيير swap_fee_numerator، لكن في الممارسة العملية لم تغير مجموعة Raydium متعددة التوقيع القيم الافتراضية لأي pool نشط. وعلى أي حال، اقرأ دائمًا من حالة السلسلة بدلاً من حرق الأرقام.
  • لا توجد مكافآت. لا يدعم AMM v4 انبعاثات مكافآت pool. المزارع البيئية الموروثة (Farm v3 / v5 / v6) هي المكافئ على مستوى الرهان — انظر products/farm-staking.

أين تذهب بعد ذلك

المصادر: