Skip to main content

Add a short description here!

Project description

Project generated with PyScaffold

Permissions audit package

This project defines a simple library for obtaining smart contract permissions and building a graph.

It's aimed at contracts using Openzeppelin's AccessControl module.

There's a frontend for this at https://ensuro.co/ens-permissions-frontend/

Development

There's an app developed for Google Cloud Functions.

To run the function locally you will need a virtualenv with functions-framework and the app requirements:

python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt -r requirements.dev.txt
pip install -e .

Running the function locally

Requires a few environment variables. See .env.sample.

cp .env.sample .env

# Review .env vars
$EDITOR .env

# Run the function
functions_framework --debug --target=permissions_graph

Then test it with:

curl -o test.gv http://127.0.0.1:8080/?address=0x47E2aFB074487682Db5Db6c7e41B43f913026544

dot -Tsvg test.gv > test.svg

Deployment

Edit config/environment.yml with your config and then deploy with gcloud:

gcloud functions deploy permissions_graph \
    --env-vars-file config/environment.yml \
    --runtime python39 --trigger-http --allow-unauthenticated

TODO

  • Deploy app from github actions
  • Split ens_permissions into its own pypi library
  • Add support for Ownable contracts
  • Address book
  • Add multisig intelligence (detect when a role member is a multisig and obtain its members)
  • Timelock detection

Project details


Download files

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

Source Distribution

ens-permissions-0.2.0.tar.gz (13.1 kB view hashes)

Uploaded Source

Built Distribution

ens_permissions-0.2.0-py3-none-any.whl (7.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page