Esempio n. 1
0
def await_amount_to(cli, m):
    tg_id = m.from_user.id
    wallet = cache.get_active_wallet(tg_id)
    delete_inline_kb(cli, tg_id, cache.read_user_cache(tg_id, "last_msg_id"))
    fee = cache.get_fee()
    try:
        amount = int(m.text)
        if amount + fee > wallet["balance"]:
            raise Exception
    except:
        m.reply("Invalid amount")
        new_msg(cli, m, tg_id,
                "Invalid amount",
                kb.back_wallet(tg_id),
                "wallet_menu_id",
                "wallet_menu_id",
                "on_message")
        return
    cache.change_user_flag(tg_id, "await_to_amount", False)

    new_msg(cli, m, tg_id,
            texts.confirm_transaction(cache.read_user_cache(tg_id, "address_to"), amount),
            kb.confirm_tx(tg_id, amount),
            "wallet_menu_id",
            "wallet_menu_id",
            "on_message")
Esempio n. 2
0
def confirm_tx(cli, cb):
    tg_id = cb.from_user.id
    action = cb.data.split('-')[1]
    address_to = cache.read_user_cache(tg_id, "address_to")
    if action == "send":
        amount = int(cb.data.split('-')[2])
        WalletAPI.send_tx(tg_id, address_to, amount)
        cb.message.edit(texts.success_tx(amount, address_to))
        delete_inline_kb(cli, tg_id, cache.read_user_cache(tg_id, "wallet_menu_id"))
        msg = cb.message.reply(texts.wallet_menu(tg_id), reply_markup=kb.wallet_menu())
        cache.write_user_cache(tg_id, "wallet_menu_id", msg.message_id)
    elif action == "cancel":
        back_wallet(cli, cb)
Esempio n. 3
0
def settings(tg_id):
    wallet = cache.get_active_wallet(tg_id)

    wallet_title = "None"
    wallets = cache.get_user_wallets(tg_id)
    if len(wallets) != 0:
        wallet_title = wallet["title"]

    mode = cache.read_user_cache(tg_id, "chat_mode")
    kb = InlineKeyboardMarkup([
        #[InlineKeyboardButton(f"Current Wallet: {wallet_title}", callback_data=f"settings-current_wallet")],
        [
            InlineKeyboardButton("Manage Wallet",
                                 callback_data="settings-manage_wallet")
        ],
        [
            InlineKeyboardButton(f"Chat mode: {mode}",
                                 callback_data=f"settings-chat_mode-{mode}")
        ],
        [
            InlineKeyboardButton("« Back to Wallet",
                                 callback_data="back_wallet")
        ]
    ])
    return kb
Esempio n. 4
0
def send_max(cli, cb):
    tg_id = cb.from_user.id
    wallet = cache.get_active_wallet(tg_id)
    fee = cache.get_fee()
    amount = wallet["balance"] - fee
    cache.change_user_flag(tg_id, "await_to_amount", False)
    new_msg(cli, cb, tg_id,
            texts.confirm_transaction(cache.read_user_cache(tg_id, "address_to"), amount),
            kb.confirm_tx(tg_id, amount),
            "wallet_menu_id",
            "wallet_menu_id",
            "on_callback")
Esempio n. 5
0
def new_msg(cli, m, tg_id, text, kb, cache_read, cache_write, type):
    user_set = cache.read_user_cache(tg_id, "chat_mode")

    if user_set == "Historical":
        if type == "on_message":
            delete_inline_kb(cli, tg_id, cache.read_user_cache(tg_id, cache_read))
            msg = cli.send_message(tg_id, text, reply_markup=kb)
            cache.write_user_cache(tg_id, cache_write, msg.message_id)
        if type == "on_callback":
            m.message.edit(m.message.text)
            msg = m.message.reply(text, reply_markup=kb)
            cache.write_user_cache(tg_id, cache_write, msg.message_id)

    if user_set == "Modern":
        if type == "on_message":
            delete_inline_kb(cli, tg_id, cache.read_user_cache(tg_id, cache_read))
            msg = cli.send_message(tg_id, text, reply_markup=kb)
            cache.write_user_cache(tg_id, cache_write, msg.message_id)
        if type == "on_callback":
            msg = m.message.edit(text, reply_markup=kb)
            cache.write_user_cache(tg_id, cache_write, msg.message_id)
Esempio n. 6
0
def wallet_title(cli, m):
    tg_id = m.from_user.id
    title = m.text
    cache.change_user_flag(tg_id, "await_wallet_title", False)
    wallet_id = cache.read_user_cache(tg_id, "last_wallet_id")
    WalletAPI.edit_title(wallet_id, title)

    new_msg(cli, m, tg_id,
            texts.settings_wallet(tg_id, wallet_id),
            kb.settings_wallet(tg_id, wallet_id),
            "wallet_menu_id",
            "wallet_menu_id",
            "on_message")
Esempio n. 7
0
def await_address_to(cli, m):
    tg_id = m.from_user.id
    valid_address = WalletAPI.check_wallet(m.text)

    delete_inline_kb(cli, tg_id, cache.read_user_cache(tg_id, "last_msg_id"))
    if valid_address:
        cache.change_user_flag(tg_id, "await_to_address", False)
        cache.change_user_flag(tg_id, "await_to_amount", True)
        cache.write_user_cache(tg_id, "address_to", m.text)
        txt = "Enter amount in UAX"
        kbq = kb.max_amount(tg_id)
    else:
        txt = "invalid address"
        kbq = kb.back_wallet()

    new_msg(cli, m, tg_id,
            txt,
            kbq,
            "wallet_menu_id",
            "wallet_menu_id",
            "on_message")