makerdao / spells-mainnet

Staging repo for MakerDAO weekly executive spells
GNU Affero General Public License v3.0
122 stars 50 forks source link

Mainnet spell 2024-05-16 #410

Closed SidestreamIcedMango closed 6 months ago

SidestreamIcedMango commented 6 months ago

Description

This PR implements the 2024-05-16 mainnet spell based on the relevant exec sheet

Contribution Checklist

Checklist

DaiFoundation-DevOps commented 6 months ago

CLA assistant check
All committers have signed the CLA.

oddaf commented 6 months ago

Good to deploy:

Development Stage

_Insert your local test logs here_
./scripts/test-dssspell-forge.sh no-match="" match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠊] Compiling...
[⠢] Compiling 110 files with Solc 0.8.16
[⠰] Solc 0.8.16 finished in 6.20s
Compiler run successful!

Ran 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 1580553)
[PASS] testStarknetSpell() (gas: 2324)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 29.10s (26.36s CPU time)

Ran 34 tests for src/DssSpell.t.sol:DssSpellTest
[SKIP] testBytecodeMatches() (gas: 0)
[PASS] testCastCost() (gas: 1437707)
[PASS] testCastOnTime() (gas: 1434625)
[PASS] testChainlogIntegrity() (gas: 5938426)
[PASS] testChainlogValues() (gas: 9792345)
[SKIP] testCollateralIntegrations() (gas: 0)
[PASS] testContractSize() (gas: 11139)
[PASS] testCronSequencerD3MJobReplaced() (gas: 1445917)
[PASS] testDAIPayments() (gas: 1491285)
[SKIP] testDaoResolutions() (gas: 0)
[PASS] testDeployCost() (gas: 2870321)
[SKIP] testEsmAuth() (gas: 0)
[PASS] testGeneral() (gas: 28296221)
[SKIP] testIlkClipper() (gas: 0)
[SKIP] testL2ArbitrumSpell() (gas: 0)
[SKIP] testL2OptimismSpell() (gas: 0)
[SKIP] testLerpSurplusBuffer() (gas: 0)
[PASS] testMKRPayments() (gas: 1542227)
[SKIP] testMedianizers() (gas: 0)
[SKIP] testNewIlkRegistryValues() (gas: 0)
[PASS] testNextCastTime() (gas: 353796)
[SKIP] testOSMs() (gas: 0)
[SKIP] testOffboardings() (gas: 0)
[PASS] testOfficeHours() (gas: 13444)
[SKIP] testOracleList() (gas: 0)
[PASS] testPSMs() (gas: 2727767)
[SKIP] testRemoveChainlogValues() (gas: 0)
[PASS] testRevertIfNotScheduled() (gas: 17610)
[PASS] testSparkSpellIsExecuted() (gas: 1440520)
[PASS] testUseEta() (gas: 352484)
[SKIP] testVestDAI() (gas: 0)
[SKIP] testVestMKR() (gas: 0)
[SKIP] testYankDAI() (gas: 0)
[SKIP] testYankMKR() (gas: 0)
Suite result: ok. 16 passed; 0 failed; 18 skipped; finished in 330.39s (688.34s CPU time)

Ran 2 test suites in 331.52s (359.49s CPU time): 18 tests passed, 0 failed, 18 skipped (36 total tests)

Pre-Deployment Stage

If this executive proposal passes, the following transfers totalling 208.09 MKR for Aligned Delegate Compensation will be made to qualifying Aligned Delegates.

Delegate Amount (MKR) Address
BLUE 41.67 0xb6C09680D822F162449cdFB8248a7D3FC26Ec9Bf
Cloaky 41.67 0x869b6d5d8FA7f4FFdaCA4D23FFE0735c5eD1F818
BONAPUBLICA 28.23 0x167c1a762B08D7e78dbF8f24e5C3f1Ab415021D3
TRUE NAME 27.52 0x612F7924c367575a0Edf21333D96b15F1B345A5d
JuliaChang 24.20 0x252abAEe2F4f4b8D39E5F12b163eDFb7fac7AED7
vigilant 13.89 0x2474937cB55500601BCCE9f4cb0A0A72Dc226F61
Pipkin 13.44 0x0E661eFE390aE39f90a58b04CF891044e56DEDB7
JAG 7.17 0x58D1ec57E4294E4fe650D1CB12b96AE34349556f
Byteron 6.72 0xc2982e72D060cab2387Dba96b846acb8c96EfF66
UPMaker 3.58 0xbB819DF169670DC71A16F58F55956FE642cc6BcD

Whistleblower Bounty

As a bounty for the information leading to the derecognition of AD TrueName, the following transfer will be made, if this executive proposal passes:

Stability Scope Parameter Updates

Stability Fee (SF) Changes

If this executive proposal passes, as per the recommendation of the Stability Scope Advisory Council Member, BA Labs, the following SFs will be changed:

Dai Savings Rate (DSR) Change

If this executive proposal passes, as per the recommendation of the Stability Scope Advisory Council Member, BA Labs, the following change to the DSR will be made:

Keeper Network Job Update

If this executive proposal passes, the Keeper Network's D3MJob will be updated through the following contract calls:

The updated code may be seen in this GitHub Pull Request.

Launch Project Funding

If this executive proposal passes, the following tansfers will be made to the Launch Project at 0x3C5142F28567E6a0F172fd0BaaF1f2847f49D02F:

Bug Bounty Payout

If this executive proposal passes, the following transfers will be made as part of the Bug Bounty Program:

The post-mortem for this report may be found in this forum post.

Spark Proxy Spell

If this executive proposal passes, a Spark Proxy Spell at 0x901E4450f01ae1A2615E384b9104888Cb9Cb02FF will be triggered. It contains the following change:

SidestreamColdMelon commented 6 months ago

TLDR: good to deploy

Development Stage

_Insert your local test logs here_
./scripts/test-dssspell-forge.sh no-match="" match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠊] Compiling...
[⠒] Compiling 5 files with Solc 0.8.16
[⠢] Solc 0.8.16 finished in 2.07s
Compiler run successful!

Ran 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 1581471)
[PASS] testStarknetSpell() (gas: 2324)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 42.60s (36.95s CPU time)

Ran 34 tests for src/DssSpell.t.sol:DssSpellTest
[SKIP] testBytecodeMatches() (gas: 0)
[PASS] testCastCost() (gas: 1438625)
[PASS] testCastOnTime() (gas: 1435543)
[PASS] testChainlogIntegrity() (gas: 5939344)
[PASS] testChainlogValues() (gas: 9793263)
[SKIP] testCollateralIntegrations() (gas: 0)
[PASS] testContractSize() (gas: 11139)
[PASS] testCronSequencerD3MJobReplaced() (gas: 1446835)
[PASS] testDAIPayments() (gas: 1492203)
[SKIP] testDaoResolutions() (gas: 0)
[PASS] testDeployCost() (gas: 2870321)
[SKIP] testEsmAuth() (gas: 0)
[PASS] testGeneral() (gas: 28297139)
[SKIP] testIlkClipper() (gas: 0)
[SKIP] testL2ArbitrumSpell() (gas: 0)
[SKIP] testL2OptimismSpell() (gas: 0)
[SKIP] testLerpSurplusBuffer() (gas: 0)
[PASS] testMKRPayments() (gas: 1543145)
[SKIP] testMedianizers() (gas: 0)
[SKIP] testNewIlkRegistryValues() (gas: 0)
[PASS] testNextCastTime() (gas: 353796)
[SKIP] testOSMs() (gas: 0)
[SKIP] testOffboardings() (gas: 0)
[PASS] testOfficeHours() (gas: 13444)
[SKIP] testOracleList() (gas: 0)
[PASS] testPSMs() (gas: 2728685)
[SKIP] testRemoveChainlogValues() (gas: 0)
[PASS] testRevertIfNotScheduled() (gas: 17610)
[PASS] testSparkSpellIsExecuted() (gas: 1441438)
[PASS] testUseEta() (gas: 352484)
[SKIP] testVestDAI() (gas: 0)
[SKIP] testVestMKR() (gas: 0)
[SKIP] testYankDAI() (gas: 0)
[SKIP] testYankMKR() (gas: 0)
Suite result: ok. 16 passed; 0 failed; 18 skipped; finished in 396.83s (840.42s CPU time)

Ran 2 test suites in 397.98s (439.43s CPU time): 18 tests passed, 0 failed, 18 skipped (36 total tests)

Pre-Deployment Stage

