Skip to main content

async nano rpc library with dynamic method generation per node version

Project description

NanoRPC

NanoRPC is a Python library for interacting with Nano cryptocurrency nodes via their JSON-RPC API. It provides an easy-to-use interface to execute RPC (Remote Procedure Call) commands supported by different versions of Nano nodes.

Features

  • Compatible with Python 3.7 and higher.
  • Supports asynchronous operations using asyncio and aiohttp.
  • Automatically adjusts available RPC methods based on the version of the connected Nano node.
  • Provides a simple and intuitive API for executing RPC commands.

Requirements

  • Python 3.7 and higher
  • aiohttp library

Installation

You can install NanoRPC using pip:

pip install nanorpc

Usage

Here's a basic example of how to use NanoRPC to interact with a Nano node:

import asyncio
from nanorpc.client import NanoRpc, NodeVersion

async def main():
    # Connect to a Nano node
    rpc = NanoRpc(url='http://localhost:7076', node_version=NodeVersion.V25_0)

    # Execute an RPC command
    block_count = await rpc.block_count()
    print(f"Current block count: {block_count}")

    # Execute another RPC command
    version_info = await rpc.version()
    print(f"Node version: {version_info}")

    #pass mandatory input as args* and optional as kwargs*
    account = "nano_3msc38fyn67pgio16dj586pdrceahtn75qgnx7fy19wscixrc8dbb3abhbw6"
    account_info = await rpc.account_info(account, include_confirmed="true", representative="true", receivable="true", weight="true")
    print(f"Account info: {account_info}")

# Run the main function within an asyncio event loop
asyncio.run(main())

Error Handling

NanoRPC includes several error handling mechanisms. If an RPC command fails or if a network issue is encountered, the library will retry the request for a specified number of times. If all retries are exhausted, the library will raise a MaxRetriesExceededError.

Available RPC Commands

NanoRPC provides access to various RPC commands based on the connected Nano node version. For a complete list of available commands and their parameters, please refer to the versions folder in this repository.

Official RPC Documentation

For detailed documentation on the Nano RPC protocol and available commands, please visit the Nano RPC Documentation page.

Contributing

Contributions to NanoRPC are welcome! If you find any issues, have suggestions, or would like to contribute enhancements or new features, please open an issue or submit a pull request.

License

NanoRPC is licensed under the MIT License. See the LICENSE file for more information.

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

nanorpc-0.1.5.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

nanorpc-0.1.5-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file nanorpc-0.1.5.tar.gz.

File metadata

  • Download URL: nanorpc-0.1.5.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for nanorpc-0.1.5.tar.gz
Algorithm Hash digest
SHA256 1cac30090da2132906cffc3b0a3ff3a6fe629c3653c2fbddbbb2f1c820709d6d
MD5 eda904951b81b91d495f248de644d9ea
BLAKE2b-256 7a108a5cbc145123ab0dabbb230c78a5df94d72c15b5b409f872825e1c4c19c6

See more details on using hashes here.

File details

Details for the file nanorpc-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: nanorpc-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for nanorpc-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3af66a70243f60b9ce7a20c0506886578c90769fc2bbcb595ed355cfa6cff09d
MD5 cac4ae69fc3decef1a72752e8af69f15
BLAKE2b-256 a5a923143917fd9f7d27fbad2c33a371f28c96ef0f77e71bd5ff5d97df374fd9

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