@@ -95,12 +95,74 @@ def __init__(self, config: ApiConfig, secrets, db_sync: Session):
9595 self .partner_chain_rpc = PartnerChainRpc (config .nodes_config .node .rpc_url )
9696 self .partner_chain_epoch_calculator = PartnerChainEpochCalculator (config )
9797
98- try :
99- with open ("src/runtime_api.json" ) as file :
100- self .custom_type_registry = json .load (file )
101- except Exception as e :
102- logger .warning (f"Failed to load custom type registry, using default: { e } " )
103- self .custom_type_registry = {}
98+ # Use Polkadot SDK compatible type registry for jolteon runtime
99+ # This registry includes types required for compatibility with Polkadot SDK runtimes
100+ # Key additions: MultiAddress, WeightV2, CheckMetadataHash support
101+ # Required substrate-interface>=1.7.11 for full Polkadot SDK compatibility
102+ self .custom_type_registry = {
103+ "Address" : "MultiAddress" ,
104+ "LookupSource" : "MultiAddress" ,
105+ "Weight" : "WeightV2" ,
106+ "MultiAddress" : {
107+ "type" : "enum" ,
108+ "type_mapping" : [
109+ ["Id" , "AccountId" ],
110+ ["Index" , "u32" ],
111+ ["Raw" , "Bytes" ],
112+ ["Address32" , "H256" ],
113+ ["Address20" , "H160" ]
114+ ]
115+ },
116+ "WeightV2" : {
117+ "type" : "struct" ,
118+ "type_mapping" : [
119+ ["ref_time" , "Compact<u64>" ],
120+ ["proof_size" , "Compact<u64>" ]
121+ ]
122+ },
123+ "ChargeTransactionPayment" : "u64" ,
124+ "Balance" : "u128" ,
125+ "Index" : "u32" ,
126+ "AccountId" : "AccountId32" ,
127+ "AccountId32" : "[u8; 32]" ,
128+ "AccountIndex" : "u32" ,
129+ "Call" : "GenericCall" ,
130+ "CallHash" : "H256" ,
131+ "Era" : {
132+ "type" : "enum" ,
133+ "type_mapping" : [
134+ ["Immortal" , "Null" ],
135+ ["Mortal1" , "u8" ],
136+ ["Mortal2" , "u8" ],
137+ ["Mortal3" , "u8" ],
138+ ["Mortal4" , "u8" ],
139+ ["Mortal5" , "u8" ],
140+ ["Mortal6" , "u8" ],
141+ ["Mortal7" , "u8" ],
142+ ["Mortal8" , "u8" ],
143+ ["Mortal9" , "u8" ],
144+ ["Mortal10" , "u8" ],
145+ ["Mortal11" , "u8" ],
146+ ["Mortal12" , "u8" ],
147+ ["Mortal13" , "u8" ],
148+ ["Mortal14" , "u8" ],
149+ ["Mortal15" , "u8" ]
150+ ]
151+ },
152+ "ExtrinsicSignature" : "MultiSignature" ,
153+ "MultiSignature" : {
154+ "type" : "enum" ,
155+ "type_mapping" : [
156+ ["Ed25519" , "Ed25519Signature" ],
157+ ["Sr25519" , "Sr25519Signature" ],
158+ ["Ecdsa" , "EcdsaSignature" ]
159+ ]
160+ },
161+ "Ed25519Signature" : "[u8; 64]" ,
162+ "Sr25519Signature" : "[u8; 64]" ,
163+ "EcdsaSignature" : "[u8; 65]" ,
164+ "Signature" : "MultiSignature"
165+ }
104166
105167 @property
106168 def substrate (self ):
0 commit comments