mev-inspect
A [WIP] Ethereum MEV Inspector in Python
Containers
mev-inspect's local setup is built on Docker Compose
By default it starts up:
mev-insepct
- a container with the code in this repo used for running scriptsdb
- a postgres database instancepgadmin
- a postgres DB UI for querying and more (avaiable at localhost:5050)
Running locally
Setup Docker
Start the services with Docker Compose
docker compose up
or to run in the background
docker compose up -d
To stop the services (if running in the background, otherwise just ctrl+c)
docker compose down
Check docker compose help
for more tools available
Executing scripts
To run a command, prefix it with
docker compose exec mev-inspect <YOUR COMMAND>
For example, to run testing_file.py
:
docker compose exec mev-inspect python testing_file.py \
-block_number 11931271 \
-rpc 'http://111.11.11.111:8545'
Or to run the tests:
docker compose exec mev-inspect python -m unittest tests/*py
Rebuilding containers
After changes to the app's Dockerfile, rebuild with
docker compose build
Contributing
Contributing requires installing the pre-commit hooks
1 . Ensure you're using python 3.9
If not, pyenv is a great option for managing python versions
- Create a virtualenv
python3 -m venv venv
- Activate it
. venv/bin/activate
(exit with deactivate
)
- Install dev libraries
pip install -r requirements_dev.txt
- Install pre-commit
pre-commit install
- Install pre-commit's dependencies and ensure it's working
pre-commit run --all-files
Languages
Python
86.5%
Starlark
8.4%
Shell
2%
Smarty
1.7%
Go
0.9%
Other
0.5%