Sobre el proyecto

FlashLoanArbitrage es un proyecto de línea de comandos en JavaScript para el arbitraje de DeFi en Ethereum basado en flash loans. Según su README, un contrato inteligente toma prestado USDC a través de un flash loan, compra ETH en la plataforma donde es más barato, lo vende donde es más caro, devuelve el préstamo más las tarifas y el gas, y convierte la ganancia restante de USDC nuevamente a ETH. Un script local llamado goflash.js se ejecuta en la máquina del usuario, monitorea los precios de ETH/USDC y activa el contrato cuando aparece una oportunidad. La descripción del repositorio menciona la predicción de los movimientos de precios de ETH con análisis técnico, pero el README documenta un bot de ejecución de arbitraje en lugar de un modelo de pronóstico; no se describe ningún componente de pronóstico o análisis técnico en el README, y la estructura del proyecto enumerada contiene solo goflash.js, package.json, wallet.json y README.md, por lo que las fuentes del contrato inteligente no se muestran en ese árbol. El monitoreo de precios se basa en cinco fuentes: Chainlink como oráculo para el precio base de ETH, Uniswap V2, SushiSwap, Curve Finance y Balancer. El script se describe escaneando estos precios cada 60 segundos y esperando una diferencia del 0,9% o más antes de actuar, bajo el razonamiento de que brechas menores no cubrirían los costos. La salida de la consola muestra el precio de cada plataforma con un indicador de subida, bajada o sin cambios, además del spread máximo entre plataformas. Se enumeran cuatro protocolos de flash loan, con las cifras del propio README: Aave con una tarifa del 0,05% y hasta 10,000,000 USDC de liquidez, dYdX al 0,05% y hasta 500,000 USDC, Uniswap V3 al 0,01% y hasta 5,000,000 USDC, y Balancer al 0,02% y hasta 1,000,000 USDC. El README recomienda dYdX o Uniswap V3 por sus tarifas más bajas y señala que las tarifas escalan con el tamaño del préstamo. La configuración se documenta descargando goflash.js y package.json en una carpeta, ejecutando npm install y luego node goflash.js. En el primer lanzamiento, el script informa que no se encontró ninguna billetera y ofrece un menú interactivo: crear una nueva billetera, que muestra una dirección y una clave privada y escribe la clave en wallet.json en la misma carpeta, o importar una billetera existente mediante una clave privada de 64 caracteres con prefijo 0x. Los lanzamientos posteriores muestran un menú principal con selección de protocolo DeFi, monto del préstamo en ETH (descrito desde 10 ETH hasta el máximo del protocolo), recrear billetera, importar billetera, iniciar arbitraje y salir. Los costos declarados incluyen tarifas de trading del 0,1%, slippage del 0,05% y gas. El README aconseja mantener al menos 0,1 ETH en la billetera para el gas al pedir prestado más de 10 ETH, y afirma que el saldo de la billetera se utiliza solo para el gas, mientras que el ETH no se transfiere al contrato. Las dependencias son ethers ^6.11.1, inquirer ^8.2.6 y chalk ^4.1.2. Una sección de resolución de problemas cubre errores de formato de módulo, formato de clave privada inválido, fondos insuficientes, endpoints RPC inalcanzables y pares V2 faltantes. Se indican advertencias notables en el propio README: las diferencias de precio del 0,9% se describen como raras en los mercados reales, y se informa que el script muestra ocasionalmente una oportunidad simulada para fines de demostración, por lo que no se garantiza la ejecución rentable en vivo. La clave privada se almacena en texto plano en wallet.json; el README aconseja nunca subir ese archivo al repositorio, añadirlo a .gitignore, mantener copias de seguridad fuera de línea, usar una billetera dedicada y comenzar con cantidades pequeñas. El proyecto se comparte tal cual con fines educativos y se utiliza bajo el riesgo del propietario.