Об этом проекте
Обзор FlashLoanArbitrage
В файле README описывается CLI-бот на Node.js для DeFi-арбитража с использованием flash-займов. Стоит отметить, что название репозитория и его описание («Мониторинг активности смарт-контрактов для поиска возможностей») не совпадают с содержанием README, где документируется бот под названием FlashLoanArbitrage; в проекте указаны файлы goflash.js, package.json, wallet.json и сам README.
Принцип работы
Бот состоит из двух частей: ончейн-смарт-контракта и локального скрипта goflash.js. Скрипт запрашивает цены ETH/USDC из пяти источников — Chainlink (в качестве эталонного оракула), Uniswap V2, SushiSwap, Curve Finance и Balancer — и ожидает, пока максимальная разница в цене достигнет как минимум 0,9%. При достижении порога вызывается контракт, который берет flash-заем в USDC, покупает ETH на более дешевой площадке, продает его на более дорогой, погашает заем вместе с комиссиями и газом, конвертирует оставшуюся прибыль обратно в ETH и переводит чистую прибыль на кошелек пользователя. Сканирование повторяется каждые 60 секунд, а в консоли выводятся цены с индикаторами роста, падения или отсутствия изменений.
В README перечислены источники flash-займов: Aave (комиссия 0,05%, до 10 000 000 USDC), dYdX (0,05%, до 500 000), Uniswap V3 (0,01%, до 5 000 000) и Balancer (0,02%, до 1 000 000). Автор рекомендует dYdX или Uniswap V3 из-за более низких комиссий и отмечает, что более крупные займы влекут за собой более высокие сборы.
Настройка и эксплуатация
Установка выполняется командой npm install в папке с goflash.js и package.json, затем запуск через node goflash.js. При первом запуске интерактивный запрос (созданный с помощью inquirer) предлагает создать новый кошелек или импортировать существующий по приватному ключу; ключ записывается в файл wallet.json в той же папке. Главное меню позволяет выбрать DeFi-протокол, установить сумму займа в ETH (от 10 до максимума протокола), пересоздать или заново импортировать кошелек, запустить арбитраж или выйти. В списке зависимостей указаны ethers ^6.11.1, inquirer ^8.2.6 и chalk ^4.1.2. В README указано, что баланс кошелька ниже 0,1 ETH не позволяет выбирать займы свыше 10 ETH, так как средства нужны для оплаты газа. Документированная модель комиссий включает сборы за flash-заем, торговые комиссии 0,1%, проскальзывание 0,05% и газ.
Факторы, которые следует учитывать
- В самом README говорится, что спред в 0,9% редко встречается на реальных рынках, поэтому бот может не находить возможностей, и что он «изредка показывает симулированную возможность для демонстрации».
- Приватный ключ хранится в открытом виде в wallet.json; в README рекомендуется добавить этот файл в .gitignore, хранить офлайн-бэкапы, использовать выделенный кошелек и никогда не передавать ключ третьим лицам.
- В структуре проекта, описанной в README, отсутствует исходный код контракта, поэтому ончейн-компонент в перечисленных файлах не документирован.
- Проект опубликован «как есть в образовательных целях. Используйте на свой страх и риск».
Раздел по устранению неполадок в README охватывает ошибки формата модулей, неверный формат приватного ключа, недостаточность средств для газа, нулевой баланс кошелька, переподключение к RPC и отсутствие пар ETH/USDC на площадках типа V2.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.