{
"info": {
"author": "Remme",
"author_email": "",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "\n\n# Remme Python Client\n\n[](https://github.com/Remmeauth/remme-client-python/releases)\n[](https://pypi.python.org/pypi/remme/)\n[](https://pypi.python.org/pypi/remme)\n[](http://remme.readthedocs.io/?badge=latest)\n[](https://pypi.python.org/pypi/remme/)\n[](https://pypi.python.org/pypi/remme/)\n\nAn open source Python integration library for REMChain, simplifying the access\nand interaction with Remme nodes both public or permissioned.\n\n* [How to use](#how-to-use)\n * [1. Install Remme protocol](#1-install-remme-protocol)\n * [2. Install dependencies](#2-install-dependencies)\n * [3. Install library](#3-install-library)\n* [Examples](#examples)\n * [Remme client](#remme-client)\n * [Tokens](#tokens)\n * [Certificates](#certificates)\n * [Subscribing to Events](#subscribing-to-events)\n* [Contributing](#contributing)\n* [License](#license)\n\n## How to use\n\n### 1. Install Remme protocol\n\nInstall and run Remme protocol with required RPC API methods enabled.\n\nYou can check out how to do that at [Remme core repo]().\n\n### 2. Install dependencies:\n\nBefore installing the library, make sure that all the dependencies listed are installed.\n\n**Required by one of the requirements [system packages list](https://github.com/ludbb/secp256k1-py#installation-with-compilation)**\n\n```bash\n$ sudo apt-get update\n$ sudo apt-get install python3-dev python3-setuptools -y\n$ sudo apt-get install build-essential automake libtool pkg-config libffi-dev -y\n```\n\n### 3. Install library\n\nInstall the latest version of library to your Python project from terminal using `pip`:\n\n```bash\n$ pip3 install remme\n```\n\n## Examples\n\n#### Remme client\n\n```python\nfrom remme import Remme\nfrom remme.models.account.account_type import AccountType\n\naccount_config = {\n 'private_key_hex': 'f4f551c178104595ff184f1786ddb2bfdc74b24562611edcab90d4729fb4bab8', \n 'account_type': AccountType.USER,\n}\nnetwork_config = {\n 'node_address': 'localhost:8080', \n 'ssl_mode': False,\n}\n\nremme = Remme(account_config=account_config, network_config=network_config)\n```\n\n#### Tokens\n\n```python\nremme_address = '1120077f88b0b798347b3f52751bb99fa8cabaf926c5a1dad2d975d7b966a85b3a9c21'\n\nbalance = await remme.token.get_balance(address=remme_address)\nprint(f'Account \u2014 {remme_address}, balance \u2014 {balance} REM.')\n\ntransaction_result = await remme.token.transfer(address_to=remme_address, amount=10)\nprint(f'Transaction batch id: {transaction_result.batch_id}')\n\n```\n\n#### Certificates\n\n```python\ncertificate_transaction_result = await remme.certificate.create_and_store(\n common_name='user_name',\n email='user@email.com',\n name='John',\n surname='Smith',\n country_name='US',\n validity=360,\n serial=str(datetime.now())\n )\ncertificate = certificate_transaction_result.certificate\n\nwhile True:\n\n try:\n info = await remme.certificate.get_info(certificate)\n print(f'Info: {info.data}')\n\n certificate_status = await remme.certificate.check(certificate)\n print(f'Certificate is valid: {certificate_status}')\n break\n\n except RpcGenericServerDefinedError:\n continue\n```\n\n#### Subscribing to Events\n\nRemmeEvents is enums which describe all available events.\n\n```python\nfrom remme.models.websocket.events import RemmeEvents\n\nevents = await remme.events.subscribe(events=RemmeEvents.AtomicSwap.value)\n\nasync for response in events:\n\n print(\"connected\")\n \n if isinstance(response, dict):\n print(response)\n \n else:\n print(f'State: {response.state}')\n print(f'Sender address: {response.sender_address}')\n print(f'Receiver address: {response.receiver_address}')\n print(f'Amount: {response.amount}')\n\n```\n\nAlso we give a possibility to start listen events from previous block by providing last known block id.\n\n```python\nfrom remme.models.websocket.events import RemmeEvents\n\nevents = await remme.events.subscribe(\n events=RemmeEvents.AtomicSwap.value, \n last_known_block_id='db19f0e3b3f001670bebc814e238df48cef059f3f0668f57702ba9ff0c4b8ec45c7298f08b4c2fa67602da27a84b3df5dc78ce0f7774b3d3ae094caeeb9cbc82',\n)\n\nasync for response in events:\n\n print(\"connected\")\n \n if isinstance(response, dict):\n print(response)\n \n else:\n print(f'State: {response.state}')\n print(f'Sender address: {response.sender_address}')\n print(f'Receiver address: {response.receiver_address}')\n print(f'Amount: {response.amount}')\n```\n\nUnsubscribe from listening events.\n\n```python\nawait remme.events.unsubscribe(events=RemmeEvents.AtomicSwap.value)\n```\n\n## Contributing\n\nClone the project and install requirements:\n\n```bash\n$ git clone git@github.com:Remmeauth/remme-client-python.git && cd remme-client-python\n$ pip3 install -r requirements.txt\n$ pip3 install -r requirements-dev.txt\n```\n\nIf you prefer working with the [Docker](https://www.docker.com), follow:\n\n```bash\n$ git clone git@github.com:Remmeauth/remme-client-python.git && cd remme-client-python\n$ docker build -t remme-client-python . -f Dockerfile\n$ docker run -v $PWD:/remme-client-python --name remme-client-python remme-client-python\n```\n\nEnter the container bash, check `Python` version and run tests:\n\n```bash\n$ docker exec -it remme-client-python bash\n$ root@98247c92404d:/remme-client-python# python --version\n$ root@98247c92404d:/remme-client-python# pytest -vv tests\n```\n\nClean container and images with the following command:\n\n```bash\n$ docker rm $(docker ps -a -q) -f\n$ docker rmi $(docker images -q) -f\n```\n\n## License\n\nRemme software and documentation are licensed under `Apache License Version 2.0 `.",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/Remmeauth/remme-client-python",
"keywords": "",
"license": "Apache License 2.0",
"maintainer": "",
"maintainer_email": "",
"name": "remme",
"package_url": "https://pypi.org/project/remme/",
"platform": "",
"project_url": "https://pypi.org/project/remme/",
"project_urls": {
"Homepage": "https://github.com/Remmeauth/remme-client-python"
},
"release_url": "https://pypi.org/project/remme/1.1.1/",
"requires_dist": null,
"requires_python": "",
"summary": "Python integration library for REMChain.",
"version": "1.1.1"
},
"last_serial": 5292268,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "368114b8098e26371e07d399ff08c8ee",
"sha256": "edc0ed5db4c63cfe75bbd86f8bb292f80c0786c1c1f7abea082bbac8b1559d2c"
},
"downloads": -1,
"filename": "remme-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "368114b8098e26371e07d399ff08c8ee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 54518,
"upload_time": "2019-03-21T12:07:18",
"url": "https://files.pythonhosted.org/packages/ba/f7/7d847bcdc114237ffeb43d751869c50b618d2b5139219d9c5e2a458d9048/remme-1.0.0.tar.gz"
}
],
"1.1.0a1": [
{
"comment_text": "",
"digests": {
"md5": "7b06c648fab1c17935bcdea0d850acf7",
"sha256": "cc382a437a6617cb28632963ede6bf89f715339b1770c87593480553da635d36"
},
"downloads": -1,
"filename": "remme-1.1.0a1.tar.gz",
"has_sig": false,
"md5_digest": "7b06c648fab1c17935bcdea0d850acf7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60534,
"upload_time": "2019-04-23T15:38:29",
"url": "https://files.pythonhosted.org/packages/54/0c/9a9893ac87f68a2de7b66f182bb7422a5d0efc5de4eb8b0e58135b31b186/remme-1.1.0a1.tar.gz"
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "daba1f35803608f7d289b1b8c874b610",
"sha256": "cabccaeac154f8904589dd56ac34aa44125a678c679fcae2c38dd494fb63a1fb"
},
"downloads": -1,
"filename": "remme-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "daba1f35803608f7d289b1b8c874b610",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60276,
"upload_time": "2019-05-20T13:13:16",
"url": "https://files.pythonhosted.org/packages/b8/e1/5871831a2979943b8fa130000a9c59a5a2635dc4401e2064662f3a249c8c/remme-1.1.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "daba1f35803608f7d289b1b8c874b610",
"sha256": "cabccaeac154f8904589dd56ac34aa44125a678c679fcae2c38dd494fb63a1fb"
},
"downloads": -1,
"filename": "remme-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "daba1f35803608f7d289b1b8c874b610",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60276,
"upload_time": "2019-05-20T13:13:16",
"url": "https://files.pythonhosted.org/packages/b8/e1/5871831a2979943b8fa130000a9c59a5a2635dc4401e2064662f3a249c8c/remme-1.1.1.tar.gz"
}
]
}