Staging repo for MakerDAO weekly executive spells.
$ git clone [email protected]:makerdao/spells-mainnet.git
$ dapp update
If the weekly executive needs to onboard a new collateral:
- Update the
onboardNewCollaterals()
function inDssSpellCollateral.sol
- Update the values in
src/test/config.sol
- Add
onboardNewCollaterals();
in theactions()
function inDssSpellAction
If the weekly executive needs to offboard collaterals:
- Update the
offboardCollaterals()
function inDssSpellCollateral.sol
- Update the values in
src/test/config.sol
- Add
offboardCollaterals();
in theactions()
function inDssSpellAction
$ make
Set ETH_RPC_URL
to a Mainnet node.
$ export ETH_RPC_URL=<Mainnet URL>
$ make test
Set ETH_RPC_URL
to a Mainnet node.
$ export ETH_RPC_URL=<Mainnet URL>
$ make test-forge
Set ETH_RPC_URL
to a Mainnet node and ensure ETH_GAS
is set to a high enough number to deploy the contract.
$ export ETH_RPC_URL=<Mainnet URL>
$ export ETH_GAS=5000000
$ export ETH_GAS_PRICE=$(seth --to-wei 100 "gwei")
$ make deploy
A few helpful tips to estimate gas. You can use the following to get a gas estimate for the deploy.
make all
make estimate
Once you have that, add another million gas as a buffer against out-of-gas errors. Set ETH_GAS to this value.
export ETH_GAS="$((<value from previous step> + 0))"
export ETH_GAS=$(bc <<< "$ETH_GAS + 1000000")
You should also check current gas prices on your favorite site (e.g. https://ethgasstation.info/) and put that gwei value in the ETH_GAS_PRICE line.
export ETH_GAS_PRICE=$(seth --to-wei 420 "gwei")
The process of verifying code on etherscan is a little bit more involved because of solc
's weird behaviour around ABI Encoder v2.
- Run
make flatten
- If your spell didn't use
DssExecLib.addNewCollateral
you need to tweak the flattened source.- Remove
pragma experimental ABIEncoderV2;
- Comment out
DssExecLib.addNewCollateral
method.
- Remove
- Go to etherscan and verify source.
- Add library:
DssExecLib:0xfD88CeE74f7D78697775aBDAE53f9Da1559728E4
- Ensure optimizer is off and optimize runs = 200
- Add library: