Цель: Разработать автоматического арбитражного бота, который отслеживает и исполняет выгодные сделки между PancakeSwap (BNB Chain) и SushiSwap (Ethereum). Бот должен выполнять swapExactTokensForTokens на обоих DEX при наличии достаточного спреда, с учётом комиссий и газа.
1. Подключение к DEX Подключение к PancakeSwap через RPC (например, Ankr или Blast). Использовать вызов getAmountsOut или чтение резерва в пуле. Подключение к SushiSwap через RPC (например, Infura или Flashbots). Тот же принцип — getAmountsOut или расчёт вручную по резервам.
2. Расчёт арбитража Проверка цен проводится каждые 2 секунды. Пары настраиваются вручную (например, WBNB → USDC → ETH). Расчёт спреда: (sell_out - buy_out) / buy_out. Комиссии: Pancake 0.25 %, Sushi 0.30 % — суммарно вычитаются из расчёта. Slippage ограничивается до 0.3 %. Сделка допустима только если ликвидность ≥ $10 000 на обеих сторонах. Минимальный чистый спред для исполнения — 0.7 %.
3. Исполнение сделки Первая часть: обмен WBNB на USDC на PancakeSwap. Вторая часть: обмен USDC на ETH на SushiSwap. Сделка исполняется как 2 транзакции (можно — параллельно, но не обязательно). Все транзакции подписываются приватным ключом (из .env или Vault). До отправки проверяется баланс, allowance, актуальный gas и актуальная цена. Время исполнения не должно превышать 15 секунд (Ethereum block time).
4. Контроль и уведомления Telegram-бот отправляет уведомления о: успешных сделках; ошибках; потенциальных возможностях (если не хватает баланса). Все действия логируются в stdout и файл (или SQLite). Статистика ведётся: кол-во сделок, средний спред, суммарная прибыль.
5. MVP-ограничения Только одна пара токенов. Только одно направление (например: Pancake → Sushi). Без мостов между сетями. Без Flashbots. Без автоматической ребалансировки баланса