Skip to content
Snippets Groups Projects

Draft: initial user flow for creating a wallet

Merged Janssen, D.D. (Dylan, Student M-CS) requested to merge 2-implement_all_user_flows into main
Files
4
+ 42
14
import os
from bitcoinlib.keys import HDKey
from telegram import Update
from telegram.ext import CallbackContext
from bitcoinlib.wallets import Wallet
from util import DBManager
from commands.general import start, back
from commands.transaction import transaction_address, transaction_amount, transaction_fee, send_a_transaction, show_sign_transaction
from commands.wallet import enter_co_signers, minimum_co_signers, name_wallet, wallet_options, create_wallet, choose_wallet
from database import AppUser
dbmanager = DBManager()
def callback_handler(update: Update, context: CallbackContext):
query = update.callback_query.data
try:
f = COMMANDS[query]
f(update, context)
except KeyError:
# Current state does not have a message handler, so do nothing
# Try the message handler, to go to state function
message_handler(update, context)
pass
def start(update: Update, context: CallbackContext):
context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
def message_handler(update: Update, context: CallbackContext):
telegram_user = update.effective_user
user, created = AppUser.get_or_create(telegram_id=telegram_user.id, nickname=telegram_user.full_name)
state_user = user.state_id.id
HANDLERS = {
2: enter_co_signers,
3: minimum_co_signers,
4: name_wallet,
5: wallet_options,
7: transaction_address,
8: transaction_amount,
9: transaction_fee
}
try:
f = HANDLERS[state_user]
f(update, context, user)
except KeyError:
# Current state does not have a message handler, so do nothing
pass
def create_wallet(update: Update, context: CallbackContext):
key = HDKey(network=os.getenv("BTC_NETWORK"))
print(dbmanager.db_uri)
wallet = Wallet.create('MyWallet1', keys=[key], network=os.getenv("BTC_NETWORK"),db_uri=dbmanager.db_uri)
print(wallet)
context.bot.send_message(chat_id=update.effective_chat.id, text="Wallet is created")
COMMANDS = {
"start": start,
"create_a_wallet": create_wallet,
"send_a_transaction": send_a_transaction,
"back": back,
"choose_wallet": choose_wallet,
"sign_transaction": show_sign_transaction
}
Loading