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

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 مستقل.
راجع الحسابات ← DynamicFeeConfig و DynamicFeeInfo والحسابات ← LimitOrderState.

إعادة تشكيل 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 تُستخدم لحساب حصة التنفيذ لكل أمر.
لم يتغيّر تخطيط tick-array ولا حجمه ولا PDA seeds.

التعليمات الجديدة

  • 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 لم يتغيّر في شكله، لكن ثلاثة أمور باتت تحدث خلاله:
  1. الرسوم الديناميكية (عند التفعيل): يُحدَّث DynamicFeeInfo الخاص بالـpool في كل خطوة (تراجع → تراكم → تسقيف)، ويُضاف الرسم الإضافي الناتج فوق الرسم الأساسي لتلك الخطوة.
  2. مطابقة أوامر الحد (عندما تعبر الخطوة tick مهيأًا يحتوي على أوامر مفتوحة): يُستهلك جزء من مدخلات swap وفق FIFO لتنفيذ المجموعة عند ذلك الـtick، مع تحديث unfilled_ratio_x64 بشكل ذري.
  3. توجيه رسوم الجانب الواحد (عندما تكون fee_on != 0): تُؤخذ الرسوم من token_0 أو token_1 بصرف النظر عن اتجاه swap، بدلًا من أخذها دائمًا من جانب الإدخال.
كل هذه التغييرات لا تأثير لها (no-op) عندما تُنشأ pool بالإعدادات الافتراضية القديمة. راجع التعليمات ← SwapV2 للاطلاع على مصفوفة تغييرات الحالة المحدَّثة.

رموز الأخطاء الجديدة

جرى ترقيم ErrorCode enum من جديد في هذا الإصدار: خمسة متغيرات قديمة (LOK، ZeroMintAmount، InvalidLiquidity، TransactionTooOld، InvalidRewardDesiredAmount) أُزيلت، وأُضيفت أحد عشر متغيرًا جديدة. نظرًا لأن Anchor يُرقّم الأخطاء بحسب ترتيب enum ابتداءً من 6000، فإن كل رمز خطأ عند المواضع المُزالة أو بعدها قد انزاح — العملاء الذين يعتمدون على الأرقام بشكل ثابت يحتاجون إلى إعادة التعيين. الرموز الجديدة هي:
  • 6040 OrderAlreadyFilled
  • 6041 InvalidOrderPhase
  • 6042 InvalidLimitOrderAmount
  • 6043 OrderPhaseSaturated
  • 6044 InvalidDynamicFeeConfigParams
  • 6045 InvalidFeeOn
  • 6046 ZeroSqrtPrice
  • 6047 ZeroLiquidity
  • 6048 MissingBaseFlag
  • 6049 MissingMintAccount
  • 6050 MissingTokenProgram2022
النصوص الكاملة وجدول إزاحة الأرقام لجميع أخطاء CLMM موجودة في رموز الأخطاء.

التغييرات في SDK (@raydium-io/raydium-sdk-v2)

  • أساليب جديدة على raydium.clmm: createCustomizablePool، openLimitOrder، increaseLimitOrder، decreaseLimitOrder، settleLimitOrder، settleAllLimitOrder، closeLimitOrder، closeAllLimitOrder.
  • مساعدات REST جديدة على raydium.api: getClmmDynamicConfigs، getClmmLimitOrderConfigs.
  • أنواع جديدة: CollectFeeOn enum، DynamicFeeConfig، DynamicFeeInfo، LimitOrderState، LimitOrderConfig.
  • إعادة تنظيم داخلية: نُقل utils/ إلى libraries/. تبقى الحزمة الرئيسية كما هي؛ فقط الاستيرادات العميقة ضمن @raydium-io/raydium-sdk-v2/utils/... تحتاج إلى تحديث إلى …/libraries/....
تجوالات TypeScript الكاملة من البداية إلى النهاية موجودة في 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).
جميع الخمس موثّقة في تبويب مرجع API.

نطاق الصلاحيات

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 على مستودع الوثائق. تُسجَّل التصحيحات في سجل التغييرات هذا.

مراجع مفيدة