Sobre el proyecto

FlashLoanArbitrage es un pequeño proyecto de Node.js para el trading de DeFi en Ethereum con flash loans. Aunque la descripción del repositorio lo define como un gestor de cartera DeFi, el README documenta un bot de arbitraje de flash-loans compuesto por un script local (goflash.js) y un contrato inteligente complementario. Cómo funciona El script compara los precios de ETH/USDC en cinco fuentes: un oráculo de Chainlink utilizado como precio base, Uniswap V2, SushiSwap, Curve Finance y Balancer. Espera a que haya una diferencia de precio de al menos el 0.9% entre los centros antes de actuar; por debajo de ese umbral, continúa monitoreando para evitar operaciones con pérdidas. Cuando el spread es lo suficientemente amplio, el flujo descrito en el README es: convertir el ETH del usuario a USDC por adelantado, hacer que el contrato tome un flash loan en USDC, comprar ETH en la plataforma más barata, venderlo en la más cara, reembolsar el préstamo más la tarifa del flash-loan y el gas, y luego convertir el beneficio restante de USDC a ETH. El README indica que el saldo de la billetera se utiliza únicamente para el gas y que el ETH no se transfiere al contrato. Proveedores de flash-loans y límites Se enumeran cuatro protocolos como fuentes de flash-loans, cada uno con una tarifa anunciada y un tamaño máximo de préstamo en USDC: Aave (0.05%, hasta 10,000,000), dYdX (0.05%, hasta 500,000), Uniswap V3 (0.01%, hasta 5,000,000) y Balancer (0.02%, hasta 1,000,000). El README señala que los préstamos más grandes implican tarifas más altas y recomienda dYdX o Uniswap V3 para tarifas más bajas. Configuración y uso Las instrucciones son para una máquina local: obtener goflash.js y package.json, colocarlos en cualquier carpeta, ejecutar npm install y luego node goflash.js. En el primer inicio, el script ofrece crear una nueva billetera (se muestran la dirección y la clave privada, y la clave se guarda en wallet.json en la misma carpeta) o importar una billetera existente mediante una clave privada con prefijo 0x. Después de eso, aparece un menú interactivo en la terminal que muestra el saldo y la dirección de la billetera, con opciones para elegir el protocolo DeFi, establecer el monto del préstamo en ETH, recrear la billetera, importar otra billetera por clave privada, iniciar el arbitraje y salir. El modo de arbitraje está documentado para escanear precios en todas las plataformas aproximadamente cada 60 segundos e imprimir una tabla de precios en vivo con indicadores de subida/bajada/sin cambios, además del spread máximo observado. Advertencias y notas de comportamiento El README advierte repetidamente sobre la higiene de las claves privadas: nunca compartir wallet.json ni la clave, añadirlo a .gitignore, mantener copias de seguridad fuera de línea y usar una billetera dedicada. También advierte que un saldo de billetera inferior a 0.1 ETH no es suficiente para gestionar préstamos superiores a 10 ETH debido al gas, y enumera los costes tenidos en cuenta (tarifas de trading 0.1%, slippage 0.05%, gas, tarifa de flash-loan). Una sección de resolución de problemas cubre errores de formato de módulo, formato de clave privada inválido, fondos insuficientes, indisponibilidad de RPC y pares V2 faltantes. Afirma claramente que las brechas de precio del 0.9% son raras en los mercados reales, que ocasionalmente se muestra una oportunidad simulada para demostración y que el proyecto se comparte tal cual con fines educativos y se utiliza bajo el propio riesgo del propietario. Detalles técnicos El proyecto es una aplicación de JavaScript/Node.js con tres dependencias: ethers (^6.11.1) para la interacción con Ethereum, inquirer (^8.2.6) para la CLI interactiva y chalk (^4.1.2) para la salida de consola en color. La estructura de archivos documentada es simplemente goflash.js, package.json, el archivo wallet.json autogenerado y el README. No se proporcionan términos de licencia más allá de la declaración de uso educativo y riesgo propio, y no se describen pruebas, scripts de despliegue ni resultados de rendimiento públicos.