From b465c3c45435a73713b80f2b88173cf2e685bc04 Mon Sep 17 00:00:00 2001 From: Brian of London <brian@podping.org> Date: Thu, 6 Oct 2022 08:50:27 +0300 Subject: [PATCH] More robust HIVE_CHAIN_ID detection Taken from this commit: 108e2e2557bc6d5f09a19b9e8795e8b55110a961 By Holger --- beemapi/graphenerpc.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/beemapi/graphenerpc.py b/beemapi/graphenerpc.py index e904406..322ff6c 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 = {} -- GitLab