Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jansenmarc/WavesGatewayFramework
A framework to connect other cryptocurrencies to the Waves platform.
https://github.com/jansenmarc/WavesGatewayFramework
Last synced: about 2 months ago
JSON representation
A framework to connect other cryptocurrencies to the Waves platform.
- Host: GitHub
- URL: https://github.com/jansenmarc/WavesGatewayFramework
- Owner: jansenmarc
- License: mit
- Created: 2018-03-03T10:14:55.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-01T17:09:15.000Z (almost 2 years ago)
- Last Synced: 2024-10-29T15:29:00.740Z (3 months ago)
- Language: Python
- Size: 1.79 MB
- Stars: 24
- Watchers: 7
- Forks: 20
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-waves - Waves-Gateway-Framework - A framework to connect other cryptocurrencies to the Waves blockchain ([LTC example](https://github.com/jansenmarc/WavesGatewayLTCExample)). (Frameworks and tools / Client libraries)
README
Waves-Gateway-Framework
=========================A framework to connect other cryptocurrencies to the Waves platform.
Requires Python 3.5 or newer.For detailed usage instructions please refer to the source code documentation that may be exported
by using the commands described below.
The framework exports a class Gateway. This class has to instantiated.
Once done, the Gateway can be started by calling the run method on the resulting instance.The constructor of the Gateway class requires instances of certain interfaces.
Those interfaces define the required functionality that a concrete Gateway implementation has to provide.
You may also take a look at an example implementation that
realizes a Waves-Gateway for Litecoin: https://github.com/jansenmarc/WavesGatewayLTCExample.How to install
---------------.. code:: bash
pip install waves-gateway
Required packages for development
---------------------------------.. code:: bash
python3.5 -m pip install coverage mypy pylint Sphinx
Lint
----The `PyLint `__ package is required for linting.
Install it like this: ``pip install pylint``... code:: bash
python3.5 setup.py lint
MyPy
----The `MyPy `__ package performs static
type analysis to prevent errors.::
python3.5 setup.py mypy
Unittest
--------.. code:: bash
python3.5 setup.py test
The convention is to write Unittests for every class in a separate file
starting with ``test_`` This is the default prefix of the python
Unittest module.Coverage
--------.. code:: bash
python3.5 setup.py coverage
Documentation Generation
========================Creates a folder docs with the generated HTML documentation.
.. code:: bash
pip install . -U
python3.5 setup.py docsDoctest
-------Doctests are not used in this project. Write Unittests instead.
yapf
----This project uses yapf (https://github.com/google/yapf) as a formatting
tool So, please format your code before commiting by running this:.. code:: bash
python3.5 -m yapf -r waves_gateway --style pep8 --style {COLUMN_LIMIT:120} -i
The pipeline will fail if the code is not properly formatted.
Distribution
------------First, run ``npm run build:prod`` to update the assets.
After that, run ``python3.5 setup.py sdist`` to create an installable tar archive.Publish to test.pypi.org:
.. code:: bash
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
Regular publish:
.. code:: bash
twine upload dist/*
Recommendations
---------------- Use Python 3.5 for development.
- PyCharm users should enable Gevent compatible debugging:
https://blog.jetbrains.com/pycharm/2012/08/gevent-debug-support/.