aergo-herapy 2.0.2
python SDK for AERGO
License: MIT license
Keywords: herapy

.. 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.