This project has been archived by its maintainers, and is no longer receiving any updates.
cosmospy
Version 6.0.0
Tools for Cosmos wallet management and offline transaction signing
Table of Contents generated with mdformat-toc
Installing
Installing from PyPI repository (https://pypi.org/project/cosmospy):
pip install cosmospy
Usage
Generating a wallet
from cosmospy import generate_wallet
wallet = generate_wallet()
The value assigned to wallet will be a dictionary just like:
{
"seed": "arch skill acquire abuse frown reject front second album pizza hill slogan guess random wonder benefit industry custom green ill moral daring glow elevator",
"derivation_path": "m/44'/118'/0'/0/0",
"private_key": b"\xbb\xec^\xf6\xdcg\xe6\xb5\x89\xed\x8cG\x05\x03\xdf0:\xc9\x8b \x85\x8a\x14\x12\xd7\xa6a\x01\xcd\xf8\x88\x93",
"public_key": b"\x03h\x1d\xae\xa7\x9eO\x8e\xc5\xff\xa3sAw\xe6\xdd\xc9\xb8b\x06\x0eo\xc5a%z\xe3\xff\x1e\xd2\x8e5\xe7",
"address": "cosmos1uuhna3psjqfxnw4msrfzsr0g08yuyfxeht0qfh",
}
Converter functions
Mnemonic seed to private key
from cosmospy import BIP32DerivationError, seed_to_privkey
seed = (
"teach there dream chase fatigue abandon lava super senior artefact close upgrade"
)
try:
privkey = seed_to_privkey(seed, path="m/44'/118'/0'/0/0")
except BIP32DerivationError:
print("No valid private key in this derivation path!")
Private key to public key
from cosmospy import privkey_to_pubkey
privkey = bytes.fromhex(
"6dcd05d7ac71e09d3cf7da666709ebd59362486ff9e99db0e8bc663570515afa"
)
pubkey = privkey_to_pubkey(privkey)
Public key to address
from cosmospy import pubkey_to_address
pubkey = bytes.fromhex(
"03e8005aad74da5a053602f86e3151d4f3214937863a11299c960c28d3609c4775"
)
addr = pubkey_to_address(pubkey)
Private key to address
from cosmospy import privkey_to_address
privkey = bytes.fromhex(
"6dcd05d7ac71e09d3cf7da666709ebd59362486ff9e99db0e8bc663570515afa"
)
addr = privkey_to_address(privkey)
Signing transactions
from cosmospy import Transaction
tx = Transaction(
privkey=bytes.fromhex(
"26d167d549a4b2b66f766b0d3f2bdbe1cd92708818c338ff453abde316a2bd59"
),
account_num=11335,
sequence=0,
fee=1000,
gas=70000,
memo="",
chain_id="cosmoshub-3",
sync_mode="sync",
)
tx.add_transfer(
recipient="cosmos103l758ps7403sd9c0y8j6hrfw4xyl70j4mmwkf", amount=387000
)
tx.add_transfer(recipient="cosmos1lzumfk6xvwf9k9rk72mqtztv867xyem393um48", amount=123)
pushable_tx = tx.get_pushable()
One or more token transfers can be added to a transaction by calling the add_transfer method.
When the transaction is fully prepared, calling get_pushable will return a signed transaction in the form of a JSON string.
This can be used as request body when calling the POST /txs endpoint of the Cosmos REST API.
Metadata
Release files for cosmospy 6.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cosmospy-6.0.0.tar.gz | 7.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cosmospy-6.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.7 kB
Release files / cosmospy-6.0.0.tar.gz
| Download URL | cosmospy-6.0.0.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2b1afce7414eaca527aff4e2aa113e7752101ac7849ef16707269a67e4e7478
|
|
BLAKE2b-256 checksum How to use checksums |
a6e1e46e2afc36da365d671de88c68ed637da1c2aa3c38dde848ce72c408ae40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.5 CPython/3.8.8 Linux/5.4.0-1043-azure
|
Release files / cosmospy-6.0.0-py3-none-any.whl
| Download URL | cosmospy-6.0.0-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4d521adc8849e695a27b53499ce11f4ed8588748dc2455c563a6801184bade58
|
|
BLAKE2b-256 checksum How to use checksums |
061250e85e6ac13dc03085f6cc1037904ca2cb8c33ac67169c336360f5e21ba5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.5 CPython/3.8.8 Linux/5.4.0-1043-azure
|