Closed 0xdecr1pto closed 1 year ago
Good to deploy :shipit:
Spell Actions (Per Exec Doc):
line
) to 0 (zero). Autoline
.block.timestamp + 30 days
)Executive vote - Month DD, YYYY.md
make exec-hash $URL
:warning: Script is not working for some reason. Not blocking progress.cast keccak -- "$(curl '$URL' -o - 2>/dev/null)"
0xa6a361c0f32f118b71990a98422e2d5a353499fcbc6c21d5ef44c54a362cd2e1
TARGET_DATE MakerDAO Executive Spell | Hash: EXEC_DOC_HASH)
description
// Hash: cast keccak -- "$(wget 'EXEC_DOC_URL' -q -O - 2>/dev/null)"
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 wellgit submodule status
) matches the latest release version or newer (NOTE: dss-exec-lib
as installed locally will use GitHub code more recent than the 0.0.9 release)dss-test
dss-interfaces
dss-test
(Non-critical)forge-std
dss-test
(Non-critical)dss-interfaces
import "dss-interfaces/dss/VatAbstract.sol";
)dss-interfaces
(Where there is a mismatch, use cast interface
as the source of truth)cast interface <contract_address>
to ensure correctnessLike
suffix (e.g. VatLike
), with some exceptionsmake rates pct=<pct>
(e.g. pct=0.75, for 0.75%)X_PT_Y_Z_PCT_RATE
(e.g. ZERO_PT_SEVEN_FIVE_PCT_RATE
for 0.75%)internal
constant
WAD = 10 ** 18
RAY = 10 ** 27
RAD = 10 ** 45
internal
constant
HUNDRED = 10 ** 2
THOUSAND = 10 ** 3
MILLION = 10 ** 6
BILLION = 10 ** 9
internal
constant
MONTH_DD_YYYY
(e.g. MAY_01_2023
for 2023-05-01)11:59:59
for the final day of something, 00:00:00
for the first day of something) in the context of timestamp usageinternal
constant
GNU AGPLv3
licensevat
, dai
, dog
, ...)MCD_ESM
is already relied / being relied in this spell (as approved by GovAlpha) in order to allow de-authing the pause proxy during Emergency Shutdown, via denyProxy
.code --diff etherscan.sol github.sol
)addresses_deployers.sol
(to keep up to date)jug.ilk.duty
(setIlkStabilityFee)// Increase ILK-A Stability Fee by X.XX% from X.XX% to X.XX%.
pot.dsr
(setDSR)PCT_RATE
is correct
make rates pct=<pct>
(e.g. pct=0.75, for 0.75%)spotter.ilk.mat
(liquidationRatio)dog.ilk.hole
(setIlkMaxLiquidationAmount)vat.ilk.dust
(setIlkMinVaultAmount)dog.ilk.chop
(liquidationPenalty)clip.buf
(startingPriceFactor)clipperMom.clip.tolerance
(setLiquidationBreakerPriceTolerance)clip.tail
(auctionDuration)clip.cusp
(permittedDrop)clip.chip
(kprPctReward)clip.tip
(kprFlatReward)calc.tau
(setLinearDecrease)calc.cut
calc.step
vat.ilk.line
changes (per ilk)setIlkDebtCeiling
ilk
line
increaseIlkDebtCeiling
ilk
amount
global
decreaseIlkDebtCeiling
ilk
amount
global
vat.Line
changes (Global Line)
setGlobalDebtCeiling
amount
increaseGlobalDebtCeiling
amount
decreaseGlobalDebtCeiling
amount
Autoline Changesilk
line
ilk
line
gap
ttl
mat
)
0
line
to Reduce in the Global Debt Ceilingline
Cachedchop
to 0
tip
to 0
chip
is required to be adjusted as wellDssExecLib.linearInterpolation
name
Format matches "XXX-A Offboarding"target
matches spotter
ilk
Format matches "XXX-A"what
matches mat
startTime
matches block.timestamp
start
matches Var CURRENT_XXX_A_MAT
end
matches Var TARGET_XXX_A_MAT
(Match Exec Doc & Risk Computations)mat
Covers All Remaining Vaults CR times Risk Multiplier Factorduration
matches Exec Docdoc
(Using the _updateDoc
helper or otherwise)init
the RwaLiquidationOracle
to reset the doc
pip
must be set (not the zero address)ilk
follows format "RWAXXX-A"val
price ignored (0
) if init
has already been calleddoc
new legal document (IPFS HASH) matches Exec Doctau
parameter used is the old tau
valueline
) + Liquidation Oracle Price Bump (val
)ilk
follows format "RWAXXX-A"line
(max debt ceiling)gap
ttl
bump
RwaLiquidationOracle
with new computed increased price (val
)
val
is set accordingly with autoline max debt ceiling (line
)val
should enable DAI to be drawn over the loan period while taking into account the configured ink
amount, interest rate and liquidation ratio (see below)val
is calculated with line * [(1 + duty) ** years] * mat
- rounded up - and makes sense in context of the rate mechanism. Minimum duration is usually in the Exec Doc of the spell with the RWAXXX ilk onboarding.val
formula (Debt ceiling * [ (1 + RWA stability fee ) ^ (minimum deal duration in years) ] * liquidation ratio
) is presentbump
line in format // XXM * 1.XX^X * X.XX as a WAD
corresponding to the val
calculation formula (e.g. // 15M * 1.03^2 * 1.00 as a WAD
) is present along with the calculation formula on the line aboveval
of multiple RWA ilks being combined, val
calculation is done once per ilk and added to make the total, with workings provided in code comments. The existing val
value can be retrieved by calling read()
on PIP_RWAXX
and converting the result into decimal.spotter
to pull in the new priceline
) + Liquidation Oracle Price Bump (val
)bump
RwaLiquidationOracle
with new computed increased price (val
)
val
should enable DAI to be drawn over the loan period while taking into account the configured ink
amount, interest rate and liquidation ratio (see below)val
is calculated with line * [(1 + duty) ** years] * mat
- rounded up - and makes sense in context of the rate mechanism. Minimum duration is usually in the Exec Doc of the spell with the RWAXXX ilk onboarding.val
formula (Debt ceiling * [ (1 + RWA stability fee ) ^ (minimum deal duration in years) ] * liquidation ratio
) is presentbump
line in format // XXM * 1.XX^X * X.XX as a WAD
corresponding to the val
calculation formula (e.g. // 15M * 1.03^2 * 1.00 as a WAD
) is present along with the calculation formula on the line aboveval
of multiple RWA ilks being combined, val
calculation is done once per ilk and added to make the total, with workings provided in code comments. The existing val
value can be retrieved by calling read()
on PIP_RWAXX
and converting the result into decimal.spotter
to pull in the new priceDssVest
)DssVestLike
interface is correctrestrict
is used for each stream unless otherwise stated in the Exec Docusr
(Vest recipient address) matches Exec Doctot
(Total stream amount) matches Exec Docether
to express decimal (non-integer) values of tot
bgn
(Vest start timestamp) matches Exec Doctau
(Vest total duration) matches Exec Doctau
is expressed as 'bgn
- fin
' (i.e. MONTH_DD_YYYY - MONTH_DD_YYYY
)fin
(Vest end timestamp) matches Exec Doceta
(Vest cliff duration) matches Exec Docclf
), eta
is 0clf
(Cliff end timestamp) matches Exec Docclf <= bgn
, eta
is 0clf > bgn
eta
is expressed as 'clf
- bgn
' (i.e. MONTH_DD_YYYY - MONTH_DD_YYYY
)mgr
(Vest manager address) matches Exec Docmgr
is address(0)
cap
) check (MKR, DAI)
tot
divided by tau
) <=
the maximum vest streaming rate (cap
)tot
divided by tau
) >
the maximum vest streaming rate (cap
)cap
value equal to 10% greater than the new maximum vesting ratecap
up with 2 significant figure precision (i.e. 2446 becomes 2500)cap
change is noted in the Exec Doccap
value matches Exec Doctot
(total of new MKR vest amounts)Yank
)MCD_VEST_MKR_TREASURY
for MKR yank
MCD_VEST_DAI
for DAI yank
addresses_wallets.sol
addresses_deployers.sol
as an entryProxyLike(SUBDAO_PROXY).exec(SUBDAO_SPELL, abi.encodeWithSignature("execute()"));
cast
execution. (Also note that low level call gas estimation is not done by our scripts)DelegateCall
context)PAUSE_PROXY
as their admin
(i.e. the party that can upgrade)admin
that is not PAUSE_PROXY
are not authed on any core contracts (Blocking)CREATE2
(e.g. if it looks like a vanity address) do not have selfdestruct
in their codeaddresses_mainnet.sol
matches spell codeimmutable
visibility is only used when fetching addresses from the ChainLog
via DssExecLib.getChangelogAddress
and constant
is used instead for static addresses
address
and wrap with Like
suffix interfaces inline (when making calls) unless archive patterns permit otherwise (Such as MKR
)DssExecLib.vat()
)ChainLog
, the variable name must match the value of the ChainLog key for that address (e.g. MCD_VAT
rather than vat
), except where the archive pattern differs from this pattern (e.g. MKR)testGeneral
testGeneral
testGeneral
testGeneral
/ :white_check_mark: test_RWA015_Update
testGeneral
/ :white_check_mark: test_RWA007_Update
testVestDAI
/ :white_check_mark: testVestMKR
testMKRPayments
testMKRPayments
testMKRPayments
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...
[⠊] Compiling 4 files with 0.8.16
[⠆] Solc 0.8.16 finished in 1.91s
Compiler run successful!
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 5456079)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 128.28s
Running 21 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testBytecodeMatches() (gas: 3791346)
[PASS] testCastCost() (gas: 5301472)
[PASS] testChainlogValues() (gas: 14167554)
[PASS] testChainlogVersionBump() (gas: 8930988)
[PASS] testContractSize() (gas: 8984)
[PASS] testDeployCost() (gas: 3773058)
[PASS] testFailNotScheduled() (gas: 14420)
[PASS] testFailTooEarly() (gas: 13607)
[PASS] testFailTooLate() (gas: 13584)
[PASS] testFailWrongDay() (gas: 13563)
[PASS] testGeneral() (gas: 42066368)
[PASS] testMKRPayments() (gas: 5450402)
[PASS] testNextCastTime() (gas: 353703)
[PASS] testOnTime() (gas: 5297156)
[PASS] testPSMs() (gas: 6648208)
[PASS] testSparkSpellIsExecuted() (gas: 5300692)
[PASS] testUseEta() (gas: 352324)
[PASS] testVestDAI() (gas: 5485745)
[PASS] testVestMKR() (gas: 5422467)
[PASS] test_RWA007_Update() (gas: 5541585)
[PASS] test_RWA015_Update() (gas: 5541199)
Test result: ok. 21 passed; 0 failed; 0 skipped; finished in 1102.50s
Ran 2 test suites: 23 tests passed, 0 failed, 0 skipped (23 total tests)
Spell Actions (Per Exec Doc):
Read spell actions and instructions from the Exec Doc
List the actions being performed in this spell
[x] Non-Scope Defined Parameter Changes - WBTC DC-IAM Changes
[x] Stability Fee Changes
[x] Initial RETH-A Offboarding
line
) to 0 (zero).Autoline
.[x] Reconfiguring Andromeda RWA015-A
[x] Reconfiguring Clydesdale RWA007-A
[x] Set up Governance Facilitator Streams
[x] USDP-PSM Facilitation Incentives
[x] BA Labs MKR Distribution
[x] AVC Member Compensation
[x] Delegate Compensation
[x] Spark Proxy Spell
block.timestamp + 30 days
)Executive vote - Month DD, YYYY.md
make exec-hash $URL
cast keccak -- "$(curl '$URL' -o - 2>/dev/null)"
0xa6a361c0f32f118b71990a98422e2d5a353499fcbc6c21d5ef44c54a362cd2e1TARGET_DATE MakerDAO Executive Spell | Hash: EXEC_DOC_HASH)
description
// Hash: cast keccak -- "$(wget 'EXEC_DOC_URL' -q -O - 2>/dev/null)"
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 '9bfd7afadd1f8c217ef05850b25556917
86286cb'
Submodule path 'lib/dss-exec-lib/lib/forge-std': checked out '0aa99eb8456693c015350c5e6c4f442ebe912f
77'
Submodule path 'lib/dss-exec-lib/lib/forge-std/lib/ds-test': checked out 'cd98eff28324bfac652e63a239
a60632a761790b'
Submodule path 'lib/dss-test': checked out '4ad127cf53eeaddfb7b8ad56dd4b13e57d6a0067'
Submodule path 'lib/dss-test/lib/dss-interfaces': checked out '9bfd7afadd1f8c217ef05850b255569178628
6cb'
Submodule path 'lib/dss-test/lib/forge-std': checked out 'aea0b2685bebc883c09f5554d7fb481e85d0564d'
Submodule path 'lib/dss-test/lib/forge-std/lib/ds-test': checked out 'cd98eff28324bfac652e63a239a606
32a761790b'
dss-exec-lib
dss-exec-lib
is synced as well
not presentgit submodule status
) matches the latest release version or newer (NOTE: dss-exec-lib
as installed locally will use GitHub code more recent than the 0.0.9 release)dss-interfaces
import "dss-interfaces/dss/VatAbstract.sol";
)dss-interfaces
(Where there is a mismatch, use cast interface
as the source of truth)cast interface <contract_address>
to ensure correctnessLike
suffix (e.g. VatLike
), with some exceptionsmake rates pct=<pct>
(e.g. pct=0.75, for 0.75%)X_PT_Y_Z_PCT_RATE
(e.g. ZERO_PT_SEVEN_FIVE_PCT_RATE
for 0.75%)internal
constant
WAD = 10 ** 18
internal
constant
MILLION = 10 ** 6
BILLION = 10 ** 9
internal
constant
MONTH_DD_YYYY
(e.g. MAY_01_2023
for 2023-05-01)11:59:59
for the final day of something, 00:00:00
for the first day of something) in the context of timestamp usageinternal
constant
jug.ilk.duty
(setIlkStabilityFee)// Increase ILK-A Stability Fee by X.XX% from X.XX% to X.XX%.
ilk
line
gap
ttl
line
) + Liquidation Oracle Price Bump (val
)ilk
follows format "RWAXXX-A"line
(max debt ceiling)gap
ttl
bump
RwaLiquidationOracle
with new computed increased price (val
)
val
is set accordingly with autoline max debt ceiling (line
)val
should enable DAI to be drawn over the loan period while taking into account the configured ink
amount, interest rate and liquidation ratio (see below)val
is calculated with line * [(1 + duty) ** years] * mat
- rounded up - and makes sense in context of the rate mechanism. Minimum duration is usually in the Exec Doc of the spell with the RWAXXX ilk onboarding.val
formula (Debt ceiling * [ (1 + RWA stability fee ) ^ (minimum deal duration in years) ] * liquidation ratio
) is presentbump
line in format // XXM * 1.XX^X * X.XX as a WAD
corresponding to the val
calculation formula (e.g. // 15M * 1.03^2 * 1.00 as a WAD
) is present along with the calculation formula on the line aboveval
of multiple RWA ilks being combined, val
calculation is done once per ilk and added to make the total, with workings provided in code comments. The existing val
value can be retrieved by calling read()
on PIP_RWAXX
and converting the result into decimal.spotter
to pull in the new priceline
) + Liquidation Oracle Price Bump (val
)bump
RwaLiquidationOracle
with new computed increased price (val
)
val
should enable DAI to be drawn over the loan period while taking into account the configured ink
amount, interest rate and liquidation ratio (see below)val
is calculated with line * [(1 + duty) ** years] * mat
- rounded up - and makes sense in context of the rate mechanism. Minimum duration is usually in the Exec Doc of the spell with the RWAXXX ilk onboarding.val
formula (Debt ceiling * [ (1 + RWA stability fee ) ^ (minimum deal duration in years) ] * liquidation ratio
) is presentbump
line in format // XXM * 1.XX^X * X.XX as a WAD
corresponding to the val
calculation formula (e.g. // 15M * 1.03^2 * 1.00 as a WAD
) is present along with the calculation formula on the line aboveval
of multiple RWA ilks being combined, val
calculation is done once per ilk and added to make the total, with workings provided in code comments. The existing val
value can be retrieved by calling read()
on PIP_RWAXX
and converting the result into decimal.spotter
to pull in the new priceDssVest
)DssVestLike
interface is correctrestrict
is used for each stream unless otherwise stated in the Exec Docusr
(Vest recipient address) matches Exec Doctot
(Total stream amount) matches Exec Docether
to express decimal (non-integer) values of tot
bgn
(Vest start timestamp) matches Exec Doctau
(Vest total duration) matches Exec Doctau
is expressed as 'bgn
- fin
' (i.e. MONTH_DD_YYYY - MONTH_DD_YYYY
)fin
(Vest end timestamp) matches Exec Doceta
(Vest cliff duration) matches Exec Docclf
), eta
is 0clf
(Cliff end timestamp) matches Exec Docclf
<= bgn
, eta
is 0clf
> bgn
eta
is expressed as 'clf
- bgn
' (i.e. MONTH_DD_YYYY - MONTH_DD_YYYY
)mgr
(Vest manager address) matches Exec Docmgr
is address(0)
cap
) check (MKR, DAI)
tot
divided by tau
) <= the maximum vest streaming rate (cap
)tot
divided by tau
) > the maximum vest streaming rate (cap
)cap
value equal to 10% greater than the new maximum vesting ratecap
up with 2 significant figure precision (i.e. 2446 becomes 2500)cap
change is noted in the Exec Doccap
value matches Exec Doctot
(total of new MKR vest amounts)addresses_wallets.sol
ProxyLike(SUBDAO_PROXY).exec(SUBDAO_SPELL, abi.encodeWithSignature("execute()"));
cast
execution. (Also note that low level call gas estimation is not done by our scripts)DelegateCall
context)PAUSE_PROXY
as their admin
(i.e. the party that can upgrade)admin
that is not PAUSE_PROXY
are not authed on any core contracts (Blocking)addresses_mainnet.sol
matches spell codeimmutable
visibility is only used when fetching addresses from the ChainLog
via DssExecLib.getChangelogAddress
and constant
is used instead for static addresses
address
and wrap with Like
suffix interfaces inline (when making calls) unless archive patterns permit otherwise (Such as MKR
)DssExecLib.vat()
)ChainLog
, the variable name must match the value of the ChainLog key for that address (e.g. MCD_VAT
rather than vat
), except where the archive pattern differs from this pattern (e.g. MKR)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 7 files with 0.8.16
[⠔] Solc 0.8.16 finished in 1.99s
Compiler run successful!
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 5456308)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 171.04s
Running 23 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487105683244)
[PASS] testAuthInSources() (gas: 9223371487099286666)
[PASS] testBytecodeMatches() (gas: 3803830)
[PASS] testCastCost() (gas: 5301701)
[PASS] testChainlogValues() (gas: 14167783)
[PASS] testChainlogVersionBump() (gas: 8931217)
[PASS] testContractSize() (gas: 8984)
[PASS] testDeployCost() (gas: 3785506)
[PASS] testFailNotScheduled() (gas: 14420)
[PASS] testFailTooEarly() (gas: 13607)
[PASS] testFailTooLate() (gas: 13584)
[PASS] testFailWrongDay() (gas: 13563)
[PASS] testGeneral() (gas: 42080917)
[PASS] testMKRPayments() (gas: 5450631)
[PASS] testNextCastTime() (gas: 353703)
[PASS] testOnTime() (gas: 5297385)
[PASS] testPSMs() (gas: 6648437)
[PASS] testSparkSpellIsExecuted() (gas: 5300921)
[PASS] testUseEta() (gas: 352324)
[PASS] testVestDAI() (gas: 5485974)
[PASS] testVestMKR() (gas: 5422696)
[PASS] test_RWA007_Update() (gas: 5542044)
[PASS] test_RWA015_Update() (gas: 5541313)
Test result: ok. 23 passed; 0 failed; 0 skipped; finished in 1625.95s
Ran 2 test suites: 25 tests passed, 0 failed, 0 skipped (25 total tests)
Good to handover.
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)Using DssExecLib at: 0x8De6DDbCd5053d32292AAA0D2105A32d108484a6
[⠆] Compiling...
[⠃] Compiling 6 files with 0.8.16
[⠢] Solc 0.8.16 finished in 2.48s
Compiler run successful!
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 5456079)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 128.08s
Running 21 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testBytecodeMatches() (gas: 3803830)
[PASS] testCastCost() (gas: 5301472)
[PASS] testChainlogValues() (gas: 14167554)
[PASS] testChainlogVersionBump() (gas: 8930988)
[PASS] testContractSize() (gas: 8984)
[PASS] testDeployCost() (gas: 3785506)
[PASS] testFailNotScheduled() (gas: 14420)
[PASS] testFailTooEarly() (gas: 13607)
[PASS] testFailTooLate() (gas: 13584)
[PASS] testFailWrongDay() (gas: 13563)
[PASS] testGeneral() (gas: 42082785)
[PASS] testMKRPayments() (gas: 5450402)
[PASS] testNextCastTime() (gas: 353703)
[PASS] testOnTime() (gas: 5297156)
[PASS] testPSMs() (gas: 6648208)
[PASS] testSparkSpellIsExecuted() (gas: 5300692)
[PASS] testUseEta() (gas: 352324)
[PASS] testVestDAI() (gas: 5485745)
[PASS] testVestMKR() (gas: 5422467)
[PASS] test_RWA007_Update() (gas: 5541930)
[PASS] test_RWA015_Update() (gas: 5540566)
Test result: ok. 21 passed; 0 failed; 0 skipped; finished in 759.28s
Ran 2 test suites: 23 tests passed, 0 failed, 0 skipped (23 total tests)
Good to handover
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 4 files with 0.8.16
[⠢] Solc 0.8.16 finished in 1.81s
Compiler run successful!
Running 2 tests for src/test/starknet.t.sol:StarknetTests
[PASS] testStarknet() (gas: 5457459)
[PASS] testStarknetSpell() (gas: 2346)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 999.23s
Running 23 tests for src/DssSpell.t.sol:DssSpellTest
[PASS] testAuth() (gas: 9223371487105683244)
[PASS] testAuthInSources() (gas: 9223371487099286666)
[PASS] testBytecodeMatches() (gas: 3803830)
[PASS] testCastCost() (gas: 5302852)
[PASS] testChainlogValues() (gas: 14168934)
[PASS] testChainlogVersionBump() (gas: 8932368)
[PASS] testContractSize() (gas: 8984)
[PASS] testDeployCost() (gas: 3785506)
[PASS] testFailNotScheduled() (gas: 14420)
[PASS] testFailTooEarly() (gas: 13607)
[PASS] testFailTooLate() (gas: 13584)
[PASS] testFailWrongDay() (gas: 13563)
[PASS] testGeneral() (gas: 42084165)
[PASS] testMKRPayments() (gas: 5451782)
[PASS] testNextCastTime() (gas: 353703)
[PASS] testOnTime() (gas: 5298536)
[PASS] testPSMs() (gas: 6649588)
[PASS] testSparkSpellIsExecuted() (gas: 5302072)
[PASS] testUseEta() (gas: 352324)
[PASS] testVestDAI() (gas: 5487125)
[PASS] testVestMKR() (gas: 5423847)
[PASS] test_RWA007_Update() (gas: 5543080)
[PASS] test_RWA015_Update() (gas: 5542176)
Test result: ok. 23 passed; 0 failed; 0 skipped; finished in 999.23s
Ran 2 test suites: 25 tests passed, 0 failed, 0 skipped (25 total tests)
Description
Contribution Checklist
(PE-<TICKET_NUMBER>)
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