From 5587f9f25c368e520856437d8164faffa7fcd01c Mon Sep 17 00:00:00 2001 From: MMGen Date: Mon, 20 May 2019 15:16:31 +0000 Subject: [PATCH] regtest: support generatetoaddress RPC call --- mmgen/regtest.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/mmgen/regtest.py b/mmgen/regtest.py index b2c24d5b..c668b116 100755 --- a/mmgen/regtest.py +++ b/mmgen/regtest.py @@ -298,13 +298,34 @@ def stop(silent=False,ignore_noconnect_error=True): return p.wait() def generate(blocks=1,silent=False): + + def have_generatetoaddress(): + p = start_cmd('cli','help','generatetoaddress') + out,err = process_output(p,silent=True) + return not 'unknown command' in out + + def get_miner_address(): + p = start_cmd('cli','getnewaddress') + out,err = process_output(p,silent=True) + if not err: + return out.strip() + else: + rdie(1,'Error getting new address:\n{}'.format(err)) + if test_daemon() == 'stopped': die(1,'Regtest daemon is not running') + wait_for_daemon('ready',silent=True) - p = start_cmd('cli','generate',str(blocks)) - out = process_output(p,silent=silent)[0] + + if have_generatetoaddress(): + p = start_cmd('cli','generatetoaddress',str(blocks),get_miner_address()) + else: + p = start_cmd('cli','generate',str(blocks)) + + out,err = process_output(p,silent=silent) + from ast import literal_eval - if len(literal_eval(out)) != blocks: + if not out or len(literal_eval(out)) != blocks: rdie(1,'Error generating blocks') p.wait() gmsg('Mined {} block{}'.format(blocks,suf(blocks,'s')))