Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def display_balance_info(wallet_obj, verbose=False):
if not USER_ONLINE:
return
mpub = wallet_obj.serialize_b58(private=False)
wallet_name = get_blockcypher_walletname_from_mpub(
mpub=mpub,
subchain_indices=[0, 1],
)
verbose_print('Wallet Name: %s' % wallet_name)
verbose_print('API Key: %s' % BLOCKCYPHER_API_KEY)
coin_symbol = coin_symbol_from_mkey(mpub)
wallet_details = get_wallet_balance(
wallet_name=wallet_name,
api_key=BLOCKCYPHER_API_KEY,
coin_symbol=coin_symbol,
)
verbose_print(wallet_details)
puts('-' * 70 + '\n')
balance_str = 'Balance: %s' % (
format_crypto_units(
input_quantity=wallet_details['final_balance'],
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
print_childprivkey_warning()
addr_cnt = 0
for chain_address_obj in chain_address_objs:
if chain_address_obj['index'] == 0:
print_external_chain()
elif chain_address_obj['index'] == 1:
print_internal_chain()
print_key_path_header()
for address_obj in chain_address_obj['chain_addresses']:
print_path_info(
address=address_obj['pub_address'],
wif=address_obj['wif'],
path=address_obj['path'],
coin_symbol=coin_symbol_from_mkey(mpub),
)
addr_cnt += 1
if addr_cnt:
puts(colored.blue('\nYou can compare this output to bip32.org'))
else:
puts('No matching %s in this subset. Would you like to dump *all* %s instead?' % (
content_str,
content_str,
))
if confirm(user_prompt=DEFAULT_PROMPT, default=True):
dump_all_keys_or_addrs(wallet_obj=wallet_obj)
if chain_int == 0:
print_external_chain()
print_key_path_header()
elif chain_int == 1:
print_internal_chain()
print_key_path_header()
child_wallet = wallet_obj.get_child_for_path(path)
if wallet_obj.private_key:
wif_to_use = child_wallet.export_to_wif()
else:
wif_to_use = None
print_path_info(
address=child_wallet.to_address(),
path=path,
wif=wif_to_use,
coin_symbol=coin_symbol_from_mkey(mpub),
)
puts(colored.blue('\nYou can compare this output to bip32.org'))
def display_balance_info(wallet_obj, verbose=False):
if not USER_ONLINE:
return
mpub = wallet_obj.serialize_b58(private=False)
wallet_name = get_blockcypher_walletname_from_mpub(
mpub=mpub,
subchain_indices=[0, 1],
)
verbose_print('Wallet Name: %s' % wallet_name)
verbose_print('API Key: %s' % BLOCKCYPHER_API_KEY)
coin_symbol = coin_symbol_from_mkey(mpub)
wallet_details = get_wallet_balance(
wallet_name=wallet_name,
api_key=BLOCKCYPHER_API_KEY,
coin_symbol=coin_symbol,
)
verbose_print(wallet_details)
puts('-' * 70 + '\n')
balance_str = 'Balance: %s' % (
format_crypto_units(
input_quantity=wallet_details['final_balance'],
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
Dicts may also contain WIF and privkeyhex if wallet_obj has private key
'''
mpub = wallet_obj.serialize_b58(private=False)
wallet_name = get_blockcypher_walletname_from_mpub(
mpub=mpub,
subchain_indices=[0, 1],
)
wallet_addresses = get_wallet_addresses(
wallet_name=wallet_name,
api_key=BLOCKCYPHER_API_KEY,
is_hd_wallet=True,
used=used,
zero_balance=zero_balance,
coin_symbol=coin_symbol_from_mkey(mpub),
)
verbose_print('wallet_addresses:')
verbose_print(wallet_addresses)
if wallet_obj.private_key:
master_key = wallet_obj.serialize_b58(private=True)
else:
master_key = mpub
chains_address_paths_cleaned = []
for chain in wallet_addresses['chains']:
if chain['chain_addresses']:
chain_address_paths = verify_and_fill_address_paths_from_bip32key(
address_paths=chain['chain_addresses'],
master_key=master_key,
network=guess_network_from_mkey(mpub),
def guess_network_from_mkey(mkey):
cs = coin_symbol_from_mkey(mkey)
return COIN_SYMBOL_TO_BMERCHANT_NETWORK.get(cs)
def send_funds(wallet_obj, change_address=None, destination_address=None, dest_satoshis=None, tx_preference=None):
if not USER_ONLINE:
puts(colored.red('BlockCypher connection needed to fetch unspents and broadcast signed transaction.'))
puts(colored.red('You may dump all your addresses and private keys while offline by selecting option 0 on the home screen.'))
return
mpub = wallet_obj.serialize_b58(private=False)
if not wallet_obj.private_key:
print_pubwallet_notice(mpub=mpub)
return
coin_symbol = str(coin_symbol_from_mkey(mpub))
verbose_print(coin_symbol)
wallet_name = get_blockcypher_walletname_from_mpub(
mpub=mpub,
subchain_indices=[0, 1],
)
wallet_details = get_wallet_transactions(
wallet_name=wallet_name,
api_key=BLOCKCYPHER_API_KEY,
coin_symbol=coin_symbol,
)
verbose_print(wallet_details)
if wallet_details['final_balance'] == 0:
puts(colored.red("0 balance. You can't send funds if you don't have them available!"))
return
def send_funds(wallet_obj, change_address=None, destination_address=None, dest_satoshis=None, tx_preference=None):
if not USER_ONLINE:
puts(colored.red('BlockCypher connection needed to fetch unspents and broadcast signed transaction.'))
puts(colored.red('You may dump all your addresses and private keys while offline by selecting option 0 on the home screen.'))
return
mpub = wallet_obj.serialize_b58(private=False)
if not wallet_obj.private_key:
print_pubwallet_notice(mpub=mpub)
return
coin_symbol = str(coin_symbol_from_mkey(mpub))
verbose_print(coin_symbol)
wallet_name = get_blockcypher_walletname_from_mpub(
mpub=mpub,
subchain_indices=[0, 1],
)
wallet_details = get_wallet_transactions(
wallet_name=wallet_name,
api_key=BLOCKCYPHER_API_KEY,
coin_symbol=coin_symbol,
)
verbose_print(wallet_details)
if wallet_details['final_balance'] == 0:
puts(colored.red("0 balance. You can't send funds if you don't have them available!"))
return