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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file aioxrpy-1.0.0.tar.gz.

File metadata

  • Download URL: aioxrpy-1.0.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1035-azure

File hashes

Hashes for aioxrpy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cdccecd82e8716db3c663c2e9ced56c7feb6e141041a64ff8d99f21a9dadd350
MD5 d9163d3b312dadf88cdaa62b080151ab
BLAKE2b-256 9dd7465f9ea2d3d5394a27082107369028a5bcf23665894d824036971c632c1e

See more details on using hashes here.

File details

Details for the file aioxrpy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: aioxrpy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1035-azure

File hashes

Hashes for aioxrpy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46c5a75be6fcf3e83ca31d07fb70ba015c792055ac8ca7072bb86b84884a9604
MD5 863abe938ac5cfd7f6b7b38481f46afe
BLAKE2b-256 97442a548727b10f507a2ef46ff8a8aad333aaa614a11bb0eb9d46e4c720c965

See more details on using hashes here.

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