Metadata-Version: 2.1
Name: cb58ref
Version: 0.2.0
Summary: Reference implementation of CB58 encoding used by AVA
Home-page: https://github.com/moreati/cb58ref
Author: Alex Willmer
Author-email: alex@moreati.org.uk
License: MIT license
Keywords: cb58 base58 ava
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.5

=======
cb58ref
=======

.. image:: https://img.shields.io/pypi/v/cb58ref.svg
        :target: https://pypi.python.org/pypi/cb58ref

.. image:: https://img.shields.io/travis/moreati/cb58ref.svg
        :target: https://travis-ci.com/moreati/cb58ref

.. image:: https://readthedocs.org/projects/cb58ref/badge/?version=latest
        :target: https://cb58ref.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://pyup.io/repos/github/moreati/cb58ref/shield.svg
     :target: https://pyup.io/repos/github/moreati/cb58ref/
     :alt: Updates

cb58ref is a reference implementation of the CB58 encoding used by `AVA`_.
CB58 is similar to the `Base58Check`_ encoding used in Bitcoin

* both can encode arbitrary an arbitrary byte sequence
* both use the same alphabet
* both append a 4 byte checksum

they differ in the following respects

* CB58 uses the final 4 bytes of ``SHA256(msg)`` as the checksum.
  Base58Check uses the first 4 bytes of ``SHA256(SHA256(msg))`` as the
  checksum.

Usage
-----

.. code:: python

    >>> import cb58ref
    >>> cb58ref.cb58encode(b"Hello world"):
    '32UWxgjUJd9s6Kyvxjj1u'
    >>> cb58ref.cb58decode('32UWxgjUJd9s6Kyvxjj1u')
    b"Hello world"

.. code::

    $ printf "Hello world" | python3 -m cb58ref
    32UWxgjUJd9s6Kyvxjj1u

    $ printf "32UWxgjUJd9s6Kyvxjj1u" | python3 -m cb58ref -d
    Hello world

Installation
------------

.. code::

    $ python3 -m pip install cb58ref

License
-------

* Free software: MIT license

Credits
-------

This package was created with `Cookiecutter`_ and the `audreyr/cookiecutter-pypackage`_ project template.
The ``b58decode()``, and ``b58encode()`` functions are from `base58.py`_, part of Bitcoin Core.

.. _`AVA`: https://www.avalabs.org/
.. _`Base58Check`: https://en.bitcoin.it/wiki/Base58Check_encoding
.. _`Cookiecutter`: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
.. _`base58.py`: https://github.com/bitcoin/bitcoin/blob/master/contrib/testgen/base58.py
.. _`Bitcoin Core`: https://github.com/bitcoin/bitcoin


=======
History
=======

0.2.0 (2020-06-17)
------------------

* Command line interface
* Type hints
* Unit tests

0.1.0 (2020-06-15)
------------------

* First release on PyPI.
* Derived from https://github.com/bitcoin/bitcoin/blob/195822f1e05e2f36002c906667d4c639663f23b5/contrib/testgen/base58.py


