عن المشروع

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