diff --git a/pkg/workflows/dontime/factory.go b/pkg/workflows/dontime/factory.go index b26ed9c295..c0e2243cfb 100644 --- a/pkg/workflows/dontime/factory.go +++ b/pkg/workflows/dontime/factory.go @@ -2,17 +2,17 @@ package dontime import ( "context" - "fmt" "time" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/durationpb" + "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3types" + "github.com/smartcontractkit/chainlink-common/pkg/logger" "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink-common/pkg/types/core" "github.com/smartcontractkit/chainlink-common/pkg/workflows/dontime/pb" - "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3types" ) const ( @@ -73,13 +73,10 @@ func (o *Factory) NewReportingPlugin(_ context.Context, config ocr3types.Reporti configProto.MinTimeIncrease = int64(defaultMinTimeIncrease) } - updatedOffchainConfig, err := proto.Marshal(&configProto) + plugin, err := NewPlugin(o.store, config, &configProto, o.lggr) if err != nil { - return nil, ocr3types.ReportingPluginInfo{}, fmt.Errorf("failed to re-marshal updated configProto: %w", err) + return nil, ocr3types.ReportingPluginInfo{}, err } - config.OffchainConfig = updatedOffchainConfig - - plugin, err := NewPlugin(o.store, config, o.lggr) pluginInfo := ocr3types.ReportingPluginInfo{ Name: "DON Time Plugin", Limits: ocr3types.ReportingPluginLimits{ @@ -90,6 +87,16 @@ func (o *Factory) NewReportingPlugin(_ context.Context, config ocr3types.Reporti MaxReportCount: int(configProto.MaxReportCount), }, } + o.lggr.Infow("DON Time Plugin created with config", + "maxQueryLengthBytes", configProto.MaxQueryLengthBytes, + "maxObservationLengthBytes", configProto.MaxObservationLengthBytes, + "maxOutcomeLengthBytes", configProto.MaxOutcomeLengthBytes, + "maxReportLengthBytes", configProto.MaxReportLengthBytes, + "maxReportCount", configProto.MaxReportCount, + "maxBatchSize", configProto.MaxBatchSize, + "executionRemovalTime", configProto.ExecutionRemovalTime.AsDuration(), + "minTimeIncrease", configProto.MinTimeIncrease, + ) return plugin, pluginInfo, err } diff --git a/pkg/workflows/dontime/plugin.go b/pkg/workflows/dontime/plugin.go index ffae1fdfe8..fe1c370ded 100644 --- a/pkg/workflows/dontime/plugin.go +++ b/pkg/workflows/dontime/plugin.go @@ -34,12 +34,7 @@ type Plugin struct { var _ ocr3types.ReportingPlugin[[]byte] = (*Plugin)(nil) -func NewPlugin(store *Store, config ocr3types.ReportingPluginConfig, lggr logger.Logger) (*Plugin, error) { - offchainCfg := &pb.Config{} - err := proto.Unmarshal(config.OffchainConfig, offchainCfg) - if err != nil { - return nil, err - } +func NewPlugin(store *Store, config ocr3types.ReportingPluginConfig, offchainCfg *pb.Config, lggr logger.Logger) (*Plugin, error) { if offchainCfg.MaxBatchSize == 0 { return nil, errors.New("batch size cannot be 0") } diff --git a/pkg/workflows/dontime/plugin_test.go b/pkg/workflows/dontime/plugin_test.go index bae74579c4..b75c517db8 100644 --- a/pkg/workflows/dontime/plugin_test.go +++ b/pkg/workflows/dontime/plugin_test.go @@ -9,14 +9,15 @@ import ( "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/durationpb" - "github.com/smartcontractkit/chainlink-common/pkg/logger" - "github.com/smartcontractkit/chainlink-common/pkg/workflows/dontime/pb" "github.com/smartcontractkit/libocr/offchainreporting2/types" "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3types" + + "github.com/smartcontractkit/chainlink-common/pkg/logger" + "github.com/smartcontractkit/chainlink-common/pkg/workflows/dontime/pb" ) -func newTestPluginConfig(t *testing.T) ocr3types.ReportingPluginConfig { - offChainCfg := &pb.Config{ +func newTestPluginOffchainConfig(t *testing.T) *pb.Config { + return &pb.Config{ MaxQueryLengthBytes: defaultMaxPhaseOutputBytes, MaxObservationLengthBytes: defaultMaxPhaseOutputBytes, MaxReportLengthBytes: defaultMaxPhaseOutputBytes, @@ -24,6 +25,10 @@ func newTestPluginConfig(t *testing.T) ocr3types.ReportingPluginConfig { MinTimeIncrease: int64(defaultMinTimeIncrease), ExecutionRemovalTime: durationpb.New(defaultExecutionRemovalTime), } +} + +func newTestPluginConfig(t *testing.T) ocr3types.ReportingPluginConfig { + offChainCfg := newTestPluginOffchainConfig(t) offChainCfgBytes, err := proto.Marshal(offChainCfg) if err != nil { @@ -43,10 +48,10 @@ func newTestPluginConfig(t *testing.T) ocr3types.ReportingPluginConfig { func TestPlugin_Observation(t *testing.T) { lggr := logger.Test(t) store := NewStore(DefaultRequestTimeout) - config := newTestPluginConfig(t) + config, offchainCfg := newTestPluginConfig(t), newTestPluginOffchainConfig(t) ctx := t.Context() - plugin, err := NewPlugin(store, config, lggr) + plugin, err := NewPlugin(store, config, offchainCfg, lggr) require.NoError(t, err) outcomeCtx := ocr3types.OutcomeContext{ @@ -80,12 +85,12 @@ func TestPlugin_Observation(t *testing.T) { func TestPlugin_ValidateObservation(t *testing.T) { lggr := logger.Test(t) - config := newTestPluginConfig(t) + config, offchainCfg := newTestPluginConfig(t), newTestPluginOffchainConfig(t) ctx := t.Context() t.Run("Valid Observation", func(t *testing.T) { store := NewStore(DefaultRequestTimeout) - plugin, err := NewPlugin(store, config, lggr) + plugin, err := NewPlugin(store, config, offchainCfg, lggr) require.NoError(t, err) outcomeCtx := ocr3types.OutcomeContext{ @@ -113,7 +118,7 @@ func TestPlugin_ValidateObservation(t *testing.T) { t.Run("Invalid sequence number", func(t *testing.T) { store := NewStore(DefaultRequestTimeout) - plugin, err := NewPlugin(store, config, lggr) + plugin, err := NewPlugin(store, config, offchainCfg, lggr) require.NoError(t, err) outcomeCtx := ocr3types.OutcomeContext{ @@ -138,10 +143,10 @@ func TestPlugin_ValidateObservation(t *testing.T) { func TestPlugin_Outcome(t *testing.T) { lggr := logger.Test(t) store := NewStore(DefaultRequestTimeout) - config := newTestPluginConfig(t) + config, offchainCfg := newTestPluginConfig(t), newTestPluginOffchainConfig(t) ctx := t.Context() - plugin, err := NewPlugin(store, config, lggr) + plugin, err := NewPlugin(store, config, offchainCfg, lggr) require.NoError(t, err) query, err := plugin.Query(ctx, ocr3types.OutcomeContext{PreviousOutcome: []byte("")}) @@ -211,11 +216,11 @@ func TestPlugin_Outcome(t *testing.T) { func TestPlugin_FinishedExecutions(t *testing.T) { lggr := logger.Test(t) store := NewStore(DefaultRequestTimeout) - config := newTestPluginConfig(t) + config, offchainCfg := newTestPluginConfig(t), newTestPluginOffchainConfig(t) ctx := t.Context() transmitter := NewTransmitter(lggr, store, "") - plugin, err := NewPlugin(store, config, lggr) + plugin, err := NewPlugin(store, config, offchainCfg, lggr) require.NoError(t, err) query, err := plugin.Query(ctx, ocr3types.OutcomeContext{PreviousOutcome: []byte("")}) @@ -286,10 +291,10 @@ func TestPlugin_FinishedExecutions(t *testing.T) { func TestPlugin_ExpiredRequest(t *testing.T) { lggr := logger.Test(t) store := NewStore(0) - config := newTestPluginConfig(t) + config, offchainCfg := newTestPluginConfig(t), newTestPluginOffchainConfig(t) ctx := t.Context() - plugin, err := NewPlugin(store, config, lggr) + plugin, err := NewPlugin(store, config, offchainCfg, lggr) require.NoError(t, err) outcomeCtx := ocr3types.OutcomeContext{