From 5c02977872e669f062907031af2ed2968b3b04ba Mon Sep 17 00:00:00 2001 From: Terry Tata Date: Thu, 27 Feb 2025 03:34:05 -0500 Subject: [PATCH] disable in CI only --- .../changeset/solana/cs_deploy_chain_test.go | 223 +++++++++--------- 1 file changed, 113 insertions(+), 110 deletions(-) diff --git a/deployment/ccip/changeset/solana/cs_deploy_chain_test.go b/deployment/ccip/changeset/solana/cs_deploy_chain_test.go index 55803335097..9d377838abe 100644 --- a/deployment/ccip/changeset/solana/cs_deploy_chain_test.go +++ b/deployment/ccip/changeset/solana/cs_deploy_chain_test.go @@ -143,130 +143,133 @@ func TestDeployChainContractsChangesetSolana(t *testing.T) { }) require.NoError(t, err) testhelpers.ValidateSolanaState(t, e, solChainSelectors) - timelockSignerPDA, _ := testhelpers.TransferOwnershipSolana(t, &e, solChainSelectors[0], true, true, true, true) - upgradeAuthority := timelockSignerPDA - state, err := changeset.LoadOnchainStateSolana(e) - require.NoError(t, err) + // Expensive to run in CI + if !ci { + timelockSignerPDA, _ := testhelpers.TransferOwnershipSolana(t, &e, solChainSelectors[0], true, true, true, true) + upgradeAuthority := timelockSignerPDA + state, err := changeset.LoadOnchainStateSolana(e) + require.NoError(t, err) - e, err = commonchangeset.ApplyChangesetsV2(t, e, []commonchangeset.ConfiguredChangeSet{ - commonchangeset.Configure( - deployment.CreateLegacyChangeSet(ccipChangesetSolana.DeployChainContractsChangeset), - ccipChangesetSolana.DeployChainContractsConfig{ - HomeChainSelector: homeChainSel, - ContractParamsPerChain: map[uint64]ccipChangesetSolana.ChainContractParams{ - solChainSelectors[0]: { - FeeQuoterParams: ccipChangesetSolana.FeeQuoterParams{ - DefaultMaxFeeJuelsPerMsg: solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, - }, - OffRampParams: ccipChangesetSolana.OffRampParams{ - EnableExecutionAfter: int64(globals.PermissionLessExecutionThreshold.Seconds()), + e, err = commonchangeset.ApplyChangesetsV2(t, e, []commonchangeset.ConfiguredChangeSet{ + commonchangeset.Configure( + deployment.CreateLegacyChangeSet(ccipChangesetSolana.DeployChainContractsChangeset), + ccipChangesetSolana.DeployChainContractsConfig{ + HomeChainSelector: homeChainSel, + ContractParamsPerChain: map[uint64]ccipChangesetSolana.ChainContractParams{ + solChainSelectors[0]: { + FeeQuoterParams: ccipChangesetSolana.FeeQuoterParams{ + DefaultMaxFeeJuelsPerMsg: solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, + }, + OffRampParams: ccipChangesetSolana.OffRampParams{ + EnableExecutionAfter: int64(globals.PermissionLessExecutionThreshold.Seconds()), + }, }, }, + NewUpgradeAuthority: &upgradeAuthority, }, - NewUpgradeAuthority: &upgradeAuthority, - }, - ), - commonchangeset.Configure( - deployment.CreateLegacyChangeSet(ccipChangesetSolana.BuildSolanaChangeset), - ccipChangesetSolana.BuildSolanaConfig{ - ChainSelector: solChainSelectors[0], - GitCommitSha: "0863d8fed5fbada9f352f33c405e1753cbb7d72c", - DestinationDir: e.SolChains[solChainSelectors[0]].ProgramsPath, - CleanDestinationDir: true, - CleanGitDir: true, - UpgradeKeys: map[deployment.ContractType]string{ - cs.Router: state.SolChains[solChainSelectors[0]].Router.String(), - cs.FeeQuoter: state.SolChains[solChainSelectors[0]].FeeQuoter.String(), + ), + commonchangeset.Configure( + deployment.CreateLegacyChangeSet(ccipChangesetSolana.BuildSolanaChangeset), + ccipChangesetSolana.BuildSolanaConfig{ + ChainSelector: solChainSelectors[0], + GitCommitSha: "0863d8fed5fbada9f352f33c405e1753cbb7d72c", + DestinationDir: e.SolChains[solChainSelectors[0]].ProgramsPath, + CleanDestinationDir: true, + CleanGitDir: true, + UpgradeKeys: map[deployment.ContractType]string{ + cs.Router: state.SolChains[solChainSelectors[0]].Router.String(), + cs.FeeQuoter: state.SolChains[solChainSelectors[0]].FeeQuoter.String(), + }, }, - }, - ), - commonchangeset.Configure( - deployment.CreateLegacyChangeSet(ccipChangesetSolana.DeployChainContractsChangeset), - ccipChangesetSolana.DeployChainContractsConfig{ - HomeChainSelector: homeChainSel, - ContractParamsPerChain: map[uint64]ccipChangesetSolana.ChainContractParams{ - solChainSelectors[0]: { - FeeQuoterParams: ccipChangesetSolana.FeeQuoterParams{ - DefaultMaxFeeJuelsPerMsg: solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, - }, - OffRampParams: ccipChangesetSolana.OffRampParams{ - EnableExecutionAfter: int64(globals.PermissionLessExecutionThreshold.Seconds()), + ), + commonchangeset.Configure( + deployment.CreateLegacyChangeSet(ccipChangesetSolana.DeployChainContractsChangeset), + ccipChangesetSolana.DeployChainContractsConfig{ + HomeChainSelector: homeChainSel, + ContractParamsPerChain: map[uint64]ccipChangesetSolana.ChainContractParams{ + solChainSelectors[0]: { + FeeQuoterParams: ccipChangesetSolana.FeeQuoterParams{ + DefaultMaxFeeJuelsPerMsg: solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, + }, + OffRampParams: ccipChangesetSolana.OffRampParams{ + EnableExecutionAfter: int64(globals.PermissionLessExecutionThreshold.Seconds()), + }, }, }, - }, - UpgradeConfig: ccipChangesetSolana.UpgradeConfig{ - NewFeeQuoterVersion: &deployment.Version1_1_0, - NewRouterVersion: &deployment.Version1_1_0, - UpgradeAuthority: upgradeAuthority, - SpillAddress: upgradeAuthority, - MCMS: &ccipChangeset.MCMSConfig{ - MinDelay: 1 * time.Second, + UpgradeConfig: ccipChangesetSolana.UpgradeConfig{ + NewFeeQuoterVersion: &deployment.Version1_1_0, + NewRouterVersion: &deployment.Version1_1_0, + UpgradeAuthority: upgradeAuthority, + SpillAddress: upgradeAuthority, + MCMS: &ccipChangeset.MCMSConfig{ + MinDelay: 1 * time.Second, + }, }, }, - }, - ), - }) - require.NoError(t, err) - testhelpers.ValidateSolanaState(t, e, solChainSelectors) - state, err = changeset.LoadOnchainStateSolana(e) - require.NoError(t, err) - oldOffRampAddress := state.SolChains[solChainSelectors[0]].OffRamp - // add a second offramp address - e, err = commonchangeset.ApplyChangesetsV2(t, e, []commonchangeset.ConfiguredChangeSet{ - commonchangeset.Configure( - deployment.CreateLegacyChangeSet(ccipChangesetSolana.DeployChainContractsChangeset), - ccipChangesetSolana.DeployChainContractsConfig{ - HomeChainSelector: homeChainSel, - ContractParamsPerChain: map[uint64]ccipChangesetSolana.ChainContractParams{ - solChainSelectors[0]: { - FeeQuoterParams: ccipChangesetSolana.FeeQuoterParams{ - DefaultMaxFeeJuelsPerMsg: solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, - }, - OffRampParams: ccipChangesetSolana.OffRampParams{ - EnableExecutionAfter: int64(globals.PermissionLessExecutionThreshold.Seconds()), + ), + }) + require.NoError(t, err) + testhelpers.ValidateSolanaState(t, e, solChainSelectors) + state, err = changeset.LoadOnchainStateSolana(e) + require.NoError(t, err) + oldOffRampAddress := state.SolChains[solChainSelectors[0]].OffRamp + // add a second offramp address + e, err = commonchangeset.ApplyChangesetsV2(t, e, []commonchangeset.ConfiguredChangeSet{ + commonchangeset.Configure( + deployment.CreateLegacyChangeSet(ccipChangesetSolana.DeployChainContractsChangeset), + ccipChangesetSolana.DeployChainContractsConfig{ + HomeChainSelector: homeChainSel, + ContractParamsPerChain: map[uint64]ccipChangesetSolana.ChainContractParams{ + solChainSelectors[0]: { + FeeQuoterParams: ccipChangesetSolana.FeeQuoterParams{ + DefaultMaxFeeJuelsPerMsg: solBinary.Uint128{Lo: 300000000, Hi: 0, Endianness: nil}, + }, + OffRampParams: ccipChangesetSolana.OffRampParams{ + EnableExecutionAfter: int64(globals.PermissionLessExecutionThreshold.Seconds()), + }, }, }, - }, - UpgradeConfig: ccipChangesetSolana.UpgradeConfig{ - NewOffRampVersion: &deployment.Version1_1_0, - UpgradeAuthority: upgradeAuthority, - SpillAddress: upgradeAuthority, - MCMS: &ccipChangeset.MCMSConfig{ - MinDelay: 1 * time.Second, + UpgradeConfig: ccipChangesetSolana.UpgradeConfig{ + NewOffRampVersion: &deployment.Version1_1_0, + UpgradeAuthority: upgradeAuthority, + SpillAddress: upgradeAuthority, + MCMS: &ccipChangeset.MCMSConfig{ + MinDelay: 1 * time.Second, + }, }, }, - }, - ), - }) - require.NoError(t, err) - // verify the offramp address is different - state, err = changeset.LoadOnchainStateSolana(e) - require.NoError(t, err) - newOffRampAddress := state.SolChains[solChainSelectors[0]].OffRamp - require.NotEqual(t, oldOffRampAddress, newOffRampAddress) + ), + }) + require.NoError(t, err) + // verify the offramp address is different + state, err = changeset.LoadOnchainStateSolana(e) + require.NoError(t, err) + newOffRampAddress := state.SolChains[solChainSelectors[0]].OffRamp + require.NotEqual(t, oldOffRampAddress, newOffRampAddress) - // Verify router and fee quoter upgraded in place - // and offramp had 2nd address added - addresses, err := e.ExistingAddresses.AddressesForChain(solChainSelectors[0]) - require.NoError(t, err) - numRouters := 0 - numFeeQuoters := 0 - numOffRamps := 0 - for _, address := range addresses { - if address.Type == ccipChangeset.Router { - numRouters++ - } - if address.Type == ccipChangeset.FeeQuoter { - numFeeQuoters++ - } - if address.Type == ccipChangeset.OffRamp { - numOffRamps++ + // Verify router and fee quoter upgraded in place + // and offramp had 2nd address added + addresses, err := e.ExistingAddresses.AddressesForChain(solChainSelectors[0]) + require.NoError(t, err) + numRouters := 0 + numFeeQuoters := 0 + numOffRamps := 0 + for _, address := range addresses { + if address.Type == ccipChangeset.Router { + numRouters++ + } + if address.Type == ccipChangeset.FeeQuoter { + numFeeQuoters++ + } + if address.Type == ccipChangeset.OffRamp { + numOffRamps++ + } } + require.Equal(t, 1, numRouters) + require.Equal(t, 1, numFeeQuoters) + require.Equal(t, 2, numOffRamps) + require.NoError(t, err) + // solana verification + testhelpers.ValidateSolanaState(t, e, solChainSelectors) } - require.Equal(t, 1, numRouters) - require.Equal(t, 1, numFeeQuoters) - require.Equal(t, 2, numOffRamps) - require.NoError(t, err) - // solana verification - testhelpers.ValidateSolanaState(t, e, solChainSelectors) }