Sobre o projeto

FlashLoanArbitrage é um projeto de linha de comando em JavaScript para arbitragem DeFi no Ethereum construído em torno de flash loans. De acordo com seu README, um contrato inteligente toma emprestado USDC através de um flash loan, compra ETH na plataforma onde está mais barato, vende onde está mais caro, paga o empréstimo acrescido de taxas e gas, e converte o lucro restante em USDC de volta para ETH. Um script local chamado goflash.js é executado na máquina do usuário, monitora os preços de ETH/USDC e aciona o contrato quando surge uma oportunidade. A descrição do repositório menciona a previsão de movimentos de preço do ETH com análise técnica, mas o próprio README documenta um bot de execução de arbitragem em vez de um modelo de previsão; nenhum componente de previsão ou análise técnica é descrito no README, e a estrutura do projeto listada contém apenas goflash.js, package.json, wallet.json e README.md, portanto, as fontes do contrato inteligente não são mostradas nessa árvore. O monitoramento de preços baseia-se em cinco fontes: Chainlink como oráculo para o preço base do ETH, Uniswap V2, SushiSwap, Curve Finance e Balancer. O script é descrito como realizando a varredura desses preços a cada 60 segundos e aguardando uma diferença de 0,9% ou mais antes de agir, sob a justificativa de que lacunas menores não cobririam os custos. A saída do console mostra o preço de cada plataforma com um indicador de alta, baixa ou inalterado, além do spread máximo entre as plataformas. Quatro protocolos de flash-loan são listados, com os números do próprio README: Aave com taxa de 0,05% e liquidez de até 10.000.000 USDC, dYdX com 0,05% e até 500.000 USDC, Uniswap V3 com 0,01% e até 5.000.000 USDC, e Balancer com 0,02% e até 1.000.000 USDC. O README recomenda dYdX ou Uniswap V3 por taxas menores e observa que as taxas escalam com o tamanho do empréstimo. A configuração é documentada como o download de goflash.js e package.json em uma pasta, a execução de npm install e, em seguida, node goflash.js. No primeiro lançamento, o script informa que nenhuma carteira foi encontrada e oferece um menu interativo: criar uma nova carteira, que exibe um endereço e chave privada e grava a chave em wallet.json na mesma pasta, ou importar uma carteira existente por meio de uma chave privada de 64 caracteres com prefixo 0x. Lançamentos subsequentes mostram um menu principal com seleção de protocolo DeFi, valor do empréstimo em ETH (descrito de 10 ETH até o máximo do protocolo), recriar carteira, importar carteira, iniciar arbitragem e sair. Os custos declarados incluem taxas de negociação de 0,1%, slippage de 0,05% e gas. O README aconselha a manter pelo menos 0,1 ETH na carteira para gas ao tomar emprestado mais de 10 ETH, e afirma que o saldo da carteira é usado apenas para gas, enquanto o ETH não é transferido para o contrato. As dependências são ethers ^6.11.1, inquirer ^8.2.6 e chalk ^4.1.2. Uma seção de solução de problemas cobre erros de formato de módulo, formato de chave privada inválido, fundos insuficientes, endpoints RPC inacessíveis e pares V2 ausentes. Ressalvas notáveis são declaradas no próprio README: diferenças de preço de 0,9% são descritas como raras em mercados reais, e o script supostamente mostra uma oportunidade simulada ocasionalmente para fins de demonstração, portanto, a execução lucrativa ao vivo não é garantida. A chave privada é armazenada em texto simples em wallet.json; o README aconselha a nunca enviar esse arquivo para o repositório, adicioná-lo ao .gitignore, manter backups offline, usar uma carteira dedicada e começar com quantias pequenas. O projeto é compartilhado no estado em que se encontra para fins educacionais e utilizado por conta e risco do proprietário.