diff --git a/silkaj/tx.py b/silkaj/tx.py
index c0e6e74268c8908af7d4143845aeb79f29403049..3063666571fb6ab51e3938ff0c39218e9d4c93ce 100644
--- a/silkaj/tx.py
+++ b/silkaj/tx.py
@@ -111,7 +111,8 @@ async def send_transaction(
if allsources:
tx_amounts = [pubkey_amount[0]]
- check_transaction_values(
+ recipients = list(recipients)
+ outputbackchange = check_transaction_values(
comment,
recipients,
outputbackchange,
@@ -189,18 +190,27 @@ def compute_amounts(amounts, multiplicator):
def check_transaction_values(
comment, outputAddresses, outputBackChange, enough_source, issuer_pubkey
):
+ """
+ Check the comment format
+ Check the pubkeys and the checksums of the recipients and the outputbackchange
+ In case of a valid checksum, assign and return the pubkey without the checksum
+ Check the balance is big enough for the transaction
+ """
checkComment(comment)
- for outputAddress in outputAddresses:
- if check_public_key(outputAddress, True) is False:
+ for i, outputAddress in enumerate(outputAddresses):
+ outputAddresses[i] = check_public_key(outputAddress, True)
+ if not outputAddresses[i]:
message_exit(outputAddress)
if outputBackChange:
+ pubkey = outputBackChange
outputBackChange = check_public_key(outputBackChange, True)
- if check_public_key(outputBackChange, True) is False:
- message_exit(outputBackChange)
+ if not outputBackChange:
+ message_exit(pubkey)
if enough_source:
message_exit(
issuer_pubkey + " pubkey doesn’t have enough money for this transaction."
)
+ return outputBackChange
async def transaction_confirmation(