.. image:: https://github.com/aergoio/herapy/blob/develop/images/hera_py.jpg?raw=true
:target: https://github.com/aergoio/herapy/
======
herapy
======
.. image:: https://codecov.io/gh/aergoio/herapy/branch/master/graph/badge.svg
:target: https://codecov.io/gh/aergoio/herapy
.. image:: https://img.shields.io/pypi/v/aergo-herapy.svg
:target: https://pypi.python.org/pypi/aergo-herapy
.. image:: https://travis-ci.com/aergoio/herapy.svg?token=bxpJA7kPFExuJMq3sBNb&branch=master
:target: https://travis-ci.com/aergoio/herapy
.. image:: https://readthedocs.org/projects/aergo-herapy/badge/?version=latest
:target: https://aergo-herapy.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/aergoio/herapy/shield.svg
:target: https://pyup.io/repos/github/aergoio/herapy/
:alt: Updates
HeraPy is a Python package for AERGO that provides the features below.
--------
Features
--------
* Communication with AERGO node
* Getting AERGO blockchain information
* Creating/Exporting/Importing an account
* Making and sending a transaction
* Deploying/Calling/Querying a smart contract
* Querying and prooving contract/account states
-------
Install
-------
Install the latest version in `the Python Package Index <https://pypi.org/project/aergo-herapy/>`_
.. code-block::
pip install aergo-herapy
or, install locally
.. code-block::
git clone git@github.com:aergoio/herapy.git
cd herapy
make install
------------
Run examples
------------
After installing aergo-herapy, you can run examples
.. code-block::
make ex
The examples in the 'examples' directory connect the public Aergo testnet.
-----
Build
-----
Downloading HeraPy
==================
Download HeraPy from this repository
.. code-block::
git clone git@github.com:aergoio/herapy.git
Installing Dependencies
=======================
.. code-block::
pip install -r requirements.txt
But, we recommend to use a virtual environment below.
Virtual Environment (Pipenv)
----------------------------
Using Pipenv, all dependencies will be installed automatically.
.. code-block::
pipenv shell
If you cleaned up and setup again,
.. code-block::
pipenv install
If you want to test or contribute, then do not forget '--dev' option
.. code-block::
pipenv install --dev
make test
Updating Protocol
=================
If need to upgrade a protocol,
.. code-block::
make protoc
After this command, all protocol related source files will be generated if it's different.
Updating Aergo Configurations
=============================
If need to upgrade Aergo Configurations,
.. code-block::
make aergo-types
After this command, 'aergo/herapy/obj/aergo_conf.py' will be generated if it's different.
If occur the error message below
.. code-block::
ERROR: Cannot find 'AERGO_TYPES_SRC'
, find the source code 'aergo/config/types.go' and make this file path as an environment variable of 'AERGO_TYPES_SRC'
.. code-block::
export AERGO_TYPES_SRC=`find ~ -path '*/aergo/config/types.go' 2>/dev/null`
make aergo-types
-------------------------
Releases and Contributing
-------------------------
HeraPy follows a major release cycle of AERGO.
A minor release such as fixing bugs and errors are occasionally patched.
Please let us know if you encounter a bug by `filling an issue <https://github.com/aergoio/herapy/issues>`_.
If you are planning to contribute a new feature, class, or function,
please `open an issue <https://github.com/aergoio/herapy/issues>`_ and discuss with us.
We appreciate all contributions.
-------------
Documentation
-------------
https://aergo-herapy.readthedocs.io
-------
License
-------
HeraPy is MIT license as found in the LICENSE file.
-------
Credits
-------
This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
=======
History
=======
-------------------
2.0.1 (2020-02-05)
-------------------
* Add new Aergo Keystore support.
* Add 'add_raft_member', 'del_raft_member'
-------------------
2.0.0 (2019-12-03)
-------------------
* Add 'transfer' API for simple token transfering
* Add 'gas limit', 'fee delegation' and 'gas used' for 'TxResult' object
* 'Account' object encoding to/decoding from json data
* Bug fix
* Exception for encoding 'TxResult' to the json type, because of 'tx_id'
-------------------
1.3.3 (2019-11-05)
-------------------
* support TLS connection
* Bug fix
* coinbase address encoding issue from https://github.com/aergoio/herapy/issues/70
-------------------
1.2.7 (2019-10-21)
-------------------
* support Enterprise features (raft)
* issue from https://github.com/aergoio/herapy/issues/75
* support ABI
* issue from https://github.com/aergoio/herapy/issues/74
-------------------
1.2.6 (2019-09-04)
-------------------
* Bug fix
* issue from https://github.com/aergoio/herapy/issues/68
-------------------
1.2.5 (2019-08-26)
-------------------
* support an empty string and governance string address for `Address`
* support `get_name_info`
* Bug fix
* miss value from `get_conf_change_progress`
-------------------
1.2.3 (2019-08-22)
-------------------
* support redploy tx type
* support 'GetConfChangeProgress' protocol to find a state of 'changeCluster' system contract
* support 'name' (string) address
* support enterprise consensus info
* Bug fix
* miss match a tx type in tx
-------------------
0.12.2 (2019-03-21)
-------------------
* encrypt/decrypt logic moves to 'util' for a general usage
* Bug fix
* when tx result handling, get error message from a changed varialbe
-------------------
0.12.0 (2019-03-08)
-------------------
* Apply v0.12.0 protocol
* Bug fix
* get a genesis block with a block height 0
-------------------
0.11.0 (2019-02-20)
-------------------
* Change the result type from the 'get_tx_result' function ('SmartContractStatus' --> 'TxResultStatus')
* Separate two function 'send_tx' and 'batch_tx' from the single 'send_tx' function for a single and multiple txs
* Open the 'generate_tx' function for helping a new transaction manually
* Support multiple proof queries with the array of Storage Keys
* Simplify verifying proof as the 'verify_proof' function from 'verify_inclusion' and 'verify_exclusion'
------------------
0.9.0 (2018-12-31)
------------------
* Fit for the public Aergo testnet.
* First public release on PyPI.
------------------
0.1.0 (2018-11-07)
------------------
* First release on PyPI.