18
18
# shellcheck source=lib/common.sh
19
19
. " $LIB_DIR /common.sh"
20
20
21
+ # Deploy Multicall
22
+ newChangelog=false
23
+ CHANGELOG=$( jq -r " .import.chainlog | values" " $CONFIG_FILE " )
24
+ if [[ -z " $CHANGELOG " ]]; then
25
+ CHANGELOG=$( dappCreate dss-chain-log-optimized ChainLog)
26
+ log " CHANGELOG=$CHANGELOG "
27
+ newChangelog=true
28
+ else
29
+ copy dss-chain-log-optimized
30
+ fi
31
+ export CHANGELOG
32
+
21
33
# Deploy Values or Medians
22
34
tokens=$( jq -r " .tokens | keys_unsorted[]" " $CONFIG_FILE " )
23
35
for token in $tokens ; do
@@ -28,7 +40,7 @@ for token in $tokens; do
28
40
if [[ " $type " == " median" ]]; then
29
41
contract=$( dappCreate testchain-medians " Median${token} USD" )
30
42
eval " export VAL_${token} =${contract} "
31
- log " VAL_${token} = $( eval " echo ${contract} " ) "
43
+ logAddr " VAL_${token} " " $( eval " echo ${contract} " ) "
32
44
signers=$( jq -r " .tokens.${token} | .pipDeploy | .signers | .[]" " $CONFIG_FILE " )
33
45
# Approve oracle price feed providers
34
46
allsigners=()
@@ -43,25 +55,26 @@ for token in $tokens; do
43
55
if [[ " ${type} " == " value" ]]; then
44
56
contract=$( dappCreate ds-value DSValue)
45
57
eval " export VAL_${token} =${contract} "
46
- log " VAL_${token} = $( eval " echo ${contract} " ) "
58
+ logAddr " VAL_${token} " " $( eval " echo ${contract} " ) "
47
59
fi
48
60
else
49
61
eval " export VAL_${token} =${pipAddr} "
50
62
copy osm
51
63
copy testchain-medians
64
+ logAddr " VAL_${token} " " $pipAddr "
52
65
fi
53
66
eval " export PIP_${token} =\$ VAL_${token} "
54
67
done
55
68
56
69
# Deploy Multicall
57
70
MULTICALL=$( dappCreate multicall Multicall)
58
- log " MULTICALL= $MULTICALL "
71
+ logAddr " MULTICALL" " $MULTICALL "
59
72
60
73
# Deploy Token Faucet
61
74
FAUCET=$( jq -r " .import.faucet | values" " $CONFIG_FILE " )
62
75
if [[ -z " $FAUCET " ]]; then
63
76
FAUCET=$( dappCreate token-faucet RestrictedTokenFaucet)
64
- log " FAUCET= $FAUCET "
77
+ logAddr " FAUCET" " $FAUCET "
65
78
# Allow everyone to use the faucet
66
79
sethSend " $FAUCET " ' hope(address)' " 0x0000000000000000000000000000000000000000"
67
80
fi
70
83
PROXY_REGISTRY=$( jq -r " .import.proxyRegistry | values" " $CONFIG_FILE " )
71
84
if [[ -z " $PROXY_REGISTRY " ]]; then
72
85
PROXY_FACTORY=$( dappCreate ds-proxy DSProxyFactory)
73
- log " PROXY_FACTORY= $PROXY_FACTORY "
86
+ logAddr " PROXY_FACTORY" " $PROXY_FACTORY "
74
87
PROXY_REGISTRY=$( dappCreate proxy-registry ProxyRegistry " $PROXY_FACTORY " )
75
- log " PROXY_REGISTRY= $PROXY_REGISTRY "
88
+ logAddr " PROXY_REGISTRY" " $PROXY_REGISTRY "
76
89
else
77
90
PROXY_FACTORY=$( seth storage " $PROXY_REGISTRY " 1)
78
91
PROXY_FACTORY=0x${PROXY_FACTORY: 26: 66}
92
+ logAddr " PROXY_FACTORY" " $PROXY_FACTORY "
93
+ logAddr " PROXY_REGISTRY" " $PROXY_REGISTRY "
94
+ copy ds-proxy
95
+ copy proxy-registry
79
96
fi
80
97
81
98
# Deploy Fabs
@@ -115,7 +132,7 @@ if [[ "$newGovToken" == true ]]; then
115
132
116
133
# Use custom authority for the new GOV token
117
134
GOV_GUARD=$( dappCreate mkr-authority MkrAuthority)
118
- log " GOV_GUARD= $GOV_GUARD "
135
+ logAddr " GOV_GUARD" " $GOV_GUARD "
119
136
120
137
# Set GOV_GUARD as authority of MCD_GOV
121
138
sethSend " $MCD_GOV " ' setAuthority(address)' " $GOV_GUARD "
@@ -138,37 +155,37 @@ rm "$OUT_DIR/load-ilks-addr-temp"
138
155
139
156
# Deploy Proxy Actions
140
157
PROXY_ACTIONS=$( dappCreate dss-proxy-actions-optimized DssProxyActions)
141
- log " PROXY_ACTIONS= $PROXY_ACTIONS "
158
+ logAddr " PROXY_ACTIONS" " $PROXY_ACTIONS "
142
159
PROXY_ACTIONS_END=$( dappCreate dss-proxy-actions-optimized DssProxyActionsEnd)
143
- log " PROXY_ACTIONS_END= $PROXY_ACTIONS_END "
160
+ logAddr " PROXY_ACTIONS_END" " $PROXY_ACTIONS_END "
144
161
PROXY_ACTIONS_DSR=$( dappCreate dss-proxy-actions-optimized DssProxyActionsDsr)
145
- log " PROXY_ACTIONS_DSR= $PROXY_ACTIONS_DSR "
162
+ logAddr " PROXY_ACTIONS_DSR" " $PROXY_ACTIONS_DSR "
146
163
147
164
# Deploy CdpManager
148
165
CDP_MANAGER=$( dappCreate dss-cdp-manager DssCdpManager " $MCD_VAT " )
149
- log " CDP_MANAGER= $CDP_MANAGER "
166
+ logAddr " CDP_MANAGER" " $CDP_MANAGER "
150
167
GET_CDPS=$( dappCreate dss-cdp-manager GetCdps)
151
- log " GET_CDPS= $GET_CDPS "
168
+ logAddr " GET_CDPS" " $GET_CDPS "
152
169
153
170
# Deploy DsrManager
154
171
DSR_MANAGER=$( dappCreate dsr-manager DsrManager " $MCD_POT " " $MCD_JOIN_DAI " )
155
- log " DSR_MANAGER= $DSR_MANAGER "
172
+ logAddr " DSR_MANAGER" " $DSR_MANAGER "
156
173
157
174
# Deploy OsmMom
158
175
OSM_MOM=$( dappCreate osm-mom OsmMom)
159
- log " OSM_MOM= $OSM_MOM "
176
+ logAddr " OSM_MOM" " $OSM_MOM "
160
177
161
178
# Deploy FlipperMom
162
179
FLIPPER_MOM=$( dappCreate flipper-mom FlipperMom " $MCD_CAT " )
163
- log " FLIPPER_MOM= $FLIPPER_MOM "
180
+ logAddr " FLIPPER_MOM" " $FLIPPER_MOM "
164
181
165
182
# Deploy ClipperMom
166
183
CLIPPER_MOM=$( dappCreate clipper-mom-optimized ClipperMom " $MCD_SPOT " )
167
- log " CLIPPER_MOM= $CLIPPER_MOM "
184
+ logAddr " CLIPPER_MOM" " $CLIPPER_MOM "
168
185
169
186
# Deploy IlkRegistry
170
187
ILK_REGISTRY=$( dappCreate ilk-registry-optimized IlkRegistry " $MCD_VAT " " $MCD_DOG " " $MCD_CAT " " $MCD_SPOT " )
171
- log " ILK_REGISTRY= $ILK_REGISTRY "
188
+ logAddr " ILK_REGISTRY" " $ILK_REGISTRY "
172
189
173
190
# As all initial collaterals were deployed, we can remove authority of the deployment contract from the core contracts
174
191
sethSend " $MCD_DEPLOY " ' releaseAuth()'
@@ -191,11 +208,11 @@ done
191
208
192
209
# Deploy GovActions - Library functions for the Pause
193
210
MCD_GOV_ACTIONS=$( dappCreate dss-deploy-1_2 GovActions)
194
- log " MCD_GOV_ACTIONS= $MCD_GOV_ACTIONS "
211
+ logAddr " MCD_GOV_ACTIONS" " $MCD_GOV_ACTIONS "
195
212
196
213
# Deploy Pause Proxy Actions (support contract for executing initial set up of the dss system)
197
214
PROXY_PAUSE_ACTIONS=$( dappCreate dss-deploy-pause-proxy-actions DssDeployPauseProxyActions)
198
- log " PROXY_PAUSE_ACTIONS= $PROXY_PAUSE_ACTIONS "
215
+ logAddr " PROXY_PAUSE_ACTIONS" " $PROXY_PAUSE_ACTIONS "
199
216
200
217
# Get a proxy for the deployer address (create if didn't previously exist)
201
218
PROXY_DEPLOYER=$( seth call " $PROXY_REGISTRY " ' proxies(address)(address)' " $ETH_FROM " )
@@ -212,24 +229,26 @@ sethSend "$MCD_ADM" 'setRootUser(address,bool)' "$PROXY_DEPLOYER" true
212
229
MCD_ADM=$( jq -r " .import.authority | values" " $CONFIG_FILE " )
213
230
if [[ -z " $MCD_ADM " ]]; then
214
231
MCD_IOU=$( dappCreate ds-token DSToken ' "IOU"' )
215
- log " MCD_IOU= $MCD_IOU "
232
+ logAddr " MCD_IOU" " $MCD_IOU "
216
233
217
234
MCD_ADM=$( dappCreate ds-chief DSChief " $MCD_GOV " " $MCD_IOU " 5)
218
- log " MCD_ADM= $MCD_ADM "
235
+ logAddr " MCD_ADM" " $MCD_ADM "
219
236
sethSend " $MCD_IOU " ' setOwner(address)' " ${MCD_ADM} "
220
237
221
238
# Deploy Vote Proxy Factory
222
239
VOTE_PROXY_FACTORY=$( dappCreate vote-proxy VoteProxyFactory " $MCD_ADM " )
223
- log " VOTE_PROXY_FACTORY= $VOTE_PROXY_FACTORY "
240
+ logAddr " VOTE_PROXY_FACTORY" " $VOTE_PROXY_FACTORY "
224
241
225
242
# Deploy PollingEmitter
226
243
MCD_POLLING_EMITTER=$( dappCreate symbolic-voting PollingEmitter)
227
- log " MCD_POLLING_EMITTER= $MCD_POLLING_EMITTER "
244
+ logAddr " MCD_POLLING_EMITTER" " $MCD_POLLING_EMITTER "
228
245
229
246
# Deploy Vote Delegate Factory
230
247
VOTE_DELEGATE_PROXY_FACTORY=$( dappCreate vote-delegate-optimized VoteDelegateFactory " $MCD_ADM " " $MCD_POLLING_EMITTER " )
231
- log " VOTE_DELEGATE_PROXY_FACTORY= $VOTE_DELEGATE_PROXY_FACTORY "
248
+ logAddr " VOTE_DELEGATE_PROXY_FACTORY" " $VOTE_DELEGATE_PROXY_FACTORY "
232
249
else
250
+ logAddr " MCD_IOU" " $( seth call " $MCD_ADM " " IOU()(address)" ) "
251
+ logAddr " MCD_ADM" " $MCD_ADM "
233
252
copy ds-chief
234
253
copy vote-proxy
235
254
copy symbolic-voting
283
302
284
303
# Deploy DssAutoLine
285
304
MCD_IAM_AUTO_LINE=$( dappCreate dss-auto-line-optimized DssAutoLine " $MCD_VAT " )
286
- log " MCD_IAM_AUTO_LINE= $MCD_IAM_AUTO_LINE "
305
+ logAddr " MCD_IAM_AUTO_LINE" " $MCD_IAM_AUTO_LINE "
287
306
# Rely DssAutoLine in the Vat
288
307
calldata=" $( seth calldata ' rely(address,address,address,address)' " $MCD_PAUSE " " $MCD_GOV_ACTIONS " " $MCD_VAT " " $MCD_IAM_AUTO_LINE " ) "
289
308
sethSend " $PROXY_DEPLOYER " ' execute(address,bytes memory)' " $PROXY_PAUSE_ACTIONS " " $calldata "
290
309
291
310
# Deploy DssFlash
292
311
MCD_FLASH=$( dappCreate dss-flash DssFlash " $MCD_JOIN_DAI " " $MCD_VOW " )
293
- log " MCD_FLASH= $MCD_FLASH "
312
+ logAddr " MCD_FLASH" " $MCD_FLASH "
294
313
# Rely DssFlash in the Vat
295
314
set -e
296
315
calldata=" $( seth calldata ' rely(address,address,address,address)' " $MCD_PAUSE " " $MCD_GOV_ACTIONS " " $MCD_VAT " " $MCD_FLASH " ) "
@@ -299,11 +318,28 @@ sethSend "$PROXY_DEPLOYER" 'execute(address,bytes memory)' "$PROXY_PAUSE_ACTIONS
299
318
sethSend " $MCD_FLASH " ' rely(address)' " $MCD_PAUSE_PROXY "
300
319
sethSend " $MCD_FLASH " ' deny(address)' " $ETH_FROM "
301
320
321
+ # Deploy both DssVest
322
+ MCD_VEST_DAI=$( dappCreate dss-vest-optimized DssVestSuckable " $CHANGELOG " )
323
+ logAddr " MCD_VEST_DAI" " $MCD_VEST_DAI "
324
+ sethSend " $MCD_VEST_DAI " ' rely(address)' " $MCD_PAUSE_PROXY "
325
+ sethSend " $MCD_VEST_DAI " ' deny(address)' " $ETH_FROM "
326
+ calldata=" $( seth calldata ' rely(address,address,address,address)' " $MCD_PAUSE " " $MCD_GOV_ACTIONS " " $MCD_VAT " " $MCD_VEST_DAI " ) "
327
+ sethSend " $PROXY_DEPLOYER " ' execute(address,bytes memory)' " $PROXY_PAUSE_ACTIONS " " $calldata "
328
+ MCD_VEST_MKR=$( dappCreate dss-vest-optimized DssVestMintable " $MCD_GOV " )
329
+ logAddr " MCD_VEST_MKR" " $MCD_VEST_MKR "
330
+ sethSend " $MCD_VEST_MKR " ' rely(address)' " $MCD_PAUSE_PROXY "
331
+ sethSend " $MCD_VEST_MKR " ' deny(address)' " $ETH_FROM "
332
+ if [[ " $newGovToken " == true ]]; then
333
+ calldata=" $( seth calldata ' rely(address,address,address,address)' " $MCD_PAUSE " " $MCD_GOV_ACTIONS " " $GOV_GUARD " " $MCD_VEST_MKR " ) "
334
+ sethSend " $PROXY_DEPLOYER " ' execute(address,bytes memory)' " $PROXY_PAUSE_ACTIONS " " $calldata "
335
+ fi
336
+
302
337
# Generate addresses.json file
303
338
# shellcheck disable=SC2153
304
339
cat > " $OUT_DIR " /addresses.json << EOF
305
340
{
306
341
"DEPLOYER": "$( seth --to-checksum-address " $ETH_FROM " ) ",
342
+ "CHANGELOG": "$CHANGELOG ",
307
343
"MULTICALL": "$MULTICALL ",
308
344
"FAUCET": "$( seth --to-checksum-address " $FAUCET " ) ",
309
345
"MCD_DEPLOY": "$MCD_DEPLOY ",
@@ -340,6 +376,8 @@ cat > "$OUT_DIR"/addresses.json <<EOF
340
376
"CLIPPER_MOM": "$CLIPPER_MOM ",
341
377
"MCD_IAM_AUTO_LINE": "$MCD_IAM_AUTO_LINE ",
342
378
"MCD_FLASH": "$MCD_FLASH ",
379
+ "MCD_VEST_DAI": "$MCD_VEST_DAI ",
380
+ "MCD_VEST_MKR": "$MCD_VEST_MKR ",
343
381
"PROXY_FACTORY": "$( seth --to-checksum-address " $PROXY_FACTORY " ) ",
344
382
"PROXY_REGISTRY": "$( seth --to-checksum-address " $PROXY_REGISTRY " ) "$ILKS_VARS ,
345
383
"PROXY_PAUSE_ACTIONS": "$PROXY_PAUSE_ACTIONS ",
445
483
" $LIBEXEC_DIR " /setters/set-ilks-registry
446
484
447
485
" $LIBEXEC_DIR " /setters/set-pause-auth-delay
486
+
487
+ if [[ " $newChangelog " == true ]]; then
488
+ sethSend " $CHANGELOG " ' rely(address)' " $MCD_PAUSE_PROXY "
489
+ sethSend " $CHANGELOG " ' deny(address)' " $ETH_FROM "
490
+ fi
0 commit comments