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 الأحدث (CPMM, CLMM, Farm v6, LaunchLab) مكتوبة بـ Anchor — إطار عمل Rust يبني على نموذج البرنامج الأصلي في Solana لتوفير التحقق من الحسابات، معالجة الأخطاء، و IDL (وصف الواجهة). برنامج AMM v4 والمزارع الأقدم سابقة لـ Anchor. فهم كلا النموذجين يساعدك على قراءة الكود، إنشاء عملاء من IDL، وتصحيح الأخطاء غير المتوقعة.
نموذج نشر البرامج
كل برنامج Solana يعيش فيPubkey. يتم تخزين bytecode البرنامج في حساب قابل للتنفيذ يملكه BPF Upgradable Loader (BPFLoaderUpgradeab1e11111111111111111111111).
نشر البرنامج يتكون من ثلاثة حسابات:
- حساب البرنامج: حساب بيانات وصفية صغير في معرف البرنامج. المالك: BPF Upgradable Loader.
- حساب ProgramData: يحتفظ بـ bytecode الفعلي. مشتق من
[program_id, "programdata"]. - حساب Buffer (مؤقت): يحتفظ بـ bytecode جديد أثناء الترقية. يُحذف بعد الترقية.
security/admin-and-multisig.
التحقق من برنامج مُنشّر
للتأكد من أن ما هو على السلسلة يطابق ما هو في المصدر المعتمد بالتدقيق:Anchor: إطار عمل فوق Solana
برامج Solana الأصلية هي وظائف Rust بهذا التوقيع:- ينشئ آليًا discriminator حتمي بـ 8 بايت لكل تعليمة وكل نوع حساب.
- يتحقق من قيود الحساب (المالك، البذور، القابلية للكتابة، الموقّع، مطابقة mint، مطابقة برنامج الرمز) قبل تشغيل الكود الخاص بك.
- ينشئ IDL — ملف وصف الواجهة الذي يستخدمه العملاء لاستدعاء البرنامج.
- يشحن مع مكتبة عميل جانبية Rust و TypeScript و Python.
discriminator بـ 8 بايت
كل حساب Anchor وكل تعليمة Anchor تبدأ بـ discriminator بـ 8 بايت — أول 8 بايت من SHA-256 لسلسلة ثابتة:getProgramAccounts التي تعدد جميع الحسابات من نوع معين.
الأخطاء
تعرّف برامج Anchor الأخطاء عبر#[error_code]:
reference/error-codes.
IDL
ملف Anchor IDL (لغة وصف الواجهة) هو وصف JSON لبرنامج: تعليماته، حساباته، أنواعه، أخطاؤه، وأحداثه. إنه معادل ABI Ethereum. تنشر Raydium IDLs لجميع برامج Anchor. جلب مباشرة من على السلسلة:src/raydium/*/idl/*.json.
بنية IDL
إنشاء عميل من IDL
أداة Anchor CLIanchor تنشئ أنواع TypeScript و Rust:
عندما يكون IDL صديقك
إذا كنت تريد بناء تكامل مخصص لا يمر عبر Raydium SDK:- جلب IDL (مباشرة من على السلسلة أو من مصدر SDK).
- ابحث عن التعليمة التي تريدها (مثل
swap_base_input). - بناء بيانات التعليمة: 8 بايت discriminator + المعاملات المشفرة.
- مرر الحسابات بالترتيب المحدد بواسطة IDL.
sdk-api/anchor-idl للأمثلة العملية.
برامج ما قبل Anchor: AMM v4 و Farm v3/v5
هذه البرامج سابقة لـ Anchor. تستخدم:- إرسال تعليمات يدوي: علامة
u8فيinstruction_dataمع بيانmatch. - التحقق من الحساب يدويًا:
if accounts[0].owner != &expected_program { ... }. - معاملات تعليمات مسلسلة Borsh: لا discriminator، فقط
instruction_data[1..]. - التخطيط عبر
#[repr(C, packed)]: تخطيط ثنائي لـ struct C.
ميكانيكا ترقية البرنامج
فقطupgrade_authority الخاص بـ ProgramData يمكنه الترقية. الخطوات:
- تجميع bytecode الجديد.
- كتابته إلى حساب buffer (
solana program write-buffer). - تقديم تعليمة ترقية:
BpfLoaderUpgradeable::Upgrade { buffer, program, authority }. - وقت التشغيل يستبدل آليًا bytecode البرنامج بمحتويات buffer.
security/admin-and-multisig.
جعل برنامج غير قابل للتغيير
يمكن تعيين سلطة الترقية إلىNone، وفي هذه النقطة يصبح البرنامج دائمًا غير قابل للتغيير. لم تقم Raydium بهذا لأي منتج — يحتفظ الفريق بالقدرة على نشر إصلاحات الأمان. المقايضة: يجب على المستخدمين الوثوق بعملية multisig + القفل الزمني.
البرامج والإيجار
نشر برنامج يستهلك lamports معفاة من الإيجار:- برنامج بـ 50 KB: ~0.35 SOL في الإيجار.
- برنامج بـ 200 KB: ~1.4 SOL في الإيجار.
solana program close) يعيد lamports. برامج Raydium تبقى نشطة ولم تُجدول للإغلاق.
تصحيح برامج Anchor
مخرجات السجل
ماكرو Anchormsg! يكتب إلى سجل المعاملة. محاكاة معاملة لمشاهدة السجلات:
- استدعاء البرنامج (
Program CPMMoo8... invoke [1]). - استدعاءات
msg!من كود البرنامج. - استهلاك وحدات الحساب (
consumed 137842 of 400000 compute units). - نجاح أو خطأ البرنامج.
رموز الخطأ
إذا رمى برنامج Anchor خطأ، السجل يُظهر:SlippageExceeded). قارن مع مصفوفة errors في IDL.
انظر reference/error-codes لجدول الخطأ الكامل الخاص بـ Raydium.
عدم تطابق تخطيط الحساب
إذا مررت الحساب الخاطئ في الفتحة الخاطئة، ماكروهات التحقق من حساب Anchor ترجع أخطاء مثل:ErrorCode الخاص بـ Anchor)؛ الأخطاء ≥6000 هي أكواد البرنامج المخصصة.
مؤشرات
solana-fundamentals/account-model— كيف تمتلك البرامج الحسابات.solana-fundamentals/pdas-and-cpis— PDAs كما تعلنها Anchor.sdk-api/anchor-idl— جلب واستخدام IDLs الخاصة بـ Raydium.reference/program-addresses— معرفات البرامج.reference/error-codes— مرجع رمز الخطأ.security/admin-and-multisig— تحكم سلطة الترقية.
- كتاب Anchor.
- نشر برنامج Solana.
- IDLs الخاصة بـ Raydium (منشورة في SDK
src/raydium/*/idl/*.json).


