Improve the wallet output formatting

This commit is contained in:
2024-03-25 22:15:10 +01:00
parent 3d239a7526
commit 38c204cab2

View File

@@ -7,7 +7,7 @@ from cryptography.hazmat.primitives.serialization import Encoding, PrivateFormat
def format_address(raw_address):
return base64.b64encode(raw_address).decode()
def format_amount(amount, show_plus = True):
def format_amount(amount, width, show_plus = True):
color_prefix = ""
color_suffix = ""
sign = "+ " if show_plus else ""
@@ -17,11 +17,13 @@ def format_amount(amount, show_plus = True):
sign = "- "
amount = -amount
coins = amount / 100
return f"{color_prefix}{sign}{coins:.02f} cc{color_suffix}"
amount_str = f"{sign}{coins:.02f}"
amount_str = f"{amount_str:>{width}}"
return f"{color_prefix}{amount_str} cc{color_suffix}"
def write_transaction(timestamp, message, amount):
formatted_time = time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(timestamp))
print(f"{formatted_time} {message:<44} {format_amount(amount):>14}")
print(f"{formatted_time} {message:<44} {format_amount(amount, 11)}")
def show_balance(public_key):
public_key_raw = public_key.public_bytes(Encoding.Raw, PublicFormat.Raw)
@@ -50,8 +52,8 @@ def show_balance(public_key):
write_transaction(timestamp, "mining reward", 100 + fee)
total_amount += 100 + fee
print(81 * "\u2500")
amount_string = f"\U0001f955 \x1b[1;37m{format_amount(total_amount, False)}\x1b[0m"
print(21 * " " + f"\x1b[1;37mYour balance:\x1b[0m{amount_string:>57}")
amount_string = f"\U0001f955 \x1b[1;37m{format_amount(total_amount, 41, False)}\x1b[0m"
print(21 * " " + f"\x1b[1;37mYour balance:\x1b[0m{amount_string}")
def parse_amount(amount):
amount = amount.replace(",", ".")