Skip to content

Libraries to facilitate development and testing of ElectrumSV and applications based on it

License

Notifications You must be signed in to change notification settings

electrumsv/electrumsv-sdk

Repository files navigation

ElectrumSV Software Development Kit

This project provides a consolidated set of resources that together can allow a developer, whether working on ElectrumSV directly or on an application based on ElectrumSV, to develop, run and test while offline (and is especially aimed at facilitating rigourous CI/CD functional testing).

Licence: The Open BSV License
Maintainers: Roger Taylor, AustEcon
Project Lead: Roger Taylor
Language: Python (>=3.9)
Homepage: https://electrumsv.io/

PyPI version Build Status Platforms Platforms

Documentation

Detailed documentation is hosted here

Basic Instructions

To install from pypi:

> pip install --upgrade electrumsv-sdk

Now you have global access to a script called 'electrumsv-sdk.exe' from any console window.

For help:

> electrumsv-sdk --help

Note: You must run electrumsv-sdk install <component type> first for each component type. This may require system dependencies you also need - please read the documentation.

If you want help for one of the subcommands (e.g. 'start') do:

> electrumsv-sdk start --help

Which will show:

usage: electrumsv-sdk start [-h] [--new] [--gui] [--background] [--inline] [--new-terminal] [--id ID] [--repo REPO] [--branch BRANCH] {electrumsv,merchant_api,node,status_monitor,whatsonchain,whatsonchain_api} ...

positional arguments:
  {electrumsv,merchant_api,node,status_monitor,whatsonchain,whatsonchain_api}
                        subcommand
    electrumsv          start electrumsv
    merchant_api        start merchant_api
    node                start node
    status_monitor      start status_monitor
    whatsonchain        start whatsonchain
    whatsonchain_api    start whatsonchain_api

optional arguments:
  -h, --help            show this help message and exit
  --new                 run a new instance with unique 'id'
  --gui                 run in gui mode (electrumsv only)
  --background          spawn in background
  --inline              spawn in current shell
  --new-terminal        spawn in a new terminal window
  --id ID               human-readable identifier for component (e.g. 'worker1_esv')
  --repo REPO           git repo as either an https://github.com url or a local git repo path e.g. G:/electrumsv (optional)
  --branch BRANCH       git repo branch (optional)

Note: The "optional arguments" come before specifying the component_type e.g.:

> electrumsv-sdk start --new --id=myspecialnode node

Docker

Docker support is here: https://github.com/electrumsv/electrumsv-sdk-docker. However, do note that we cannot promise to keep the docker support up-to-date as we are stretched too thin and have other priorities. Nevertheless, help will be gladly accepted.

You might also find what you need here: https://github.com/jadwahab/regtest-stack. Please check that one out too. Jad and co. are better placed to keep up with the bleeding edge versioning of the node, mAPI and LiteClient services as they are directly involved with many of those projects. They also do not have the additional python layer of abstraction to sort out when it comes to docker.

App Versions

The current versions of each component are maintained in electrumsv_sdk/app_versions.py.