This release is a pre-release and may not be stable for production use.
skale.py
Python client library used in SKALE network components.
- Python 3.11+ support
- Compatibility with
web3.pyv7
Installation
pip install skale.py
Usage
Supported wallets
- Ledger Wallet (works with Ledger Nano S and other models)
- RPC Wallet (works with SKALE Transactions Manager)
- SGX Wallet (works with SKALE SGX Wallet)
- Web3 Wallet (works with
web3.pyproviders and private keys in memory)
Library initialization
With Web3Wallet (private key in memory):
from skale import SkaleManager
from skale.wallets import Web3Wallet
from skale.utils.web3_utils import init_web3
web3 = init_web3(ENDPOINT)
wallet = Web3Wallet(private_key, web3)
skale = Skale(ENDPOINT, ABI_FILEPATH, wallet)
With external transactions manager:
from skale import SkaleManager
from skale.wallets import RPCWallet
web3 = init_web3(ENDPOINT)
wallet = RPCWallet(TM_URL)
skale = Skale(ENDPOINT, ABI_FILEPATH, wallet)
Interactions with SKALE contracts
active_nodes = skale.nodes.active_node_ips()
schains = skale.schains.schains_for_owner('0x...')
Working in multiple threads
Due to the web3.py v5 limitations you have to create separate instances of the skale.py for the each thread.
Take a look on the tests/multithreading_test.py for the reference.
Development
Add pre-commit hook:
nano .git/hooks/pre-commit
uv run ruff check skale/
uv run mypy skale/
Install local version
uv sync --all-extras
Export environment variables
To export environment variables for running tests locally, run:
. ./scripts/export_env.sh
Build and publish library
bash build_and_publish.sh major/minor/patch
If you're using .env file
export $(cat .env | xargs) && bash build_and_publish.sh major/minor/patch
Versioning
The version scheme for this repo is {major}.{minor}.{patch}
For more details see: https://semver.org/
License
All contributions are made under the GNU Affero General Public License v3. See LICENSE.
Release files for skale.py 7.14.dev4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skale_py-7.14.dev4.tar.gz | 165.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skale_py-7.14.dev4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 352.8 kB
Release files / skale_py-7.14.dev4.tar.gz
| Download URL | skale_py-7.14.dev4.tar.gz |
|---|---|
| Size | 165.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9011306e5e2b602c616229f5bef2f6e28e85a61e489ec602cb8fece76fec1abb
|
|
BLAKE2b-256 checksum How to use checksums |
b61b24f625b631032744c09f389d4f4a793c803021e03fa0311a478d62ec18a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / skale_py-7.14.dev4-py3-none-any.whl
| Download URL | skale_py-7.14.dev4-py3-none-any.whl |
|---|---|
| Size | 187.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d9dbe0939ff190feeced2ac426ccabede4425e1dddc4047c46e6379234717eb
|
|
BLAKE2b-256 checksum How to use checksums |
8f434ea214601da5acfb5055a7da200af5c01bc594ef3980d146881772829ff1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|