Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BCI-1426: Add GasPriceSubunits Data Source Pipeline #13200

Merged
merged 15 commits into from
May 23, 2024
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ golang 1.21.7
mockery 2.42.2
nodejs 20.13.1
pnpm 8.15.8
postgres 14.11
postgres 15.1
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overdue for a bump?

helm 3.10.3
zig 0.11.0
golangci-lint 1.55.2
Expand Down
11 changes: 9 additions & 2 deletions core/internal/features/ocr2/features_ocr2_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,9 @@ fromBlock = %d
}))
t.Cleanup(servers[s].Close)
u, _ := url.Parse(servers[i].URL)
bridgeName := fmt.Sprintf("bridge%d", i)
require.NoError(t, apps[i].BridgeORM().CreateBridgeType(testutils.Context(t), &bridges.BridgeType{
Name: bridges.BridgeName(fmt.Sprintf("bridge%d", i)),
Name: bridges.BridgeName(bridgeName),
URL: models.WebURL(*u),
}))

Expand Down Expand Up @@ -488,9 +489,15 @@ juelsPerFeeCoinSource = """

answer1 [type=median index=0];
"""
gasPriceSource = """
// data source
dsp [type=bridge name="%s"];
dsp_parse [type=jsonparse path="data"];
dsp -> dsp_parse;
"""
[pluginConfig.juelsPerFeeCoinCache]
updateInterval = "1m"
`, ocrContractAddress, kbs[i].ID(), transmitters[i], fmt.Sprintf("bridge%d", i), i, slowServers[i].URL, i, blockBeforeConfig.Number().Int64(), chainReaderSpec, fmt.Sprintf("bridge%d", i), i, slowServers[i].URL, i), nil)
`, ocrContractAddress, kbs[i].ID(), transmitters[i], bridgeName, i, slowServers[i].URL, i, blockBeforeConfig.Number().Int64(), chainReaderSpec, bridgeName, i, slowServers[i].URL, i, bridgeName), nil)
require.NoError(t, err)
err = apps[i].AddJobV2(testutils.Context(t), &ocrJob)
require.NoError(t, err)
Expand Down
2 changes: 1 addition & 1 deletion core/scripts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ require (
github.com/prometheus/client_golang v1.17.0
github.com/shopspring/decimal v1.3.1
github.com/smartcontractkit/chainlink-automation v1.0.3
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037
github.com/smartcontractkit/chainlink-vrf v0.0.0-20240222010609-cd67d123c772
github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000
github.com/smartcontractkit/libocr v0.0.0-20240419185742-fd3cab206b2c
Expand Down
4 changes: 2 additions & 2 deletions core/scripts/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1185,8 +1185,8 @@ 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.20240509130051-b54aae6a8b65 h1:e/qJZHPDVcgv/bnydjyYBk3JYbDnxPaZ2LvTlfDZeXA=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65/go.mod h1:sj0pjL+METqeYL9ibp0T8SXquymlaQsofa6bdfLgXX8=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037 h1:yueo6Vtedtx9L+71JfHUwzGanl1KWUTxVqVDg6ZbB30=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037/go.mod h1:WLCJQW1xRPL0kNQ2rl5DUnodrzxcbHzha3w46qaHIkg=
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=
Expand Down
16 changes: 16 additions & 0 deletions core/services/feeds/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,13 @@ ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];
"""
gasPriceSubunitsSource = """
ds1 [type=bridge name=voter_turnout];
ds1_parse [type=jsonparse path="one,two"];
ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];
"""
[pluginConfig.juelsPerFeeCoinCache]
updateInterval = "1m"
`
Expand Down Expand Up @@ -974,6 +981,7 @@ ds1_parse [type=jsonparse path="one,two"];
ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];
# omit gasPriceSubunitsSource intentionally
"""
`

Expand Down Expand Up @@ -2289,6 +2297,13 @@ ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];
"""
gasPriceSubunitsSource = """
ds1 [type=bridge name=voter_turnout];
ds1_parse [type=jsonparse path="one,two"];
ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];
"""
[pluginConfig.juelsPerFeeCoinCache]
updateInterval = "30s"
`
Expand Down Expand Up @@ -2320,6 +2335,7 @@ ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];
"""
# intentionally do not set gasPriceSubunitsSource for this pipeline example to cover case when none is set
[pluginConfig.juelsPerFeeCoinCache]
updateInterval = "20m"
`
Expand Down
29 changes: 21 additions & 8 deletions core/services/job/orm.go
Original file line number Diff line number Diff line change
Expand Up @@ -278,17 +278,30 @@ func (o *orm) CreateJob(ctx context.Context, jb *Job) error {

if jb.OCR2OracleSpec.PluginType == types.Median {
var cfg medianconfig.PluginConfig
err2 := json.Unmarshal(jb.OCR2OracleSpec.PluginConfig.Bytes(), &cfg)
if err2 != nil {
return errors.Wrap(err2, "failed to parse plugin config")

validatePipeline := func(p string) error {
pipeline, pipelineErr := pipeline.Parse(p)
if pipelineErr != nil {
return pipelineErr
}
return tx.AssertBridgesExist(ctx, *pipeline)
}

errUnmarshal := json.Unmarshal(jb.OCR2OracleSpec.PluginConfig.Bytes(), &cfg)
if errUnmarshal != nil {
return errors.Wrap(errUnmarshal, "failed to parse plugin config")
}
feePipeline, err2 := pipeline.Parse(cfg.JuelsPerFeeCoinPipeline)
if err2 != nil {
return err2

if errFeePipeline := validatePipeline(cfg.JuelsPerFeeCoinPipeline); errFeePipeline != nil {
return errFeePipeline
}
if err2 = tx.AssertBridgesExist(ctx, *feePipeline); err2 != nil {
return err2

if cfg.GasPriceSubunitsPipelineExists() {
if errGasPipeline := validatePipeline(cfg.GasPriceSubunitsPipeline); errGasPipeline != nil {
return errGasPipeline
}
}

}

specID, err := tx.insertOCR2OracleSpec(ctx, jb.OCR2OracleSpec)
Expand Down
7 changes: 6 additions & 1 deletion core/services/ocr2/database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,12 @@ func MustInsertOCROracleSpec(t *testing.T, db *sqlx.DB, transmitterAddress types
ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];`
config := medianconfig.PluginConfig{JuelsPerFeeCoinPipeline: mockJuelsPerFeeCoinSource}
mockGasPriceSubunitsSource := `ds1 [type=bridge name=voter_turnout];
ds1_parse [type=jsonparse path="one,two"];
ds1_multiply [type=multiply times=1.23];
ds1 -> ds1_parse -> ds1_multiply -> answer1;
answer1 [type=median index=0];`
config := medianconfig.PluginConfig{JuelsPerFeeCoinPipeline: mockJuelsPerFeeCoinSource, GasPriceSubunitsPipeline: mockGasPriceSubunitsSource}
jsonConfig, err := json.Marshal(config)
require.NoError(t, err)

Expand Down
17 changes: 15 additions & 2 deletions core/services/ocr2/plugins/median/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
package config

import (
"strings"
"time"

"github.com/pkg/errors"
Expand All @@ -14,7 +15,8 @@ import (

// The PluginConfig struct contains the custom arguments needed for the Median plugin.
type PluginConfig struct {
JuelsPerFeeCoinPipeline string `json:"juelsPerFeeCoinSource"`
GasPriceSubunitsPipeline string `json:"gasPriceSubunitsSource"`
JuelsPerFeeCoinPipeline string `json:"juelsPerFeeCoinSource"`
// JuelsPerFeeCoinCache is disabled when nil
JuelsPerFeeCoinCache *JuelsPerFeeCoinCache `json:"juelsPerFeeCoinCache"`
}
Expand All @@ -26,7 +28,7 @@ type JuelsPerFeeCoinCache struct {
}

// ValidatePluginConfig validates the arguments for the Median plugin.
func ValidatePluginConfig(config PluginConfig) error {
func (config *PluginConfig) ValidatePluginConfig() error {
if _, err := pipeline.Parse(config.JuelsPerFeeCoinPipeline); err != nil {
return errors.Wrap(err, "invalid juelsPerFeeCoinSource pipeline")
}
Expand All @@ -41,5 +43,16 @@ func ValidatePluginConfig(config PluginConfig) error {
}
}

// Gas price pipeline is optional
if !config.GasPriceSubunitsPipelineExists() {
return nil
} else if _, err := pipeline.Parse(config.GasPriceSubunitsPipeline); err != nil {
return errors.Wrap(err, "invalid gasPriceSubunitsSource pipeline")
}

return nil
}

func (config *PluginConfig) GasPriceSubunitsPipelineExists() bool {
jmank88 marked this conversation as resolved.
Show resolved Hide resolved
return !(strings.TrimSpace(config.GasPriceSubunitsPipeline) == "")
jmank88 marked this conversation as resolved.
Show resolved Hide resolved
}
9 changes: 6 additions & 3 deletions core/services/ocr2/plugins/median/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ func TestValidatePluginConfig(t *testing.T) {
{"foo pipeline", "foo", models.Interval(time.Minute), fmt.Errorf("invalid juelsPerFeeCoinSource pipeline: UnmarshalTaskFromMap: unknown task type: \"\"")},
} {
t.Run(tc.name, func(t *testing.T) {
assert.EqualError(t, ValidatePluginConfig(PluginConfig{JuelsPerFeeCoinPipeline: tc.pipeline}), tc.expectedError.Error())
pc := PluginConfig{JuelsPerFeeCoinPipeline: tc.pipeline}
assert.EqualError(t, pc.ValidatePluginConfig(), tc.expectedError.Error())
})
}
})
Expand All @@ -36,7 +37,8 @@ func TestValidatePluginConfig(t *testing.T) {
{"cache duration above maximum", `ds1 [type=bridge name=voter_turnout];`, models.Interval(time.Minute*20 + time.Second), fmt.Errorf("juelsPerFeeCoinSourceCache update interval: 20m1s is above 20 minute maximum")},
} {
t.Run(tc.name, func(t *testing.T) {
assert.EqualError(t, ValidatePluginConfig(PluginConfig{JuelsPerFeeCoinPipeline: tc.pipeline, JuelsPerFeeCoinCache: &JuelsPerFeeCoinCache{UpdateInterval: tc.cacheDuration}}), tc.expectedError.Error())
pc := PluginConfig{JuelsPerFeeCoinPipeline: tc.pipeline, JuelsPerFeeCoinCache: &JuelsPerFeeCoinCache{UpdateInterval: tc.cacheDuration}}
assert.EqualError(t, pc.ValidatePluginConfig(), tc.expectedError.Error())
})
}
})
Expand All @@ -48,7 +50,8 @@ func TestValidatePluginConfig(t *testing.T) {
{"valid duration and valid pipeline", `ds1 [type=bridge name=voter_turnout];`, models.Interval(time.Minute * 20), nil},
} {
t.Run(s.name, func(t *testing.T) {
assert.Nil(t, ValidatePluginConfig(PluginConfig{JuelsPerFeeCoinPipeline: s.pipeline}))
pc := PluginConfig{JuelsPerFeeCoinPipeline: s.pipeline}
assert.Nil(t, pc.ValidatePluginConfig())
})
}
})
Expand Down
16 changes: 14 additions & 2 deletions core/services/ocr2/plugins/median/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/services/ocrcommon"
"github.com/smartcontractkit/chainlink/v2/core/services/pipeline"
"github.com/smartcontractkit/chainlink/v2/plugins"
libocr_median "github.com/smartcontractkit/libocr/offchainreporting2/reportingplugin/median"
)

type MedianConfig interface {
Expand Down Expand Up @@ -69,7 +70,7 @@ func NewMedianServices(ctx context.Context,
if err != nil {
return
}
err = config.ValidatePluginConfig(pluginConfig)
err = pluginConfig.ValidatePluginConfig()
if err != nil {
return
}
Expand Down Expand Up @@ -136,6 +137,17 @@ func NewMedianServices(ctx context.Context,
srvs = append(srvs, juelsPerFeeCoinSourceCache)
}

var gasPriceSubunitsDataSource libocr_median.DataSource
if pluginConfig.GasPriceSubunitsPipelineExists() {
gasPriceSubunitsDataSource = ocrcommon.NewInMemoryDataSource(pipelineRunner, jb, pipeline.Spec{
ID: jb.ID,
DotDagSource: pluginConfig.GasPriceSubunitsPipeline,
CreatedAt: time.Now(),
}, lggr)
} else {
gasPriceSubunitsDataSource = &median.ZeroDataSource{}
}

if cmdName := env.MedianPlugin.Cmd.Get(); cmdName != "" {
// use unique logger names so we can use it to register a loop
medianLggr := lggr.Named("Median").Named(spec.ContractID).Named(spec.GetID())
Expand All @@ -155,7 +167,7 @@ func NewMedianServices(ctx context.Context,
abort()
return
}
median := loop.NewMedianService(lggr, telem, cmdFn, medianProvider, dataSource, juelsPerFeeCoinSource, errorLog)
median := loop.NewMedianService(lggr, telem, cmdFn, medianProvider, dataSource, juelsPerFeeCoinSource, gasPriceSubunitsDataSource, errorLog)
argsNoPlugin.ReportingPluginFactory = median
srvs = append(srvs, median)
} else {
Expand Down
4 changes: 2 additions & 2 deletions core/services/ocr2/validate/validate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ answer1 [type=median index=0];
assert.Equal(t, "median", string(r.PluginType))
var pc medianconfig.PluginConfig
require.NoError(t, json.Unmarshal(r.PluginConfig.Bytes(), &pc))
require.NoError(t, medianconfig.ValidatePluginConfig(pc))
require.NoError(t, pc.ValidatePluginConfig())
var oss validate.OCR2OnchainSigningStrategy
require.NoError(t, json.Unmarshal(r.OnchainSigningStrategy.Bytes(), &oss))
},
Expand Down Expand Up @@ -901,7 +901,7 @@ UpdateInterval="1m"
assert.Equal(t, "median", string(r.PluginType))
var pc medianconfig.PluginConfig
require.NoError(t, json.Unmarshal(r.PluginConfig.Bytes(), &pc))
require.NoError(t, medianconfig.ValidatePluginConfig(pc))
require.NoError(t, pc.ValidatePluginConfig())
},
},
}
Expand Down
6 changes: 6 additions & 0 deletions core/services/ocrcommon/data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -425,3 +425,9 @@ func (ds *dataSourceV2) Observe(ctx context.Context, timestamp ocr2types.ReportT
ConfigDigest: timestamp.ConfigDigest.Hex(),
})
}

type ZeroDataSource struct{}

func (ds *ZeroDataSource) Observe(context.Context, ocr2types.ReportTimestamp) (*big.Int, error) {
return new(big.Int), nil
}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ require (
github.com/shopspring/decimal v1.3.1
github.com/smartcontractkit/chain-selectors v1.0.10
github.com/smartcontractkit/chainlink-automation v1.0.3
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037
github.com/smartcontractkit/chainlink-cosmos v0.4.1-0.20240508101745-af1ed7bc8a69
github.com/smartcontractkit/chainlink-data-streams v0.0.0-20240220203239-09be0ea34540
github.com/smartcontractkit/chainlink-feeds v0.0.0-20240422130241-13c17a91b2ab
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1171,8 +1171,8 @@ 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.20240509130051-b54aae6a8b65 h1:e/qJZHPDVcgv/bnydjyYBk3JYbDnxPaZ2LvTlfDZeXA=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65/go.mod h1:sj0pjL+METqeYL9ibp0T8SXquymlaQsofa6bdfLgXX8=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037 h1:yueo6Vtedtx9L+71JfHUwzGanl1KWUTxVqVDg6ZbB30=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037/go.mod h1:WLCJQW1xRPL0kNQ2rl5DUnodrzxcbHzha3w46qaHIkg=
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=
Expand Down
2 changes: 1 addition & 1 deletion integration-tests/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ require (
github.com/shopspring/decimal v1.3.1
github.com/slack-go/slack v0.12.2
github.com/smartcontractkit/chainlink-automation v1.0.3
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037
github.com/smartcontractkit/chainlink-testing-framework v1.28.11
github.com/smartcontractkit/chainlink-vrf v0.0.0-20231120191722-fef03814f868
github.com/smartcontractkit/chainlink/v2 v2.0.0-00010101000000-000000000000
Expand Down
4 changes: 2 additions & 2 deletions integration-tests/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1512,8 +1512,8 @@ 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.20240509130051-b54aae6a8b65 h1:e/qJZHPDVcgv/bnydjyYBk3JYbDnxPaZ2LvTlfDZeXA=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65/go.mod h1:sj0pjL+METqeYL9ibp0T8SXquymlaQsofa6bdfLgXX8=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037 h1:yueo6Vtedtx9L+71JfHUwzGanl1KWUTxVqVDg6ZbB30=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037/go.mod h1:WLCJQW1xRPL0kNQ2rl5DUnodrzxcbHzha3w46qaHIkg=
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=
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 @@ -16,7 +16,7 @@ require (
github.com/rs/zerolog v1.30.0
github.com/slack-go/slack v0.12.2
github.com/smartcontractkit/chainlink-automation v1.0.3
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037
github.com/smartcontractkit/chainlink-testing-framework v1.28.11
github.com/smartcontractkit/chainlink/integration-tests v0.0.0-20240214231432-4ad5eb95178c
github.com/smartcontractkit/chainlink/v2 v2.9.0-beta0.0.20240216210048-da02459ddad8
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 @@ -1502,8 +1502,8 @@ 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.20240509130051-b54aae6a8b65 h1:e/qJZHPDVcgv/bnydjyYBk3JYbDnxPaZ2LvTlfDZeXA=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240509130051-b54aae6a8b65/go.mod h1:sj0pjL+METqeYL9ibp0T8SXquymlaQsofa6bdfLgXX8=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037 h1:yueo6Vtedtx9L+71JfHUwzGanl1KWUTxVqVDg6ZbB30=
github.com/smartcontractkit/chainlink-common v0.1.7-0.20240514210633-dcb27b012037/go.mod h1:WLCJQW1xRPL0kNQ2rl5DUnodrzxcbHzha3w46qaHIkg=
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=
Expand Down
Loading