diff --git a/deployment/ccip/changeset/cs_deploy_chain.go b/deployment/ccip/changeset/cs_deploy_chain.go index db67c5f7c14..e880840c4df 100644 --- a/deployment/ccip/changeset/cs_deploy_chain.go +++ b/deployment/ccip/changeset/cs_deploy_chain.go @@ -129,7 +129,7 @@ func deployChainContractsForChains( chainsToDeploy []uint64) error { existingEVMState, err := LoadOnchainState(e) if err != nil { - e.Logger.Errorw("Failed to load existing onchain state", err) + e.Logger.Errorw("Failed to load existing onchain state", "err", err) return err } @@ -147,7 +147,7 @@ func deployChainContractsForChains( existingSolState, err := LoadOnchainStateSolana(e) if err != nil { - e.Logger.Errorw("Failed to load existing onchain solanastate", err) + e.Logger.Errorw("Failed to load existing onchain solanastate", "err", err) return err } @@ -511,7 +511,7 @@ func deployChainContractsSolana( var ccipRouterProgram solana.PublicKey if chainState.SolCcipRouter.IsZero() { - //deploy router + // deploy router programID, err := chain.DeployProgram(e.Logger, "ccip_router") if err != nil { return fmt.Errorf("failed to deploy program: %w", err) diff --git a/deployment/ccip/changeset/solana_state.go b/deployment/ccip/changeset/solana_state.go index 7f412e7d408..68a326f471d 100644 --- a/deployment/ccip/changeset/solana_state.go +++ b/deployment/ccip/changeset/solana_state.go @@ -63,19 +63,19 @@ func LoadChainStateSolana(chain deployment.SolChain, addresses map[string]deploy } // GetRouterConfigPDA returns the PDA for the "config" account. -func GetRouterConfigPDA(ccipRouterProgramId solana.PublicKey) solana.PublicKey { +func GetRouterConfigPDA(ccipRouterProgramID solana.PublicKey) solana.PublicKey { pda, _, _ := solana.FindProgramAddress( [][]byte{[]byte("config")}, - ccipRouterProgramId, + ccipRouterProgramID, ) return pda } // GetRouterStatePDA returns the PDA for the "state" account. -func GetRouterStatePDA(ccipRouterProgramId solana.PublicKey) solana.PublicKey { +func GetRouterStatePDA(ccipRouterProgramID solana.PublicKey) solana.PublicKey { pda, _, _ := solana.FindProgramAddress( [][]byte{[]byte("state")}, - ccipRouterProgramId, + ccipRouterProgramID, ) return pda } diff --git a/deployment/solana_chain.go b/deployment/solana_chain.go index 48056c224ab..0d9001312cd 100644 --- a/deployment/solana_chain.go +++ b/deployment/solana_chain.go @@ -56,7 +56,15 @@ func (c SolChain) Name() string { return chainInfo.ChainName } +var allowedPrograms = map[string]bool{ + "ccip_router": true, + // Add other valid program names here +} + func (c SolChain) DeployProgram(logger logger.Logger, programName string) (string, error) { + if !allowedPrograms[programName] { + return "", fmt.Errorf("program %s not in allowed list", programName) + } programFile := filepath.Join(c.ProgramsPath, programName+".so") if _, err := os.Stat(programFile); err != nil { return "", fmt.Errorf("program file not found: %w", err)