Skip to main content

Ripple blockchain library for Python

Project description

aioxrpy

Documentation Status codecov Python package Upload Python Package

Ripple blockchain library for Python.

Features

  1. Async JSON-RPC client.
  2. Signing and verifying transactions using private and public keys.
  3. Support for signing transactions with multiple keys.
  4. Serializer and deserializer for Ripple objects.

Installation

Library is available on PyPi, you can simply install it using pip.

$ pip install aioxrpy

Usage

Keys

Signing and verifying transactions, as well as generating new accounts is done through RippleKey class.

from aioxrpy.keys import RippleKey

# New key
key = RippleKey()

# From public key
key = RippleKey(public_key=b'public key')

# From master seed
key = RippleKey(private_key='seed')

# From private key
key = RippleKey(private_key=b'private key')

Such key can be converted to Account ID and public key.

Submitting transactions

RPC client provides a helper which signs and submits transaction. As a first argument it takes a transaction dict. The second one is a RippleKey instance used for signing this transaction.

from aioxrpy.rpc import RippleJsonRpc

rpc = RippleJsonRpc(url)
await rpc.sign_and_submit(
    {
        'Account': account,
        'TransactionType': RippleTransactionType.Payment,
        'Amount': decimals.xrp_to_drops(200),
        'Destination': destination,
        'Fee': 10
    },
    signer
)

Multi-signed transactions

RPC client provides a helper which signs and submits transaction using multiple keys. As a second argument, it expects a list of RippleKey instances. Please don't forget that each signer increases transaction fees.

from aioxrpy.rpc import RippleJsonRpc

rpc = RippleJsonRpc(url)
await rpc.multisign_and_submit(
    {
        'Account': account,
        'TransactionType': RippleTransactionType.Payment,
        'Amount': decimals.xrp_to_drops(200),
        'Destination': destination,
        'Fee': 30
    },
    [signer_1, signer_2]
)

Documentation

Docs and usage examples are available here.

Unit testing

To run unit tests, you need to bootstrap a Rippled regtest node first. Use the provided docker-compose.yml file.

$ docker-compose up -d

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for aioxrpy, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size aioxrpy-1.0.0-py3-none-any.whl (17.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size aioxrpy-1.0.0.tar.gz (16.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page