|
1 | 1 | # Mainnet Executive Spell Review Checklist |
2 | 2 |
|
| 3 | +Repo: https://github.com/sky-ecosystem/spells-mainnet |
| 4 | + |
3 | 5 | ## Development Stage |
4 | 6 |
|
5 | 7 | * Install stable Foundry version |
6 | 8 | * [ ] Find the first [Foundry release](https://github.com/foundry-rs/foundry/releases) that is older than 7 days from now |
7 | 9 | * [ ] Insert the release URL here: |
8 | | - * [ ] Install the specified version via `foundryup --version git_tag_name` |
| 10 | + * [ ] Install the specified version via `foundryup --install stable` |
9 | 11 | ``` |
10 | 12 | Document the installation logs containing installed versions below: |
11 | 13 | ``` |
|
49 | 51 | * IF interfaces are present in the spell |
50 | 52 | * Interfaces imported from `dss-interfaces` |
51 | 53 | * [ ] No unused `dss-interfaces` |
52 | | - * [ ] Only single import layout is used (e.g. `import { VatAbstract } from "dss-interfaces/dss/VatAbstract.sol";`) |
| 54 | + * [ ] Only single import layout is used (e.g. `import {VatAbstract} from "dss-interfaces/dss/VatAbstract.sol";`) |
53 | 55 | * Static Interfaces |
54 | 56 | * [ ] No unused static interfaces |
55 | 57 | * [ ] Declared static interface not present in the `dss-interfaces`, OTHERWISE should be imported from there |
|
200 | 202 | * [ ] Recipient address variable name matches one found in `addresses_wallets.sol` |
201 | 203 | * [ ] Transfer amount matches Exec Sheet |
202 | 204 | * [ ] Transfer amount is specified with (at least) 2 decimals using `ether` keyword |
203 | | - * [ ] IF `ether` keyword is used, comment is present on the same line `// Note: ether is a keyword helper, only MKR is transferred here` |
| 205 | + * [ ] IF `ether` keyword is used, comment is present on the same line `// Note: ether is a keyword that represents 10**18, not the ETH token` |
204 | 206 | * [ ] The transfers are tested via `testPayments` test |
205 | 207 | * [ ] Sum of all MKR transfers tested in `testPayments` matches number in the Exec Sheet |
206 | 208 | * IF `SKY` transfers are present |
|
231 | 233 | * [ ] `usr` address in the instruction is in the checksummed format |
232 | 234 | * [ ] `usr` address variable name match one found in `addresses_wallets.sol` |
233 | 235 | * [ ] `tot` (Total stream amount) matches Exec Sheet |
234 | | - * [ ] IF `ether` keyword is used, comment is present on the same line `// Note: ether is a keyword helper, only MKR is transferred here` |
| 236 | + * [ ] IF `ether` keyword is used, comment is present on the same line `// Note: ether is a keyword that represents 10**18, not the ETH token` |
235 | 237 | * [ ] IF vest amount is expressed in 'per year' or similar in the Exec Sheet, account for leap days |
236 | 238 | * [ ] `bgn` (Vest start timestamp) matches Exec Sheet |
237 | 239 | * [ ] `tau` is expressed as `fin - bgn` (i.e. `MONTH_DD_YYYY - MONTH_DD_YYYY`) |
|
274 | 276 | * [ ] `MCD_VEST_DAI` chainlog address is used for DAI stream `yank` |
275 | 277 | * [ ] `MCD_VEST_USDS` chainlog address is used for USDS stream `yank` |
276 | 278 | * [ ] Tested via: |
277 | | - * `testYankDAI` |
278 | | - * `testYankMKR` |
279 | | - * `testYankSky` |
280 | | - * `testYankSkyMint` |
281 | | - * `testYankUsds` |
282 | | - * `testYankSpk` |
| 279 | + * `testVestDai` |
| 280 | + * `testVestMkr` |
| 281 | + * `testVestSky` |
| 282 | + * `testVestSkyMint` |
| 283 | + * `testVestUsds` |
| 284 | + * `testVestSpk` |
283 | 285 | * IF SubDAO-related content is present |
284 | 286 | * IF SubDAO provides SubProxy spell address |
285 | 287 | * [ ] SubDAO spell address matches Exec Sheet |
|
317 | 319 | * Minor -> Core Module (DSS) Update (e.g. Flapper) (0.++.0) |
318 | 320 | * Patch -> Collateral addition or addition/modification (0.0.++) |
319 | 321 | * [ ] New addresses are added to the `addresses_mainnet.sol` |
320 | | - * [ ] Changes are tested via `testChainlogIntegrity` and `testChainlogValues` |
| 322 | + * [ ] Changes are tested via `testChainlogIntegrity`, `testChainlogValues`, `testAddedChainlogKeys` and `testRemovedChainlogKeys` |
321 | 323 | * [ ] Ensure every spell variable is declared as `public`/`internal` |
322 | 324 | * [ ] Ensure `immutable` visibility is only used when fetching addresses from the `ChainLog` via `DssExecLib.getChangelogAddress(key)` and `constant` is used instead for static addresses |
323 | 325 | * [ ] Fetch addresses as type `address` and wrap with `Like` suffix interfaces inline (when making calls), UNLESS archive patterns permit otherwise (Such as `MKR`) |
|
0 commit comments