Sobre o projeto

FlashLoanArbitrage é um bot de negociação DeFi automatizado construído com Node.js que realiza arbitragem de flash loan na Ethereum. O projeto consiste em um script driver JavaScript (`goflash.js`) e um contrato inteligente associado. Como Funciona O bot monitora os preços ETH/USDC em cinco plataformas—Chainlink (referência de oráculo), Uniswap V2, SushiSwap, Curve Finance e Balancer. Quando a diferença de preço entre quaisquer duas venues atinge 0,9% ou mais, o script dispara um flash loan através de um dos quatro protocolos suportados: Aave, dYdX, Uniswap V3 ou Balancer. O contrato inteligente empresta USDC, executa a negociação entre venues (comprando ETH barato e vendendo caro), paga o empréstimo mais as taxas e devolve qualquer lucro líquido para a carteira do usuário. Protocolos de Flash Loan Suportados - Aave: até 10.000.000 USDC, taxa de 0,05% - dYdX: até 500.000 USDC, taxa de 0,05% - Uniswap V3: até 5.000.000 USDC, taxa de 0,01% - Balancer: até 1.000.000 USDC, taxa de 0,02% Configuração e Uso Para executar o bot, clone o repositório e instale as dependências com `npm install`. Na primeira inicialização, o script gera ou importa uma carteira Ethereum, salvando a chave privada em `wallet.json`. O menu interativo de CLI permite selecionar o protocolo de flash loan, o valor do empréstimo e iniciar/parar o monitoramento de arbitragem. É necessário um saldo de carteira de pelo menos 0,1 ETH para empréstimos acima de 10 ETH a fim de cobrir os custos de gas. Comportamentos Principais - Os dados de preço são atualizados aproximadamente a cada 60 segundos. - O limite mínimo para disparar uma negociação é um spread de preço de 0,9%. - As taxas de negociação (0,1%), slippage (0,05%) e gas são considerados nos cálculos de lucro. - O ETH do usuário não é transferido para o contrato; ele permanece na carteira e é usado apenas para gas. - Inclui tratamento básico de erros para falhas de RPC, chaves privadas inválidas e pares de negociação ausentes. Dependências - ethers ^6.11.1 - inquirer ^8.2.6 - chalk ^4.1.2 Observações de Segurança O projeto armazena uma chave privada em `wallet.json`; os usuários são aconselhados a adicioná-la ao `.gitignore` e manter backups offline. O README afirma que o projeto é compartilhado "como está" para fins educacionais e pede que os usuários procedam por conta e risco.