Skip to content

Commit

Permalink
disable in CI only (#16591)
Browse files Browse the repository at this point in the history
Co-authored-by: Terry Tata <[email protected]>
  • Loading branch information
yashnevatia and tt-cll authored Feb 27, 2025
1 parent 3f33b49 commit 88a2f8f
Showing 1 changed file with 113 additions and 110 deletions.
223 changes: 113 additions & 110 deletions deployment/ccip/changeset/solana/cs_deploy_chain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

0 comments on commit 88a2f8f

Please sign in to comment.