{ "info": { "author": "tintinweb", "author_email": "tintinweb@oststrom.com", "bugtrack_url": null, "classifiers": [], "description": "[![Build Status](https://api.travis-ci.org/tintinweb/evmdasm.svg?branch=master)](https://travis-ci.org/tintinweb/evmdasm/)\n\n# evmdasm\n*A lightweight ethereum evm bytecode instruction registry and disassembler library.*\n\nThis library is meant for providing a static interface and registry for EVM opcodes and instructions. The idea is to keep it as lightweight as possible especially when it comes to dependencies or high level features.\n\ne.g. The [ethereum-dasm](https://github.com/tintinweb/ethereum-dasm) project - a kind of high level disassembler with static/dynamic analysis features - relies on the registry and base disassembling functionality provided by [evmdasm](https://github.com/tintinweb/evmdasm). \n\n\nFor more information visit the [Wiki](https://github.com/tintinweb/evmdasm/wiki)\n\n### Setup\n\n##### from pypi\n```\n#> python3 -m pip install evmdasm\n```\n\n##### from source\n```\n#> python3 setup.py install\n```\n\n### Commandline Utility\n\n#### usage\n```\n#> python3 -m evmdasm --help\n```\n\n#### disassemble\n```\n#> echo 60406040ff | python3 -m evmdasm --disassemble\n#> python3 -m evmdasm --disassemble 0x60406040ff\nPUSH1 40\nPUSH1 40\nSELFDESTRUCT\n```\n\n#### list available instructions\n```\n#> python3 -m evmdasm --list []\n0xop | instruction category gas\n============================================================\n0x0 | STOP terminate 0\n0x1 | ADD arithmetic 3\n0x2 | MUL arithmetic 5\n0x3 | SUB arithmetic 3\n...\n0xf0 | CREATE system 32000\n0xf1 | CALL system 40\n0xf2 | CALLCODE system 40\n0xf3 | RETURN terminate 0\n0xf4 | DELEGATECALL system 40\n0xf5 | CREATE2 system 32000\n0xfa | STATICCALL system 40\n0xfd | REVERT terminate 0\n0xff | SELFDESTRUCT terminate 0\n\n```\n\n### Library\n\n#### accessing the instruction registry\n\n* `registry.INSTRUCTIONS` holds instruction templates. These are the initial set ob instructions available to the evm. Keep the templates static/unchanged.\n* To create a new instruction from a template either use `instruction.clone()` or `registry.create_instruction(name=; or opcode=)`. Feel free to do anything you want with this new instance of an evm instruction. \n* To add new instructions just create an `Instruction(...)` object and put it into `registry.INSTRUCTIONS`\n\n\n```python\nfrom evm_instruction import registry\n\n# access via named dict\njmp = registry.instruction.JUMP\n\n# access via dict\n## accessing the template objects (avoid modifying them)\n\njmp = registry.INSTRUCTIONS_BY_OPCODE[\"JUMP\"] # get the template object from the instruction registry \njmp = registry.INSTRUCTIONS_BY_NAME[\"JUMP\"] # get the template object from the instruction registry \n\njmp = jmp.clone() # clone a new instruction from the template object\n\n## creating new instruction objects from the template \njmp = registry.create_instruction(name=\"JUMP\") # create a new jump instruction object in order to keep (\n\n# access via categories lookup\nterminating_instructions = registry.INSTRUCTIONS_BY_CATEGORY[\"terminate\"]\n\n# access all instructions as a list (no guarantee this is sorted in the future)\nlist_of_all_instructions = registry.INSTRUCTIONS\n\n# extract certain instructions\nlist_of_gas_heavy_instructions = [i for i in registry.INSTRUCTIONS if i.gas > 500]\n\n```\n\n#### disassembling bytecode\n\n* to work with evm-bytecode create a new `EvmBytecode(...)` object. It either takes `bytes`, `0x` or `hexstr`\n* use `EvmBytecode.disassemble()` to transform it into a `EvmInstructions(...)` object (actually a custom `list` of `Instruction(...)` objects)\n* use `EvmInstructions.assemble()` to transform it into a `EvmBytecode(...)` object. \n\n```python\n# disassemble\n\nevm_bytecode = '606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806319e30bc7146100775780635bd74afe146101055780639df211541461017f578063b1d131bf146101ad575b6000366001919061007492919061042d565b50005b341561008257600080fd5b61008a610202565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100ca5780820151818401526020810190506100af565b50505050905090810190601f1680156100f75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506102a0565b005b6101ab600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061038d565b005b34156101b857600080fd5b6101c0610408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102985780601f1061026d57610100808354040283529160200191610298565b820191906000526020600020905b81548152906001019060200180831161027b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156102fb57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16818360405180828051906020019080838360005b83811015610341578082015181840152602081019050610326565b50505050905090810190601f16801561036e5780820380516001836020036101000a031916815260200191505b5091505060006040518083038185876187965a03f19250505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561040557600080fd5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061046e57803560ff191683800117855561049c565b8280016001018555821561049c579182015b8281111561049b578235825591602001919060010190610480565b5b5090506104a991906104ad565b5090565b6104cf91905b808211156104cb5760008160009055506001016104b3565b5090565b905600a165627a7a723058202592c848fd2bdbf19b6558815a8c0a67519b4ad552eb001c92109a188ef215950029'\n\nevmcode = EvmBytecode(evm_bytecode) # can be hexstr, 0xhexstr or bytes\nevminstructions = evmcode.disassemble() # returns an EvmInstructions object (actually a list of new instruction objects)\n\n# print instructions\nfor instr in evminstructions:\n print(instr.name)\n\n# assemble instructions\nprint(evm_bytecode == evminstructions.assemble().as_hexstring) # assemble the instructionlist\n\n```\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/tintinweb/evmdasm/tarball/v0.1.8", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tintinweb/evmdasm", "keywords": "evmdasm,ethereum,blockchain,evm,disassembler", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "evmdasm", "package_url": "https://pypi.org/project/evmdasm/", "platform": "", "project_url": "https://pypi.org/project/evmdasm/", "project_urls": { "Download": "https://github.com/tintinweb/evmdasm/tarball/v0.1.8", "Homepage": "https://github.com/tintinweb/evmdasm" }, "release_url": "https://pypi.org/project/evmdasm/0.1.8/", "requires_dist": null, "requires_python": "", "summary": "A lightweight ethereum evm bytecode asm instruction registry and disassembler library.", "version": "0.1.8" }, "last_serial": 4397540, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "aa3cc96b3b3825a42e26a653fa568374", "sha256": "978bb24a517a41135641d92b38970d6790c97998795475e61a28e3aee803d3dd" }, "downloads": -1, "filename": "evmdasm-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aa3cc96b3b3825a42e26a653fa568374", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11976, "upload_time": "2018-10-06T17:55:55", "url": "https://files.pythonhosted.org/packages/d1/95/4492c44b7bc70e9b397878121dbcc66d4a7c1ff100a2f65ed2b39bddf522/evmdasm-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f69e409d5ef288facc91874dbdc646d0", "sha256": "76a3b3578ad812f2dce289bca902225cadcb00bca5480bb3d1642567b0020fdf" }, "downloads": -1, "filename": "evmdasm-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f69e409d5ef288facc91874dbdc646d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10532, "upload_time": "2018-10-06T17:55:56", "url": "https://files.pythonhosted.org/packages/1e/8c/2bac6a8967664f8cab4a7c85b60cfe876653946813d8de5ce84d15b4821c/evmdasm-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8fd78409996736fbf0e577d5e87c2dae", "sha256": "e9aa676e0e40f6c4671ece02bebcbb117da09b71ef757600db3670062a98cc43" }, "downloads": -1, "filename": "evmdasm-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8fd78409996736fbf0e577d5e87c2dae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12188, "upload_time": "2018-10-06T18:46:01", "url": "https://files.pythonhosted.org/packages/ab/dd/4d7003e8fa953a54a57a2f33e742cbc5b136c7b93fb1e141242b3d9a8030/evmdasm-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22c75554003f411c830e49cfed82ad2a", "sha256": "03664c9ab3ca8d439986b46ae0a9c7a22fcd91b8e8fa24a9247ccb4ea6e34a6f" }, "downloads": -1, "filename": "evmdasm-0.1.1.tar.gz", "has_sig": false, "md5_digest": "22c75554003f411c830e49cfed82ad2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10741, "upload_time": "2018-10-06T18:46:03", "url": "https://files.pythonhosted.org/packages/09/06/01d390476510973ace3a04f14245506400ffa534f1b565579eb21a637fc0/evmdasm-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "73d50012b0a6dfc1cbb9bd36d300ff0d", "sha256": "c2a857aaa1f20a89bda998eb462dbc82f75f4bc8b7503b8cd9128b6f5fa8436e" }, "downloads": -1, "filename": "evmdasm-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "73d50012b0a6dfc1cbb9bd36d300ff0d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12797, "upload_time": "2018-10-06T20:01:22", "url": "https://files.pythonhosted.org/packages/98/ad/cae941469c655bd843ca061ac19bd46c70d4244da0a73f52ab050c2788c7/evmdasm-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebe4e19de8e04ea60e3d35b639eebbed", "sha256": "fec51eabe47901e06fb323f16763b0f04a00f67fed79bc8878c3867d2d454bc1" }, "downloads": -1, "filename": "evmdasm-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ebe4e19de8e04ea60e3d35b639eebbed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11363, "upload_time": "2018-10-06T20:01:25", "url": "https://files.pythonhosted.org/packages/69/57/7da1a0bd61dd4cb72d7c41ddd1edb8050421abbeb9fd3726611768cfae9b/evmdasm-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f5fa0964a5b8422a4ba45bf075de07d4", "sha256": "8fc70408f1a3e3d798d2aac35ad1108b5d578dd89d2c10d9b593829d4bdd630b" }, "downloads": -1, "filename": "evmdasm-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f5fa0964a5b8422a4ba45bf075de07d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13149, "upload_time": "2018-10-06T20:29:14", "url": "https://files.pythonhosted.org/packages/60/3d/93e96ee162c1b6e75051140727a9a09edbf352c9bce0eb761f2df1a3bb09/evmdasm-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4141490ca75ad24170993d127dbdf9e2", "sha256": "c60f706920f11f8c40c492057a9326f9a9a052cb0dc833c124732d28b0a064e0" }, "downloads": -1, "filename": "evmdasm-0.1.3.tar.gz", "has_sig": false, "md5_digest": "4141490ca75ad24170993d127dbdf9e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11443, "upload_time": "2018-10-06T20:29:15", "url": "https://files.pythonhosted.org/packages/e3/9d/47e1c19ec35d5cb9efe906100dee0cf8d5eb5df1415087befe9d6b50bf52/evmdasm-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "048e70298dd965eb154373d58fe64d20", "sha256": "d8b4950e6af0714eb1b6c2583147dbfe8b62f65dcf5027040537f48938c0b1d3" }, "downloads": -1, "filename": "evmdasm-0.1.4-py3.5.egg", "has_sig": false, "md5_digest": "048e70298dd965eb154373d58fe64d20", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 27191, "upload_time": "2018-10-06T21:09:38", "url": "https://files.pythonhosted.org/packages/19/ed/37de9aa7ac3f4ce5fa09355e433d96338583c25b079afcb6256257246aa0/evmdasm-0.1.4-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "06f9b819a337709ad19b848d0ec208b8", "sha256": "0308a8f7a29dadc635544f58c8f29d3cd967f8ce6866207a14ae538e9a289d55" }, "downloads": -1, "filename": "evmdasm-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "06f9b819a337709ad19b848d0ec208b8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13137, "upload_time": "2018-10-06T21:09:37", "url": "https://files.pythonhosted.org/packages/1c/0e/561952ef616c8817d876c0e6b0dd50380d2b05322b1cdddf79bf52ad590d/evmdasm-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9184956bb3af63820b24bad41fca78a9", "sha256": "2a0e009adcf883e91ff0a353e047e130cbea0728f86fd89596e316af52039b42" }, "downloads": -1, "filename": "evmdasm-0.1.4.tar.gz", "has_sig": false, "md5_digest": "9184956bb3af63820b24bad41fca78a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11449, "upload_time": "2018-10-06T21:09:40", "url": "https://files.pythonhosted.org/packages/16/0e/54b471c7dca9d7357fe20626a4896890b90e9cd7c098f488deffd57bcaea/evmdasm-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "c6054bad98de01276e2565a716feb0b2", "sha256": "3451214044185f3aae5a5a63b4a0361144e26a1d4fd92bc37bed821058cfdee1" }, "downloads": -1, "filename": "evmdasm-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c6054bad98de01276e2565a716feb0b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13142, "upload_time": "2018-10-06T21:57:24", "url": "https://files.pythonhosted.org/packages/1c/20/062da2e4e6492637c0cc9adc14e89137bb6b3dfb333da74266e985e46177/evmdasm-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbf5285a03a71ae22fa5114a96e61b75", "sha256": "4d66d4145e348e1658b0678d5d1c02976a7d26cfac3d6692dab6da9182442ac4" }, "downloads": -1, "filename": "evmdasm-0.1.5.tar.gz", "has_sig": false, "md5_digest": "dbf5285a03a71ae22fa5114a96e61b75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11458, "upload_time": "2018-10-06T21:57:25", "url": "https://files.pythonhosted.org/packages/7b/05/1bc0811e4834216048a59be78951f474e53e7e2ca5db8dc8c30d1c2a263e/evmdasm-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "105750a1b4d99e4614a2cf490087fb38", "sha256": "b84e63fdb9c6d386e294a40c294e4288b2758a28ad0eaed4b95aea8749dd1c51" }, "downloads": -1, "filename": "evmdasm-0.1.6-py3.4.egg", "has_sig": false, "md5_digest": "105750a1b4d99e4614a2cf490087fb38", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 30241, "upload_time": "2018-10-10T19:45:45", "url": "https://files.pythonhosted.org/packages/a0/ef/408938147a7adcb78342f3eb51dc8bd00f9df649d0ec293f2ce887c601b5/evmdasm-0.1.6-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "3212ab015e87ccf9da1f3fc8cdb4e58e", "sha256": "73560b1db79cb810f0b48ccf7f5d24c82ac62c77322dfcd142a18ca347a51877" }, "downloads": -1, "filename": "evmdasm-0.1.6-py3.5.egg", "has_sig": false, "md5_digest": "3212ab015e87ccf9da1f3fc8cdb4e58e", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 30268, "upload_time": "2018-10-10T19:45:46", "url": "https://files.pythonhosted.org/packages/4c/1a/e2aad24408a3198550537ce584ca4f6f98c5e55d4e38f231304df6915078/evmdasm-0.1.6-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "978a8f1e9bdec00aadd75e3082e621ae", "sha256": "1539a5303d81c4d7e01371144005afbc430dba834cd7fa702c336b880a8c2665" }, "downloads": -1, "filename": "evmdasm-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "978a8f1e9bdec00aadd75e3082e621ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14309, "upload_time": "2018-10-10T19:45:44", "url": "https://files.pythonhosted.org/packages/70/75/4c7746f899125c6e48666674cb4f278ff59b722bd4cb7eadf87c43181cc5/evmdasm-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26fbb9fa0056e8509f90ff5d6ec6dfe7", "sha256": "72f3e9878b5b8d23a03c5e08ec0a8f72bba32b87e213afeba187f3837ba0541d" }, "downloads": -1, "filename": "evmdasm-0.1.6.tar.gz", "has_sig": false, "md5_digest": "26fbb9fa0056e8509f90ff5d6ec6dfe7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12305, "upload_time": "2018-10-10T19:45:48", "url": "https://files.pythonhosted.org/packages/59/1c/06a6ab3a822b0039306dde96e75e5b937a65eb011a3872f01b2a86aa8d18/evmdasm-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c86ea461a9389e4f78604512023420fb", "sha256": "01ddeb7f993ac2d6808bf25ee6ed05eb9cfa56782d386293e821e38f3fa8738f" }, "downloads": -1, "filename": "evmdasm-0.1.7-py2.7.egg", "has_sig": false, "md5_digest": "c86ea461a9389e4f78604512023420fb", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 29703, "upload_time": "2018-10-11T20:09:02", "url": "https://files.pythonhosted.org/packages/80/56/707b666715ca73bd4fea61214f97fde809cbac27fe104c42bf94edca0a14/evmdasm-0.1.7-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d766ebb878c651980150f24dad1d4f19", "sha256": "c672d7980ef93184e765b550bf2f299dbcc8601cd891e22d2c37aa0dcb5a0308" }, "downloads": -1, "filename": "evmdasm-0.1.7-py3.5.egg", "has_sig": false, "md5_digest": "d766ebb878c651980150f24dad1d4f19", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 30621, "upload_time": "2018-10-11T20:09:04", "url": "https://files.pythonhosted.org/packages/3e/02/caed8a9bdb8aa68404406cbe243220a5c833fef6a12e0e4f23c0d536800d/evmdasm-0.1.7-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "a84300866704df2f4c212209fc390e04", "sha256": "cbf94e950cb6fcb6c90c2b74ba173ebc2e2f26435a339ec59c802ca4a184a569" }, "downloads": -1, "filename": "evmdasm-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a84300866704df2f4c212209fc390e04", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14412, "upload_time": "2018-10-11T20:09:00", "url": "https://files.pythonhosted.org/packages/02/c3/0768778d0144d8ec8aa55c789fe91cea1c1061c3281c0c628e694e81ccf4/evmdasm-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7003c33d894e7dc547ae740fa49c9af3", "sha256": "e9bd90721fbab081dd2445b79a5b77829b88ca873a1dcd7c36a20450f9ee53b3" }, "downloads": -1, "filename": "evmdasm-0.1.7.tar.gz", "has_sig": false, "md5_digest": "7003c33d894e7dc547ae740fa49c9af3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12425, "upload_time": "2018-10-11T20:09:05", "url": "https://files.pythonhosted.org/packages/2e/c5/14b16241a91a311176c1524f7535051e562a7508cb69b00375addca04e87/evmdasm-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "3203108e2bdf837c536d022b71ef8fb5", "sha256": "2939c2e703a85370bfc9b345c41b774f3cdd57fb266d7adfa971a0dbca62668b" }, "downloads": -1, "filename": "evmdasm-0.1.8-py3.5.egg", "has_sig": false, "md5_digest": "3203108e2bdf837c536d022b71ef8fb5", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 34332, "upload_time": "2018-10-20T16:16:21", "url": "https://files.pythonhosted.org/packages/e3/68/4a26cb59db77c2a8bca26d1072576b0e2af3b8a573c25190d9648f6b4c5b/evmdasm-0.1.8-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "c8d0b146a3a54721bc4603bdd9daf6ef", "sha256": "845fad1bf21d21e265c363f66314bd9e323d13942bbfbc6c6c5a24b561808f6c" }, "downloads": -1, "filename": "evmdasm-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c8d0b146a3a54721bc4603bdd9daf6ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15960, "upload_time": "2018-10-20T16:16:18", "url": "https://files.pythonhosted.org/packages/47/a8/34b8ed11c7592a845b7e72fc2f6ec77019bd2a65df59c23e8f5869e6efb4/evmdasm-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12bc29a2ddfbc077d3923b057b6cab48", "sha256": "cbe0fd91b51d43818ab6812ea5011ccdbd5fe0b9131980fc4dfda160a783830e" }, "downloads": -1, "filename": "evmdasm-0.1.8.tar.gz", "has_sig": false, "md5_digest": "12bc29a2ddfbc077d3923b057b6cab48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13853, "upload_time": "2018-10-20T16:16:23", "url": "https://files.pythonhosted.org/packages/fb/c2/9add0648e215df7920274fce7a6c4071cefc9ec59572bc24ad712577911c/evmdasm-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3203108e2bdf837c536d022b71ef8fb5", "sha256": "2939c2e703a85370bfc9b345c41b774f3cdd57fb266d7adfa971a0dbca62668b" }, "downloads": -1, "filename": "evmdasm-0.1.8-py3.5.egg", "has_sig": false, "md5_digest": "3203108e2bdf837c536d022b71ef8fb5", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 34332, "upload_time": "2018-10-20T16:16:21", "url": "https://files.pythonhosted.org/packages/e3/68/4a26cb59db77c2a8bca26d1072576b0e2af3b8a573c25190d9648f6b4c5b/evmdasm-0.1.8-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "c8d0b146a3a54721bc4603bdd9daf6ef", "sha256": "845fad1bf21d21e265c363f66314bd9e323d13942bbfbc6c6c5a24b561808f6c" }, "downloads": -1, "filename": "evmdasm-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c8d0b146a3a54721bc4603bdd9daf6ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15960, "upload_time": "2018-10-20T16:16:18", "url": "https://files.pythonhosted.org/packages/47/a8/34b8ed11c7592a845b7e72fc2f6ec77019bd2a65df59c23e8f5869e6efb4/evmdasm-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "12bc29a2ddfbc077d3923b057b6cab48", "sha256": "cbe0fd91b51d43818ab6812ea5011ccdbd5fe0b9131980fc4dfda160a783830e" }, "downloads": -1, "filename": "evmdasm-0.1.8.tar.gz", "has_sig": false, "md5_digest": "12bc29a2ddfbc077d3923b057b6cab48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13853, "upload_time": "2018-10-20T16:16:23", "url": "https://files.pythonhosted.org/packages/fb/c2/9add0648e215df7920274fce7a6c4071cefc9ec59572bc24ad712577911c/evmdasm-0.1.8.tar.gz" } ] }