rpc.py: get regtest credentials from CoinDaemon

This commit is contained in:
The MMGen Project 2021-10-06 13:22:34 +00:00
commit ae0618ad01
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 18 additions and 11 deletions

View file

@ -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(

View file

@ -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(

View file

@ -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