Skip to content

Commit

Permalink
fix loachain state for new mcms
Browse files Browse the repository at this point in the history
  • Loading branch information
AnieeG committed Feb 26, 2025
1 parent d91ec96 commit ac5311f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
9 changes: 6 additions & 3 deletions deployment/ccip/changeset/state.go
Original file line number Diff line number Diff line change
Expand Up @@ -718,8 +718,7 @@ func LoadChainState(ctx context.Context, chain deployment.Chain, addresses map[s
state.ABIByAddress[address] = gethwrappers.CallProxyABI
case deployment.NewTypeAndVersion(commontypes.ProposerManyChainMultisig, deployment.Version1_0_0).String(),
deployment.NewTypeAndVersion(commontypes.CancellerManyChainMultisig, deployment.Version1_0_0).String(),
deployment.NewTypeAndVersion(commontypes.BypasserManyChainMultisig, deployment.Version1_0_0).String(),
deployment.NewTypeAndVersion(commontypes.ManyChainMultisig, deployment.Version1_0_0).String():
deployment.NewTypeAndVersion(commontypes.BypasserManyChainMultisig, deployment.Version1_0_0).String():
state.ABIByAddress[address] = gethwrappers.ManyChainMultiSigABI
case deployment.NewTypeAndVersion(commontypes.LinkToken, deployment.Version1_0_0).String():
state.ABIByAddress[address] = link_token.LinkTokenABI
Expand Down Expand Up @@ -1043,7 +1042,11 @@ func LoadChainState(ctx context.Context, chain deployment.Chain, addresses map[s
state.MockRMN = mockRMN
state.ABIByAddress[address] = mock_rmn_contract.MockRMNContractABI
default:
return state, fmt.Errorf("unknown contract %s", tvStr)
if tvStr.Type == commontypes.ManyChainMultisig && tvStr.Version == deployment.Version1_0_0 {
state.ABIByAddress[address] = gethwrappers.ManyChainMultiSigABI
} else {
return state, fmt.Errorf("unknown contract %s", tvStr)
}
}
}
return state, nil
Expand Down
18 changes: 18 additions & 0 deletions deployment/ccip/changeset/state_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ package changeset_test
import (
"testing"

"github.com/smartcontractkit/chainlink-integrations/evm/utils"
"github.com/stretchr/testify/require"

"github.com/smartcontractkit/chainlink/deployment"
"github.com/smartcontractkit/chainlink/deployment/ccip/changeset"
"github.com/smartcontractkit/chainlink/deployment/ccip/changeset/testhelpers"
"github.com/smartcontractkit/chainlink/deployment/common/types"
)

func TestSmokeState(t *testing.T) {
Expand All @@ -17,4 +20,19 @@ func TestSmokeState(t *testing.T) {
require.NoError(t, err)
}

func TestMCMSState(t *testing.T) {
tenv, _ := testhelpers.NewMemoryEnvironment(t, testhelpers.WithNoJobsAndContracts())
addressbook := deployment.NewMemoryAddressBook()
newTv := deployment.NewTypeAndVersion(types.ManyChainMultisig, deployment.Version1_0_0)
newTv.AddLabel(types.BypasserRole.String())
newTv.AddLabel(types.CancellerRole.String())
newTv.AddLabel(types.ProposerRole.String())
addr := utils.RandomAddress()
require.NoError(t, addressbook.Save(tenv.HomeChainSel, addr.String(), newTv))
require.NoError(t, tenv.Env.ExistingAddresses.Merge(addressbook))
state, err := changeset.LoadOnchainState(tenv.Env)
require.NoError(t, err)
require.Equal(t, addr.String(), state.Chains[tenv.HomeChainSel].BypasserMcm.Address().String())
}

// TODO: add solana state test

0 comments on commit ac5311f

Please sign in to comment.