From a0ebbb9381e9f21823a764a728c48985e29d238d Mon Sep 17 00:00:00 2001 From: yashnevatia Date: Thu, 27 Feb 2025 09:26:30 +0000 Subject: [PATCH 1/2] freeing up ports --- .../solana/cs_chain_contracts_test.go | 28 +++++++++++++++++++ .../changeset/solana/cs_solana_token_test.go | 1 + 2 files changed, 29 insertions(+) diff --git a/deployment/ccip/changeset/solana/cs_chain_contracts_test.go b/deployment/ccip/changeset/solana/cs_chain_contracts_test.go index 8a4fc0579d8..dffd62de695 100644 --- a/deployment/ccip/changeset/solana/cs_chain_contracts_test.go +++ b/deployment/ccip/changeset/solana/cs_chain_contracts_test.go @@ -480,6 +480,14 @@ func TestTokenAdminRegistry(t *testing.T) { RegisterType: ccipChangesetSolana.ViaOwnerInstruction, }, ), + commonchangeset.Configure( + // add token pool lookup table + deployment.CreateLegacyChangeSet(ccipChangesetSolana.AddTokenPoolLookupTable), + ccipChangesetSolana.TokenPoolLookupTableConfig{ + ChainSelector: solChain, + TokenPubKey: tokenAddress.String(), + }, + ), ) require.NoError(t, err) @@ -497,6 +505,15 @@ func TestTokenAdminRegistry(t *testing.T) { require.NoError(t, err) require.Equal(t, tokenAdminRegistryAdminPrivKey.PublicKey(), linkTokenAdminRegistryAccount.PendingAdministrator) + // lookup table test + state, err = ccipChangeset.LoadOnchainStateSolana(e) + require.NoError(t, err) + lookupTablePubKey := state.SolChains[solChain].TokenPoolLookupTable[tokenAddress] + lookupTableEntries0, err := solCommonUtil.GetAddressLookupTable(ctx, e.SolChains[solChain].Client, lookupTablePubKey) + require.NoError(t, err) + require.Equal(t, lookupTablePubKey, lookupTableEntries0[0]) + require.Equal(t, tokenAddress, lookupTableEntries0[7]) + e, err = commonchangeset.Apply(t, e, nil, commonchangeset.Configure( // accept admin role for tokenAddress @@ -507,6 +524,16 @@ func TestTokenAdminRegistry(t *testing.T) { NewRegistryAdminPrivateKey: tokenAdminRegistryAdminPrivKey.String(), }, ), + commonchangeset.Configure( + // set pool -> this updates tokenAdminRegistryPDA, hence above changeset is required + deployment.CreateLegacyChangeSet(ccipChangesetSolana.SetPool), + ccipChangesetSolana.SetPoolConfig{ + ChainSelector: solChain, + TokenPubKey: tokenAddress.String(), + TokenAdminRegistryAdminPrivateKey: tokenAdminRegistryAdminPrivKey.String(), + WritableIndexes: []uint8{3, 4, 7}, + }, + ), ) require.NoError(t, err) err = e.SolChains[solChain].GetAccountDataBorshInto(ctx, tokenAdminRegistryPDA, &tokenAdminRegistryAccount) @@ -514,6 +541,7 @@ func TestTokenAdminRegistry(t *testing.T) { // confirm that the administrator is the deployer key require.Equal(t, tokenAdminRegistryAdminPrivKey.PublicKey(), tokenAdminRegistryAccount.Administrator) require.Equal(t, solana.PublicKey{}, tokenAdminRegistryAccount.PendingAdministrator) + require.Equal(t, lookupTablePubKey, tokenAdminRegistryAccount.LookupTable) newTokenAdminRegistryAdminPrivKey, _ := solana.NewRandomPrivateKey() e, err = commonchangeset.Apply(t, e, nil, diff --git a/deployment/ccip/changeset/solana/cs_solana_token_test.go b/deployment/ccip/changeset/solana/cs_solana_token_test.go index 4534bbfa5a2..1415edd80ba 100644 --- a/deployment/ccip/changeset/solana/cs_solana_token_test.go +++ b/deployment/ccip/changeset/solana/cs_solana_token_test.go @@ -25,6 +25,7 @@ func TestSolanaTokenOps(t *testing.T) { lggr := logger.TestLogger(t) e := memory.NewMemoryEnvironment(t, lggr, zapcore.InfoLevel, memory.MemoryEnvironmentConfig{ SolChains: 1, + Chains: 1, }) solChain1 := e.AllChainSelectorsSolana()[0] e, err := commonchangeset.Apply(t, e, nil, From 70f08473eaf17efe1a278fbaf150ba1ff3d6ca19 Mon Sep 17 00:00:00 2001 From: yashnevatia Date: Thu, 27 Feb 2025 09:27:28 +0000 Subject: [PATCH 2/2] forgot to delete --- .../solana/cs_chain_contracts_test.go | 71 ------------------- 1 file changed, 71 deletions(-) diff --git a/deployment/ccip/changeset/solana/cs_chain_contracts_test.go b/deployment/ccip/changeset/solana/cs_chain_contracts_test.go index dffd62de695..2a0a9ef948c 100644 --- a/deployment/ccip/changeset/solana/cs_chain_contracts_test.go +++ b/deployment/ccip/changeset/solana/cs_chain_contracts_test.go @@ -561,74 +561,3 @@ func TestTokenAdminRegistry(t *testing.T) { require.NoError(t, err) require.Equal(t, newTokenAdminRegistryAdminPrivKey.PublicKey(), tokenAdminRegistryAccount.PendingAdministrator) } - -func TestPoolLookupTable(t *testing.T) { - t.Parallel() - ctx := testcontext.Get(t) - tenv, _ := testhelpers.NewMemoryEnvironment(t, testhelpers.WithSolChains(1)) - solChain := tenv.Env.AllChainSelectorsSolana()[0] - - e, tokenAddress, err := deployToken(t, tenv.Env, solChain) - require.NoError(t, err) - e, err = commonchangeset.Apply(t, e, nil, - commonchangeset.Configure( - // add token pool lookup table - deployment.CreateLegacyChangeSet(ccipChangesetSolana.AddTokenPoolLookupTable), - ccipChangesetSolana.TokenPoolLookupTableConfig{ - ChainSelector: solChain, - TokenPubKey: tokenAddress.String(), - }, - ), - ) - require.NoError(t, err) - state, err := ccipChangeset.LoadOnchainStateSolana(e) - require.NoError(t, err) - lookupTablePubKey := state.SolChains[solChain].TokenPoolLookupTable[tokenAddress] - - lookupTableEntries0, err := solCommonUtil.GetAddressLookupTable(ctx, e.SolChains[solChain].Client, lookupTablePubKey) - require.NoError(t, err) - require.Equal(t, lookupTablePubKey, lookupTableEntries0[0]) - require.Equal(t, tokenAddress, lookupTableEntries0[7]) - - tokenAdminRegistryAdminPrivKey, _ := solana.NewRandomPrivateKey() - - e, err = commonchangeset.Apply(t, e, nil, - commonchangeset.Configure( - // register token admin registry for linkToken via owner instruction - deployment.CreateLegacyChangeSet(ccipChangesetSolana.RegisterTokenAdminRegistry), - ccipChangesetSolana.RegisterTokenAdminRegistryConfig{ - ChainSelector: solChain, - TokenPubKey: tokenAddress.String(), - TokenAdminRegistryAdmin: tokenAdminRegistryAdminPrivKey.PublicKey().String(), - RegisterType: ccipChangesetSolana.ViaGetCcipAdminInstruction, - }, - ), - commonchangeset.Configure( - // accept admin role for tokenAddress - deployment.CreateLegacyChangeSet(ccipChangesetSolana.AcceptAdminRoleTokenAdminRegistry), - ccipChangesetSolana.AcceptAdminRoleTokenAdminRegistryConfig{ - ChainSelector: solChain, - TokenPubKey: tokenAddress.String(), - NewRegistryAdminPrivateKey: tokenAdminRegistryAdminPrivKey.String(), - }, - ), - commonchangeset.Configure( - // set pool -> this updates tokenAdminRegistryPDA, hence above changeset is required - deployment.CreateLegacyChangeSet(ccipChangesetSolana.SetPool), - ccipChangesetSolana.SetPoolConfig{ - ChainSelector: solChain, - TokenPubKey: tokenAddress.String(), - TokenAdminRegistryAdminPrivateKey: tokenAdminRegistryAdminPrivKey.String(), - WritableIndexes: []uint8{3, 4, 7}, - }, - ), - ) - require.NoError(t, err) - tokenAdminRegistry := solRouter.TokenAdminRegistry{} - tokenAdminRegistryPDA, _, _ := solState.FindTokenAdminRegistryPDA(tokenAddress, state.SolChains[solChain].Router) - - err = e.SolChains[solChain].GetAccountDataBorshInto(ctx, tokenAdminRegistryPDA, &tokenAdminRegistry) - require.NoError(t, err) - require.Equal(t, tokenAdminRegistryAdminPrivKey.PublicKey(), tokenAdminRegistry.Administrator) - require.Equal(t, lookupTablePubKey, tokenAdminRegistry.LookupTable) -}