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.
تتوقع تعليمات AMM v4 بشكل موحد كلاً من جانب المجموعة (حسابات برنامج AMM v4) و جانب السوق (حسابات OpenBook للسوق المرتبطة). يؤدي حذف أو عدم تطابق أي مجموعة إلى الرجوع. تستخدم قوائم الحسابات أدناه أسماء الحقول من Raydium SDK لتوضيح الصورة؛ في بعض الأحيان تستخدم IDL الأساسية بادئات serum_*.
قائمة جرد التعليمات
| المجموعة | التعليمة | ملاحظات |
|---|
| دورة حياة المجموعة | Initialize2 | تعليمة إنشاء المجموعة الحالية (لا تزال وظيفية؛ واجهة المستخدم الافتراضية تفضل CPMM للمجموعات الجديدة). |
| السيولة | Deposit | إضافة السيولة، استقبال LP. |
| السيولة | Withdraw | حرق LP، استقبال كلا الجانبين بشكل متناسب. |
| المبادلة | SwapBaseIn | مبادلة المدخلات المحددة بدقة (المسار الكامل: الأقبية + OpenBook). |
| المبادلة | SwapBaseOut | مبادلة المخرجات المحددة بدقة (المسار الكامل). |
| المبادلة | SwapBaseInV2 | مبادلة المدخلات المحددة بدقة التي تتجاوز OpenBook — الأقبية فقط، حسابات أقل. |
| المبادلة | SwapBaseOutV2 | مبادلة المخرجات المحددة بدقة التي تتجاوز OpenBook. |
| الصيانة | SetParams | المسؤول: تغيير معاملات المجموعة. |
| الصيانة | WithdrawPnl | كسح أرباح وخسائر البروتوكول المتراكمة إلى حسابات مالك الأرباح والخسائر. |
| الصيانة | CreateConfigAccount | المسؤول: تهيئة PDA AmmConfig على مستوى البرنامج. |
| الصيانة | UpdateConfigAccount | المسؤول: تغيير معاملات التكوين على مستوى البرنامج. |
يعرّض SDK منشئين لتعليمات المستخدم فقط. عادة ما يتم استدعاء تعليمات الصيانة بواسطة حارس Raydium.
Initialize2
بدء تشغيل مجموعة AMM v4 جديدة مرتبطة بسوق OpenBook موجودة.
المعاملات
nonce: u8
open_time: u64
init_pc_amount: u64
init_coin_amount: u64
الحسابات (قابل للكتابة W، الموقّع S)
| # | الاسم | W | S | ملاحظات |
|---|
| 1 | token_program | | | SPL Token. |
| 2 | system_program | | | |
| 3 | rent | | | |
| 4 | amm | W | | حساب AmmInfo (مفتاح مزروع). |
| 5 | amm_authority | | | برنامج PDA. |
| 6 | amm_open_orders | W | | OpenBook OpenOrders (مزروع). |
| 7 | lp_mint | W | | |
| 8 | coin_mint | | | |
| 9 | pc_mint | | | |
| 10 | pool_coin_token_account | W | | |
| 11 | pool_pc_token_account | W | | |
| 12 | pool_withdraw_queue | W | | |
| 13 | pool_target_orders_account | W | | |
| 14 | pool_lp_token_account | W | | LP ATA للمنشئ. |
| 15 | pool_temp_lp_token_account | W | | حساب مؤقت. |
| 16 | market_program | | | برنامج OpenBook. |
| 17 | market | | | سوق OpenBook. |
| 18 | user_wallet | W | S | المنشئ. يدفع الإيجار ويمول الإيداع الأولي. |
| 19 | user_token_coin | W | | |
| 20 | user_token_pc | W | | |
الشروط اللاحقة
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN، حيث يتم الاحتفاظ بـ INIT_BURN ≈ 100 وحدة LP خارج التداول.
- لم يتم نشر طلبات OpenBook بعد؛ يقوم أول
MonitorStep بنشر الشبكة الأولية.
الأخطاء الشائعة — InvalidInput (عدم تطابق الكسور العشرية، غير مرتبة)، NotApproved، جانب OpenBook InvalidMarketState.
Deposit
إضافة السيولة.
المعاملات
max_coin_amount: u64
max_pc_amount: u64
base_side: u64 // 0 = base على coin، 1 = base على pc
// (بعض متغيرات SDK تقبل أيضاً other_amount_min)
الحسابات (مختصرة)
| # | الاسم | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | | |
| 5 | amm_target_orders | W | |
| 6 | lp_mint | W | |
| 7 | pool_coin_token_account | W | |
| 8 | pool_pc_token_account | W | |
| 9 | market | | |
| 10 | user_coin_token_account | W | |
| 11 | user_pc_token_account | W | |
| 12 | user_lp_token_account | W | |
| 13 | user_owner | | S |
الرياضيات — متناسبة بشكل معياري. باستخدام الاحتياطيات الفعلية للمجموعة (الأقبية + على الكتاب)، يحسب SDK زوج coin/pc الذي ينتج كمية LP المعطاة ويتحقق منه مقابل max_*. يرجع مع ExceededSlippage إذا تجاوز أي جانب الحد الأقصى.
Withdraw
حرق LP، استقبال كلا الجانبين.
المعاملات
الحسابات — مثل Deposit مع عكس الاتجاه؛ lp_mint قابل للكتابة للحرق، ATAs المستخدم هي المتلقون. تحدث خطوة تسوية شبيهة بـ MonitorStep-من-OpenBook بشكل داخلي قبل الرياضيات المتناسبة بحيث تستخدم الاسترجاع احتياطيات جديدة.
SwapBaseIn
مبادلة المدخلات المحددة بدقة. دائماً مبادلة مسار AMM (لا توجه عبر مطابقة OpenBook).
استخدم متغيرات V2 للكود الجديد. بما أن AMM v4 لم تعد تشارك السيولة مع OpenBook، فإن نقاط النهاية V1 (SwapBaseIn, SwapBaseOut) — التي لا تزال تتطلب المجموعة الكاملة من حسابات OpenBook للتحقق من الصحة — تكون زائدة عن الحاجة من الناحية الوظيفية. يجب أن تستخدم التطبيقات الجديدة SwapBaseInV2 / SwapBaseOutV2، التي تأخذ قائمة حسابات أصغر بكثير وتمثل مسار التنفيذ الأساسي اليوم. يتم توثيق النماذج V1 هنا للاكتمال والقراءة للمعاملات الموجودة على السلسلة.
المعاملات
amount_in: u64
minimum_amount_out: u64
الحسابات (مختصرة)
| # | الاسم | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | W | |
| 5 | amm_target_orders | W | |
| 6 | pool_coin_token_account | W | |
| 7 | pool_pc_token_account | W | |
| 8 | market_program | | |
| 9 | market | W | |
| 10 | market_bids | W | |
| 11 | market_asks | W | |
| 12 | market_event_queue | W | |
| 13 | market_coin_vault | W | |
| 14 | market_pc_vault | W | |
| 15 | market_vault_signer | | |
| 16 | user_source_token_account | W | |
| 17 | user_dest_token_account | W | |
| 18 | user_owner | | S |
الرياضيات — انظر 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 من رمز الوجهة.
state_data.swap_*_in_amount و swap_*_out_amount معزز (للتحليلات).
need_take_pnl_* معزز بحصة رسوم البروتوكول.
الأخطاء الشائعة — ExceededSlippage، InvalidInput، InvalidStatus، InvalidMarket.
SwapBaseOut
المخرجات المحددة بدقة، معكوس SwapBaseIn. نفس الحسابات.
المعاملات
max_amount_in: u64
amount_out: u64
SwapBaseInV2 / SwapBaseOutV2
نقاط نهاية مبادلة متغيرة تتجاوز حسابات OpenBook بالكامل. الرياضيات مماثلة لمسار V1، لكن قائمة الحسابات تنكمش إلى جانب AMM فقط:
| # | الاسم | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | | |
| 5 | pool_coin_token_account | W | |
| 6 | pool_pc_token_account | W | |
| 7 | user_source_token_account | W | |
| 8 | user_dest_token_account | W | |
| 9 | user_owner | | S |
الاحتياطيات الفعلية للمجموعة لا تزال تأخذ في الحسبان الرموز المرسلة على OpenBook، لذا فإن رياضيات الاقتباس لم تتغير. استخدم V2 لحفظ الحوسبة وتجنب تمرير حسابات السوق عندما لا تحتاج إلى OpenBook crank في نفس المعاملة. يستخدم موجه Raydium دائماً نموذج V2 عند التوجيه عبر AMM v4.
المعاملات هي نفسها نماذج V1 (amount_in / minimum_amount_out لـ SwapBaseInV2؛ max_amount_in / amount_out لـ SwapBaseOutV2).
MonitorStep (قديم / خامل)
لم يعد يتم تشغيله. AMM v4 لم تعد تشارك السيولة مع OpenBook، لذا ليس لدى MonitorStep ما يفعله — المجموعة لا تحتوي على طلبات مرسلة لتسويتها أو إلغاء أو استبدالها. تبقى التعليمة في برنامج السلسلة لأسباب التوافقية العكسية لكن حارس Raydium لم يعد يستدعيها. استدعاؤها يدويًا هو فعليًا عدم تغيير (بخلاف تحديث الحالة الصفرية) ويجب ألا تكون مطلوبة من قبل المدمجين.
أصلاً كانت هذه التعليمة تشغل تفاعل المجموعة مع OpenBook.
المعاملات
plan_order_limit: u16
place_order_limit: u16
cancel_order_limit: u16
الحسابات — كل شيء أعلاه لمبادلة، بالإضافة إلى حسابات OpenBook الإدارية.
التأثير الأصلي (لم يعد ذا صلة عمليًا):
- تسوية أي طلبات معبأة (نقل عائداتها من
market_coin_vault/market_pc_vault إلى أقبية المجموعة عبر OpenBook CPI).
- إلغاء الطلبات القديمة التي لم تعد أسعارها أو أحجامها تطابق
target_orders.
- نشر طلبات جديدة لإغلاق الفجوة بين
target_orders و amm_open_orders.
بدون إذن. يمكن لأي حساب استدعاؤها؛ تاريخيًا قام حارس Raydium بذلك بانتظام.
WithdrawPnl / TakePnl
كسح إداري لرسوم البروتوكول المتراكمة.
المعاملات
WithdrawPnl لا تأخذ معاملات؛ تقرأ need_take_pnl_* وتنقل تلك المبالغ بالضبط.
الحسابات (مختصرة)
| # | الاسم | W | S | |
|---|
| 1 | token_program | | | |
| 2 | amm | W | | |
| 3 | amm_authority | | | |
| 4 | amm_config | | | |
| 5 | amm_open_orders | W | | |
| 6 | pool_coin_token_account | W | | |
| 7 | pool_pc_token_account | W | | |
| 8 | pnl_coin_token_account | W | | المتلقي، مخزن على AmmConfig. |
| 9 | pnl_pc_token_account | W | | |
| 10 | pnl_owner | | S | مجموعة المسؤول متعددة التوقيعات. |
| 11 | market_program | | | |
| 12 | market | W | | |
| 13 | market_event_queue | W | | |
| 14 | market_coin_vault | W | | |
| 15 | market_pc_vault | W | | |
| 16 | market_vault_signer | | | |
التأثير
- نقل
need_take_pnl_coin من pool_coin_token_account إلى pnl_coin_token_account.
- نفس الشيء لـ pc.
- تصفير
need_take_pnl_coin و need_take_pnl_pc.
لا يوجد تغيير في الاحتياطيات لأن أرباح وخسائر المتراكمة تم استبعادها بالفعل من الثابت.
SetParams
تغييرات معاملات المسؤول: قناع الحالة، عمق شبكة الطلبات، موجات المبلغ، الرسوم (نادراً)، إلخ. يتم استدعاء بواسطة مجموعة Raydium متعددة التوقيعات. المعاملات هي وسم param: u8 + الحمولة، مشابه لـ UpdateAmmConfig الخاص بـ CPMM.
مصفوفة تغيير الحالة
| التعليمة | توريد lp_mint | الأقبية | عدادات الأرباح والخسائر | OpenBook |
|---|
Initialize2 | التوريد الأولي المخزن للمنشئ | + init_coin_amount، + init_pc_amount | 0 | OpenOrders تم إنشاؤه |
Deposit | + | + كليهما | — | تسوية الملء |
Withdraw | − | − كليهما | — | تسوية الملء |
SwapBaseIn | — | + داخل، − خارج | + حصة pnl | قد تعيد نشر الشبكة |
SwapBaseOut | — | + داخل، − خارج | + حصة pnl | قد تعيد نشر الشبكة |
MonitorStep | — | تسوية الملء | — | إلغاء / نشر |
WithdrawPnl | — | − (pnl مكتسح) | 0 | — |
SetParams | — | — | — | — |
الخطوات التالية
المصادر: