diff --git a/go.mod b/go.mod index c9bbf8583..fdfc2cd74 100644 --- a/go.mod +++ b/go.mod @@ -14,8 +14,8 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/pelletier/go-toml/v2 v2.1.1 github.com/prometheus/client_golang v1.17.0 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240516150131-e1be553a9d10 - github.com/smartcontractkit/libocr v0.0.0-20240326191951-2bbe9382d052 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240522203001-10ea0211efd7 + github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.26.0 golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa diff --git a/go.sum b/go.sum index 406196eb3..49c414005 100644 --- a/go.sum +++ b/go.sum @@ -452,14 +452,14 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240516150131-e1be553a9d10 h1:IwJKWZHPBJbbh4oI3BGX8VNT3c/ChNiPZ/XI4iq6c0E= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240516150131-e1be553a9d10/go.mod h1:sj0pjL+METqeYL9ibp0T8SXquymlaQsofa6bdfLgXX8= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240522203001-10ea0211efd7 h1:od+11B83s0mQwAMPP3lhtb0nYz63pIKpJEKddfFpu/M= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240522203001-10ea0211efd7/go.mod h1:cFHRblGbGn/rFYOOGsNbtLicMc1+5YdN0KoebYr93pk= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306 h1:ko88+ZznniNJZbZPWAvHQU8SwKAdHngdDZ+pvVgB5ss= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f h1:hgJif132UCdjo8u43i7iPN1/MFnu49hv7lFGFftCHKU= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f/go.mod h1:MvMXoufZAtqExNexqi4cjrNYE9MefKddKylxjS+//n0= -github.com/smartcontractkit/libocr v0.0.0-20240326191951-2bbe9382d052 h1:1WFjrrVrWoQ9UpVMh7Mx4jDpzhmo1h8hFUKd9awIhIU= -github.com/smartcontractkit/libocr v0.0.0-20240326191951-2bbe9382d052/go.mod h1:SJEZCHgMCAzzBvo9vMV2DQ9onfEcIJCYSViyP4JI6c4= +github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c h1:lIyMbTaF2H0Q71vkwZHX/Ew4KF2BxiKhqEXwF8rn+KI= +github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c/go.mod h1:fb1ZDVXACvu4frX3APHZaEBp0xi1DIm34DcA0CwTsZM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= diff --git a/integration-tests/common/common.go b/integration-tests/common/common.go index f9528fb34..3ae27f606 100644 --- a/integration-tests/common/common.go +++ b/integration-tests/common/common.go @@ -27,25 +27,18 @@ import ( "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/chainlink" mock_adapter "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/mock-adapter" "github.com/smartcontractkit/chainlink-testing-framework/k8s/pkg/helm/sol" - "github.com/smartcontractkit/chainlink-testing-framework/utils/ptr" "github.com/smartcontractkit/chainlink/integration-tests/client" "github.com/smartcontractkit/chainlink/integration-tests/contracts" "github.com/smartcontractkit/chainlink/integration-tests/docker/test_env" - "github.com/smartcontractkit/chainlink/integration-tests/types/config/node" - cl "github.com/smartcontractkit/chainlink/v2/core/services/chainlink" "github.com/smartcontractkit/chainlink/v2/core/services/job" "github.com/smartcontractkit/chainlink/v2/core/store/models" - "github.com/smartcontractkit/chainlink-common/pkg/config" - commonconfig "github.com/smartcontractkit/chainlink-common/pkg/config" - chainConfig "github.com/smartcontractkit/chainlink-solana/integration-tests/config" test_env_sol "github.com/smartcontractkit/chainlink-solana/integration-tests/docker/testenv" "github.com/smartcontractkit/chainlink-solana/integration-tests/solclient" tc "github.com/smartcontractkit/chainlink-solana/integration-tests/testconfig" - solcfg "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" ) type Common struct { @@ -170,6 +163,9 @@ func New(testConfig *tc.TestConfig) *Common { }, Env: &environment.Environment{}, } + // provide getters for TestConfig (pointers to chain details) + c.TestConfig.GetChainID = func() string { return c.ChainDetails.ChainID } + c.TestConfig.GetURL = func() string { return c.ChainDetails.RPCUrl } return c } @@ -483,32 +479,6 @@ func BuildNodeContractPairID(node *client.ChainlinkClient, ocr2Addr string) (str return strings.ToLower(fmt.Sprintf("node_%s_contract_%s", shortNodeAddr, shortOCRAddr)), nil } -func (c *Common) DefaultNodeConfig() *cl.Config { - solConfig := solcfg.TOMLConfig{ - Enabled: ptr.Ptr(true), - ChainID: ptr.Ptr(c.ChainDetails.ChainID), - Nodes: []*solcfg.Node{ - { - Name: ptr.Ptr("primary"), - URL: config.MustParseURL(c.ChainDetails.RPCUrl), - }, - }, - } - baseConfig := node.NewBaseConfig() - baseConfig.Solana = solcfg.TOMLConfigs{ - &solConfig, - } - baseConfig.OCR2.Enabled = ptr.Ptr(true) - baseConfig.P2P.V2.Enabled = ptr.Ptr(true) - fiveSecondDuration := commonconfig.MustNewDuration(5 * time.Second) - - baseConfig.P2P.V2.DeltaDial = fiveSecondDuration - baseConfig.P2P.V2.DeltaReconcile = fiveSecondDuration - baseConfig.P2P.V2.ListenAddresses = &[]string{"0.0.0.0:6690"} - - return baseConfig -} - func (c *Common) Default(t *testing.T, namespacePrefix string) (*Common, error) { c.TestEnvDetails.K8Config = &environment.Config{ NamespacePrefix: fmt.Sprintf("solana-%s", namespacePrefix), @@ -517,8 +487,7 @@ func (c *Common) Default(t *testing.T, namespacePrefix string) (*Common, error) } if *c.TestConfig.Common.InsideK8s { - toml := c.DefaultNodeConfig() - tomlString, err := toml.TOMLString() + tomlString, err := c.TestConfig.GetNodeConfigTOML() if err != nil { return nil, err } diff --git a/integration-tests/common/test_common.go b/integration-tests/common/test_common.go index 1a5d34944..20565ec4d 100644 --- a/integration-tests/common/test_common.go +++ b/integration-tests/common/test_common.go @@ -142,7 +142,6 @@ func (m *OCRv2TestState) DeployCluster(contractsDir string) { WithTestInstance(m.Config.T). WithTestConfig(m.Config.TestConfig). WithMockAdapter(). - WithCLNodeConfig(m.Common.DefaultNodeConfig()). WithCLNodes(*m.Config.TestConfig.OCR2.NodeCount). WithCLNodeOptions(m.Common.TestEnvDetails.NodeOpts...). WithStandardCleanup(). diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 44e450646..24dacdbca 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -14,11 +14,11 @@ require ( github.com/lib/pq v1.10.9 github.com/pelletier/go-toml/v2 v2.1.1 github.com/rs/zerolog v1.30.0 - github.com/smartcontractkit/chainlink-common v0.1.7-0.20240517134904-f4446b816a28 - github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240521200803-6c605f618787 + github.com/smartcontractkit/chainlink-common v0.1.7-0.20240522203001-10ea0211efd7 + github.com/smartcontractkit/chainlink-solana v1.0.3-0.20240524131846-a10ff1f030c9 github.com/smartcontractkit/chainlink-testing-framework v1.28.15 - github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240515225456-aeb9f4d50d65 - github.com/smartcontractkit/chainlink/v2 v2.10.0-beta0.0.20240521201249-c00f33248fe4 + github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240524135402-6bd866a31530 + github.com/smartcontractkit/chainlink/v2 v2.10.0-beta0.0.20240524135402-6bd866a31530 github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c github.com/smartcontractkit/seth v1.0.9 github.com/stretchr/testify v1.9.0 @@ -361,7 +361,7 @@ require ( github.com/smartcontractkit/chainlink-automation v1.0.3 // indirect github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240508101745-af1ed7bc8a69 // indirect github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 // indirect - github.com/smartcontractkit/chainlink-feeds v0.0.0-20240422130241-13c17a91b2ab // indirect + github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 // indirect github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240508155030-1024f2b55c69 // indirect github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449 // indirect github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index dba5d06f8..133f1195f 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1406,14 +1406,14 @@ github.com/smartcontractkit/chain-selectors v1.0.10 h1:t9kJeE6B6G+hKD0GYR4kGJSCq github.com/smartcontractkit/chain-selectors v1.0.10/go.mod h1:d4Hi+E1zqjy9HqMkjBE5q1vcG9VGgxf5VxiRHfzi2kE= github.com/smartcontractkit/chainlink-automation v1.0.3 h1:h/ijT0NiyV06VxYVgcNfsE3+8OEzT3Q0Z9au0z1BPWs= github.com/smartcontractkit/chainlink-automation v1.0.3/go.mod h1:RjboV0Qd7YP+To+OrzHGXaxUxoSONveCoAK2TQ1INLU= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240517134904-f4446b816a28 h1:Pr8/CdiTNnzRwpYc2z7NpHYbw3Dpl1eqiqt9/J/Bcqc= -github.com/smartcontractkit/chainlink-common v0.1.7-0.20240517134904-f4446b816a28/go.mod h1:s+68EchlrXqHKRW3JJgZLEARvzMSKRI5+cE5Zx7pVJA= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240522203001-10ea0211efd7 h1:od+11B83s0mQwAMPP3lhtb0nYz63pIKpJEKddfFpu/M= +github.com/smartcontractkit/chainlink-common v0.1.7-0.20240522203001-10ea0211efd7/go.mod h1:cFHRblGbGn/rFYOOGsNbtLicMc1+5YdN0KoebYr93pk= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240508101745-af1ed7bc8a69 h1:Sec/GpBpUVaTEax1kSHlTvkzF/+d3w5roAQXaj5+SLA= github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240508101745-af1ed7bc8a69/go.mod h1:ZQKf+0OLzCLYIisH/OdOIQuFRI6bDuw+jPBTATyHfFM= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540 h1:xFSv8561jsLtF6gYZr/zW2z5qUUAkcFkApin2mnbYTo= github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540/go.mod h1:sjAmX8K2kbQhvDarZE1ZZgDgmHJ50s0BBc/66vKY2ek= -github.com/smartcontractkit/chainlink-feeds v0.0.0-20240422130241-13c17a91b2ab h1:Ct1oUlyn03HDUVdFHJqtRGRUujMqdoMzvf/Cjhe30Ag= -github.com/smartcontractkit/chainlink-feeds v0.0.0-20240422130241-13c17a91b2ab/go.mod h1:RPUY7r8GxgzXxS1ijtU1P/fpJomOXztXgUbEziNmbCA= +github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917 h1:MD80ZRCTvxxJ8PBmhtrKoTnky8cVNYrCrIBLVRbrOM0= +github.com/smartcontractkit/chainlink-feeds v0.0.0-20240522213638-159fb2d99917/go.mod h1:jwVxhctE6BgLOSSsVq9wbREpZ8Ev34H+UBxeUhESZRs= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240508155030-1024f2b55c69 h1:ssh/w3oXWu+C6bE88GuFRC1+0Bx/4ihsbc80XMLrl2k= github.com/smartcontractkit/chainlink-starknet/relayer v0.0.1-beta-test.0.20240508155030-1024f2b55c69/go.mod h1:VsfjhvWgjxqWja4q+FlXEtX5lu8BSxn10xRo6gi948g= github.com/smartcontractkit/chainlink-testing-framework v1.28.15 h1:mga7N6jtXQ3UOCt43IdsEnCMBh9xjOWPaE9BiM6kr6Q= @@ -1422,10 +1422,10 @@ github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-202403282 github.com/smartcontractkit/chainlink-testing-framework/grafana v0.0.0-20240328204215-ac91f55f1449/go.mod h1:DC8sQMyTlI/44UCTL8QWFwb0bYNoXCfjwCv2hMivYZU= github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772 h1:LQmRsrzzaYYN3wEU1l5tWiccznhvbyGnu2N+wHSXZAo= github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772/go.mod h1:Kn1Hape05UzFZ7bOUnm3GVsHzP0TNrVmpfXYNHdqGGs= -github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240515225456-aeb9f4d50d65 h1:8AoBDPHOLgZA1JodqysYK/JxcVbjwNhyGfmwzQuep4s= -github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240515225456-aeb9f4d50d65/go.mod h1:DOeyxJuvSV8No26UHAtmvZTycuGe0S4w/XMMj1EGMV8= -github.com/smartcontractkit/chainlink/v2 v2.10.0-beta0.0.20240521201249-c00f33248fe4 h1:KrQxqehwHCpbJJtltv2iWlVR+cxNzEoBN8EFtbwWtPg= -github.com/smartcontractkit/chainlink/v2 v2.10.0-beta0.0.20240521201249-c00f33248fe4/go.mod h1:10XUZ0WuFDdW+RYD0PdTpHlnaxkh/sqeAtjrAV6vUvQ= +github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240524135402-6bd866a31530 h1:QmIxClaisbyLQ06Ztbq+u1pvd9j/7fDC2QKHq3GbFQg= +github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240524135402-6bd866a31530/go.mod h1:+a2IIu/Q1+fB9mPkbjNyYUZcM91YDYfivzByE9kDIco= +github.com/smartcontractkit/chainlink/v2 v2.10.0-beta0.0.20240524135402-6bd866a31530 h1:yEddXtOMcIlx+UbI+DfeFcYdyd3xM8/xlCl1Qa9W7ik= +github.com/smartcontractkit/chainlink/v2 v2.10.0-beta0.0.20240524135402-6bd866a31530/go.mod h1:GoS6m5Bn8aAYLgy2231pxbfr4fSD3rmJBd0Jg2m+gvs= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306 h1:ko88+ZznniNJZbZPWAvHQU8SwKAdHngdDZ+pvVgB5ss= github.com/smartcontractkit/go-plugin v0.0.0-20231003134350-e49dad63b306/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/smartcontractkit/grpc-proxy v0.0.0-20230731113816-f1be6620749f h1:hgJif132UCdjo8u43i7iPN1/MFnu49hv7lFGFftCHKU= diff --git a/integration-tests/testconfig/testconfig.go b/integration-tests/testconfig/testconfig.go index f81de5806..3c7e6c946 100644 --- a/integration-tests/testconfig/testconfig.go +++ b/integration-tests/testconfig/testconfig.go @@ -5,8 +5,10 @@ import ( "encoding/base64" "errors" "fmt" + "log" "os" "strings" + "time" "github.com/barkimedes/go-deepcopy" "github.com/google/uuid" @@ -15,14 +17,18 @@ import ( "golang.org/x/text/cases" "golang.org/x/text/language" + "github.com/smartcontractkit/chainlink-common/pkg/config" + "github.com/smartcontractkit/chainlink/integration-tests/types/config/node" "github.com/smartcontractkit/seth" ctf_config "github.com/smartcontractkit/chainlink-testing-framework/config" k8s_config "github.com/smartcontractkit/chainlink-testing-framework/k8s/config" "github.com/smartcontractkit/chainlink-testing-framework/logging" "github.com/smartcontractkit/chainlink-testing-framework/utils/osutil" + "github.com/smartcontractkit/chainlink-testing-framework/utils/ptr" ocr2_config "github.com/smartcontractkit/chainlink-solana/integration-tests/testconfig/ocr2" + solcfg "github.com/smartcontractkit/chainlink-solana/pkg/solana/config" ) type TestConfig struct { @@ -34,6 +40,10 @@ type TestConfig struct { OCR2 *ocr2_config.Config `toml:"OCR2"` SolanaConfig *SolanaConfig `toml:"SolanaConfig"` ConfigurationName string `toml:"-"` + + // getter funcs for passing parameters + GetChainID func() string + GetURL func() string } func (c *TestConfig) GetLoggingConfig() *ctf_config.LoggingConfig { @@ -53,7 +63,49 @@ func (c *TestConfig) GetSethConfig() *seth.Config { } func (c *TestConfig) GetNodeConfig() *ctf_config.NodeConfig { - return nil + cfgTOML, err := c.GetNodeConfigTOML() + if err != nil { + log.Fatalf("failed to parse TOML config: %s", err) + return nil + } + + return &ctf_config.NodeConfig{ + BaseConfigTOML: cfgTOML, + } +} + +func (c *TestConfig) GetNodeConfigTOML() (string, error) { + var chainID, url string + if c.GetChainID != nil { + chainID = c.GetChainID() + } + if c.GetURL != nil { + url = c.GetURL() + } + + solConfig := solcfg.TOMLConfig{ + Enabled: ptr.Ptr(true), + ChainID: ptr.Ptr(chainID), + Nodes: []*solcfg.Node{ + { + Name: ptr.Ptr("primary"), + URL: config.MustParseURL(url), + }, + }, + } + baseConfig := node.NewBaseConfig() + baseConfig.Solana = solcfg.TOMLConfigs{ + &solConfig, + } + baseConfig.OCR2.Enabled = ptr.Ptr(true) + baseConfig.P2P.V2.Enabled = ptr.Ptr(true) + fiveSecondDuration := config.MustNewDuration(5 * time.Second) + + baseConfig.P2P.V2.DeltaDial = fiveSecondDuration + baseConfig.P2P.V2.DeltaReconcile = fiveSecondDuration + baseConfig.P2P.V2.ListenAddresses = &[]string{"0.0.0.0:6690"} + + return baseConfig.TOMLString() } var embeddedConfigs embed.FS