A Python library for the MythX platform
PythX is a library for the MythX smart contract security analysis platform.
MythX is a security analysis API that allows anyone to create purpose-built security tools for smart contract developers. Tools built on MythX integrate seamlessly into the development environments and continuous integration pipelines used throughout the Ethereum ecosystem.
PythX runs on Python 3.6+ and PyPy3.
To get started, simply run
$ pip3 install pythx
Alternatively, clone the repository and run
$ pip3 install .
Or directly through Python’s
$ python3 setup.py install
PythX aims to provide an easy-to-use interface to the official MythX API. Its goal is to turbocharge tool development and make it easy to deal with even complex use cases.
from pythx import Client c = Client(api_key="...") # submit bytecode, source files, their AST and more! resp = c.analyze(bytecode="0xfe") # wait for the analysis to finish while not c.analysis_ready(resp.uuid): time.sleep(1) # have all your security report data at your fingertips for issue in c.report(resp.uuid): print(issue.swc_title or "Undefined", "-", issue.description_short) # Output: # Assert Violation - A reachable exception has been detected. # Undefined - MythX API trial mode.
Originally, the PythX CLI was a proof of concept to display to interested developers what can be done using the library. The interest in the CLI grew so large that a lot of developers contacted me and asked for support and new features.
This is the PSA that I will no longer maintain the PythX CLI. But wait! There’s more!
Because a PoC is not exactly what you would call future-proof and maintainable software, I have decided to do a complete revamp. It is called mythx-cli and incorporates all feature requests I have gotten so far. Check it out here and let me know what you think!
Update pytest from 5.1.2 to 5.2.0
Update mythx-models to 1.4.0
Remove the PythX CLI PoC
Add PSA about deprecation and link to new mythx-cli repository
Update twine from 1.14.0 to 1.15.0
Bump mythx-models to 1.3.5
Update twine from 1.13.0 to 1.14.0
Clean up dependencies
Bump mythx-models to 1.3.3
Bump mythx-models to 1.3.2
Add support to fetch analysis result input by UUID
Add an auth check override to handle situations where only the access token is given
Update mythx-models to 1.3.1
Update mythx-models to 1.3.0
Add mythx-models integration
Add debug flag to CLI
Add support for the clientToolName response field
Add support for the new source list format validation
Update the bumpversion expression to support black formatting
Add main docstring description
mainSourcesupport to CLI
Fix bug where submission object was malformed (“AST” -> “ast”)
Upgrade pytest dependency
Add middleware to disable analysis cache
Add CLI support to analyze compiled Truffle projects
Fix bug where reports were not completely shown
Update the authentication data format
Add support for the mainSource field
Add shortcut to inject middlewares in Client
Fix issue in schema detection
Upgrade Sphinx dependency
100% branch coverage achieved
100% doc coverage achieved
Examples provided in repo readme
Automatic PyPI deployment on version tag change
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for pythx-1.6.1-py2.py3-none-any.whl