{ "info": { "author": "PRESS.one", "author_email": "dev@press.one", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "prs-utility \u662f PRS \u4e3a Python \u63d0\u4f9b\u7684\u7b97\u6cd5\u5de5\u5177\u5e93\uff0c\u5305\u542b\u9879\u76ee\u4e2d\u7528\u5230\u7684\u6d88\u606f\u6458\u8981\u3001\u7b7e\u540d\u7b97\u6cd5\u3002\n\n## Python \u7248\u672c\u652f\u6301\n\n\u652f\u6301 `>= Python 3.6`\n\n## \u5b89\u88c5\n\n```\npip install prs-utility\n```\n\n## \u4f7f\u7528\u793a\u4f8b\n\n```python\n# \u6839\u636e keystore \u548c password \u5f97\u5230\u79c1\u94a5\nimport json\nimport prs_utility\n\nkeystore = {\n \"address\": \"758ea2601697fbd3ba6eb6774ed70b6c4cdb0ef9\",\n \"crypto\": {\n \"cipher\": \"aes-128-ctr\",\n \"ciphertext\": \"92af6f6710eba271eae5ac7fec72c70d9f49215e7880a0c45d4c53e56bd7ea59\",\n \"cipherparams\": {\n \"iv\": \"13ddf95d970e924c97e4dcd29ba96520\"\n },\n \"mac\": \"b9d81d78f067334ee922fb2863e32c14cbc46e479eeb0acc11fb31e39256004e\",\n \"kdf\": \"pbkdf2\",\n \"kdfparams\": {\n \"c\": 262144,\n \"dklen\": 32,\n \"prf\": \"hmac-sha256\",\n \"salt\": \"79f90bb603491573e40a79fe356b88d0c7869852e43c2bbaabed44578a82bbfa\"\n }\n },\n \"id\": \"93028e51-a2a4-4514-bc1a-94b089445f35\",\n \"version\": 3\n}\npassword = '123123'\nprivate_key = prs_utility.recover_private_key(\n json.dumps(keystore), password\n)\nprint('private_key:', private_key)\n\n# \u8ba1\u7b97 hash \u503c\n## \u8ba1\u7b97 bytes\u3001int\u3001bool \u7684 hash \u503c\n\nprint(prs_utility.keccak256(primitive=b'hello'))\nprint(prs_utility.keccak256(primitive=42))\nprint(prs_utility.keccak256(primitive=True))\n\n\u6ce8\uff1a \u51fd\u6570\u7684\u7b2c\u4e00\u4e2a\u53ef\u9009\u53c2\u6570\u662f primitive\uff0c\u6240\u4ee5\uff0c\u53ef\u4ee5\u4e0d\u5199\u8be5\u53c2\u6570\nprint(prs_utility.keccak256(42))\n\n## \u8ba1\u7b97 text \u6216 \u5b57\u7b26\u4e32 \u7684 hash \u503c\nprint(prs_utility.keccak256(text='hello'))\n\nwith open(__file__) as fp:\n content = fp.read()\nfile_hash = prs_utility.keccak256(text=content)\nprint('file hash:', file_hash)\n\n## \u8ba1\u7b97 hex str \u7684 hash \u503c\nprint(prs_utility.keccak256(hexstr='0xabcd'))\n\n# \u6839\u636e PRS \u534f\u8bae\u7ec4\u5408 block data, \u5e76\u4e14\u4f7f\u7528 privateKey \u8fdb\u884c\u7b7e\u540d\ndata = {\n 'file_hash': file_hash,\n}\nkey_pair = prs_utility.create_key_pair()\nprivate_key = key_pair['privateKey']\nsig = prs_utility.sign_block_data(data, private_key)\nprint('signature:', sig)\n\n# \u751f\u6210\u4e00\u5bf9\u65b0\u5bc6\u94a5\nkey_pair = prs_utility.create_key_pair()\nprint('key_pair:', key_pair)\n```\n\n## API\n\n`prs-utility` \u63d0\u4f9b\u4e86\u5e38\u7528\u7684\u52a0\u89e3\u5bc6\u51fd\u6570\u548c\u4e00\u4e9b\u7528\u4e8e\u683c\u5f0f\u8f6c\u5316\u7684\u5de5\u5177\u51fd\u6570\n\n```\n$ pydoc prs_utility\n```\n\n\n", "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/Press-One/prs-utility-py", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "prs-utility", "package_url": "https://pypi.org/project/prs-utility/", "platform": "any", "project_url": "https://pypi.org/project/prs-utility/", "project_urls": { "Homepage": "https://github.com/Press-One/prs-utility-py" }, "release_url": "https://pypi.org/project/prs-utility/0.0.6/", "requires_dist": [ "eth-keyfile", "coincurve", "eth-utils", "eth-keys", "mypy ; extra == 'dev'", "pytest (>=3) ; extra == 'dev'", "coverage ; extra == 'dev'", "tox ; extra == 'dev'", "twine ; extra == 'dev'" ], "requires_python": ">=3.6", "summary": "prs utility", "version": "0.0.6" }, "last_serial": 5828823, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "27dd7f73673352f55887f9ec28b54794", "sha256": "6fbbf4cf9c0e89c82e83bf800ebaa24b17d0b6df3aecc5034b767ddc2584a9dc" }, "downloads": -1, "filename": "prs_utility-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27dd7f73673352f55887f9ec28b54794", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 5680, "upload_time": "2019-06-10T09:46:38", "url": "https://files.pythonhosted.org/packages/0b/72/38bb3cbff466d9633e52e69eec4d8867f361d0746db6342f70e490092c0b/prs_utility-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0e41d3cd16412c6d42bb15d67a790b2", "sha256": "b0e5ca34db0da6953cb8ec962a02e7c44156a6f149ce9dcd90436aba955436b9" }, "downloads": -1, "filename": "prs-utility-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e0e41d3cd16412c6d42bb15d67a790b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10411, "upload_time": "2019-06-10T09:46:40", "url": "https://files.pythonhosted.org/packages/fd/fd/3dfda7ef9c92305ea800b41ca24683ae6455b5ca10a5f2c9a6ea14eec6ee/prs-utility-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7b54294612dcd2f5c202de2efa01fbb4", "sha256": "8ef8a312c93fc59dc76f46a3fdc104b2d781a2f5ec41838d2eafd4a9e57082e9" }, "downloads": -1, "filename": "prs_utility-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b54294612dcd2f5c202de2efa01fbb4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 5852, "upload_time": "2019-06-11T14:21:45", "url": "https://files.pythonhosted.org/packages/4c/08/33e19bcb8ee71161d07cbc1a5515879721845068e8f96bb2a67f6414dca4/prs_utility-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69daf07f0bc861b094ee6e2e3dceef7e", "sha256": "9043546da4d0eec72c389c9464c58daaf1a635b91f4ff136f32e044a79024910" }, "downloads": -1, "filename": "prs-utility-0.0.4.tar.gz", "has_sig": false, "md5_digest": "69daf07f0bc861b094ee6e2e3dceef7e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10601, "upload_time": "2019-06-11T14:21:47", "url": "https://files.pythonhosted.org/packages/07/3b/a5d45678b110ced8d4c138c0254782d1f226c16440215b1eb7df7467d263/prs-utility-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "fec6f54ffc3955b2012df3913bc751da", "sha256": "6bf95f6cdcda704296b51e2a999a0d6785fed1a812ae26d01de18c9f55c3ec79" }, "downloads": -1, "filename": "prs_utility-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fec6f54ffc3955b2012df3913bc751da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6084, "upload_time": "2019-07-04T08:37:46", "url": "https://files.pythonhosted.org/packages/fe/71/681af0196f431c432c1a87529df27c8b2a812ed3e2a9225f7983acc2f2c5/prs_utility-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72cb9e1d80600a93f73525c80a089d89", "sha256": "247b64e70fd566cc9a7187e4c365d003efd453d2c96d3e680c67678710a09116" }, "downloads": -1, "filename": "prs-utility-0.0.5.tar.gz", "has_sig": false, "md5_digest": "72cb9e1d80600a93f73525c80a089d89", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11125, "upload_time": "2019-07-04T08:37:49", "url": "https://files.pythonhosted.org/packages/e5/54/8d7759f11c82d09dc13ad9723cd5b7685f89fe7c5dd61c990f4594a7f103/prs-utility-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "108c069d9bff62911b302e9faec9d82d", "sha256": "dbd21392d80ddec75b85bef9273f3fd8b89379f0b72b81711e9d2ae9b6a90f89" }, "downloads": -1, "filename": "prs_utility-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "108c069d9bff62911b302e9faec9d82d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6484, "upload_time": "2019-09-14T07:53:22", "url": "https://files.pythonhosted.org/packages/96/9e/56a77fe065c1dcf350b13f6face43a66b79ce235cc797a836752de28a6d2/prs_utility-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28e8d6cfae45e506658288938dceacee", "sha256": "854bf8a1b95b379beb1f1b0900341dd1bd11df14902329a766be280aa3b9923a" }, "downloads": -1, "filename": "prs-utility-0.0.6.tar.gz", "has_sig": false, "md5_digest": "28e8d6cfae45e506658288938dceacee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11555, "upload_time": "2019-09-14T07:53:25", "url": "https://files.pythonhosted.org/packages/5d/b3/86bbf4cfb42d8768f65c83f7f82af877c7d10ee264f34caa6e4a84a73cd1/prs-utility-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "108c069d9bff62911b302e9faec9d82d", "sha256": "dbd21392d80ddec75b85bef9273f3fd8b89379f0b72b81711e9d2ae9b6a90f89" }, "downloads": -1, "filename": "prs_utility-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "108c069d9bff62911b302e9faec9d82d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6484, "upload_time": "2019-09-14T07:53:22", "url": "https://files.pythonhosted.org/packages/96/9e/56a77fe065c1dcf350b13f6face43a66b79ce235cc797a836752de28a6d2/prs_utility-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28e8d6cfae45e506658288938dceacee", "sha256": "854bf8a1b95b379beb1f1b0900341dd1bd11df14902329a766be280aa3b9923a" }, "downloads": -1, "filename": "prs-utility-0.0.6.tar.gz", "has_sig": false, "md5_digest": "28e8d6cfae45e506658288938dceacee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11555, "upload_time": "2019-09-14T07:53:25", "url": "https://files.pythonhosted.org/packages/5d/b3/86bbf4cfb42d8768f65c83f7f82af877c7d10ee264f34caa6e4a84a73cd1/prs-utility-0.0.6.tar.gz" } ] }