Python SCALE Codec Library
Project description
Python SCALE Codec
Python SCALE Codec Library
Description
Most of the data that the Substrate RPCs output is encoded with the SCALE Codec. This codec is used by the Substrate nodes' internal runtime. In order to get to meaningful data this data will need to be decoded. The Python SCALE Codec Library will specialize in this task.
Documentation
https://polkascan.github.io/py-scale-codec/
Installation
pip install scalecodec
Examples
Decode a SCALE-encoded Compact<Balance>
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
RuntimeConfiguration().update_type_registry(load_type_registry_preset("kusama"))
obj = ScaleDecoder.get_decoder_class('Compact<Balance>', ScaleBytes("0x130080cd103d71bc22"))
obj.decode()
print(obj.value)
Encode to Compact<Balance>
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
obj = ScaleDecoder.get_decoder_class('Compact<Balance>')
scale_data = obj.encode(2503000000000000000)
print(scale_data)
Encode to Vec<Bytes>
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
value = ['test', 'vec']
obj = ScaleDecoder.get_decoder_class('Vec<Bytes>')
scale_data = obj.encode(value)
print(scale_data)
Add custom types to type registry
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
custom_types = {
"types": {
"MyCustomType": "u32",
"CustomNextAuthority": {
"type": "struct",
"type_mapping": [
["AuthorityId", "AuthorityId"],
["weight", "AuthorityWeight"]
]
}
}
}
RuntimeConfiguration().update_type_registry(custom_types)
Or from a custom JSON file
RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
RuntimeConfiguration().update_type_registry(load_type_registry_file("/path/to/type_registry.json"))
License
https://github.com/polkascan/py-scale-codec/blob/master/LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
scalecodec-0.10.22.tar.gz
(84.9 kB
view hashes)
Built Distribution
Close
Hashes for scalecodec-0.10.22-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7010209f43da7112e4cfa59a93d8eece580d9f85785a2273b2c465a46db9a7d7 |
|
MD5 | cab3d7281c4ee5d8bba1a5f4459f6a2a |
|
BLAKE2b-256 | 35277d2926f9c0f26cee0a226abedb4e85b7799db324b12e4bcb7f636ce52ec2 |