Skip to main content

A wrapper around the scale-codec crate for fast scale-decoding of Bittensor data structures.

Project description

bt-decode

A python wrapper around the rust scale-codec crate for fast scale-decoding of Bittensor data structures.

Usage

DelegateInfo

get_delegates

import bittensor
from bt_decode import DelegateInfo

# Setup subtensor connection
subtensor = bittensor.subtensor()
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="DelegateInfoRuntimeApi",
    method="get_delegates",
    params=[ ]
)
# Decode scale-encoded DelegateInfo
delegates_info: List[DelegateInfo] = DelegateInfo.decode_vec(
    bytes.fromhex(
        hex_bytes_result
))

get_delegated

import bittensor
from bt_decode import DelegateInfo

validator_key = bittensor.Keypair(ss58_address="5E9fVY1jexCNVMjd2rdBsAxeamFGEMfzHcyTn2fHgdHeYc5p")

# Setup subtensor connection
subtensor = bittensor.subtensor()
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="DelegateInfoRuntimeApi",
    method="get_delegated",
    params=[list( validator_key.public_key )]
)
# Decode scale-encoded (DelegateInfo, take)
delegated_info: List[Tuple[DelegateInfo, int]] = DelegateInfo.decode_delegated(
    bytes.fromhex(
        hex_bytes_result
))

NeuronInfo

get_neuron

import bittensor
from bt_decode import NeuronInfo

# Setup subtensor connection
subtensor = bittensor.subtensor()
NETUID = 1
UID = 0
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="NeuronInfoRuntimeApi",
    method="get_neuron",
    params=[NETUID, UID]
)
# Decode scale-encoded NeuronInfo
neuron: NeuronInfo = NeuronInfo.decode(
    bytes.fromhex(
        hex_bytes_result
))

get_neurons

import bittensor
from bt_decode import NeuronInfo

# Setup subtensor connection
subtensor = bittensor.subtensor()
NETUID = 1
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="NeuronInfoRuntimeApi",
    method="get_neurons",
    params=[NETUID]
)
# Decode scale-encoded NeuronInfo
neurons: List[NeuronInfo] = NeuronInfo.decode(
    bytes.fromhex(
        hex_bytes_result
))

NeuronInfoLite

get_neuron

import bittensor
from bt_decode import NeuronInfoLite

# Setup subtensor connection
subtensor = bittensor.subtensor()
NETUID = 1
UID = 0
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="NeuronInfoRuntimeApi",
    method="get_neuron_lite",
    params=[NETUID, UID]
)
# Decode scale-encoded NeuronInfoLite
neuron_lite: NeuronInfoLite = NeuronInfoLite.decode(
    bytes.fromhex(
        hex_bytes_result
))

get_neurons_lite

import bittensor
from bt_decode import NeuronInfoLite

# Setup subtensor connection
subtensor = bittensor.subtensor()
NETUID = 1
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="NeuronInfoRuntimeApi",
    method="get_neurons_lite",
    params=[NETUID]
)
# Decode scale-encoded NeuronInfoLite
neurons_lite: List[NeuronInfoLite] = NeuronInfoLite.decode(
    bytes.fromhex(
        hex_bytes_result
))

StakeInfo

get_stake_info_for_coldkey

import bittensor
from bt_decode import StakeInfo

validator_key = bittensor.Keypair(ss58_address="5HBtpwxuGNL1gwzwomwR7sjwUt8WXYSuWcLYN6f9KpTZkP4k")

# Setup subtensor connection
subtensor = bittensor.subtensor()
encoded_coldkey = list( validator_key.public_key )
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="StakeInfoRuntimeApi",
    method="get_stake_info_for_coldkey",
    params=[encoded_coldkey]
)
# Decode scale-encoded StakeInfo
stake_info: List[StakeInfo] = StakeInfo.decode_vec(
    bytes.fromhex(
        hex_bytes_result
))

get_stake_info_for_coldkeys

import bittensor
from bt_decode import StakeInfo

