From be3823e2e0e2cf005f0a6806558407c5388ac773 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Mon, 26 Jul 2021 18:28:45 +0000 Subject: [PATCH] Support OpenEthereum v3.3.0 --- mmgen/daemon.py | 4 ++-- mmgen/rpc.py | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/mmgen/daemon.py b/mmgen/daemon.py index 1d7aef99..25cb6916 100755 --- a/mmgen/daemon.py +++ b/mmgen/daemon.py @@ -388,7 +388,7 @@ class CoinDaemon(Daemon): 'openethereum', 'Ethereum', 'Ethereum', - 'OpenEthereum', 3000001, '3.0.1', + 'OpenEthereum', 3003000, '3.3.0', 'openethereum', 'openethereum', 'parity.conf', @@ -398,7 +398,7 @@ class CoinDaemon(Daemon): 'openethereum', 'Ethereum Classic', 'Ethereum', - 'OpenEthereum', 3000001, '3.0.1', + 'OpenEthereum', 3003000, '3.3.0', 'openethereum', 'openethereum', 'parity.conf', diff --git a/mmgen/rpc.py b/mmgen/rpc.py index 3c7d92ef..1c477667 100755 --- a/mmgen/rpc.py +++ b/mmgen/rpc.py @@ -601,18 +601,16 @@ class EthereumRPCClient(RPCClient,metaclass=aInitMeta): self.blockcount = int(await self.call('eth_blockNumber'),16) vi,bh,ch,nk = await self.gathered_call(None, ( - ('parity_versionInfo',()), + ('web3_clientVersion',()), ('parity_getBlockHeaderByNumber',()), ('parity_chain',()), ('parity_nodeKind',()), )) - self.daemon_version = int(( - lambda v: '{:d}{:03d}{:03d}'.format(v['major'],v['minor'],v['patch']) - )(vi['version'])) - self.daemon_version_str = ( - lambda v: '{}.{}.{}'.format(v['major'],v['minor'],v['patch']) - )(vi['version']) + import re + vip = re.match(r'OpenEthereum//v(\d+)\.(\d+)\.(\d+)',vi,re.ASCII) + self.daemon_version = int('{:d}{:03d}{:03d}'.format(*[int(e) for e in vip.groups()])) + self.daemon_version_str = '{}.{}.{}'.format(*vip.groups()) self.cur_date = int(bh['timestamp'],16) self.chain = ch.replace(' ','_') self.caps = ('full_node',) if nk['capability'] == 'full' else ()