From 60a201e1125cee4e24dd7c7344bd9c013fa5fea2 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 26 Mar 2023 12:48:44 +0000 Subject: [PATCH] xmrwallet, proto.xmr.daemon: minor changes --- mmgen/proto/xmr/daemon.py | 4 ++-- mmgen/util.py | 3 +++ mmgen/xmrwallet.py | 14 +++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mmgen/proto/xmr/daemon.py b/mmgen/proto/xmr/daemon.py index 2877726f..496a9c4c 100755 --- a/mmgen/proto/xmr/daemon.py +++ b/mmgen/proto/xmr/daemon.py @@ -16,7 +16,7 @@ import os from ...globalvars import g from ...opts import opt -from ...util import list_gen,die +from ...util import list_gen,die,contains_any from ...daemon import CoinDaemon,RPCDaemon,_nw,_dd class monero_daemon(CoinDaemon): @@ -74,7 +74,7 @@ class monero_daemon(CoinDaemon): def stop_cmd(self): if self.platform == 'win': return ['kill','-Wf',self.pid] - elif '--restricted-rpc' in self.start_cmd or '--public-node' in self.start_cmd: + elif contains_any( self.start_cmd, ['--restricted-rpc','--public-node'] ): return ['kill',self.pid] else: return [self.exec_fn] + self.shared_args + ['exit'] diff --git a/mmgen/util.py b/mmgen/util.py index f761c427..2a854811 100755 --- a/mmgen/util.py +++ b/mmgen/util.py @@ -189,6 +189,9 @@ def remove_dups(iterable,edesc='element',desc='list',quiet=False,hide=False): ret.append(e) return ret if type(iterable).__name__ == 'generator' else type(iterable)(ret) +def contains_any(target_list,source_list): + return any(map(target_list.count,source_list)) + def suf(arg,suf_type='s',verb='none'): suf_types = { 'none': { diff --git a/mmgen/xmrwallet.py b/mmgen/xmrwallet.py index a9a0257d..a872eef5 100755 --- a/mmgen/xmrwallet.py +++ b/mmgen/xmrwallet.py @@ -775,11 +775,19 @@ class MoneroWalletOps: self.addr_data = list(gen()) self.account = None if m[2] is None else int(m[2]) + def strip_quotes(s): + if s and s[0] in ("'",'"'): + if s[-1] != s[0] or len(s) < 2: + die(1,f'{s!r}: unbalanced quotes in label string!') + return s[1:-1] + else: + return s # None or empty string + if self.name == 'transfer': self.dest_addr = CoinAddr(self.proto,m[3]) self.amount = self.proto.coin_amt(m[4]) elif self.name == 'new': - self.label = m[3] + self.label = strip_quotes(m[3]) class sweep(spec): name = 'sweep' @@ -883,8 +891,7 @@ class MoneroWalletOps: h.open_wallet(w_desc,refresh=False) msg_r(f'\n Relaying {self.name} transaction...') h.relay_tx(new_tx.data.metadata) - - gmsg('\n\nAll done') + gmsg('\nAll done') else: die(1,'\nExiting at user request') @@ -950,6 +957,7 @@ class MoneroWalletOps: port = int(port), user = None, passwd = None, + test_connection = False, # relay is presumably a public node, so avoid extra connections proxy = proxy ) self.tx = MoneroMMGenTX.Signed(uarg.infile)