oddaf commented 6 months ago

Reassessing after commit d11b72e, good to deploy:

_Insert your local test logs here_
./scripts/test-dssspell-forge.sh no-match="" match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠒] Compiling...
[⠃] Compiling 5 files with Solc 0.8.16
[⠒] Solc 0.8.16 finished in 4.86s
Compiler run successful!

Ran 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 1581701)
[PASS] testStarknetSpell() (gas: 2324)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 28.97s (26.27s CPU time)

Ran 34 tests for src/DssSpell.t.sol:DssSpellTest
[SKIP] testBytecodeMatches() (gas: 0)
[PASS] testCastCost() (gas: 1438855)
[PASS] testCastOnTime() (gas: 1435773)
[PASS] testChainlogIntegrity() (gas: 5939574)
[PASS] testChainlogValues() (gas: 9793493)
[SKIP] testCollateralIntegrations() (gas: 0)
[PASS] testContractSize() (gas: 11139)
[PASS] testCronSequencerD3MJobReplaced() (gas: 1447065)
[PASS] testDAIPayments() (gas: 1492433)
[SKIP] testDaoResolutions() (gas: 0)
[PASS] testDeployCost() (gas: 2870321)
[SKIP] testEsmAuth() (gas: 0)
[PASS] testGeneral() (gas: 28297369)
[SKIP] testIlkClipper() (gas: 0)
[SKIP] testL2ArbitrumSpell() (gas: 0)
[SKIP] testL2OptimismSpell() (gas: 0)
[SKIP] testLerpSurplusBuffer() (gas: 0)
[PASS] testMKRPayments() (gas: 1543375)
[SKIP] testMedianizers() (gas: 0)
[SKIP] testNewIlkRegistryValues() (gas: 0)
[PASS] testNextCastTime() (gas: 353796)
[SKIP] testOSMs() (gas: 0)
[SKIP] testOffboardings() (gas: 0)
[PASS] testOfficeHours() (gas: 13444)
[SKIP] testOracleList() (gas: 0)
[PASS] testPSMs() (gas: 2728915)
[SKIP] testRemoveChainlogValues() (gas: 0)
[PASS] testRevertIfNotScheduled() (gas: 17610)
[PASS] testSparkSpellIsExecuted() (gas: 1441668)
[PASS] testUseEta() (gas: 352484)
[SKIP] testVestDAI() (gas: 0)
[SKIP] testVestMKR() (gas: 0)
[SKIP] testYankDAI() (gas: 0)
[SKIP] testYankMKR() (gas: 0)
Suite result: ok. 16 passed; 0 failed; 18 skipped; finished in 341.26s (714.04s CPU time)

Ran 2 test suites in 342.39s (370.23s CPU time): 18 tests passed, 0 failed, 18 skipped (36 total tests)
SidestreamIcedMango commented 6 months ago

Spell is deployed to: https://etherscan.io/address/0xB394eC56AbD78c9264438168F8a8E1Bd85F1f0Ae

Tenderly testnet: https://dashboard.tenderly.co/explorer/vnet/ca72a1c1-5f8e-43e9-a66f-4e09ca3d4673/transactions?kind=standard

SidestreamColdMelon commented 6 months ago

TLDR: good to handover

Deployed Stage

_Insert your local test logs here_
./scripts/test-dssspell-forge.sh no-match="" match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠊] Compiling...
[⠒] Compiling 4 files with Solc 0.8.16
[⠑] Solc 0.8.16 finished in 2.56s
Compiler run successful!

Ran 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 1580378)
[PASS] testStarknetSpell() (gas: 2324)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 37.64s (35.32s CPU time)

