def json_parser(req):
    """
    This function is a JSON parser for the reply from the API
    Edit this, convert_df and pretty_print funtions for output table params
        
        KeyWord Arguments:
            req (json): the HTTP reply to a txid request to API

        Return:
            out(list): Output paramters for table
    """

    out_js = json.loads(req.text)

    fees = network.satoshi_to_currency(out_js['fee'], 'btc')
    status = out_js['status']['confirmed']
    size = out_js['size']
    txid = out_js['txid']
    rec_addr = out_js['vout'][0]['scriptpubkey_address']
    amt_trans = network.satoshi_to_currency(out_js['vout'][0]['value'], 'btc')
    sen_addr = out_js['vout'][1]['scriptpubkey_address']
    final_bal = network.satoshi_to_currency(out_js['vout'][1]['value'], 'btc')

    out = [
        txid,
        str(size) + " B", fees, status, sen_addr, rec_addr, amt_trans,
        final_bal
    ]
    return out
Exemple #2
0
def get_address(message):
    current_user_id = message.from_user.id
    current_wallet = wallet_exist(current_user_id)
    current_key = Key(current_wallet[1])
    solde = decimal.Decimal(current_key.get_balance('btc'))
    global destinataire
    if message.text == 'Annuler':
        msg = bot.send_message(
            message.chat.id,
            "Bonjour, voici l'adresse de votre wallet Bitcoin : \n\n```" +
            current_wallet[0] +
            "```\n\nUtilisez-la pour réapprovisionner votre porte-feuille Bitcoin.",
            reply_markup=markup,
            parse_mode="Markdown")
        bot.register_next_step_handler(msg, process_step)
    else:
        destinataire = str(message.text)
        if (check_address(destinataire) == False):
            msg = bot.send_message(
                message.chat.id,
                "L'adresse du destinataire est incorrecte !",
                reply_markup=markup,
                parse_mode="Markdown")
            bot.register_next_step_handler(msg, process_step)
        else:
            commission = decimal.Decimal(get_fee_cached() * 250 / 100000000)
            msg = bot.send_message(
                message.chat.id,
                "Quelle somme voulez-vous envoyer ?\n\nFonds disponibles : " +
                str(solde) + " BTC (~" + str(
                    satoshi_to_currency(
                        decimal.Decimal(solde) * decimal.Decimal(100000000),
                        'eur')) + " EUR).\n\n⚠️ Commission du réseau : " +
                str('%.6f' % commission) + " BTC (~" + str(
                    satoshi_to_currency(
                        commission * decimal.Decimal(100000000), 'eur')) +
                " EUR).",
                reply_markup=markup3,
                parse_mode="Markdown")
            bot.register_next_step_handler(
                msg, lambda msg: get_somme(msg, destinataire))
Exemple #3
0
def get_address(message):
    current_user_id = message.from_user.id
    current_wallet = wallet_exist(current_user_id)
    current_key = Key(current_wallet[1])
    solde = decimal.Decimal(current_key.get_balance('btc'))
    global destinataire
    if message.text == 'Back':
        msg = bot.send_message(
            message.chat.id,
            "Hello, here is the address of your Bitcoin wallet : \n\n```" +
            current_wallet[0] + "```\n\nUse it to fund your Bitcoin wallet.",
            reply_markup=markup,
            parse_mode="Markdown")
        bot.register_next_step_handler(msg, process_step)
    else:
        destinataire = str(message.text)
        if (check_address(destinataire) == False):
            msg = bot.send_message(message.chat.id,
                                   "The recipient's address is incorrect!",
                                   reply_markup=markup,
                                   parse_mode="Markdown")
            bot.register_next_step_handler(msg, process_step)
        else:
            commission = decimal.Decimal(get_fee_cached() * 250 / 100000000)
            msg = bot.send_message(
                message.chat.id,
                "How much do you want to send? \ n \ nFunds available : " +
                str(solde) + " BTC (~" + str(
                    satoshi_to_currency(
                        decimal.Decimal(solde) * decimal.Decimal(100000000),
                        'eur')) + " EUR).\n\nРџа№ИЈ Network Commission : " +
                str('%.6f' % commission) + " BTC (~" + str(
                    satoshi_to_currency(
                        commission * decimal.Decimal(100000000), 'eur')) +
                " EUR).",
                reply_markup=markup3,
                parse_mode="Markdown")
            bot.register_next_step_handler(
                msg, lambda msg: get_somme(msg, destinataire))
Exemple #4
0
def process_step(message):
    current_user_id = message.from_user.id
    current_wallet = wallet_exist(current_user_id)
    current_key = Key(current_wallet[1])
    solde = decimal.Decimal(current_key.get_balance('btc'))
    if message.text == '💰 Solde':
        msg = bot.send_message(
            message.chat.id,
            "Adresse de votre wallet Bitcoin : ```" + current_wallet[0] +
            "```\n\nVous avez " + str(solde) + " BTC (~" + str(
                satoshi_to_currency(
                    decimal.Decimal(solde) * decimal.Decimal(100000000),
                    'eur')) + " EUR).",
            reply_markup=markup,
            parse_mode="Markdown")
        bot.register_next_step_handler(message, process_step)
    elif message.text == '↔️ Retirer':
        msg = bot.send_message(message.chat.id,
                               "Entrez l'adresse du destinataire",
                               reply_markup=markup3,
                               parse_mode="Markdown")
        bot.register_next_step_handler(msg, get_address)
Exemple #5
0
def process_step(message):
    current_user_id = message.from_user.id
    current_wallet = wallet_exist(current_user_id)
    current_key = Key(current_wallet[1])
    solde = decimal.Decimal(current_key.get_balance('btc'))
    if message.text == '­Ъњ░ Balance':
        msg = bot.send_message(
            message.chat.id,
            "Address of your Bitcoin wallet : ```" + current_wallet[0] +
            "```\n\nYou have " + str(solde) + " BTC (~" + str(
                satoshi_to_currency(
                    decimal.Decimal(solde) * decimal.Decimal(100000000),
                    'eur')) + " EUR).",
            reply_markup=markup,
            parse_mode="Markdown")
        bot.register_next_step_handler(message, process_step)
    elif message.text == 'Рєћ№ИЈ Transfer':
        msg = bot.send_message(message.chat.id,
                               "Enter the recipient's address",
                               reply_markup=markup3,
                               parse_mode="Markdown")
        bot.register_next_step_handler(msg, get_address)
Exemple #6
0
print(sender)

# input recipients' addresses

recipient = input(f'Please enter the address where BTC will be sent to {""}')

# input btc amount to be sent to the recipient

amount = input(f'Please enter the BTC amount to send {""}')

# obtain sender account balance in usd
''' 
Source code: https://ofek.dev/bit/guide/advanced.html

'''
btc_balance_usd = satoshi_to_currency(
    NetworkAPI.get_balance_testnet(f"{sender}"), 'usd')

print(btc_balance_usd)

# obtain sender account balance in btc

btc_balance_btc = satoshi_to_currency(
    NetworkAPI.get_balance_testnet(f"{sender}"), 'btc')

print(btc_balance_btc)

# obtain sender's account unspents balance

btc_balance_unspents = key.get_unspents()

print(btc_balance_unspents)
 def get_address_balance(self, address):
   val = satoshi_to_currency(NetworkAPI.get_balance_testnet(address), 'btc')
   return float(val)