Skip to content
Ethereum Smart Contracts Security Monitoring
Branch: master
Clone or download

README.md

Heimdall

CircleCI PyUP

Tool for analyzing smart contracts using mythril

Heimdall

Demo:
Heimdall Scanner

Usage:

Follow next steps for getting heimdall badge:

  1. Badge URL: https://heimdall.maddevs.io/badge/github/<owner>/<repository>
  2. Report URL: https://heimdall.maddevs.io/report/github/<owner>/<repository>
  3. Markdown badge:
[![Heimdall Scanner](https://heimdall.maddevs.io/badge/github/<owner>/<repository>)](https://heimdall.maddevs.io/report/github/<owner>/<repository>) 
  1. HTML badge:
<a href="https://heimdall.maddevs.io/report/github/<owner>/<repository>">
    <img src="https://heimdall.maddevs.io/badge/github/<owner>/<repository>">
</a>

Notes: replace owner and github url path.

Deployment:

  1. Install mythril via pypi Mythril require additional setup doc from mythril source code:
Whenever you disassemble or analyze binary code, Mythril will try to
resolve function names using its local signature database. The database
must be provided at ``~/.mythril/signatures.json``. You can start out
with the `default file <signatures.json>`__ as follows:
::
    $ cd ~/.mythril
    $ wget https://raw.githubusercontent.com/b-mueller/mythril/master/signatures.json
::
  1. Install project dependencies:
    $ pip install -r requirements.txt
  2. Go to project scanner dir
    $ cd scanner
  3. Create github personal token:
    https://github.com/settings/tokens
  4. Setup firebase connection:
  • FIREBASE_CERTIFICATE
    Take certificate from Project Settings -> Service account -> Generate new private key
    Place this certificate inside project root.
  • FIREBASE_DATABASE
    Database url from Firebase real-time database settings.
  1. Run ginicorn:
    Temporary define large timeout, will be fixed:
    $ gunicorn main:run --bind localhost:8000 --worker-class aiohttp.GunicornWebWorker -e GITHUB_TOKEN=<token_here> -e FIREBASE_CERTIFICATE=<FIREBASE_CERTIFICATE_PATH> -e FIREBASE_DATABASE=<FIREBASE_DATABASE> -t 200 --reload
You can’t perform that action at this time.