Skip to content

Commit a0d566e

Browse files
committed
Consolidate code.
1 parent 39d8014 commit a0d566e

File tree

3 files changed

+16
-18
lines changed

3 files changed

+16
-18
lines changed

async_substrate_interface/async_substrate.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -807,15 +807,7 @@ async def load_registry(self):
807807
metadata_option_bytes
808808
)
809809
self.registry = PortableRegistry.from_metadata_v15(self.metadata_v15)
810-
registry_type_map = {}
811-
for i in json.loads(self.registry.registry)["types"]:
812-
for variants in (
813-
i.get("type").get("def", {}).get("variant", {}).get("variants", [{}])
814-
):
815-
for field in variants.get("fields", [{}]):
816-
if field.get("type") and field.get("typeName"):
817-
registry_type_map[field["typeName"]] = field["type"]
818-
self.registry_type_map = registry_type_map
810+
self._load_registry_type_map()
819811

820812
async def _load_registry_at_block(self, block_hash: str) -> MetadataV15:
821813
# Should be called for any block that fails decoding.

async_substrate_interface/sync_substrate.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -611,15 +611,7 @@ def load_registry(self):
611611
metadata_option_bytes
612612
)
613613
self.registry = PortableRegistry.from_metadata_v15(self.metadata_v15)
614-
registry_type_map = {}
615-
for i in json.loads(self.registry.registry)["types"]:
616-
for variants in (
617-
i.get("type").get("def", {}).get("variant", {}).get("variants", [{}])
618-
):
619-
for field in variants.get("fields", [{}]):
620-
if field.get("type") and field.get("typeName"):
621-
registry_type_map[field["typeName"]] = field["type"]
622-
self.registry_type_map = registry_type_map
614+
self._load_registry_type_map()
623615

624616
def _load_registry_at_block(self, block_hash: str) -> MetadataV15:
625617
# Should be called for any block that fails decoding.

async_substrate_interface/types.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
from scalecodec.type_registry import load_type_registry_preset
1414
from scalecodec.types import GenericCall, ScaleType
1515

16+
from .utils import json
17+
1618

1719
class RuntimeCache:
1820
blocks: dict[int, "Runtime"]
@@ -346,6 +348,7 @@ class SubstrateMixin(ABC):
346348
ss58_format: Optional[int]
347349
ws_max_size = 2**32
348350
registry_type_map: dict[str, int]
351+
metadata_v15 = None
349352

350353
@property
351354
def chain(self):
@@ -601,6 +604,17 @@ def serialize_module_error(module, error, spec_version) -> dict:
601604
"spec_version": spec_version,
602605
}
603606

607+
def _load_registry_type_map(self):
608+
registry_type_map = {}
609+
for i in json.loads(self.registry.registry)["types"]:
610+
for variants in (
611+
i.get("type").get("def", {}).get("variant", {}).get("variants", [{}])
612+
):
613+
for field in variants.get("fields", [{}]):
614+
if field.get("type") and field.get("typeName"):
615+
registry_type_map[field["typeName"]] = field["type"]
616+
self.registry_type_map = registry_type_map
617+
604618
def reload_type_registry(
605619
self, use_remote_preset: bool = True, auto_discover: bool = True
606620
):

0 commit comments

Comments
 (0)