Skip to content

Commit f04fe26

Browse files
authored
chore: move all legacy code into single legacy/ pkg (#48)
Move all legacy code to a single `legacy/` pkg. There's some functions like mcms and link operations and sequences that I feel could be rescued so I left them out of legacy. We can decide if we move them back to legacy if we find out the structure of them is not ideal during the new changesets refactoring.
1 parent 39a62f2 commit f04fe26

48 files changed

Lines changed: 130 additions & 132 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

mcms/changesets/legacy/deploy_mcms_with_timelock.go renamed to legacy/mcms/changesets/deploy_mcms_with_timelock.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package legacy
1+
package changesets
22

33
import (
44
"context"
@@ -11,13 +11,12 @@ import (
1111
mcmscontracts "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/contracts/mcms"
1212
xerrgroup "golang.org/x/sync/errgroup"
1313

14-
evmchangesets "github.com/smartcontractkit/cld-changesets/pkg/family/evm/changesets"
15-
evmstate "github.com/smartcontractkit/cld-changesets/pkg/family/evm/legacy"
14+
cldfproposalutils "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalutils"
1615

16+
"github.com/smartcontractkit/cld-changesets/legacy/pkg/family/evm"
17+
evmchangesets "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/evm/changesets"
18+
solchangesets "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana/changesets"
1719
opsevm "github.com/smartcontractkit/cld-changesets/pkg/family/evm/operations"
18-
solchangesets "github.com/smartcontractkit/cld-changesets/pkg/family/solana/changesets/legacy"
19-
20-
cldfproposalutils "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalutils"
2120

2221
"github.com/ethereum/go-ethereum/common"
2322
"github.com/gagliardetto/solana-go"
@@ -126,8 +125,8 @@ func DeployMCMSWithTimelockV2(
126125
// load mcms state with qualifier awareness
127126
// we load the state one by one to avoid early return from MaybeLoadMCMSWithTimelockStateWithQualifier
128127
// due to one of the chain not found
129-
var chainstate *evmstate.MCMSWithTimelockState
130-
s, err := evmstate.MaybeLoadMCMSWithTimelockStateWithQualifier(env, []uint64{chainSel}, qualifier)
128+
var chainstate *evm.MCMSWithTimelockState
129+
s, err := evm.MaybeLoadMCMSWithTimelockStateWithQualifier(env, []uint64{chainSel}, qualifier)
131130
if err != nil {
132131
// if the state is not found for chain, we assume it's a fresh deployment
133132
// this includes "no addresses found" which is expected for new qualifiers
@@ -214,14 +213,14 @@ func grantRolePreconditions(e cldf.Environment, cfg GrantRoleInput) error {
214213
}
215214

216215
// loads MCMS state for each chain using per-chain qualifiers from cfg.MCMS.TimelockQualifierPerChain when available
217-
func loadMCMSStatePerChainWithQualifier(e cldf.Environment, cfg GrantRoleInput) (map[uint64]*evmstate.MCMSWithTimelockState, error) {
218-
result := make(map[uint64]*evmstate.MCMSWithTimelockState)
216+
func loadMCMSStatePerChainWithQualifier(e cldf.Environment, cfg GrantRoleInput) (map[uint64]*evm.MCMSWithTimelockState, error) {
217+
result := make(map[uint64]*evm.MCMSWithTimelockState)
219218
for selector := range cfg.ExistingProposerByChain {
220219
qualifier := ""
221220
if cfg.MCMS != nil && cfg.MCMS.TimelockQualifierPerChain != nil {
222221
qualifier = cfg.MCMS.TimelockQualifierPerChain[selector]
223222
}
224-
chainState, err := evmstate.MaybeLoadMCMSWithTimelockStateWithQualifier(e, []uint64{selector}, qualifier)
223+
chainState, err := evm.MaybeLoadMCMSWithTimelockStateWithQualifier(e, []uint64{selector}, qualifier)
225224
if err != nil {
226225
return nil, err
227226
}
@@ -236,7 +235,7 @@ func grantRoleLogic(e cldf.Environment, cfg GrantRoleInput) (cldf.ChangesetOutpu
236235
if err != nil {
237236
return cldf.ChangesetOutput{}, err
238237
}
239-
mcmsStateForProposal := make(map[uint64]evmstate.MCMSWithTimelockState)
238+
mcmsStateForProposal := make(map[uint64]evm.MCMSWithTimelockState)
240239
for k, v := range mcmsState {
241240
if v != nil {
242241
// Replace the proposer MCM in state with the existing proposer.
@@ -249,7 +248,7 @@ func grantRoleLogic(e cldf.Environment, cfg GrantRoleInput) (cldf.ChangesetOutpu
249248
return cldf.ChangesetOutput{}, fmt.Errorf("failed to create ManyChainMultiSig for existing proposer %s on chain %d: %w",
250249
cfg.ExistingProposerByChain[k].Hex(), k, err)
251250
}
252-
mcmsStateForProposal[k] = evmstate.MCMSWithTimelockState{
251+
mcmsStateForProposal[k] = evm.MCMSWithTimelockState{
253252
CancellerMcm: v.CancellerMcm,
254253
BypasserMcm: v.BypasserMcm,
255254
ProposerMcm: existingProposerMcm,
@@ -281,7 +280,7 @@ func grantRoleLogic(e cldf.Environment, cfg GrantRoleInput) (cldf.ChangesetOutpu
281280
return out, nil
282281
}
283282

284-
func ValidateOwnership(ctx context.Context, mcms bool, deployerKey, timelock common.Address, contract evmstate.Ownable) error {
283+
func ValidateOwnership(ctx context.Context, mcms bool, deployerKey, timelock common.Address, contract evm.Ownable) error {
285284
owner, err := contract.Owner(&bind.CallOpts{Context: ctx})
286285
if err != nil {
287286
return fmt.Errorf("failed to get owner: %w", err)

mcms/changesets/legacy/deploy_mcms_with_timelock_test.go renamed to legacy/mcms/changesets/deploy_mcms_with_timelock_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//nolint:testifylint // inverting want and got is more succinct
2-
package legacy_test
2+
package changesets_test
33

44
import (
55
"context"
@@ -19,12 +19,12 @@ import (
1919
"github.com/smartcontractkit/quarantine"
2020
"github.com/stretchr/testify/require"
2121

22-
mcmschangesets "github.com/smartcontractkit/cld-changesets/mcms/changesets/legacy"
22+
mcmschangesets "github.com/smartcontractkit/cld-changesets/legacy/mcms/changesets"
23+
evmstate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/evm"
24+
solana2 "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana"
25+
soltestutils "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana/testutils"
2326
cldchangesetscommon "github.com/smartcontractkit/cld-changesets/pkg/common"
24-
evmstate "github.com/smartcontractkit/cld-changesets/pkg/family/evm/legacy"
2527
familysolana "github.com/smartcontractkit/cld-changesets/pkg/family/solana"
26-
"github.com/smartcontractkit/cld-changesets/pkg/family/solana/legacy"
27-
soltestutils2 "github.com/smartcontractkit/cld-changesets/pkg/family/solana/legacy/testutils"
2828

2929
timelockBindings "github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings/v0_1_1/timelock"
3030
"github.com/smartcontractkit/chainlink-common/pkg/utils/tests"
@@ -267,7 +267,7 @@ func TestDeployMCMSWithTimelockV2(t *testing.T) {
267267

268268
evmSelector := chain_selectors.TEST_90000001.Selector
269269
solSelector := chain_selectors.TEST_22222222222222222222222222222222222222222222.Selector
270-
programsPath, programIDs, ab := soltestutils2.PreloadMCMS(t, solSelector)
270+
programsPath, programIDs, ab := soltestutils.PreloadMCMS(t, solSelector)
271271

272272
rt, err := runtime.New(t.Context(), runtime.WithEnvOpts(
273273
environment.WithEVMSimulated(t, []uint64{evmSelector}),
@@ -361,7 +361,7 @@ func TestDeployMCMSWithTimelockV2(t *testing.T) {
361361
require.NoError(t, err)
362362
require.Len(t, evmMCMSState, 1)
363363

364-
solMCMSState := soltestutils2.GetMCMSStateFromAddressBook(t, rt.State().AddressBook, solChain)
364+
solMCMSState := soltestutils.GetMCMSStateFromAddressBook(t, rt.State().AddressBook, solChain)
365365

366366
// --- assert ---
367367

@@ -456,7 +456,7 @@ func TestDeployMCMSWithTimelockV2SkipInitSolana(t *testing.T) {
456456
t.Parallel()
457457

458458
selector := chain_selectors.TEST_22222222222222222222222222222222222222222222.Selector
459-
programsPath, programIDs, ab := soltestutils2.PreloadMCMS(t, selector)
459+
programsPath, programIDs, ab := soltestutils.PreloadMCMS(t, selector)
460460

461461
rt, err := runtime.New(t.Context(), runtime.WithEnvOpts(
462462
environment.WithSolanaContainer(t, []uint64{selector}, programsPath, programIDs),
@@ -518,7 +518,7 @@ func TestDeployMCMSWithTimelockV2SkipInitSolana(t *testing.T) {
518518
)
519519
require.NoError(t, err)
520520

521-
solanaState, err := legacy.MaybeLoadMCMSWithTimelockState(rt.Environment(), []uint64{selector})
521+
solanaState, err := solana2.MaybeLoadMCMSWithTimelockState(rt.Environment(), []uint64{selector})
522522
require.NoError(t, err)
523523

524524
// Call deploy again, seeds and addresses from original state should not change
@@ -527,7 +527,7 @@ func TestDeployMCMSWithTimelockV2SkipInitSolana(t *testing.T) {
527527
)
528528
require.NoError(t, err)
529529

530-
solanaStateNew, err := legacy.MaybeLoadMCMSWithTimelockState(rt.Environment(), []uint64{selector})
530+
solanaStateNew, err := solana2.MaybeLoadMCMSWithTimelockState(rt.Environment(), []uint64{selector})
531531
require.NoError(t, err)
532532

533533
// --- assert ---
@@ -549,12 +549,12 @@ func TestDeployMCMSWithTimelockV2SkipInitSolana(t *testing.T) {
549549

550550
// ----- helpers -----
551551

552-
func mcmSignerPDA(programID solana.PublicKey, seed legacy.PDASeed) string {
552+
func mcmSignerPDA(programID solana.PublicKey, seed solana2.PDASeed) string {
553553
return familysolana.GetMCMSignerPDA(programID, seed).String()
554554
}
555555

556556
func solanaTimelockConfig(
557-
ctx context.Context, t *testing.T, chain cldf_solana.Chain, programID solana.PublicKey, seed legacy.PDASeed,
557+
ctx context.Context, t *testing.T, chain cldf_solana.Chain, programID solana.PublicKey, seed solana2.PDASeed,
558558
) timelockBindings.Config {
559559
t.Helper()
560560

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package legacy
1+
package changesets
22

33
import (
44
"errors"
@@ -13,8 +13,8 @@ import (
1313
chainsel "github.com/smartcontractkit/chain-selectors"
1414
cldf_chain "github.com/smartcontractkit/chainlink-deployments-framework/chain"
1515

16+
evmstate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/evm"
1617
mcops "github.com/smartcontractkit/cld-changesets/mcms/operations"
17-
evmstate "github.com/smartcontractkit/cld-changesets/pkg/family/evm/legacy"
1818
)
1919

2020
var _ cldf.ChangeSetV2[FireDrillConfig] = MCMSSignFireDrillChangeset{}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package legacy
1+
package changesets
22

33
import (
44
"testing"
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Package changesets provides reusable MCMS changesets.
2-
package legacy
2+
package changesets
33

44
import (
55
"errors"
@@ -10,8 +10,8 @@ import (
1010

1111
cldf "github.com/smartcontractkit/chainlink-deployments-framework/deployment"
1212

13+
solana2 "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana"
1314
solanastate "github.com/smartcontractkit/cld-changesets/pkg/family/solana"
14-
"github.com/smartcontractkit/cld-changesets/pkg/family/solana/legacy"
1515
)
1616

1717
var _ cldf.ChangeSetV2[FundMCMSignerConfig] = FundMCMSignersChangeset{}
@@ -44,7 +44,7 @@ func (f FundMCMSignersChangeset) VerifyPreconditions(e cldf.Environment, config
4444
if err != nil {
4545
return fmt.Errorf("failed to get existing addresses: %w", err)
4646
}
47-
mcmState, err := legacy.MaybeLoadMCMSWithTimelockChainState(solChain, addreses)
47+
mcmState, err := solana2.MaybeLoadMCMSWithTimelockChainState(solChain, addreses)
4848
if err != nil {
4949
return fmt.Errorf("failed to load MCMS state: %w", err)
5050
}
@@ -78,33 +78,33 @@ func (f FundMCMSignersChangeset) Apply(e cldf.Environment, config FundMCMSignerC
7878
if err != nil {
7979
return cldf.ChangesetOutput{}, fmt.Errorf("failed to get existing addresses: %w", err)
8080
}
81-
mcmState, err := legacy.MaybeLoadMCMSWithTimelockChainState(solChain, addreses)
81+
mcmState, err := solana2.MaybeLoadMCMSWithTimelockChainState(solChain, addreses)
8282
if err != nil {
8383
return cldf.ChangesetOutput{}, fmt.Errorf("failed to load MCMS state: %w", err)
8484
}
8585

86-
err = legacy.FundFromDeployerKey(
86+
err = solana2.FundFromDeployerKey(
8787
solChain,
8888
[]solana.PublicKey{solanastate.GetTimelockSignerPDA(mcmState.TimelockProgram, mcmState.TimelockSeed)},
8989
cfgAmounts.Timelock)
9090
if err != nil {
9191
return cldf.ChangesetOutput{}, fmt.Errorf("failed to fund timelock signer on chain %d: %w", chainSelector, err)
9292
}
93-
err = legacy.FundFromDeployerKey(
93+
err = solana2.FundFromDeployerKey(
9494
solChain,
9595
[]solana.PublicKey{solanastate.GetMCMSignerPDA(mcmState.McmProgram, mcmState.ProposerMcmSeed)},
9696
cfgAmounts.ProposeMCM)
9797
if err != nil {
9898
return cldf.ChangesetOutput{}, fmt.Errorf("failed to fund MCMS proposer on chain %d: %w", chainSelector, err)
9999
}
100-
err = legacy.FundFromDeployerKey(
100+
err = solana2.FundFromDeployerKey(
101101
solChain,
102102
[]solana.PublicKey{solanastate.GetMCMSignerPDA(mcmState.McmProgram, mcmState.CancellerMcmSeed)},
103103
cfgAmounts.CancellerMCM)
104104
if err != nil {
105105
return cldf.ChangesetOutput{}, fmt.Errorf("failed to fund MCMS canceller on chain %d: %w", chainSelector, err)
106106
}
107-
err = legacy.FundFromDeployerKey(
107+
err = solana2.FundFromDeployerKey(
108108
solChain,
109109
[]solana.PublicKey{solanastate.GetMCMSignerPDA(mcmState.McmProgram, mcmState.BypasserMcmSeed)},
110110
cfgAmounts.BypasserMCM)

mcms/changesets/legacy/fund_mcm_pdas_test.go renamed to legacy/mcms/changesets/fund_mcm_pdas_test.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package legacy
1+
package changesets
22

33
import (
44
"context"
@@ -21,9 +21,9 @@ import (
2121
"github.com/smartcontractkit/chainlink-deployments-framework/pkg/logger"
2222
"github.com/stretchr/testify/require"
2323

24+
solana2 "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana"
2425
cldchangesetscommon "github.com/smartcontractkit/cld-changesets/pkg/common"
2526
solanastate "github.com/smartcontractkit/cld-changesets/pkg/family/solana"
26-
"github.com/smartcontractkit/cld-changesets/pkg/family/solana/legacy"
2727
)
2828

2929
func TestFundMCMSignersChangeset_VerifyPreconditions(t *testing.T) {
@@ -228,49 +228,49 @@ func testFundMCMSignersEnv(t *testing.T, selector uint64, client *rpc.Client, co
228228
}))
229229
}
230230

231-
func saveMCMSAddresses(t *testing.T, addressBook cldf.AddressBook, selector uint64, completeState bool) *legacy.MCMSWithTimelockState {
231+
func saveMCMSAddresses(t *testing.T, addressBook cldf.AddressBook, selector uint64, completeState bool) *solana2.MCMSWithTimelockState {
232232
t.Helper()
233233

234234
mcmDummyProgram := solana.NewWallet().PublicKey()
235235
timelockProgram := solana.NewWallet().PublicKey()
236-
state := &legacy.MCMSWithTimelockState{
237-
MCMSWithTimelockPrograms: &legacy.MCMSWithTimelockPrograms{
236+
state := &solana2.MCMSWithTimelockState{
237+
MCMSWithTimelockPrograms: &solana2.MCMSWithTimelockPrograms{
238238
McmProgram: mcmDummyProgram,
239239
TimelockProgram: timelockProgram,
240-
ProposerMcmSeed: legacy.PDASeed{'t', 'e', 's', 't', '1'},
241-
CancellerMcmSeed: legacy.PDASeed{'t', 'e', 's', 't', '2'},
242-
BypasserMcmSeed: legacy.PDASeed{'t', 'e', 's', 't', '3'},
243-
TimelockSeed: legacy.PDASeed{'t', 'e', 's', 't'},
240+
ProposerMcmSeed: solana2.PDASeed{'t', 'e', 's', 't', '1'},
241+
CancellerMcmSeed: solana2.PDASeed{'t', 'e', 's', 't', '2'},
242+
BypasserMcmSeed: solana2.PDASeed{'t', 'e', 's', 't', '3'},
243+
TimelockSeed: solana2.PDASeed{'t', 'e', 's', 't'},
244244
},
245245
}
246246

247247
if !completeState {
248-
state.ProposerMcmSeed = legacy.PDASeed{}
249-
state.CancellerMcmSeed = legacy.PDASeed{}
250-
state.BypasserMcmSeed = legacy.PDASeed{}
251-
state.TimelockSeed = legacy.PDASeed{}
248+
state.ProposerMcmSeed = solana2.PDASeed{}
249+
state.CancellerMcmSeed = solana2.PDASeed{}
250+
state.BypasserMcmSeed = solana2.PDASeed{}
251+
state.TimelockSeed = solana2.PDASeed{}
252252

253-
require.NoError(t, addressBook.Save(selector, legacy.EncodeAddressWithSeed(state.McmProgram, state.BypasserMcmSeed), cldf.NewTypeAndVersion(
253+
require.NoError(t, addressBook.Save(selector, solana2.EncodeAddressWithSeed(state.McmProgram, state.BypasserMcmSeed), cldf.NewTypeAndVersion(
254254
mcmscontracts.BypasserManyChainMultisig,
255255
cldchangesetscommon.Version1_0_0,
256256
)))
257257

258258
return state
259259
}
260260

261-
require.NoError(t, addressBook.Save(selector, legacy.EncodeAddressWithSeed(state.TimelockProgram, state.TimelockSeed), cldf.NewTypeAndVersion(
261+
require.NoError(t, addressBook.Save(selector, solana2.EncodeAddressWithSeed(state.TimelockProgram, state.TimelockSeed), cldf.NewTypeAndVersion(
262262
mcmscontracts.RBACTimelock,
263263
cldchangesetscommon.Version1_0_0,
264264
)))
265-
require.NoError(t, addressBook.Save(selector, legacy.EncodeAddressWithSeed(state.McmProgram, state.ProposerMcmSeed), cldf.NewTypeAndVersion(
265+
require.NoError(t, addressBook.Save(selector, solana2.EncodeAddressWithSeed(state.McmProgram, state.ProposerMcmSeed), cldf.NewTypeAndVersion(
266266
mcmscontracts.ProposerManyChainMultisig,
267267
cldchangesetscommon.Version1_0_0,
268268
)))
269-
require.NoError(t, addressBook.Save(selector, legacy.EncodeAddressWithSeed(state.McmProgram, state.CancellerMcmSeed), cldf.NewTypeAndVersion(
269+
require.NoError(t, addressBook.Save(selector, solana2.EncodeAddressWithSeed(state.McmProgram, state.CancellerMcmSeed), cldf.NewTypeAndVersion(
270270
mcmscontracts.CancellerManyChainMultisig,
271271
cldchangesetscommon.Version1_0_0,
272272
)))
273-
require.NoError(t, addressBook.Save(selector, legacy.EncodeAddressWithSeed(state.McmProgram, state.BypasserMcmSeed), cldf.NewTypeAndVersion(
273+
require.NoError(t, addressBook.Save(selector, solana2.EncodeAddressWithSeed(state.McmProgram, state.BypasserMcmSeed), cldf.NewTypeAndVersion(
274274
mcmscontracts.BypasserManyChainMultisig,
275275
cldchangesetscommon.Version1_0_0,
276276
)))

mcms/changesets/legacy/grant_role_timelock.go renamed to legacy/mcms/changesets/grant_role_timelock.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package legacy
1+
package changesets
22

33
import (
44
"errors"
@@ -16,9 +16,9 @@ import (
1616
cldfproposalutils "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalutils"
1717
fwops "github.com/smartcontractkit/chainlink-deployments-framework/operations"
1818

19-
mcmscontract "github.com/smartcontractkit/cld-changesets/mcms/legacy/proposeutils"
19+
mcmscontract "github.com/smartcontractkit/cld-changesets/legacy/mcms/proposeutils"
20+
solanastate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana"
2021
mcops "github.com/smartcontractkit/cld-changesets/mcms/operations"
21-
solanastate "github.com/smartcontractkit/cld-changesets/pkg/family/solana/legacy"
2222
)
2323

2424
// GrantRoleTimelockSolana grants the given accounts access to the given role on the timelock

mcms/changesets/legacy/grant_role_timelock_test.go renamed to legacy/mcms/changesets/grant_role_timelock_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package legacy
1+
package changesets
22

33
import (
44
"fmt"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import (
2121
cldfproposalutils "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalutils"
2222
tonstate "github.com/smartcontractkit/chainlink-ton/deployment/state"
2323

24-
evmstate "github.com/smartcontractkit/cld-changesets/pkg/family/evm/legacy"
25-
solstate "github.com/smartcontractkit/cld-changesets/pkg/family/solana/legacy"
24+
evmstate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/evm"
25+
solstate "github.com/smartcontractkit/cld-changesets/legacy/pkg/family/solana"
2626
)
2727

2828
const (

0 commit comments

Comments
 (0)