À propos du projet
FlashLoanArbitrage est un bot en ligne de commande Node.js publié pour l'arbitrage par prêt flash sur la DeFi. Selon son README, il associe un contrat intelligent on-chain à un script local, goflash.js, qui s'exécute sur la machine de l'utilisateur. Le dépôt est décrit par son auteur comme étant partagé « tel quel à des fins éducatives » et utilisé aux risques et périls du lecteur.
Fonctionnement décrit : le contrat contracte un prêt flash libellé en USDC, le script convertit au préalable l'ETH de l'utilisateur en USDC, l'ETH est acheté sur une plateforme et vendu sur une autre, le prêt plus les frais et le gaz sont remboursés, et le profit restant en USDC est reconverti en ETH. Le script interroge les prix ETH/USDC toutes les 60 secondes et ne déclenche une transaction que lorsque l'écart entre les plateformes atteint 0,9 % ou plus ; en dessous, il attend.
Sources de prix et lieux de prêt. Pour les prêts flash, le README liste Aave (frais déclarés de 0,05 %, jusqu'à 10 000 000 USDC), dYdX (0,05 %, jusqu'à 500 000 USDC), Uniswap V3 (0,01 %, jusqu'à 5 000 000 USDC) et Balancer (0,02 %, jusqu'à 1 000 000 USDC). Pour l'analyse des prix, il cite Chainlink comme oracle pour le prix de base de l'ETH, ainsi qu'Uniswap V2, SushiSwap, Curve Finance et Balancer. La sortie de la console affiche le prix de chaque plateforme avec des indicateurs de hausse/baisse/stabilité et l'écart maximal entre les plateformes.
Installation et utilisation. Les instructions consistent à obtenir goflash.js et package.json, à les placer dans n'importe quel dossier, à exécuter npm install, puis node goflash.js. Au premier lancement, une invite interactive (conçue avec inquirer) demande s'il faut créer un nouveau portefeuille ou en importer un existant via une clé privée commençant par 0x. Les clés générées sont écrites dans wallet.json dans le même dossier. Un menu textuel propose ensuite : DeFi (choix du protocole de prêt flash), Montant du prêt en ETH, Recréer le portefeuille, Importer le portefeuille, Démarrer l'arbitrage et Quitter. Les dépendances listées sont ethers ^6.11.1, inquirer ^8.2.6 et chalk ^4.1.2.
Contraintes et coûts déclarés. Le README indique que les montants des prêts vont de 10 ETH jusqu'au maximum du protocole sélectionné, et avertit que les portefeuilles détenant moins de 0,1 ETH ne devraient pas contracter de prêts supérieurs à 10 ETH car le gaz ne serait pas couvert. Il mentionne des frais de trading de 0,1 %, un glissement (slippage) de 0,05 % et les coûts de gaz comme déductions du profit brut. Il précise également que le solde du portefeuille est utilisé uniquement pour le gaz et que l'ETH n'est pas transféré vers le contrat.
Mises en garde à signaler. Le README lui-même indique qu'un écart de 0,9 % entre les plateformes est rare sur les marchés réels et que le script « montre occasionnellement une opportunité simulée pour démonstration » — ce qui signifie que la sortie affichée peut ne pas correspondre à une transaction exécutable en direct. Le projet demande également aux utilisateurs de créer ou d'importer une clé privée dans un fichier wallet.json en texte brut ; sa propre section sécurité conseille de ne jamais commiter ce fichier, de l'ajouter à .gitignore, de conserver des sauvegardes hors ligne, d'utiliser un portefeuille dédié pour le bot, de commencer avec de petites sommes et de ne jamais partager la clé. Toute personne évaluant ce logiciel doit considérer la garde de la clé privée et l'exactitude des rendements annoncés comme les risques centraux, et doit vérifier indépendamment l'adresse du contrat référencé et le comportement du script plutôt que de se fier aux exemples du README.
Le README comprend également une section de dépannage pour les erreurs courantes : erreurs de format de module, format de clé privée invalide, fonds insuffisants, solde de portefeuille nul, indisponibilité du RPC, paires ETH/USDC manquantes sur V2 et échec de la recherche d'opportunités d'arbitrage. La structure du projet décrite est goflash.js, package.json, wallet.json et README.md.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.