Olympus V3, aka Bophades, is the latest iteration of the Olympus protocol. It is a foundation for the future of the protocol, utilizing the Default Framework to allow extensibility at the base layer via fully onchain governance mechanisms.
Use pnpm run build
to refresh deps.
Set up a foundry config in foundry.toml.
├─ external - "External contracts needed for core functionality"
├─ interfaces - "Standard interfaces"
├─ libraries - "Libraries"
├─ modules - "Default framework modules"
│ ├─ AUTHR
│ ├─ INSTR
│ ├─ MINTR
│ ├─ PRICE
│ ├─ RANGE
│ ├─ TRSRY
│ ├─ BLREG
├─ policies - "Default framework policies"
├─ test - "General test utilities and mocks/larps"
Up-to-date addresses of all the deployments can be found in:
- the olymsig repos: mainnet and testnet
- the official docs
- Executor - 0x84C0C005cF574D0e5C602EA7b366aE9c707381E0
- Guardian - 0x84C0C005cF574D0e5C602EA7b366aE9c707381E0
- Policy - 0x3dC18017cf8d8F4219dB7A8B93315fEC2d15B8a7
- Emergency - 0x3dC18017cf8d8F4219dB7A8B93315fEC2d15B8a7
Add FORK_TEST_RPC_URL
to the .env file in order to run fork tests
Copy the .env.deploy.example
file into one file per chain, e.g. .env_deploy_goerli
and set the appropriate variables. This chain-specific environment file can then be called during deployment, e.g. env $(cat .env_deploy_goerli | xargs) PRIVATE_KEY=<PRIVATE KEY> ./shell/deploy.sh
See DEPLOY.md and DEPLOY_L2.md for more detailed steps.
- Deploy any dependencies (if on testnet)
- Deploy BLV contracts
- Activate BLV contracts with the BLV registry (using an olymsig script)