Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_parse_subtype(self):
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
obj = ScaleDecoder.get_decoder_class('(BalanceOf, Vec<(AccountId, Data)>)')
self.assertEqual(obj.type_mapping[0][1].lower(), "BalanceOf".lower())
self.assertEqual(obj.type_mapping[1][1].lower(), "Vec<(AccountId, Data)>".lower())
obj = ScaleDecoder.get_decoder_class('Vec>')
self.assertEqual(obj.sub_type, "UncleEntryItem".lower())
def test_enum_type_mapping_encode_decode(self):
RuntimeConfiguration().update_type_registry(load_type_registry_preset("test"))
value = {"AuthoritiesChange": ["0x586cb27c291c813ce74e86a60dad270609abf2fc8bee107e44a80ac00225c409"]}
obj = ScaleDecoder.get_decoder_class('DigestItem')
data = obj.encode(value)
obj_check = ScaleDecoder.get_decoder_class('DigestItem', data)
self.assertEqual(obj_check.decode(), value)
def test_set_encode_decode(self):
RuntimeConfiguration().update_type_registry(load_type_registry_preset("test"))
value = ['Display', 'Legal', 'Email', 'Twitter']
obj = ScaleDecoder.get_decoder_class('IdentityFields')
scale_data = obj.encode(value)
obj = ScaleDecoder.get_decoder_class('IdentityFields', scale_data)
obj.decode()
self.assertEqual(obj.value, value)
def setUpClass(cls):
RuntimeConfiguration().clear_type_registry()
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
RuntimeConfiguration().update_type_registry(load_type_registry_preset("kusama"))
RuntimeConfiguration().set_active_spec_version_id(1045)
cls.metadata_decoder = MetadataDecoder(ScaleBytes(metadata_1045_hex))
cls.metadata_decoder.decode()
def setUpClass(cls):
RuntimeConfiguration().clear_type_registry()
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
def test_type_registry_overloading(self):
# Type BlockNumber defined as U32 in type registry 'kusama'
RuntimeConfiguration().update_type_registry(load_type_registry_preset("kusama"))
obj = ScaleDecoder.get_decoder_class('BlockNumber', ScaleBytes("0x0000000000000001"))
self.assertRaises(RemainingScaleBytesNotEmptyException, obj.decode)
# Type BlockNumber changed to U64 in type registry 'test'
RuntimeConfiguration().update_type_registry(load_type_registry_preset("test"))
obj = ScaleDecoder.get_decoder_class('BlockNumber', ScaleBytes("0x0000000000000001"))
obj.decode()
self.assertEqual(obj.value, 72057594037927936)
def test_type_registry(self):
# Example type SpecificTestType only define in type registry 'default'
self.assertRaises(NotImplementedError, ScaleDecoder.get_decoder_class, 'SpecificTestType', ScaleBytes("0x01000000"))
RuntimeConfiguration().update_type_registry(load_type_registry_preset("test"))
obj = ScaleDecoder.get_decoder_class('SpecificTestType', ScaleBytes("0x06000000"))
obj.decode()
self.assertEqual(obj.value, 6)
def setUpClass(cls):
RuntimeConfiguration().clear_type_registry()
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
def test_dynamic_set(self):
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
obj = ScaleDecoder.get_decoder_class('WithdrawReasons', ScaleBytes("0x0100000000000000"))
obj.decode()
self.assertEqual(obj.value, ["TransactionPayment"])
obj = ScaleDecoder.get_decoder_class('WithdrawReasons', ScaleBytes("0x0300000000000000"))
obj.decode()
self.assertEqual(obj.value, ["TransactionPayment", "Transfer"])
obj = ScaleDecoder.get_decoder_class('WithdrawReasons', ScaleBytes("0x1600000000000000"))
obj.decode()
self.assertEqual(obj.value, ["Transfer", "Reserve", "Tip"])
def setUpClass(cls):
RuntimeConfiguration().clear_type_registry()
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
RuntimeConfiguration().update_type_registry(load_type_registry_preset("kusama"))
RuntimeConfiguration().set_active_spec_version_id(1045)
cls.metadata_decoder = MetadataDecoder(ScaleBytes(metadata_v10_hex))
cls.metadata_decoder.decode()