validator_key_0 = bittensor.Keypair(ss58_address="5GcCZ2BPXBjgG88tXJCEtkbdg2hNrPbL4EFfbiVRvBZdSQDC")
validator_key_1 = bittensor.Keypair(ss58_address="5HBtpwxuGNL1gwzwomwR7sjwUt8WXYSuWcLYN6f9KpTZkP4k")

encoded_coldkeys = [
    list( validator_key_0.public_key ),
    list( validator_key_1.public_key )
]

# Setup subtensor connection
subtensor = bittensor.subtensor()
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="StakeInfoRuntimeApi",
    method="get_stake_info_for_coldkeys",
    params=[encoded_coldkeys]
)
# Decode scale-encoded (AccountId, StakeInfo)
stake_info: List[Tuple[bytes, List["StakeInfo"]]] = StakeInfo.decode_vec_tuple_vec(
    bytes.fromhex(
        hex_bytes_result
))

SubnetInfo

get_subnet_info

import bittensor
from bt_decode import SubnetInfo

# Setup subtensor connection
subtensor = bittensor.subtensor()
NETUID = 1
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="SubnetInfoRuntimeApi",
    method="get_subnet_info",
    params=[NETUID]
)
# Decode scale-encoded SubnetInfo
subnet_info: SubnetInfo = SubnetInfo.decode(
    bytes.fromhex(
        hex_bytes_result
))

get_subnets_info

import bittensor
from bt_decode import SubnetInfo

# Setup subtensor connection
subtensor = bittensor.subtensor()
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="SubnetInfoRuntimeApi",
    method="get_subnets_info",
    params=[ ]
)
# Decode scale-encoded Optional[SubnetInfo]
subnets_info: List[Optional[SubnetInfo]] = SubnetInfo.decode_vec(
    bytes.fromhex(
        hex_bytes_result
))

SubnetHyperparameters

get_subnet_info

import bittensor
from bt_decode import SubnetHyperparameters

# Setup subtensor connection
subtensor = bittensor.subtensor()
NETUID = 1
# Grab result from RuntimeAPI
hex_bytes_result = sub.query_runtime_api(
    runtime_api="SubnetInfoRuntimeApi",
    method="get_subnet_hyperparams",
    params=[NETUID]
)
# Decode scale-encoded SubnetHyperparameters
subnet_hyper_params: SubnetHyperparameters = SubnetHyperparameters.decode(
    bytes.fromhex(
        hex_bytes_result
))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bt_decode-0.2.0a0.tar.gz (3.5 MB view hashes)

Uploaded Source

Built Distributions

