makerdao / spells-mainnet

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

Spell 2023-06-07 #346

Closed SidestreamSweatyPumpkin closed 1 year ago

SidestreamSweatyPumpkin commented 1 year ago

Description

Contribution Checklist

Checklist

SidestreamSweatyPumpkin commented 1 year ago
Outdated `test_RWA012_Update` Fails on `draw` atm.
Log ``` ./scripts/test-dssspell-forge.sh match="test_RWA012_Update" block="" │ Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6 │ Compiling 4 files with 0.8.16 │ Solc 0.8.16 finished in 2.18s │ Compiler run successful │ │ Running 1 test for src/DssSpell.t.sol:DssSpellTest │ [FAIL. Reason: Vat/ceiling-exceeded] test_RWA012_Update() (gas: 7970974) │ Traces: │ [7553674] DssSpellTest::test_RWA012_Update() ....SKIPPING │ ├─ [7907] Vat::frob(0x5257413031322d41000000000000000000000000000000000000000000000│ 000, RwaUrn: [0xB22E9DBF60a5b47c8B2D0D6469548F3C2D036B7E], RwaUrn: [0xB22E9DBF60a5b47c8B2D0│ D6469548F3C2D036B7E], RwaUrn: [0xB22E9DBF60a5b47c8B2D0D6469548F3C2D036B7E], 0, 492716202734│ 73683159790433) │ │ │ └─ ← "Vat/ceiling-exceeded" ```
Fails with vat's `ceiling exceeded` for the frob dart value `49271620273473683159790433` which according to my calculations should not be the case: ``` In [91]: rate Out[91]: 1019109100349028321294098468 In [92]: line Out[92]: 80000000000000000000000000000000000000000000000000000 In [93]: art Out[93]: 29202675209661009418797776 In [94]: (art + 49271620273473683159790433) * rate < line Out[94]: True In [95]: line - (art + 49271620273473683159790433) * rate Out[95]: 26131329658786650242735408873063937319149130236188 ```

Keeping the PR as draft until goerli one gets approved.

0xdecr1pto commented 1 year ago

Checklist

RWA onboarding

Spark

hexonaut commented 1 year ago

Spark spell is confirmed as 0x41D7c79aE5Ecba7428283F66998DedFD84451e0e on mainnet Spark proxy: 0x3300f198988e4C9C63F75dF86De36421f06af8c4 ACL Manager: 0xdA135Cd78A086025BcdC87B038a1C462032b510C

The-Arbiter commented 1 year ago

Following concerns I have raised regarding the provenance of SubDAO related addresses, Spark Team has confirmed the addresses in #new-spells.

Conf

Many thanks to Spark Team for confirming these addresses in a timely manner. Addresses may be added to exec doc for additional provenance given how they were added to the mainnet spell but this will be done at the discretion of Governance Facilitators.

ghost commented 1 year ago

New copy commit as requested by @The-Arbiter: https://github.com/makerdao/community/blob/c55480785534ee1f75bda65afb9761ffaebe072f/governance/votes/Executive%20vote%20-%20June%2014%2C%202023.md

The-Arbiter commented 1 year ago

The current spell team has unanimously voted to remove the line DssExecLib.setChangelogAddress("SUBPROXY_SPARK", SPARK_PROXY); and relevant tests from the 2023-06-14 spell (this spell).

Reasoning:

This content was not present in the executive sheet.

Screenshot 2023-06-14 at 5 08 55 PM

Nor is it present in the forum posts used as provenance for deriving sheet actions.

This content was also not present in the current executive document.

The executive document contains precedent of ChangeLog / ChainLog changes being listed actions (represented as cells in the exec sheet), see the 2022-11-16 exec doc for reference.

Core spell team is capable of making technical decisions and requesting contextual inclusion in the executive document however this spell team has elected to remove this content as it was not an instruction and the spell team does not want to be construed as having had added content to the spell which would normally be an explicit instruction (action in the doc / cell in the sheet) where no such instruction was requested by Governance Facilitators.

The voting process is no concern of the spell team, however it should be noted that precedent for chainlog instructions that existed as standalone actions in the spell involved a forum post and presumably a vote, so the current spell team cannot add this content without sufficient provenance of Maker Core governance approving these actions, as they affect the Maker Core chainlog.

It should be noted that this represents a bug which occurred for the Goerli spell, as this action was not present in the executive sheet (the source of truth for the Goerli spell) at the time. Primary motivators for this bug include the relevant code snippet being PR'ed by a third party source (SubDAO), the crafter approving the PR to the main spell without noticing the extraneous content inclusion and two reviewer passes missing that this code was not an instruction provided by Governance Facilitators in the executive sheet. A retrospective report may be released on this event at a later date however given the current state of flux in the spellcrafting process, it is my opinion that this mistake is a result of inconsistency of processes and recent significant changes in team structures for both the Governance Facilitator Team and Maker Core Spell Team.

ghost commented 1 year ago

The voting process is no concern of the spell team, however it should be noted that precedent for chainlog instructions that existed as standalone actions in the spell involved a forum post and presumably a vote

