{ "info": { "author": "Bogdan Kurinnyi", "author_email": "bogdankurinniy.dev1@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "|release| |coverage| |license|\n\nethereumd-proxy\n===============\n\nProxy client-server for Ethereum node using JSON-RPC interface.\n\nWhy?\n----\nMostly popular cryptocurrencies usually are forks of Bitcoin and all of them support Bitcoin protocol for communication with their full nodes. Ethereum go hard by own way and made own API for that. This library is a proxy to Ethereum node which implement many API methods like in bitcoind. Also it have signals like blocknotify and walletnotify.\nAll these features are implemented by ethereumd-proxy using polling and other techniques behind the scene.\n\nInstallation\n------------\n\nPython 3.5+ required.\n\nFirst you need Geth/Parity or any other ethereum node (for listening). Tested on Geth 1.6.7 and used in production.\n\nInstallation\n\n.. code:: bash\n\n $ pip install ethereumd-proxy\n\nUsage\n-----\nIt is the same as bitcoin-cli. Except it is not a node runner, just simple proxy for listening actual node.\n\nAvailable command list:\n\n.. code:: bash\n\n $ ethereum-cli -help\n\nTo start proxy server use:\n\n.. code:: bash\n\n $ ethereum-cli -datadir= -daemon\n\nTo stop server:\n\n.. code:: bash\n\n $ ethereum-cli -datadir= stop\n\nAlso can be used as python client connector:\n\n.. code:: python\n\n import asyncio\n import ethereumd\n\n loop = asyncio.get_event_loop()\n\n async def go():\n client = await ethereumd.create_ethereumd_proxy(\n 'http://localhost:8545', loop=loop)\n\n val = await client.validateaddress('0x6cace0528324a8afc2b157ceba3cdd2a27c4e21f')\n print(val) # will print {'isvalid': True, 'address': '0x6cace0528324a8afc2b157ceba3cdd2a27c4e21f', 'scriptPubKey': 'hex', 'ismine': False, 'iswatchonly': False, 'isscript': False, 'pubkey': '0x6cace0528324a8afc2b157ceba3cdd2a27c4e21f', 'iscompressed': False, 'timestamp': None}\n\n address = await client.getnewaddress(passphrase='admin')\n print(address) # will print address like '0x137dd92be1d986eb3af023d0fb6fa8436c3ee5f8'\n\n loop.run_until_complete(go())\n\n\n\nImplemented JSON-RPC methods\n----------------------------\n\n+-----------------+------------------+------------------+\n| Util | Wallet | Blockchain |\n+=================+==================+==================+\n| validateaddress | getbalance | getblockhash |\n+-----------------+------------------+------------------+\n| estimatefee | settxfee | getdifficulty |\n+-----------------+------------------+------------------+\n| | listaccounts | getblockcount |\n+-----------------+------------------+------------------+\n| | gettransaction | getbestblockhash |\n+-----------------+------------------+------------------+\n| | sendfrom | getblock |\n+-----------------+------------------+------------------+\n| | sendtoaddress | |\n+-----------------+------------------+------------------+\n| | walletlock | |\n+-----------------+------------------+------------------+\n| | walletpassphrase | |\n+-----------------+------------------+------------------+\n| | getnewaddress | |\n+-----------------+------------------+------------------+\n\n\nPlanned add more methods as soon as possible. Read help of some method first before use!\n\nSample of ethereum.conf\n-----------------------\n\n.. code:: bash\n\n #\n # ETHEREUMD-PROXY options (for controlling a running proxy process)\n #\n\n # Local server address for ethereumd-proxy RPC:\n #ethpconnect=127.0.0.1\n\n # Local server port for ethereumd-proxy RPC:\n #ethpport=9500\n\n #\n # JSON-RPC options (for controlling a running ethereum process)\n #\n\n # You can use go-ethereum to send commands to ethereum\n # running on another host using this option:\n #rpcconnect=127.0.0.1\n\n # Listen for RPC connections on this TCP port:\n #rpcport=8545\n\n # Listen for RPC connections on this unix/ipc socket:\n #ipcconnect=~/.ethereum/geth/geth.ipc\n\n #\n # Signals options (for controlling a script management process)\n #\n\n # Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)\n #walletnotify=\n # Execute command when the best block changes (%s in cmd is replaced by block hash)\n #blocknotify=\n # Execute command when a relevant alert is received (%s in cmd is replaced by message)\n # TODO: add notification of long fork\n #alertnotify=\n\nCopy it to your datadir folder or use direct path to it.\n\n\nTODO\n----\n* Add more RPC methods;\n* Track orphaned blocks;\n\n\n.. |release| image:: https://img.shields.io/badge/release-v0.3.0-brightgreen.svg\n :target: https://github.com/DeV1doR/ethereumd-proxy/releases/tag/v0.3.0\n :alt: Release\n\n.. |coverage| image:: https://codecov.io/gh/DeV1doR/ethereumd-proxy/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/DeV1doR/ethereumd-proxy\n :alt: Test coverage\n\n.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://opensource.org/licenses/MIT\n :alt: MIT License\n\nChanges\n=======\n\n0.3.0 (2017-10-01)\n------------------\n\n* Integrated aioethereum library;\n* Fixed not worked tests;\n* Add new tests;\n\n0.2.0 (2017-08-31)\n------------------\n\n* Added new RPC methods:\n\n * getblockhash;\n * validateaddress;\n * estimatefee;\n * listsinceblock;\n * walletpassphrase;\n * walletlock;\n * getnewaddress;\n * sendfrom;\n\n* Added some methods optimizations;\n\n0.1.2 (2017-08-09)\n------------------\n\n* Increased testcov to 77%;\n* Added more tests for methods;\n* Fix error with alernotify;\n\n0.1.1 (2017-07-31)\n------------------\n\n* Added tests and codecov;\n\n0.1 (2017-07-25)\n----------------\n\n* Added cli for proxy RPC server;\n* Some bug fixes in API;\n* Added new RPC methods:\n\n * getbalance;\n * settxfee;\n * listaccounts;\n * gettransaction;\n * getdifficulty;\n * getblockcount;\n * getbestblockhash;\n * getblock;\n * sendtoaddress;\n\n\n0.1a (2017-07-22)\n-----------------\n\n* Initial release\n* Added RPC methods:\n\n * gettransaction;\n * getblock;\n * listaccounts;", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/DeV1doR/ethereumd-proxy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ethereumd-proxy", "package_url": "https://pypi.org/project/ethereumd-proxy/", "platform": "", "project_url": "https://pypi.org/project/ethereumd-proxy/", "project_urls": { "Homepage": "https://github.com/DeV1doR/ethereumd-proxy" }, "release_url": "https://pypi.org/project/ethereumd-proxy/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "Proxy client-server for Ethereum node using JSON-RPC interface.", "version": "0.3.0" }, "last_serial": 3215850, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "9b23ef1c452e4bfed7c4b62410524ae7", "sha256": "b78ab746306cff2bf3dfe3aa132e90c202423862b81801e39f7943cf193f9022" }, "downloads": -1, "filename": "ethereumd_proxy-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9b23ef1c452e4bfed7c4b62410524ae7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28221, "upload_time": "2017-08-16T20:09:17", "url": "https://files.pythonhosted.org/packages/2b/66/c7a2900dcec4d74969d0da11db5e83304380cd71ddadb3d107a7253e0b78/ethereumd_proxy-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8c423622f98fc27ac05cac6ef2a190a", "sha256": "47d2ae7f5c84b16b25bd624e39f79fb8fa3ed0c8b831ec2ea6c7618a8800a94b" }, "downloads": -1, "filename": "ethereumd-proxy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e8c423622f98fc27ac05cac6ef2a190a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23810, "upload_time": "2017-08-16T19:56:33", "url": "https://files.pythonhosted.org/packages/db/e2/1795dd6d0c9426cacf33d919a13a2ab6b5a84bc2d1f557c7168fd02d5ec5/ethereumd-proxy-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a3606e4c22c16f723e2c3453fa814a87", "sha256": "ec01132e16876367ad0b1b2c5ecf05bbe9db207302b433540cb597fc0c74380b" }, "downloads": -1, "filename": "ethereumd_proxy-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a3606e4c22c16f723e2c3453fa814a87", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 32098, "upload_time": "2017-08-31T13:20:55", "url": "https://files.pythonhosted.org/packages/b7/4c/5073b28adfed687b3e92268df8587772a655b25528fe699000bf948e14b2/ethereumd_proxy-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f3996ee66c9670d6fe30c96b8f65c49", "sha256": "b45a23adebc28b94894bae176f7eb9778129b2a488008508413c07b924689b1d" }, "downloads": -1, "filename": "ethereumd-proxy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6f3996ee66c9670d6fe30c96b8f65c49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24687, "upload_time": "2017-08-31T13:12:19", "url": "https://files.pythonhosted.org/packages/20/7b/2480595308d5026a6c1b9136b838daeaa68f25cd6ecfe7752ff86272d185/ethereumd-proxy-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "eda1b585eaac7a8fa7181225228f6eac", "sha256": "2aa1f289cdf9b21298456d7374462aa110d17267be4cb685a3566765c3459af2" }, "downloads": -1, "filename": "ethereumd_proxy-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eda1b585eaac7a8fa7181225228f6eac", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 141103, "upload_time": "2017-10-01T01:27:00", "url": "https://files.pythonhosted.org/packages/3d/98/18eb4fa433da85e77f9939ef70df16c10d81498fc81449fab4ca521fc7fa/ethereumd_proxy-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15e6db58cf2668a16a22ba7628dc1f55", "sha256": "0e2d85a8ef1ecb67f9e87cb387f5ccd0a8ddbcfad716496770c8c66d01f77c38" }, "downloads": -1, "filename": "ethereumd-proxy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "15e6db58cf2668a16a22ba7628dc1f55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 132501, "upload_time": "2017-10-01T01:26:57", "url": "https://files.pythonhosted.org/packages/87/e4/c23b568b2dae5923a1fb3a6d0536d4770630013fef9b79fa55bfd47488d9/ethereumd-proxy-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eda1b585eaac7a8fa7181225228f6eac", "sha256": "2aa1f289cdf9b21298456d7374462aa110d17267be4cb685a3566765c3459af2" }, "downloads": -1, "filename": "ethereumd_proxy-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eda1b585eaac7a8fa7181225228f6eac", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 141103, "upload_time": "2017-10-01T01:27:00", "url": "https://files.pythonhosted.org/packages/3d/98/18eb4fa433da85e77f9939ef70df16c10d81498fc81449fab4ca521fc7fa/ethereumd_proxy-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15e6db58cf2668a16a22ba7628dc1f55", "sha256": "0e2d85a8ef1ecb67f9e87cb387f5ccd0a8ddbcfad716496770c8c66d01f77c38" }, "downloads": -1, "filename": "ethereumd-proxy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "15e6db58cf2668a16a22ba7628dc1f55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 132501, "upload_time": "2017-10-01T01:26:57", "url": "https://files.pythonhosted.org/packages/87/e4/c23b568b2dae5923a1fb3a6d0536d4770630013fef9b79fa55bfd47488d9/ethereumd-proxy-0.3.0.tar.gz" } ] }