Add a short description here!
Project description
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
Release history Release notifications | RSS feed
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 hashes)
Built Distribution
Close
Hashes for ens_permissions-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1916c97125b68bc4182d9a085880dfd232d2c254cfb35cb99b4caea9e129dd95 |
|
MD5 | 8f40a3b4af09953ed888b4856cc6e29b |
|
BLAKE2b-256 | 7090c9e1cce6d3b7757ef639e1fe9e93f2026d7bb31f0044e5e977aac928fa45 |