bt_decode-0.2.0a0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (666.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

bt_decode-0.2.0a0-pp310-pypy310_pp73-musllinux_1_2_i686.whl (691.1 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

bt_decode-0.2.0a0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (757.4 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

bt_decode-0.2.0a0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (686.7 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

bt_decode-0.2.0a0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (500.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

bt_decode-0.2.0a0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (587.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

bt_decode-0.2.0a0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (551.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

bt_decode-0.2.0a0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (501.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

bt_decode-0.2.0a0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (511.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

bt_decode-0.2.0a0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (536.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

bt_decode-0.2.0a0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (666.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

bt_decode-0.2.0a0-pp39-pypy39_pp73-musllinux_1_2_i686.whl (691.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

bt_decode-0.2.0a0-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (757.5 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

bt_decode-0.2.0a0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (686.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

bt_decode-0.2.0a0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (500.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

bt_decode-0.2.0a0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (588.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

bt_decode-0.2.0a0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (551.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

bt_decode-0.2.0a0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (502.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

bt_decode-0.2.0a0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (511.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

bt_decode-0.2.0a0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (537.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.5+ i686

bt_decode-0.2.0a0-cp312-none-win_amd64.whl (322.1 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

bt_decode-0.2.0a0-cp312-none-win32.whl (304.0 kB view hashes)

Uploaded CPython 3.12 Windows x86

bt_decode-0.2.0a0-cp312-cp312-musllinux_1_2_x86_64.whl (666.5 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

bt_decode-0.2.0a0-cp312-cp312-musllinux_1_2_i686.whl (691.6 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

bt_decode-0.2.0a0-cp312-cp312-musllinux_1_2_armv7l.whl (756.3 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

bt_decode-0.2.0a0-cp312-cp312-musllinux_1_2_aarch64.whl (686.5 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

bt_decode-0.2.0a0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (500.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

bt_decode-0.2.0a0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (587.8 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

bt_decode-0.2.0a0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (551.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

bt_decode-0.2.0a0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (502.5 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

bt_decode-0.2.0a0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (510.6 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

bt_decode-0.2.0a0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (537.3 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.5+ i686

bt_decode-0.2.0a0-cp312-cp312-macosx_11_0_arm64.whl (438.0 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

bt_decode-0.2.0a0-cp312-cp312-macosx_10_12_x86_64.whl (447.6 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

bt_decode-0.2.0a0-cp311-none-win_amd64.whl (323.0 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

bt_decode-0.2.0a0-cp311-none-win32.whl (304.3 kB view hashes)

Uploaded CPython 3.11 Windows x86

bt_decode-0.2.0a0-cp311-cp311-musllinux_1_2_x86_64.whl (666.3 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

bt_decode-0.2.0a0-cp311-cp311-musllinux_1_2_i686.whl (691.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

bt_decode-0.2.0a0-cp311-cp311-musllinux_1_2_armv7l.whl (756.9 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

bt_decode-0.2.0a0-cp311-cp311-musllinux_1_2_aarch64.whl (687.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

bt_decode-0.2.0a0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (499.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

bt_decode-0.2.0a0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (586.3 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

bt_decode-0.2.0a0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (551.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

bt_decode-0.2.0a0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (502.3 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

bt_decode-0.2.0a0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (510.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

bt_decode-0.2.0a0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (537.1 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.5+ i686

bt_decode-0.2.0a0-cp311-cp311-macosx_11_0_arm64.whl (439.3 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

bt_decode-0.2.0a0-cp311-cp311-macosx_10_12_x86_64.whl (448.1 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

bt_decode-0.2.0a0-cp310-none-win_amd64.whl (323.1 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

bt_decode-0.2.0a0-cp310-none-win32.whl (304.4 kB view hashes)

Uploaded CPython 3.10 Windows x86

bt_decode-0.2.0a0-cp310-cp310-musllinux_1_2_x86_64.whl (666.5 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

bt_decode-0.2.0a0-cp310-cp310-musllinux_1_2_i686.whl (691.7 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

bt_decode-0.2.0a0-cp310-cp310-musllinux_1_2_armv7l.whl (757.4 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARMv7l

bt_decode-0.2.0a0-cp310-cp310-musllinux_1_2_aarch64.whl (687.5 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

bt_decode-0.2.0a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (500.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

bt_decode-0.2.0a0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (588.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

bt_decode-0.2.0a0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (552.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

bt_decode-0.2.0a0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (502.4 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

bt_decode-0.2.0a0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (510.9 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

bt_decode-0.2.0a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (537.3 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.5+ i686

bt_decode-0.2.0a0-cp310-cp310-macosx_11_0_arm64.whl (439.6 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

bt_decode-0.2.0a0-cp39-none-win_amd64.whl (323.5 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

bt_decode-0.2.0a0-cp39-none-win32.whl (304.6 kB view hashes)

Uploaded CPython 3.9 Windows x86

bt_decode-0.2.0a0-cp39-cp39-musllinux_1_2_x86_64.whl (666.9 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

bt_decode-0.2.0a0-cp39-cp39-musllinux_1_2_i686.whl (692.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

bt_decode-0.2.0a0-cp39-cp39-musllinux_1_2_armv7l.whl (757.5 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARMv7l

bt_decode-0.2.0a0-cp39-cp39-musllinux_1_2_aarch64.whl (688.1 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

bt_decode-0.2.0a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (501.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

bt_decode-0.2.0a0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (588.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

bt_decode-0.2.0a0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (552.7 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

bt_decode-0.2.0a0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (502.7 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

bt_decode-0.2.0a0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (511.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

bt_decode-0.2.0a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (538.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.5+ i686

bt_decode-0.2.0a0-cp39-cp39-macosx_11_0_arm64.whl (440.5 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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