Nodejs-разработка

Присоединяйтесь к нашей программе обучения

Пятое задание (итоговое): Снайпер-бот для Telegram

Снайпер-бот для Telegram позволяет пользователям автоматизировать торговлю на децентрализованных биржах (Uniswap, PancakeSwap) в сетях Binance Smart Chain (BSC) и Polygon. Пользователи могут создавать кошельки, отслеживать адреса токенов, подписываться на сделки других адресов и автоматически повторять их. В случае нехватки средств для выполнения сделки бот уведомляет пользователя через Telegram. Также предусмотрена возможность перевода токенов между кошельками.

User Flow

1. Регистрация и создание кошелька:

  • Пользователь регистрируется в боте.

  • Бот создает новый кошелек в сети BSC или Polygon и отправляет пользователю адрес кошелька.

2. Управление токенами:

  • Добавление токенов: Пользователь может отправить команду в Telegram для добавления до 5 адресов токенов, которыми он собирается торговать. Команда выглядит как: /addtoken [адрес токена]. Каждый раз, когда добавляется токен, бот подтверждает добавление и показывает текущий список.

  • Просмотр балансов: Пользователь может запросить балансы этих токенов, отправив команду /balance. Бот возвращает текущие балансы для каждого токена.

  • Редактирование списка токенов: Пользователь может удалить токен из списка командой /removetoken [адрес токена] или очистить весь список, если захочет заменить токены.

3. Подписка на сделки:

  • Выбор адреса для отслеживания: Пользователь может подписаться на другой кошелек, чтобы дублировать его сделки. Команда для этого выглядит как: /follow [адрес кошелька].

  • Настройка повторных сделок: Пользователь может указать, какие сделки он хочет повторять, используя команду /replicate [buy/sell] [лимит суммы]. Эта команда позволит пользователю контролировать, какие сделки (покупки или продажи) бот будет дублировать и на какую сумму (например, не превышать определённый лимит).

  • Просмотр подписок: Пользователь может просмотреть активные подписки на кошельки с командой /subscriptions.

  • Удаление адреса из подписок: Пользователь может отписаться от кошелька, тем самым отключив дублирование сделок с этого адреса. Команда для этого выглядит как: /unfollow [адрес кошелька].

4. Автоматическое повторение сделок:

  • Когда бот обнаруживает сделку на отслеживаемом кошельке (на Uniswap или PancakeSwap), он автоматически дублирует сделку на кошельке пользователя, если это соответствует условиям подписки и настроек.

5. Оповещение при недостатке баланса:

  • Если у пользователя недостаточно средств для повторения сделки, бот уведомляет его через Telegram.

6. Перевод токенов:

  • Пользователь может перевести токены на другой кошелек с помощью команды /send [адрес токена] [сумма] [адрес получателя]. Бот подтверждает успешный перевод и уведомляет пользователя.

Требования

  • Проект должен быть разработан с использованием NestJS фреймворка и TypeORM для работы с базой данных.

  • Для взаимодействия с блокчейнами Binance Smart Chain (BSC) и Polygon необходимо использовать библиотеку viem.

  • Параметры подключения к базе данных и блокчейн-сетям, а также другие конфигурационные параметры (например, порты сервера) должны настраиваться через конфигурационный файл и могут быть изменены без внесения изменений в код.

  • Нужно обеспечить возможность легкого расширения функционала, включая добавление новых сетей или изменение логики бота.

  • Необходимо логировать ошибки, возникающие при взаимодействии с базой данных, блокчейном и при выполнении операций через Telegram API.

  • Проект должен содержать набор тестов (unit и integration), а также инструкции для их запуска.

  • Файл README.md должен содержать краткое описание проекта и инструкции по запуску и тестированию проекта.

Подсказки и ресурсы

Для написания проекта понадобятся следующие теоретические знания:

1. Библиотека Viem

менеджер программы обучения

По любым вопросам по программе обучения пишите Светлане в Telegram