هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لا تنشر Raydium حزمة Python رسمية. الأنماط المعروضة هنا تجمع بين ثلاث مكتبات مجتمعية مدعومة بشكل جيد:
solders (برامج Solana الأساسية المربوطة بـ Rust)، solana-py (عميل RPC)، و anchorpy (منشئو التعليمات بأسلوب Anchor من IDLs). المزيج يغطي كل شيء تفعله حزمة TypeScript، لكنه أقل تلميعًا.البيئة
anchorpy يتخلف دوريًا عن إصدار anchor-lang؛ بالنسبة لبرنامج Raydium المنشور مؤخرًا، تحقق من أن IDL يُترجَم تحت إصدار anchorpy الثابت لديك قبل الالتزام.
الاتصال والمفتاح الخاص
AsyncClient هو المتغير غير المتزامن؛ Client المتزامن متاح للبرامج السريعة لكن الأسلوب غير المتزامن مفضل لأي شيء يُرسل عدة طلبات.
قراءة حالة المجمع
تقرأ معظم الاستخدامات الإنتاجية حالة المجمع المفسرة من واجهة REST API الخاصة بـ Raydium (انظرsdk-api/rest-api) بدلاً من فك تشفير البيانات على السلسلة يدويًا — إنه أبسط والكمون مقبول لمعظم حالات الاستخدام.
src/raydium/cpmm/layout.ts (مصدر TS)؛ قم بنقله إلى construct حسب الحاجة. يمكن لـ anchorpy أن يفعل هذا تلقائيًا مع IDL — انظر أدناه.
بناء وإرسال مبادلة
للبساطة، استخدم نقطة نهاية server-built-transaction الخاصة بـ Raydium. يعيد الخادم معاملة موقعة وجاهزة؛ تحتاج فقط إلى إضافة توقيعك:بناء مبادلة من جانب العميل (عبر anchorpy)
للحصول على كمون أقل أو عندما لا تتمكن من الوصول إلى API الخاصة بـ Raydium (مناطق معاقة، إعدادات معزولة):
anchorpy باشتقاقها تلقائيًا.
عمارة الروبوت النموذجية
بنية روبوت Python الشائعة لـ Raydium:- مزود RPC. تقيد RPCs الرسمية على mainnet بقوة. استخدم مزودًا مخصصًا (Helius أو QuickNode أو Triton) للحركة المستدامة.
- WebSocket لحالة المجمع.
client.account_subscribe(pool_id)يدفع التحديثات في كل تغيير حالة. أقل بكثير من المراجعة المتكررة. - مزود رسوم الأولوية. Helius لديها نقطة نهاية
getPriorityFeeEstimate؛ Triton لديها الخاصة بهم. حجم الرسوم بناءً على النسبة المئوية 75 من الرسوم الأخيرة على برنامج الهدف. - الحزم للتداولات الحساسة للـ MEV. امرر عبر محرك الكتلة الخاص بـ Jito إذا كنت لا تتحمل خطر الثلاثية. مكتبات Python:
jito-sdk-python(جهة خارجية، تختلف الجودة).
قراءة حالة المزرعة
.account["X"].decode(bytes) الخاص بـ anchorpy كائن Python أصلي يطابق هيكل IDL.
الأخطاء الشائعة
1. معالجة الكسور العشرية
قيمfloat الأصلية في Python هي IEEE-754 مزدوجة؛ الكميات في مسكوكات 9 عشري (1 SOL = 1e9 وحدة) تبقى دقيقة لكن النسب والمنتجات تفقد الدقة. استخدم int (يعيد solders int لجميع حقول الكمية) وقم بالتوجيه عبر decimal.Decimal لأي حسابات أسعار.
2. التفكير بناءً على الفتحة مقابل التفكير بناءً على الطابع الزمني
تستخدم بعض إصدارات المزرعة عدادات الفتحات؛ LaunchLab يستخدم الطوابع الزمنية. يعيدsolana-py slot في استجابات RPC، لكن تحويل الفتحة → الطابع الزمني غير دقيق (يختلف حسب جدول الزعيم). إذا كنت تحتاج إلى الوقت الفعلي، اتصل بـ get_block_time(slot) بشكل صريح.
3. استنزاف مجمع الاتصالات
AsyncClient يفتح اتصال HTTP واحد لكل طلب بشكل افتراضي. تحت حمل كبير، أعد استخدام جلسات httpx.AsyncClient وعيّن limits=httpx.Limits(max_connections=100) مناسبة.
4. حدود حجم المعاملة
المعاملات المُنشأة بـ Python ليست أصغر من تلك المُنشأة بـ TS — يطبق حد 1232 بايت بالتساوي. استخدم معاملات V0 (جداول البحث للعناوين) لأي شيء يمر عبر أكثر من ~2 مجمع.مؤشرات
sdk-api/rest-api— نقاط النهاية HTTP المستخدمة أعلاه.sdk-api/anchor-idl— حيث يمكنك الحصول على IDL لـanchorpy.integration-guides/routing-and-mev— أنماط حزمة Jito.

