عن المشروع

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