From c46002c5200950e73b418ee444cdfed039a67dc8 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 28 Apr 2022 11:00:52 +0000 Subject: [PATCH] msg.py: improve handling of failed Seed ID data --- mmgen/main_autosign.py | 4 ++-- mmgen/main_msg.py | 4 ++-- mmgen/msg.py | 17 ++++++----------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/mmgen/main_autosign.py b/mmgen/main_autosign.py index 14e6d488..6100e264 100755 --- a/mmgen/main_autosign.py +++ b/mmgen/main_autosign.py @@ -225,8 +225,8 @@ async def sign_object(d,fn): m.write_to_file( outdir = os.path.abspath(msg_dir), ask_overwrite = False ) - if getattr(m,'failed_sids',None): - die('MsgFileFailedSID',f'Failed Seed IDs: {fmt_list(m.failed_sids,fmt="bare")}') + if m.data.get('failed_sids'): + die('MsgFileFailedSID',f'Failed Seed IDs: {fmt_list(m.data["failed_sids"],fmt="bare")}') return m except Exception as e: ymsg(f'An error occurred with {d.desc} {fn!r}:\n {e!s}') diff --git a/mmgen/main_msg.py b/mmgen/main_msg.py index 1a5c31f5..4fc56ec9 100755 --- a/mmgen/main_msg.py +++ b/mmgen/main_msg.py @@ -49,7 +49,7 @@ class MsgOps: m.write_to_file( ask_overwrite=False ) - if getattr(m,'failed_sids',None): + if m.data.get('failed_sids'): sys.exit(1) class verify(sign): @@ -62,7 +62,7 @@ class MsgOps: await m.verify(addr,summary=True) - if getattr(m,'failed_sids',None): + if m.data.get('failed_sids'): sys.exit(1) class export(sign): diff --git a/mmgen/msg.py b/mmgen/msg.py index ff2d81a7..69f25cd8 100755 --- a/mmgen/msg.py +++ b/mmgen/msg.py @@ -64,7 +64,7 @@ class coin_msg: def chksum(self): return make_chksum_6( json.dumps( - self.data, + {k:v for k,v in self.data.items() if k != 'failed_sids'}, sort_keys = True, separators = (',', ':') )) @@ -98,9 +98,6 @@ class coin_msg: 'signatures': self.sigs, } - if hasattr(self,'failed_sids'): - data.update({'failed_seed_ids':self.failed_sids}) - write_data_to_file( outfile = os.path.join(outdir or '',self.filename), data = json.dumps(data,sort_keys=True,indent=4), @@ -133,8 +130,6 @@ class coin_msg: self.data = d['metadata'] self.sigs = d['signatures'] self.addrlists = [MMGenIDRange(self.proto,i) for i in self.data['addrlists']] - if d.get('failed_seed_ids'): - self.failed_sids = d['failed_seed_ids'] def format(self,req_addr=None): @@ -153,10 +148,6 @@ class coin_msg: def gen_all(): for k,v in hdr_data.items(): yield fs1.format( v[0], v[1](self.data[k]) ) - if hasattr(self,'failed_sids'): - yield fs1.format( - 'Failed Seed IDs:', - red(fmt_list(self.failed_sids,fmt='bare')) ) if self.sigs: yield '' yield 'Signatures:' @@ -181,11 +172,15 @@ class coin_msg: 'message': ('Message:', lambda v: grnbg(v) ), 'network': ('Network:', lambda v: v.replace('_',' ').upper() ), 'addrlists': ('Address Ranges:', lambda v: fmt_list(v,fmt='bare') ), + 'failed_sids': ('Failed Seed IDs:', lambda v: red(fmt_list(v,fmt='bare')) ), } if req_addr or type(self).__name__ == 'exported_sigs': del hdr_data['addrlists'] + if req_addr or not self.data.get('failed_sids'): + del hdr_data['failed_sids'] + fs1 = '{:%s} {}' % max(len(v[0]) for v in hdr_data.values()) fs2 = '{:%s} {}' % max(len(labels[k]) for v in self.sigs.values() for k in v.keys()) @@ -264,7 +259,7 @@ class coin_msg: if need_sids: msg('Failed Seed IDs: {}'.format(orange(fmt_list(need_sids,fmt='bare')))) - self.failed_sids = need_sids + self.data['failed_sids'] = need_sids class signed(completed):