From 35b8414c28ab1ccfca0206566dc0a20b13dca817 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Fri, 16 Apr 2021 11:44:28 +0000 Subject: [PATCH] mmgen-tool: Monero wallet ops API change - keyaddrlist2monerowallets -> xmrwallet create - syncmonerowallets -> xmrwallet sync --- mmgen/tool.py | 36 +++++++++++++++++++++++------------- test/test-release.sh | 12 ++++++------ test/tooltest.py | 2 +- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/mmgen/tool.py b/mmgen/tool.py index ad8865df..39012dd8 100755 --- a/mmgen/tool.py +++ b/mmgen/tool.py @@ -1006,7 +1006,7 @@ class MMGenToolCmdRPC(MMGenToolCmds): class MMGenToolCmdMonero(MMGenToolCmds): """ - Monero wallet utilities + Monero wallet operations Note that the use of these commands requires private data to be exposed on a network-connected machine in order to unlock the Monero wallets. This is @@ -1034,19 +1034,29 @@ class MMGenToolCmdMonero(MMGenToolCmds): return self._monero_chain_height - def keyaddrlist2monerowallets( self, - xmr_keyaddrfile:str, - blockheight:'(default: current height)' = 0, - addrs:'(integer range or list)' = ''): - "create Monero wallets from a key-address list" - return self.monero_wallet_ops( infile = xmr_keyaddrfile, - op = 'create', - blockheight = blockheight, - addrs = addrs) + def xmrwallet( + self, + op:str, + xmr_keyaddrfile:str, + blockheight:'(default: current height)' = 0, + addrs:'(integer range or list)' = '', + ): + """ + perform various Monero wallet operations for addresses in XMR key-address file + Supported operations: + create - create wallet for all or specified addresses in key-address file + sync - sync wallet for all or specified addresses in key-address file + """ - def syncmonerowallets(self,xmr_keyaddrfile:str,addrs:'(integer range or list)'=''): - "sync Monero wallets from a key-address list" - return self.monero_wallet_ops(infile=xmr_keyaddrfile,op='sync',addrs=addrs) + if op == 'sync' and blockheight != 0: + die(1,'sync operation does not support blockheight arg') + + return self.monero_wallet_ops( + infile = xmr_keyaddrfile, + op = op, + blockheight = blockheight, + addrs = addrs + ) def monero_wallet_ops(self,infile:str,op:str,blockheight=0,addrs='',monerod_args=[]): diff --git a/test/test-release.sh b/test/test-release.sh index 2baa18ce..9d589411 100755 --- a/test/test-release.sh +++ b/test/test-release.sh @@ -359,13 +359,13 @@ t_xmr=" cs2=\$(cmds/mmgen-tool -q --accept-defaults --coin=xmr keyaddrfile_chksum $TMPDIR/*-XMR*.akeys) [ \"\$cs1\" == \"\$cs2\" ] test/start-coin-daemons.py xmr - $mmgen_tool_xmr keyaddrlist2monerowallets $TMPDIR/*-XMR*.akeys addrs=23 - $mmgen_tool_xmr keyaddrlist2monerowallets $TMPDIR/*-XMR*.akeys addrs=103-200 + $mmgen_tool_xmr xmrwallet create $TMPDIR/*-XMR*.akeys addrs=23 + $mmgen_tool_xmr xmrwallet create $TMPDIR/*-XMR*.akeys addrs=103-200 rm $TMPDIR/*-MoneroWallet* - $mmgen_tool_xmr keyaddrlist2monerowallets $TMPDIR/*-XMR*.akeys - $mmgen_tool_xmr syncmonerowallets $TMPDIR/*-XMR*.akeys addrs=3 - $mmgen_tool_xmr syncmonerowallets $TMPDIR/*-XMR*.akeys addrs=23-29 - $mmgen_tool_xmr syncmonerowallets $TMPDIR/*-XMR*.akeys + $mmgen_tool_xmr xmrwallet create $TMPDIR/*-XMR*.akeys + $mmgen_tool_xmr xmrwallet sync $TMPDIR/*-XMR*.akeys addrs=3 + $mmgen_tool_xmr xmrwallet sync $TMPDIR/*-XMR*.akeys addrs=23-29 + $mmgen_tool_xmr xmrwallet sync $TMPDIR/*-XMR*.akeys test/stop-coin-daemons.py -W xmr " f_xmr='Monero tests completed' diff --git a/test/tooltest.py b/test/tooltest.py index 32e46351..8b7a4117 100755 --- a/test/tooltest.py +++ b/test/tooltest.py @@ -159,7 +159,7 @@ if opt.list_names: 'addrfile_chksum','keyaddrfile_chksum','passwdfile_chksum', 'add_label','remove_label','remove_address','twview', 'getbalance','listaddresses','listaddress'), - 'test-release.sh': ('keyaddrlist2monerowallets','syncmonerowallets'), + 'test-release.sh': ('xmrwallet',), 'tooltest2.py': run(tcmd,stdout=PIPE,check=True).stdout.decode().split() } for v in cmd_data.values():