@@ -25,15 +25,14 @@ import (
2525
2626 "github.com/smartcontractkit/cld-changesets/datastore/refkey"
2727 "github.com/smartcontractkit/cld-changesets/internal/semvers"
28-
29- // TODO: remove legacymcms import once remaining MCMS changesets are migrated out of legacy/mcms/changesets.
30- legacymcms "github.com/smartcontractkit/cld-changesets/legacy/mcms/changesets"
31- evmstate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/evm"
3228 solstate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana"
3329 solchangesets "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana/changesets"
3430 soltestutils "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana/testutils"
31+ "github.com/smartcontractkit/cld-changesets/mcms/changesets/deploy"
3532 setconfig "github.com/smartcontractkit/cld-changesets/mcms/changesets/set-config"
3633 _ "github.com/smartcontractkit/cld-changesets/mcms/changesets/set-config/all"
34+ _ "github.com/smartcontractkit/cld-changesets/mcms/evm/deploy"
35+ evmreaders "github.com/smartcontractkit/cld-changesets/mcms/evm/readers"
3736)
3837
3938//nolint:paralleltest // global mcm.SetProgramID state and shared Solana CTF container setup
@@ -240,14 +239,14 @@ func TestChangeset_EVM(t *testing.T) {
240239 },
241240 } {
242241 t .Run (tt .name , func (t * testing.T ) {
243- mcmsState , _ := evmMCMSChainState (t , rt , tt .selector )
242+ mcmsRefs , _ := loadEVMMCMSRefs (t , rt , tt .selector )
244243 originalCfg := cldftesthelpers .SingleGroupMCMS (t )
245244
246245 var targets []setconfig.ContractSetConfig
247246 var mcmsInput * cldf.MCMSTimelockProposalInput
248247 if tt .useMCMS {
249248 cfgCanceller := cldftesthelpers .SingleGroupMCMS (t )
250- cfgCanceller .Signers = append (cfgCanceller .Signers , mcmsState . BypasserMcm . Address () )
249+ cfgCanceller .Signers = append (cfgCanceller .Signers , mcmsRefs . Bypasser )
251250 cfgCanceller .Quorum = 2
252251 targets = []setconfig.ContractSetConfig {
253252 {
@@ -257,15 +256,15 @@ func TestChangeset_EVM(t *testing.T) {
257256 }
258257 mcmsInput = newMCMSInput (mcmstypes .TimelockActionBypass , "Set config proposal" , "" )
259258 } else {
260- timelockAddress := mcmsState .Timelock . Address ()
259+ timelockAddress := mcmsRefs .Timelock
261260
262261 cfgProposer := cldftesthelpers .SingleGroupMCMS (t )
263262 cfgProposer .Signers = append (cfgProposer .Signers , timelockAddress )
264263 cfgProposer .Quorum = 2
265264 cfgCanceller := cldftesthelpers .SingleGroupMCMS (t )
266265 cfgBypasser := cldftesthelpers .SingleGroupMCMS (t )
267266 cfgBypasser .Signers = append (cfgBypasser .Signers , timelockAddress )
268- cfgBypasser .Signers = append (cfgBypasser .Signers , mcmsState . ProposerMcm . Address () )
267+ cfgBypasser .Signers = append (cfgBypasser .Signers , mcmsRefs . Proposer )
269268 cfgBypasser .Quorum = 3
270269
271270 targets = mcmsTargets (tt .selector , cfgProposer , cfgCanceller , cfgBypasser )
@@ -285,17 +284,17 @@ func TestChangeset_EVM(t *testing.T) {
285284
286285 if tt .useMCMS {
287286 cfgCanceller := targets [0 ].Config
288- newConf , err := inspector .GetConfig (t .Context (), mcmsState . CancellerMcm . Address () .Hex ())
287+ newConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Canceller .Hex ())
289288 require .NoError (t , err )
290289 require .ElementsMatch (t , cfgCanceller .Signers , newConf .Signers )
291290 require .Equal (t , cfgCanceller .Quorum , newConf .Quorum )
292291
293- proposerConf , err := inspector .GetConfig (t .Context (), mcmsState . ProposerMcm . Address () .Hex ())
292+ proposerConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Proposer .Hex ())
294293 require .NoError (t , err )
295294 require .ElementsMatch (t , originalCfg .Signers , proposerConf .Signers )
296295 require .Equal (t , originalCfg .Quorum , proposerConf .Quorum )
297296
298- bypasserConf , err := inspector .GetConfig (t .Context (), mcmsState . BypasserMcm . Address () .Hex ())
297+ bypasserConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Bypasser .Hex ())
299298 require .NoError (t , err )
300299 require .ElementsMatch (t , originalCfg .Signers , bypasserConf .Signers )
301300 require .Equal (t , originalCfg .Quorum , bypasserConf .Quorum )
@@ -307,17 +306,17 @@ func TestChangeset_EVM(t *testing.T) {
307306 cfgCanceller := targets [1 ].Config
308307 cfgBypasser := targets [2 ].Config
309308
310- newConf , err := inspector .GetConfig (t .Context (), mcmsState . ProposerMcm . Address () .Hex ())
309+ newConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Proposer .Hex ())
311310 require .NoError (t , err )
312311 require .ElementsMatch (t , cfgProposer .Signers , newConf .Signers )
313312 require .Equal (t , cfgProposer .Quorum , newConf .Quorum )
314313
315- newConf , err = inspector .GetConfig (t .Context (), mcmsState . BypasserMcm . Address () .Hex ())
314+ newConf , err = inspector .GetConfig (t .Context (), mcmsRefs . Bypasser .Hex ())
316315 require .NoError (t , err )
317316 require .ElementsMatch (t , cfgBypasser .Signers , newConf .Signers )
318317 require .Equal (t , cfgBypasser .Quorum , newConf .Quorum )
319318
320- newConf , err = inspector .GetConfig (t .Context (), mcmsState . CancellerMcm . Address () .Hex ())
319+ newConf , err = inspector .GetConfig (t .Context (), mcmsRefs . Canceller .Hex ())
321320 require .NoError (t , err )
322321 require .ElementsMatch (t , cfgCanceller .Signers , newConf .Signers )
323322 require .Equal (t , cfgCanceller .Quorum , newConf .Quorum )
@@ -331,10 +330,10 @@ func TestChangeset_EVM_PartialTargets(t *testing.T) {
331330 selector := chain_selectors .TEST_90000001 .Selector
332331
333332 rt := newEVMRuntimeWithDeploy (t , selector )
334- mcmsState , chain := evmMCMSChainState (t , rt , selector )
333+ mcmsRefs , chain := loadEVMMCMSRefs (t , rt , selector )
335334
336335 cfgProposer := cldftesthelpers .SingleGroupMCMS (t )
337- cfgProposer .Signers = append (cfgProposer .Signers , mcmsState .Timelock . Address () )
336+ cfgProposer .Signers = append (cfgProposer .Signers , mcmsRefs .Timelock )
338337 cfgProposer .Quorum = 2
339338
340339 err := rt .Exec (
@@ -353,17 +352,17 @@ func TestChangeset_EVM_PartialTargets(t *testing.T) {
353352 inspector := evm .NewInspector (chain .Client )
354353 originalCfg := cldftesthelpers .SingleGroupMCMS (t )
355354
356- proposerConf , err := inspector .GetConfig (t .Context (), mcmsState . ProposerMcm . Address () .Hex ())
355+ proposerConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Proposer .Hex ())
357356 require .NoError (t , err )
358357 require .ElementsMatch (t , cfgProposer .Signers , proposerConf .Signers )
359358 require .Equal (t , cfgProposer .Quorum , proposerConf .Quorum )
360359
361- cancellerConf , err := inspector .GetConfig (t .Context (), mcmsState . CancellerMcm . Address () .Hex ())
360+ cancellerConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Canceller .Hex ())
362361 require .NoError (t , err )
363362 require .ElementsMatch (t , originalCfg .Signers , cancellerConf .Signers )
364363 require .Equal (t , originalCfg .Quorum , cancellerConf .Quorum )
365364
366- bypasserConf , err := inspector .GetConfig (t .Context (), mcmsState . BypasserMcm . Address () .Hex ())
365+ bypasserConf , err := inspector .GetConfig (t .Context (), mcmsRefs . Bypasser .Hex ())
367366 require .NoError (t , err )
368367 require .ElementsMatch (t , originalCfg .Signers , bypasserConf .Signers )
369368 require .Equal (t , originalCfg .Quorum , bypasserConf .Quorum )
@@ -385,21 +384,26 @@ func TestChangeset_EVM_Qualifier(t *testing.T) {
385384 rmnmcmsConfig .Qualifier = & rmnmcmsQualifier
386385
387386 err := rt .Exec (
388- runtime .ChangesetTask (cldf .CreateLegacyChangeSet (legacymcms .DeployMCMSWithTimelockV2 ), map [uint64 ]cldfproposalutils.MCMSWithTimelockConfig {
389- selector : cllccipConfig ,
387+ runtime .ChangesetTask (deploy.Changeset {}, deploy.Input {
388+ ConfigByChain : map [uint64 ]cldfproposalutils.MCMSWithTimelockConfig {
389+ selector : cllccipConfig ,
390+ },
390391 }),
391- runtime .ChangesetTask (cldf .CreateLegacyChangeSet (legacymcms .DeployMCMSWithTimelockV2 ), map [uint64 ]cldfproposalutils.MCMSWithTimelockConfig {
392- selector : rmnmcmsConfig ,
392+ runtime .ChangesetTask (deploy.Changeset {}, deploy.Input {
393+ ConfigByChain : map [uint64 ]cldfproposalutils.MCMSWithTimelockConfig {
394+ selector : rmnmcmsConfig ,
395+ },
393396 }),
394397 )
395398 require .NoError (t , err )
396399
397- cllccipState , err := evmstate .MaybeLoadMCMSWithTimelockStateWithQualifier (rt .Environment (), []uint64 {selector }, cllccipQualifier )
400+ cllccipTimelock , err := evmreaders.Reader {}.GetTimelockRef (rt .Environment (), selector , cldf.MCMSTimelockProposalInput {
401+ Qualifier : cllccipQualifier ,
402+ })
398403 require .NoError (t , err )
399- require .NotNil (t , cllccipState [selector ])
400404
401405 cfgProposer := cldftesthelpers .SingleGroupMCMS (t )
402- cfgProposer .Signers = append (cfgProposer .Signers , cllccipState [ selector ]. Timelock .Address ( ))
406+ cfgProposer .Signers = append (cfgProposer .Signers , common . HexToAddress ( cllccipTimelock .Address ))
403407 cfgProposer .Quorum = 2
404408
405409 for _ , tt := range []struct {
0 commit comments