Skip to main content

Rubix Client SDK for Python

Project description

Rubix Client SDK for Python

rubix-py is a lightweight client for the Rubix Blockchain Node, providing complete node interaction with minimal overhead.

⚠️ This project is currently under active development. API changes and method signature updates may occur between releases. Please review the Release Notes before upgrading.

Installation

Run the following to install rubix-py

pip install rubix-py

Architecture

The architecture of rubix-py is pretty straightforward. It consists of the following classes:

  • RubixClient: Responsible for connection to Rubix Blockchain Node

  • Signer: Signs and performs Blockchain transactions and manages user’s crypto keys.

  • Querier: Queries information such as Token Balances, Smart Contract and NFT token chains, etc.

RubixClient has a set of internal methods to make API requests to the node. Both Signer and Querier consumes an instance of RubixClient which helps them to achieve their respective operations with the Blockchain node.

Let’s have a look at a simple example of fetching RBT balance and transferring them:

from rubix.client import RubixClient
from rubix.signer import Signer
from rubix.querier import Querier

# Define the RubixClient by specifying the target Rubix node address
# and optionally providing timeout in seconds
client = RubixClient(node_url="http://localhost:20000", timeout=300)

# The Singer class takes two mandatory inputs:
# - rubixClient: Rubix Client instance
# - alias: Alias give to the account holding the cryptographic keypair. It can therefore
# be used everytime user wants to refer to the same keypair present in SDK config. If the
# keypair files are not present, it will be created. The keypair values will then depend on
# whether user passes a mnemonic or not
#
# Optional Arguments:
# - mnemonic: Account can be recovered by passing a 24-word BIP-39 mnemonic. If not passed,
# a random mnemonic is generated.
# - config_path: Directory where files associated with SDK such as keypairs will be stored
signer = Signer(
     rubixClient=client,
     alias="nick",
     mnemonic="<Enter 24-word long BIP-39 mnemonic>",
     config_path="<Config Path for SDK dir>"
 )


# Internally, a call is made to Rubix Node to create and register your DID
user_did = signer.did

# Retrieve the keypair which can be used for signing arbitrary message
keypair = signer.get_keypair()

# Retrieve the mnemonic
mnemonic = signer.get_mnemonic()

# Define the Querier
queryClient = Querier(
    rubixClient=client
)

# Check RBT balance
balance_info = queryClient.get_rbt_balance(user_did)
balance = balance_info["rbt"]

# Perform RBT Transfer
tx_response = signer.send_rbt_tokens(
    receiver_did="<Enter recipient DID>",
    rbt_amount=0.001,
    comment="Test RBT Transfer"
)

if tx_response["status"] is True:
    print("RBT Transfer Successful!")
else:
    print("RBT Transfer Failed!: ", tx_response.get("message", ""))

Usage

Refer examples for more usecases

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

rubix_py-1.0.2.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

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

rubix_py-1.0.2-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file rubix_py-1.0.2.tar.gz.

File metadata

  • Download URL: rubix_py-1.0.2.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for rubix_py-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a8b48e8d925be74945dff11e63762f1c78a3e2ce77e7927ffc6cf348ac6e65fb
MD5 9d67f781cc6077acd05ba7b524beb27c
BLAKE2b-256 ba38ec66e2c57a96e9e237601248ee16683425641041ba500f634a1da8ac7af7

See more details on using hashes here.

File details

Details for the file rubix_py-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: rubix_py-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for rubix_py-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 adff8cd544e71de45689e0080d9b1e35ab265f0664a9318797a96f75d61be04d
MD5 e57f8dc0f95c38c90659a2a71a5cda39
BLAKE2b-256 43b3a4f0c5aa1d2603f5f84a23bd580f8fb4e6a950896cdfca9c4ccac7ed5983

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