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.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
هذا هو سجل تغييرات الوثائق — سجل لتحديثات هذه الصفحات منذ انطلاق المشروع. للاطلاع على الجدول الزمني التاريخي للبروتوكول نفسه، راجع
introduction/history-and-milestones. كل إدخال يتضمن تاريخًا، وقائمة بالفصول المتأثرة، والسبب الذي أدى إلى التغيير، وتاريخ التحقق الذي يُشير إلى آخر مرة جرت فيها مقارنة الحالة على السلسلة ومصدر البرنامج بالمحتوى المكتوب.قيد الإصدار — CLMM: أوامر الحد، رسوم الجانب الواحد، الرسوم الديناميكية
يُضيف الإصدار القادم من CLMM ثلاث قدرات على مستوى pool. هذه القدرات اختيارية وتُفعَّل عند إنشاء pool، وهي متوافقة مع الأوراق المالية والمراكز الحالية.ملخص سريع للمطوّرين
- أوامر الحد (Limit orders) باتت من العناصر الأساسية في CLMM. يمكن لمزودي السيولة (LPs) فتح أمر على tick واحد في pool يدعم هذه الميزة؛ يُنفَّذ الأمر وفق نظام FIFO عندما تعبر عملية swap هذا الـtick، ويستطيع keeper خارج السلسلة (
limit_order_admin) تسوية المخرجات المُنفَّذة دون الحاجة لأن يكون المالك متصلًا. سبعة أساليب SDK جديدة (openLimitOrder،increaseLimitOrder،decreaseLimitOrder،settleLimitOrder،closeLimitOrder،closeAllLimitOrder،settleAllLimitOrder) وثلاثة نقاط نهاية Temp API جديدة ضمن/limit-order/(الأوامر النشطة، السجل لكل مستخدم، سجل الأحداث لكل PDA) تُغطي الدورة الكاملة. - رسوم الجانب الواحد (
CollectFeeOn) تتيح لـpool جمع رسوم swap من جانب الإدخال (النمط القديم، الوضع0)، أو دائمًا منtoken_0(الوضع1)، أو دائمًا منtoken_1(الوضع2). مفيد عندما يكون أحد جانبي الزوج هو رمز المحاسبة الأساسي. - الرسوم الديناميكية (Dynamic fee) تتيح لـpool الاشتراك في رسوم إضافية تتبع التقلبات، ترتفع مع الحركة السريعة للـtick وتتراجع مع الوقت، وتُعايَر عبر
DynamicFeeConfigلكل مستوى وDynamicFeeInfoلكل pool. نقطة النهاية الجديدة/main/clmm-dynamic-configتعرض قائمة المستويات. - تعرض التعليمة الجديدة
CreateCustomizablePoolالثلاثة خيارات عند إنشاء pool. تستمرCreatePoolالكلاسيكية في العمل للأوراق ذات الرسوم الافتراضية وبدون أوامر حد. - تغيير كاسر للمُفهرسين: عدادات الحجم لكل اتجاه (
swap_in_amount_token_{0,1}،swap_out_amount_token_{0,1}) وعدادات الرسوم التاريخية (total_fees_token_{0,1}،total_fees_claimed_token_{0,1}) فيPoolStateأُدرجت في حقول الحشو (padding) لإتاحة المجال لـfee_onوdynamic_fee_info. يجب على المُفهرسين الذين يقرؤون هذه الحقول مباشرةً الانتقال إلى حلقةObservationعلى السلسلة أو إلى API.
أهمية هذا التحديث (للمتداولين ومزودي السيولة والمطوّرين)
- المتداولون يحصلون على أسعار أدق للأزواج ذات النشاط الموسمي والمدفوعة بالأحداث: تتيح الرسوم الديناميكية للـpool استيعاب رسوم التقلبات من المتخذ دون أن يضطر مزودو السيولة إلى توسيع النطاقات بفاعلية، وتُعمّق سلاسل أوامر الحد السيولة على السلسلة عند أسعار محددة دون الالتزام برأس مال نطاق واسع.
- مزودو السيولة (LPs) يحصلون على استراتيجية ثالثة إلى جانب النطاقات المركّزة والمراكز الكاملة النطاق: وضع أوامر بسعر محدد، والتنفيذ عند زيارة السعر لهذا المستوى، والتسوية برمز العرض. لا يلزم إعادة التوازن الفعّالة للجزء المُنفَّذ.
- المطوّرون يمكنهم نمذجة أوراق الرسوم الديناميكية بشكل حتمي — الخوارزمية والمعاملات متاحة كاملًا على السلسلة، ومستويات المعايرة قابلة للاستعلام، ومسار swap لم يتغير في شكله (يتفاوت فقط الرسم لكل خطوة).
التغييرات في البرنامج
الحسابات الجديدة
DynamicFeeConfig— سجل المعايرة لكل مستوى (فترة الفلترة، فترة التراجع، معامل التخفيض، التحكم في الرسوم الديناميكية، الحد الأقصى لمراكم التقلب). يُنشأ بواسطةCreateDynamicFeeConfig(للمسؤول)، ويُشار إليه بواسطةCreateCustomizablePoolعند تفعيل الرسوم الديناميكية.LimitOrderState— حساب لكل أمر (PDA seeds:[owner, limit_order_nonce, order_nonce]) يحتوي على pool، والـtick، والجانب، ومبلغ الإدخال، ونسبة غير المُنفَّذ، ومرحلة FIFO، ولقطات المحاسبة. دورة الحياة ضمنية (filled_amountمقابلtotal_amount، إضافةً إلى وجود الحساب):Open → Filled → Settled → Closed.LimitOrderNonce— عداد متزايد بشكل رتيب لكل (owner, nonce_index) يُستخدم في توليد PDA seeds لأوامر الحد.nonce_index: u8يتيح للمالك نفسه تقسيم الأوامر إلى 256 تدفق nonce مستقل.
إعادة تشكيل PoolState
| مجموعة الحقول | التخطيط القديم | التخطيط الجديد |
|---|---|---|
| عدادات الحجم لكل اتجاه | swap_in_amount_token_0، swap_out_amount_token_0، swap_in_amount_token_1، swap_out_amount_token_1 | مُدمجة في padding5: [u128; 4] |
| عدادات الرسوم التاريخية | total_fees_token_0، total_fees_claimed_token_0، total_fees_token_1، total_fees_claimed_token_1 | مُدمجة في padding6: [u64; 4] |
| رسوم الجانب الواحد | — | fee_on: u8 (0 = FromInput، 1 = Token0Only، 2 = Token1Only) |
| الرسوم الديناميكية | — | dynamic_fee_info: DynamicFeeInfo (مُضمَّن) |
PoolState وانتقلوا إلى حلقة Observation أو إلى API. العدادات المُتقاعدة لم تُصفَّر على الأوراق الحالية (تحتفظ بآخر قيمة حملتها)، لذا قراءتها بعد الترقية ستعيد بيانات قديمة.
إضافات TickState (بدون كسر للتوافق)
أُضيفت أربعة حقول جديدة في نهاية TickState، لتحل محل بعض حشو الذيل:
order_phase: u64— عداد يُميّز مجموعات أوامر الحد عند هذا الـtick.orders_amount: u64— إجمالي المدخلات التي التزمت بها جميع الأوامر المفتوحة عند هذا الـtick (لا تكون جميعها غير مُنفَّذة كليًا بالضرورة).part_filled_orders_remaining: u64— المدخلات التي لم تُنفَّذ بعد في المجموعة التي تستهلكها عمليات swap حاليًا.unfilled_ratio_x64: u128— نسبة Q64.64 تُستخدم لحساب حصة التنفيذ لكل أمر.
التعليمات الجديدة
CreateDynamicFeeConfig(للمسؤول) — إنشاء مستوىDynamicFeeConfigمعايَر. الصلاحية: نفس multisig الخزينة المستخدم فيCreateAmmConfig.UpdateDynamicFeeConfig(للمسؤول) — تحديث معاملات مستوى موجود.CreateCustomizablePool— نقطة الدخول لإنشاء pool مع إمكانية ضبطcollect_fee_onوenable_dynamic_feeوdynamic_fee_config. تتعايش معCreatePool؛ ننصح باستخدامCreateCustomizablePoolلأي pool جديد يحتاج إلى الخيارات الجديدة.OpenLimitOrder— فتح أمر حد على tick واحد. يُحدّثLimitOrderNonce، ويُخصصLimitOrderState، ويُدرج الأمر في مجموعة FIFO عند الـtick.IncreaseLimitOrder/DecreaseLimitOrder— تعديل الجزء غير المُنفَّذ من الأمر. يتراجع على الأمر المُنفَّذ كليًا برمزInvalidOrderPhase.SettleLimitOrder— تحويل المخرجات المُنفَّذة إلى ATA المالك. يمكن أن يكون المُستدعي هو المالك أو keeper الـpool (limit_order_admin).CloseLimitOrder— إغلاق أمر مُسوَّى بالكامل لاسترداد الإيجار.
تغييرات في سلوك SwapV2
مسار swap لم يتغيّر في شكله، لكن ثلاثة أمور باتت تحدث خلاله:
- الرسوم الديناميكية (عند التفعيل): يُحدَّث
DynamicFeeInfoالخاص بالـpool في كل خطوة (تراجع → تراكم → تسقيف)، ويُضاف الرسم الإضافي الناتج فوق الرسم الأساسي لتلك الخطوة. - مطابقة أوامر الحد (عندما تعبر الخطوة tick مهيأًا يحتوي على أوامر مفتوحة): يُستهلك جزء من مدخلات swap وفق FIFO لتنفيذ المجموعة عند ذلك الـtick، مع تحديث
unfilled_ratio_x64بشكل ذري. - توجيه رسوم الجانب الواحد (عندما تكون
fee_on != 0): تُؤخذ الرسوم منtoken_0أوtoken_1بصرف النظر عن اتجاه swap، بدلًا من أخذها دائمًا من جانب الإدخال.
رموز الأخطاء الجديدة
جرى ترقيمErrorCode enum من جديد في هذا الإصدار: خمسة متغيرات قديمة (LOK، ZeroMintAmount، InvalidLiquidity، TransactionTooOld، InvalidRewardDesiredAmount) أُزيلت، وأُضيفت أحد عشر متغيرًا جديدة. نظرًا لأن Anchor يُرقّم الأخطاء بحسب ترتيب enum ابتداءً من 6000، فإن كل رمز خطأ عند المواضع المُزالة أو بعدها قد انزاح — العملاء الذين يعتمدون على الأرقام بشكل ثابت يحتاجون إلى إعادة التعيين.
الرموز الجديدة هي:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
التغييرات في SDK (@raydium-io/raydium-sdk-v2)
- أساليب جديدة على
raydium.clmm:createCustomizablePool،openLimitOrder،increaseLimitOrder،decreaseLimitOrder،settleLimitOrder،settleAllLimitOrder،closeLimitOrder،closeAllLimitOrder. - مساعدات REST جديدة على
raydium.api:getClmmDynamicConfigs،getClmmLimitOrderConfigs. - أنواع جديدة:
CollectFeeOnenum،DynamicFeeConfig،DynamicFeeInfo،LimitOrderState،LimitOrderConfig. - إعادة تنظيم داخلية: نُقل
utils/إلىlibraries/. تبقى الحزمة الرئيسية كما هي؛ فقط الاستيرادات العميقة ضمن@raydium-io/raydium-sdk-v2/utils/...تحتاج إلى تحديث إلى…/libraries/....
products/clmm/code-demos.
التغييرات في واجهات برمجة التطبيقات (APIs)
api-v3— نقطتا نهاية جديدتان ضمن/main/:GET /main/clmm-dynamic-config— قائمة مستوياتDynamicFeeConfig.GET /main/clmm-limit-order-config— إعدادات أوامر الحد لكل pool.
temp-api-v1— ثلاث نقاط نهاية جديدة ضمن/limit-order/:GET /limit-order/order/list?wallet=…— الأوامر الحالية للمحفظة (المفتوحة والمُنفَّذة جزئيًا، مُقدَّمة من ذاكرة Redis للمُفهرس؛ نفس البيانات تغطي كلتا المرحلتين عبرtotalAmount/filledAmount/pendingSettle).GET /limit-order/history/order/list-by-user?wallet=…— سجل أوامر الحد التاريخية للمحفظة. فلاتر اختيارية:poolId،mint1،mint2،hideCancel. مُقسَّم بالصفحات عبرnextPageId/size(بحد أقصى 100).GET /limit-order/history/event/list-by-pda?pda=…— سجل أحداث كل PDA (open/increase/decrease/settle/close) لواحد أو أكثر من PDAs لأوامر الحد مفصولة بفاصلة. مُقسَّم بالصفحات عبرnextPageId/size(بحد أقصى 100).
نطاق الصلاحيات
limit_order_admin هو keeper تشغيلي خارج السلسلة، وليس multisig. يستطيع فقط استدعاء SettleLimitOrder وCloseLimitOrder على الأوامر القائمة، وينتهي ناتج التسوية دائمًا في ATA المالك. لا يستطيع تعديل حقول pool، ولا فتح أوامر أو تعديلها، ولا التوقيع على أي شيء آخر. راجع مفاتيح المسؤول والـmultisig ← CLMM.
الصفحات المحدَّثة
products/clmm/overview— قسم “ما الجديد” وتحديث مؤشرات الخطوات التالية.products/clmm/accounts— ثلاثة حسابات جديدة، إعادة تشكيلPoolStateمع تحذير الترحيل، إضافاتTickState، مساعدات PDA جديدة.products/clmm/instructions— سبع تعليمات جديدة، إضافة إلى سلوكSwapV2، مصفوفة تغييرات الحالة المحدَّثة.products/clmm/fees— قسم رسوم الجانب الواحد، قسم الرسوم الديناميكية مع جدول المعاملات.products/clmm/math— كود شبه متخيَّل لمطابقة أوامر الحد، اشتقاق الرسوم الديناميكية.products/clmm/code-demos— عرضcreateCustomizablePool، جولة كاملة لأوامر الحد، مخاطر جديدة.algorithms/clmm-math— إسناد مرجعي لمطابقة أوامر الحد والرسوم الديناميكية في حلقة swap متعددة التيك.sdk-api/typescript-sdk— قسم إضافات وحدة CLMM، ملاحظة الانتقال منutils/إلىlibraries/.api-reference/openapi/api-v3.yaml— نقطتا نهاية جديدتان مع مخططات الاستجابة.api-reference/openapi/temp-api-v1.yaml— ثلاث نقاط نهاية لأوامر الحد (/limit-order/order/list،/limit-order/history/order/list-by-user،/limit-order/history/event/list-by-pda) مع مخططات الطلب والاستجابة.api-reference/api-v3/overview— ملاحظة حول نقاط النهاية الجديدة لإعدادات CLMM.api-reference/temp-api-v1/overview— ملاحظة حول نقاط النهاية الجديدة للأوامر النشطة، والسجل لكل مستخدم، والأحداث لكل PDA.reference/error-codes— أحد عشر رمز خطأ جديد في CLMM (6040–6050) إضافةً إلى خمسة رموز قديمة مُزالة؛ الأرقام بعد نقاط الإزالة قد انزاحت.security/admin-and-multisig— صف جديد لمسؤولDynamicFeeConfigوصف keeper لـlimit_order_admin، مع شرح الصلاحيات المحدودة.
- مصدر
raydium-clmm. - مصدر
@raydium-io/raydium-sdk-v2. - مصدر
api-v3وtemp-api-v1.
2026-04-26 — الإصدار الأول
أول إصدار عام لمجموعة وثائق Raydium. تم التحقق مقابل:- النشرات الحية للبرامج على Solana mainnet-beta.
@raydium-io/raydium-sdk-v2@0.2.42-alpha.- وثائق Raydium العامة والمراجع على السلسلة حتى أبريل 2026.
اتفاقيات التوثيق
- الإصدار: تعتمد هذه الوثائق تحديد الإصدار بالتقويم الميلادي (YYYY-MM-DD). كل تحديث يُنشئ إدخالًا جديدًا في أعلى الملف.
- تاريخ التحقق: كل إدخال يُسجّل آخر مرة جرت فيها مقارنة المحتوى مع الحالة على السلسلة / API ومصدر البرنامج. في حال عدم الذكر، افترض تاريخ الإدخال الرئيسي.
- التغييرات الكاسرة: مُشار إليها في تحذير مُؤطَّر على الصفحات المتأثرة ومُوسومة في الإدخال أدناه.
- التغطية: يُغطي سجل التغييرات هذا مجموعة الوثائق نفسها. الجدول الزمني التاريخي للبروتوكول موجود في
introduction/history-and-milestonesوهو المرجع الأساسي لـ”متى حدث X على Raydium”.
التصحيحات
إذا وجدت خطأً في هذه الوثائق، يرجى فتح issue أو pull request على مستودع الوثائق. تُسجَّل التصحيحات في سجل التغييرات هذا.مراجع مفيدة
introduction/history-and-milestones— الجدول الزمني للبروتوكول.security/audits— سجل عمليات التدقيق.ray/protocol-fees— توزيع رسوم البروتوكول.reference/program-addresses— المرجع الأساسي لمعرفات البرامج.


