A set of components for the SubDAO stack in the context of the MakerDAO Endgame.
The SubProxy
is the SubDAO level counter-party of the MakerDAO level
MCD_PAUSE_PROXY
.
The reason a Proxy is required is to isolate the context of execution for spells from the main governance contract to avoid potential exploits messing with the original contract storage.
This module is heavily inspired by the original
DSPauseProxy
contract, with a few modifications:
- Instead of a single
owner
, it uses the now classicwards
/rely
/deny
pattern from MCD. - The
exec
function ispayable
.
Grants usr
access to execute calls through this contract.
Revokes usr
access to execute calls through this contract.
Executes a calldata-encoded call args
on target
through delegatecall
.
The caller must have been rely
ed before.
We use Foundry for all Solidity things and Node.js + Yarn to manage devtools, such as linting and formatting.
After cloning the repo, run:
# 1. Install solhint, prettier, husky and other tools
yarn install
# 2. Install Foundry dependencies
forge update
forge test -vvv