Skip to content

💸 Wallet - это telegram-бот для хранения Ethereum, Bitcoin, Toncoin, USDT и других.

License

Notifications You must be signed in to change notification settings

CrimsonCoalition/wallet

Repository files navigation

pngwing com (5)

Wallet by Crimson Coalition

Версия Документация В разработке Лицензия: GPL3

Проект временно заморожен!

Crimson Wallet или же просто Wallet - криптокошелек от @CrimsonCoalition

Wallet - это telegram-бот для хранения Ethereum, Bitcoin, Toncoin, USDT и других криптовалют. Этот кошелек основан на этом проекте

Следить за новостями проекта можно также на нашем сайте: crimson-coalition.ru

Содержание

Описание

Логика работы бота

Структура

Криптовалюты

Логика работы бота

       Меню
   ┌─────┼────────────────┬────────────────┐
   │     │                │                │
   │     │                │                │
   │     │                │                │
КОШЕЛЕК  │             ПОЛУЧЕНИЕ           │                   ## будет обновляться
 баланс  │          показ адреса           │
кошелька │            и QR-кода            │
         │                                 │  
       ОТПРАВКА                          КУПИТЬ
    Ввод адреса                 Ввод BTC, TON, ETH, USDT, TRON
                                         или RUB
      и отправка                 Информации о пользователе
       средств                     Отправка средств 

Структура бота

Bot-Core

Ядро бота состоит из двух модулей в корне проекта: app.py и bot.py

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

Bot.py отвечает за класс Bot, который как представляет из себя центральную часть приложения, которая отвечает за работу бота. В нем описаны методы работы с: базой данных, Telegram API, обработку сообщений пользователя, загрузку модулей бота, работу с пользовательской сессией, генерирование пользовательских клавиатур и сообщений из шаблонов.

Modules

Модули представляют из себя некоторые скрипты, сценарии, которым бот передает сообщения от пользователя, а они в свою очередь решают что делать в той или иной ситуации. Модули состоят из некоторых функций обработчиков handler'ов. Самое первое сообщение пользователя обрабатывается стандартным хендлером, который указан в конфиге в дальнейшей работе бота хендлеры могут не только получать данные, но и указывать какой хендлер будет обрабатывать следующее сообщение. Таким образом строится неявный граф обработки сообщений пользователя.

Внутри модулей хендлеры могут оперировать любой информацией:

Получать и записывать данные в базу данных Отправлять сообщение через Telegram API Запрашивать или отправлять средства по средствам Bitcoin API Отрисовывать пользовательские клавиатуры И многое другое.

Config

Конфиги представляют из себя статические JSON-файлы, которые хранят необходимую боту информацию. На данный момент в боте существует три конфиг-файлов: init.json, keyboards.json, messages.json.

Первый файл отвечает за основные настройки бота:

default-handler - стандартный обработчик сообщения, когда пользователь пишет первый раз или не указан обработчик который будет обрабатывать следующее сообщение

menu-button - сообщение при получении которого, бот всегда будет возвращаться в главное меню

commission - Bitcoin комиссия для совершения транзакции, указывается в сатоши!

keyboards.json - отвечает за хранение шаблонов клавиатур, о работе с которыми вы можете прочитать далее messages.json - отвечает за хранение шаблонов сообщений, о работе с которыми вы можете прочитать далее

Bitcoin

Для работы с Bitcoin используется библиотека pybitcointools.

Ethereum


Toncoin

Для работы с Toncoin используется библиотека ton_client для python.

BNB (Binance Coin)

Для работы с BNB наш кошелек использует библиотеку bnb-chain/python-sdk

About

💸 Wallet - это telegram-бот для хранения Ethereum, Bitcoin, Toncoin, USDT и других.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages