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.
هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
الانقسام الأساسي: البرامج مقابل الحسابات
البرامج
البرنامج في سولانا هو كود قابل للتنفيذ — ملف ثنائي مترجم يتم تحميله من ملف، ونشره إلىPubkey، ويمكن استدعاؤه عبر المعاملات. البرامج لا تملك حالة مرتبطة بها؛ فهي تحتوي فقط على منطق.
برامج رايديوم:
- CPMM:
CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F - CLMM:
CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK - AMM v4:
675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
الحسابات
الحساب هو صف من البيانات على السلسلة. كل حساب له:pubkey— عنوانه.owner— البرنامج الذي يملكه (يتحكم في الكتابة).data— البايتات الخام.lamports— رصيد SOL (1 SOL = 1,000,000,000 lamports).rent_epoch— حقل جمع الإيجار القديم (تم تجاهله منذ أصبح الإعفاء من الإيجار إلزامياً).
الملكية
كل حساب يملكه برنامج واحد بالضبط. فقط كود هذا البرنامج يمكن أن يعدل حقلdata في الحساب. يمكن للمستخدم تعديل lamports (إرسال/استقبال SOL) على حساب يمكنه التوقيع عليه، لكن تعديل data يتطلب من برنامج المالك أن يفعل ذلك نيابة عنه.
أمثلة:
- محفظة المستخدم: مملوكة من قبل برنامج النظام. تعيش lamports هنا؛ تتوقع لتحويل.
- حساب رمز USDC الخاص بك: مملوك من قبل برنامج SPL Token. يقوم برنامج الرموز بتحديث الرصيد من خلال تعليمة
transfer. - حساب حالة بركة رايديوم: مملوك من قبل برنامج CPMM. فقط تعليمات CPMM يمكنها تعديل الاحتياطيات والرسوم، وما إلى ذلك.
PersonalPositionStateلـ NFT موضع رايديوم: مملوك من قبل برنامج CLMM.
الإيجار والإعفاء من الإيجار
ينتج عن إنشاء حساب استهلاك مساحة التخزين. تفرض سولانا إيجاراً على تلك المساحة، لكن منذ عام 2020 يجب أن تكون جميع الحسابات الجديدة معفاة من الإيجار — بمعنى أنها تحتفظ بـ lamports كافية بحيث يتم دفع الإيجار مقدماً لمدة سنتين. من الناحية العملية:- حساب معفى من الإيجار يعيش إلى الأبد.
- إغلاق الحساب يعيد lamports إلى موقّع الإغلاق.
تكاليف الإيجار في رايديوم
| الحساب | الحجم | الإيجار |
|---|---|---|
| CPMM PoolState | ~1,440 B | ~0.011 SOL |
| CLMM PoolState | ~1,500 B | ~0.012 SOL |
| CLMM TickArray | ~9,000 B | ~0.063 SOL |
| CLMM PersonalPositionState | ~280 B | ~0.003 SOL |
| ATA | 165 B | ~0.002 SOL |
| Vault (Token Account) | 165 B | ~0.002 SOL |
حسابات البيانات مقابل الحسابات القابلة للتنفيذ
الحسابات تأتي بنكهتين:حسابات البيانات
تحمل حالة (احتياطيات البركة، أرصدة الرموز، مواضع المستخدم).executable = false. هذا هو الأغلبية الساحقة.
حسابات قابلة للتنفيذ
تحمل بايتكود البرنامج.executable = true. هذه برامج (CPMM, CLMM, إلخ). البرامج ليس لديها بيانات تتجاوز بايتكودها.
الحسابات المشتقة من البرنامج (PDAs)
PDA هو حساب بيانات عنوانه مشتق بشكل حتمي من برنامج وبعض البذور — لا توجد مفتاح خاص لهذا العنوان. فقط برنامج الاشتقاق يمكنه التوقيع نيابة عن PDA عبرinvoke_signed.
تستخدم رايديوم PDAs على نطاق واسع:
- PDAs حالة البركة: مشتقة من
[poolTypeDiscriminator, mintA, mintB, ammConfig]. - PDAs الفولت: مشتقة من
[pool, mint]. - PDA حالة الملاحظة: مشتقة من
[observationSeed, pool].
solana-fundamentals/pdas-and-cpis.
المعاملات وإشارات الحساب
كل معاملة سولانا تحمل قائمة صريحة من الحسابات التي ستقرأ/تكتب. يفرض وقت التشغيل:- يمكن قراءة الحسابات المسرودة أو كتابتها (وفقاً لعلم
is_writableالخاص بها). - لا يمكن لمس الحسابات غير المسردة.
حجم الحساب وتخطيط البيانات
كل حساب رايديوم له حجم ثابت أو محدود. يتم تحديد التخطيط في الكود (هياكل Rust مع#[repr(C)]) وموثق في sdk-api/anchor-idl.
برامج Anchor تضيف discriminator بطول 8 بايت مقدماً لكل حساب تنشئه، مشتق من hash("account:<StructName>")[0..8]. هذا يسمح للعملاء بتحديد نوع الحساب بمجرد قراءة أول 8 بايت — حاسم لعمليات getProgramAccounts التي تعداد جميع الحسابات من نوع معين.
قراءة حالة بركة رايديوم
عبر SDK:src/raydium/cpmm/layout.ts في مصدر SDK.
مثال عملي: قراءة حساب رمز
دعنا نقرأ رصيد USDC للمستخدم.لماذا هذا مهم بالنسبة لرايديوم
نموذج الحساب يشكل تصميم رايديوم:- حالة البركة هي حساب واحد — كل شيء عن البركة (العملات، الاحتياطيات، الرسوم، المسؤول) يعيش في حساب واحد مملوك من قبل برنامج البركة.
- رموز LP هي حسابات رموز SPL قياسية — يفوض رايديوم التكامل إلى برنامج SPL Token.
- مصفوفات التكات مقسمة — CLMM لا يمكن أن يكون لديها مصفوفة واحدة قابلة للنمو من التكات لأن الحسابات لها حجم مخصص ثابت؛ بدلاً من ذلك، فإنها تستخدم PDAs
TickArrayمقسمة. - NFTs الموضع هي NFTs Metaplex — مواضع CLMM هي NFTs قياسية لكل Metaplex؛ حالة الموضع هي PDA منفصل.
- “أين احتياطيات البركة؟” → حسابان من الأقبية (حسابات رموز) مملوكة من قبل برنامج SPL Token، مع السلطة المفوضة إلى PDA لبرنامج البركة.
- “أين بيانات التك لـ CLMM؟” → سلسلة من TickArray PDAs، كل منها يغطي 60 تك متتالي.
- “أين الرهان الزراعي الخاص بي؟” →
UserLedgerPDA مشتق من[user, farmId]، مملوك من قبل برنامج المزرعة.
مؤشرات
solana-fundamentals/programs-and-anchor— كيف تعالج البرامج الحسابات.solana-fundamentals/pdas-and-cpis— اشتقاق PDA و CPI.solana-fundamentals/transactions-and-fees— كيفية الإشارة إلى الحسابات في المعاملات.sdk-api/anchor-idl— تخطيطات الحساب لبرامج رايديوم.
- Solana Account docs.
- SPL Token program — حيث توجد حسابات الرموز.


