Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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,
))
puts(colored.green(balance_str))
if wallet_details['unconfirmed_balance']:
balance_str += ' (%s%s of this is unconfirmed)' % (
'+' if wallet_details['unconfirmed_balance'] else '', # hack
format_crypto_units(
input_quantity=wallet_details['unconfirmed_balance'],
input_type='satoshi',
output_type=UNIT_CHOICE,
print_cs=True,
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,
))
puts(colored.green(balance_str))
if wallet_details['unconfirmed_balance']:
balance_str += ' (%s%s of this is unconfirmed)' % (
'+' if wallet_details['unconfirmed_balance'] else '', # hack
format_crypto_units(
input_quantity=wallet_details['unconfirmed_balance'],
input_type='satoshi',
output_type=UNIT_CHOICE,
print_cs=True,
coin_symbol=coin_symbol,
),
)
tx_string = 'Transactions: %s' % wallet_details['final_n_tx']
if wallet_details['unconfirmed_n_tx']:
tx_string += ' (%s unconfirmed)' % wallet_details['unconfirmed_n_tx']
puts(colored.green(tx_string + '\n'))
puts('More info:')
puts(colored.blue(get_public_wallet_url(mpub)))
puts()
if dest_satoshis == -1:
# remember that sweep TXs cannot verify amounts client-side (only destination addresses)
dest_satoshis_to_display = unsigned_tx['tx']['total'] - unsigned_tx['tx']['fees']
else:
dest_satoshis_to_display = dest_satoshis
CONF_TEXT = "Send %s to %s with a fee of %s (%s%% of the amount you're sending)?" % (
format_crypto_units(
input_quantity=dest_satoshis_to_display,
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
),
destination_address,
format_crypto_units(
input_quantity=unsigned_tx['tx']['fees'],
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
),
round(100.0 * unsigned_tx['tx']['fees'] / dest_satoshis_to_display, 4),
)
puts(CONF_TEXT)
if not confirm(user_prompt=DEFAULT_PROMPT, default=True):
puts(colored.red('Transaction Not Broadcast!'))
return
broadcasted_tx = broadcast_signed_transaction(
unsigned_tx=unsigned_tx,
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,
))
puts(colored.green(balance_str))
if wallet_details['unconfirmed_balance']:
balance_str += ' (%s%s of this is unconfirmed)' % (
'+' if wallet_details['unconfirmed_balance'] else '', # hack
format_crypto_units(
input_quantity=wallet_details['unconfirmed_balance'],
input_type='satoshi',
output_type=UNIT_CHOICE,
print_cs=True,
coin_symbol=coin_symbol,
),
)
tx_string = 'Transactions: %s' % wallet_details['final_n_tx']
if wallet_details['unconfirmed_n_tx']:
tx_string += ' (%s unconfirmed)' % wallet_details['unconfirmed_n_tx']
puts(colored.green(tx_string + '\n'))
puts('More info:')
puts(colored.blue(get_public_wallet_url(mpub)))
puts()
preference=tx_preference,
coin_symbol=coin_symbol,
api_key=BLOCKCYPHER_API_KEY,
# will verify in the next step,
# that way if there is an error here we can display that to user
verify_tosigntx=False,
include_tosigntx=True,
)
verbose_print('Unsigned TX:')
verbose_print(unsigned_tx)
if 'errors' in unsigned_tx:
if any([x.get('error', '').startswith('Not enough funds after fees') for x in unsigned_tx['errors']]):
puts("Sorry, after transaction fees there's not (quite) enough funds to send %s." % (
format_crypto_units(
input_quantity=dest_satoshis,
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
)))
puts('Would you like to send the max you can instead?')
if confirm(user_prompt=DEFAULT_PROMPT, default=False):
return send_funds(
wallet_obj=wallet_obj,
change_address=change_address,
destination_address=destination_address,
dest_satoshis=-1, # sweep
tx_preference=tx_preference,
)
else:
def send_unconfirmed_tx_email(self):
b58_address = self.address_subscription.b58_address
sent_in_btc = format_crypto_units(
input_quantity=self.satoshis_sent,
input_type='satoshi',
output_type='btc',
coin_symbol=self.address_subscription.coin_symbol,
print_cs=False,
safe_trimming=False,
round_digits=4,
)
fee_in_btc = format_crypto_units(
input_quantity=self.fee_in_satoshis,
input_type='satoshi',
output_type='btc',
coin_symbol=self.address_subscription.coin_symbol,
print_cs=False,
safe_trimming=False,
round_digits=4,
if wif:
address_formatted = '%s/%s' % (address, wif)
else:
address_formatted = address
if USER_ONLINE:
addr_balance = get_total_balance(
address=address,
coin_symbol=coin_symbol,
)
with indent(2):
puts(colored.green('%s (%s) - %s' % (
path,
address_formatted,
format_crypto_units(
input_quantity=addr_balance,
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
),
)))
else:
with indent(2):
puts(colored.green('%s (%s)' % (
path,
address_formatted,
)))
txs_to_sign=unsigned_tx['tosign'],
privkey_list=privkeyhex_list,
pubkey_list=pubkeyhex_list,
)
verbose_print('TX Signatures: %s' % tx_signatures)
# final confirmation before broadcast
if dest_satoshis == -1:
# remember that sweep TXs cannot verify amounts client-side (only destination addresses)
dest_satoshis_to_display = unsigned_tx['tx']['total'] - unsigned_tx['tx']['fees']
else:
dest_satoshis_to_display = dest_satoshis
CONF_TEXT = "Send %s to %s with a fee of %s (%s%% of the amount you're sending)?" % (
format_crypto_units(
input_quantity=dest_satoshis_to_display,
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
),
destination_address,
format_crypto_units(
input_quantity=unsigned_tx['tx']['fees'],
input_type='satoshi',
output_type=UNIT_CHOICE,
coin_symbol=coin_symbol,
print_cs=True,
),
round(100.0 * unsigned_tx['tx']['fees'] / dest_satoshis_to_display, 4),
)