Skip to content

Commit

Permalink
core/services/chainlink/config.go: merge RawConfigs using expected fi…
Browse files Browse the repository at this point in the history
…elds (#14433)

* core/services/chainlink/config.go: merge RawConfigs using expected fields

* core/services/chainlink: update invalid config test

* .changeset/strange-radios-teach.md: add changeset

* go.mod: update

* core/services/chainlink: distinguish between empty, invalid, missing ChainID and Node Name values

* testdata/scripts/config/merge_raw_configs.txtar: add testscript for merging raw configs

* core/services/chainlink/config.go: merge node configs by name

* testdata/scripts/config/merge_raw_configs.txtar: test node matching

* core/services/chainlink/config.go: create helper for parsing raw configs

* core/services/chainlink/config.go: rewrite if/else to switch statements for lint

* core/services/chainlink/config.go: dont check for empty Nodes key in parse, only in ValidateConfig

* core/services/chainlink/config_test.go: update errors

* core/services/chainlink/config.go: add validateKeys helper and call it instead

* update chainlink-common
  • Loading branch information
cfal authored Nov 7, 2024
1 parent d61ce51 commit 340a6bf
Show file tree
Hide file tree
Showing 15 changed files with 683 additions and 36 deletions.
5 changes: 5 additions & 0 deletions .changeset/strange-radios-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

Merge raw configs correctly #bugfix
2 changes: 1 addition & 1 deletion core/scripts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ require (
github.com/prometheus/client_golang v1.20.5
github.com/shopspring/decimal v1.4.0
github.com/smartcontractkit/chainlink-automation v0.8.1
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae
github.com/smartcontractkit/chainlink/deployment v0.0.0-00010101000000-000000000000
github.com/smartcontractkit/chainlink/v2 v2.14.0-mercury-20240807.0.20241106193309-5560cd76211a
github.com/smartcontractkit/libocr v0.0.0-20241007185508-adbe57025f12
Expand Down
4 changes: 2 additions & 2 deletions core/scripts/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1092,8 +1092,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422 h1:VfH/AW5NtTmroY9zz6OYCPFbFTqpMyJ2ubgT9ahYf3U=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7 h1:AGi0kAtMRW1zl1h7sGw+3CKO4Nlev6iA08YfEcgJCGs=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae h1:uqce0bjNVYzFrrVLafXgyn8SVNdfOtZekLfAwQihHiA=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f/go.mod h1:wHtwSR3F1CQSJJZDQKuqaqFYnvkT+kMyget7dl8Clvo=
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e h1:JiETqdNM0bktAUGMc62COwXIaw3rR3M77Me6bBLG0Fg=
Expand Down
200 changes: 182 additions & 18 deletions core/services/chainlink/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package chainlink
import (
"errors"
"fmt"
"slices"

"github.com/imdario/mergo"
"go.uber.org/multierr"

gotoml "github.com/pelletier/go-toml/v2"
Expand Down Expand Up @@ -49,40 +51,201 @@ type Config struct {
// RawConfigs is a list of RawConfig.
type RawConfigs []RawConfig

func (rs *RawConfigs) SetFrom(configs RawConfigs) error {
if err := configs.validateKeys(); err != nil {
return err
}

for _, config := range configs {
chainID := config.ChainID()
i := slices.IndexFunc(*rs, func(r RawConfig) bool {
otherChainID := r.ChainID()
return otherChainID != "" && chainID == otherChainID
})
if i != -1 {
if err := (*rs)[i].SetFrom(config); err != nil {
return err
}
} else {
*rs = append(*rs, config)
}
}

return nil
}

func (rs RawConfigs) validateKeys() (err error) {
chainIDs := commonconfig.UniqueStrings{}
for i, config := range rs {
chainID := config.ChainID()
if chainIDs.IsDupe(&chainID) {
err = errors.Join(err, commonconfig.NewErrDuplicate(fmt.Sprintf("%d.ChainID", i), chainID))
}
}

nodeNames := commonconfig.UniqueStrings{}
for i, config := range rs {
configNodeNames := config.NodeNames()
for j, nodeName := range configNodeNames {
if nodeNames.IsDupe(&nodeName) {
err = errors.Join(err, commonconfig.NewErrDuplicate(fmt.Sprintf("%d.Nodes.%d.Name", i, j), nodeName))
}
}
}
return
}

func (rs RawConfigs) ValidateConfig() (err error) {
return rs.validateKeys()
}

// RawConfig is the config used for chains that are not embedded.
type RawConfig map[string]any

// ValidateConfig returns an error if the Config is not valid for use, as-is.
func (c *RawConfig) ValidateConfig() (err error) {
if v, ok := (*c)["Enabled"]; ok {
type parsedRawConfig struct {
chainID string
nodesExist bool
nodes []map[string]any
nodeNames []string
}

func (c RawConfig) parse() (*parsedRawConfig, error) {
var err error
if v, ok := c["Enabled"]; ok {
if _, ok := v.(bool); !ok {
err = multierr.Append(err, commonconfig.ErrInvalid{Name: "Enabled", Value: v, Msg: "expected bool"})
}
}
if v, ok := (*c)["ChainID"]; ok {
if _, ok := v.(string); !ok {
err = multierr.Append(err, commonconfig.ErrInvalid{Name: "ChainID", Value: v, Msg: "expected string"})

parsedRawConfig := &parsedRawConfig{}
chainID, exists := c["ChainID"]
if !exists {
err = multierr.Append(err, commonconfig.ErrMissing{Name: "ChainID", Msg: "required for all chains"})
} else {
chainIDStr, ok := chainID.(string)
switch {
case !ok:
err = multierr.Append(err, commonconfig.ErrInvalid{Name: "ChainID", Value: chainID, Msg: "expected string"})
case chainIDStr == "":
err = multierr.Append(err, commonconfig.ErrEmpty{Name: "ChainID", Msg: "required for all chains"})
default:
parsedRawConfig.chainID = chainIDStr
}
}
return err
nodes, nodesExist := c["Nodes"]
parsedRawConfig.nodesExist = nodesExist
if nodesExist {
nodeMaps, ok := nodes.([]any)
switch {
case !ok:
err = multierr.Append(err, commonconfig.ErrInvalid{Name: "Nodes", Value: nodes, Msg: "expected array of node configs"})
default:
for i, node := range nodeMaps {
nodeConfig, ok := node.(map[string]any)
if !ok {
err = multierr.Append(err, commonconfig.ErrInvalid{Name: fmt.Sprintf("Nodes.%d", i), Value: nodeConfig, Msg: "expected node config map"})
} else {
parsedRawConfig.nodes = append(parsedRawConfig.nodes, nodeConfig)
nodeName, exists := nodeConfig["Name"]
if !exists {
err = multierr.Append(err, commonconfig.ErrMissing{Name: fmt.Sprintf("Nodes.%d.Name", i), Msg: "required for all nodes"})
} else {
nodeNameStr, ok := nodeName.(string)
switch {
case !ok:
err = multierr.Append(err, commonconfig.ErrInvalid{Name: fmt.Sprintf("Nodes.%d.Name", i), Value: nodeName, Msg: "expected string"})
case nodeNameStr == "":
err = multierr.Append(err, commonconfig.ErrEmpty{Name: fmt.Sprintf("Nodes.%d.Name", i), Msg: "required for all nodes"})
default:
parsedRawConfig.nodeNames = append(parsedRawConfig.nodeNames, nodeNameStr)
}
}
}
}
}
}

return parsedRawConfig, err
}

func (c *RawConfig) IsEnabled() bool {
if c == nil {
return false
// ValidateConfig returns an error if the Config is not valid for use, as-is.
func (c RawConfig) ValidateConfig() error {
parsedRawConfig, err := c.parse()
if !parsedRawConfig.nodesExist {
err = multierr.Append(err, commonconfig.ErrMissing{Name: "Nodes", Msg: "expected at least one node"})
} else if len(parsedRawConfig.nodes) == 0 {
err = multierr.Append(err, commonconfig.ErrEmpty{Name: "Nodes", Msg: "expected at least one node"})
}
return err
}

enabled, ok := (*c)["Enabled"].(bool)
func (c RawConfig) IsEnabled() bool {
enabled, ok := c["Enabled"].(bool)
return ok && enabled
}

func (c *RawConfig) ChainID() string {
if c == nil {
return ""
func (c RawConfig) ChainID() string {
chainID, _ := c["ChainID"].(string)
return chainID
}

func (c *RawConfig) SetFrom(config RawConfig) error {
parsedRawConfig, err := c.parse()
if err != nil {
return err
}

chainID, _ := (*c)["ChainID"].(string)
return chainID
incomingParsedRawConfig, err := config.parse()
if err != nil {
return err
}

// Create a copy of config without nodes to merge other fields
configWithoutNodes := make(RawConfig)
for k, v := range config {
if k != "Nodes" {
configWithoutNodes[k] = v
}
}

// Merge all non-node fields
if err := mergo.Merge(c, configWithoutNodes, mergo.WithOverride); err != nil {
return err
}

// Handle node merging
for i, nodeConfig := range incomingParsedRawConfig.nodes {
nodeName := incomingParsedRawConfig.nodeNames[i]
i := slices.Index(parsedRawConfig.nodeNames, nodeName)
if i != -1 {
if err := mergo.Merge(&parsedRawConfig.nodes[i], nodeConfig, mergo.WithOverride); err != nil {
return err
}
} else {
parsedRawConfig.nodes = append(parsedRawConfig.nodes, nodeConfig)
}
}

// Subsequence SetFrom invocations will call parse(), and expect to be able to cast c["Nodes"] to []any,
// so we can't directly assign parsedRawConfig.nodes back to c["Nodes"].
anyConfigs := []any{}
for _, nodeConfig := range parsedRawConfig.nodes {
anyConfigs = append(anyConfigs, nodeConfig)
}

(*c)["Nodes"] = anyConfigs
return nil
}

func (c RawConfig) NodeNames() []string {
nodes, _ := c["Nodes"].([]any)
nodeNames := []string{}
for _, node := range nodes {
config, _ := node.(map[string]any)
nodeName, _ := config["Name"].(string)
nodeNames = append(nodeNames, nodeName)
}
return nodeNames
}

// TOMLString returns a TOML encoded string.
Expand Down Expand Up @@ -185,8 +348,9 @@ func (c *Config) SetFrom(f *Config) (err error) {
err = multierr.Append(err, commonconfig.NamedMultiErrorList(err4, "Starknet"))
}

// the plugin should handle it's own defaults and merging
c.Aptos = f.Aptos
if err5 := c.Aptos.SetFrom(f.Aptos); err5 != nil {
err = multierr.Append(err, commonconfig.NamedMultiErrorList(err5, "Aptos"))
}

_, err = commonconfig.MultiErrorList(err)

Expand Down
6 changes: 5 additions & 1 deletion core/services/chainlink/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1520,7 +1520,11 @@ func TestConfig_Validate(t *testing.T) {
- 1: 2 errors:
- ChainID: missing: required for all chains
- Nodes: missing: must have at least one node
- Aptos.0.Enabled: invalid value (1): expected bool`},
- Aptos: 2 errors:
- 0.Nodes.1.Name: invalid value (primary): duplicate - must be unique
- 0: 2 errors:
- Enabled: invalid value (1): expected bool
- ChainID: missing: required for all chains`},
} {
t.Run(tt.name, func(t *testing.T) {
var c Config
Expand Down
8 changes: 7 additions & 1 deletion core/services/chainlink/testdata/config-invalid.toml
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,15 @@ APIKey = 'key'
[[Aptos]]
Enabled = 1

[[Aptos.Nodes]]
Name = 'primary'

[[Aptos.Nodes]]
Name = 'primary'

[OCR2]
Enabled = true

[P2P]
[P2P.V2]
Enabled = false
Enabled = false
2 changes: 1 addition & 1 deletion deployment/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ require (
github.com/smartcontractkit/ccip-owner-contracts v0.0.0-20240926212305-a6deabdfce86
github.com/smartcontractkit/chain-selectors v1.0.27
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae
github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0
github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13
github.com/smartcontractkit/chainlink/v2 v2.14.0-mercury-20240807.0.20241106193309-5560cd76211a
Expand Down
4 changes: 2 additions & 2 deletions deployment/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1384,8 +1384,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422 h1:VfH/AW5NtTmroY9zz6OYCPFbFTqpMyJ2ubgT9ahYf3U=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7 h1:AGi0kAtMRW1zl1h7sGw+3CKO4Nlev6iA08YfEcgJCGs=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae h1:uqce0bjNVYzFrrVLafXgyn8SVNdfOtZekLfAwQihHiA=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f/go.mod h1:wHtwSR3F1CQSJJZDQKuqaqFYnvkT+kMyget7dl8Clvo=
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e h1:JiETqdNM0bktAUGMc62COwXIaw3rR3M77Me6bBLG0Fg=
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ require (
github.com/hashicorp/go-plugin v1.6.2-0.20240829161738-06afb6d7ae99
github.com/hashicorp/go-retryablehttp v0.7.7
github.com/hdevalence/ed25519consensus v0.1.0
github.com/imdario/mergo v0.3.16
github.com/jackc/pgconn v1.14.3
github.com/jackc/pgtype v1.14.0
github.com/jackc/pgx/v4 v4.18.3
Expand Down Expand Up @@ -76,7 +77,7 @@ require (
github.com/smartcontractkit/chain-selectors v1.0.27
github.com/smartcontractkit/chainlink-automation v0.8.1
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e
github.com/smartcontractkit/chainlink-feeds v0.1.1
Expand Down Expand Up @@ -252,7 +253,6 @@ require (
github.com/huandu/xstrings v1.4.0 // indirect
github.com/huin/goupnp v1.3.0 // indirect
github.com/iancoleman/strcase v0.3.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/invopop/jsonschema v0.12.0 // indirect
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1077,8 +1077,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422 h1:VfH/AW5NtTmroY9zz6OYCPFbFTqpMyJ2ubgT9ahYf3U=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7 h1:AGi0kAtMRW1zl1h7sGw+3CKO4Nlev6iA08YfEcgJCGs=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae h1:uqce0bjNVYzFrrVLafXgyn8SVNdfOtZekLfAwQihHiA=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f/go.mod h1:wHtwSR3F1CQSJJZDQKuqaqFYnvkT+kMyget7dl8Clvo=
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e h1:JiETqdNM0bktAUGMc62COwXIaw3rR3M77Me6bBLG0Fg=
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ require (
github.com/smartcontractkit/chain-selectors v1.0.27
github.com/smartcontractkit/chainlink-automation v0.8.1
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae
github.com/smartcontractkit/chainlink-protos/job-distributor v0.4.0
github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.2
github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13
Expand Down
4 changes: 2 additions & 2 deletions integration-tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1405,8 +1405,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422 h1:VfH/AW5NtTmroY9zz6OYCPFbFTqpMyJ2ubgT9ahYf3U=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7 h1:AGi0kAtMRW1zl1h7sGw+3CKO4Nlev6iA08YfEcgJCGs=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae h1:uqce0bjNVYzFrrVLafXgyn8SVNdfOtZekLfAwQihHiA=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f/go.mod h1:wHtwSR3F1CQSJJZDQKuqaqFYnvkT+kMyget7dl8Clvo=
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e h1:JiETqdNM0bktAUGMc62COwXIaw3rR3M77Me6bBLG0Fg=
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/load/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ require (
github.com/pkg/errors v0.9.1
github.com/rs/zerolog v1.33.0
github.com/slack-go/slack v0.15.0
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae
github.com/smartcontractkit/chainlink-testing-framework/lib v1.50.13
github.com/smartcontractkit/chainlink-testing-framework/seth v1.50.5
github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2
Expand Down
4 changes: 2 additions & 2 deletions integration-tests/load/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1394,8 +1394,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422 h1:VfH/AW5NtTmroY9zz6OYCPFbFTqpMyJ2ubgT9ahYf3U=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20241106140121-4c9ee21ab422/go.mod h1:4adKaHNaxFsRvV/lYfqtbsWyyvIPUMLR0FdOJN/ljis=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7 h1:AGi0kAtMRW1zl1h7sGw+3CKO4Nlev6iA08YfEcgJCGs=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241101093830-33711d0c3de7/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae h1:uqce0bjNVYzFrrVLafXgyn8SVNdfOtZekLfAwQihHiA=
github.com/smartcontractkit/chainlink-common v0.3.1-0.20241106142051-c7bded1c08ae/go.mod h1:TQ9/KKXZ9vr8QAlUquqGpSvDCpR+DtABKPXZY4CiRns=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f h1:BwrIaQIx5Iy6eT+DfLhFfK2XqjxRm74mVdlX8gbu4dw=
github.com/smartcontractkit/chainlink-cosmos v0.5.2-0.20241017133723-5277829bd53f/go.mod h1:wHtwSR3F1CQSJJZDQKuqaqFYnvkT+kMyget7dl8Clvo=
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20241018134907-a00ba3729b5e h1:JiETqdNM0bktAUGMc62COwXIaw3rR3M77Me6bBLG0Fg=
Expand Down
Loading

0 comments on commit 340a6bf

Please sign in to comment.