From b0813495145dbf0f0e019028fb9d454b187d6779 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 7 May 2023 17:11:53 +0000 Subject: [PATCH] minor fixes and cleanups --- mmgen/autosign.py | 13 +++++-------- mmgen/xmrwallet.py | 12 +++++++----- test/test_py_d/ts_autosign.py | 2 +- test/test_py_d/ts_xmr_autosign.py | 16 +++++++++------- test/test_py_d/ts_xmrwallet.py | 9 ++++++--- test/unit_tests_d/ut_rpc.py | 2 +- 6 files changed, 29 insertions(+), 25 deletions(-) diff --git a/mmgen/autosign.py b/mmgen/autosign.py index ddfabe11..384f8859 100755 --- a/mmgen/autosign.py +++ b/mmgen/autosign.py @@ -135,17 +135,13 @@ class Signable: def print_summary(self,signables): bmsg('\nAutosign summary:') - msg( - self.summary_indent - + f'\n{self.summary_indent}'.join(s.get_info() for s in signables) - + self.summary_footer ) + msg('\n'.join(s.get_info(indent=' ') for s in signables) + self.summary_footer) class xmr_transaction(xmr_signable): dir_name = 'xmr_tx_dir' desc = 'Monero transaction' subext = 'subtx' multiple_ok = False - summary_indent = '' summary_footer = '' async def sign(self,f): @@ -168,7 +164,6 @@ class Signable: sigext = 'sig' dir_name = 'xmr_outputs_dir' clean_all = True - summary_indent = ' ' summary_footer = '\n' async def sign(self,f): @@ -381,10 +376,12 @@ class Autosign: async def sign_all(self,target_name): target = getattr(Signable,target_name)(self) if target.unsigned: - if len(target.unsigned) > 1 and not target.multiple_ok: - die(f'AutosignTXError', 'Only one unsigned {target.desc} transaction allowed at a time!') good = [] bad = [] + if len(target.unsigned) > 1 and not target.multiple_ok: + ymsg(f'Autosign error: only one unsigned {target.desc} transaction allowed at a time!') + target.print_bad_list(target.unsigned) + return False for f in target.unsigned: ret = None try: diff --git a/mmgen/xmrwallet.py b/mmgen/xmrwallet.py index 93d6ffaa..cf60c951 100755 --- a/mmgen/xmrwallet.py +++ b/mmgen/xmrwallet.py @@ -501,9 +501,9 @@ class MoneroWalletOutputsFile: def get_info(self,indent=''): if self.data.signed_key_images is not None: data = self.data.signed_key_images or [] - return f'{self.wallet_fn.name}: {len(data)} signed key image{suf(data)}' + return f'{indent}{self.wallet_fn.name}: {len(data)} signed key image{suf(data)}' else: - return f'{self.wallet_fn.name}: no key images' + return f'{indent}{self.wallet_fn.name}: no key images' class New(Base): ext = 'raw' @@ -790,8 +790,6 @@ class MoneroWalletOps: continue raise - msg('') - self.create_addr_data() if not self.skip_wallet_check: @@ -1557,7 +1555,7 @@ class MoneroWalletOps: async def main(self): h = self.rpc(self,self.source) - h.open_wallet('Monero',refresh=True) + h.open_wallet('Monero') label = '{a} [{b}]'.format( a = self.label or f"xmrwallet new {'account' if self.account == None else 'address'}", b = make_timestr() ) @@ -1739,10 +1737,14 @@ class MoneroWalletOps: self.display_tx_relay_info(indent=' ') if keypress_confirm( self.cfg, f'{self.name.capitalize()} transaction?' ): + if self.cfg.tx_relay_daemon: + msg_r('Relaying transaction to remote daemon, please be patient...') res = self.c.call( 'submit_transfer', tx_data_hex = tx.data.signed_txset ) assert res['tx_hash_list'][0] == tx.data.txid, 'TxID mismatch in ‘submit_transfer’ result!' + if self.cfg.tx_relay_daemon: + msg('success') else: die(1,'Exiting at user request') diff --git a/test/test_py_d/ts_autosign.py b/test/test_py_d/ts_autosign.py index e053a902..8cacf917 100755 --- a/test/test_py_d/ts_autosign.py +++ b/test/test_py_d/ts_autosign.py @@ -161,7 +161,7 @@ class TestSuiteAutosignBase(TestSuiteBase): def stop_daemons(self): self.spawn('',msg_only=True) - stop_test_daemons(*[i for i in self.network_ids if i != 'btc']) + stop_test_daemons(*self.network_ids) return 'ok' def gen_key(self): diff --git a/test/test_py_d/ts_xmr_autosign.py b/test/test_py_d/ts_xmr_autosign.py index 02e33902..88d986ce 100755 --- a/test/test_py_d/ts_xmr_autosign.py +++ b/test/test_py_d/ts_xmr_autosign.py @@ -56,7 +56,7 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase): ('new_address_alice_label', 'adding an address to Alice’s tmp wallet (with label)'), ('dump_tmp_wallets', 'dumping Alice’s tmp wallets'), ('delete_tmp_wallets', 'deleting Alice’s tmp wallets'), - ('clean', 'cleaning signable file directories'), + ('autosign_clean', 'cleaning signable file directories'), ('autosign_setup', 'autosign setup with Alice’s seed'), ('create_watchonly_wallets', 'creating online (watch-only) wallets for Alice'), ('delete_tmp_dump_files', 'deleting Alice’s dump files'), @@ -124,7 +124,9 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase): cfg = self.cfg, proto = self.proto, addr_idxs = '1-2', - seed = Wallet(cfg,data.mmwords).seed ) + seed = Wallet(cfg,data.mmwords).seed, + skip_chksum_msg = True, + key_address_validity_check = False ) kal.file.write(ask_overwrite=False) fn = get_file_with_ext(data.udir,'akeys') m = MoneroWalletOps.create( @@ -277,19 +279,19 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase): t.written_to_file(dtype.capitalize()) return t - def _sync_chkbal(self,bal_chk_func): + def _sync_chkbal(self,wallet_arg,bal_chk_func): return self.sync_wallets( 'alice', op = 'sync', - wallets = '1', + wallets = wallet_arg, bal_chk_func = bal_chk_func ) def sync_chkbal1(self): - return self._sync_chkbal( lambda n,b,ub: b == ub and 1 < b < 1.12 ) + return self._sync_chkbal( '1', lambda n,b,ub: b == ub and 1 < b < 1.12 ) # 1.234567891234 - 0.124 = 1.110567891234 (minus fees) def sync_chkbal2(self): - return self._sync_chkbal( lambda n,b,ub: b == ub and 0.8 < b < 0.86 ) + return self._sync_chkbal( '1', lambda n,b,ub: b == ub and 0.8 < b < 0.86 ) # 1.234567891234 - 0.124 - 0.257 = 0.853567891234 (minus fees) sync_chkbal3 = sync_chkbal2 @@ -404,7 +406,7 @@ class TestSuiteXMRAutosign(TestSuiteXMRWallet,TestSuiteAutosignBase): str(Path(*d.parts[4:])) + ':', ' '.join(sorted(i.name for i in d.iterdir()))).strip() - def clean(self): + def autosign_clean(self): self.create_fake_tx_files() before = '\n'.join(self._gen_listing()) diff --git a/test/test_py_d/ts_xmrwallet.py b/test/test_py_d/ts_xmrwallet.py index 0e10c0a9..584758ae 100755 --- a/test/test_py_d/ts_xmrwallet.py +++ b/test/test_py_d/ts_xmrwallet.py @@ -417,15 +417,17 @@ class TestSuiteXMRWallet(TestSuiteBase): ok() return await self.mine_chk('miner',1,0,lambda x: x.ub > 20,'unlocked balance > 20') - async def fund_alice(self): + async def fund_alice(self,wallet=1): + self.spawn('', msg_only=True, extra_desc='(transferring funds from Miner wallet)') await self.transfer( 'miner', 1234567891234, - read_from_file(self.users['alice'].addrfile_fs.format(1)), + read_from_file(self.users['alice'].addrfile_fs.format(wallet)), ) + ok() bal = '1.234567891234' return await self.mine_chk( - 'alice',1,0, + 'alice',wallet,0, lambda x: str(x.ub) == bal,f'unlocked balance == {bal}', random_txs = self.dfl_random_txs ) @@ -644,6 +646,7 @@ class TestSuiteXMRWallet(TestSuiteBase): cfg = cfg, proto = self.proto, addrfile = data.kafile, + skip_chksum_msg = True, key_address_validity_check = False ) end_silence() self.users[user].wd.start(silent=not (cfg.exact_output or cfg.verbose)) diff --git a/test/unit_tests_d/ut_rpc.py b/test/unit_tests_d/ut_rpc.py index 59180b4e..48951828 100755 --- a/test/unit_tests_d/ut_rpc.py +++ b/test/unit_tests_d/ut_rpc.py @@ -191,7 +191,7 @@ class unit_tests: cfg = cfg, proto = proto, test_suite = True, - wallet_dir = 'test/trash2', + wallet_dir = os.path.join('test','trash2'), passwd = 'ut_rpc_passw0rd' ) ) for proto in (init_proto( cfg, 'xmr', network=network ) for network in networks) ]