Closed amusingaxl closed 1 year ago
QmWo3UVtEDKVwS5k34uLt1J6u9px3rjHYkTLK2rYQ31E3G
QmZ94FG8YXK4seyBHBi2FfTfW5URtBqbCb7JZAB1HGkTNF
QmYjvAZEeGCs8kMuLQz6kU8PWgsbG1i8QWd2jrwkSipcRx
[x] Office Hours
[x] 30 days spell expiry in constructor (block.timestamp + 30 days
)
[x] Exec Doc Hash
Executive vote - Month DD, YYYY.md
< >
) for the latest commitmake exec-hash $URL
cast keccak -- "$(curl '$URL' -o - 2>/dev/null)"
0x3906bcfefa6d515aae83aba7dae150afde5772699e6a0741f3e89d344315aa36
[x] Spell Description
TARGET_DATE MakerDAO Executive Spell | Hash: EXEC_DOC_HASH)
description
// Hash: cast keccak -- "$(wget 'EXEC_DOC_URL' -q -O - 2>/dev/null)"
[x] Local Environment Actions
foundryup
lib
foldergit submodule update --init --recursive
Submodule path 'lib/dss-exec-lib': checked out '69b658f35d8618272cd139dfc18c5713caf6b96b'
Submodule path 'lib/dss-exec-lib/lib/dss-interfaces': checked out '9bfd7afadd1f8c217ef05850b2555691786286cb'
Submodule path 'lib/dss-exec-lib/lib/forge-std': checked out '0aa99eb8456693c015350c5e6c4f442ebe912f77'
Submodule path 'lib/dss-exec-lib/lib/forge-std/lib/ds-test': checked out 'cd98eff28324bfac652e63a239a60632a761790b'
Submodule path 'lib/dss-test': checked out '4ad127cf53eeaddfb7b8ad56dd4b13e57d6a0067'
Submodule path 'lib/dss-test/lib/dss-interfaces': checked out '9bfd7afadd1f8c217ef05850b2555691786286cb'
Submodule path 'lib/dss-test/lib/forge-std': checked out 'aea0b2685bebc883c09f5554d7fb481e85d0564d'
Submodule path 'lib/dss-test/lib/forge-std/lib/ds-test': checked out 'cd98eff28324bfac652e63a239a60632a761790b'
dss-exec-lib
dss-exec-lib
is synced as welldss-exec-lib
as installed locally will use GitHub code more recent than the 0.0.9 release until the 0.0.10 release)dss-test
dss-interfaces
dss-test
dss-exec-lib
forge-std
dss-test
dss-exec-lib
[x] Interface Checks
[x] dss-interfaces
[ ] used in the current spell
[x] cleanup previous ones
[ ] ensure only single import layout is used (e.g. import "dss-interfaces/dss/VatAbstract.sol";
)
[x] Static Interfaces
[x] ensure they match dss-interfaces
(Where there is a mismatch, use cast interface
as the source of truth)
[x] check on-chain interface of deployed contract via cast interface <contract_address>
to ensure correctness
[x] interface naming style should match with Like
suffix (e.g. VatLike
), with some exceptions
[x] ensure they only list used functions in spell code
[x] Address Immutables
[x] Use the DssExecLib Core Address Helpers instead of getChangelogAddress()
whenever possible (e.g. DssExecLib.vat()
)
[x] Follow pattern address internal immutable KEY_NAME = DssExecLib.getChangelogAddress(KEY_NAME)
[x] Variable name matches ChainLog key name
MKR
for MCD_GOV
)[x] Instantiate as address
type
GemLike
for MKR
)[x] Visibility is internal
[x] State mutability is immutable
[x] String constant
QmZ94FG8YXK4seyBHBi2FfTfW5URtBqbCb7JZAB1HGkTNF
[x] RWA Updates
[x] doc
update for RWA009-A
[x] init
the RwaLiquidationOracle
to reset the doc
[x] Sanity Check pip
must be set (not the zero address)
[x] ilk
follows format "RWA009-A"
[x] val
price ignored (0
) if init
has already been called
[x] doc
new legal document (IPFS HASH) matches Doc (or Forum Post)
[x] tau
parameter used is the old tau
value
[x] doc
update for RWA007-A
[x] init
the RwaLiquidationOracle
to reset the doc
[x] Sanity Check pip
must be set (not the zero address)
[x] ilk
follows format "RWA007-A"
[x] val
price ignored (0
) if init
has already been called
[x] doc
new legal document (IPFS HASH) matches Doc (or Forum Post)
[x] tau
parameter used is the old tau
value
[x] Place the RWA005-A (Fortunafi) vault into "Soft Liquidation"
[x] Calling tell
for liquidation
OK, tell is used
[x] SubDAO Content
addresses_deployers.sol
as an entryaddresses_deployers.sol
as a commentProxyLike(SUBDAO_PROXY).exec(SUBDAO_SPELL, abi.encodeWithSignature("execute()"));
cast
execution. (Also note that low level call gas estimation is not done by our scripts)[x] addresses_mainnet.sol
matches spell code
[x] Ensure every spell variable is declared as public/internal
[x] Spell actions match the corresponding Exec Doc
[x] Tests
doc
variable for RWA009-A & RWA007-Atell()
from RWA005-ASpark Proxy Spell
is tested via testSparkSpellIsExecuted
DssExecLib.address
file is not being modified by the spell PRmake test
ETH_RPC_URL
is being used from env (i.e. no match
, block
or similar are active in your env)
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠔] Compiling...
No files changed, compilation skipped
Running 2 tests for src/test/starknet.t.sol:StarknetTests [PASS] testStarknet() (gas: 688029) [PASS] testStarknetSpell() (gas: 2346) Test result: ok. 2 passed; 0 failed; finished in 15.75s
Running 21 tests for src/DssSpell.t.sol:DssSpellTest [PASS] testAuth() (gas: 9223371487105923956) [PASS] testAuthInSources() (gas: 9223371487099527378) [PASS] testBytecodeMatches() (gas: 1869176) [PASS] testCastCost() (gas: 533466) [PASS] testChainlogValues() (gas: 9408004) [PASS] testChainlogVersionBump() (gas: 4171503) [PASS] testContractSize() (gas: 8962) [PASS] testDeployCost() (gas: 1856194) [PASS] testFailNotScheduled() (gas: 14420) [PASS] testFailTooEarly() (gas: 13585) [PASS] testFailTooLate() (gas: 13584) [PASS] testFailWrongDay() (gas: 13607) [PASS] testGeneral() (gas: 35531404) [PASS] testNextCastTime() (gas: 353637) [PASS] testOnTime() (gas: 529128) [PASS] testPSMs() (gas: 1976038) [PASS] testRWA005OracleTell() (gas: 545933) [PASS] testRWA007DocChange() (gas: 595869) [PASS] testRWA009DocChange() (gas: 595913) [PASS] testSparkSpellIsExecuted() (gas: 532664) [PASS] testUseEta() (gas: 352346) Test result: ok. 21 passed; 0 failed; finished in 632.28s
Good to deploy (since after my review the comment under https://github.com/makerdao/spells-mainnet/pull/367#discussion_r1340192555 is addressed)
Good to deploy
Other than the point above, no problems noticed.
make diff-deployed-spell
)make check-deployed-spell
DssExecLib.address
file
DssExecLib.address
file (e.g. look under the 'Files Changed' PR tab, etc.)deployed_spell_created
matches deployment timestampdeployed_spell_block
matches deployment block numbermake 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 Doc date)DssExecLib.address
file is not being modified by the spell PRmake test
ETH_RPC_URL
is being used from env (i.e. no match
, block
or similar are active in your env)./scripts/test-dssspell-forge.sh no-match="" match="" block=""
Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠑] Compiling...
[⠔] Compiling 5 files with 0.8.16
[⠢] Solc 0.8.16 finished in 1.79s
Compiler run successful!
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 688029)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 15.45s
Running 21 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487105923956)
[PASS] testAuthInSources() (gas: 9223371487099527378)
[PASS] testBytecodeMatches() (gas: 1869176)
[PASS] testCastCost() (gas: 533466)
[PASS] testChainlogValues() (gas: 9408004)
[PASS] testChainlogVersionBump() (gas: 4171503)
[PASS] testContractSize() (gas: 8962)
[PASS] testDeployCost() (gas: 1856194)
[PASS] testFailNotScheduled() (gas: 14420)
[PASS] testFailTooEarly() (gas: 13585)
[PASS] testFailTooLate() (gas: 13584)
[PASS] testFailWrongDay() (gas: 13607)
[PASS] testGeneral() (gas: 35533501)
[PASS] testNextCastTime() (gas: 353637)
[PASS] testOnTime() (gas: 529128)
[PASS] testPSMs() (gas: 1976038)
[PASS] testRWA005OracleTell() (gas: 545933)
[PASS] testRWA007DocChange() (gas: 595869)
[PASS] testRWA009DocChange() (gas: 595913)
[PASS] testSparkSpellIsExecuted() (gas: 532664)
[PASS] testUseEta() (gas: 352346)
Test result: ok. 21 passed; 0 failed; 0 skipped; finished in 911.80s
Ran 2 test suites: 23 tests passed, 0 failed, 0 skipped (23 total tests)
In previous spell https://github.com/makerdao/spells-mainnet/pull/365 the evm version was also london after deployment.
This issue requires further looking into and requires investigation regarding why the etherscan now shows different evm version on latest spells. I as reviewer here do not consider the different version strong enough reason to block the further progress of the spell here due to:
In previous spell #365 the evm version was also london after deployment.
- Me (prev spell crafter) with @amusingaxl both did not change deployment processes
- @SidestreamColdMelon explicitly OKyed the london version in the last spell.
This issue requires further looking into and requires investigation regarding why the etherscan now shows different evm version on latest spells. I as reviewer here do not consider the different version strong enough reason to block the further progress of the spell here due to:
- both other spell process participants are also fine with moving on with this spell - this means @0xdecr1pto should agree with me here, @amusingaxl should agree with me here.
- @SidestreamColdMelon has already OKyed the london (see above) - no action needed here.
aggree
make diff-deployed-spell
)make check-deployed-spell
DssExecLib.address
file
DssExecLib.address
file (e.g. look under the 'Files Changed' PR tab, etc.)deployed_spell_created
matches deployment timestampdeployed_spell_block
matches deployment block numbermake 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 Doc date)DssExecLib.address
file is not being modified by the spell PRmake test
ETH_RPC_URL
is being used from env (i.e. no match
, block
or similar are active in your env)Regarding the EVM version issue, I spent some time digging into it. I didn't find any explicit mention to this issue out there. Maybe it's related to us still using dapp.tools for verification or Etherscan changing something on their side 🤷🏻♂️.
Regarding the last spells, I checked 2 months worth of spells and apparently the issue started on Aug 18th.
Spells showing "London" as EVM version:
Spells showing "default" EVM version:
I also verified the current spell on Sourcify: https://repo.sourcify.dev/contracts/partial_match/1/0xD3F96B8Ffbf21033F5A6210C6349598AAdBd1152/metadata.json
However, it does not show any info regarding the EVM version :/
new-spells
is correct
new-spells
(via a thumbs up message reaction, )
Description
Contribution 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