Сегодня продолжаем разработку основной логики бота – @fraggrambot
День 14/30.
Сегодня продолжаем разработку основной логики бота – @fraggram_bot
Добавил интеграцию с FragmentAPI и сделал возможность покупки минимальных 50 звезд — пока что только 50, проверяем работоспособность.
💻****Что сделано:
🔗 Интеграция с Fragment API: Бот теперь умеет покупать 50 звезд и работает напрямую с Fragment API. Проверяет, находится ли пользователь в вайт-листе (о нем ниже в посте) — пока что тестовый режим.
💾 База данных:
Добавлена таблица stars_purchases для записи всех покупок. Сохраняются: пользователь, получатель, количество звезд, статус, txHash, ошибки. Всё прозрачно и логируется.
📝****Логирование: Добавил логирование действий пользователей — кто и когда нажал кнопки. Теперь видно всю активность.
⚙️****Очередь транзакций: Добавил очередь в памяти для последовательной отправки транзакций в блокчейн. Это временное решение — для продакшена заменю на RabbitMQ.
🎨****UX и обработка ошибок: Сообщение «Очередь занята» при параллельных запросах. Сообщение об успешной покупке с инструкциями. Сообщения об ошибках с понятными текстами — не просто «ошибка», а что именно пошло не так.
**✅**Тестирование: Написал тесты для параллельных покупок (один пользователь, два пользователя). Проверка записей в БД после покупок. Всё работает как надо.
—
Готово к тестированию с реальными пользователями из whitelist.
🧪Тестовый режим + бонус для тех кто читает посты до конца**:**
Вы можете создать PR в репозиторий бота в [whitelist](https://github.com/OneZee23/telegram-stars-market-bot/blob/master/assets/whitelist.txt) на github, указать в конец списка новой строкой ваш userID (его если что можно получить через множество ботов в телеграмме, @myidbot от Telegram и получить бесплатные звезды на свой аккаунт.
(Пример)
Как только я приму ваш PR — вы сможете воспользоваться функционалом бота и приобрести себе 50 звезд бесплатно 🤤.
То есть, еще раз:
- Сейчас только пользователи из
[whitelist.txt](https://github.com/OneZee23/telegram-stars-market-bot/blob/master/assets/whitelist.txt)могут получить 50 звезд бесплатно. - Один раз на пользователя.
- Автоматическое определение username при нажатии «Себе».
- Для остальных — понятные сообщения с инструкциями.
—
🫡 UPD:
- Важно - В данный момент не удается обойти ограничение от CloudFlare у Fragment, нужно будет оптимизировать сервис покупки. Локально всё работает штатно, на VPS сервере Digital Ocean – нет. Отваливается по 403 ошибке каждый раз.
Этим уже займемся завтра видимо, а вы пока записывайтесь на ноготочки тест.
— OneZee