xmrwallet.file: new make_json_data() method

This commit is contained in:
The MMGen Project 2026-10-23 17:01:32 +00:00
commit 5e96792e30
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 12 additions and 13 deletions

View file

@ -40,17 +40,20 @@ class MoneroMMGenFile:
b = d_wrap[k]
assert a == b, f'{k} mismatch: {a} != {b}'
def make_wrapped_json_data(self, in_data):
return json.dumps(self.make_wrapped_data(in_data), cls=json_encoder, indent=2)
def make_json_data(self, *, delete_metadata=True):
return json.dumps(
{self.data_label: self.make_outer_data(delete_metadata=delete_metadata)},
cls = json_encoder,
indent = 2)
def make_wrapped_data(self, in_data):
return {self.data_label: {
def make_outer_data(self, *, delete_metadata=True):
return {
'base_chksum': self.base_chksum,
'full_chksum': self.full_chksum,
'data': in_data,
'data': self.data._asdict() | ({'metadata': None} if delete_metadata else {})
} if self.full_chksum else {
'base_chksum': self.base_chksum,
'data': in_data}}
'data': self.data._asdict() | ({'metadata': None} if delete_metadata else {})}
def extract_data_from_file(self, cfg, fn):
data = json.loads(get_data_from_file(cfg, str(fn), desc=self.desc, silent=self.silent_load))

View file

@ -47,7 +47,7 @@ class MoneroWalletOutputsFile:
write_data_to_file(
cfg = self.cfg,
outfile = str(self.get_outfile(self.cfg, self.wallet_fn)) + add_suf,
data = self.make_wrapped_json_data(self.data._asdict()),
data = self.make_json_data(delete_metadata=False),
desc = self.desc,
ask_overwrite = False,
quiet = quiet,

View file

@ -152,10 +152,6 @@ class MoneroMMGenTX:
return (self.base_chksum + ('-' + self.full_chksum if self.full_chksum else '')).upper()
def write(self, *, delete_metadata=False, ask_write=True, ask_overwrite=True):
dict_data = self.data._asdict()
if delete_metadata:
dict_data['metadata'] = None
fn = '{a}-XMR[{b!s}]{c}.{d}'.format(
a = self.file_id,
b = self.data.amount,
@ -169,7 +165,7 @@ class MoneroMMGenTX:
write_data_to_file(
cfg = self.cfg,
outfile = str(fn),
data = self.make_wrapped_json_data(dict_data),
data = self.make_json_data(),
desc = self.desc,
ask_write = ask_write,
ask_write_default_yes = not ask_write,