Package: pythx
PythXPythX is a library for theMythXsmart contract security analysis platform.Table of ContentsPythXWhat is MythX?InstallationExampleThe PythX CLI has now become the MythX CLI!History1.6.1 [2020-06-16]1.6.0 [2020-06-16]1.5.7 [2020-04-27]1.5.6 [2020-04-21]1.5.5 [2020-02-24]1.5.4 [2020-02-20]1.5.3 [2020-02-10]1.5.2 [2020-01-30]1.5.1 [2020-01-29]1.5.0 [2020-01-29]1.4.1 [2019-11-19]1.4.0 [2019-11-19]1.3.2 [2019-10-04]1.3.1 [2019-10-04]1.3.0 [2019-09-20]1.2.6 [2019-09-19]1.2.5 [2019-09-15]1.2.4 [2019-09-06]1.2.3 [2019-09-05]1.2.2 [2019-08-30]1.2.1 [2019-08-29]1.2.0 [2019-08-26]1.1.8 [2019-06-05]1.1.7 [2019-04-20]1.1.6 [2019-04-19]1.1.5 [2019-04-16]1.1.4 [2019-03-28]1.1.3 [2019-03-25]What is MythX?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.InstallationPythX runs on Python 3.6+ and PyPy3.To get started, simply run$pip3installpythxAlternatively, clone the repository and run$pip3install.Or directly through Python’ssetuptools:$python3setup.pyinstallExamplePythX aims to provide an easy-to-use interface to the officialMythXAPI.
Its goal is to turbocharge tool development and make it easy to deal with
even complex use cases.frompythximportClientc=Client(api_key="...")# submit bytecode, source files, their AST and more!resp=c.analyze(bytecode="0xfe")# wait for the analysis to finishwhilenotc.analysis_ready(resp.uuid):time.sleep(1)# have all your security report data at your fingertipsforissueinc.report(resp.uuid):print(issue.swc_titleor"Undefined","-",issue.description_short)# Output:# Assert Violation - A reachable exception has been detected.The PythX CLI has now become the MythX CLI!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 thatI 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 calledmythx-cliand
incorporates all feature requests I have gotten so far. Check it outhereand let me know what you think!Enjoy! :)History1.6.1 [2020-06-16]Updatemythx-modelsdependency to omit stale warning1.6.0 [2020-06-16]Disable model json schema validation and testsVarious dependency upgrades1.5.7 [2020-04-27]Add property checking middleware and testsVarious dependency upgrades1.5.6 [2020-04-21]Various critical dependency upgradesFix bug where tests failed due to a data mismatch1.5.5 [2020-02-24]Allow direct injection of domain model into client analyze method1.5.4 [2020-02-20]Fix various dependency conflictsAdd better documentation to readme fileUpdate middleware type hints and documentationUpdate API module type hints and documentationVarious dependency upgrades1.5.3 [2020-02-10]Handle ambiguousMYTHX_API_URLdeclarationsVarious dependency upgrades1.5.2 [2020-01-30]Add additional analysis/group list filter parametersVarious dependency upgrades1.5.1 [2020-01-29]Remove trial user support as it has been dropped from the API1.5.0 [2020-01-29]Add pypy3 tests in Travis CIAdd additional query param support to analysis list handlerAdd various test suite improvementsDrop support for Python 3.5 and add support for Python 3.8Remove stale parameter config optionsRemove stale configuration object supportImprove PyPI trove classifiersVarious dependency upgrades1.4.1 [2019-11-19]Extend status code range for failure check in API handler1.4.0 [2019-11-19]Fix bug where empty query parameters were sent to the APIIntroduce group ID/name middlewareAdd group status support in clientAdd group creation/sealing support in clientAdd group list support in clientFix dependency conflict betweenmythx-cliandmythx-modelsVarious dependency upgrades1.3.2 [2019-10-04]Updatemythx-modelsto 1.4.11.3.1 [2019-10-04]Update pytest from 5.1.2 to 5.2.0Updatemythx-modelsto 1.4.01.3.0 [2019-09-20]Remove the PythX CLI PoCAdd PSA about deprecation and link to newmythx-clirepository1.2.6 [2019-09-19]Update twine from 1.14.0 to 1.15.0Bumpmythx-modelsto 1.3.51.2.5 [2019-09-15]Update twine from 1.13.0 to 1.14.0Clean up dependenciesBumpmythx-modelsto 1.3.31.2.4 [2019-09-06]Bumpmythx-modelsto 1.3.2Add support to fetch analysis result input by UUID1.2.3 [2019-09-05]Add an auth check override to handle situations where only the access token is given1.2.2 [2019-08-30]Updatemythx-modelsto 1.3.11.2.1 [2019-08-29]Updatemythx-modelsto 1.3.01.2.0 [2019-08-26]Addmythx-modelsintegration1.1.8 [2019-06-05]Add debug flag to CLIAdd support for theclientToolNameresponse fieldAdd support for the new source list format validationUpdate the bumpversion expression to support black formatting1.1.7 [2019-04-20]Add main docstring description1.1.6 [2019-04-19]AddmainSourcesupport to CLIFix bug where submission object was malformed (“AST” -> “ast”)Upgrade pytest dependency1.1.5 [2019-04-16]Add middleware to disable analysis cacheAdd CLI support to analyze compiled Truffle projectsFix bug where reports were not completely shownUpdate the authentication data formatAdd support for the mainSource fieldAdd shortcut to inject middlewares in Client1.1.4 [2019-03-28]Fix issue in schema detectionUpgrade Sphinx dependency1.1.3 [2019-03-25]Initial release!100% branch coverage achieved100% doc coverage achievedExamples provided in repo readmeAutomatic PyPI deployment on version tag change