Metadata-Version: 2.1
Name: substrate-utils
Version: 1.0.19
Summary: Substrate utility library providing functionality for multi-signature trading.
Home-page: https://github.com/LocalCoinSwap/substrate-utils/
Author: Nathan Worsley
Author-email: nathan@localcoinswap.com
License: GPLv3
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
Requires-Dist: websockets (==8.1)
Requires-Dist: scalecodec (==1.0.19)
Requires-Dist: base58 (==2.0.1)
Requires-Dist: py-bip39-bindings (==0.1.6)
Requires-Dist: py-sr25519-bindings (==0.1.1)
Requires-Dist: xxhash (==1.4.3)
Provides-Extra: dev
Requires-Dist: coverage (==5.1) ; extra == 'dev'
Requires-Dist: ipython (==7.14.0) ; extra == 'dev'
Requires-Dist: portray (==1.3.1) ; extra == 'dev'
Requires-Dist: pre-commit (==2.3.0) ; extra == 'dev'
Requires-Dist: pytest (==5.4.1) ; extra == 'dev'
Requires-Dist: pytest-mock (==3.1.0) ; extra == 'dev'


# substrate-utils
Substrate utility library providing functionality for exchange management and multi-signature trading, originally built for [LocalCoinSwap](https://localcoinswap.com)

![Python package](https://github.com/LocalCoinSwap/substrate-utils/workflows/Python%20package/badge.svg) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/substrate-utils.svg?v-0.2.1)](https://pypi.org/project/substrate-utils/) [![PyPI version shields.io](https://img.shields.io/pypi/v/substrate-utils.svg?v-0.2.1)](https://pypi.python.org/pypi/substrate-utils/)

The focus of this library is on functionality needed to provide an exchange service, including:

- Account generation
- Balance checking
- Making transfers
- Creating N/M (2/3) escrow addresses
- Non-custodial trades
- Cancellation of trades
- Administration of trade disputes
- Verification of transactions
- Diagnostics for common problems
- Associated cryptography

For complete examples please review the documentation. If there's any exchange functionality you need which we haven't provided, feel free to raise an issue in Github.

----

## Installation
```
pip install substrate-utils
```

## Quick start
```
from substrateutils import Kusama, Polkadot, Kulupu
kusama = Kusama()
polkadot = Polkadot()
kulupu = Kulupu()
```

## Documentation

[https://localcoinswap.github.io/substrate-utils/](https://localcoinswap.github.io/substrate-utils/)

# Local development

## Pre-requisites

 - Python 3.8.1 (preferred)

We suggest using [`pyenv`](https://github.com/pyenv/pyenv-virtualenv) to easily manage python versions. Some of the following commands use `pyenv`.
Use [pyenv-installer](https://github.com/pyenv/pyenv-installer) for easy installation. Then add pyenv-virtualenv plugin to it.

### Configure local development setup

 - Install and activate python 3.8.1 in the root directory
    - `pyenv install 3.8.1`
    - `pyenv virtualenv 3.8.1 substrateutils`
    - `pyenv local substrateutils`

 - Install project requirements
    - `pip install -r requirements.txt`

 - Install precommit hook
    - `pre-commit install`

You're all set to hack!

Before making changes, let's ensure tests run successfully on local.

### Running Tests

 - Run all tests with coverage
    - `coverage run -m pytest -v`
 - Show report in terminal
    - `coverage report -m`

### Notes

Trade storage calls for 2/3 trades cost:  
```
Polkadot - 40.3040 DOT  
Kusama   - 6.71733331304 KSM  
```


