nanorpc


Namenanorpc JSON
Version 0.1.5 PyPI version JSON
download
home_pagehttps://github.com/gr0vity-dev/nanomock
Summaryasync nano rpc library with dynamic method generation per node version
upload_time2024-09-28 13:37:12
maintainerNone
docs_urlNone
authorgr0vity
requires_python>=3.7
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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`:

```bash
pip install nanorpc
```

## Usage

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

```python
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](./nanorpc/versions) in this repository.

### Official RPC Documentation

For detailed documentation on the Nano RPC protocol and available commands, please visit the [Nano RPC Documentation](https://docs.nano.org/commands/rpc-protocol/) 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](LICENSE) file for more information.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gr0vity-dev/nanomock",
    "name": "nanorpc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "gr0vity",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/7a/10/8a5cbc145123ab0dabbb230c78a5df94d72c15b5b409f872825e1c4c19c6/nanorpc-0.1.5.tar.gz",
    "platform": null,
    "description": "# NanoRPC\n\nNanoRPC 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.\n\n## Features\n\n- Compatible with Python 3.7 and higher.\n- Supports asynchronous operations using `asyncio` and `aiohttp`.\n- Automatically adjusts available RPC methods based on the version of the connected Nano node.\n- Provides a simple and intuitive API for executing RPC commands.\n\n## Requirements\n\n- Python 3.7 and higher\n- aiohttp library\n\n## Installation\n\nYou can install NanoRPC using `pip`:\n\n```bash\npip install nanorpc\n```\n\n## Usage\n\nHere's a basic example of how to use NanoRPC to interact with a Nano node:\n\n```python\nimport asyncio\nfrom nanorpc.client import NanoRpc, NodeVersion\n\nasync def main():\n    # Connect to a Nano node\n    rpc = NanoRpc(url='http://localhost:7076', node_version=NodeVersion.V25_0)\n\n    # Execute an RPC command\n    block_count = await rpc.block_count()\n    print(f\"Current block count: {block_count}\")\n\n    # Execute another RPC command\n    version_info = await rpc.version()\n    print(f\"Node version: {version_info}\")\n\n    #pass mandatory input as args* and optional as kwargs*\n    account = \"nano_3msc38fyn67pgio16dj586pdrceahtn75qgnx7fy19wscixrc8dbb3abhbw6\"\n    account_info = await rpc.account_info(account, include_confirmed=\"true\", representative=\"true\", receivable=\"true\", weight=\"true\")\n    print(f\"Account info: {account_info}\")\n\n# Run the main function within an asyncio event loop\nasyncio.run(main())\n```\n\n### Error Handling\n\nNanoRPC 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`.\n\n### Available RPC Commands\n\nNanoRPC 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](./nanorpc/versions) in this repository.\n\n### Official RPC Documentation\n\nFor detailed documentation on the Nano RPC protocol and available commands, please visit the [Nano RPC Documentation](https://docs.nano.org/commands/rpc-protocol/) page.\n\n## Contributing\n\nContributions 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.\n\n## License\n\nNanoRPC is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "async nano rpc library with dynamic method generation per node version",
    "version": "0.1.5",
    "project_urls": {
        "Homepage": "https://github.com/gr0vity-dev/nanomock"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a5a923143917fd9f7d27fbad2c33a371f28c96ef0f77e71bd5ff5d97df374fd9",
                "md5": "cac4ae69fc3decef1a72752e8af69f15",
                "sha256": "3af66a70243f60b9ce7a20c0506886578c90769fc2bbcb595ed355cfa6cff09d"
            },
            "downloads": -1,
            "filename": "nanorpc-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cac4ae69fc3decef1a72752e8af69f15",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 31294,
            "upload_time": "2024-09-28T13:37:10",
            "upload_time_iso_8601": "2024-09-28T13:37:10.875885Z",
            "url": "https://files.pythonhosted.org/packages/a5/a9/23143917fd9f7d27fbad2c33a371f28c96ef0f77e71bd5ff5d97df374fd9/nanorpc-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a108a5cbc145123ab0dabbb230c78a5df94d72c15b5b409f872825e1c4c19c6",
                "md5": "eda904951b81b91d495f248de644d9ea",
                "sha256": "1cac30090da2132906cffc3b0a3ff3a6fe629c3653c2fbddbbb2f1c820709d6d"
            },
            "downloads": -1,
            "filename": "nanorpc-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "eda904951b81b91d495f248de644d9ea",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 13456,
            "upload_time": "2024-09-28T13:37:12",
            "upload_time_iso_8601": "2024-09-28T13:37:12.084643Z",
            "url": "https://files.pythonhosted.org/packages/7a/10/8a5cbc145123ab0dabbb230c78a5df94d72c15b5b409f872825e1c4c19c6/nanorpc-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-28 13:37:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gr0vity-dev",
    "github_project": "nanomock",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "nanorpc"
}
        
Elapsed time: 0.82047s