On Governance process, in case interested parties read this - there is no requirement for a vote to take place on these items. Core Unit Facilitators (and now Scope Facilitators) are empowered by Governance to insert logic directly into Executive Votes where it falls within their mandate. Consequently, the vast majority of such Chainlog updates simply required a notification from the relevant Facilitator on the forum.

0xdecr1pto commented 1 year ago
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 7520266)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; finished in 109.04s

Running 40 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487104564591)
[PASS] testAuthInSources() (gas: 9223371487099024870)
[PASS] testBytecodeMatches() (gas: 4795049)
[PASS] testCastCost() (gas: 7376206)
[PASS] testChainlogValues() (gas: 15974053)
[PASS] testChainlogVersionBump() (gas: 9880876)
[PASS] testContractSize() (gas: 9050)
[PASS] testDeployCost() (gas: 4774011)
[PASS] testFailNotScheduled() (gas: 14361)
[PASS] testFailRWA015_A_DRAW_ABOVE_LINE() (gas: 7810501)
[PASS] testFailRWA015_A_INTEGRATION_CURE_BEFORE_TELL() (gas: 7793208)
[PASS] testFailRWA015_A_OUTPUT_CONDUIT_PUSH_ABOVE_BALANCE() (gas: 7810499)
[PASS] testFailTooEarly() (gas: 417571)
[PASS] testFailTooLate() (gas: 417571)
[PASS] testFailWrongDay() (gas: 417683)
[PASS] testGeneral() (gas: 45132600)
[PASS] testMKRPayments() (gas: 7391161)
[PASS] testNewChainlogValues() (gas: 7495301)
[PASS] testNewIlkRegistryValues() (gas: 7402007)
[PASS] testNextCastTime() (gas: 446365)
[PASS] testOnTime() (gas: 7363865)
[PASS] testPSMs() (gas: 8670008)
[PASS] testRWA010DocChange() (gas: 7444468)
[PASS] testRWA011DocChange() (gas: 7444422)
[PASS] testRWA012DocChange() (gas: 7444400)
[PASS] testRWA013DocChange() (gas: 7444466)
[PASS] testRWA015A_SPELL_EXECUTES_LOCK_DRAW_PUSH() (gas: 7382802)
[PASS] testRWA015_CONTRACT_DEPLOYMENT_SETUP() (gas: 131657)
[PASS] testRWA015_INTEGRATION_BUMP() (gas: 7390795)
[PASS] testRWA015_INTEGRATION_CONDUITS_SETUP() (gas: 7421408)
[PASS] testRWA015_INTEGRATION_TELL() (gas: 7389622)
[PASS] testRWA015_INTEGRATION_TELL_CULL() (gas: 7357731)
[PASS] testRWA015_INTEGRATION_TELL_CURE_GOOD() (gas: 7388183)
[PASS] testRWA015_PAUSE_PROXY_OWNS_RWA015_TOKEN_BEFORE_SPELL() (gas: 16464)
[PASS] testRWA015_SPELL_CAGE() (gas: 7892921)
[PASS] testRWA015_SPELL_LOCK_IGNORE_ART() (gas: 7380543)
[PASS] testRWA015_SPELL_OPERATOR_WIPE_FREE() (gas: 7548145)
[PASS] testSparkSpell() (gas: 7388274)
[PASS] testUseEta() (gas: 352492)
[PASS] test_RWA012_Update() (gas: 7571469)
Test result: ok. 40 passed; 0 failed; finished in 1012.08s
0xdecr1pto commented 1 year ago

good for deploy

PASS] testStarknet() (gas: 7520898)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; finished in 142.06s

