From baa344487295cbf4e43b2b44eb105540e7224f6b Mon Sep 17 00:00:00 2001 From: Benjamin Himes Date: Fri, 18 Jul 2025 17:47:39 +0200 Subject: [PATCH 1/2] Use scalecodec rather than bt-decode for query_multi --- async_substrate_interface/async_substrate.py | 10 +++------- async_substrate_interface/sync_substrate.py | 8 +++----- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index 7b0072f..1ff6f01 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -2574,16 +2574,12 @@ async def query_multi( for change_storage_key, change_data in result_group["changes"]: # Decode result for specified storage_key storage_key = storage_key_map[change_storage_key] - if change_data is None: - change_data = b"" - else: - change_data = bytes.fromhex(change_data[2:]) + if change_data is not None: + change_data = ScaleBytes(change_data) result.append( ( storage_key, - await self.decode_scale( - storage_key.value_scale_type, change_data, runtime=runtime - ), + storage_key.decode_scale_value(change_data), ), ) diff --git a/async_substrate_interface/sync_substrate.py b/async_substrate_interface/sync_substrate.py index b7c4c15..2e30ea0 100644 --- a/async_substrate_interface/sync_substrate.py +++ b/async_substrate_interface/sync_substrate.py @@ -2163,14 +2163,12 @@ def query_multi( for change_storage_key, change_data in result_group["changes"]: # Decode result for specified storage_key storage_key = storage_key_map[change_storage_key] - if change_data is None: - change_data = b"\x00" - else: - change_data = bytes.fromhex(change_data[2:]) + if change_data is not None: + change_data = ScaleBytes(change_data) result.append( ( storage_key, - self.decode_scale(storage_key.value_scale_type, change_data), + storage_key.decode_scale_value(change_data), ), ) From c016de8ef38d5899052eb836b43d9e4c6c439b05 Mon Sep 17 00:00:00 2001 From: Benjamin Himes Date: Fri, 18 Jul 2025 18:06:00 +0200 Subject: [PATCH 2/2] Type compatibility --- async_substrate_interface/async_substrate.py | 2 +- async_substrate_interface/sync_substrate.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index 1ff6f01..b0ca9b0 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -2579,7 +2579,7 @@ async def query_multi( result.append( ( storage_key, - storage_key.decode_scale_value(change_data), + storage_key.decode_scale_value(change_data).value, ), ) diff --git a/async_substrate_interface/sync_substrate.py b/async_substrate_interface/sync_substrate.py index 2e30ea0..7e9ba44 100644 --- a/async_substrate_interface/sync_substrate.py +++ b/async_substrate_interface/sync_substrate.py @@ -2168,7 +2168,7 @@ def query_multi( result.append( ( storage_key, - storage_key.decode_scale_value(change_data), + storage_key.decode_scale_value(change_data).value, ), )