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.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
برامج منتجات Raydium مستقلة في قواعد الأكواد الخاصة بها، لكنها صُممت وفقًا لمجموعة من الاتفاقيات المشتركة. هذه الصفحة هي المرجع الموثوق لتلك الاتفاقيات. تصف فصول المنتجات الفردية كيفية تطبيق الاتفاقيات في حساباتها؛ أما هذه الصفحة فتصف الاتفاقيات ذاتها.
ما معنى “مشترك” هنا
يوجد ثلاثة أنواع من التقاسم في قاعدة الأكواد:- تقاسم الاتفاقيات. كل برنامج يستخدم نفس نمط اشتقاق PDA، نفس شكل تقسيم الرسوم، نفس فكرة حساب الملاحظة — لكن كل برنامج ينفذها في برنامجه الخاص مع بذوره الخاصة.
- تقاسم الحسابات. قلة من الحسابات هي حرفيًا نفس السجل عبر عدد كبير من المجمّعات (PDA السلطة الشامل في CPMM، حسابات AmmConfig).
- التقاسم خارج السلسلة. واجهة برمجية REST واحدة وواحدة TypeScript SDK توفر جميع البرامج الأربعة. يتفاعل المدمجون مع مضيف HTTP واحد وحزمة NPM واحدة بغض النظر عن البرنامج الذي سينتهي بهم الحال في استدعاؤه.
1. سلطة PDAs
لكل برنامج Raydium بالضبط PDA واحد يمتلك خزائن الرموز الخاصة به. لا يحتفظ المستخدمون أبدًا بسلطة الخزانة مباشرة — PDA السلطة هو الموقّع الوحيد الذي يمكنه نقل الأموال للخارج، وهو يوقّع فقط عندما تخبره تعليمات برنامج صحيحة بالقيام بذلك. النمط متطابق عبر المنتجات؛ البذور تختلف:| البرنامج | بذور PDA للسلطة | ملاحظات |
|---|---|---|
| AMM v4 | [poolId] | سلطة لكل مجمّع. نفس الشكل مثل تصميم v4 لكل مجمّع. |
| CPMM | [b"vault_and_lp_mint_auth_seed"] | PDA واحد مشترك لجميع مجمّعات CPMM. بدون بذرة خاصة بالمجمّع. |
| CLMM | [b"pool_vault_and_lp_mint_auth_seed"] | PDA واحد مشترك عبر جميع مجمّعات CLMM. |
| Farm v3 / v5 / v6 | [farmId] | لكل مزرعة. يمتلك PDA خزائن الرهن والمكافآت لتلك المزرعة. |
| LaunchLab | [b"vault_auth", launchId] | لكل إطلاق. يمتلك خزائن القاعدة والعرض قبل التخرج. |
- بالنسبة لـ CPMM و CLMM، فإن PDA السلطة هو حساب عام — كل مجمّع من هذا النوع يستخدمه. إذا كنت تقوم بـ CPI إلى CPMM فأنت تحتاجه مرة واحدة، وليس لكل مجمّع.
- بالنسبة لسلطات لكل مجمّع/لكل مزرعة، تشتق PDA من معرّف المجمّع/المزرعة. يفعل SDK هذا في
getPoolKeys/getFarmKeys؛ إذا كنت تدمج مباشرة، فأنت تشتق معfindProgramAddressSync. - لا يمكن تغيير ملكية الخزانة. بمجرد إنشاء حساب رمز مع PDA السلطة كمالك، فقط هذا PDA — المستدعى من قبل البرنامج — يمكنه نقل الأموال للخارج. لا يوجد تجاوز إداري.
products/cpmm/accounts، products/clmm/accounts، products/amm-v4/accounts، products/farm-staking/accounts، products/launchlab/accounts.
2. حسابات المسؤول والإعدادات
يتقاسم CPMM و CLMM نمط حساب الإعدادات يسمىAmmConfig: حساب عام صغير، مفهرس بـ u16، يحمل معدلات الرسوم والوجهات الإدارية التي تنطبق على طبقة رسوم كاملة. تربط المجمّعات نفسها بإعداد عند الإنشاء ولا تعيد الربط أبدًا.
- طبقات الرسوم عامة. عندما يقول مجمّع “هذا مجمّع 0.25%”، فهذا يعني أنه يربط نفسه بـ AmmConfig الذي كان
trade_fee_rateبه 0.25% في وقت الإنشاء. لا يوجد تجاوز معدل لكل مجمّع. - يمكن تغيير الإعداد لكن المجمّعات لا تتبعه. إذا قام سلطة الإعدادات بتعديل AmmConfig، فكل مجمّع موجود مرتبط بهذا الإعداد يختار المعدل الجديد فورًا. هذه ميزة، وليست خلل؛ هذه هي الطريقة التي تنتشر بها التغييرات الاقتصادية على مستوى البروتوكول دون الهجرات لكل مجمّع.
disable_create_poolهو رافعة الإهمال. عندما تكون طبقة رسوم قديمة، تعيين متعدد التوقيع بروتوكول هذه العلامة — المجمّعات الموجودة تبقى تعمل لكن لا يمكن لمجمّعات جديدة اختيار الطبقة.protocol_owner/fund_ownerهم الموقّعون لاستدعاءات جمع الرسوم. تعيينهم إلى متعدد التوقيع هو ما يحد من سحب الرسوم. إنهم ليسوا عناوين الوجهات للرسوم نفسها؛ ذلك هوprotocol_fee_destination/fund_fee_destinationعلى نفس الحساب.
AmmConfig — معاملات الرسوم الخاصة به موجودة لكل مجمّع، مبرمجة بشكل ثابت عند الإنشاء. Farm و LaunchLab لديهما نظائرهما الخاصة (FarmConfig، LaunchConfig) المغطاة في فصولهما الخاصة.
جدول شامل لمن يمكنه تغيير ماذا موجود في security/admin-and-multisig. تقسيمات الرسوم الحالية التي تواجه المستخدم موجودة في ray/protocol-fees.
3. تقسيم رسم البروتوكول/الصندوق/المُنشئ
كل رسم مبادلة CPMM و CLMM ينقسم عبر ما يصل إلى أربع وجهات في الطريق:- رسم التجارة يتراكم في المجمّع. يتم إزالة الرسم من جانب الإدخال للمبادلة والمبلغ بعد الرسم هو ما تراه الرياضيات ذات المنتج الثابت. هذا ما يعنيه “LP يكسب الرسم” —
kيرتفع وكذلك قيمة الرمز الضمنية لكل LP. - أجزاء البروتوكول/الصندوق/المُنشئ يتم خصمها من هذا التراكم من جانب LP إلى حسابات مقابلة لكل مجمّع. تبقى في حالة المجمّع (
protocol_fees_token{0,1}،fund_fees_token{0,1}، وما إلى ذلك) حتى يستدعي شخص ماCollectProtocolFee/CollectFundFee/CollectCreatorFee. لا تترك خزائن المجمّع حتى ذلك الحين؛ من منظور المبادلة فهي لا تزال “في المجمّع”. - الجمع ينقلها للخارج. الموقّع المعني (
protocol_owner/fund_ownerمفاتيح على AmmConfig، أو منشئ الإطلاق لمجمّعات LaunchLab) يستدعي تعليمة الجمع والبرنامج ينقل من خزانة المجمّع إلى ATA للوجهة.
- نسب التقسيم هي من رسم التجارة، وليس من التجارة. رسم تجارة 0.25% مع حصة بروتوكول 12% يعني أن البروتوكول يحصل على
0.25% × 12% = 0.03%من التجارة — ليس 12% من التجارة. - رسوم المُنشئ موجودة فقط على مجمّعات LaunchLab المتخرجة. المجمّعات العادية CPMM/CLMM لديها تقسيم بثلاث طرق (LP / بروتوكول / صندوق). LaunchLab يضيف فتحة رابعة موجهة إلى من أطلق الرمز، مكوّنة عند
Initializeوغير قابلة للتغيير. - AMM v4 ينقسم بطريقتين فقط، مبرمجة بشكل ثابت لكل مجمّع: LP والبروتوكول. لا فتحة صندوق، لا فتحة منشئ.
- الصندوق مقابل البروتوكول — كلاهما وجهات خزينة البروتوكول، لكن لديهما موقّعون مختلفون واستخدامات مقصودة مختلفة.
protocolتاريخيًا يمول العمليات؛fundهي خزينة المدى الأطول. التقسيم بين الاثنين هو في حد ذاته قابل للضبط.
reference/fee-comparison و ray/protocol-fees.
4. حسابات الملاحظة (حلقة TWAP)
يحتفظ كل من CPMM و CLMM بـ حساب ملاحظة لكل مجمّع — حلقة ذاكرة مؤقتة ذات حجم ثابت من عينات(timestamp, cumulative_price) التي يمكن للعقود الأخرى استخدامها لاشتقاق TWAP مقاوم للمعالجة.
- كل مبادلة تستدعي
update_observation. البرنامج يقرأ السعر الحالي، يضربه في الثواني المنقضية منذ الملاحظة السابقة، ويضيفه إلى العداد التراكمي. الإدخال الجديد يكتب فوق أقدم فتحة (نمط حلقة ذاكرة مؤقتة). - TWAP على نافذة =
(cumul[end] − cumul[start]) / (timestamp[end] − timestamp[start]). يختار المستهلكون ملاحظتين توضيحان النافذة المرغوبة ويقسمان. - Raydium نفسه لا يستخدم TWAP للتسعير. رياضيات AMM تقرأ احتياطيات النقطة مباشرة. الملاحظات هي خارجية — Raydium يدفع تكلفة كتابتها حتى يتمكن العقود الأخرى من قراءتها.
- AMM v4 لا يحتوي على حساب ملاحظة. إنه أقدم من تصميم ObservationState؛ المدمجون الذين يريدون TWAP v4 يتعين عليهم حساب واحد خارج السلسلة من تاريخ السجل.
products/cpmm/accounts و products/clmm/accounts.
5. REST API + SDK + IDL
السطح خارج السلسلة هو ثلاثية واحدة يستخدمها كل منتج:- REST API —
https://api-v3.raydium.io. عرض مفهرس للقراءة في الغالب لجميع الحالة على السلسلة بالإضافة إلى محرك اقتباس. مضيف واحد، مخطط واحد. - TypeScript SDK —
@raydium-io/raydium-sdk-v2على NPM. ينشئ وينقّع المعاملات لكل برنامج. يتحدث مع API للاقتباسات/البيانات الوصفية، يتحدث مع Solana RPC لتنعيش الحالة قبل التوقيع. - سجل IDL — Anchor IDLs لكل برنامج منشور يعيش في مستودع
raydium-idl(JSON واحد لكل برنامج: CPMM، CLMM، LaunchLab). TypeScript SDK يستهلك هذه IDLs داخليًا؛ عملاء Rust / Python في المصب يعيدون الإنشاء من نفس الملفات.
| الجزء | يقرأ من | يكتب إلى | تحمل الجدول |
|---|---|---|---|
| REST API | Indexer (يحلل سجلات السلسلة) | — (للقراءة فقط للمدمجين) | بضع ثوانٍ |
| SDK | API + RPC | ينشئ معاملات؛ لا يبث | لا شيء — يجب إعادة جلب الحالة قبل التوقيع |
| IDL | مصدر البرنامج | — | نسخة لكل ترقية برنامج |
sdk-api/، مع سطح IDL تحديدًا في sdk-api/anchor-idl.
6. المفهرسات وموجزات الأسعار
يتم تغذية REST API بـ Raydium’s indexer الخاص، الذي يشترك في سجلات البرنامج من أسطول Solana RPCs ويكتب سجلات منزّلة إلى متجر SQL. نتيجتان للمدمجين:- المفهرس هو الشيء الوحيد الذي “يعرف عن” حالة برنامج متقاطع. ربط مجمّع CPMM بنظيره CLMM، حساب رقم حجم 24 ساعة عبر إصدارات البرنامج، التقاط مزرعة مرتبطة برمز LP — كل ذلك عمل مفهرس. البرامج نفسها لا تفعل ذلك.
- تعطل المفهرس هو تعطل API. إذا أرجع API بيانات قديمة أو فارغة، المفهرس هو المشبوه. الحالة على السلسلة غير متأثرة؛ المدمجون بـ RPC و SDK خاصين بهم يمكنهم الاستمرار في المعاملات.
priceUsd على معظم استجابات المجمّع؛ يتم حسابه خارج السلسلة من لقطة من عرض المفهرس لاحتياطيات المجمّع والسعر المرجعي المقتبس (مجمّعات USDC كمحور مشترك). يكفي للواجهة الرسومية؛ ليس من الآمن استخدامه كـ oracle على السلسلة. استخدم ملاحظة TWAP لذلك.
ما هو غير مشترك
يستحق التدرج صراحة، لأن القراء الجدد غالبًا ما يفترضون مشاركة أكثر مما يوجد:- البرامج لا تستدعي بعضها البعض. مبادلة CPMM لا تقوم أبدًا بـ CPI إلى CLMM أو AMM v4. البرنامج الوحيد الذي يؤلف عدة AMMs هو برنامج AMM Routing — وهذا الواحد نفسه رقيق، فقط ينبعث CPIs إلى كل AMM بالتتابع.
- لا توجد سلطة ترقية مشتركة عبر البرامج. لكل برنامج على السلسلة مفتاح ترقية برنامج خاص به (متعدد توقيع 3/4 بالإضافة إلى قفل زمني بـ 24 ساعة). إنها غير مرتبطة.
- لا توجد حالة مشتركة بين المزارع و AMMs. مزرعة لا تعرف ما إذا كان LP الذي تراهن عليه من مجمّع CPMM، رمز NFT موضع CLMM، أو رمز SPL غير ذي صلة. برنامج المزرعة يعامل رمز الرهن كمعتم.
- لا توجد تبعية oracle. التسعير هو احتياطيات على السلسلة. لا يوجد احتياطي Pyth/Switchboard؛ AMM لا يفحص oracle قبل المقاصة.
المؤشرات
protocol-overview/architecture— الرسم التخطيطي الموثوق الذي يوضح كيفية تكوين هذه الأجزاء.protocol-overview/versions-and-migration— كيفية تطور الاتفاقيات عبر إصدارات البرنامج.security/admin-and-multisig— من يتحكم في المفاتيح خلف AmmConfigs.reference/fee-comparison— مصفوفة معدل الرسوم لكل منتج.reference/program-addresses— معرّفات البرامج الموثوقة.
- Raydium SDK v2 — مصدر الحقيقة لبذور PDA وتخطيطات الحسابات وتعريفات IDL.
- Raydium IDL registry — Anchor IDLs.
- صفحات حسابات محددة لكل منتج المذكورة أعلاه.


