Skip to main content

Python SCALE Codec Library

Project description

Python SCALE Codec

Travis CI Build Status Latest Version Supported Python versions License

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 details)

Uploaded Source

Built Distribution

scalecodec-0.10.22-py3-none-any.whl (49.7 kB view details)

Uploaded Python 3

File details

Details for the file scalecodec-0.10.22.tar.gz.

File metadata

  • Download URL: scalecodec-0.10.22.tar.gz
  • Upload date:
  • Size: 84.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for scalecodec-0.10.22.tar.gz
Algorithm Hash digest
SHA256 f11966b5be45c75f38afe010f9e90d1589a1ae4cc61c561a1e2ebc2eea3c2e30
MD5 5a5556c978535e183a024ee04c12ae7d
BLAKE2b-256 c96b11ec6b63be43cf62196d0a09e4bf3d8321a02f9b6fb1d12b88573d8f15d0

See more details on using hashes here.

File details

Details for the file scalecodec-0.10.22-py3-none-any.whl.

File metadata

  • Download URL: scalecodec-0.10.22-py3-none-any.whl
  • Upload date:
  • Size: 49.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for scalecodec-0.10.22-py3-none-any.whl
Algorithm Hash digest
SHA256 7010209f43da7112e4cfa59a93d8eece580d9f85785a2273b2c465a46db9a7d7
MD5 cab3d7281c4ee5d8bba1a5f4459f6a2a
BLAKE2b-256 35277d2926f9c0f26cee0a226abedb4e85b7799db324b12e4bcb7f636ce52ec2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page