عن المشروع

مشروع FlashLoanArbitrage هو مشروع سطر أوامر بلغة JavaScript مخصص لتحكيم DeFi على شبكة Ethereum يعتمد على القروض الخاطفة (flash loans). وفقاً لملف README، يقوم عقد ذكي باقتراض USDC عبر قرض خاطف، ويشتري ETH من المنصة التي يكون فيها أرخص، ويبيعه حيث يكون أغلى، ثم يسدد القرض بالإضافة إلى الرسوم وتكاليف الغاز (gas)، ويحول أرباح USDC المتبقية إلى ETH. يعمل سكربت محلي باسم goflash.js على جهاز المستخدم، حيث يراقب أسعار ETH/USDC ويقوم بتشغيل العقد عند ظهور فرصة. يذكر وصف المستودع التنبؤ بتحركات أسعار ETH باستخدام التحليل الفني، لكن ملف README نفسه يوثق بوت تنفيذ تحكيم بدلاً من نموذج تنبؤ؛ ولا يوجد وصف لأي مكون للتنبؤ أو التحليل الفني في README، كما أن هيكل المشروع المدرج يحتوي فقط على goflash.js و package.json و wallet.json و README.md، لذا لا تظهر مصادر العقد الذكي في تلك الشجرة. تعتمد مراقبة الأسعار على خمسة مصادر: Chainlink كأوراكل لسعر ETH الأساسي، و 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 لرسوم أقل، ويشير إلى أن الرسوم تتناسب مع حجم القرض. تم توثيق الإعداد بتحميل goflash.js و package.json في مجلد، وتشغيل npm install، ثم node goflash.js. عند التشغيل الأول، يبلغ السكربت عن عدم العثور على محفظة ويعرض قائمة تفاعلية: إنشاء محفظة جديدة، والتي تعرض عنواناً ومفتاحاً خاصاً وتكتب المفتاح في ملف wallet.json في نفس المجلد، أو استيراد محفظة موجودة عبر مفتاح خاص مكون من 64 حرفاً يبدأ بـ 0x. تظهر عمليات التشغيل اللاحقة قائمة رئيسية تحتوي على اختيار بروتوكول DeFi، ومبلغ القرض بـ ETH (الموصوف بـ 10 ETH وصولاً إلى الحد الأقصى للبروتوكول)، وإعادة إنشاء المحفظة، واستيراد المحفظة، وبدء التحكيم، والخروج. تشمل التكاليف المذكورة رسوم تداول بنسبة 0.1%، وانزلاق سعري (slippage) بنسبة 0.05%، وتكاليف الغاز. ينصح README بالاحتفاظ بـ 0.1 ETH على الأقل في المحفظة لتغطية الغاز عند اقتراض أكثر من 10 ETH، ويذكر أن رصيد المحفظة يُستخدم فقط للغاز بينما لا يتم تحويل ETH إلى العقد. التبعيات هي ethers ^6.11.1 و inquirer ^8.2.6 و chalk ^4.1.2. يغطي قسم استكشاف الأخطاء وإصلاحها أخطاء تنسيق الوحدات (module-format)، وتنسيق المفتاح الخاص غير الصالح، وعدم كفاية الأموال، ونقاط نهاية RPC غير قابلة للوصول، وأزواج V2 المفقودة. هناك تحذيرات ملحوظة مذكورة في README نفسه: توصف فروق الأسعار بنسبة 0.9% بأنها نادرة في الأسواق الحقيقية، ويذكر أن السكربت يظهر أحياناً فرصة محاكاة لأغراض العرض، لذا فإن التنفيذ المربح المباشر غير مضمون. يتم تخزين المفتاح الخاص بنص صريح في wallet.json؛ وينصح README بعدم رفع هذا الملف أبداً، وإضافته إلى .gitignore، والاحتفاظ بنسخ احتياطية خارج الإنترنت، واستخدام محفظة مخصصة والبدء بمبالغ صغيرة. يتم مشاركة المشروع كما هو لأغراض تعليمية ويتم استخدامه على مسؤولية المالك.