{ "info": { "author": "Shayan Eskandari - ConsenSys Diligence", "author_email": "shayan.eskandari@consensys.net", "bugtrack_url": null, "classifiers": [], "description": "\n
\n[\"get](https://diligence.consensys.net)\n
\n\n[[ \ud83c\udf10 ](https://diligence.consensys.net) [ \ud83d\udce9 ](mailto:diligence@consensys.net)]\n

\n\n\n# Legions\n### EVM Node Security Toolkit\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![CircleCI](https://circleci.com/gh/ConsenSys/Legions/tree/master.svg?style=shield)](https://circleci.com/gh/ConsenSys/Legions/tree/master)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n[![PyPI](https://img.shields.io/pypi/v/legions.svg)](https://pypi.org/project/legions/)\n\n\nLegions is a handy toolkit for (security) researchers poking around EVM (Ethereum Virtual Machine) nodes and smart contracts, now with a slick command-line interface, with auto complete commands and history.\n\n### Features:\n - **Node detection** (`getnodeinfo`)\n - Detect the type of the Node, Chain, and Network\n - Peer Count, Listening, Synching, and Mining status\n - Gas Price\n - etc\n - **Web3 API enumeration** (`investigate`)\n - Accounts\n - Read coinbase, and exposed accounts of the node\n - (`intrusive = True`) will try to create accounts on the node\n - Admin\n - Enumerates web3.admin endpoints\n - Sign (WIP)\n - Enumerates signing functionalities (web3.sign)\n - **ENS Queries** (`ens`)\n - List Names owned by an address\n - List Subdomains of an address\n - Query individual names\n - **Query** at latest/specific block number (`query`)\n - Balance of an address\n - Block details\n - Bytecode of the smart contract\n - Read storage of the smart contract (default `count=10` reads the first 10 slots)\n - command, which you can pass any RPC method with args\n - ECRecover of a signature\n - **Conversions** (toWei, fromWei, keccak, toChecksumAddress, etc)\n\n\n**This tool is in beta and a work in progress**\n\n### Demo\n\n#### Main Functionality\n\n![demo](/assets/main.gif \"Main Functionality\")\n\n#### ENS (Ethereum Name Service)\n\n![demo](/assets/ens.gif \"Ethereum Name Service\")\n\n\n\n## Installation\n\nRequire `Python 3.6`.\n\n```bash\npip install legions\n```\n\nOr directly from source code:\n\n```bash\ngit clone https://github.com/shayanb/Legions\ncd Legions\npip install .\n```\n\n\n## Usage\n\nIf installed locally:\n```bash\npython legions.py\n```\n\nor if installed globally:\n\n```bash\nlegions\n```\n\n## Functions Breakdown \n\n| Command | [Subcommand] | Description |\n| :-------------: | :---------------- | :----------------------------------------------------------------------------- |\n| **sethost** | | **Setup the Web3 connection (RPC, IPC, HTTP)** (default to infura mainnet) |\n| **getnodeinfo** | | **Information about the connected node** (run `setnode` before this) |\n| **conversions** | | **Conversions possible to do with Web3** |\n| | fromWei | Converts the input to ether (to `currency` default to ether) |\n| | toWei | Converts the input to Wei (from `currency` default to ether) |\n| | keccak | keccak hash of the input |\n| | toBytes | Converts the input to hex representation of its Bytes |\n| | toChecksumAddress | Converts the input to Checksum Address |\n| | toHex | Converts the input text to Hex |\n| | fromWei | Converts the input to ether (or specified currency) |\n| **query** | | **Query Blockchain (Storage, balance, etc)** |\n| | balance | Get Balance of an account |\n| | block | Get block details by block number |\n| | code | Get code of the smart contract at address |\n| | ecrecover | Get address associated with the signature (ecrecover) `BUGGY` |\n| | storage | Read the storage of a contract (`count` default = 10) |\n| | command | Manual RPC method with args |\n| **investigate** | | **Investigate further in the node** (e.g. check if accounts are unlocked, etc) |\n| | accounts | Investigate accounts (e.g. check if accounts are unlocked, etc) |\n| | admin | Investigate accounts (e.g. functionalities under the admin_ namespace) |\n| | sign | Investigate signature functionalities |\n| **ens** | | **Do Ethereum Name Service queries (supported on the mainnet only)** |\n| | toName | Transform an address to the ENS name |\n| | toAddress | Transform an ENS name to the Ethereum public address |\n| | info | Get details about an ENS name |\n| **version** | | **Print Versions** (If connected to a node it will print the host version too) |\n\n\n\n\n## Acknowledgements\n - Interactive shell: [python-nubia](https://github.com/facebookincubator/python-nubia)\n - [Web3.py](https://github.com/ethereum/web3.py/)\n - Node data provided by [chainid.network](https://chainid.network/)\n - ENS data provided by ENS GraphQL dataset\n\n\n\n## TODO:\n - [ ] eth 2.0 API implementation\n - [ ] Fix `Verbose` Status bar (It does not change from `OFF`)\n - [ ] inline TODOs (tons)\n - [ ] resolve mappings from storage (using ABI?)\n - [ ] Get tokens Balance (etherscan or other explorer API)", "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/consensys/Legions", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "legions", "package_url": "https://pypi.org/project/legions/", "platform": "", "project_url": "https://pypi.org/project/legions/", "project_urls": { "Homepage": "https://github.com/consensys/Legions" }, "release_url": "https://pypi.org/project/legions/0.8.4/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.8.4", "yanked": false, "yanked_reason": null }, "last_serial": 7650731, "releases": { "0.4.1": [ { "comment_text": "", "digests": { "md5": "dd3e92b5e773ce8e6c55b1a22eba1450", "sha256": "b07a197f9bc808bc3c9bc5640467cfb344546cc5d8282eca41e523d03739b8ba" }, "downloads": -1, "filename": "legions-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dd3e92b5e773ce8e6c55b1a22eba1450", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9203, "upload_time": "2019-09-21T09:02:25", "upload_time_iso_8601": "2019-09-21T09:02:25.934733Z", "url": "https://files.pythonhosted.org/packages/9f/88/2661acddb57f27cce4dbac522ff9c54886874455ab1fc20ee664da365c0f/legions-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b3c8fc7ab9ba9fdd7d082b3f5ea220db", "sha256": "5d742af461260c6812abf603f62c0280c7f71c1815a937825349ad53071272f0" }, "downloads": -1, "filename": "legions-0.4.1.tar.gz", "has_sig": false, "md5_digest": "b3c8fc7ab9ba9fdd7d082b3f5ea220db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7160, "upload_time": "2019-09-21T09:02:27", "upload_time_iso_8601": "2019-09-21T09:02:27.091618Z", "url": "https://files.pythonhosted.org/packages/9d/83/bf7ed5c5e4a51b973a91f0431274612929971d57309d01de372ee1af4483/legions-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "c9eb07aa3110da7b9b2fd74c9680fc5d", "sha256": "3f3f359a453dc6a16cad38d336e0a148747289dc9e5be2f27c75eb2f5e0f06e0" }, "downloads": -1, "filename": "legions-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c9eb07aa3110da7b9b2fd74c9680fc5d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11100, "upload_time": "2019-10-22T23:35:42", "upload_time_iso_8601": "2019-10-22T23:35:42.485997Z", "url": "https://files.pythonhosted.org/packages/59/5f/cccda55588044e56b9a6bcec49e938240f490b21be63156727490f7dd802/legions-0.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ea68a15792d9ae2cbbc4e94a51564787", "sha256": "7ba8569abc98e58c55af944ae98871236f3f5422338545948cc85a275a683d3d" }, "downloads": -1, "filename": "legions-0.5.2.tar.gz", "has_sig": false, "md5_digest": "ea68a15792d9ae2cbbc4e94a51564787", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10252, "upload_time": "2019-10-22T23:35:44", "upload_time_iso_8601": "2019-10-22T23:35:44.751499Z", "url": "https://files.pythonhosted.org/packages/c8/36/e49057f8d781d1115d952e6926140318c51072aeaa39460cff84d9926d08/legions-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "8807d0293c200699690088b6ec67df5f", "sha256": "bcb936e1113e0f2921754477906a0abce0083e54bfdfa7802ba390f8f0f90b4c" }, "downloads": -1, "filename": "legions-0.6.0.tar.gz", "has_sig": false, "md5_digest": "8807d0293c200699690088b6ec67df5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10188, "upload_time": "2020-01-23T14:22:44", "upload_time_iso_8601": "2020-01-23T14:22:44.354344Z", "url": "https://files.pythonhosted.org/packages/66/cf/88ffaf8880716e40867f9b2d62b5e882ab9a98b057ef6dbec4ef37c750b4/legions-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "e7f1143383e8a57c5fc0aedf13388f86", "sha256": "9fd1e287a44d6e4b42e3f8437ff9c3978149e4f3df3d1999879a44069a4df5e4" }, "downloads": -1, "filename": "legions-0.6.1.tar.gz", "has_sig": false, "md5_digest": "e7f1143383e8a57c5fc0aedf13388f86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11425, "upload_time": "2020-01-23T14:27:04", "upload_time_iso_8601": "2020-01-23T14:27:04.385838Z", "url": "https://files.pythonhosted.org/packages/27/85/29282899ba5a565668de1376bbd1ed9fb460e250b274da1d8e15509c9e9d/legions-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "017866e3d6537ed4891a8a13d74b50d2", "sha256": "4d8caa2ccc3b81f3004e11c231aa606f799affa11971703abff4e2fbbbcd397c" }, "downloads": -1, "filename": "legions-0.6.2.tar.gz", "has_sig": false, "md5_digest": "017866e3d6537ed4891a8a13d74b50d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11423, "upload_time": "2020-01-23T14:28:47", "upload_time_iso_8601": "2020-01-23T14:28:47.661835Z", "url": "https://files.pythonhosted.org/packages/b4/53/5cbb2f9d272500a02f60757051bceba799bdf0efeb3b89d89c09c91ee1f0/legions-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "521c543578149b9b44be345219b5f731", "sha256": "b1b5babde45c5ca373138ad980003da9a86c453935b3a743c638d31061cecb0c" }, "downloads": -1, "filename": "legions-0.6.3.tar.gz", "has_sig": false, "md5_digest": "521c543578149b9b44be345219b5f731", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11439, "upload_time": "2020-01-23T14:33:11", "upload_time_iso_8601": "2020-01-23T14:33:11.648203Z", "url": "https://files.pythonhosted.org/packages/75/87/bb55abb2903be4d6d480ceb23e249c5ab1d0abade0faf608e5b83d1adf47/legions-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "1ca83d1fce926e76b187f3c6715b2014", "sha256": "e978e6c3f7bf77ea91914e87d864a214aeddb57cfcb4012aba10fb057ca4131e" }, "downloads": -1, "filename": "legions-0.6.4.tar.gz", "has_sig": false, "md5_digest": "1ca83d1fce926e76b187f3c6715b2014", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11424, "upload_time": "2020-01-23T14:53:34", "upload_time_iso_8601": "2020-01-23T14:53:34.663163Z", "url": "https://files.pythonhosted.org/packages/9d/41/5a93f728f1a5448a13d961d81c13d484fe56b7b5bc62f5f5e82bb5103e98/legions-0.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "2709aa549925584667b47c5af2f74003", "sha256": "0b0dd39f99e534b486c64eb366d317d693072690d846e6132e84a36dad2cb427" }, "downloads": -1, "filename": "legions-0.6.5.tar.gz", "has_sig": false, "md5_digest": "2709aa549925584667b47c5af2f74003", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11348, "upload_time": "2020-01-23T17:11:21", "upload_time_iso_8601": "2020-01-23T17:11:21.295633Z", "url": "https://files.pythonhosted.org/packages/87/fa/01df1261b893d53c724496a9de1cfb387a880798bbb3f68e2e8711f90cd1/legions-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "6ff523eef8bac9cba6ba2ce516f59ded", "sha256": "d4550e3eb4a592779c67e8761315772a71adbf82a70ab4a8482cef176c6c224e" }, "downloads": -1, "filename": "legions-0.6.6.tar.gz", "has_sig": false, "md5_digest": "6ff523eef8bac9cba6ba2ce516f59ded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11639, "upload_time": "2020-01-23T17:29:41", "upload_time_iso_8601": "2020-01-23T17:29:41.100989Z", "url": "https://files.pythonhosted.org/packages/6c/1a/d650997092213accca9c5b5eb1c970ab3a7c5bb0f45c44c9120f2f36b1f7/legions-0.6.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "a19568e5e0e899bee004f22ceed4d8d4", "sha256": "51d57d38ef2f30747bac1a51ac7e9cf1fa51657ee0680b591ae5050a7e35b5e2" }, "downloads": -1, "filename": "legions-0.7.0.tar.gz", "has_sig": false, "md5_digest": "a19568e5e0e899bee004f22ceed4d8d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15100, "upload_time": "2020-01-27T12:35:22", "upload_time_iso_8601": "2020-01-27T12:35:22.151143Z", "url": "https://files.pythonhosted.org/packages/e2/38/980c725647d0ffe6d2669bdb7abcb56937660bee9267e6d91a564adaab00/legions-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "ea6bdceb283272845c6f107e8fb58e80", "sha256": "ab042b6935f5b6df1b7c6c6420153b1700211a5b090fe08d882055513767658e" }, "downloads": -1, "filename": "legions-0.7.1.tar.gz", "has_sig": false, "md5_digest": "ea6bdceb283272845c6f107e8fb58e80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15521, "upload_time": "2020-01-27T12:47:21", "upload_time_iso_8601": "2020-01-27T12:47:21.966552Z", "url": "https://files.pythonhosted.org/packages/0d/66/6e3fa78b2a1451b49b190edb2844ac9f329c114d44e051ce6111c0c00b31/legions-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "99f7dc6725f669a4c171bd628ecaf266", "sha256": "a49d46b9b85c96b5d19b2bc3fa82dc0cc27d5349e741d18b108b731f108a2c70" }, "downloads": -1, "filename": "legions-0.7.2.tar.gz", "has_sig": false, "md5_digest": "99f7dc6725f669a4c171bd628ecaf266", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15523, "upload_time": "2020-02-02T15:45:53", "upload_time_iso_8601": "2020-02-02T15:45:53.495930Z", "url": "https://files.pythonhosted.org/packages/6a/ab/46784b806ec0afa4e4de250f04034b0cee26caddd902b4c3bd0868d80cf4/legions-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "1b017a4a26d85b0d7a14e4c2341b07c2", "sha256": "66a22de2362f2205c78bddcf1456254b98b3f6d34818a8507c58997c235fa755" }, "downloads": -1, "filename": "legions-0.8.0.tar.gz", "has_sig": false, "md5_digest": "1b017a4a26d85b0d7a14e4c2341b07c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15770, "upload_time": "2020-04-03T11:59:23", "upload_time_iso_8601": "2020-04-03T11:59:23.337183Z", "url": "https://files.pythonhosted.org/packages/fa/10/1437c2a7acdf668d1b09d57c862fdc6fdf5205fe7af291334a2affa9c07d/legions-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "d21a058d714e97400b72718de4873e13", "sha256": "83e2736ce8fd85a7945d8c7ad53d24782fd2f7c583df6066d63255de9fb50434" }, "downloads": -1, "filename": "legions-0.8.1.tar.gz", "has_sig": false, "md5_digest": "d21a058d714e97400b72718de4873e13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15797, "upload_time": "2020-05-06T21:00:08", "upload_time_iso_8601": "2020-05-06T21:00:08.740795Z", "url": "https://files.pythonhosted.org/packages/3e/1d/4afe0afcc96950fc66978e49cb99797a45582269ea64a845b428e45133c3/legions-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "3c832356dd4705e0322566b75ea8d6d0", "sha256": "b22dbc1f2b62d7491fdc131c80b5ce18c012fcb2d917918a9fea5c70549921cb" }, "downloads": -1, "filename": "legions-0.8.2.tar.gz", "has_sig": false, "md5_digest": "3c832356dd4705e0322566b75ea8d6d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16818, "upload_time": "2020-05-06T21:25:00", "upload_time_iso_8601": "2020-05-06T21:25:00.542274Z", "url": "https://files.pythonhosted.org/packages/a8/2e/097052528428884860d781db650586470a6b11a2b51b917506807db3a721/legions-0.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "8126f9711a651de01616765cb4e5d2b2", "sha256": "59dffb30dd2801c6564410b5403a940fea0c1b20a7177fea615707e0b7b9b2ca" }, "downloads": -1, "filename": "legions-0.8.3-py3.8.egg", "has_sig": false, "md5_digest": "8126f9711a651de01616765cb4e5d2b2", "packagetype": "bdist_egg", "python_version": "3.8", "requires_python": null, "size": 32718, "upload_time": "2020-05-07T14:50:34", "upload_time_iso_8601": "2020-05-07T14:50:34.125464Z", "url": "https://files.pythonhosted.org/packages/65/a9/3030eed3b5db733a444bb54db142e2a04b54dae6af0cecfed1c4f18f865f/legions-0.8.3-py3.8.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "59cf7fc40719c06d9c39162a0998aa56", "sha256": "c8e3cf3da0d1ce4cea1f6f37eafc6303c3d9f597d21d01493af917b4282fb19a" }, "downloads": -1, "filename": "legions-0.8.3.tar.gz", "has_sig": false, "md5_digest": "59cf7fc40719c06d9c39162a0998aa56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16868, "upload_time": "2020-05-07T14:50:35", "upload_time_iso_8601": "2020-05-07T14:50:35.108505Z", "url": "https://files.pythonhosted.org/packages/bf/af/946e1af9dd7d6d5991cf654afd7e28a3f8c47b03edbdd0acac8e2f133d9c/legions-0.8.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "4dd3d8b12a83b29a310ea35887de2fe2", "sha256": "4d51b24afb2c60dcbb318a3c9d37c9e8764a0f1c82929f5c9eb81eb52d5c551e" }, "downloads": -1, "filename": "legions-0.8.4-py3.8.egg", "has_sig": false, "md5_digest": "4dd3d8b12a83b29a310ea35887de2fe2", "packagetype": "bdist_egg", "python_version": "3.8", "requires_python": null, "size": 36704, "upload_time": "2020-07-07T21:24:48", "upload_time_iso_8601": "2020-07-07T21:24:48.860716Z", "url": "https://files.pythonhosted.org/packages/b7/3c/70760590bd867673960f8148e26966b46af1b9ec700244ffb40d71c12b3d/legions-0.8.4-py3.8.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9c41ef46faf28cc73493b105909f85da", "sha256": "8717c0c46c3dc4d357ab29c30af46a144dce58772302ec73859f8ad2fded978c" }, "downloads": -1, "filename": "legions-0.8.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9c41ef46faf28cc73493b105909f85da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19605, "upload_time": "2020-07-07T21:25:06", "upload_time_iso_8601": "2020-07-07T21:25:06.247258Z", "url": "https://files.pythonhosted.org/packages/05/4f/9e374d1d7bedfe2238b924ff7dee1af8634e810af4700bc30574339b4769/legions-0.8.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d7395300fd20a2184a3c4688a78a0051", "sha256": "a9a039476dcaf4ad62bf2e44c77554c6bd148b35bf38e73b125697f3a6eafdb4" }, "downloads": -1, "filename": "legions-0.8.4.tar.gz", "has_sig": false, "md5_digest": "d7395300fd20a2184a3c4688a78a0051", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19545, "upload_time": "2020-07-07T21:24:50", "upload_time_iso_8601": "2020-07-07T21:24:50.010622Z", "url": "https://files.pythonhosted.org/packages/b0/6e/7c03e06d4051730dad35e0acc0feeb17294bc49bbdcd298c041bf3364050/legions-0.8.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4dd3d8b12a83b29a310ea35887de2fe2", "sha256": "4d51b24afb2c60dcbb318a3c9d37c9e8764a0f1c82929f5c9eb81eb52d5c551e" }, "downloads": -1, "filename": "legions-0.8.4-py3.8.egg", "has_sig": false, "md5_digest": "4dd3d8b12a83b29a310ea35887de2fe2", "packagetype": "bdist_egg", "python_version": "3.8", "requires_python": null, "size": 36704, "upload_time": "2020-07-07T21:24:48", "upload_time_iso_8601": "2020-07-07T21:24:48.860716Z", "url": "https://files.pythonhosted.org/packages/b7/3c/70760590bd867673960f8148e26966b46af1b9ec700244ffb40d71c12b3d/legions-0.8.4-py3.8.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9c41ef46faf28cc73493b105909f85da", "sha256": "8717c0c46c3dc4d357ab29c30af46a144dce58772302ec73859f8ad2fded978c" }, "downloads": -1, "filename": "legions-0.8.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9c41ef46faf28cc73493b105909f85da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19605, "upload_time": "2020-07-07T21:25:06", "upload_time_iso_8601": "2020-07-07T21:25:06.247258Z", "url": "https://files.pythonhosted.org/packages/05/4f/9e374d1d7bedfe2238b924ff7dee1af8634e810af4700bc30574339b4769/legions-0.8.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d7395300fd20a2184a3c4688a78a0051", "sha256": "a9a039476dcaf4ad62bf2e44c77554c6bd148b35bf38e73b125697f3a6eafdb4" }, "downloads": -1, "filename": "legions-0.8.4.tar.gz", "has_sig": false, "md5_digest": "d7395300fd20a2184a3c4688a78a0051", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19545, "upload_time": "2020-07-07T21:24:50", "upload_time_iso_8601": "2020-07-07T21:24:50.010622Z", "url": "https://files.pythonhosted.org/packages/b0/6e/7c03e06d4051730dad35e0acc0feeb17294bc49bbdcd298c041bf3364050/legions-0.8.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }