From ae0618ad01ab64d7ccb5a6f5555f86c41c924d2d Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 6 Oct 2021 13:22:34 +0000 Subject: [PATCH] rpc.py: get regtest credentials from CoinDaemon --- mmgen/daemon.py | 21 +++++++++++++++------ mmgen/opts.py | 5 ----- mmgen/rpc.py | 3 +++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/mmgen/daemon.py b/mmgen/daemon.py index 5f5ba59d..a887ab42 100755 --- a/mmgen/daemon.py +++ b/mmgen/daemon.py @@ -301,6 +301,8 @@ class CoinDaemon(Daemon): avail_opts = ('no_daemonize','online') testnet_dir = None test_suite_port_shift = 1237 + rpc_user = None + rpc_password = None coins = { 'BTC': _cd('Bitcoin', ['bitcoin_core']), @@ -505,14 +507,21 @@ class bitcoin_core_daemon(CoinDaemon): def init_subclass(self): - from .regtest import MMGenRegtest + if self.network == 'regtest': + """ + fall back on hard-coded credentials + """ + from .regtest import MMGenRegtest + self.rpc_user = MMGenRegtest.rpc_user + self.rpc_password = MMGenRegtest.rpc_password + self.shared_args = list_gen( - [f'--datadir={self.datadir}', self.nonstd_datadir or self.non_dfl_datadir], + [f'--datadir={self.datadir}', self.nonstd_datadir or self.non_dfl_datadir], [f'--rpcport={self.rpc_port}'], - [f'--rpcuser={MMGenRegtest.rpc_user}', self.network == 'regtest'], - [f'--rpcpassword={MMGenRegtest.rpc_password}', self.network == 'regtest'], - ['--testnet', self.network == 'testnet'], - ['--regtest', self.network == 'regtest'], + [f'--rpcuser={self.rpc_user}', self.network == 'regtest'], + [f'--rpcpassword={self.rpc_password}', self.network == 'regtest'], + ['--testnet', self.network == 'testnet'], + ['--regtest', self.network == 'regtest'], ) self.coind_args = list_gen( diff --git a/mmgen/opts.py b/mmgen/opts.py index 30041c3d..eefd7926 100755 --- a/mmgen/opts.py +++ b/mmgen/opts.py @@ -335,12 +335,7 @@ def init(opts_data=None,add_opts=None,init_opts=None,opt_filter=None,parse_only= if g.bob or g.alice or g.prog_name == 'mmgen-regtest': g.regtest = True - g.rpc_host = 'localhost' g.data_dir = os.path.join(g.data_dir_root,'regtest',g.coin.lower(),('alice','bob')[g.bob]) - from .regtest import MMGenRegtest - g.rpc_user = MMGenRegtest.rpc_user - g.rpc_password = MMGenRegtest.rpc_password - g.rpc_port = MMGenRegtest(g.coin).d.rpc_port from .protocol import init_genonly_altcoins altcoin_trust_level = init_genonly_altcoins( diff --git a/mmgen/rpc.py b/mmgen/rpc.py index b04b4e10..b8c51db8 100755 --- a/mmgen/rpc.py +++ b/mmgen/rpc.py @@ -289,6 +289,9 @@ class RPCClient(MMGenObject): else: user,passwd = self.get_daemon_cfg_options(('rpcuser','rpcpassword')).values() + if not (user and passwd): + user,passwd = (self.daemon.rpc_user,self.daemon.rpc_password) + if user and passwd: self.auth = auth_data(user,passwd) return