From 579226ee7d411eebac1e68864779267bacf8b6dd Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sat, 2 Oct 2021 17:54:10 +0000 Subject: [PATCH] AddrList: display checksum only where relevant --- mmgen/addr.py | 19 +++++++++++-------- mmgen/txsign.py | 11 ++++++++--- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/mmgen/addr.py b/mmgen/addr.py index 8bfcea8b..af36f085 100755 --- a/mmgen/addr.py +++ b/mmgen/addr.py @@ -401,10 +401,9 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file keylist = '', mmtype = None, skip_key_address_validity_check = False, - ): + skip_chksum = False ): self.skip_ka_check = skip_key_address_validity_check - do_chksum = True self.update_msgs() mmtype = mmtype or proto.dfl_mmtype assert mmtype in MMGenAddrType.mmtypes, f'{mmtype}: mmtype not in {MMGenAddrType.mmtypes!r}' @@ -415,15 +414,17 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file self.proto = proto + do_chksum = False if seed and addr_idxs: # data from seed + idxs self.al_id,src = AddrListID(seed.sid,mmtype),'gen' adata = self.generate(seed,addr_idxs) + do_chksum = True elif addrfile: # data from MMGen address file self.infile = addrfile adata = self.parse_file(addrfile) # sets self.al_id + do_chksum = True elif al_id and adata: # data from tracking wallet self.al_id = al_id - do_chksum = False elif addrlist: # data from flat address list self.al_id = None addrlist = remove_dups(addrlist,edesc='address',desc='address list') @@ -450,10 +451,11 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file self.id_str = AddrListIDStr(self) if type(self) == KeyList: return - if do_chksum: + if do_chksum and not skip_chksum: self.chksum = AddrListChksum(self) - qmsg(f'Checksum for {self.data_desc} data {self.id_str.hl()}: {self.chksum.hl()}') - qmsg(self.msgs[('check_chksum','record_chksum')[src=='gen']]) + qmsg( + f'Checksum for {self.data_desc} data {self.id_str.hl()}: {self.chksum.hl()}\n' + + self.msgs[('check_chksum','record_chksum')[src=='gen']] ) def update_msgs(self): self.msgs = AddrList.msgs @@ -945,8 +947,9 @@ Record this checksum: it will be used to verify the password file in the future fs = f'{self.al_id.sid}-{self.pw_id_str}-{self.pw_fmt_disp}-{self.pw_len}[{{}}]' self.id_str = AddrListIDStr(self,fs) - qmsg(f'Checksum for {self.data_desc} data {self.id_str.hl()}: {self.chksum.hl()}') - qmsg(self.msgs[('record_chksum','check_chksum')[bool(infile)]]) + qmsg( + f'Checksum for {self.data_desc} data {self.id_str.hl()}: {self.chksum.hl()}\n' + + self.msgs[('record_chksum','check_chksum')[bool(infile)]] ) def set_pw_fmt(self,pw_fmt): if pw_fmt == 'hex2bip39': diff --git a/mmgen/txsign.py b/mmgen/txsign.py index 1306ac19..6f2a9f2c 100755 --- a/mmgen/txsign.py +++ b/mmgen/txsign.py @@ -70,7 +70,8 @@ def generate_kals_for_mmgen_addrs(need_keys,infiles,saved_seeds,proto): proto = proto, seed = seed, addr_idxs = AddrIdxList(idx_list=idx_list), - mmtype = MMGenAddrType(proto,id_str) ) + mmtype = MMGenAddrType(proto,id_str), + skip_chksum = True ) return MMGenList(gen_kals()) def add_keys(tx,src,infiles=None,saved_seeds=None,keyaddr_list=None): @@ -133,7 +134,10 @@ def get_keyaddrlist(proto,opt): def get_keylist(proto,opt): if opt.keys_from_file: l = get_lines_from_file(opt.keys_from_file,'key-address data',trim_comments=True) - kal = KeyAddrList(proto=proto,keylist=[m.split()[0] for m in l]) # accept coin daemon wallet dumps + kal = KeyAddrList( + proto = proto, + keylist = [m.split()[0] for m in l], # accept coin daemon wallet dumps + skip_chksum = True ) kal.generate_addrs_from_keys() return kal return None @@ -147,7 +151,8 @@ async def txsign(tx,seed_files,kl,kal,tx_num_str=''): tx.check_non_mmgen_inputs(caller='txsign',non_mmaddrs=non_mmaddrs) tmp = KeyAddrList( proto = tx.proto, - addrlist = non_mmaddrs ) + addrlist = non_mmaddrs, + skip_chksum = True ) tmp.add_wifs(kl) m = tmp.list_missing('sec') if m: