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.

Source Distribution

aioxrpy-1.0.0.tar.gz (16.2 kB view hashes)

Uploaded Source

Built Distribution

aioxrpy-1.0.0-py3-none-any.whl (17.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page