From a48b43c838a3635f4ba2b14c8b3d935df20e75ca Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Tue, 27 Sep 2022 10:03:27 +0000 Subject: [PATCH] proto.decoded_addr: add `ver_bytes` field --- mmgen/addr.py | 1 + mmgen/proto/btc.py | 2 +- mmgen/proto/eth.py | 2 +- mmgen/protocol.py | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mmgen/addr.py b/mmgen/addr.py index bc0101dc..7e121fae 100755 --- a/mmgen/addr.py +++ b/mmgen/addr.py @@ -148,6 +148,7 @@ class CoinAddr(str,Hilite,InitErrors,MMGenObject): assert ap, f'coin address {addr!r} could not be parsed' me.addr_fmt = ap.fmt me.hex = ap.bytes.hex() + me.ver_bytes = ap.ver_bytes me.proto = proto return me except Exception as e: diff --git a/mmgen/proto/btc.py b/mmgen/proto/btc.py index a7fd2d9a..d80d1141 100755 --- a/mmgen/proto/btc.py +++ b/mmgen/proto/btc.py @@ -94,7 +94,7 @@ class mainnet(CoinProtocol.Secp256k1): # chainparams.cpp msg(f'{ret[0]}: Invalid witness version number') return False - return decoded_addr( bytes(ret[1]), 'bech32' ) if ret[1] else False + return decoded_addr( bytes(ret[1]), None, 'bech32' ) if ret[1] else False return self.decode_addr_bytes(b58chk_decode(addr)) diff --git a/mmgen/proto/eth.py b/mmgen/proto/eth.py index 4cc1c777..49e0a0ab 100755 --- a/mmgen/proto/eth.py +++ b/mmgen/proto/eth.py @@ -55,7 +55,7 @@ class mainnet(CoinProtocol.DummyWIF,CoinProtocol.Secp256k1): def decode_addr(self,addr): if is_hex_str_lc(addr) and len(addr) == self.addr_len * 2: - return decoded_addr( bytes.fromhex(addr), 'ethereum' ) + return decoded_addr( bytes.fromhex(addr), None, 'ethereum' ) if g.debug: Msg(f'Invalid address: {addr}') return False diff --git a/mmgen/protocol.py b/mmgen/protocol.py index e5ae9677..23347fc1 100755 --- a/mmgen/protocol.py +++ b/mmgen/protocol.py @@ -26,7 +26,7 @@ from .devtools import * from .globalvars import g parsed_wif = namedtuple('parsed_wif',['sec','pubkey_type','compressed']) -decoded_addr = namedtuple('decoded_addr',['bytes','fmt']) +decoded_addr = namedtuple('decoded_addr',['bytes','ver_bytes','fmt']) _finfo = namedtuple('fork_info',['height','hash','name','replayable']) _nw = namedtuple('coin_networks',['mainnet','testnet','regtest']) @@ -143,7 +143,7 @@ class CoinProtocol(MMGenObject): vlen = len(ver_bytes) if addr_bytes[:vlen] == ver_bytes: if len(addr_bytes[vlen:]) == self.get_addr_len(addr_fmt): - return decoded_addr( addr_bytes[vlen:], addr_fmt ) + return decoded_addr( addr_bytes[vlen:], ver_bytes, addr_fmt ) return False