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

If you're not sure about the file name format, learn more about wheel file names.

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 Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page