Metadata-Version: 2.4
Name: py-sr25519-bindings
Version: 0.2.4
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
License-File: LICENSE
Summary: Python bindings for schnorrkel RUST crate
Home-Page: https://github.com/JAMdotTech/py-sr25519
Author: Polkascan Foundation
Author-email: info@polkascan.org
Maintainer-email: JAMdot Technologies <devops@jamdot.tech>
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: homepage, https://github.com/polkascan/py-sr25519-bindings
Project-URL: repository, https://github.com/polkascan/py-sr25519-bindings
# 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
## Documentation
https://docs.rs/py-sr25519-bindings
## Installation
### Install from PyPI
```
pip install py-sr25519-bindings
```
### Compile for local development
```
pip install -r requirements.txt
maturin develop
```
### Build wheels
```
pip install -r requirements.txt
# Build local OS wheel
maturin build
# Build manylinux1 wheel
docker build . --tag polkasource/maturin
docker run --rm -i -v $(pwd):/io polkasource/maturin build
```
## Usage
```python
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