From 108e2e2557bc6d5f09a19b9e8795e8b55110a961 Mon Sep 17 00:00:00 2001 From: Holger Nahrstaedt <holgernahrstaedt@gmx.de> Date: Sat, 26 Jun 2021 22:18:43 +0200 Subject: [PATCH] More robust HIVE_CHAIN_ID detection --- CHANGELOG.rst | 4 ++++ beem/version.py | 2 +- beemapi/graphenerpc.py | 28 ++++++++++++++++++++++++---- beemapi/version.py | 2 +- beembase/version.py | 2 +- beemgraphenebase/version.py | 2 +- setup.py | 2 +- 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9d7c43a..6bddc6d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,9 @@ Changelog ======== +0.24.25 +------- +* More robust HIVE_CHAIN_ID detection + 0.24.24 ------- * Prioritize HIVE_CHAIN_ID property for the chain selection (@emre) diff --git a/beem/version.py b/beem/version.py index dfcd13f..1f1ab9a 100644 --- a/beem/version.py +++ b/beem/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.24.24' +version = '0.24.25' diff --git a/beemapi/graphenerpc.py b/beemapi/graphenerpc.py index e904406..96d69cd 100644 --- a/beemapi/graphenerpc.py +++ b/beemapi/graphenerpc.py @@ -304,15 +304,35 @@ class GrapheneRPC(object): prefix = None symbols = [] chain_assets = [] - if 'HIVE_CHAIN_ID' in props and 'STEEM_CHAIN_ID' in props: + + prefix_count = {} + for key in props: + if key.split("_")[0] in prefix_count: + prefix_count[key.split("_")[0]] += 1 + else: + prefix_count[key.split("_")[0]] = 1 + if len(prefix_count) > 0: + sorted_prefix_count = sorted(prefix_count.items(), key=lambda x: x[1], reverse=True) + if sorted_prefix_count[0][1] > 1: + blockchain_name = sorted_prefix_count[0][0] + if blockchain_name is None and 'HIVE_CHAIN_ID' in props and 'STEEM_CHAIN_ID' in props: del props['STEEM_CHAIN_ID'] + + for key in props: - if key[-8:] == "CHAIN_ID": + + if key[-8:] == "CHAIN_ID" and blockchain_name is None: chain_id = props[key] blockchain_name = key.split("_")[0] - elif key[-13:] == "CHAIN_VERSION": + elif key[-8:] == "CHAIN_ID" and key.split("_")[0] == blockchain_name: + chain_id = props[key] + elif key[-13:] == "CHAIN_VERSION" and blockchain_name is None: network_version = props[key] - elif key[-14:] == "ADDRESS_PREFIX": + elif key[-13:] == "CHAIN_VERSION" and key.split("_")[0] == blockchain_name: + network_version = props[key] + elif key[-14:] == "ADDRESS_PREFIX" and blockchain_name is None: + prefix = props[key] + elif key[-14:] == "ADDRESS_PREFIX" and key.split("_")[0] == blockchain_name: prefix = props[key] elif key[-6:] == "SYMBOL": value = {} diff --git a/beemapi/version.py b/beemapi/version.py index dfcd13f..1f1ab9a 100644 --- a/beemapi/version.py +++ b/beemapi/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.24.24' +version = '0.24.25' diff --git a/beembase/version.py b/beembase/version.py index dfcd13f..1f1ab9a 100644 --- a/beembase/version.py +++ b/beembase/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.24.24' +version = '0.24.25' diff --git a/beemgraphenebase/version.py b/beemgraphenebase/version.py index dfcd13f..1f1ab9a 100644 --- a/beemgraphenebase/version.py +++ b/beemgraphenebase/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.24.24' +version = '0.24.25' diff --git a/setup.py b/setup.py index d19c2eb..44b0a21 100755 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ except LookupError: ascii = codecs.lookup('ascii') codecs.register(lambda name, enc=ascii: {True: enc}.get(name == 'mbcs')) -VERSION = '0.24.24' +VERSION = '0.24.25' tests_require = ['mock >= 2.0.0', 'pytest', 'pytest-mock', 'parameterized'] -- GitLab