Skip to main content

PythX

https://img.shields.io/pypi/v/pythx.svg https://travis-ci.org/dmuhs/pythx.svg?branch=master https://readthedocs.org/projects/pythx/badge/?version=latest https://pyup.io/repos/github/dmuhs/pythx/shield.svg https://coveralls.io/repos/github/dmuhs/pythx/badge.svg?branch=master

PythX is a library for the MythX smart contract security analysis platform.

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.

Installation

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 setuptools:

$ python3 setup.py install

Example

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.

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 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!

Enjoy! :)

History

1.3.1 [2019-10-04]

  • Update pytest from 5.1.2 to 5.2.0

  • Update mythx-models to 1.4.0

1.3.0 [2019-09-20]

  • Remove the PythX CLI PoC

  • Add PSA about deprecation and link to new mythx-cli repository

1.2.6 [2019-09-19]

  • Update twine from 1.14.0 to 1.15.0

  • Bump mythx-models to 1.3.5

1.2.5 [2019-09-15]

  • Update twine from 1.13.0 to 1.14.0

  • Clean up dependencies

  • Bump mythx-models to 1.3.3

1.2.4 [2019-09-06]

  • Bump mythx-models to 1.3.2

  • Add support to fetch analysis result input by UUID

1.2.3 [2019-09-05]

  • Add an auth check override to handle situations where only the access token is given

1.2.2 [2019-08-30]

  • Update mythx-models to 1.3.1

1.2.1 [2019-08-29]

  • Update mythx-models to 1.3.0

1.2.0 [2019-08-26]

1.1.8 [2019-06-05]

  • 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

1.1.7 [2019-04-20]

  • Add main docstring description

1.1.6 [2019-04-19]

  • Add mainSource support to CLI

  • Fix bug where submission object was malformed (“AST” -> “ast”)

  • Upgrade pytest dependency

1.1.5 [2019-04-16]

  • 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

1.1.4 [2019-03-28]

  • Fix issue in schema detection

  • Upgrade Sphinx dependency

1.1.3 [2019-03-25]

  • Initial release!

  • 100% branch coverage achieved

  • 100% doc coverage achieved

  • Examples provided in repo readme

  • Automatic PyPI deployment on version tag change

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pythx-1.6.1.tar.gz (180.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pythx-1.6.1-py2.py3-none-any.whl (39.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pythx-1.6.1.tar.gz.

File metadata

  • Download URL: pythx-1.6.1.tar.gz
  • Upload date:
  • Size: 180.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.7

File hashes

Hashes for pythx-1.6.1.tar.gz
Algorithm Hash digest
SHA256 7758a00125d5ba96d902bd2c79c1b1d10713a86479dc4f9ea7febc2337ff1eca
MD5 419684eb255b826eec23d533816db147
BLAKE2b-256 05169f5ff1047d9ee093545f602ca27bec5ce8a96d1566bacf814344caff666f

See more details on using hashes here.

File details

Details for the file pythx-1.6.1-py2.py3-none-any.whl.

File metadata

  • Download URL: pythx-1.6.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.7

File hashes

Hashes for pythx-1.6.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 44cb6c88f5213a3dd516e8322dbd17551fc7d435dc6290d3a6145333258d901f
MD5 5d33b7c694167cbba76875585f5d073e
BLAKE2b-256 468bf6a6f2d49ee4fd6e0d072a503fdadaa5948731638186f95c440ccef141d0

See more details on using hashes here.

Release history Release notifications | RSS feed

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.6.2

2 files

This release

1.6.1 This release

2 files

1.6.0

2 files

1.5.7

2 files

1.5.6

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.12

2 files

1.1.11

2 files

1.1.10

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page