عن المشروع

مشروع FlashLoanArbitrage (المنشور تحت اسم المستودع flashloan-routing-engine) هو مشروع تعليمي باللغة الإنجليزية يجمع بين عقد ذكي مكتوب بلغة Solidity وسكريبت Node.js محلي، goflash.js، لإجراء تحكيم القروض السريعة لزوج ETH/USDC في منصات DeFi على شبكة Ethereum. يوضح ملف README سير العمل كالتالي: يأخذ العقد قرضاً سريعاً مقوماً بـ USDC، ويستخدم الأموال المقترضة لشراء ETH من المنصة التي تقدم السعر الأدنى وبيعها في المنصة التي تقدم السعر الأعلى، ثم يسدد القرض بالإضافة إلى الرسوم وتكاليف الغاز، ويحول الربح المتبقي، ويترك النتيجة الصافية للمستخدم. تم توثيق دعم عمليات الاقتراض من Aave (رسوم 0.05%، حتى 10,000,000 USDC)، وdYdX (0.05%، حتى 500,000 USDC)، وUniswap V3 (0.01%، حتى 5,000,000 USDC)، وBalancer (0.02%، حتى 1,000,000 USDC). ويشير ملف README إلى أن رسوم القرض السريع تتناسب مع حجم القرض، لذا ينصح بإبقاء القرض متواضعاً بالنسبة لرصيد المحفظة. يقوم السكريبت المرافق goflash.js بجلب أسعار ETH/USDC كل 60 ثانية تقريباً من Chainlink كمرجع للأوراكل، بالإضافة إلى Uniswap V2 وSushiSwap وCurve Finance وBalancer، ويعرضها مع مؤشرات (صعود / هبوط / بدون تغيير)، ولا يعطي إشارة للتحكيم إلا عندما يكون الفارق الملحوظ 0.9% على الأقل. كما يقوم بالإبلاغ عن أقصى فرق في السعر عبر المنصات. لتشغيله وفقاً للتعليمات: يتم تحميل goflash.js وpackage.json في أي مجلد، ثم تشغيل npm install، ثم node goflash.js. التبعيات المدرجة هي ethers ^6.11.1 وinquirer ^8.2.6 وchalk ^4.1.2. عند التشغيل الأول، توفر قائمة تفاعلية خيار إنشاء محفظة جديدة أو استيراد محفظة موجودة عبر المفتاح الخاص؛ حيث يتم كتابة المفتاح في ملف wallet.json في نفس المجلد. ثم تعرض القائمة خيارات اختيار بروتوكول DeFi، ومبلغ القرض بـ ETH، وإعادة إنشاء المحفظة، واستيراد المحفظة، وبدء التحكيم (Start Arbitrage)، والخروج. التحذيرات المذكورة في ملف README: يتم خصم رسوم التداول (المحددة بـ 0.1%) وانزلاق سعري بنسبة 0.05% بالإضافة إلى الغاز قبل حساب صافي الربح؛ وتعتبر المحفظة التي تقل عن 0.1 ETH غير كافية لتغطية الغاز للقروض التي تتجاوز 10 ETH؛ ويقر ملف README بأن فارق 0.9% نادر في الأسواق الحقيقية وأن السكريبت يعرض أحياناً فرصة محاكاة لأغراض العرض. ويغطي قسم استكشاف الأخطاء وإصلاحها أخطاء تنسيق الوحدات (module-format)، وتنسيق المفتاح الخاص غير الصالح، ونقص الأموال، وإعادة الاتصال بـ RPC. تطلب إرشادات الأمان الواردة في README من المستخدمين عدم رفع ملف wallet.json إلى المستودع، وإضافته إلى .gitignore، والاحتفاظ بنسخ احتياطية من المفاتيح الخاصة دون اتصال بالإنترنت، واستخدام محفظة مخصصة، والبدء بمبالغ صغيرة. تم وصف المشروع بأنه مشارك كما هو لأغراض تعليمية، مع تحمل المستخدم للمخاطر. لأي شخص يقوم بتقييمه: يقوم التصميم بتخزين مفتاح خاص بنص صريح في ملف JSON محلي ويتطلب تمويل محفظة بـ ETH للغاز، لذا تظل هذه اعتبارات جوهرية؛ ويجب مراجعة العقد والسكريبت قبل نقل أي أموال، ولا يتم ادعاء أو إثبات أي ربحية من خلال المواد المقدمة.