Staging repo for MakerDAO weekly executive spells.
$ git clone git@github.com:makerdao/spells-mainnet.git
$ dapp update
$ 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 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:0x3117D2CbA81fC118fc471D383Ab20F11939A3CfF
- Ensure optimizer is on and optimize runs = 1
- Add library: