CoinAddr
.. image:: https://travis-ci.org/joeblackwaslike/coinaddr.svg?branch=master
:target: https://travis-ci.org/joeblackwaslike/coinaddr
:alt: Build Status
.. image:: https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat
:target: https://github.com/joeblackwaslike/coinaddr
:alt: Github Repo
.. image:: https://img.shields.io/pypi/v/coinaddr.svg
:target: https://pypi.python.org/pypi/coinaddr
:alt: Pypi Version
.. image:: https://img.shields.io/pypi/l/coinaddr.svg
:target: https://pypi.python.org/pypi/coinaddr
:alt: Pypi License
.. image:: https://img.shields.io/pypi/wheel/coinaddr.svg
:target: https://pypi.python.org/pypi/coinaddr
:alt: Pypi Wheel
.. image:: https://img.shields.io/pypi/pyversions/coinaddr.svg
:target: https://pypi.python.org/pypi/coinaddr
:alt: Pypi Versions
Maintainer
Joe Black | me@joeblack.nyc | github <https://github.com/joeblackwaslike>
_
Introduction
A cryptocurrency address inspection/validation library for python.
Supported currencies
^^^^^^^^^^^^^^^^^^^^
- bitcoin
- bitcoin-cash
- litecoin
- ethereum
- ethereum-classic
- ether-zero
- dogecoin
- dashcoin
- neocoin
- ripple
Installation
.. code-block:: shell
pip3 install coinaddr
Usage
.. code-block:: python
import coinaddr
coinaddr.validate('btc', b'1BoatSLRHtKNngkdXEeobR76b53LETtpyT')
ValidationResult(name='bitcoin', ticker='btc', address=b'1BoatSLRHtKNngkdXEeobR76b53LETtpyT', valid=True, network='main')
Extending
^^^^^^^^^
Currencies
To add a new currency, simply instantiate a new ``coinaddr.currency.Currency`` class. It will be automatically registered.
.. code-block:: python
from coinaddr import Currency
Currency('testcoin', ticker='ttc', validator='Base58Check',
networks=dict(
main=(0x00, 0x05), test=(0x6f, 0xc4)))
To override a default currency, simply instantiate a new currency with that name.
Validators
To add a new validator, simply create a subclass of coinaddr.validation.ValidatorBase
with your own implementation that implements the coinaddr.interfaces.IValidator
interface. It will be automatically registered.
.. code-block:: python
from zope.interface import implementer
from coinaddr.interfaces import IValidator
from coinaddr import ValidatorBase
@implementer(IValidator)
class NewValidator(ValidatorBase):
name = 'New'
@property
def networks(self):
return 'testing'
def validate(self):
return True
To override a default validator, simply create a new validator with that name.
Changes
CHANGELOG <CHANGELOG.md>
_