Ran 34 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testBytecodeMatches() (gas: 2886356)
[PASS] testCastCost() (gas: 1437532)
[PASS] testCastOnTime() (gas: 1434450)
[PASS] testChainlogIntegrity() (gas: 5938251)
[PASS] testChainlogValues() (gas: 9792170)
[SKIP] testCollateralIntegrations() (gas: 0)
[SKIP] testContractSize() (gas: 0)
[PASS] testCronSequencerD3MJobReplaced() (gas: 1445742)
[PASS] testDAIPayments() (gas: 1491110)
[SKIP] testDaoResolutions() (gas: 0)
[SKIP] testDeployCost() (gas: 0)
[SKIP] testEsmAuth() (gas: 0)
[PASS] testGeneral() (gas: 28298143)
[SKIP] testIlkClipper() (gas: 0)
[SKIP] testL2ArbitrumSpell() (gas: 0)
[SKIP] testL2OptimismSpell() (gas: 0)
[SKIP] testLerpSurplusBuffer() (gas: 0)
[PASS] testMKRPayments() (gas: 1542052)
[SKIP] testMedianizers() (gas: 0)
[SKIP] testNewIlkRegistryValues() (gas: 0)
[PASS] testNextCastTime() (gas: 353796)
[SKIP] testOSMs() (gas: 0)
[SKIP] testOffboardings() (gas: 0)
[PASS] testOfficeHours() (gas: 13444)
[SKIP] testOracleList() (gas: 0)
[PASS] testPSMs() (gas: 2727592)
[SKIP] testRemoveChainlogValues() (gas: 0)
[PASS] testRevertIfNotScheduled() (gas: 17610)
[PASS] testSparkSpellIsExecuted() (gas: 1440345)
[PASS] testUseEta() (gas: 352484)
[SKIP] testVestDAI() (gas: 0)
[SKIP] testVestMKR() (gas: 0)
[SKIP] testYankDAI() (gas: 0)
[SKIP] testYankMKR() (gas: 0)
Suite result: ok. 15 passed; 0 failed; 19 skipped; finished in 389.35s (893.84s CPU time)

Ran 2 test suites in 390.69s (426.99s CPU time): 17 tests passed, 0 failed, 19 skipped (36 total tests)
oddaf commented 6 months ago

Good to handover:

Deployed Stage

_Insert your local test logs here_
./scripts/test-dssspell-forge.sh no-match="" match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠒] Compiling...
[⠃] Compiling 108 files with Solc 0.8.16
[⠒] Solc 0.8.16 finished in 6.95s
Compiler run successful!

Ran 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 1581471)
[PASS] testStarknetSpell() (gas: 2324)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 26.72s (25.05s CPU time)

Ran 34 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testBytecodeMatches() (gas: 2886356)
[PASS] testCastCost() (gas: 1438625)
[PASS] testCastOnTime() (gas: 1435543)
[PASS] testChainlogIntegrity() (gas: 5939344)
[PASS] testChainlogValues() (gas: 9793263)
[SKIP] testCollateralIntegrations() (gas: 0)
[SKIP] testContractSize() (gas: 0)
[PASS] testCronSequencerD3MJobReplaced() (gas: 1446835)
[PASS] testDAIPayments() (gas: 1492203)
[SKIP] testDaoResolutions() (gas: 0)
[SKIP] testDeployCost() (gas: 0)
[SKIP] testEsmAuth() (gas: 0)
[PASS] testGeneral() (gas: 28299236)
[SKIP] testIlkClipper() (gas: 0)
[SKIP] testL2ArbitrumSpell() (gas: 0)
[SKIP] testL2OptimismSpell() (gas: 0)
[SKIP] testLerpSurplusBuffer() (gas: 0)
[PASS] testMKRPayments() (gas: 1543145)
[SKIP] testMedianizers() (gas: 0)
[SKIP] testNewIlkRegistryValues() (gas: 0)
[PASS] testNextCastTime() (gas: 353796)
[SKIP] testOSMs() (gas: 0)
[SKIP] testOffboardings() (gas: 0)
[PASS] testOfficeHours() (gas: 13444)
[SKIP] testOracleList() (gas: 0)
[PASS] testPSMs() (gas: 2728685)
[SKIP] testRemoveChainlogValues() (gas: 0)
[PASS] testRevertIfNotScheduled() (gas: 17610)
[PASS] testSparkSpellIsExecuted() (gas: 1441438)
[PASS] testUseEta() (gas: 352484)
[SKIP] testVestDAI() (gas: 0)
[SKIP] testVestMKR() (gas: 0)
[SKIP] testYankDAI() (gas: 0)
[SKIP] testYankMKR() (gas: 0)
Suite result: ok. 15 passed; 0 failed; 19 skipped; finished in 311.48s (653.06s CPU time)

Ran 2 test suites in 312.75s (338.19s CPU time): 17 tests passed, 0 failed, 19 skipped (36 total tests)