From 044c2a0b9172b4710104bd040732fa7b8d71876c Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 29 Sep 2024 11:59:55 +0000 Subject: [PATCH] whitespace throughout --- mmgen/addr.py | 2 +- mmgen/addrfile.py | 32 +++++++++++++++---------------- mmgen/addrlist.py | 6 +++--- mmgen/opts.py | 2 +- mmgen/proto/btc/addrgen.py | 2 +- mmgen/proto/btc/params.py | 12 ++++++------ mmgen/proto/btc/tw/txhistory.py | 5 +++-- mmgen/proto/btc/tx/base.py | 27 +++++++++++++------------- mmgen/proto/eth/tx/info.py | 19 +++++++++--------- mmgen/proto/eth/tx/online.py | 2 +- mmgen/proto/eth/tx/unsigned.py | 6 +++--- mmgen/tool/coin.py | 12 +++++------- test/cmdtest_py_d/ct_misc.py | 14 +++++++------- test/cmdtest_py_d/ct_ref_3seed.py | 14 +++++++------- test/cmdtest_py_d/ct_regtest.py | 13 ++++++++++--- test/cmdtest_py_d/ct_shared.py | 4 ++-- test/scrambletest.py | 12 ++++++------ 17 files changed, 95 insertions(+), 89 deletions(-) diff --git a/mmgen/addr.py b/mmgen/addr.py index 0b5864e3..9efbdd33 100755 --- a/mmgen/addr.py +++ b/mmgen/addr.py @@ -151,7 +151,7 @@ class CoinAddr(HiliteStr, InitErrors, MMGenObject): width = 1 trunc_ok = False - def __new__(cls,proto,addr): + def __new__(cls, proto, addr): if isinstance(addr,cls): return addr try: diff --git a/mmgen/addrfile.py b/mmgen/addrfile.py index a43d1d25..7e41ae73 100755 --- a/mmgen/addrfile.py +++ b/mmgen/addrfile.py @@ -203,17 +203,17 @@ class AddrFile(MMGenObject): def parse_addrfile_label(lbl): """ label examples: - - Bitcoin legacy mainnet: no label - - Bitcoin legacy testnet: 'LEGACY:TESTNET' - - Bitcoin Segwit: 'SEGWIT' - - Bitcoin Segwit testnet: 'SEGWIT:TESTNET' - - Bitcoin Bech32 regtest: 'BECH32:REGTEST' - - Litecoin legacy mainnet: 'LTC' - - Litecoin Bech32 mainnet: 'LTC:BECH32' - - Litecoin legacy testnet: 'LTC:LEGACY:TESTNET' - - Ethereum mainnet: 'ETH' - - Ethereum Classic mainnet: 'ETC' - - Ethereum regtest: 'ETH:REGTEST' + - Bitcoin legacy mainnet: no label + - Bitcoin legacy testnet: 'LEGACY:TESTNET' + - Bitcoin Segwit: 'SEGWIT' + - Bitcoin Segwit testnet: 'SEGWIT:TESTNET' + - Bitcoin Bech32 regtest: 'BECH32:REGTEST' + - Litecoin legacy mainnet: 'LTC' + - Litecoin Bech32 mainnet: 'LTC:BECH32' + - Litecoin legacy testnet: 'LTC:LEGACY:TESTNET' + - Ethereum mainnet: 'ETH' + - Ethereum Classic mainnet: 'ETC' + - Ethereum regtest: 'ETH:REGTEST' """ lbl = lbl.lower() @@ -229,18 +229,18 @@ class AddrFile(MMGenObject): from .proto.btc.params import mainnet if lbl in [MMGenAddrType(mainnet,key).name for key in mainnet.mmtypes]: - coin,mmtype_key = ( 'BTC', lbl ) + coin, mmtype_key = ('BTC', lbl) elif ':' in lbl: # first component is coin, second is mmtype_key - coin,mmtype_key = lbl.split(':') + coin, mmtype_key = lbl.split(':') else: # only component is coin - coin,mmtype_key = ( lbl, None ) + coin, mmtype_key = (lbl, None) - proto = init_proto( p.cfg, coin=coin, network=network ) + proto = init_proto(p.cfg, coin=coin, network=network) if mmtype_key is None: mmtype_key = proto.mmtypes[0] - return ( proto, proto.addr_type(mmtype_key) ) + return (proto, proto.addr_type(mmtype_key)) p = self.parent diff --git a/mmgen/addrlist.py b/mmgen/addrlist.py index 460d4ee3..003eb35e 100755 --- a/mmgen/addrlist.py +++ b/mmgen/addrlist.py @@ -146,7 +146,7 @@ class AddrList(MMGenObject): # Address info for a single seed ID gen_passwds = False gen_keys = False has_keys = False - chksum_rec_f = lambda foo,e: ( str(e.idx), e.addr ) + chksum_rec_f = lambda foo, e: (str(e.idx), e.addr) def dmsg_sc(self,desc,data): Msg(f'sc_debug_{desc}: {data}') @@ -414,12 +414,12 @@ class KeyAddrList(AddrList): gen_desc_pl = 's' gen_keys = True has_keys = True - chksum_rec_f = lambda foo,e: (str(e.idx), e.addr, e.sec.wif) + chksum_rec_f = lambda foo, e: (str(e.idx), e.addr, e.sec.wif) class ViewKeyAddrList(KeyAddrList): desc = 'viewkey-address' gen_desc = 'viewkey/address pair' - chksum_rec_f = lambda foo,e: ( str(e.idx), e.addr ) + chksum_rec_f = lambda foo, e: (str(e.idx), e.addr) class KeyList(KeyAddrList): desc = 'key' diff --git a/mmgen/opts.py b/mmgen/opts.py index bc02aa82..2c4c93d3 100755 --- a/mmgen/opts.py +++ b/mmgen/opts.py @@ -45,7 +45,7 @@ long_opts_data = { --, --color=0|1 Disable or enable color output (enabled by default) --, --columns=N Force N columns of output with certain commands --, --scroll Use the curses-like scrolling interface for - tracking wallet views + tracking wallet views --, --force-256-color Force 256-color output when color is enabled --, --pager Pipe output of certain commands to pager (WIP) --, --data-dir=path Specify {pnm} data directory location diff --git a/mmgen/proto/btc/addrgen.py b/mmgen/proto/btc/addrgen.py index f81e1376..3af02519 100755 --- a/mmgen/proto/btc/addrgen.py +++ b/mmgen/proto/btc/addrgen.py @@ -12,7 +12,7 @@ proto.btc.addrgen: Bitcoin address generation classes for the MMGen suite """ -from ...addrgen import addr_generator,check_data +from ...addrgen import addr_generator, check_data from ...addr import CoinAddr from .common import hash160 diff --git a/mmgen/proto/btc/params.py b/mmgen/proto/btc/params.py index 9e620f3f..7c2de39b 100755 --- a/mmgen/proto/btc/params.py +++ b/mmgen/proto/btc/params.py @@ -12,8 +12,8 @@ proto.btc.params: Bitcoin protocol """ -from ...protocol import CoinProtocol,decoded_wif,decoded_addr,_finfo,_nw -from .common import b58chk_decode,b58chk_encode,hash160 +from ...protocol import CoinProtocol, decoded_wif, decoded_addr, _finfo, _nw +from .common import b58chk_decode, b58chk_encode, hash160 class mainnet(CoinProtocol.Secp256k1): # chainparams.cpp """ @@ -90,25 +90,25 @@ class mainnet(CoinProtocol.Secp256k1): # chainparams.cpp return self.decode_addr_bytes(b58chk_decode(addr)) - def pubhash2addr(self,pubhash,p2sh): + def pubhash2addr(self, pubhash, p2sh): assert len(pubhash) == self.addr_len, f'{len(pubhash)}: invalid length for pubkey hash' return b58chk_encode( self.addr_fmt_to_ver_bytes[('p2pkh','p2sh')[p2sh]] + pubhash ) # Segwit: - def pubhash2redeem_script(self,pubhash): + def pubhash2redeem_script(self, pubhash): # https://bitcoincore.org/en/segwit_wallet_dev/ # The P2SH redeemScript is always 22 bytes. It starts with a OP_0, followed # by a canonical push of the keyhash (i.e. 0x0014{20-byte keyhash}) return bytes.fromhex(self.witness_vernum_hex + '14') + pubhash - def pubhash2segwitaddr(self,pubhash): + def pubhash2segwitaddr(self, pubhash): return self.pubhash2addr( hash160( self.pubhash2redeem_script(pubhash) ), p2sh = True ) - def pubhash2bech32addr(self,pubhash): + def pubhash2bech32addr(self, pubhash): from ...contrib import bech32 return bech32.bech32_encode( hrp = self.bech32_hrp, diff --git a/mmgen/proto/btc/tw/txhistory.py b/mmgen/proto/btc/tw/txhistory.py index 6ecac25a..847ac80e 100755 --- a/mmgen/proto/btc/tw/txhistory.py +++ b/mmgen/proto/btc/tw/txhistory.py @@ -159,7 +159,8 @@ class BitcoinTwTransaction: yield fs1.format( i = CoinTxID(e.txid).hl(color=color), n = (nocolor,red)[color](str(e.data['n']).ljust(3)), - a = CoinAddr(self.proto,e.coin_addr).fmt( width=self.max_addrlen[src], color=color ), + a = CoinAddr(self.proto, e.coin_addr).fmt( + width=self.max_addrlen[src], color=color), A = self.proto.coin_amt( e.data['value'] ).fmt(color=color) ).rstrip() else: @@ -191,7 +192,7 @@ class BitcoinTwTransaction: if not mmid: if width and space_left < addr_w: break - yield CoinAddr( self.proto, e.coin_addr ).fmt(width=addr_w,color=color) + yield CoinAddr(self.proto, e.coin_addr).fmt(width=addr_w, color=color) space_left -= addr_w elif mmid.type == 'mmgen': mmid_disp = mmid + bal_star diff --git a/mmgen/proto/btc/tx/base.py b/mmgen/proto/btc/tx/base.py index c764be7d..ead54f8b 100755 --- a/mmgen/proto/btc/tx/base.py +++ b/mmgen/proto/btc/tx/base.py @@ -33,11 +33,11 @@ def addr2scriptPubKey(proto,addr): def scriptPubKey2addr(proto,s): if len(s) == 50 and s[:6] == '76a914' and s[-4:] == '88ac': - return proto.pubhash2addr(bytes.fromhex(s[6:-4]),p2sh=False),'p2pkh' + return proto.pubhash2addr(bytes.fromhex(s[6:-4]), p2sh=False), 'p2pkh' elif len(s) == 46 and s[:4] == 'a914' and s[-2:] == '87': - return proto.pubhash2addr(bytes.fromhex(s[4:-2]),p2sh=True),'p2sh' + return proto.pubhash2addr(bytes.fromhex(s[4:-2]), p2sh=True), 'p2sh' elif len(s) == 44 and s[:4] == proto.witness_vernum_hex + '14': - return proto.pubhash2bech32addr(bytes.fromhex(s[4:])),'bech32' + return proto.pubhash2bech32addr(bytes.fromhex(s[4:])), 'bech32' else: raise NotImplementedError(f'Unknown scriptPubKey ({s})') @@ -284,17 +284,17 @@ class Base(TxBase.Base): """ def do_error(errmsg): - die( 'TxHexMismatch', errmsg+'\n'+hdr ) + die('TxHexMismatch', errmsg+'\n'+hdr) def check_equal(desc,hexio,mmio): if mmio != hexio: msg('\nMMGen {d}:\n{m}\nSerialized {d}:\n{h}'.format( d = desc, m = pp_fmt(mmio), - h = pp_fmt(hexio) )) + h = pp_fmt(hexio))) do_error( f'{desc.capitalize()} in serialized transaction data from coin daemon ' + - 'do not match those in MMGen transaction!' ) + 'do not match those in MMGen transaction!') hdr = 'A malicious or malfunctioning coin daemon or other program may have altered your data!' @@ -303,23 +303,22 @@ class Base(TxBase.Base): if dtx.locktime != int(self.locktime or 0): do_error( f'Transaction hex nLockTime ({dtx.locktime}) ' + - f'does not match MMGen transaction nLockTime ({self.locktime})' ) + f'does not match MMGen transaction nLockTime ({self.locktime})') check_equal( 'sequence numbers', [i['nSeq'] for i in dtx.txins], - ['{:08x}'.format(i.sequence or self.proto.max_int) for i in self.inputs] ) + ['{:08x}'.format(i.sequence or self.proto.max_int) for i in self.inputs]) check_equal( 'inputs', - sorted((i['txid'],i['vout']) for i in dtx.txins), - sorted((i.txid,i.vout) for i in self.inputs) ) + sorted((i['txid'], i['vout']) for i in dtx.txins), + sorted((i.txid, i.vout) for i in self.inputs)) check_equal( 'outputs', - sorted((o['address'],self.proto.coin_amt(o['amount'])) for o in dtx.txouts), - sorted((o.addr,o.amt) for o in self.outputs) ) + sorted((o['address'], self.proto.coin_amt(o['amount'])) for o in dtx.txouts), + sorted((o.addr, o.amt) for o in self.outputs)) if str(self.txid) != make_chksum_6(bytes.fromhex(dtx.unsigned_hex)).upper(): - do_error( - f'MMGen TxID ({self.txid}) does not match serialized transaction data!') + do_error(f'MMGen TxID ({self.txid}) does not match serialized transaction data!') diff --git a/mmgen/proto/eth/tx/info.py b/mmgen/proto/eth/tx/info.py index 7e54f8d3..8ad3b681 100755 --- a/mmgen/proto/eth/tx/info.py +++ b/mmgen/proto/eth/tx/info.py @@ -36,14 +36,15 @@ class TxInfo(TxInfo): if len(getattr(tx,k)): m[k] = getattr(tx,k)[0].mmid if len(getattr(tx,k)) else '' m[k] = ' ' + m[k].hl() if m[k] else ' ' + MMGenID.hlc(nonmm_str) - fs = """From: {}{f_mmid} - To: {}{t_mmid} - Amount: {} {c} - Gas price: {g} Gwei - Start gas: {G} Kwei - Nonce: {} - Data: {d} - \n""".replace('\t','') + fs = """ + From: {f}{f_mmid} + To: {t}{t_mmid} + Amount: {a} {c} + Gas price: {g} Gwei + Start gas: {G} Kwei + Nonce: {n} + Data: {d} + """.strip().replace('\t','') t = tx.txobj td = t['data'] return fs.format( @@ -53,7 +54,7 @@ class TxInfo(TxInfo): g = yellow(str(t['gasPrice'].to_unit('Gwei',show_decimal=True))), G = yellow(str(t['startGas'].to_unit('Kwei'))), t_mmid = m['outputs'] if len(tx.outputs) else '', - f_mmid = m['inputs'] ) + f_mmid = m['inputs']) + '\n\n' def format_abs_fee(self,color,iwidth): return self.tx.fee.fmt(color=color,iwidth=iwidth) + (' (max)' if self.tx.txobj['data'] else '') diff --git a/mmgen/proto/eth/tx/online.py b/mmgen/proto/eth/tx/online.py index 98bab91e..2c1dc85c 100755 --- a/mmgen/proto/eth/tx/online.py +++ b/mmgen/proto/eth/tx/online.py @@ -56,7 +56,7 @@ class OnlineSigned(Signed,TxBase.OnlineSigned): def print_contract_addr(self): if 'token_addr' in self.txobj: - msg('Contract address: {}'.format( self.txobj['token_addr'].hl() )) + msg('Contract address: {}'.format(self.txobj['token_addr'].hl())) class TokenOnlineSigned(TokenSigned,OnlineSigned): diff --git a/mmgen/proto/eth/tx/unsigned.py b/mmgen/proto/eth/tx/unsigned.py index 0ba8d60e..5734a2c1 100755 --- a/mmgen/proto/eth/tx/unsigned.py +++ b/mmgen/proto/eth/tx/unsigned.py @@ -48,11 +48,11 @@ class Unsigned(Completed,TxBase.Unsigned): 'gasprice': o['gasPrice'].toWei(), 'value': o['amt'].toWei() if o['amt'] else 0, 'nonce': o['nonce'], - 'data': bytes.fromhex(o['data']) } + 'data': bytes.fromhex(o['data'])} from ..pyethereum.transactions import Transaction - etx = Transaction(**o_conv).sign(wif,o['chainId']) - assert etx.sender.hex() == o['from'],( + etx = Transaction(**o_conv).sign(wif, o['chainId']) + assert etx.sender.hex() == o['from'], ( 'Sender address recovered from signature does not match true sender') from .. import rlp diff --git a/mmgen/tool/coin.py b/mmgen/tool/coin.py index ab536ac4..e054d51a 100755 --- a/mmgen/tool/coin.py +++ b/mmgen/tool/coin.py @@ -148,7 +148,7 @@ class tool_cmd(tool_cmd_base): "convert a hexadecimal pubkey to a Segwit P2SH-P2WPKH redeem script" assert self.mmtype.name == 'segwit','This command is meaningful only for --type=segwit' from ..proto.btc.common import hash160 - return self.proto.pubhash2redeem_script( hash160(bytes.fromhex(pubkeyhex)) ).hex() + return self.proto.pubhash2redeem_script(hash160(bytes.fromhex(pubkeyhex))).hex() def redeem_script2addr(self,redeem_script_hex:'sstr'): # new "convert a Segwit P2SH-P2WPKH redeem script to an address" @@ -156,19 +156,17 @@ class tool_cmd(tool_cmd_base): assert redeem_script_hex[:4] == '0014', f'{redeem_script_hex!r}: invalid redeem script' assert len(redeem_script_hex) == 44, f'{len(redeem_script_hex)//2} bytes: invalid redeem script length' from ..proto.btc.common import hash160 - return self.proto.pubhash2addr( - hash160( bytes.fromhex(redeem_script_hex) ), - p2sh = True ) + return self.proto.pubhash2addr(hash160(bytes.fromhex(redeem_script_hex)), p2sh=True) def pubhash2addr(self,pubhashhex:'sstr'): "convert public key hash to address" pubhash = bytes.fromhex(pubhashhex) if self.mmtype.name == 'segwit': - return self.proto.pubhash2segwitaddr( pubhash ) + return self.proto.pubhash2segwitaddr(pubhash) elif self.mmtype.name == 'bech32': - return self.proto.pubhash2bech32addr( pubhash ) + return self.proto.pubhash2bech32addr(pubhash) else: - return self.proto.pubhash2addr( pubhash, self.mmtype.addr_fmt=='p2sh' ) + return self.proto.pubhash2addr(pubhash, self.mmtype.addr_fmt=='p2sh') def addr2pubhash(self,addr:'sstr'): "convert coin address to public key hash" diff --git a/test/cmdtest_py_d/ct_misc.py b/test/cmdtest_py_d/ct_misc.py index b24e0409..83b4844c 100755 --- a/test/cmdtest_py_d/ct_misc.py +++ b/test/cmdtest_py_d/ct_misc.py @@ -62,13 +62,13 @@ class CmdTestMisc(CmdTestBase): tmpdir_nums = [99] passthru_opts = ('daemon_data_dir','rpc_port') cmd_group = ( - ('rpc_backends', 'RPC backends'), - ('xmrwallet_txview', "'mmgen-xmrwallet' txview"), - ('xmrwallet_txlist', "'mmgen-xmrwallet' txlist"), - ('coin_daemon_info', "'examples/coin-daemon-info.py'"), - ('examples_bip_hd', "'examples/bip_hd.py'"), - ('term_echo', "term.set('echo')"), - ('term_cleanup', 'term.register_cleanup()'), + ('rpc_backends', 'RPC backends'), + ('xmrwallet_txview', "'mmgen-xmrwallet' txview"), + ('xmrwallet_txlist', "'mmgen-xmrwallet' txlist"), + ('coin_daemon_info', "'examples/coin-daemon-info.py'"), + ('examples_bip_hd', "'examples/bip_hd.py'"), + ('term_echo', "term.set('echo')"), + ('term_cleanup', 'term.register_cleanup()'), ) need_daemon = True color = True diff --git a/test/cmdtest_py_d/ct_ref_3seed.py b/test/cmdtest_py_d/ct_ref_3seed.py index 1c1e45dc..9cae7950 100755 --- a/test/cmdtest_py_d/ct_ref_3seed.py +++ b/test/cmdtest_py_d/ct_ref_3seed.py @@ -392,17 +392,17 @@ class CmdTestRef3Addr(CmdTestRef3Seed): def refkeyaddrgen_bech32(self): return self.call_addrgen('bech32','keyaddr') - def pwgen(self,ftype,id_str,pwfmt=None,pwlen=None,extra_args=[],stdout=False): + def pwgen(self, ftype, id_str, pwfmt=None, pwlen=None, extra_args=[], stdout=False): wf = self.get_file_with_ext('mmdat') pwfmt = (['--passwd-fmt='+pwfmt] if pwfmt else []) pwlen = (['--passwd-len='+str(pwlen)] if pwlen else []) return self.addrgen( - wf, - check_ref = True, - ftype = ftype, - id_str = id_str, - extra_args = pwfmt + pwlen + extra_args, - stdout = stdout) + wf, + check_ref = True, + ftype = ftype, + id_str = id_str, + extra_args = pwfmt + pwlen + extra_args, + stdout = stdout) def refpasswdgen(self): return self.pwgen('pass','alice@crypto.org') diff --git a/test/cmdtest_py_d/ct_regtest.py b/test/cmdtest_py_d/ct_regtest.py index e93fa570..810b1a45 100755 --- a/test/cmdtest_py_d/ct_regtest.py +++ b/test/cmdtest_py_d/ct_regtest.py @@ -164,7 +164,7 @@ def make_burn_addr(proto): cfg = cfg, cmdname = 'pubhash2addr', proto = proto, - mmtype = 'compressed' ).pubhash2addr('00'*20) + mmtype = 'compressed').pubhash2addr('00'*20) class CmdTestRegtest(CmdTestBase,CmdTestShared): 'transacting and tracking wallet operations via regtest mode' @@ -718,7 +718,14 @@ class CmdTestRegtest(CmdTestBase,CmdTestShared): def fund_alice(self): return self.fund_wallet('alice',('L','S')[self.proto.cap('segwit')],rtFundAmt) - def user_twview(self, user, chk=None, expect=None, cmdline=['twview'], sort='age', exit_val=None): + def user_twview( + self, + user, + chk = None, + expect = None, + cmdline = ['twview'], + sort = 'age', + exit_val = None): t = self.spawn('mmgen-tool',[f'--{user}'] + cmdline + ['sort='+sort], exit_val=exit_val) if chk: t.expect(r'{}\b.*\D{}\b'.format(*chk),regex=True) @@ -739,7 +746,7 @@ class CmdTestRegtest(CmdTestBase,CmdTestShared): return self.user_twview('bob', cmdline=['listaddresses'], expect='TOTAL:') def bob_twview1(self): - return self.user_twview('bob', chk = ('1',rtAmts[0]) ) + return self.user_twview('bob', chk=('1', rtAmts[0])) def user_bal(self,user,bal,args=['showempty=1'],skip_check=False): t = self.spawn('mmgen-tool',['--'+user,'listaddresses'] + args) diff --git a/test/cmdtest_py_d/ct_shared.py b/test/cmdtest_py_d/ct_shared.py index 69624d1c..0ac19c25 100755 --- a/test/cmdtest_py_d/ct_shared.py +++ b/test/cmdtest_py_d/ct_shared.py @@ -240,7 +240,7 @@ class CmdTestShared: t.expect(['Passphrase is OK', 'Passphrase.* are correct'],regex=True) chk = t.expect_getend(f'Valid {wcls.desc} for Seed ID ')[:8] if sid: - cmp_or_die(chk,sid) + cmp_or_die(chk, sid) return t def addrgen( @@ -285,7 +285,7 @@ class CmdTestShared: def keyaddrgen(self,wf,check_ref=False,mmtype=None): if not mmtype: mmtype = self.segwit_mmtype - args = ['-d',self.tmpdir,self.usr_rand_arg,wf,self.addr_idx_list] + args = ['-d', self.tmpdir, self.usr_rand_arg, wf, self.addr_idx_list] t = self.spawn('mmgen-keygen', ([],['--type='+str(mmtype)])[bool(mmtype)] + args, extra_desc=f'({mmtype})' if mmtype in ('segwit','bech32') else '') diff --git a/test/scrambletest.py b/test/scrambletest.py index 78972737..fd6a317a 100755 --- a/test/scrambletest.py +++ b/test/scrambletest.py @@ -59,14 +59,14 @@ from test.include.common import set_globals,init_coverage,end_msg,green set_globals(cfg) -td = namedtuple('scrambletest_entry',['seed','str','id_str','lbl','addr']) +td = namedtuple('scrambletest_entry', ['seed', 'str', 'id_str', 'lbl', 'addr']) bitcoin_data = { -# SCRAMBLED_SEED[:8] SCRAMBLE_KEY ID_STR LBL FIRST ADDR -'btc': td('456d7f5f1c4bfe3b','(none)', '', '', '1MU7EdgqYy9JX35L25hR6CmXXcSEBDAwyv'), -'btc_compressed':td('bf98a4af5464a4ef','compressed', '-C', 'COMPRESSED', '1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP'), -'btc_segwit': td('b56962d829ffc678','segwit', '-S', 'SEGWIT', '36TvVzU5mxSjJ3D9qKAmYzCV7iUqtTDezF'), -'btc_bech32': td('d09eea818f9ad17f','bech32', '-B', 'BECH32', 'bc1q8snv94j6959y3gkqv4gku0cm5mersnpucsvw5z'), +# SCRAMBLED_SEED[:8] SCRAMBLE_KEY ID_STR LBL FIRST ADDR +'btc': td('456d7f5f1c4bfe3b','(none)', '', '', '1MU7EdgqYy9JX35L25hR6CmXXcSEBDAwyv'), +'btc_compressed':td('bf98a4af5464a4ef','compressed', '-C', 'COMPRESSED','1F97Jd89wwmu4ELadesAdGDzg3d8Y6j5iP'), +'btc_segwit': td('b56962d829ffc678','segwit', '-S', 'SEGWIT', '36TvVzU5mxSjJ3D9qKAmYzCV7iUqtTDezF'), +'btc_bech32': td('d09eea818f9ad17f','bech32', '-B', 'BECH32', 'bc1q8snv94j6959y3gkqv4gku0cm5mersnpucsvw5z'), } altcoin_data = {