summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-polymath-scalecodec.spec494
-rw-r--r--sources1
3 files changed, 496 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..fa6450b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/polymath-scalecodec-4.0.0.tar.gz
diff --git a/python-polymath-scalecodec.spec b/python-polymath-scalecodec.spec
new file mode 100644
index 0000000..73e22ef
--- /dev/null
+++ b/python-polymath-scalecodec.spec
@@ -0,0 +1,494 @@
+%global _empty_manifest_terminate_build 0
+Name: python-polymath-scalecodec
+Version: 4.0.0
+Release: 1
+Summary: Python SCALE Codec Library for Polymesh
+License: Apache Software License
+URL: https://github.com/polymathnetwork/py-scale-codec
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/80/53/b9908c261fa0a7a51955e02e2347208c98df97fe77ae234caa026eea6c97/polymath-scalecodec-4.0.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-more-itertools
+Requires: python3-base58
+Requires: python3-requests
+Requires: python3-coverage
+Requires: python3-pytest
+
+%description
+#### This project is forked from https://github.com/polkascan/py-scale-codec
+
+# Python Polymath SCALE Codec
+
+[![Latest Version](https://img.shields.io/pypi/v/polymath-scalecodec.svg)](https://pypi.org/project/polymath-scalecodec)
+[![Supported Python versions](https://img.shields.io/pypi/pyversions/polymath-scalecodec.svg)](https://pypi.org/project/polymath-scalecodec/)
+
+Python Polymath 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
+
+```bash
+pip install polymath-scalecodec
+```
+
+## Examples
+
+Decode a SCALE-encoded Compact\<Balance\>
+
+```python
+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\>
+
+```python
+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\>
+
+```python
+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
+
+```python
+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
+
+```python
+RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
+RuntimeConfiguration().update_type_registry(load_type_registry_file("/path/to/type_registry.json"))
+```
+
+## Multiple runtime configurations
+By default a singleton is used to maintain the configuration, for multiple instances:
+
+```python
+# Kusama runtime config
+runtime_config_kusama = RuntimeConfigurationObject()
+runtime_config_kusama.update_type_registry(load_type_registry_preset("default"))
+runtime_config_kusama.update_type_registry(load_type_registry_preset("kusama"))
+
+
+# Polkadot runtime config
+runtime_config_polkadot = RuntimeConfigurationObject()
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("default"))
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("polkadot"))
+
+# Decode extrinsic using Kusama runtime configuration
+extrinsic = ScaleDecoder.get_decoder_class(
+ type_string='Extrinsic',
+ data=ScaleBytes(extrinsic_data),
+ metadata=metadata_decoder,
+ runtime_config=runtime_config_kusama
+)
+extrinsic.decode()
+
+```
+
+## Using the type registry updater in your application
+
+To ensure the type registries are in sync with the current runtime of the blockchain, you can use
+the updater function in your application:
+
+```python
+from scalecodec.updater import update_type_registries
+
+# Update type registries with latest version from Github
+try:
+ update_type_registries()
+except Exception:
+ pass
+```
+
+This will overwrite the type registry JSON files with the downloaded lastest versions from Github. In case of write
+permission restrictions it is also possible to always use the remote version on Github with the `use_remote_preset` kwarg:
+
+```python
+# Polkadot runtime config
+runtime_config_polkadot = RuntimeConfigurationObject()
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("default", use_remote_preset=True))
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("polkadot", use_remote_preset=True))
+```
+
+
+## License
+
+https://github.com/PolymathNetwork/py-scale-codec/blob/master/LICENSE
+
+
+
+
+%package -n python3-polymath-scalecodec
+Summary: Python SCALE Codec Library for Polymesh
+Provides: python-polymath-scalecodec
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-polymath-scalecodec
+#### This project is forked from https://github.com/polkascan/py-scale-codec
+
+# Python Polymath SCALE Codec
+
+[![Latest Version](https://img.shields.io/pypi/v/polymath-scalecodec.svg)](https://pypi.org/project/polymath-scalecodec)
+[![Supported Python versions](https://img.shields.io/pypi/pyversions/polymath-scalecodec.svg)](https://pypi.org/project/polymath-scalecodec/)
+
+Python Polymath 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
+
+```bash
+pip install polymath-scalecodec
+```
+
+## Examples
+
+Decode a SCALE-encoded Compact\<Balance\>
+
+```python
+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\>
+
+```python
+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\>
+
+```python
+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
+
+```python
+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
+
+```python
+RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
+RuntimeConfiguration().update_type_registry(load_type_registry_file("/path/to/type_registry.json"))
+```
+
+## Multiple runtime configurations
+By default a singleton is used to maintain the configuration, for multiple instances:
+
+```python
+# Kusama runtime config
+runtime_config_kusama = RuntimeConfigurationObject()
+runtime_config_kusama.update_type_registry(load_type_registry_preset("default"))
+runtime_config_kusama.update_type_registry(load_type_registry_preset("kusama"))
+
+
+# Polkadot runtime config
+runtime_config_polkadot = RuntimeConfigurationObject()
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("default"))
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("polkadot"))
+
+# Decode extrinsic using Kusama runtime configuration
+extrinsic = ScaleDecoder.get_decoder_class(
+ type_string='Extrinsic',
+ data=ScaleBytes(extrinsic_data),
+ metadata=metadata_decoder,
+ runtime_config=runtime_config_kusama
+)
+extrinsic.decode()
+
+```
+
+## Using the type registry updater in your application
+
+To ensure the type registries are in sync with the current runtime of the blockchain, you can use
+the updater function in your application:
+
+```python
+from scalecodec.updater import update_type_registries
+
+# Update type registries with latest version from Github
+try:
+ update_type_registries()
+except Exception:
+ pass
+```
+
+This will overwrite the type registry JSON files with the downloaded lastest versions from Github. In case of write
+permission restrictions it is also possible to always use the remote version on Github with the `use_remote_preset` kwarg:
+
+```python
+# Polkadot runtime config
+runtime_config_polkadot = RuntimeConfigurationObject()
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("default", use_remote_preset=True))
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("polkadot", use_remote_preset=True))
+```
+
+
+## License
+
+https://github.com/PolymathNetwork/py-scale-codec/blob/master/LICENSE
+
+
+
+
+%package help
+Summary: Development documents and examples for polymath-scalecodec
+Provides: python3-polymath-scalecodec-doc
+%description help
+#### This project is forked from https://github.com/polkascan/py-scale-codec
+
+# Python Polymath SCALE Codec
+
+[![Latest Version](https://img.shields.io/pypi/v/polymath-scalecodec.svg)](https://pypi.org/project/polymath-scalecodec)
+[![Supported Python versions](https://img.shields.io/pypi/pyversions/polymath-scalecodec.svg)](https://pypi.org/project/polymath-scalecodec/)
+
+Python Polymath 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
+
+```bash
+pip install polymath-scalecodec
+```
+
+## Examples
+
+Decode a SCALE-encoded Compact\<Balance\>
+
+```python
+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\>
+
+```python
+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\>
+
+```python
+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
+
+```python
+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
+
+```python
+RuntimeConfiguration().update_type_registry(load_type_registry_preset("default"))
+RuntimeConfiguration().update_type_registry(load_type_registry_file("/path/to/type_registry.json"))
+```
+
+## Multiple runtime configurations
+By default a singleton is used to maintain the configuration, for multiple instances:
+
+```python
+# Kusama runtime config
+runtime_config_kusama = RuntimeConfigurationObject()
+runtime_config_kusama.update_type_registry(load_type_registry_preset("default"))
+runtime_config_kusama.update_type_registry(load_type_registry_preset("kusama"))
+
+
+# Polkadot runtime config
+runtime_config_polkadot = RuntimeConfigurationObject()
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("default"))
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("polkadot"))
+
+# Decode extrinsic using Kusama runtime configuration
+extrinsic = ScaleDecoder.get_decoder_class(
+ type_string='Extrinsic',
+ data=ScaleBytes(extrinsic_data),
+ metadata=metadata_decoder,
+ runtime_config=runtime_config_kusama
+)
+extrinsic.decode()
+
+```
+
+## Using the type registry updater in your application
+
+To ensure the type registries are in sync with the current runtime of the blockchain, you can use
+the updater function in your application:
+
+```python
+from scalecodec.updater import update_type_registries
+
+# Update type registries with latest version from Github
+try:
+ update_type_registries()
+except Exception:
+ pass
+```
+
+This will overwrite the type registry JSON files with the downloaded lastest versions from Github. In case of write
+permission restrictions it is also possible to always use the remote version on Github with the `use_remote_preset` kwarg:
+
+```python
+# Polkadot runtime config
+runtime_config_polkadot = RuntimeConfigurationObject()
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("default", use_remote_preset=True))
+runtime_config_polkadot.update_type_registry(load_type_registry_preset("polkadot", use_remote_preset=True))
+```
+
+
+## License
+
+https://github.com/PolymathNetwork/py-scale-codec/blob/master/LICENSE
+
+
+
+
+%prep
+%autosetup -n polymath-scalecodec-4.0.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-polymath-scalecodec -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 4.0.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..cb22671
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+3effdbd18c5279efc2b8b7cc78a26771 polymath-scalecodec-4.0.0.tar.gz