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.1.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

ens_permissions-0.2.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file ens-permissions-0.2.1.tar.gz.

File metadata

  • Download URL: ens-permissions-0.2.1.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.15

File hashes

Hashes for ens-permissions-0.2.1.tar.gz
Algorithm Hash digest
SHA256 99e0cf6a1d2e98133cf28bd05a8b136686d5e1d38d1ad0dec7a0e84285687f52
MD5 99b951c87437fe5864e9d0f47b65b6f3
BLAKE2b-256 92b281a12f9db79e0357a5861ef684354ea1e33311e7e3b9b8193581393b3b63

See more details on using hashes here.

File details

Details for the file ens_permissions-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ens_permissions-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1916c97125b68bc4182d9a085880dfd232d2c254cfb35cb99b4caea9e129dd95
MD5 8f40a3b4af09953ed888b4856cc6e29b
BLAKE2b-256 7090c9e1cce6d3b7757ef639e1fe9e93f2026d7bb31f0044e5e977aac928fa45

See more details on using hashes here.

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