Skip to main content

Fast RPC client library for Python in rust.

Project description

CuatroRPC

Fast Bitcoin RPC Client Library for Python leveraging Rust.

CuatroRPC aims to be a simple and fast RPC Client for Bitcoin compatible RPC servers.

Installation

Installation can be done with pip.

pip install cuatrorpc

Usage

from cuatrorpc import RpcClient

rpc = RpcClient(username="username", password="password", port=8033)

# Get the block count
print(rpc.callrpc("getblockcount"))

Arguments are passed as a python objects in a list.

from cuatrorpc import RpcClient

rpc = RpcClient(username="username", password="password", port=8033)

block_height = 1337

# Get get block hash from index
block_hash = rpc.callrpc("getblockhash", [block_height])

# Get the block details along with all of the trasnaction data for the block
block_details = rpc.callrpc("getblock", [block_hash, 2])

# Since the return for 'getblock' is a json object,
# block_details is automatically converted to a python object

# Get the timestamp of the block

timestamp = block_details['time']

print(timestamp)

For Async operations, use the RpcClientAsync class

from cuatrorpc import RpcClientAsync
import asyncio


rpc = RpcClientAsync(username="username", password="password", port=8033)

async def main():
  # Get the block count
  block_count = await rpc.callrpc("getblockcount")
  print(block_count)

if __name__ == "__main__":
  asyncio.run(main())

Usage CLI Binary

You can optionally use the cli binary to make rpc calls.

from cuatrorpc import RpcClientCLI


rpc_cli = RpcClientCLI(cli_bin_path="/path/to/bitcoin-cli",
                                data_dir_path="/path/to/.bitcoin",
                                daemon_conf_path="/path/to/.bitcoin/bitcoin.conf"
                                )

# Everything from here is the same as the http version except the method is called callrpc_cli

# Get the block count
print(rpc_cli.callrpc("getblockcount"))

For Async operations, use the RpcClientCLIAsync class

from cuatrorpc import RpcClientCLIAsync
import asyncio


rpc_cli = RpcClientCLIAsync(cli_bin_path="/path/to/bitcoin-cli",
                                data_dir_path="/path/to/.bitcoin",
                                daemon_conf_path="/path/to/.bitcoin/bitcoin.conf"
                                )

# From here everything is the same as with the async http version.

async def main():
  # Get the block count
  block_count = await rpc_cli.callrpc("getblockcount")
  print(block_count)

if __name__ == "__main__":
  asyncio.run(main())

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

cuatrorpc-0.7.2.tar.gz (12.6 kB view hashes)

Uploaded Source

Built Distributions

cuatrorpc-0.7.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded PyPy musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-cp312-none-win_amd64.whl (1.1 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

cuatrorpc-0.7.2-cp312-none-win32.whl (852.1 kB view hashes)

Uploaded CPython 3.12 Windows x86

cuatrorpc-0.7.2-cp312-cp312-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-cp312-cp312-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-cp312-cp312-manylinux_2_28_aarch64.whl (2.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

cuatrorpc-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

cuatrorpc-0.7.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

cuatrorpc-0.7.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

cuatrorpc-0.7.2-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

cuatrorpc-0.7.2-cp312-cp312-macosx_10_12_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

cuatrorpc-0.7.2-cp311-none-win_amd64.whl (1.1 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

cuatrorpc-0.7.2-cp311-none-win32.whl (852.6 kB view hashes)

Uploaded CPython 3.11 Windows x86

cuatrorpc-0.7.2-cp311-cp311-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-cp311-cp311-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-cp311-cp311-manylinux_2_28_aarch64.whl (2.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

cuatrorpc-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

cuatrorpc-0.7.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

cuatrorpc-0.7.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

cuatrorpc-0.7.2-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

cuatrorpc-0.7.2-cp311-cp311-macosx_10_12_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

cuatrorpc-0.7.2-cp310-none-win_amd64.whl (1.1 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

cuatrorpc-0.7.2-cp310-none-win32.whl (852.6 kB view hashes)

Uploaded CPython 3.10 Windows x86

cuatrorpc-0.7.2-cp310-cp310-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-cp310-cp310-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-cp310-cp310-manylinux_2_28_aarch64.whl (2.3 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

cuatrorpc-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

cuatrorpc-0.7.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

cuatrorpc-0.7.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

cuatrorpc-0.7.2-cp39-none-win_amd64.whl (1.1 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

cuatrorpc-0.7.2-cp39-none-win32.whl (852.6 kB view hashes)

Uploaded CPython 3.9 Windows x86

cuatrorpc-0.7.2-cp39-cp39-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-cp39-cp39-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-cp39-cp39-manylinux_2_28_aarch64.whl (2.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

cuatrorpc-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

cuatrorpc-0.7.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

cuatrorpc-0.7.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

cuatrorpc-0.7.2-cp38-none-win_amd64.whl (1.1 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

cuatrorpc-0.7.2-cp38-none-win32.whl (852.2 kB view hashes)

Uploaded CPython 3.8 Windows x86

cuatrorpc-0.7.2-cp38-cp38-musllinux_1_1_x86_64.whl (2.9 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

cuatrorpc-0.7.2-cp38-cp38-musllinux_1_1_aarch64.whl (2.6 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

cuatrorpc-0.7.2-cp38-cp38-manylinux_2_28_aarch64.whl (2.3 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

cuatrorpc-0.7.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

cuatrorpc-0.7.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

cuatrorpc-0.7.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

cuatrorpc-0.7.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

cuatrorpc-0.7.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

cuatrorpc-0.7.2-cp38-cp38-macosx_11_0_arm64.whl (1.2 MB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

cuatrorpc-0.7.2-cp38-cp38-macosx_10_12_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.8 macOS 10.12+ x86-64

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