diff --git a/silkaj/money.py b/silkaj/money.py index f9540b6d4b3a5c18d2074ff50e34f06edfe0eb0f..3c41d06dbac2eec9625e3567c1b4241450dc56d9 100644 --- a/silkaj/money.py +++ b/silkaj/money.py @@ -17,13 +17,15 @@ along with Silkaj. If not, see <https://www.gnu.org/licenses/>. from click import command, argument, pass_context, echo from tabulate import tabulate +import re from silkaj.network_tools import ClientInstance from silkaj.blockchain_tools import HeadBlock from silkaj.tools import CurrencySymbol, message_exit, coroutine from silkaj.auth import auth_method from silkaj.wot import check_public_key -from silkaj.tui import display_amount +from silkaj.tui import display_amount, pubkey_with_checksum +from silkaj.crypto_tools import PUBKEY_DELIMITED_PATTERN, check_public_key from duniterpy.api.bma import tx, blockchain from duniterpy.documents.transaction import InputSource @@ -43,12 +45,14 @@ async def cmd_amount(ctx, pubkeys): ): if not pubkeys: message_exit("You should specify one or many pubkeys") + checked_pubkeys = list() for pubkey in pubkeys: pubkey = check_public_key(pubkey, True) + checked_pubkeys.append(pubkey) if not pubkey: return total = [0, 0] - for pubkey in pubkeys: + for pubkey in checked_pubkeys: inputs_balance = await get_amount_from_pubkey(pubkey) await show_amount_from_pubkey(pubkey, inputs_balance) total[0] += inputs_balance[0] @@ -68,6 +72,9 @@ async def show_amount_from_pubkey(pubkey, inputs_balance): currency_symbol = await CurrencySymbol().symbol ud_value = await UDValue().ud_value average, monetary_mass = await get_average() + # if `pubkey` is a pubkey, get pubkey:checksum + if re.search(re.compile(PUBKEY_DELIMITED_PATTERN), pubkey): + pubkey = pubkey_with_checksum(pubkey) # display balance table display = list() display.append(["Balance of pubkey", pubkey]) diff --git a/tests/test_end_to_end.py b/tests/test_end_to_end.py index e761c2d1437a77aefd9f8ceabbd4156e3a672e54..3c8fa3064ffdc3e5b36bafc4070b5bae8d032f71 100644 --- a/tests/test_end_to_end.py +++ b/tests/test_end_to_end.py @@ -52,7 +52,7 @@ def test_balance(): silkaj + ["--gtest", "balance", "3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj"] ).decode() assert ( - "│ Balance of pubkey │ 3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj │" + "│ Balance of pubkey │ 3dnbnYY9i2bHMQUGyFp5GVvJ2wBkVpus31cDJA5cfRpj:EyF │" in output ) assert "│ Total amount (unit|relative) │" in output