extended Monero MMGenID: use / as initial separator

This commit is contained in:
The MMGen Project 2026-10-05 14:30:05 +00:00
commit 00407d0b5b
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
4 changed files with 14 additions and 14 deletions

View file

@ -141,11 +141,11 @@ class MMGenID(HiliteStr, InitErrors, MMGenObject):
mmtype = proto.dfl_mmtype
case _:
raise ValueError('not 2 or 3 colon-separated items')
if '-' in idx: # extended Monero ID
if '/' in idx: # extended Monero ID
assert proto.coin == 'XMR', 'extended MMGen IDs supported for XMR only'
assert id_str.count(':') == 2, 'mmtype letter required for extended MMGen IDs'
me = str.__new__(cls, id_str)
idx, ext = idx.split('-', 1)
idx, ext = idx.split('/', 1)
me.acct_idx, me.addr_idx = [MoneroIdx(e) for e in ext.split('/', 1)]
me.acct_id = f'{sid}:{mmtype}:{idx}:{me.acct_idx}'
else:

View file

@ -90,7 +90,7 @@ class MoneroTwView:
if bal or self.include_empty:
self.total += bal
self.unlocked_total += unlocked_bal
mmid = '{}:M:{}-{}/{}'.format(
mmid = '{}:M:{}/{}/{}'.format(
wdata['seed_id'],
wdata['wallet_num'],
acct_idx,

View file

@ -171,7 +171,7 @@ tests = {
{'id_str': 'x:L:3', 'proto': proto},
{'id_str': 'F00BAA12', 'proto': proto},
{'id_str': 'F00BAA12:Z:99', 'proto': proto},
{'id_str': 'F00BAA12:B:1-0/0', 'proto': proto},
{'id_str': 'F00BAA12:B:1/0/0', 'proto': proto},
),
'good': (
{'id_str': 'F00BAA12:99', 'proto': proto, 'ret': 'F00BAA12:L:99'},

View file

@ -23,19 +23,19 @@ tests = {
{'id_str': 'F00BAA12:C:99', 'proto': proto},
{'id_str': 'F00BAA12:M', 'proto': proto},
{'id_str': 'F00BAA12:M:', 'proto': proto},
{'id_str': 'F00BAA12:M:99-FOO', 'proto': proto},
{'id_str': 'F00BAA12:M:99-1', 'proto': proto},
{'id_str': 'F00BAA12:M:99-x/y', 'proto': proto},
{'id_str': 'F00BAA12:M:99-1/y', 'proto': proto},
{'id_str': 'F00BAA12:M:0-1/1', 'proto': proto},
{'id_str': 'F00BAA12:M:1-0/-1', 'proto': proto},
{'id_str': 'F00BAA12:1-0/0', 'proto': proto},
{'id_str': 'F00BAA12:M:1-111111/3', 'proto': proto},
{'id_str': 'F00BAA12:M:99/FOO', 'proto': proto},
{'id_str': 'F00BAA12:M:99/1', 'proto': proto},
{'id_str': 'F00BAA12:M:99/x/y', 'proto': proto},
{'id_str': 'F00BAA12:M:99/1/y', 'proto': proto},
{'id_str': 'F00BAA12:M:0/1/1', 'proto': proto},
{'id_str': 'F00BAA12:M:1/0/-1', 'proto': proto},
{'id_str': 'F00BAA12:1/0/0', 'proto': proto},
{'id_str': 'F00BAA12:M:1/111111/3', 'proto': proto},
),
'good': (
{'id_str': 'F00BAA12:M:1', 'proto': proto},
{'id_str': 'F00BAA12:M:1-0/0', 'proto': proto},
{'id_str': 'F00BAA12:M:9999999-99999/99999', 'proto': proto},
{'id_str': 'F00BAA12:M:1/0/0', 'proto': proto},
{'id_str': 'F00BAA12:M:9999999/99999/99999', 'proto': proto},
),
},
}