عن المشروع

مشروع FlashLoanArbitrage هو مشروع سطر أوامر Node.js يجمع بين نص برمجي رئيسي (goflash.js) وقائمة طرفية تفاعلية، ويهدف إلى إجراء المراجحة عبر القروض السريعة (flash-loan arbitrage) بين منصات DeFi. وفقاً لملف README، يقوم عقد ذكي مصاحب بأخذ قرض سريع من USDC، وشراء ETH من منصة واحدة وبيعه على منصة أخرى، ثم سداد القرض بالإضافة إلى الرسوم والغاز، وتحويل أرباح USDC المتبقية إلى ETH، وإعادة النتيجة الصافية إلى محفظة المستخدم. مراقبة الأسعار: يقرأ النص البرمجي أسعار ETH/USDC من Chainlink (oracle)، وUniswap V2، وSushiSwap، وCurve Finance، وBalancer كل 60 ثانية، ويعرضها مع مؤشرات (صعود/هبوط/ثبات)، ويبلغ عن أقصى فرق سعري عبر المنصات. يتم محاولة المراجحة فقط عندما يصل الفارق إلى 0.9% أو أكثر. ويذكر ملف README أن هذا الحد موجود لتجنب الخسائر، وأن مثل هذه الفروق نادرة في الأسواق الحقيقية، وأن النص البرمجي يظهر أحياناً فرصة محاكاة لأغراض العرض. بروتوكولات القروض السريعة: هناك أربعة بروتوكولات مدعومة — 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 باستخدام dYdX أو Uniswap V3 لرسوم أقل، ويذكر أن مبالغ القروض تتراوح من 10 ETH وصولاً إلى الحد المذكور لكل بروتوكول. تدفق الاستخدام: يتم تحميل goflash.js وpackage.json في مجلد، وتشغيل npm install، ثم node goflash.js. عند التشغيل الأول، تعرض واجهة CLI خيار إنشاء محفظة جديدة أو استيراد محفظة موجودة عبر المفتاح الخاص؛ ويتم حفظ المفتاح في ملف wallet.json في نفس المجلد. ثم توفر القائمة خيارات اختيار بروتوكول DeFi، وتحديد مبلغ القرض بـ ETH، وإعادة إنشاء أو استيراد محفظة، وبدء المراجحة، والخروج. التبعيات المدرجة هي ethers (^6.11.1) وinquirer (^8.2.6) وchalk (^4.1.2). تشمل التكاليف المذكورة رسوم التداول (0.1%)، والانزلاق السعري (0.05%)، والغاز؛ ويحذر ملف README من أن المحافظ التي تقل عن 0.1 ETH يجب ألا تأخذ قروضاً تزيد عن 10 ETH لأن الغاز لن يكون مغطى. يغطي قسم استكشاف الأخطاء وإصلاحها أخطاء تنسيق الوحدات، والمفاتيح الخاصة غير الصالحة، ونقص الأموال، وإعادة الاتصال بـ RPC، وافتقار أزواج ETH/USDC V2، وندرة الفرص. ملاحظات أمنية واردة في ملف README: عدم رفع أو مشاركة wallet.json أو المفتاح الخاص أبداً، وإضافة wallet.json إلى .gitignore، والاحتفاظ بنسخ احتياطية خارج الإنترنت، واستخدام محفظة مخصصة، والبدء بمبالغ صغيرة. يوصف المشروع بأنه مشترك كما هو لأغراض تعليمية ويتم استخدامه على مسؤولية المستخدم الخاصة. لا يوفر ملف README أي نتائج تدقيق، ولا سجل للأرباح، ولا تغطية للاختبارات، ويشير صراحة إلى أن الفروق الحقيقية بالحجم المطلوب غير شائعة؛ ويجب التعامل مع معالجة المفاتيح الخاصة وأي تحويلات على الشبكة بحذر.