diff --git a/async_substrate_interface/async_substrate.py b/async_substrate_interface/async_substrate.py index f0c4a92..d7df725 100644 --- a/async_substrate_interface/async_substrate.py +++ b/async_substrate_interface/async_substrate.py @@ -2395,6 +2395,9 @@ async def _make_rpc_request( ) -> RequestResults: request_manager = RequestManager(payloads) + if len(set(x["id"] for x in payloads)) != len(payloads): + raise ValueError("Payloads must have unique ids") + subscription_added = False async with self.ws as ws: @@ -3670,6 +3673,7 @@ async def query_map( self.decode_ss58, ) else: + # storage item and value scale type are not included here because this is batch-decoded in rust page_batches = [ result_keys[i : i + page_size] for i in range(0, len(result_keys), page_size) diff --git a/async_substrate_interface/sync_substrate.py b/async_substrate_interface/sync_substrate.py index 9d743c9..5349b31 100644 --- a/async_substrate_interface/sync_substrate.py +++ b/async_substrate_interface/sync_substrate.py @@ -1896,6 +1896,10 @@ def _make_rpc_request( ) -> RequestResults: request_manager = RequestManager(payloads) _received = {} + + if len(set(x["id"] for x in payloads)) != len(payloads): + raise ValueError("Payloads must have unique ids") + subscription_added = False ws = self.connect(init=False if attempt == 1 else True)