diff --git a/src/tx.py b/src/tx.py index ef7d3ce9da70cf4c566c98a4fe4b87047ee4f9e1..59849f182454391221283bc4016f243b1f18820f 100644 --- a/src/tx.py +++ b/src/tx.py @@ -20,10 +20,12 @@ def send_transaction(ep, cli_args): """ ud = get_last_ud_value(ep) amount, output, comment, allSources, outputBackChange = cmd_transaction(cli_args, ud) - check_transaction_values(comment, output, outputBackChange) seed = auth_method(cli_args) issuer_pubkey = get_publickey_from_seed(seed) + pubkey_amount = get_amount_from_pubkey(ep, issuer_pubkey)[0] + check_transaction_values(comment, output, outputBackChange, pubkey_amount < amount, issuer_pubkey) + if cli_args.contains_switches('yes') or cli_args.contains_switches('y') or \ input(tabulate(transaction_confirmation(ep, issuer_pubkey, amount, ud, output, comment), tablefmt="fancy_grid") + "\nDo you confirm sending this transaction? [yes/no]: ") == "yes": @@ -55,7 +57,7 @@ def cmd_transaction(cli_args, ud): return amount, output, comment, allSources, outputBackChange -def check_transaction_values(comment, output, outputBackChange): +def check_transaction_values(comment, output, outputBackChange, enough_source, issuer_pubkey): checkComment(comment) output = check_public_key(output, True) @@ -63,6 +65,8 @@ def check_transaction_values(comment, output, outputBackChange): outputBackChange = check_public_key(outputBackChange, True) if output is False or outputBackChange is False: exit(1) + if enough_source: + message_exit(issuer_pubkey + " pubkey don’t have enough money for this transaction.") def transaction_confirmation(ep, issuer_pubkey, amount, ud, output, comment): @@ -86,10 +90,6 @@ def transaction_confirmation(ep, issuer_pubkey, amount, ud, output, comment): def generate_and_send_transaction(ep, seed, issuers, AmountTransfered, outputAddr, Comment="", all_input=False, OutputbackChange=None): - totalamount = get_amount_from_pubkey(ep, issuers)[0] - if totalamount < AmountTransfered: - message_exit("the account: " + issuers + " don't have enough money for this transaction") - while True: listinput_and_amount = get_list_input_for_transaction(ep, issuers, AmountTransfered, all_input) intermediatetransaction = listinput_and_amount[2]