py-sr25519-bindings

Crates.iopy-sr25519-bindings
lib.rspy-sr25519-bindings
version0.1.2
sourcesrc
created_at2020-08-27 12:45:51.728118
updated_at2020-08-27 12:45:51.728118
descriptionPython bindings for sr25519 library
homepagehttps://github.com/polkascan/py-sr25519-bindings
repositoryhttps://github.com/polkascan/py-sr25519-bindings
max_upload_size
id281417
size42,537
Arjan Zijderveld (arjanz)

documentation

README

py-sr25519-bindings

Python bindings for sr25519 library: https://github.com/w3f/schnorrkel

Reference to https://github.com/LocalCoinSwap/kusama-reference-implementation/tree/improve-trading-tests/bindings and https://gitlab.com/kauriid/schnorrpy/ for the initial work

Installation

Install from PyPI

pip install py-sr25519-bindings

Compile for local development

pip install -r requirements.txt
maturin develop

Build wheelhouses

pip install -r requirements.txt

# Build local OS wheelhouse
maturin build

# Build manylinux1 wheelhouse
docker build . --tag polkasource/maturin
docker run --rm -i -v $(pwd):/io polkasource/maturin build

Usage

import bip39
import sr25519

message = b"test"

# Get private and public key from seed
seed = bip39.bip39_to_mini_secret('daughter song common combine misery cotton audit morning stuff weasel flee field','')

public_key, private_key = sr25519.pair_from_seed(bytes(seed))

# Generate signature
signature = sr25519.sign(
    (public_key, private_key),
    message
)

print('Signature', signature.hex())

# Verify message with signature
if sr25519.verify(signature, message, public_key):
    print('Verified')

License

https://github.com/polkascan/py-sr25519-bindings/blob/master/LICENSE

Commit count: 29

cargo fmt