From f19994c01a0e6601cf3a6738fdf47f94124c5122 Mon Sep 17 00:00:00 2001 From: Alex Barnsley <8069294+alexbarnsley@users.noreply.github.com> Date: Thu, 3 Apr 2025 13:30:50 +0100 Subject: [PATCH] refactor: class based wif module --- crypto/identity/wif.py | 30 ++++++++++++++++-------------- tests/identity/test_wif.py | 4 ++-- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/crypto/identity/wif.py b/crypto/identity/wif.py index a8860dba..f166f945 100644 --- a/crypto/identity/wif.py +++ b/crypto/identity/wif.py @@ -7,22 +7,24 @@ from crypto.configuration.network import get_network -def wif_from_passphrase(passphrase: str, network_wif: Optional[str] = None): - """Get wif from passphrase +class WIF: + @staticmethod + def from_passphrase(passphrase: str, network_wif: Optional[str] = None): + """Get wif from passphrase - Args: - passphrase (str): - network_wif (str, optional): + Args: + passphrase (str): + network_wif (str, optional): - Returns: - string: wif - """ - if not network_wif: - network = get_network() + Returns: + string: wif + """ + if not network_wif: + network = get_network() - network_wif = network['wif'] + network_wif = network['wif'] - private_key = hashlib.sha256(passphrase.encode()) - seed = write_bit8(int(network_wif, 16)) + private_key.digest() + write_bit8(0x01) + private_key = hashlib.sha256(passphrase.encode()) + seed = write_bit8(int(network_wif, 16)) + private_key.digest() + write_bit8(0x01) - return b58encode_check(seed).decode() + return b58encode_check(seed).decode() diff --git a/tests/identity/test_wif.py b/tests/identity/test_wif.py index ec3b12e6..aca2f307 100644 --- a/tests/identity/test_wif.py +++ b/tests/identity/test_wif.py @@ -1,10 +1,10 @@ from crypto.configuration.network import set_network -from crypto.identity.wif import wif_from_passphrase +from crypto.identity.wif import WIF from crypto.networks.testnet import Testnet def test_wif_from_passphrase(identity): set_network(Testnet) - result = wif_from_passphrase(identity['passphrase']) + result = WIF.from_passphrase(identity['passphrase']) assert result == identity['data']['wif']