From 00a8ff30ad54b91e215fa6e31bf0d3b46dae69ba Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 9 Nov 2023 14:32:27 +0000 Subject: [PATCH] update coin daemon support DAEMON VERSION - Bitcoin Core: 25.1.0 - Bitcoin Cash Node: 26.1.0 - Geth: 1.13.4 --- mmgen/data/version | 2 +- mmgen/proto/btc/daemon.py | 4 +- mmgen/proto/eth/daemon.py | 2 +- test/cmdtest_py_d/ct_ethdev.py | 93 +++++++++++++++++++++++----------- 4 files changed, 67 insertions(+), 34 deletions(-) diff --git a/mmgen/data/version b/mmgen/data/version index d8e7c79a..8fecd3de 100644 --- a/mmgen/data/version +++ b/mmgen/data/version @@ -1 +1 @@ -14.0.dev12 +14.0.dev13 diff --git a/mmgen/proto/btc/daemon.py b/mmgen/proto/btc/daemon.py index 6cc4d993..93c32559 100755 --- a/mmgen/proto/btc/daemon.py +++ b/mmgen/proto/btc/daemon.py @@ -19,7 +19,7 @@ from ...util import list_gen from ...daemon import CoinDaemon,_nw,_dd class bitcoin_core_daemon(CoinDaemon): - daemon_data = _dd('Bitcoin Core', 250000, '25.0.0') + daemon_data = _dd('Bitcoin Core', 250100, '25.1.0') exec_fn = 'bitcoind' cli_fn = 'bitcoin-cli' testnet_dir = 'testnet3' @@ -122,7 +122,7 @@ class bitcoin_core_daemon(CoinDaemon): return e.args[0] class bitcoin_cash_node_daemon(bitcoin_core_daemon): - daemon_data = _dd('Bitcoin Cash Node', 26000000, '26.0.0') + daemon_data = _dd('Bitcoin Cash Node', 26010000, '26.1.0') exec_fn = 'bitcoind-bchn' cli_fn = 'bitcoin-cli-bchn' rpc_ports = _nw(8432, 18432, 18543) # use non-standard ports (core+100) diff --git a/mmgen/proto/eth/daemon.py b/mmgen/proto/eth/daemon.py index 0b7a4099..d833e4fb 100755 --- a/mmgen/proto/eth/daemon.py +++ b/mmgen/proto/eth/daemon.py @@ -91,7 +91,7 @@ class parity_daemon(openethereum_daemon): exec_fn = 'parity' class geth_daemon(ethereum_daemon): - daemon_data = _dd('Geth', 1011006, '1.11.6') + daemon_data = _dd('Geth', 1013004, '1.13.4') version_pat = r'Geth/v(\d+)\.(\d+)\.(\d+)' exec_fn = 'geth' use_pidfile = False diff --git a/test/cmdtest_py_d/ct_ethdev.py b/test/cmdtest_py_d/ct_ethdev.py index a08da2d8..7645e3a3 100755 --- a/test/cmdtest_py_d/ct_ethdev.py +++ b/test/cmdtest_py_d/ct_ethdev.py @@ -73,16 +73,28 @@ amt2 = '888.111122223333444455' parity_devkey_fn = 'parity.devkey' -vbal1 = '1.2288409' -vbal9 = '1.22626295' -vbal2 = '99.997088755' -vbal3 = '1.23142525' -vbal4 = '127.0287909' -vbal5 = '1000126.14828654512345678' -vbal6 = '1000126.14933654512345678' -vbal7 = '1000124.91944564512345678' +def set_vbals(daemon_id): + global vbal1, vbal2, vbal3, vbal4, vbal5, vbal6, vbal7, vbal9 + if daemon_id == 'geth': + vbal1 = '1.2288347' + vbal2 = '99.996561415' + vbal3 = '1.23141825' + vbal4 = '127.0287847' + vbal5 = '1000126.14775300512345678' + vbal6 = '1000126.14880300512345678' + vbal7 = '1000124.91891830512345678' + vbal9 = '1.22625235' + else: + vbal1 = '1.2288409' + vbal2 = '99.997088755' + vbal3 = '1.23142525' + vbal4 = '127.0287909' + vbal5 = '1000126.14828654512345678' + vbal6 = '1000126.14933654512345678' + vbal7 = '1000124.91944564512345678' + vbal9 = '1.22626295' -bals = { +bals = lambda k: { '1': [ ('98831F3A:E:1','123.456')], '2': [ ('98831F3A:E:1','123.456'),('98831F3A:E:11','1.234')], '3': [ ('98831F3A:E:1','123.456'),('98831F3A:E:11','1.234'),('98831F3A:E:21','2.345')], @@ -114,9 +126,9 @@ bals = { ('98831F3A:E:12',vbal2), ('98831F3A:E:21','2.345'), (burn_addr + r'\s+non-MMGen',amt1)] -} +}[k] -token_bals = { +token_bals = lambda k: { '1': [ ('98831F3A:E:11','1000','1.234')], '2': [ ('98831F3A:E:11','998.76544',vbal3,'a1'), ('98831F3A:E:12','1.23456','0')], @@ -136,11 +148,12 @@ token_bals = { ('98831F3A:E:12','43.21',vbal2), ('98831F3A:E:13','1.23456','0'), (burn_addr + r'\s+non-MMGen',amt2,amt1)] -} -token_bals_getbalance = { +}[k] + +token_bals_getbalance = lambda k: { '1': (vbal4,'999999.12345689012345678'), '2': ('111.888877776666555545','888.111122223333444455') -} +}[k] coin = cfg.coin @@ -393,6 +406,8 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): from mmgen.daemon import CoinDaemon self.daemon = CoinDaemon( cfg, self.proto.coin+'_rt', test_suite=True ) + set_vbals(self.daemon.id) + self.using_solc = check_solc_ver() if not self.using_solc: omsg(yellow('Using precompiled contract data')) @@ -503,16 +518,32 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): 'byzantiumBlock': 0, 'constantinopleBlock': 0, 'petersburgBlock': 0, - 'clique': { - 'period': 0, - 'epoch': 30000 - } + 'istanbulBlock': 0, + 'muirGlacierBlock': 0, + 'berlinBlock': 0, + 'londonBlock': 0, + 'arrowGlacierBlock': 0, + 'grayGlacierBlock': 0, + 'shanghaiTime': 0, + 'terminalTotalDifficulty': 0, + 'terminalTotalDifficultyPassed': True, + 'isDev': True }, - 'difficulty': '1', - 'gasLimit': '8000000', - 'extradata': '0x' + 64*'0' + signer_addr + 130*'0', + 'nonce': '0x0', + 'timestamp': '0x0', + 'extraData': '0x', + 'gasLimit': '0xaf79e0', + 'difficulty': '0x0', + 'mixHash': '0x0000000000000000000000000000000000000000000000000000000000000000', + 'coinbase': '0x0000000000000000000000000000000000000000', + 'number': '0x0', + 'gasUsed': '0x0', + 'parentHash': '0x0000000000000000000000000000000000000000000000000000000000000000', + 'baseFeePerGas': '0x3b9aca00', + 'excessBlobGas': None, + 'blobGasUsed': None, 'alloc': { - prealloc_addr: { 'balance': str(prealloc_amt.toWei()) } + prealloc_addr: { 'balance': hex(prealloc_amt.toWei()) } } } @@ -853,7 +884,7 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): def bal(self,n): t = self.spawn('mmgen-tool', self.eth_args + ['twview','wide=1']) text = t.read(strip_color=True) - for b in bals[n]: + for b in bals(n): addr,amt,adj = b if len(b) == 3 else b + (False,) if adj and self.proto.coin == 'ETC': amt = str(Decimal(amt) + Decimal(adj[1]) * self.bal_corr) @@ -866,7 +897,7 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): def token_bal(self,n=None): t = self.spawn('mmgen-tool', self.eth_args + ['--token=mm1','twview','wide=1']) text = t.read(strip_color=True) - for b in token_bals[n]: + for b in token_bals(n): addr,_amt1,_amt2,adj = b if len(b) == 4 else b + (False,) if adj and self.proto.coin == 'ETC': _amt2 = str(Decimal(_amt2) + Decimal(adj[1]) * self.bal_corr) @@ -877,8 +908,8 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): return t def bal_getbalance(self,sid,idx,etc_adj=False,extra_args=[]): - bal1 = token_bals_getbalance[idx][0] - bal2 = token_bals_getbalance[idx][1] + bal1 = token_bals_getbalance(idx)[0] + bal2 = token_bals_getbalance(idx)[1] bal1 = Decimal(bal1) if etc_adj and self.proto.coin == 'ETC': bal1 += self.bal_corr @@ -1264,13 +1295,15 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): self._do_confirm_send(t,quiet=not cfg.debug,sure=False) return t - def txcreate_refresh_balances( - self, + def txcreate_refresh_balances(self): + return self._txcreate_refresh_balances( bals = ['2','3'], args = ['-B','--cached-balances','-i'], total = vbal5, adj_total = True, - total_coin = None): + total_coin = None) + + def _txcreate_refresh_balances(self,bals,args,total,adj_total,total_coin): if total_coin is None: total_coin = self.proto.coin @@ -1296,7 +1329,7 @@ class CmdTestEthdev(CmdTestBase,CmdTestShared): add_args = ['--token=mm1','98831F3A:E:12,43.21'] ) def token_txcreate_refresh_balances(self): - return self.txcreate_refresh_balances( + return self._txcreate_refresh_balances( bals = ['1','2'], args = ['--token=mm1','-B','--cached-balances','-i'], total = '1000',