diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9d7c43a87d21e10c0061a0dbbf2bf474a9e77f49..6bddc6de0171d9d0c648095a6876cfd15822acfa 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 dfcd13f11bb580426de987ebd2ab17397c70ce1f..1f1ab9ac44ead6cf680b7813553ea805f83fa526 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 e904406eadb7b9a4722265e3b9689862bc64809b..96d69cd069201967db23cb87056addbcf1b716ab 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 dfcd13f11bb580426de987ebd2ab17397c70ce1f..1f1ab9ac44ead6cf680b7813553ea805f83fa526 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 dfcd13f11bb580426de987ebd2ab17397c70ce1f..1f1ab9ac44ead6cf680b7813553ea805f83fa526 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 dfcd13f11bb580426de987ebd2ab17397c70ce1f..1f1ab9ac44ead6cf680b7813553ea805f83fa526 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 d19c2eb2d09d76fad26e0fda7047d51811566d90..44b0a21af248f411eb9ac9a5ab2e130a6218db8b 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']