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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.