Телеграм бот для мониторинга блокчейн транзакций
Разработка бота для мониторинга транзакций в блокчейнах btc, erc20 совместимых, solana, tron
Требования:
1. Работа только со своими нодами, но тесть с нодами, развернутыми на том же сервере, на котором развернут бот
2. Все запросы только к своим нодам, то есть без использования api сторонних сервисов вроде infura.io
3. В иделае - подхватывать транзакции из mempool, а не только из уже обсчитанных блоков.
4. Уведомлять подписчика бота нужно обо всех транзакциях для адресов, которые подписчик загрузил в бота.
5. Транзакции необходимо подхватывать не только для нативного токена, то есть для сети эфира нужно уведомлять не только о переводах eth, но и обо всех транзакциях других токенов. (Тут нужно понимать чем отличается транзакция нативного токена от транзакции смарт-контракта - разные методы)
6. Адреса для отслеживания подписчик может загружать по одному или списком
7. Адреса для удаления подписчик может загружать по одному, списком адресов или списком порядковых номеров или диапазоном порядковых номеров.
8. При множественном удалении выводить предупреждение вида: вы собираетесь удалить N адресов, уверены? Пользователь подтверждает действие нажатием на кнопку в боте или отправкой слов да, д, yes, y/ нет, н, no, n
9. После удаления не выводить список отслеживаемых.
10. При добавлении не выводить список отслеживаемых
11. Добавление может быть по одному адресу или списком.
12. При добавлении проверить адреса на валидность по маске, сохранить их в базу за конкретным пользователем и добавить к мониторингу.
13. Мониторинг - собственно то, ради чего всё затевается. Каждый новый блок, с момента добавления адреса, каждого блокчейна, для которого ведётся разработка, нужно проверять на предмет транзакций, связанных с любым из адресов любого пользователя. По транзакциям писал выше - могут быть для нативного токена и обращением к смарт-контракту.
14. В уведомлении о транзакции нужно выводить текст вида:
New transaction
from: 0x...
To : 0x...
Ether transfer (при отправке нативного токена)
Token transfer (при отправке токена)
Contract interaction, если это другая функция, то есть без передачи ненулевого количества токенов
Nft transfer, если это транзакция с токенами стандарта erc-721 или erc-1155 и прочими.
полный адрес отправителя и получателя выводится текстом, который так же является гиперссылкой на сервис, например etherscan, на этот адрес