From 1a35af9983b8b33adcd34df2566f6d9f6e408c11 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 4 May 2023 18:36:14 +0000 Subject: [PATCH] MoneroWalletDaemon: new `test_monerod` param --- mmgen/proto/xmr/daemon.py | 10 +++++++++- mmgen/xmrwallet.py | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mmgen/proto/xmr/daemon.py b/mmgen/proto/xmr/daemon.py index c7476643..0494f759 100755 --- a/mmgen/proto/xmr/daemon.py +++ b/mmgen/proto/xmr/daemon.py @@ -101,7 +101,8 @@ class MoneroWalletDaemon(RPCDaemon): proxy = None, port_shift = None, datadir = None, - trust_monerod = False ): + trust_monerod = False, + test_monerod = False ): self.proto = proto self.test_suite = test_suite @@ -129,6 +130,13 @@ class MoneroWalletDaemon(RPCDaemon): test_suite = test_suite).rpc_port ) + if test_monerod and self.monerod_port: + import socket + try: + socket.create_connection(('localhost',self.monerod_port),timeout=1).close() + except: + die( 'SocketError', f'Unable to connect to Monero daemon at localhost:{self.monerod_port}' ) + self.user = user or self.cfg.wallet_rpc_user or self.cfg.monero_wallet_rpc_user self.passwd = passwd or self.cfg.wallet_rpc_password or self.cfg.monero_wallet_rpc_password diff --git a/mmgen/xmrwallet.py b/mmgen/xmrwallet.py index 77f3c9ab..dfa73e0e 100755 --- a/mmgen/xmrwallet.py +++ b/mmgen/xmrwallet.py @@ -732,6 +732,7 @@ class MoneroWalletOps: start_daemon = True offline = False skip_wallet_check = False # for debugging + test_monerod = False def __init__(self,cfg,uarg_tuple): @@ -798,6 +799,7 @@ class MoneroWalletOps: test_suite = self.cfg.test_suite, monerod_addr = relay_opt[1] if relay_opt else (self.cfg.daemon or None), trust_monerod = self.trust_monerod, + test_monerod = self.test_monerod, ) u = self.wd.usr_daemon_args = [] @@ -1266,6 +1268,7 @@ class MoneroWalletOps: class sync(wallet): opts = ('rescan_blockchain',) + test_monerod = True def __init__(self,cfg,uarg_tuple): @@ -1430,6 +1433,7 @@ class MoneroWalletOps: spec_id = 'sweep_spec' spec_key = ( (1,'source'), (3,'dest') ) opts = ('no_relay','tx_relay_daemon','watch_only') + test_monerod = True def check_uopts(self): if self.cfg.tx_relay_daemon and (self.cfg.no_relay or self.cfg.autosign): @@ -1655,6 +1659,7 @@ class MoneroWalletOps: class submit(wallet): action = 'submitting transaction with' opts = ('tx_relay_daemon',) + test_monerod = True def check_uopts(self): if self.cfg.daemon: