From 8de120b66748b502b776ae074099cc0cb8f98a2f Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 5 Aug 2021 14:11:45 +0000 Subject: [PATCH] minor fixes and cleanups --- mmgen/daemon.py | 20 +++++++++----------- mmgen/rpc.py | 15 +++++---------- test/test.py | 3 ++- test/test_py_d/ts_ethdev.py | 2 +- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/mmgen/daemon.py b/mmgen/daemon.py index b54b3799..ced36317 100755 --- a/mmgen/daemon.py +++ b/mmgen/daemon.py @@ -335,7 +335,9 @@ class CoinDaemon(Daemon): avail_flags = ('keep_cfg_file',) avail_opts = ('no_daemonize','online') datadir_is_subdir = False + testnet_dir = None data_subdir = '' + test_suite_port_shift = 1237 coins = { 'BTC': _cd('Bitcoin', ['bitcoin_core']), @@ -466,12 +468,12 @@ class CoinDaemon(Daemon): self.coind_name, getattr(self.proto.network_names,self.network), 'test suite ' if test_suite else '' ) - self.subclass_init() + self.subclass_init() self.lock() def init_rpc_port(self,test_suite,port_shift): - self.port_shift = (1237 if test_suite else 0) + (port_shift or 0) + self.port_shift = (self.test_suite_port_shift if test_suite else 0) + (port_shift or 0) self.rpc_port = getattr(self.rpc_ports,self.network) + self.port_shift if g.rpc_port: # user-set global overrides everything else @@ -627,10 +629,9 @@ class openethereum_daemon(CoinDaemon): 'linux': [g.home_dir,'.local','share','io.parity.ethereum'], 'win': [os.getenv('LOCALAPPDATA'),'Parity','Ethereum'] } - testnet_dir = None def subclass_init(self): - base_path = os.path.join(self.datadir,'chains',getattr(self.chain_subdirs,self.network)) + base_path = os.path.join(self.datadir,self.id,getattr(self.chain_subdirs,self.network)) shutil.rmtree(base_path,ignore_errors=True) ps = self.port_shift + getattr(self.ports_shift,self.network) @@ -663,7 +664,6 @@ class erigon_daemon(CoinDaemon): daemon_data = _dd('Erigon', 2021007005, '2021.07.5') version_pat = r'erigon/(\d+)\.(\d+)\.(\d+)' exec_fn = 'erigon' - cfg_file = 'erigon.conf' private_ports = _nw(9090,9091,9092) # testnet and regtest are non-standard ports_shift = _nw(200,210,220) rpc_ports = _nw(*[8545 + n for n in ports_shift]) # non-standard @@ -673,17 +673,15 @@ class erigon_daemon(CoinDaemon): 'linux': [g.home_dir,'.local','share','erigon'], 'win': [os.getenv('LOCALAPPDATA'),'Erigon'] # FIXME } - datadir_is_subdir = True - testnet_dir = 'erigon_testnet' def subclass_init(self): self.private_port = getattr(self.private_ports,self.network) - if self.network == 'regtest': - self.datadir = None + self.datadir = os.path.join(self.datadir,self.id,getattr(self.proto.network_names,self.network)) self.coind_args = list_gen( ['--verbosity=0'], + ['--maxpeers=0', not 'online' in self.opts], [f'--private.api.addr=127.0.0.1:{self.private_port}'], - [f'--datadir={self.datadir}', self.network!='regtest'], + [f'--datadir={self.datadir}'], ['--chain=dev', self.network=='regtest'], ['--chain=goerli', self.network=='testnet'], ['--miner.etherbase=00a329c0648769a73afac7f9381e08fb43dbea72', self.network=='regtest'], @@ -732,7 +730,7 @@ class erigon_rpcdaemon(RPCDaemon): ['--verbosity=0'], [f'--private.api.addr=127.0.0.1:{private_port}'], [f'--datadir={self.datadir}', self.network != 'regtest'], - ['--http.api=eth,erigon,web3,net,txpool'], + ['--http.api=eth,web3,txpool'], [f'--http.port={self.rpc_port}'], ) diff --git a/mmgen/rpc.py b/mmgen/rpc.py index 92c9b34e..cbada6b5 100755 --- a/mmgen/rpc.py +++ b/mmgen/rpc.py @@ -727,21 +727,16 @@ def handle_unsupported_daemon_version(rpc,proto,ignore_daemon_version,unsupporte ymsg(f'WARNING: ignoring unsupported {rpc.daemon.coind_name} daemon version at user request') unsupported_daemon_warning_shown.append(type(proto)) else: - rdie(1,fmt( - """ - The running {} daemon has version {}. - This version of MMGen is tested only on {} v{} and below. + name = rpc.daemon.coind_name + rdie(1,'\n'+fmt(f""" + The running {name} daemon has version {rpc.daemon_version_str}. + This version of MMGen is tested only on {name} v{rpc.daemon.coind_version_str} and below. To avoid this error, downgrade your daemon to a supported version. Alternatively, you may invoke the command with the --ignore-daemon-version option, in which case you proceed at your own risk. - """.format( - rpc.daemon.coind_name, - rpc.daemon_version_str, - rpc.daemon.coind_name, - rpc.daemon.coind_version_str, - ),indent=' ').rstrip()) + """,indent=' ')) async def rpc_init(proto,backend=None,daemon=None,ignore_daemon_version=False): diff --git a/test/test.py b/test/test.py index 7b963a22..3eaccc18 100755 --- a/test/test.py +++ b/test/test.py @@ -167,7 +167,7 @@ def add_cmdline_opts(): # add_cmdline_opts() -opts.UserOpts._reset_ok += ('skip_deps',) +opts.UserOpts._reset_ok += ('skip_deps','no_daemon_autostart') # step 2: opts.init will create new data_dir in ./test (if not 'resume' or 'skip_deps'): usr_args = opts.init(opts_data) @@ -194,6 +194,7 @@ if opt.exact_output: if opt.resume or opt.resume_after: opt.skip_deps = True + opt.no_daemon_autostart = True resume = opt.resume or opt.resume_after else: resume = False diff --git a/test/test_py_d/ts_ethdev.py b/test/test_py_d/ts_ethdev.py index a0eb101d..67519645 100755 --- a/test/test_py_d/ts_ethdev.py +++ b/test/test_py_d/ts_ethdev.py @@ -28,6 +28,7 @@ from mmgen.globalvars import g from mmgen.opts import opt from mmgen.util import die from mmgen.exception import * +from mmgen.obj import ETHAmt from ..include.common import * from .common import * @@ -689,7 +690,6 @@ class TestSuiteEthdev(TestSuiteBase,TestSuiteShared): imsg_r( '\n' + await tk.info() ) imsg('dev token balance (pre-send): {}'.format(await tk.get_balance(dfl_addr))) imsg('Sending {} {} to address {} ({})'.format(amt,self.proto.dcoin,usr_addrs[i],usr_mmaddrs[i])) - from mmgen.obj import ETHAmt txid = await tk.transfer( dfl_addr, usr_addrs[i],