Closed SidestreamColdMelon closed 1 year ago
- Ensure that
cap
> max new vesttot
/tau
otherwise file cap as well 📝 not required by the exec doc, so PR does not have it.
If by 'exec doc' you mean the spell copy and/or the contents sheet, you should likely check this anyway. We're not going to have any idea if this is an issue on our side when the copy + sheet is created.
Apologies if I've misunderstood you here.
https://github.com/makerdao/spells-mainnet/pull/343#issuecomment-1551110298
If by 'exec doc' you mean the spell copy and/or the contents sheet
that is what meant by the exec doc.
for comparison, the previous spell raises cap and it's mentioned in the doc
From this above and the tests passing without require
failed i take that:
cap
should not be raised here.you should likely check this anyway
385802469135802469
is the current cap
value in https://etherscan.io/address/0xa4c22f0e25c6630b2017979acf1f865e94695c4b#readContract385802469135802469 - 2300000 * 10^18 / (1714521599 - 1682899200) > 0
) , wolframalpha queryThanks for your comment! 🥇
Technically, we might also test that it will be possible to pay out all streams including (but not limited) to the streams added in the current spell. But I haven't seen this done in the previous tests. This kind of test is better suitable for the base test that is executed each time, no matter the changes. If everyone agrees that it's needed, I can add it here
The cap is only changed via file, so it can't be spent like, for example, allowance. Then, the generic test is not needed
[ ] | Budget | DAI Amount | Start Date | End Date | Destination Address |
---|---|---|---|---|---|
[x] | Governance Security Engineering | 2,200,000 | 2023-05-01 | 2024-05-01 | 0x569fAD613887ddd8c1815b56A00005BCA7FDa9C0 |
[x] | Multichain Engineering | 2,300,000 | 2023-05-01 | 2024-05-01 | 0x868B44e8191A2574334deB8E7efA38910df941FA |
The spell has been deployed https://etherscan.io/address/0xa1c423ee0bbc927ef5809c7ebb24c86d4284e431#code
make diff-deployed-spell
)
seems fine, etherscan has exec lib added to it
also used diffchecker against previoius spell to ensure that the added library block is fine.make check-deployed-spell
DssExecLib.address
deployed_spell_created
matches deployment timestamp
🔴 ~check fails for me, pls run the command and see if you have the same problem~ Edit: runs on linux (had problem with m1)deployed_spell_block
matches deployment block number
🔴 ~check fails for me, pls run the command and see if you have the same problem~ Edit: runs on linux (had problem with m1)make deploy-info tx=<tx>
matches configdeployed_spell_created
timestampdeployed_spell_block
block numberLibraries Used
matches DssExecLib Latest Releasesrc
make diff-archive-spell
for current date or or date="YYYY-MM-DD" make diff-archive-spell
(date as per target exec date)I have a couple of notes. Be aware that I'm not super familiar with this process, so apologies in advance if I'm misunderstanding things here.
[x] Ensure Etherscan
Libraries Used
matches DssExecLib Latest Release[x] git submodule hash matches dss-exec-lib latest release's tag commit and inspect diffs if doesn't match to ensure expected behaviour
Ensure Etherscan
Libraries Used
matches DssExecLib Latest Release ❗ Ignored for now[ ] git submodule hash matches dss-exec-lib latest release's tag commit and inspect diffs if doesn't match to ensure expected behaviour ❗ Ignored for now
I'm seeing one of you ignored these, and one didn't? My understanding from speaking to Arbiter was that the latest version of dss-exec-lib in the repo has not been deployed on chain. Is this related to why you skipped these @amusingaxl?
- Local Tests and CI PASS
@SidestreamSweatyPumpkin, I believe it's customary to post the test output as part of these comments as @amusingaxl did. Do you mind posting your outputs here as well?
My understanding from speaking to Arbiter was that the latest version of dss-exec-lib in the repo has not been deployed on chain
That's correct. The latest version of dss-exec-lib
that is used in all recent spells hasn't been redeployed since last February. @The-Arbiter opened the PR to the checklists to change this particular point and indicate that it's indeed not the strict requirement at the moment. Nevertheless, it still makes sense to check that all methods that we're calling exist in the deployed version and didn't change their behaviour. Here is the comparison between the release and the 69b658f
commit we're using, although you might want to use diffchecker.com to compare actual on-chain code with the state on 69b658f
.
Do you mind posting your outputs here as well?
./scripts/test-dssspell-forge.sh match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠒] Compiling...
[⠊] Compiling 104 files with 0.8.16
[⠑] Solc 0.8.16 finished in 5.86s
Compiler run successful!
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 1405623)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; finished in 70.23s
Running 21 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487102701143)
[PASS] testAuthInSources() (gas: 9223371487099056011)
[PASS] testBytecodeMatches() (gas: 2720125)
[PASS] testCastCost() (gas: 1259107)
[PASS] testChainlogValues() (gas: 9554910)
[PASS] testChainlogVersionBump() (gas: 4651351)
[PASS] testContractSize() (gas: 8962)
[PASS] testDeployCost() (gas: 2704785)
[PASS] testFailNotScheduled() (gas: 14406)
[PASS] testFailTooEarly() (gas: 417614)
[PASS] testFailTooLate() (gas: 417527)
[PASS] testFailWrongDay() (gas: 417617)
[PASS] testGeneral() (gas: 36770931)
[PASS] testIlkClipper() (gas: 3654384)
[PASS] testMKRPayments() (gas: 1352679)
[PASS] testNewChainlogValues() (gas: 1256243)
[PASS] testNextCastTime() (gas: 446343)
[PASS] testOnTime() (gas: 1246700)
[PASS] testPSMs() (gas: 2788471)
[PASS] testUseEta() (gas: 352470)
[PASS] testVestDAI() (gas: 1495339)
Test result: ok. 21 passed; 0 failed; finished in 1325.18s
I see, thank you for the explanation @SidestreamColdMelon. I did confirm that we were using the correct version of ExecLib on the deployed spell via etherscan. Given it's been used for over a year, and that you guys have checked it manually, I'm comfortable not checking it myself. I really appreciate the links and the step-by-step instructions though.
Description
This PR implements 2023-05-17 mainnet spell based on the executive vote summary, adds tests for the offboarded collaterals, DAI vesting and MKR transfers.
Since there are no proper crafter checklist for offboarding collaterals (only a reviewer one, for lerp-based offboardings), we did our own analysis of all previous offboardings in the spell archive and compiled a list of all possible actions. This way, everyone can easily follow and validate our decisions in the code. More information about it is in the 2023-05-17 goerli spell.
Superset of all offboarding actions, based on the archive
clipper.stopped()
being0
for each collateralLiquidate vaults
above)checkIlkClipper
base test, example code -> ✅ Done in this PRcheckIlkLerpOffboarding
, example codeContribution Checklist
Checklist
officeHours
modifier override30 days
unless otherwise specified)ETH_GAS_LIMIT="XXX" ETH_GAS_PRICE="YYY" make deploy
mainnet
contract on etherscanmake archive-spell
ormake date="YYYY-MM-DD" archive-spell
to make an archive directory and copyDssSpell.sol
,DssSpell.t.sol
,DssSpell.t.base.sol
, andDssSpellCollateralOnboarding.sol
squash and merge
this PR