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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99e0cf6a1d2e98133cf28bd05a8b136686d5e1d38d1ad0dec7a0e84285687f52 |
|
MD5 | 99b951c87437fe5864e9d0f47b65b6f3 |
|
BLAKE2b-256 | 92b281a12f9db79e0357a5861ef684354ea1e33311e7e3b9b8193581393b3b63 |
File details
Details for the file ens_permissions-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: ens_permissions-0.2.1-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1916c97125b68bc4182d9a085880dfd232d2c254cfb35cb99b4caea9e129dd95 |
|
MD5 | 8f40a3b4af09953ed888b4856cc6e29b |
|
BLAKE2b-256 | 7090c9e1cce6d3b7757ef639e1fe9e93f2026d7bb31f0044e5e977aac928fa45 |