/contracts
- Solidity smart contracts/client
- Python implementation of operator and aggregator/src/avs_operator
- AVS operator implementation/src/aggregator
- Aggregator implementation/src/common
- Shared utilities
/.github
- GitHub workflows and CI/CD configurations/init.sh
- Initialization script
- Python 3.10-3.12
- Foundry/Forge
- Make
- UV (install with
curl -LsSf https://astral.sh/uv/install.sh | sh
)
- Initialize the project and install Forge dependencies:
make init
- Set up Python environment (from the client directory):
uv venv
source .venv/bin/activate
uv pip install -e .
- Build and deploy contracts:
make build-contracts
make deploy-eigenlayer-contracts
make deploy-sertn-contracts
The operator and aggregator services can be managed through the CLI:
# From the client directory with venv activated
sertn --help
Run contract tests:
make tests-contract
Run Python tests:
# From the client directory
pytest
The project uses a Makefile for common operations:
make help
- Show available commandsmake build-anvil-state-with-deployed-contracts
- Build local test stateforge script script/LocalnetDeploy.s.sol --rpc-url http://localhost:8545 --broadcast
- Deploy contracts to local anvil networkmake spam-tasks
- Generate test tasks
- Chain ID: 31337
- Strategy Address: 0x7a2088a1bFc9d81c55368AE168C2C02570cB814F
MIT