Running 40 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487104564591)
[PASS] testAuthInSources() (gas: 9223371487099024870)
[PASS] testBytecodeMatches() (gas: 4795049)
[PASS] testCastCost() (gas: 7376838)
[PASS] testChainlogValues() (gas: 15974685)
[PASS] testChainlogVersionBump() (gas: 9881508)
[PASS] testContractSize() (gas: 9050)
[PASS] testDeployCost() (gas: 4774011)
[PASS] testFailNotScheduled() (gas: 14361)
[PASS] testFailRWA015_A_DRAW_ABOVE_LINE() (gas: 7811133)
[PASS] testFailRWA015_A_INTEGRATION_CURE_BEFORE_TELL() (gas: 7793840)
[PASS] testFailRWA015_A_OUTPUT_CONDUIT_PUSH_ABOVE_BALANCE() (gas: 7811131)
[PASS] testFailTooEarly() (gas: 417571)
[PASS] testFailTooLate() (gas: 417571)
[PASS] testFailWrongDay() (gas: 417683)
[PASS] testGeneral() (gas: 45133232)
[PASS] testMKRPayments() (gas: 7391793)
[PASS] testNewChainlogValues() (gas: 7495933)
[PASS] testNewIlkRegistryValues() (gas: 7402639)
[PASS] testNextCastTime() (gas: 446365)
[PASS] testOnTime() (gas: 7364497)
[PASS] testPSMs() (gas: 8670640)
[PASS] testRWA010DocChange() (gas: 7445100)
[PASS] testRWA011DocChange() (gas: 7445054)
[PASS] testRWA012DocChange() (gas: 7445032)
[PASS] testRWA013DocChange() (gas: 7445098)
[PASS] testRWA015A_SPELL_EXECUTES_LOCK_DRAW_PUSH() (gas: 7383434)
[PASS] testRWA015_CONTRACT_DEPLOYMENT_SETUP() (gas: 131657)
[PASS] testRWA015_INTEGRATION_BUMP() (gas: 7391427)
[PASS] testRWA015_INTEGRATION_CONDUITS_SETUP() (gas: 7422040)
[PASS] testRWA015_INTEGRATION_TELL() (gas: 7390254)
[PASS] testRWA015_INTEGRATION_TELL_CULL() (gas: 7358363)
[PASS] testRWA015_INTEGRATION_TELL_CURE_GOOD() (gas: 7388815)
[PASS] testRWA015_PAUSE_PROXY_OWNS_RWA015_TOKEN_BEFORE_SPELL() (gas: 16464)
[PASS] testRWA015_SPELL_CAGE() (gas: 7893553)
[PASS] testRWA015_SPELL_LOCK_IGNORE_ART() (gas: 7381175)
[PASS] testRWA015_SPELL_OPERATOR_WIPE_FREE() (gas: 7548777)
[PASS] testSparkSpell() (gas: 7388906)
[PASS] testUseEta() (gas: 352492)
[PASS] test_RWA012_Update() (gas: 7572216)
Test result: ok. 40 passed; 0 failed; finished in 1341.48s
SidestreamSweatyPumpkin commented 1 year ago

deployed at https://etherscan.io/address/0x9E16c8B4C998604471EA0e63ECBb6d6d30F07fA0#%E2%94%82code

0xdecr1pto commented 1 year ago

Good for handover

Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 7521128)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; finished in 140.95s

Running 40 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487104564591)
[PASS] testAuthInSources() (gas: 9223371487099024870)
[PASS] testBytecodeMatches() (gas: 4795049)
[PASS] testCastCost() (gas: 7377068)
[PASS] testChainlogValues() (gas: 15974915)
[PASS] testChainlogVersionBump() (gas: 9881738)
[PASS] testContractSize() (gas: 9050)
[PASS] testDeployCost() (gas: 4774011)
[PASS] testFailNotScheduled() (gas: 14361)
[PASS] testFailRWA015_A_DRAW_ABOVE_LINE() (gas: 7811363)
[PASS] testFailRWA015_A_INTEGRATION_CURE_BEFORE_TELL() (gas: 7794070)
[PASS] testFailRWA015_A_OUTPUT_CONDUIT_PUSH_ABOVE_BALANCE() (gas: 7811361)
[PASS] testFailTooEarly() (gas: 417571)
[PASS] testFailTooLate() (gas: 417571)
[PASS] testFailWrongDay() (gas: 417683)
[PASS] testGeneral() (gas: 45135559)
[PASS] testMKRPayments() (gas: 7392023)
[PASS] testNewChainlogValues() (gas: 7496163)
[PASS] testNewIlkRegistryValues() (gas: 7402869)
[PASS] testNextCastTime() (gas: 446365)
[PASS] testOnTime() (gas: 7364727)
[PASS] testPSMs() (gas: 8670870)
[PASS] testRWA010DocChange() (gas: 7445330)
[PASS] testRWA011DocChange() (gas: 7445284)
[PASS] testRWA012DocChange() (gas: 7445262)
[PASS] testRWA013DocChange() (gas: 7445328)
[PASS] testRWA015A_SPELL_EXECUTES_LOCK_DRAW_PUSH() (gas: 7383664)
[PASS] testRWA015_CONTRACT_DEPLOYMENT_SETUP() (gas: 131657)
[PASS] testRWA015_INTEGRATION_BUMP() (gas: 7391657)
[PASS] testRWA015_INTEGRATION_CONDUITS_SETUP() (gas: 7422270)
[PASS] testRWA015_INTEGRATION_TELL() (gas: 7390484)
[PASS] testRWA015_INTEGRATION_TELL_CULL() (gas: 7358593)
[PASS] testRWA015_INTEGRATION_TELL_CURE_GOOD() (gas: 7389045)
[PASS] testRWA015_PAUSE_PROXY_OWNS_RWA015_TOKEN_BEFORE_SPELL() (gas: 16464)
[PASS] testRWA015_SPELL_CAGE() (gas: 7893783)
[PASS] testRWA015_SPELL_LOCK_IGNORE_ART() (gas: 7381405)
[PASS] testRWA015_SPELL_OPERATOR_WIPE_FREE() (gas: 7549007)
[PASS] testSparkSpell() (gas: 7389136)
[PASS] testUseEta() (gas: 352492)
[PASS] test_RWA012_Update() (gas: 7572561)
Test result: ok. 40 passed; 0 failed; finished in 1348.73s