From 90d84f45e02428a4f6a6ec3fe22d2fff1cb467b9 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Wed, 19 Aug 2026 14:10:36 -0300 Subject: [PATCH 01/10] wip --- core/platform/monitoring.go | 1 + .../workflows/monitoring/monitoring.go | 19 ++ core/services/workflows/v2/config.go | 17 + core/services/workflows/v2/engine.go | 83 +++-- .../workflows/v2/engine_drop_paths_test.go | 321 ++++++++++++++++++ 5 files changed, 421 insertions(+), 20 deletions(-) create mode 100644 core/services/workflows/v2/engine_drop_paths_test.go diff --git a/core/platform/monitoring.go b/core/platform/monitoring.go index 10324f87843..a37ff4909aa 100644 --- a/core/platform/monitoring.go +++ b/core/platform/monitoring.go @@ -10,6 +10,7 @@ const ( KeyCapabilityID = "capabilityID" KeyTriggerID = "triggerID" KeyTriggerDropReason = "dropReason" + KeyLimitKey = "limitKey" KeyWorkflowID = "workflowID" KeyWorkflowExecutionID = "workflowExecutionID" KeyWorkflowName = "workflowName" diff --git a/core/services/workflows/monitoring/monitoring.go b/core/services/workflows/monitoring/monitoring.go index 2ae2b5b0199..1954950b650 100644 --- a/core/services/workflows/monitoring/monitoring.go +++ b/core/services/workflows/monitoring/monitoring.go @@ -84,6 +84,8 @@ type EngineMetrics struct { donTimeErrorsCounter metric.Int64Counter orgIDMissingCounter metric.Int64Counter + + limitReadFallbackTotal metric.Int64Counter } func InitMonitoringResources() (em *EngineMetrics, err error) { @@ -449,6 +451,14 @@ func InitMonitoringResources() (em *EngineMetrics, err error) { return nil, fmt.Errorf("failed to register org id missing counter: %w", err) } + em.limitReadFallbackTotal, err = beholder.GetMeter().Int64Counter( + "platform_engine_limit_read_fallback_total", + metric.WithDescription("Limit reads that failed and fell back to the static default, by limitKey"), + ) + if err != nil { + return nil, fmt.Errorf("failed to register limit read fallback counter: %w", err) + } + return em, nil } @@ -823,3 +833,12 @@ func (c WorkflowsMetricLabeler) IncrementOrgIDMissingCounter(ctx context.Context otelLabels = append(otelLabels, attribute.String("reason", reason)) c.em.orgIDMissingCounter.Add(ctx, 1, metric.WithAttributes(otelLabels...)) } + +// IncrementLimitReadFallbackCounter records one limit read that failed and fell +// back to its static default instead of dropping the execution/event. limitKey +// should be the canonical settings.Setting.Key for the limit that failed. +func (c WorkflowsMetricLabeler) IncrementLimitReadFallbackCounter(ctx context.Context, limitKey string) { + lc := c.With(platform.KeyLimitKey, limitKey) + otelLabels := beholder.OtelAttributes(lc.Labels).AsStringAttributes() + lc.em.limitReadFallbackTotal.Add(ctx, 1, metric.WithAttributes(otelLabels...)) +} diff --git a/core/services/workflows/v2/config.go b/core/services/workflows/v2/config.go index 454240c0c57..77b896c9063 100644 --- a/core/services/workflows/v2/config.go +++ b/core/services/workflows/v2/config.go @@ -119,6 +119,22 @@ type EngineLimiters struct { ConfidentialWorkflowsEnabled limits.GateLimiter CentralizedWorkflowOwnerVerificationEnabled limits.GateLimiter DONTimeRequestTimeout limits.TimeLimiter + + // settingDefaults is the effective limit configuration (package defaults with + // cfgFn applied) these limiters were built from. Used to fail soft with the + // right default when a Limit() read errors. nil when EngineLimiters was + // assembled directly (e.g. in tests) rather than via NewLimiters. + settingDefaults *cresettings.Workflows +} + +// defaults returns the effective limit settings these limiters were built from, +// falling back to the package defaults when the struct was assembled directly +// rather than through NewLimiters. +func (l *EngineLimiters) defaults() *cresettings.Workflows { + if l == nil || l.settingDefaults == nil { + return &cresettings.Default.PerWorkflow + } + return l.settingDefaults } // NewLimiters returns a new set of EngineLimiters based on the default configuration, and optionally modified by cfgFn. @@ -135,6 +151,7 @@ func (l *EngineLimiters) init(lf limits.Factory, cfgFn func(*cresettings.Workflo if cfgFn != nil { cfgFn(&cfg) } + l.settingDefaults = &cfg l.ExecutionResponse, err = limits.MakeUpperBoundLimiter(lf, cfg.ExecutionResponseLimit) if err != nil { return diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index 59cc894508c..2906d6c37b1 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -695,9 +695,9 @@ func (e *Engine) handleAllTriggerEvents(ctx context.Context) { triggerMetricLabels.RecordTriggerEventQueueWaitSeconds(ctx, eventAge.Seconds()) triggerEventMaxAge, err := e.cfg.LocalLimiters.TriggerEventQueueTime.Limit(ctx) if err != nil { - e.logger().Errorw("Failed to get trigger event queue time limit", "err", err) - triggerMetricLabels.IncrementTriggerEventDroppedTotal(ctx, monitoring.TriggerDropReasonQueueAgeLimitReadFailed) - continue + triggerEventMaxAge = e.cfg.LocalLimiters.defaults().TriggerEventQueueTimeout.DefaultValue + e.logger().Errorw("Failed to get trigger event queue time limit; falling back to default", "err", err, "default", triggerEventMaxAge) + triggerMetricLabels.IncrementLimitReadFallbackCounter(ctx, e.cfg.LocalLimiters.defaults().TriggerEventQueueTimeout.Key) } if eventAge > triggerEventMaxAge { e.logger().Warnw("Trigger event is too old, skipping execution", "triggerID", queueHead.triggerCapID, "eventID", eventID, "eventAgeMs", eventAge.Milliseconds()) @@ -799,6 +799,18 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue } }() + // emitDroppedExecution publishes the Started/Finished pair for an execution abandoned + // before the normal Started/Finished emit points below, so the failure reaches the UI + // instead of vanishing. Deliberately NOT used for shard-ownership denials just below: + // every node outside the owning shard denies each execution, so emitting there + // would publish DON-wide failures for runs that actually succeeded on the owner. + emitDroppedExecution := func(cause error, class events.ErrorClassification) { + executionStatus = store.StatusErrored + _ = events.EmitExecutionStartedEvent(ctx, loggerLabels, triggerEvent.ID, executionID) + _ = events.EmitExecutionFinishedEvent(ctx, loggerLabels, store.StatusErrored, executionID, cause, class, lggr) + e.metrics.IncrementWorkflowExecutionFinishedCounter(ctx, store.StatusErrored) + } + needShardOwnerCheck := e.cfg.ShardRoutingSteady == nil || !e.cfg.ShardRoutingSteady.SkipCommittedOwnerCheck() if e.cfg.ShardingEnabled && needShardOwnerCheck { var verdict shardownership.Verdict @@ -868,11 +880,34 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue } isMetering := meteringErr == nil + // meteringEnded tracks whether the inline End() call further below already ran. + // If startExecution returns before reaching it (any drop after Start), + // this guarded defer ends the report instead, so a redelivered + // trigger event for the same executionID doesn't hit ErrReportExists and run unmetered. + meteringEnded := false + defer func() { + if !isMetering || meteringEnded { + return + } + if endErr := e.meterReports.End(ctx, executionID); endErr != nil { + lggr.Errorw("could not end metering report after dropped execution", "err", endErr) + } + }() if isMetering { mrErr := meteringReport.Reserve(ctx) if mrErr != nil { lggr.Errorw("could not reserve metering", "err", mrErr) triggerDrop(monitoring.TriggerDropReasonMeteringReserveFailed) + // ErrInsufficientFunding is the customer's own out-of-credits state, not a + // platform failure; every other Reserve error (billing transport, etc.) fails + // open inside Reserve itself, so ErrInsufficientFunding is the only error + // actually reachable here today. + cause, class := mrErr, events.ErrorClassificationSystem + if errors.Is(mrErr, metering.ErrInsufficientFunding) { + cause = fmt.Errorf("insufficient credits to reserve this execution; top up your account balance: %w", mrErr) + class = events.ErrorClassificationUser + } + emitDroppedExecution(cause, class) return } @@ -881,9 +916,10 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue execCtx, execCancel, err := e.cfg.LocalLimiters.ExecutionTime.WithTimeout(ctx) if err != nil { - lggr.Errorw("Failed to get execution time limit", "err", err) - triggerDrop(monitoring.TriggerDropReasonExecutionTimeLimitReadFailed) - return + executionTimeout := e.cfg.LocalLimiters.defaults().ExecutionTimeout + lggr.Errorw("Failed to get execution time limit; falling back to default", "err", err, "default", executionTimeout.DefaultValue) + e.metrics.IncrementLimitReadFallbackCounter(ctx, executionTimeout.Key) + execCtx, execCancel = context.WithTimeout(ctx, executionTimeout.DefaultValue) } defer execCancel() triggerCapID := wrappedTriggerEvent.triggerCapID @@ -897,11 +933,14 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue executionLogger := logger.With(lggr, "executionID", executionID, "triggerID", wrappedTriggerEvent.triggerCapID, "triggerIndex", wrappedTriggerEvent.triggerIndex, "eventID", triggerEvent.ID) + // This is only a peek to size the user-log channel's burst buffer; LogEvent.Check + // (called per log line in emitUserLogs) is what actually enforces the cap. maxUserLogEventsPerExecution, err := e.cfg.LocalLimiters.LogEvent.Limit(ctx) if err != nil { - lggr.Errorw("Failed to get log event limit", "err", err) - triggerDrop(monitoring.TriggerDropReasonLogEventLimitReadFailed) - return + logEventLimit := e.cfg.LocalLimiters.defaults().LogEventLimit + lggr.Errorw("Failed to get log event limit; falling back to default", "err", err, "default", logEventLimit.DefaultValue) + e.metrics.IncrementLimitReadFallbackCounter(ctx, logEventLimit.Key) + maxUserLogEventsPerExecution = logEventLimit.DefaultValue } userLogChan := make(chan *protoevents.LogLine, maxUserLogEventsPerExecution) defer close(userLogChan) @@ -913,6 +952,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue if err != nil { executionLogger.Errorw("Failed to convert trigger index to uint64", "err", err) triggerDrop(monitoring.TriggerDropReasonTriggerIndexInvalid) + emitDroppedExecution(err, events.ErrorClassificationSystem) return } @@ -985,12 +1025,10 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue moduleExecuteMaxResponseSizeBytes, err := e.cfg.LocalLimiters.ExecutionResponse.Limit(ctx) if err != nil { - lggr.Errorw("Failed to get execution response size limit", "err", err) - executionStatus = store.StatusErrored - execErr = err - execErrClass = events.ErrorClassificationSystem - triggerDrop(monitoring.TriggerDropReasonExecutionResponseLimitReadFailed) - return + executionResponseLimit := e.cfg.LocalLimiters.defaults().ExecutionResponseLimit + lggr.Errorw("Failed to get execution response size limit; falling back to default", "err", err, "default", executionResponseLimit.DefaultValue) + e.metrics.IncrementLimitReadFallbackCounter(ctx, executionResponseLimit.Key) + moduleExecuteMaxResponseSizeBytes = executionResponseLimit.DefaultValue } if moduleExecuteMaxResponseSizeBytes < 0 { execErr = fmt.Errorf("invalid moduleExecuteMaxResponseSizeBytes; must not be negative: %d", moduleExecuteMaxResponseSizeBytes) @@ -1061,6 +1099,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue lggr.Errorw("could not set metering for compute", "err", mrErr) } mrErr = e.meterReports.End(ctx, executionID) + meteringEnded = true if mrErr != nil { lggr.Errorw("could not end metering report", "err", mrErr) } @@ -1238,8 +1277,10 @@ func (e *Engine) deductStandardBalances(ctx context.Context, meteringReport *met ctxCancelPadding := (time.Millisecond * 1000).Milliseconds() workflowExecutionTimeout, err := e.cfg.LocalLimiters.ExecutionTime.Limit(ctx) if err != nil { - e.logger().Errorw("Failed to get execution time limit", "err", err) - return + executionTimeout := e.cfg.LocalLimiters.defaults().ExecutionTimeout + e.logger().Errorw("Failed to get execution time limit; falling back to default", "err", err, "default", executionTimeout.DefaultValue) + e.metrics.IncrementLimitReadFallbackCounter(ctx, executionTimeout.Key) + workflowExecutionTimeout = executionTimeout.DefaultValue } compMs := decimal.NewFromInt(workflowExecutionTimeout.Milliseconds() + ctxCancelPadding) computeUnit := billing.ResourceType_RESOURCE_TYPE_COMPUTE.String() @@ -1275,8 +1316,10 @@ func (e *Engine) emitUserLogs(ctx context.Context, userLogChan chan *protoevents } maxUserLogLength, err := e.cfg.LocalLimiters.LogLine.Limit(emitCtx) if err != nil { - e.logger().Errorw("Failed to get user log line limit", "err", err) - return false + logLineLimit := e.cfg.LocalLimiters.defaults().LogLineLimit + e.logger().Errorw("Failed to get user log line limit; falling back to default", "err", err, "default", logLineLimit.DefaultValue) + e.metrics.IncrementLimitReadFallbackCounter(emitCtx, logLineLimit.Key) + maxUserLogLength = logLineLimit.DefaultValue } if len(logLine.Message) > int(maxUserLogLength) { logLine.Message = logLine.Message[:maxUserLogLength] + " ...(truncated)" @@ -1325,7 +1368,7 @@ func (e *Engine) emitUserLogs(ctx context.Context, userLogChan chan *protoevents } func (e *Engine) donTimeRequestTimeout(ctx context.Context, limiter limits.TimeLimiter) time.Duration { - defaultTimeout := cresettings.Default.PerWorkflow.DONTime.RequestTimeout.DefaultValue + defaultTimeout := e.cfg.LocalLimiters.defaults().DONTime.RequestTimeout.DefaultValue if limiter != nil { limit, err := limiter.Limit(ctx) if err != nil { diff --git a/core/services/workflows/v2/engine_drop_paths_test.go b/core/services/workflows/v2/engine_drop_paths_test.go new file mode 100644 index 00000000000..227e41438fa --- /dev/null +++ b/core/services/workflows/v2/engine_drop_paths_test.go @@ -0,0 +1,321 @@ +package v2_test + +import ( + "context" + "errors" + "sync" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/emptypb" + + "github.com/smartcontractkit/chainlink-common/pkg/beholder/beholdertest" + "github.com/smartcontractkit/chainlink-common/pkg/capabilities" + "github.com/smartcontractkit/chainlink-common/pkg/config" + "github.com/smartcontractkit/chainlink-common/pkg/custmsg" + "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" + regmocks "github.com/smartcontractkit/chainlink-common/pkg/types/core/mocks" + modulemocks "github.com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host/mocks" + billing "github.com/smartcontractkit/chainlink-protos/billing/go" + eventsv2 "github.com/smartcontractkit/chainlink-protos/workflows/go/v2" + capmocks "github.com/smartcontractkit/chainlink/v2/core/capabilities/mocks" + workflowEvents "github.com/smartcontractkit/chainlink/v2/core/services/workflows/events" + metmocks "github.com/smartcontractkit/chainlink/v2/core/services/workflows/metering/mocks" + v2 "github.com/smartcontractkit/chainlink/v2/core/services/workflows/v2" + "github.com/smartcontractkit/chainlink/v2/core/utils/matches" +) + +const ( + v2ExecutionStartedEntity = "workflows.v2." + workflowEvents.WorkflowExecutionStarted + v2ExecutionFinishedEntity = "workflows.v2." + workflowEvents.WorkflowExecutionFinished +) + +// failAfterNBoundLimiter succeeds (returning ok, nil) for the first n calls to Limit, +// then returns failErr for every call after that. LogEvent and ExecutionResponse are +// both peeked once during trigger-subscription init (before any execution exists) and +// again per execution, so an always-failing fake would break engine initialization +// before execution-time fallback could ever be exercised. +type failAfterNBoundLimiter[N limits.Number] struct { + mu sync.Mutex + calls int + n int + ok N + failErr error +} + +func (f *failAfterNBoundLimiter[N]) Limit(context.Context) (N, error) { + f.mu.Lock() + defer f.mu.Unlock() + f.calls++ + if f.calls > f.n { + var zero N + return zero, f.failErr + } + return f.ok, nil +} + +func (f *failAfterNBoundLimiter[N]) Check(context.Context, N) error { return nil } +func (f *failAfterNBoundLimiter[N]) Close() error { return nil } + +// alwaysFailTimeLimiter fails every Limit/WithTimeout call. Safe to use unconditionally +// for ExecutionTime, which is not read during trigger-subscription init. +type alwaysFailTimeLimiter struct{ err error } + +func (f *alwaysFailTimeLimiter) Limit(context.Context) (time.Duration, error) { return 0, f.err } + +func (f *alwaysFailTimeLimiter) WithTimeout(context.Context) (context.Context, func(), error) { + return nil, nil, f.err +} + +func (f *alwaysFailTimeLimiter) Close() error { return nil } + +// fakeShardResolver reports a fixed shard-ownership verdict, standing in for a real +// ring orchestrator lookup. +type fakeShardResolver struct { + shardID uint32 + found bool + err error +} + +func (f *fakeShardResolver) ResolveShard(context.Context, string, string) (uint32, bool, error) { + return f.shardID, f.found, f.err +} + +func (f *fakeShardResolver) ResolveShards(context.Context, []string, []string) (map[string]uint32, error) { + return nil, nil +} + +// latestV2FinishedEvent returns the most recently emitted v2 WorkflowExecutionFinished +// event, or ok=false if none has been emitted yet. +func latestV2FinishedEvent(t *testing.T, observer beholdertest.Observer) (evt *eventsv2.WorkflowExecutionFinished, ok bool) { + t.Helper() + msgs := observer.Messages(t, "beholder_entity", v2ExecutionFinishedEntity) + if len(msgs) == 0 { + return nil, false + } + evt = &eventsv2.WorkflowExecutionFinished{} + require.NoError(t, proto.Unmarshal(msgs[len(msgs)-1].Body, evt)) + return evt, true +} + +// dropPathHarness is a minimal engine with a single trigger subscription (id_0) +// registered, ready to have a trigger event pushed through eventCh to drive +// startExecution. Callers customize cfg.LocalLimiters / cfg.ShardingEnabled / etc. +// via configure before the harness starts the engine, and set up the second +// Module.Execute expectation (for the per-execution call, if reached) themselves. +type dropPathHarness struct { + module *modulemocks.ModuleV2 + eventCh chan capabilities.TriggerResponse + executionFinishedCh chan string + beholderObserver beholdertest.Observer +} + +func newDropPathHarness(t *testing.T, billingClient *metmocks.BillingClient, configure func(cfg *v2.EngineConfig)) *dropPathHarness { + t.Helper() + + module := modulemocks.NewModuleV2(t) + module.EXPECT().Start() + module.EXPECT().Close() + capreg := regmocks.NewCapabilitiesRegistry(t) + capreg.EXPECT().LocalNode(matches.AnyContext).Return(newNode(t), nil) + + initDoneCh := make(chan error, 1) + subscribedToTriggersCh := make(chan []string, 1) + executionFinishedCh := make(chan string, 1) + + cfg := defaultTestConfig(t, nil) + cfg.Module = module + cfg.CapRegistry = capreg + cfg.BillingClient = billingClient + cfg.OrgResolver = &mockOrgResolver{orgID: "test-org-123"} + cfg.Hooks = v2.LifecycleHooks{ + OnInitialized: func(err error) { + initDoneCh <- err + }, + OnSubscribedToTriggers: func(triggerIDs []string) { + subscribedToTriggersCh <- triggerIDs + }, + OnExecutionFinished: func(executionID string, _ string) { + executionFinishedCh <- executionID + }, + } + beholderObserver := beholdertest.NewObserver(t) + cfg.BeholderEmitter = custmsg.NewLabeler() + + if configure != nil { + configure(cfg) + } + + // Trigger-subscription init always calls Module.Execute once for the Subscribe + // request, regardless of what's under test below. + module.EXPECT().Execute(matches.AnyContext, mock.Anything, mock.Anything).Return(newTriggerSubs(1), nil).Once() + trigger := capmocks.NewTriggerCapability(t) + capreg.EXPECT().GetTrigger(matches.AnyContext, "id_0").Return(trigger, nil) + eventCh := make(chan capabilities.TriggerResponse) + trigger.EXPECT().RegisterTrigger(matches.AnyContext, mock.Anything).Return(eventCh, nil).Once() + trigger.EXPECT().UnregisterTrigger(matches.AnyContext, mock.Anything).Return(nil).Once() + // Reserve-failure drop paths return before the trigger event is ever + // ACKed, so this must not be a hard requirement across all harness users. + trigger.EXPECT().AckEvent(matches.AnyContext, mock.Anything, mock.Anything, mock.Anything).Return(nil).Maybe() + + engine, err := v2.NewEngine(cfg) + require.NoError(t, err) + require.NoError(t, engine.Start(t.Context())) + t.Cleanup(func() { require.NoError(t, engine.Close()) }) + + require.NoError(t, <-initDoneCh) + require.Equal(t, []string{"id_0"}, <-subscribedToTriggersCh) + + return &dropPathHarness{ + module: module, + eventCh: eventCh, + executionFinishedCh: executionFinishedCh, + beholderObserver: beholderObserver, + } +} + +// TestEngine_LimitReadFallback_ExecutesAnyway covers: an execution proceeds to +// completion (instead of being silently dropped) when a limit read fails, +// falling back to the setting's static default. +func TestEngine_LimitReadFallback_ExecutesAnyway(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + testCases := map[string]func(cfg *v2.EngineConfig){ + "ExecutionTime": func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.ExecutionTime = &alwaysFailTimeLimiter{err: errors.New("limit read boom")} + }, + "LogEvent": func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.LogEvent = &failAfterNBoundLimiter[int]{n: 1, ok: 1000, failErr: errors.New("limit read boom")} + }, + "ExecutionResponse": func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.ExecutionResponse = &failAfterNBoundLimiter[config.Size]{n: 1, ok: config.Size(10 * 1024 * 1024), failErr: errors.New("limit read boom")} + }, + } + + for name, breakLimiter := range testCases { //nolint:paralleltest // shares the package-level beholder singleton + t.Run(name, func(t *testing.T) { + billingClient := setupMockBillingClient(t) + harness := newDropPathHarness(t, billingClient, breakLimiter) + + harness.module.EXPECT().Execute(matches.AnyContext, mock.Anything, mock.Anything).Return(nil, nil).Once() + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_" + name}, + } + + executionID := <-harness.executionFinishedCh + require.NotEmpty(t, executionID) + + startedMsgs := harness.beholderObserver.Messages(t, "beholder_entity", v2ExecutionStartedEntity) + assert.NotEmpty(t, startedMsgs, "execution should still emit a Started event despite the limit read failure") + + evt, ok := latestV2FinishedEvent(t, harness.beholderObserver) + require.True(t, ok, "execution should still emit a Finished event despite the limit read failure") + assert.Equal(t, eventsv2.ExecutionStatus_EXECUTION_STATUS_SUCCEEDED, evt.Status) + }) + } +} + +// setupInsufficientFundingBilling returns a billing mock whose ReserveCredits denies +// the reservation (Success: false), the only Reserve failure reachable in practice +// (every other Reserve error fails open inside Reserve itself). expectReceipt controls +// whether SubmitWorkflowReceipt (called from Reports.End) is asserted as called. +func setupInsufficientFundingBilling(t *testing.T, expectReceipt bool) *metmocks.BillingClient { + t.Helper() + billingClient := metmocks.NewBillingClient(t) + billingClient.EXPECT().GetWorkflowExecutionRates(mock.Anything, mock.Anything).Return(&billing.GetWorkflowExecutionRatesResponse{ + RateCards: []*billing.RateCard{ + { + ResourceType: billing.ResourceType_RESOURCE_TYPE_COMPUTE, + MeasurementUnit: billing.MeasurementUnit_MEASUREMENT_UNIT_MILLISECONDS, + UnitsPerCredit: "0.0001", + }, + }, + }, nil) + billingClient.EXPECT().ReserveCredits(mock.Anything, mock.Anything).Return(&billing.ReserveCreditsResponse{Success: false}, nil) + receiptCall := billingClient.EXPECT().SubmitWorkflowReceipt(mock.Anything, mock.Anything).Return(&emptypb.Empty{}, nil) + if expectReceipt { + receiptCall.Once() + } else { + receiptCall.Maybe() + } + return billingClient +} + +// TestEngine_MeteringReserveFailure_SurfacesAsUserError covers: a metering +// Reserve failure (insufficient funding) used to drop the execution before the +// Started/Finished emit points were reached, so the failure never reached the UI. +// It now publishes the Started/Finished pair, attributed to the user (their own +// out-of-credits state), not the platform. +func TestEngine_MeteringReserveFailure_SurfacesAsUserError(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + billingClient := setupInsufficientFundingBilling(t, false) + harness := newDropPathHarness(t, billingClient, nil) + + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_reserve_failure"}, + } + + require.EventuallyWithT(t, func(c *assert.CollectT) { + startedMsgs := harness.beholderObserver.Messages(t, "beholder_entity", v2ExecutionStartedEntity) + assert.NotEmpty(c, startedMsgs) + }, 5*time.Second, 50*time.Millisecond) + + var evt *eventsv2.WorkflowExecutionFinished + require.EventuallyWithT(t, func(c *assert.CollectT) { + got, ok := latestV2FinishedEvent(t, harness.beholderObserver) + if !assert.True(c, ok) { + return + } + evt = got + }, 5*time.Second, 50*time.Millisecond) + + assert.Equal(t, eventsv2.ExecutionStatus_EXECUTION_STATUS_FAILED, evt.Status) + assert.NotEmpty(t, evt.Error) + assert.Equal(t, eventsv2.ClassifiedExecutionStatus_CLASSIFIED_EXECUTION_STATUS_USER_ERROR, evt.ClassifiedStatus) +} + +// TestEngine_MeteringReserveFailure_ReportReleased covers: before this fix, +// meterReports.End was only reached on the happy/normal-error path, so a Reserve +// failure leaked the report; a redelivered trigger event for the same executionID +// would then hit ErrReportExists and run unmetered. SubmitWorkflowReceipt (only +// reachable via Reports.End) being called proves the report was released. +func TestEngine_MeteringReserveFailure_ReportReleased(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + billingClient := setupInsufficientFundingBilling(t, true) + harness := newDropPathHarness(t, billingClient, nil) + + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_report_released"}, + } + + require.EventuallyWithT(t, func(c *assert.CollectT) { + _, ok := latestV2FinishedEvent(t, harness.beholderObserver) + assert.True(c, ok) + }, 5*time.Second, 50*time.Millisecond) + // billingClient's t.Cleanup (registered by metmocks.NewBillingClient) asserts + // SubmitWorkflowReceipt was actually called. +} + +// TestEngine_ShardDenial_StaysSilent is a regression guard: with sharding on, every +// node outside the owning shard denies every execution, so emitting Started/Finished +// there (unlike the other drop paths) would publish a DON-wide failure for a run +// that actually succeeded on the owner. This must stay silent. +func TestEngine_ShardDenial_StaysSilent(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + billingClient := metmocks.NewBillingClient(t) // no billing calls expected: shard check runs before metering + + harness := newDropPathHarness(t, billingClient, func(cfg *v2.EngineConfig) { + cfg.ShardingEnabled = true + cfg.MyShardID = 0 + cfg.ShardResolver = &fakeShardResolver{shardID: 1, found: true} // some other shard owns it + }) + + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_shard_denied"}, + } + + require.Never(t, func() bool { + started := harness.beholderObserver.Messages(t, "beholder_entity", v2ExecutionStartedEntity) + finished := harness.beholderObserver.Messages(t, "beholder_entity", v2ExecutionFinishedEntity) + return len(started) > 0 || len(finished) > 0 + }, 500*time.Millisecond, 25*time.Millisecond) +} From 8cf1b2ccfa79336667cefb82380986c5bb7e8d33 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Thu, 20 Aug 2026 14:09:22 -0300 Subject: [PATCH 02/10] engine: use check instead of limit --- core/services/workflows/v2/engine.go | 23 ++-- .../workflows/v2/engine_drop_paths_test.go | 107 ++++++++++++++++++ 2 files changed, 117 insertions(+), 13 deletions(-) diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index 2906d6c37b1..838f39784be 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -24,6 +24,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/aggregation" "github.com/smartcontractkit/chainlink-common/pkg/capabilities" + "github.com/smartcontractkit/chainlink-common/pkg/config" "github.com/smartcontractkit/chainlink-common/pkg/contexts" "github.com/smartcontractkit/chainlink-common/pkg/custmsg" "github.com/smartcontractkit/chainlink-common/pkg/logger" @@ -1305,24 +1306,20 @@ func (e *Engine) emitUserLogs(ctx context.Context, userLogChan chan *protoevents if e.cfg.DebugMode { e.logger().Debugf("User log: <<<%s>>>, local node timestamp: %s", logLine.Message, logLine.NodeTimestamp) } - err := e.cfg.LocalLimiters.LogEvent.Check(emitCtx, count) - if err != nil { + if err := e.cfg.LocalLimiters.LogEvent.Check(emitCtx, count); err != nil { if errBoundLimited, ok := errors.AsType[limits.ErrorBoundLimited[int]](err); ok { e.logger().Warnw("Max user log events per execution reached, dropping event", "maxEvents", errBoundLimited.Limit, "err", err) return false } - e.logger().Errorw("Failed to get user log event limit", "err", err) - return false - } - maxUserLogLength, err := e.cfg.LocalLimiters.LogLine.Limit(emitCtx) - if err != nil { - logLineLimit := e.cfg.LocalLimiters.defaults().LogLineLimit - e.logger().Errorw("Failed to get user log line limit; falling back to default", "err", err, "default", logLineLimit.DefaultValue) - e.metrics.IncrementLimitReadFallbackCounter(emitCtx, logLineLimit.Key) - maxUserLogLength = logLineLimit.DefaultValue + // A settings read failure should not stop the drain. Fail open instead. + e.logger().Errorw("Failed to check user log event limit; emitting anyway", "err", err) } - if len(logLine.Message) > int(maxUserLogLength) { - logLine.Message = logLine.Message[:maxUserLogLength] + " ...(truncated)" + if err := e.cfg.LocalLimiters.LogLine.Check(emitCtx, config.Size(len(logLine.Message))); err != nil { + if errBoundLimited, ok := errors.AsType[limits.ErrorBoundLimited[config.Size]](err); ok { + logLine.Message = logLine.Message[:errBoundLimited.Limit] + " ...(truncated)" + } else { + e.logger().Errorw("Failed to check user log line limit; emitting untruncated", "err", err) + } } if err := events.EmitUserLogs(emitCtx, executionLabels, []*protoevents.LogLine{logLine}, executionID); err != nil { diff --git a/core/services/workflows/v2/engine_drop_paths_test.go b/core/services/workflows/v2/engine_drop_paths_test.go index 227e41438fa..a92004d6280 100644 --- a/core/services/workflows/v2/engine_drop_paths_test.go +++ b/core/services/workflows/v2/engine_drop_paths_test.go @@ -19,8 +19,11 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/custmsg" "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" regmocks "github.com/smartcontractkit/chainlink-common/pkg/types/core/mocks" + "github.com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host" modulemocks "github.com/smartcontractkit/chainlink-common/pkg/workflows/wasm/host/mocks" billing "github.com/smartcontractkit/chainlink-protos/billing/go" + sdkpb "github.com/smartcontractkit/chainlink-protos/cre/go/sdk" + pb "github.com/smartcontractkit/chainlink-protos/workflows/go/events" eventsv2 "github.com/smartcontractkit/chainlink-protos/workflows/go/v2" capmocks "github.com/smartcontractkit/chainlink/v2/core/capabilities/mocks" workflowEvents "github.com/smartcontractkit/chainlink/v2/core/services/workflows/events" @@ -32,6 +35,7 @@ import ( const ( v2ExecutionStartedEntity = "workflows.v2." + workflowEvents.WorkflowExecutionStarted v2ExecutionFinishedEntity = "workflows.v2." + workflowEvents.WorkflowExecutionFinished + v1UserLogsEntity = "workflows.v1." + workflowEvents.UserLogs ) // failAfterNBoundLimiter succeeds (returning ok, nil) for the first n calls to Limit, @@ -73,6 +77,22 @@ func (f *alwaysFailTimeLimiter) WithTimeout(context.Context) (context.Context, f func (f *alwaysFailTimeLimiter) Close() error { return nil } +// alwaysErrCheckLimiter fails every Check with a plain error, standing in for a settings +// read failure rather than the bound actually being exceeded (which would be an +// ErrorBoundLimited). Used to exercise the fail-open branches in processLogLine. +// +// Limit deliberately still succeeds: LogEvent.Limit is peeked during trigger-subscription +// init to size the user-log channel, so failing it too would break engine startup before +// the Check path under test is ever reached. +type alwaysErrCheckLimiter[N limits.Number] struct { + ok N + err error +} + +func (f *alwaysErrCheckLimiter[N]) Limit(context.Context) (N, error) { return f.ok, nil } +func (f *alwaysErrCheckLimiter[N]) Check(context.Context, N) error { return f.err } +func (f *alwaysErrCheckLimiter[N]) Close() error { return nil } + // fakeShardResolver reports a fixed shard-ownership verdict, standing in for a real // ring orchestrator lookup. type fakeShardResolver struct { @@ -102,6 +122,22 @@ func latestV2FinishedEvent(t *testing.T, observer beholdertest.Observer) (evt *e return evt, true } +// userLogLines returns every user log line emitted so far via the v1 UserLogs event. +func userLogLines(t *testing.T, observer beholdertest.Observer) []string { + t.Helper() + var lines []string + for _, msg := range observer.Messages(t, "beholder_entity", v1UserLogsEntity) { + var payload pb.UserLogs + if err := proto.Unmarshal(msg.Body, &payload); err != nil { + continue + } + for _, l := range payload.LogLines { + lines = append(lines, l.Message) + } + } + return lines +} + // dropPathHarness is a minimal engine with a single trigger subscription (id_0) // registered, ready to have a trigger event pushed through eventCh to drive // startExecution. Callers customize cfg.LocalLimiters / cfg.ShardingEnabled / etc. @@ -319,3 +355,74 @@ func TestEngine_ShardDenial_StaysSilent(t *testing.T) { //nolint:paralleltest // return len(started) > 0 || len(finished) > 0 }, 500*time.Millisecond, 25*time.Millisecond) } + +// TestEngine_UserLog_LogLineCheck covers the LogLine Limit()->Check() swap: the bound is +// now enforced by the limiter (so it records usage/denied), truncation is driven by the +// bound carried on the returned ErrorBoundLimited, and a settings read failure fails open +// by emitting the line untruncated instead of falling back to a hardcoded default. +func TestEngine_UserLog_LogLineCheck(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + t.Run("over-long message truncated to the bound", func(t *testing.T) { //nolint:paralleltest // shares the package-level beholder singleton + harness := newDropPathHarness(t, setupMockBillingClient(t), func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.LogLine = limits.NewUpperBoundLimiter[config.Size](10) + }) + + harness.module.EXPECT().Execute(matches.AnyContext, mock.Anything, mock.Anything). + Run(func(_ context.Context, _ *sdkpb.ExecuteRequest, executor host.ExecutionHelper) { + require.NoError(t, executor.EmitUserLog("0123456789ABCDEF")) + }). + Return(nil, nil).Once() + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_truncated"}, + } + + require.EventuallyWithT(t, func(c *assert.CollectT) { + assert.Contains(c, userLogLines(t, harness.beholderObserver), "0123456789 ...(truncated)") + }, 5*time.Second, 50*time.Millisecond) + }) + + t.Run("settings read failure emits untruncated", func(t *testing.T) { //nolint:paralleltest // shares the package-level beholder singleton + harness := newDropPathHarness(t, setupMockBillingClient(t), func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.LogLine = &alwaysErrCheckLimiter[config.Size]{err: errors.New("settings unavailable")} + }) + + const message = "this message is not over any real bound" + harness.module.EXPECT().Execute(matches.AnyContext, mock.Anything, mock.Anything). + Run(func(_ context.Context, _ *sdkpb.ExecuteRequest, executor host.ExecutionHelper) { + require.NoError(t, executor.EmitUserLog(message)) + }). + Return(nil, nil).Once() + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_untruncated"}, + } + + require.EventuallyWithT(t, func(c *assert.CollectT) { + assert.Contains(c, userLogLines(t, harness.beholderObserver), message) + }, 5*time.Second, 50*time.Millisecond) + }) +} + +// TestEngine_UserLog_LogEventCheckFailure_KeepsDraining covers the fail-open fix in the +// LogEvent.Check branch: a settings read failure (a plain error, not ErrorBoundLimited) +// used to return false from processLogLine, which ended the emitUserLogs drain goroutine +// and silently discarded every remaining user log for the execution. Both lines must land. +func TestEngine_UserLog_LogEventCheckFailure_KeepsDraining(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + harness := newDropPathHarness(t, setupMockBillingClient(t), func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.LogEvent = &alwaysErrCheckLimiter[int]{ok: 1000, err: errors.New("settings unavailable")} + }) + + harness.module.EXPECT().Execute(matches.AnyContext, mock.Anything, mock.Anything). + Run(func(_ context.Context, _ *sdkpb.ExecuteRequest, executor host.ExecutionHelper) { + require.NoError(t, executor.EmitUserLog("first line")) + require.NoError(t, executor.EmitUserLog("second line")) + }). + Return(nil, nil).Once() + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_log_event_check_fails"}, + } + + require.EventuallyWithT(t, func(c *assert.CollectT) { + lines := userLogLines(t, harness.beholderObserver) + assert.Contains(c, lines, "first line") + assert.Contains(c, lines, "second line") + }, 5*time.Second, 50*time.Millisecond) +} From e1e00116bd37250832cd7ebbfe1c2acf5d26eea8 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Thu, 20 Aug 2026 14:16:06 -0300 Subject: [PATCH 03/10] move to gate utils --- .../executable/request/server_request.go | 3 +- core/capabilities/vault/jwt_based_auth.go | 3 +- core/capabilities/vault/zone_b_restriction.go | 6 +- .../gateway/handlers/vault/aggregator.go | 8 +- .../ocr2/plugins/vault/plugin_utils.go | 11 +-- core/utils/crelimits/gate.go | 46 +++++++++ core/utils/crelimits/gate_test.go | 95 +++++++++++++++++++ 7 files changed, 154 insertions(+), 18 deletions(-) create mode 100644 core/utils/crelimits/gate.go create mode 100644 core/utils/crelimits/gate_test.go diff --git a/core/capabilities/remote/executable/request/server_request.go b/core/capabilities/remote/executable/request/server_request.go index e64aa77c425..89d256a5a93 100644 --- a/core/capabilities/remote/executable/request/server_request.go +++ b/core/capabilities/remote/executable/request/server_request.go @@ -22,6 +22,7 @@ import ( "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote" "github.com/smartcontractkit/chainlink/v2/core/capabilities/remote/types" p2ptypes "github.com/smartcontractkit/chainlink/v2/core/services/p2p/types" + "github.com/smartcontractkit/chainlink/v2/core/utils/crelimits" ) type srMetrics struct { @@ -396,7 +397,7 @@ func executeCapabilityRequest(ctx context.Context, lggr logger.Logger, capabilit // calling DON so it cannot be spoofed. All F+1 aggregated requests share this // payload (WorkflowDonID is part of the request hash), so a single check here // covers the quorum. The gate is guaranteed non-nil by NewServerRequest. - enabled, gerr := workflowDONBindingGate.Limit(ctx) + enabled, gerr := crelimits.GateOpen(ctx, workflowDONBindingGate) if gerr != nil { lggr.Errorw("failed to evaluate workflow DON binding gate", "err", gerr) return nil, errors.New("failed to evaluate workflow DON binding gate") diff --git a/core/capabilities/vault/jwt_based_auth.go b/core/capabilities/vault/jwt_based_auth.go index f1aa497fa78..734badb4d1d 100644 --- a/core/capabilities/vault/jwt_based_auth.go +++ b/core/capabilities/vault/jwt_based_auth.go @@ -23,6 +23,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/services" "github.com/smartcontractkit/chainlink-common/pkg/settings/cresettings" "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" + "github.com/smartcontractkit/chainlink/v2/core/utils/crelimits" ) var ( @@ -220,7 +221,7 @@ func (v *jwtBasedAuth) close() error { // AuthorizeRequest verifies JWTBasedAuth state and token claims, and returns a common AuthResult. func (v *jwtBasedAuth) AuthorizeRequest(ctx context.Context, req jsonrpc.Request[json.RawMessage]) (*AuthResult, error) { - isEnabled, err := v.authEnabledGate.Limit(ctx) + isEnabled, err := crelimits.GateOpen(ctx, v.authEnabledGate) if err != nil { v.lggr.Errorw("failed to resolve JWTBasedAuth gate", "method", req.Method, "requestID", req.ID, "error", err) return nil, fmt.Errorf("failed to resolve JWTBasedAuth gate: %w", err) diff --git a/core/capabilities/vault/zone_b_restriction.go b/core/capabilities/vault/zone_b_restriction.go index 2faefb919e2..9bba3ecfee1 100644 --- a/core/capabilities/vault/zone_b_restriction.go +++ b/core/capabilities/vault/zone_b_restriction.go @@ -12,6 +12,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/settings/cresettings" "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" "github.com/smartcontractkit/chainlink-common/pkg/types/core" + "github.com/smartcontractkit/chainlink/v2/core/utils/crelimits" ) // zoneBFamily is the DON family (in the capabilities registry) identifying the @@ -69,7 +70,10 @@ func newZoneBRestrictor(lggr logger.Logger, limitsFactory limits.Factory, capabi // resolves to a zone-b DON. The owner is read from ctx, which must already carry // the (normalized) CRE owner via RequestMetadata.ContextWithCRE. func (z *zoneBRestrictor) enforce(ctx context.Context, workflowDonID uint32) error { - enabled, err := z.restrictEnabled.Limit(ctx) + // GateOpen, not GateAllows: a gate read failure must stay fail-closed here. The + // gate being *closed* disables the restriction, so treating an unevaluatable gate + // as closed would silently permit the read this function exists to deny. + enabled, err := crelimits.GateOpen(ctx, z.restrictEnabled) if err != nil { return fmt.Errorf("could not evaluate zone-b vault read restriction gate: %w", err) } diff --git a/core/services/gateway/handlers/vault/aggregator.go b/core/services/gateway/handlers/vault/aggregator.go index f12106e4f1d..7ca11f0b4aa 100644 --- a/core/services/gateway/handlers/vault/aggregator.go +++ b/core/services/gateway/handlers/vault/aggregator.go @@ -23,6 +23,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" "github.com/smartcontractkit/chainlink/v2/core/capabilities/vault/vaulttypes" "github.com/smartcontractkit/chainlink/v2/core/capabilities/vault/vaultutils" + "github.com/smartcontractkit/chainlink/v2/core/utils/crelimits" ) var errSignedPayloadRequestIDMismatch = errors.New("signed payload request id mismatch") @@ -55,12 +56,7 @@ func methodSupportsSignedOCRValidation(method string) bool { } func (a *baseAggregator) signedResponseRequestIDEnabled(ctx context.Context, l logger.Logger) bool { - allowed, err := a.signedResponseRequestIDGate.Limit(ctx) - if err != nil { - l.Errorw("unexpected error evaluating CRE gate", "gate", "VaultSignedResponseRequestIDEnabled", "error", err) - return false - } - return allowed + return crelimits.GateAllows(ctx, l, a.signedResponseRequestIDGate, "VaultSignedResponseRequestIDEnabled") } func (a *baseAggregator) Aggregate(ctx context.Context, l logger.Logger, requestID string, resps map[string]jsonrpc.Response[json.RawMessage], currResp *jsonrpc.Response[json.RawMessage]) (*jsonrpc.Response[json.RawMessage], error) { diff --git a/core/services/ocr2/plugins/vault/plugin_utils.go b/core/services/ocr2/plugins/vault/plugin_utils.go index 3b83828ecfb..4978036e9b1 100644 --- a/core/services/ocr2/plugins/vault/plugin_utils.go +++ b/core/services/ocr2/plugins/vault/plugin_utils.go @@ -15,20 +15,13 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" "github.com/smartcontractkit/chainlink/v2/core/capabilities/vault/vaulttypes" "github.com/smartcontractkit/chainlink/v2/core/logger" + "github.com/smartcontractkit/chainlink/v2/core/utils/crelimits" ) // gateAllows reports whether the given CRE gate allows the gated behavior. // When evaluation errors for reasons other than ErrorNotAllowed, it logs an error and returns false. func gateAllows(ctx context.Context, lggr logger.Logger, gate limits.GateLimiter, gateName string) bool { - err := gate.AllowErr(ctx) - if err == nil { - return true - } - if errors.Is(err, limits.ErrorNotAllowed{}) { - return false - } - lggr.Errorw("unexpected error evaluating CRE gate", "gate", gateName, "error", err) - return false + return crelimits.GateAllows(ctx, lggr, gate, gateName) } // resolveVaultOCRBoundLimitInt builds a short-lived BoundLimiter for an integer-sized CRE setting, reads Limit once, and closes the limiter. diff --git a/core/utils/crelimits/gate.go b/core/utils/crelimits/gate.go new file mode 100644 index 00000000000..85718a08f3f --- /dev/null +++ b/core/utils/crelimits/gate.go @@ -0,0 +1,46 @@ +package crelimits + +import ( + "context" + "errors" + + "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" +) + +type ErrorLogger interface { + Errorw(msg string, keysAndValues ...any) +} + +// GateOpen reports whether gate is open. +// +// Prefer this over calling [limits.GateLimiter.Limit] directly: Limit exists to hand +// out a raw value and only records the limit gauge, whereas AllowErr (used here) is the +// enforcement method and records the limiter's usage/denied metrics. GateOpen keeps +// Limit's ergonomics — a closed gate is (false, nil), so only a genuine evaluation +// failure returns a non-nil error and callers that fail closed can keep doing so. +func GateOpen(ctx context.Context, gate limits.GateLimiter) (bool, error) { + err := gate.AllowErr(ctx) + switch { + case err == nil: + return true, nil + case errors.Is(err, limits.ErrorNotAllowed{}): + return false, nil + default: + return false, err + } +} + +// GateAllows is [GateOpen] for callers that treat an unevaluatable gate as closed. +// The evaluation failure is logged at error level and reported as false. +// +// Only use this where "closed" is the safe outcome. If a gate read failure must abort +// the operation instead (a fail-closed gate whose closed state *permits* something), +// use GateOpen and handle the error explicitly. +func GateAllows(ctx context.Context, lggr ErrorLogger, gate limits.GateLimiter, gateName string) bool { + open, err := GateOpen(ctx, gate) + if err != nil { + lggr.Errorw("unexpected error evaluating CRE gate", "gate", gateName, "error", err) + return false + } + return open +} diff --git a/core/utils/crelimits/gate_test.go b/core/utils/crelimits/gate_test.go new file mode 100644 index 00000000000..b807fde3c5c --- /dev/null +++ b/core/utils/crelimits/gate_test.go @@ -0,0 +1,95 @@ +package crelimits_test + +import ( + "context" + "errors" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/smartcontractkit/chainlink-common/pkg/settings/limits" + "github.com/smartcontractkit/chainlink/v2/core/utils/crelimits" +) + +// errGate is a GateLimiter whose AllowErr always fails with a given error, standing in +// for a settings read failure (as opposed to limits.ErrorNotAllowed, which means the +// gate evaluated fine and is closed). +type errGate struct{ err error } + +func (g errGate) Limit(context.Context) (bool, error) { return false, g.err } +func (g errGate) AllowErr(context.Context) error { return g.err } +func (g errGate) Close() error { return nil } + +type recordingLogger struct{ calls int } + +func (l *recordingLogger) Errorw(string, ...any) { l.calls++ } + +func TestGateOpen(t *testing.T) { + t.Parallel() + + readErr := errors.New("settings unavailable") + + testCases := []struct { + name string + gate limits.GateLimiter + wantOpen bool + wantErr error + }{ + {name: "open gate", gate: limits.NewGateLimiter(true), wantOpen: true}, + {name: "closed gate is not an error", gate: limits.NewGateLimiter(false), wantOpen: false}, + {name: "read failure surfaces", gate: errGate{err: readErr}, wantOpen: false, wantErr: readErr}, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + open, err := crelimits.GateOpen(t.Context(), tc.gate) + if tc.wantErr != nil { + require.ErrorIs(t, err, tc.wantErr) + } else { + require.NoError(t, err) + } + assert.Equal(t, tc.wantOpen, open) + }) + } +} + +// TestGateOpen_ClosedIsDistinctFromUnevaluatable is the property the fail-closed call +// sites depend on: a closed gate must not look like a read failure, and vice versa. +func TestGateOpen_ClosedIsDistinctFromUnevaluatable(t *testing.T) { + t.Parallel() + + closedOpen, closedErr := crelimits.GateOpen(t.Context(), limits.NewGateLimiter(false)) + require.NoError(t, closedErr, "a closed gate is a normal outcome, not an error") + assert.False(t, closedOpen) + + failedOpen, failedErr := crelimits.GateOpen(t.Context(), errGate{err: errors.New("boom")}) + require.Error(t, failedErr, "an unevaluatable gate must be distinguishable so callers can fail closed") + assert.False(t, failedOpen) +} + +func TestGateAllows(t *testing.T) { + t.Parallel() + + t.Run("open gate allows without logging", func(t *testing.T) { + t.Parallel() + lggr := &recordingLogger{} + assert.True(t, crelimits.GateAllows(t.Context(), lggr, limits.NewGateLimiter(true), "TestGate")) + assert.Zero(t, lggr.calls) + }) + + t.Run("closed gate denies without logging", func(t *testing.T) { + t.Parallel() + lggr := &recordingLogger{} + assert.False(t, crelimits.GateAllows(t.Context(), lggr, limits.NewGateLimiter(false), "TestGate")) + assert.Zero(t, lggr.calls, "a closed gate is expected, not an unexpected error") + }) + + t.Run("read failure denies and logs", func(t *testing.T) { + t.Parallel() + lggr := &recordingLogger{} + assert.False(t, crelimits.GateAllows(t.Context(), lggr, errGate{err: errors.New("boom")}, "TestGate")) + assert.Equal(t, 1, lggr.calls) + }) +} From 12bc716bba0d4c990051154950a1192227460b92 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Thu, 20 Aug 2026 14:33:11 -0300 Subject: [PATCH 04/10] use bound --- core/services/workflows/v2/config.go | 9 +++++---- core/services/workflows/v2/engine.go | 21 ++++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/core/services/workflows/v2/config.go b/core/services/workflows/v2/config.go index 77b896c9063..0517f8788d9 100644 --- a/core/services/workflows/v2/config.go +++ b/core/services/workflows/v2/config.go @@ -3,6 +3,7 @@ package v2 import ( "errors" "fmt" + "time" "github.com/jonboulle/clockwork" @@ -87,7 +88,7 @@ type EngineLimiters struct { TriggerRegistrationsTime limits.TimeLimiter TriggerSubscription limits.BoundLimiter[int] TriggerEventQueue limits.QueueLimiter[enqueuedTriggerEvent] - TriggerEventQueueTime limits.TimeLimiter + TriggerEventMaxAge limits.BoundLimiter[time.Duration] ExecutionConcurrency limits.ResourcePoolLimiter[int] WASMBinarySize limits.BoundLimiter[config.Size] @@ -172,7 +173,7 @@ func (l *EngineLimiters) init(lf limits.Factory, cfgFn func(*cresettings.Workflo if err != nil { return } - l.TriggerEventQueueTime, err = lf.MakeTimeLimiter(cfg.TriggerEventQueueTimeout) + l.TriggerEventMaxAge, err = limits.MakeUpperBoundLimiter(lf, cfg.TriggerEventQueueTimeout) if err != nil { return } @@ -309,7 +310,7 @@ func (l *EngineLimiters) EvictWorkflow(workflowID string) error { l.TriggerRegistrationsTime, l.TriggerSubscription, l.TriggerEventQueue, - l.TriggerEventQueueTime, + l.TriggerEventMaxAge, l.ExecutionConcurrency, l.WASMBinarySize, l.WASMMemorySize, @@ -353,7 +354,7 @@ func (l *EngineLimiters) Close() error { l.TriggerRegistrationsTime, l.TriggerSubscription, l.TriggerEventQueue, - l.TriggerEventQueueTime, + l.TriggerEventMaxAge, l.ExecutionConcurrency, l.WASMBinarySize, l.WASMMemorySize, diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index 838f39784be..b3341df2dd3 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -694,17 +694,16 @@ func (e *Engine) handleAllTriggerEvents(ctx context.Context) { eventAge := e.cfg.Clock.Now().Sub(queueHead.timestamp) e.logger().Debugw("Popped a trigger event from the queue", "eventID", eventID, "eventAgeMs", eventAge.Milliseconds()) triggerMetricLabels.RecordTriggerEventQueueWaitSeconds(ctx, eventAge.Seconds()) - triggerEventMaxAge, err := e.cfg.LocalLimiters.TriggerEventQueueTime.Limit(ctx) - if err != nil { - triggerEventMaxAge = e.cfg.LocalLimiters.defaults().TriggerEventQueueTimeout.DefaultValue - e.logger().Errorw("Failed to get trigger event queue time limit; falling back to default", "err", err, "default", triggerEventMaxAge) - triggerMetricLabels.IncrementLimitReadFallbackCounter(ctx, e.cfg.LocalLimiters.defaults().TriggerEventQueueTimeout.Key) - } - if eventAge > triggerEventMaxAge { - e.logger().Warnw("Trigger event is too old, skipping execution", "triggerID", queueHead.triggerCapID, "eventID", eventID, "eventAgeMs", eventAge.Milliseconds()) - triggerMetricLabels.IncrementTriggerEventExpiredCounter(ctx) - triggerMetricLabels.IncrementTriggerEventDroppedTotal(ctx, monitoring.TriggerDropReasonExpired) - continue + if ageErr := e.cfg.LocalLimiters.TriggerEventMaxAge.Check(ctx, eventAge); ageErr != nil { + if errBoundLimited, ok := errors.AsType[limits.ErrorBoundLimited[time.Duration]](ageErr); ok { + e.logger().Warnw("Trigger event is too old, skipping execution", "triggerID", queueHead.triggerCapID, "eventID", eventID, "eventAgeMs", eventAge.Milliseconds(), "maxAgeMs", errBoundLimited.Limit.Milliseconds()) + triggerMetricLabels.IncrementTriggerEventExpiredCounter(ctx) + triggerMetricLabels.IncrementTriggerEventDroppedTotal(ctx, monitoring.TriggerDropReasonExpired) + continue + } + // A settings read failure is not an expiry: run the execution rather than + // dropping a customer's trigger event over a transient config read. + e.logger().Errorw("Failed to check trigger event queue age limit; proceeding with execution", "err", ageErr) } semWaitStart := e.cfg.Clock.Now() free, err := e.executionsSemaphore.Wait(ctx, 1) // block if too many concurrent workflow executions From 3547e87d502b5aacdbda12f0e1d1914be8bf390d Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Thu, 20 Aug 2026 14:41:00 -0300 Subject: [PATCH 05/10] cleanup --- core/capabilities/vault/zone_b_restriction.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/core/capabilities/vault/zone_b_restriction.go b/core/capabilities/vault/zone_b_restriction.go index 9bba3ecfee1..6fb0252a6cb 100644 --- a/core/capabilities/vault/zone_b_restriction.go +++ b/core/capabilities/vault/zone_b_restriction.go @@ -70,9 +70,6 @@ func newZoneBRestrictor(lggr logger.Logger, limitsFactory limits.Factory, capabi // resolves to a zone-b DON. The owner is read from ctx, which must already carry // the (normalized) CRE owner via RequestMetadata.ContextWithCRE. func (z *zoneBRestrictor) enforce(ctx context.Context, workflowDonID uint32) error { - // GateOpen, not GateAllows: a gate read failure must stay fail-closed here. The - // gate being *closed* disables the restriction, so treating an unevaluatable gate - // as closed would silently permit the read this function exists to deny. enabled, err := crelimits.GateOpen(ctx, z.restrictEnabled) if err != nil { return fmt.Errorf("could not evaluate zone-b vault read restriction gate: %w", err) From cd0c37a43459951965756caeba491ac2c10141ba Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Thu, 20 Aug 2026 15:41:03 -0300 Subject: [PATCH 06/10] add metric for unenforced limit checks --- .../workflows/monitoring/monitoring.go | 23 ++++- core/services/workflows/v2/engine.go | 3 + .../workflows/v2/engine_limit_metrics_test.go | 92 +++++++++++++++++++ 3 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 core/services/workflows/v2/engine_limit_metrics_test.go diff --git a/core/services/workflows/monitoring/monitoring.go b/core/services/workflows/monitoring/monitoring.go index 1954950b650..9ab772e1fbc 100644 --- a/core/services/workflows/monitoring/monitoring.go +++ b/core/services/workflows/monitoring/monitoring.go @@ -85,7 +85,8 @@ type EngineMetrics struct { orgIDMissingCounter metric.Int64Counter - limitReadFallbackTotal metric.Int64Counter + limitReadFallbackTotal metric.Int64Counter + limitCheckUnenforcedTotal metric.Int64Counter } func InitMonitoringResources() (em *EngineMetrics, err error) { @@ -459,6 +460,14 @@ func InitMonitoringResources() (em *EngineMetrics, err error) { return nil, fmt.Errorf("failed to register limit read fallback counter: %w", err) } + em.limitCheckUnenforcedTotal, err = beholder.GetMeter().Int64Counter( + "platform_engine_limit_check_unenforced_total", + metric.WithDescription("Limit checks that could not be evaluated, so the limit went unenforced (failed open), by limitKey"), + ) + if err != nil { + return nil, fmt.Errorf("failed to register limit check unenforced counter: %w", err) + } + return em, nil } @@ -842,3 +851,15 @@ func (c WorkflowsMetricLabeler) IncrementLimitReadFallbackCounter(ctx context.Co otelLabels := beholder.OtelAttributes(lc.Labels).AsStringAttributes() lc.em.limitReadFallbackTotal.Add(ctx, 1, metric.WithAttributes(otelLabels...)) } + +// IncrementLimitCheckUnenforcedCounter records one limit Check that could not be +// evaluated (a settings read failure rather than the bound being exceeded), so the +// limit was skipped and the operation allowed through. Distinct from +// IncrementLimitReadFallbackCounter: there is no default to substitute here, the limit +// simply went unenforced, so a non-zero rate means a limit is not being applied. +// limitKey should be the canonical settings.Setting.Key for the limit that failed. +func (c WorkflowsMetricLabeler) IncrementLimitCheckUnenforcedCounter(ctx context.Context, limitKey string) { + lc := c.With(platform.KeyLimitKey, limitKey) + otelLabels := beholder.OtelAttributes(lc.Labels).AsStringAttributes() + lc.em.limitCheckUnenforcedTotal.Add(ctx, 1, metric.WithAttributes(otelLabels...)) +} diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index b3341df2dd3..bfae7c42b4a 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -704,6 +704,7 @@ func (e *Engine) handleAllTriggerEvents(ctx context.Context) { // A settings read failure is not an expiry: run the execution rather than // dropping a customer's trigger event over a transient config read. e.logger().Errorw("Failed to check trigger event queue age limit; proceeding with execution", "err", ageErr) + triggerMetricLabels.IncrementLimitCheckUnenforcedCounter(ctx, e.cfg.LocalLimiters.defaults().TriggerEventQueueTimeout.Key) } semWaitStart := e.cfg.Clock.Now() free, err := e.executionsSemaphore.Wait(ctx, 1) // block if too many concurrent workflow executions @@ -1312,12 +1313,14 @@ func (e *Engine) emitUserLogs(ctx context.Context, userLogChan chan *protoevents } // A settings read failure should not stop the drain. Fail open instead. e.logger().Errorw("Failed to check user log event limit; emitting anyway", "err", err) + e.metrics.IncrementLimitCheckUnenforcedCounter(emitCtx, e.cfg.LocalLimiters.defaults().LogEventLimit.Key) } if err := e.cfg.LocalLimiters.LogLine.Check(emitCtx, config.Size(len(logLine.Message))); err != nil { if errBoundLimited, ok := errors.AsType[limits.ErrorBoundLimited[config.Size]](err); ok { logLine.Message = logLine.Message[:errBoundLimited.Limit] + " ...(truncated)" } else { e.logger().Errorw("Failed to check user log line limit; emitting untruncated", "err", err) + e.metrics.IncrementLimitCheckUnenforcedCounter(emitCtx, e.cfg.LocalLimiters.defaults().LogLineLimit.Key) } } diff --git a/core/services/workflows/v2/engine_limit_metrics_test.go b/core/services/workflows/v2/engine_limit_metrics_test.go new file mode 100644 index 00000000000..e1ab48903ad --- /dev/null +++ b/core/services/workflows/v2/engine_limit_metrics_test.go @@ -0,0 +1,92 @@ +package v2 + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/attribute" + sdkmetric "go.opentelemetry.io/otel/sdk/metric" + "go.opentelemetry.io/otel/sdk/metric/metricdata" + + "github.com/smartcontractkit/chainlink-common/pkg/metrics" + "github.com/smartcontractkit/chainlink/v2/core/services/workflows/monitoring" +) + +// collectCounterByAttr sums the named counter and returns the values observed for +// attrKey. Companion to collectCounterValue (engine_org_id_missing_test.go), which +// reads the "reason" attribute instead. +func collectCounterByAttr(t *testing.T, reader *sdkmetric.ManualReader, name, attrKey string) (int64, []string) { + t.Helper() + + var rm metricdata.ResourceMetrics + require.NoError(t, reader.Collect(context.Background(), &rm)) + + var total int64 + var attrs []string + for _, sm := range rm.ScopeMetrics { + for _, m := range sm.Metrics { + if m.Name != name { + continue + } + data, ok := m.Data.(metricdata.Sum[int64]) + require.True(t, ok, "expected Sum[int64] for %s, got %T", name, m.Data) + for _, dp := range data.DataPoints { + total += dp.Value + if v, ok := dp.Attributes.Value(attribute.Key(attrKey)); ok { + attrs = append(attrs, v.AsString()) + } + } + } + } + return total, attrs +} + +// TestEngine_LimitDegradationCounters covers the two ways a CRE settings read failure +// degrades a limiter at a call site, which are tracked separately on purpose: +// +// - read fallback: the limit could not be read, so the static default was substituted. +// The limit is still applied. +// - check unenforced: the Check could not be evaluated, so the limit was skipped and +// the operation allowed through. The limit is NOT applied, which is the more serious +// of the two and warrants its own alert rather than a label on the other counter. +// +//nolint:paralleltest // setupTestMeter swaps the global beholder client +func TestEngine_LimitDegradationCounters(t *testing.T) { + const ( + unenforcedCounter = "platform_engine_limit_check_unenforced_total" + fallbackCounter = "platform_engine_limit_read_fallback_total" + limitKeyAttr = "limitKey" + ) + + t.Run("check unenforced records the limit key", func(t *testing.T) { + reader := setupTestMeter(t) + em, err := monitoring.InitMonitoringResources() + require.NoError(t, err) + labeler := monitoring.NewWorkflowsMetricLabeler(metrics.NewLabeler(), em) + + labeler.IncrementLimitCheckUnenforcedCounter(t.Context(), "PerWorkflow.LogLineLimit") + labeler.IncrementLimitCheckUnenforcedCounter(t.Context(), "PerWorkflow.LogEventLimit") + + total, keys := collectCounterByAttr(t, reader, unenforcedCounter, limitKeyAttr) + assert.Equal(t, int64(2), total) + assert.ElementsMatch(t, []string{"PerWorkflow.LogLineLimit", "PerWorkflow.LogEventLimit"}, keys) + }) + + t.Run("the two degradation modes are separate series", func(t *testing.T) { + reader := setupTestMeter(t) + em, err := monitoring.InitMonitoringResources() + require.NoError(t, err) + labeler := monitoring.NewWorkflowsMetricLabeler(metrics.NewLabeler(), em) + + labeler.IncrementLimitReadFallbackCounter(t.Context(), "PerWorkflow.ExecutionTimeout") + + unenforced, _ := collectCounterByAttr(t, reader, unenforcedCounter, limitKeyAttr) + fallback, fallbackKeys := collectCounterByAttr(t, reader, fallbackCounter, limitKeyAttr) + + assert.Equal(t, int64(1), fallback) + assert.Equal(t, []string{"PerWorkflow.ExecutionTimeout"}, fallbackKeys) + assert.Zero(t, unenforced, "a read fallback must not be counted as an unenforced check") + }) +} From 61fe68da9a91fbdc2f17c955d94a35f3e5e09923 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Tue, 25 Aug 2026 11:48:56 -0300 Subject: [PATCH 07/10] engine: rely on limiter for default on read failure --- .../workflows/monitoring/monitoring.go | 6 +- core/services/workflows/v2/config.go | 17 ----- core/services/workflows/v2/engine.go | 63 +++++++++---------- .../workflows/v2/engine_drop_paths_test.go | 37 +++++++++-- 4 files changed, 65 insertions(+), 58 deletions(-) diff --git a/core/services/workflows/monitoring/monitoring.go b/core/services/workflows/monitoring/monitoring.go index 9ab772e1fbc..1289af6952d 100644 --- a/core/services/workflows/monitoring/monitoring.go +++ b/core/services/workflows/monitoring/monitoring.go @@ -843,9 +843,9 @@ func (c WorkflowsMetricLabeler) IncrementOrgIDMissingCounter(ctx context.Context c.em.orgIDMissingCounter.Add(ctx, 1, metric.WithAttributes(otelLabels...)) } -// IncrementLimitReadFallbackCounter records one limit read that failed and fell -// back to its static default instead of dropping the execution/event. limitKey -// should be the canonical settings.Setting.Key for the limit that failed. +// IncrementLimitReadFallbackCounter records one limit read that failed and fell back +// to a default instead of dropping the execution/event. limitKey should be the +// canonical settings.Setting.Key for the limit that failed. func (c WorkflowsMetricLabeler) IncrementLimitReadFallbackCounter(ctx context.Context, limitKey string) { lc := c.With(platform.KeyLimitKey, limitKey) otelLabels := beholder.OtelAttributes(lc.Labels).AsStringAttributes() diff --git a/core/services/workflows/v2/config.go b/core/services/workflows/v2/config.go index 0517f8788d9..b5e6c31259d 100644 --- a/core/services/workflows/v2/config.go +++ b/core/services/workflows/v2/config.go @@ -120,22 +120,6 @@ type EngineLimiters struct { ConfidentialWorkflowsEnabled limits.GateLimiter CentralizedWorkflowOwnerVerificationEnabled limits.GateLimiter DONTimeRequestTimeout limits.TimeLimiter - - // settingDefaults is the effective limit configuration (package defaults with - // cfgFn applied) these limiters were built from. Used to fail soft with the - // right default when a Limit() read errors. nil when EngineLimiters was - // assembled directly (e.g. in tests) rather than via NewLimiters. - settingDefaults *cresettings.Workflows -} - -// defaults returns the effective limit settings these limiters were built from, -// falling back to the package defaults when the struct was assembled directly -// rather than through NewLimiters. -func (l *EngineLimiters) defaults() *cresettings.Workflows { - if l == nil || l.settingDefaults == nil { - return &cresettings.Default.PerWorkflow - } - return l.settingDefaults } // NewLimiters returns a new set of EngineLimiters based on the default configuration, and optionally modified by cfgFn. @@ -152,7 +136,6 @@ func (l *EngineLimiters) init(lf limits.Factory, cfgFn func(*cresettings.Workflo if cfgFn != nil { cfgFn(&cfg) } - l.settingDefaults = &cfg l.ExecutionResponse, err = limits.MakeUpperBoundLimiter(lf, cfg.ExecutionResponseLimit) if err != nil { return diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index bfae7c42b4a..8993074ab53 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -704,7 +704,7 @@ func (e *Engine) handleAllTriggerEvents(ctx context.Context) { // A settings read failure is not an expiry: run the execution rather than // dropping a customer's trigger event over a transient config read. e.logger().Errorw("Failed to check trigger event queue age limit; proceeding with execution", "err", ageErr) - triggerMetricLabels.IncrementLimitCheckUnenforcedCounter(ctx, e.cfg.LocalLimiters.defaults().TriggerEventQueueTimeout.Key) + triggerMetricLabels.IncrementLimitCheckUnenforcedCounter(ctx, cresettings.Default.PerWorkflow.TriggerEventQueueTimeout.Key) } semWaitStart := e.cfg.Clock.Now() free, err := e.executionsSemaphore.Wait(ctx, 1) // block if too many concurrent workflow executions @@ -915,12 +915,14 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue e.deductStandardBalances(ctx, meteringReport) } + // WithTimeout returns a usable ctx/cancel even on a read failure; err is advisory. execCtx, execCancel, err := e.cfg.LocalLimiters.ExecutionTime.WithTimeout(ctx) if err != nil { - executionTimeout := e.cfg.LocalLimiters.defaults().ExecutionTimeout - lggr.Errorw("Failed to get execution time limit; falling back to default", "err", err, "default", executionTimeout.DefaultValue) - e.metrics.IncrementLimitReadFallbackCounter(ctx, executionTimeout.Key) - execCtx, execCancel = context.WithTimeout(ctx, executionTimeout.DefaultValue) + lggr.Errorw("Failed to get execution time limit; proceeding with last known/default timeout", "err", err) + e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.ExecutionTimeout.Key) + if execCtx == nil { // only nil when there's no tenant to resolve a limit for at all + execCtx, execCancel = context.WithTimeout(ctx, cresettings.Default.PerWorkflow.ExecutionTimeout.DefaultValue) + } } defer execCancel() triggerCapID := wrappedTriggerEvent.triggerCapID @@ -938,10 +940,8 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue // (called per log line in emitUserLogs) is what actually enforces the cap. maxUserLogEventsPerExecution, err := e.cfg.LocalLimiters.LogEvent.Limit(ctx) if err != nil { - logEventLimit := e.cfg.LocalLimiters.defaults().LogEventLimit - lggr.Errorw("Failed to get log event limit; falling back to default", "err", err, "default", logEventLimit.DefaultValue) - e.metrics.IncrementLimitReadFallbackCounter(ctx, logEventLimit.Key) - maxUserLogEventsPerExecution = logEventLimit.DefaultValue + lggr.Errorw("Failed to get log event limit; using last known/default value", "err", err) + e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.LogEventLimit.Key) } userLogChan := make(chan *protoevents.LogLine, maxUserLogEventsPerExecution) defer close(userLogChan) @@ -1024,12 +1024,11 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue suspension := &suspensionTracker{} timeProvider = newMeasuredTimeProvider(timeProvider, e.cfg.Clock, suspension) + // Limit is always usable even on a read failure; err is advisory. moduleExecuteMaxResponseSizeBytes, err := e.cfg.LocalLimiters.ExecutionResponse.Limit(ctx) if err != nil { - executionResponseLimit := e.cfg.LocalLimiters.defaults().ExecutionResponseLimit - lggr.Errorw("Failed to get execution response size limit; falling back to default", "err", err, "default", executionResponseLimit.DefaultValue) - e.metrics.IncrementLimitReadFallbackCounter(ctx, executionResponseLimit.Key) - moduleExecuteMaxResponseSizeBytes = executionResponseLimit.DefaultValue + lggr.Errorw("Failed to get execution response size limit; using last known/default value", "err", err) + e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.ExecutionResponseLimit.Key) } if moduleExecuteMaxResponseSizeBytes < 0 { execErr = fmt.Errorf("invalid moduleExecuteMaxResponseSizeBytes; must not be negative: %d", moduleExecuteMaxResponseSizeBytes) @@ -1276,12 +1275,11 @@ func (e *Engine) deductStandardBalances(ctx context.Context, meteringReport *met // V2Engine runs the entirety of a module's execution as compute. Ensure that the max execution time can run. // Add an extra second of metering padding for context cancel propagation ctxCancelPadding := (time.Millisecond * 1000).Milliseconds() + // Limit is always usable even on a read failure; err is advisory. workflowExecutionTimeout, err := e.cfg.LocalLimiters.ExecutionTime.Limit(ctx) if err != nil { - executionTimeout := e.cfg.LocalLimiters.defaults().ExecutionTimeout - e.logger().Errorw("Failed to get execution time limit; falling back to default", "err", err, "default", executionTimeout.DefaultValue) - e.metrics.IncrementLimitReadFallbackCounter(ctx, executionTimeout.Key) - workflowExecutionTimeout = executionTimeout.DefaultValue + e.logger().Errorw("Failed to get execution time limit; using last known/default value", "err", err) + e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.ExecutionTimeout.Key) } compMs := decimal.NewFromInt(workflowExecutionTimeout.Milliseconds() + ctxCancelPadding) computeUnit := billing.ResourceType_RESOURCE_TYPE_COMPUTE.String() @@ -1313,14 +1311,14 @@ func (e *Engine) emitUserLogs(ctx context.Context, userLogChan chan *protoevents } // A settings read failure should not stop the drain. Fail open instead. e.logger().Errorw("Failed to check user log event limit; emitting anyway", "err", err) - e.metrics.IncrementLimitCheckUnenforcedCounter(emitCtx, e.cfg.LocalLimiters.defaults().LogEventLimit.Key) + e.metrics.IncrementLimitCheckUnenforcedCounter(emitCtx, cresettings.Default.PerWorkflow.LogEventLimit.Key) } if err := e.cfg.LocalLimiters.LogLine.Check(emitCtx, config.Size(len(logLine.Message))); err != nil { if errBoundLimited, ok := errors.AsType[limits.ErrorBoundLimited[config.Size]](err); ok { logLine.Message = logLine.Message[:errBoundLimited.Limit] + " ...(truncated)" } else { e.logger().Errorw("Failed to check user log line limit; emitting untruncated", "err", err) - e.metrics.IncrementLimitCheckUnenforcedCounter(emitCtx, e.cfg.LocalLimiters.defaults().LogLineLimit.Key) + e.metrics.IncrementLimitCheckUnenforcedCounter(emitCtx, cresettings.Default.PerWorkflow.LogLineLimit.Key) } } @@ -1367,18 +1365,19 @@ func (e *Engine) emitUserLogs(ctx context.Context, userLogChan chan *protoevents } func (e *Engine) donTimeRequestTimeout(ctx context.Context, limiter limits.TimeLimiter) time.Duration { - defaultTimeout := e.cfg.LocalLimiters.defaults().DONTime.RequestTimeout.DefaultValue - if limiter != nil { - limit, err := limiter.Limit(ctx) - if err != nil { - e.logger().Errorw("Failed to get DON time request timeout", "err", err) - return defaultTimeout - } - if limit <= 0 { - e.logger().Warnw("DON time request timeout is less than or equal to 0, using default timeout", "defaultTimeout", defaultTimeout) - return defaultTimeout - } - return limit + defaultTimeout := cresettings.Default.PerWorkflow.DONTime.RequestTimeout.DefaultValue + if limiter == nil { + return defaultTimeout + } + // Limit is always usable even on a read failure; only a nonsensical (<=0) result + // falls back to defaultTimeout. + limit, err := limiter.Limit(ctx) + if err != nil { + e.logger().Errorw("Failed to get DON time request timeout; using last known/default value", "err", err) + } + if limit <= 0 { + e.logger().Warnw("DON time request timeout is less than or equal to 0, using default timeout", "defaultTimeout", defaultTimeout) + return defaultTimeout } - return defaultTimeout + return limit } diff --git a/core/services/workflows/v2/engine_drop_paths_test.go b/core/services/workflows/v2/engine_drop_paths_test.go index a92004d6280..d793c3b3d30 100644 --- a/core/services/workflows/v2/engine_drop_paths_test.go +++ b/core/services/workflows/v2/engine_drop_paths_test.go @@ -39,10 +39,10 @@ const ( ) // failAfterNBoundLimiter succeeds (returning ok, nil) for the first n calls to Limit, -// then returns failErr for every call after that. LogEvent and ExecutionResponse are -// both peeked once during trigger-subscription init (before any execution exists) and -// again per execution, so an always-failing fake would break engine initialization -// before execution-time fallback could ever be exercised. +// then returns (ok, failErr) after that, mirroring the real chainlink-common +// BoundLimiter. LogEvent and ExecutionResponse are both peeked once during +// trigger-subscription init and again per execution, so an always-failing fake would +// break engine initialization before the value-on-error path could be exercised. type failAfterNBoundLimiter[N limits.Number] struct { mu sync.Mutex calls int @@ -56,8 +56,7 @@ func (f *failAfterNBoundLimiter[N]) Limit(context.Context) (N, error) { defer f.mu.Unlock() f.calls++ if f.calls > f.n { - var zero N - return zero, f.failErr + return f.ok, f.failErr // last known good value, not zero; err is advisory } return f.ok, nil } @@ -253,6 +252,32 @@ func TestEngine_LimitReadFallback_ExecutesAnyway(t *testing.T) { //nolint:parall } } +// TestEngine_LimitReadFallback_UsesLastKnownGoodValue: on a read failure, the engine +// must use whatever value the limiter returns, not substitute its own compiled default. +func TestEngine_LimitReadFallback_UsesLastKnownGoodValue(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + const lastKnownGood = config.Size(12345) + + harness := newDropPathHarness(t, setupMockBillingClient(t), func(cfg *v2.EngineConfig) { + cfg.LocalLimiters.ExecutionResponse = &failAfterNBoundLimiter[config.Size]{n: 1, ok: lastKnownGood, failErr: errors.New("limit read boom")} + }) + + var gotMaxResponseSize uint64 + harness.module.EXPECT().Execute(matches.AnyContext, mock.Anything, mock.Anything). + Run(func(_ context.Context, req *sdkpb.ExecuteRequest, _ host.ExecutionHelper) { + gotMaxResponseSize = req.MaxResponseSize + }). + Return(nil, nil).Once() + harness.eventCh <- capabilities.TriggerResponse{ + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_last_known_good"}, + } + + executionID := <-harness.executionFinishedCh + require.NotEmpty(t, executionID) + + assert.Equal(t, uint64(lastKnownGood), gotMaxResponseSize, + "engine must use the value the limiter returned, not fall back to its own compiled default") +} + // setupInsufficientFundingBilling returns a billing mock whose ReserveCredits denies // the reservation (Success: false), the only Reserve failure reachable in practice // (every other Reserve error fails open inside Reserve itself). expectReceipt controls From 491a0f7289f33b8d4ac56f021fbd0a483224f5d1 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Tue, 25 Aug 2026 11:53:44 -0300 Subject: [PATCH 08/10] wip mods --- .../proof-of-reserve/cron-based/go.mod | 29 ++--- .../proof-of-reserve/cron-based/go.sum | 111 ++++++------------ core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- deployment/go.mod | 2 +- deployment/go.sum | 4 +- devenv/go.mod | 43 +++---- devenv/go.sum | 92 ++++++--------- go.mod | 3 +- go.sum | 4 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 +- .../proof-of-reserve/cron-based/go.mod | 24 ++-- .../proof-of-reserve/cron-based/go.sum | 50 ++++---- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 +- 20 files changed, 165 insertions(+), 227 deletions(-) diff --git a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod index 93ca36f2d34..473c4a5df2f 100644 --- a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod +++ b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod @@ -1,12 +1,12 @@ module github.com/smartcontractkit/chainlink/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based -go 1.26.5 +go 1.26.6 require ( - github.com/ethereum/go-ethereum v1.17.1 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034 + github.com/ethereum/go-ethereum v1.17.4 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c - github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b + github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 github.com/smartcontractkit/cre-sdk-go v1.5.0 github.com/smartcontractkit/cre-sdk-go/capabilities/blockchain/evm v0.10.0 github.com/smartcontractkit/cre-sdk-go/capabilities/networking/http v1.3.0 @@ -28,11 +28,11 @@ require ( github.com/cloudevents/sdk-go/v2 v2.16.2 // indirect github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect github.com/consensys/gnark-crypto v0.19.2 // indirect - github.com/crate-crypto/go-eth-kzg v1.4.0 // indirect - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/crate-crypto/go-eth-kzg v1.5.0 // indirect github.com/deckarep/golang-set/v2 v2.8.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/ethereum/c-kzg-4844/v2 v2.1.6 // indirect + github.com/fjl/jsonw v0.1.0 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.13 // indirect github.com/go-logr/logr v1.4.3 // indirect @@ -61,10 +61,7 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect - github.com/pion/dtls/v2 v2.2.12 // indirect - github.com/pion/transport/v2 v2.2.10 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect @@ -74,9 +71,9 @@ require ( github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/shopspring/decimal v1.4.0 // indirect - github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954 // indirect - github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d // indirect - github.com/stretchr/testify v1.11.1 // indirect + github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 // indirect + github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342 // indirect + github.com/stretchr/testify v1.12.0 // indirect github.com/supranational/blst v0.3.16 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tklauser/go-sysconf v0.3.16 // indirect @@ -107,12 +104,12 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect - golang.org/x/crypto v0.52.0 // indirect + golang.org/x/crypto v0.53.0 // indirect golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a // indirect golang.org/x/net v0.55.0 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect + golang.org/x/sync v0.21.0 // indirect + golang.org/x/sys v0.46.0 // indirect + golang.org/x/text v0.38.0 // indirect golang.org/x/time v0.15.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect diff --git a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum index 538f3aebd70..3a48e276288 100644 --- a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum +++ b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum @@ -43,8 +43,8 @@ github.com/consensys/gnark-crypto v0.19.2 h1:qrEAIXq3T4egxqiliFFoNrepkIWVEeIYwt3 github.com/consensys/gnark-crypto v0.19.2/go.mod h1:rT23F0XSZqE0mUA0+pRtnL56IbPxs6gp4CeRsBk4XS0= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/crate-crypto/go-eth-kzg v1.4.0 h1:WzDGjHk4gFg6YzV0rJOAsTK4z3Qkz5jd4RE3DAvPFkg= -github.com/crate-crypto/go-eth-kzg v1.4.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= +github.com/crate-crypto/go-eth-kzg v1.5.0 h1:FYRiJMJG2iv+2Dy3fi14SVGjcPteZ5HAAUe4YWlJygc= +github.com/crate-crypto/go-eth-kzg v1.5.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -59,18 +59,18 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvw github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= -github.com/dominikbraun/graph v0.23.0 h1:TdZB4pPqCLFxYhdyMFb1TBdFxp8XLcJfTTBQucVPgCo= -github.com/dominikbraun/graph v0.23.0/go.mod h1:yOjYyogZLY1LSG9E33JWZJiq5k83Qy2C6POAuiViluc= github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A= github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/ethereum/c-kzg-4844/v2 v2.1.6 h1:xQymkKCT5E2Jiaoqf3v4wsNgjZLY0lRSkZn27fRjSls= github.com/ethereum/c-kzg-4844/v2 v2.1.6/go.mod h1:8HMkUZ5JRv4hpw/XUrYWSQNAUzhHMg2UDb/U+5m+XNw= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJhy07IMfEKuARQ9TKojGqLVNxQajaXEp/BoqSk= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= -github.com/ethereum/go-ethereum v1.17.1 h1:IjlQDjgxg2uL+GzPRkygGULPMLzcYWncEI7wbaizvho= -github.com/ethereum/go-ethereum v1.17.1/go.mod h1:7UWOVHL7K3b8RfVRea022btnzLCaanwHtBuH1jUCH/I= +github.com/ethereum/go-ethereum v1.17.4 h1:uA4q+qiLp7QImBsjdRbINu8iX6OEVmj4DPc5/E5Fsxc= +github.com/ethereum/go-ethereum v1.17.4/go.mod h1:qMdgwqqRAen+aT8P7KKQKi0Qt6RzG4cfejVAbCpJgqA= github.com/ferranbt/fastssz v0.1.4 h1:OCDB+dYDEQDvAgtAGnTSidK1Pe2tW3nFV40XyMkTeDY= github.com/ferranbt/fastssz v0.1.4/go.mod h1:Ea3+oeoRGGLGm5shYAeDgu6PGUlcvQhE2fILyD9+tGg= +github.com/fjl/jsonw v0.1.0 h1:V3MyR79fjLpn/+bMgvegdGUIhoJOzjmqWcKDgcOmY1I= +github.com/fjl/jsonw v0.1.0/go.mod h1:2KMLevM6FXEJnfhtk7naXu9vZdVfOma1GlnGdPRlumU= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= @@ -224,22 +224,17 @@ github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0 github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk= -github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE= -github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= -github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0= -github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ= -github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= -github.com/pion/transport/v2 v2.2.10 h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q= -github.com/pion/transport/v2 v2.2.10/go.mod h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E= -github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= -github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= +github.com/pion/dtls/v3 v3.1.2 h1:gqEdOUXLtCGW+afsBLO0LtDD8GnuBBjEy6HRtyofZTc= +github.com/pion/dtls/v3 v3.1.2/go.mod h1:Hw/igcX4pdY69z1Hgv5x7wJFrUkdgHwAn/Q/uo7YHRo= +github.com/pion/logging v0.2.4 h1:tTew+7cmQ+Mc1pTBLKH2puKsOvhm32dROumOZ655zB8= +github.com/pion/logging v0.2.4/go.mod h1:DffhXTKYdNZU+KtJ5pyQDjvOAh/GsNSyv1lbkFbe3so= +github.com/pion/stun/v3 v3.1.2 h1:86IhD8wFn6IDW4b1/0QzoQS+f5PeA8OHHRn8UZW5ErY= +github.com/pion/stun/v3 v3.1.2/go.mod h1:H7gDic7nNwlUL05pbs6T1dtaBehh/KjupxfWw3ZI7cA= +github.com/pion/transport/v4 v4.0.1 h1:sdROELU6BZ63Ab7FrOLn13M6YdJLY20wldXW2Cu2k8o= +github.com/pion/transport/v4 v4.0.1/go.mod h1:nEuEA4AD5lPdcIegQDpVLgNoDGreqM/YqmEx3ovP4jM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= @@ -263,14 +258,14 @@ github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKl github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034 h1:XCnmvCaSuOXKShpfcmyrHskHnXDzjACxI37WiEFdJDI= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034/go.mod h1:DGvW2Opi/qcOWNkOq18xTI5ZqByoxfPTL9H5M1bC4Ls= -github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954 h1:QhTMiEn3s+AB4xBoScuQglsqHGJYxheYrgpxdIdqNAI= -github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= +github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c h1:eX7SCn5AGUGduv5OrjbVJkUSOnyeal0BtVem6zBSB2Y= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c/go.mod h1:oyfOm4k0uqmgZIfxk1elI/59B02shbbJQiiUdPdbMgI= -github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b h1:VDgJWDipihV9f7M5+d21d1RzSsg5rEv+iI12oN1VQbo= -github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b/go.mod h1:vTFHTCbLui4Vn8fTmAadfE3rdnvfrDwOmMujmW857D0= +github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 h1:WEUMkKQPAgcNMRgES6CBWrRUiII+HKEWQjulKQBSuMA= +github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648/go.mod h1:/i8hjTPFdVWHiY+QjeSiVS2Z3GB3WAZznGgXHstC02E= github.com/smartcontractkit/cre-sdk-go v1.5.0 h1:kepW3QDKARrOOHjXwWAZ9j5KLk6bxLzvi6OMrLsFwVo= github.com/smartcontractkit/cre-sdk-go v1.5.0/go.mod h1:yYrQFz1UH7hhRbPO0q4fgo1tfsJNd4yXnI3oCZE0RzM= github.com/smartcontractkit/cre-sdk-go/capabilities/blockchain/evm v0.10.0 h1:G0w0cLzHy/5m74IzSGz1Ynjffym4ZxLeUrRLp8EFP5w= @@ -279,21 +274,17 @@ github.com/smartcontractkit/cre-sdk-go/capabilities/networking/http v1.3.0 h1:m0 github.com/smartcontractkit/cre-sdk-go/capabilities/networking/http v1.3.0/go.mod h1:QpLhMGMa//e4G9qMmmCK4NPMcadRBaWC2FDV9hniMrI= github.com/smartcontractkit/cre-sdk-go/capabilities/scheduler/cron v1.3.0 h1:qBZ4y6qlTOynSpU1QAi2Fgr3tUZQ332b6hit9EVZqkk= github.com/smartcontractkit/cre-sdk-go/capabilities/scheduler/cron v1.3.0/go.mod h1:Rzhy75vD3FqQo/SV6lypnxIwjWac6IOWzI5BYj3tYMU= -github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d h1:PvXor5Fjer7FIONSqYXbpd1LkA14hWrlAyxXzOrC9t8= -github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d/go.mod h1:PLdNK6GlqfxIWXzziPkU7dCAVlVFeYkyyW7AQY0R+4Q= +github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342 h1:pEcgcjTGA83MzpqbTbyIg9AJrOs62s77SooDdJGIg9w= +github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342/go.mod h1:5JPtsRwjugpyfsdEALC4RopfvohqK/G+3DHaR8uv+Bc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.0 h1:K6Mr6jO9JICuend/5xzTM03ydSV3vdNRYAdPSukj8uI= +github.com/stretchr/testify v1.12.0/go.mod h1:bOYBZb5qJ00vPzWfIqBUZPaxK8jWiXc6d3ErP4Ca9Gw= github.com/supranational/blst v0.3.16 h1:bTDadT+3fK497EvLdWRQEjiGnUtzJ7jjIUMF0jqwYhE= github.com/supranational/blst v0.3.16/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= @@ -308,11 +299,11 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= -github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= +github.com/wlynxg/anet v0.0.5 h1:J3VJGi1gvo0JwZ/P1/Yc/8p63SoW98B5dHkYDmpgvvU= +github.com/wlynxg/anet v0.0.5/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= @@ -370,39 +361,26 @@ go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= -golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a h1:+3jdDGGB8NGb1Zktc737jlt3/A5f6UlwSzmvqUuufxw= golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= +golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -420,37 +398,22 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -489,5 +452,3 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 398bc0d1bbd..f9feb45e63a 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -45,7 +45,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 4a631aba4bb..45bcb52e68e 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1578,8 +1578,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/deployment/go.mod b/deployment/go.mod index 3daf208d2d9..9aa12dedda8 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -49,7 +49,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-data-streams v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 diff --git a/deployment/go.sum b/deployment/go.sum index 1135757d2d1..546550cc2c9 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1408,8 +1408,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/devenv/go.mod b/devenv/go.mod index 8eab5145a54..0a7dc41f107 100644 --- a/devenv/go.mod +++ b/devenv/go.mod @@ -1,6 +1,6 @@ module github.com/smartcontractkit/chainlink/devenv -go 1.26.5 +go 1.26.6 require ( github.com/Masterminds/semver/v3 v3.5.0 @@ -8,7 +8,7 @@ require ( github.com/c-bata/go-prompt v0.2.6 github.com/cockroachdb/errors v1.11.3 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc - github.com/ethereum/go-ethereum v1.17.1 + github.com/ethereum/go-ethereum v1.17.4 github.com/go-resty/resty/v2 v2.17.2 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 @@ -20,9 +20,9 @@ require ( github.com/rs/zerolog v1.35.1 github.com/scylladb/go-reflectx v1.0.1 github.com/shopspring/decimal v1.4.0 - github.com/smartcontractkit/chain-selectors v1.0.100 + github.com/smartcontractkit/chain-selectors v1.0.104 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260519095745-ddfc812d06a0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a github.com/smartcontractkit/chainlink-protos/job-distributor v0.12.0 @@ -30,16 +30,24 @@ require ( github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.14.10-0.20260511081501-829666151188 github.com/smartcontractkit/chainlink-testing-framework/seth v1.51.5 github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.2 - github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d + github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342 github.com/spf13/cobra v1.9.1 - github.com/stretchr/testify v1.11.1 + github.com/stretchr/testify v1.12.0 github.com/umbracle/ethgo v0.1.3 go.uber.org/zap v1.27.1 - golang.org/x/sync v0.20.0 + golang.org/x/sync v0.21.0 google.golang.org/grpc v1.82.1 gopkg.in/guregu/null.v4 v4.0.0 ) +require ( + github.com/fjl/jsonw v0.1.0 // indirect + github.com/pion/dtls/v3 v3.1.2 // indirect + github.com/pion/stun/v3 v3.1.2 // indirect + github.com/pion/transport/v4 v4.0.1 // indirect + github.com/wlynxg/anet v0.0.5 // indirect +) + require ( cloud.google.com/go/auth v0.18.2 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect @@ -113,7 +121,7 @@ require ( github.com/coreos/go-systemd/v22 v22.7.0 // indirect github.com/cpuguy83/dockercfg v0.3.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect - github.com/crate-crypto/go-eth-kzg v1.4.0 // indirect + github.com/crate-crypto/go-eth-kzg v1.5.0 // indirect github.com/dchest/siphash v1.2.3 // indirect github.com/deckarep/golang-set/v2 v2.8.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect @@ -285,15 +293,10 @@ require ( github.com/pb33f/libopenapi-validator v0.13.3 // indirect github.com/pb33f/ordered-map/v2 v2.3.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pion/dtls/v2 v2.2.12 // indirect - github.com/pion/logging v0.2.2 // indirect - github.com/pion/stun/v2 v2.0.0 // indirect - github.com/pion/transport/v2 v2.2.10 // indirect - github.com/pion/transport/v3 v3.0.1 // indirect + github.com/pion/logging v0.2.4 // indirect github.com/pires/go-proxyproto v0.11.0 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/term v1.2.0-beta.2 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/prometheus/alertmanager v0.31.1 // indirect github.com/prometheus/client_golang v1.23.2 // indirect @@ -321,11 +324,11 @@ require ( github.com/shirou/gopsutil/v4 v4.26.4 // indirect github.com/sirupsen/logrus v1.9.4 // indirect github.com/smartcontractkit/chainlink-common/keystore v1.0.2 // indirect - github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954 // indirect + github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 // indirect github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20260423135514-5b1a7565a99c // indirect github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260508154216-3ed6f623098f // indirect github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260505202410-b350dca113b4 // indirect - github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b // indirect + github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 // indirect github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/freeport v0.1.3-0.20250828155247-add56fa28aad // indirect @@ -409,14 +412,14 @@ require ( go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect go4.org/netipx v0.0.0-20230125063823-8449b0a6169f // indirect golang.org/x/arch v0.26.0 // indirect - golang.org/x/crypto v0.52.0 // indirect + golang.org/x/crypto v0.53.0 // indirect golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a // indirect golang.org/x/mod v0.36.0 // indirect golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/term v0.43.0 // indirect - golang.org/x/text v0.37.0 // indirect + golang.org/x/sys v0.46.0 // indirect + golang.org/x/term v0.44.0 // indirect + golang.org/x/text v0.38.0 // indirect golang.org/x/time v0.15.0 // indirect golang.org/x/tools v0.45.0 // indirect google.golang.org/api v0.272.0 // indirect diff --git a/devenv/go.sum b/devenv/go.sum index 6a430affeff..28b05586001 100644 --- a/devenv/go.sum +++ b/devenv/go.sum @@ -254,8 +254,8 @@ github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHf github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/crate-crypto/go-eth-kzg v1.4.0 h1:WzDGjHk4gFg6YzV0rJOAsTK4z3Qkz5jd4RE3DAvPFkg= -github.com/crate-crypto/go-eth-kzg v1.4.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= +github.com/crate-crypto/go-eth-kzg v1.5.0 h1:FYRiJMJG2iv+2Dy3fi14SVGjcPteZ5HAAUe4YWlJygc= +github.com/crate-crypto/go-eth-kzg v1.5.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= @@ -313,8 +313,8 @@ github.com/ethereum/c-kzg-4844/v2 v2.1.6 h1:xQymkKCT5E2Jiaoqf3v4wsNgjZLY0lRSkZn2 github.com/ethereum/c-kzg-4844/v2 v2.1.6/go.mod h1:8HMkUZ5JRv4hpw/XUrYWSQNAUzhHMg2UDb/U+5m+XNw= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJhy07IMfEKuARQ9TKojGqLVNxQajaXEp/BoqSk= github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8= -github.com/ethereum/go-ethereum v1.17.1 h1:IjlQDjgxg2uL+GzPRkygGULPMLzcYWncEI7wbaizvho= -github.com/ethereum/go-ethereum v1.17.1/go.mod h1:7UWOVHL7K3b8RfVRea022btnzLCaanwHtBuH1jUCH/I= +github.com/ethereum/go-ethereum v1.17.4 h1:uA4q+qiLp7QImBsjdRbINu8iX6OEVmj4DPc5/E5Fsxc= +github.com/ethereum/go-ethereum v1.17.4/go.mod h1:qMdgwqqRAen+aT8P7KKQKi0Qt6RzG4cfejVAbCpJgqA= github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM= github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW64qjjJq8M2u4dxNaBiDfKK+z/3eGDpXEQhc= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -324,6 +324,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/ferranbt/fastssz v0.1.4 h1:OCDB+dYDEQDvAgtAGnTSidK1Pe2tW3nFV40XyMkTeDY= github.com/ferranbt/fastssz v0.1.4/go.mod h1:Ea3+oeoRGGLGm5shYAeDgu6PGUlcvQhE2fILyD9+tGg= +github.com/fjl/jsonw v0.1.0 h1:V3MyR79fjLpn/+bMgvegdGUIhoJOzjmqWcKDgcOmY1I= +github.com/fjl/jsonw v0.1.0/go.mod h1:2KMLevM6FXEJnfhtk7naXu9vZdVfOma1GlnGdPRlumU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -892,19 +894,14 @@ github.com/pierrec/lz4/v4 v4.1.26 h1:GrpZw1gZttORinvzBdXPUXATeqlJjqUG/D87TKMnhjY github.com/pierrec/lz4/v4 v4.1.26/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= -github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= -github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk= -github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE= -github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= -github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0= -github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ= -github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= -github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= -github.com/pion/transport/v2 v2.2.10 h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q= -github.com/pion/transport/v2 v2.2.10/go.mod h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E= -github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= -github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= +github.com/pion/dtls/v3 v3.1.2 h1:gqEdOUXLtCGW+afsBLO0LtDD8GnuBBjEy6HRtyofZTc= +github.com/pion/dtls/v3 v3.1.2/go.mod h1:Hw/igcX4pdY69z1Hgv5x7wJFrUkdgHwAn/Q/uo7YHRo= +github.com/pion/logging v0.2.4 h1:tTew+7cmQ+Mc1pTBLKH2puKsOvhm32dROumOZ655zB8= +github.com/pion/logging v0.2.4/go.mod h1:DffhXTKYdNZU+KtJ5pyQDjvOAh/GsNSyv1lbkFbe3so= +github.com/pion/stun/v3 v3.1.2 h1:86IhD8wFn6IDW4b1/0QzoQS+f5PeA8OHHRn8UZW5ErY= +github.com/pion/stun/v3 v3.1.2/go.mod h1:H7gDic7nNwlUL05pbs6T1dtaBehh/KjupxfWw3ZI7cA= +github.com/pion/transport/v4 v4.0.1 h1:sdROELU6BZ63Ab7FrOLn13M6YdJLY20wldXW2Cu2k8o= +github.com/pion/transport/v4 v4.0.1/go.mod h1:nEuEA4AD5lPdcIegQDpVLgNoDGreqM/YqmEx3ovP4jM= github.com/pires/go-proxyproto v0.11.0 h1:gUQpS85X/VJMdUsYyEgyn59uLJvGqPhJV5YvG68wXH4= github.com/pires/go-proxyproto v0.11.0/go.mod h1:ZKAAyp3cgy5Y5Mo4n9AlScrkCZwUy0g3Jf+slqQVcuU= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= @@ -1014,16 +1011,16 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= -github.com/smartcontractkit/chain-selectors v1.0.100 h1:wpiSpmI/eFjY+wx/nPr5VuNF4hki0prIBMKEaQWn3g4= -github.com/smartcontractkit/chain-selectors v1.0.100/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= +github.com/smartcontractkit/chain-selectors v1.0.104 h1:/n9pPGM5W/+r1eHoWZv4VwX9LNS1af4+ICyhM8zKRNM= +github.com/smartcontractkit/chain-selectors v1.0.104/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034 h1:XCnmvCaSuOXKShpfcmyrHskHnXDzjACxI37WiEFdJDI= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034/go.mod h1:DGvW2Opi/qcOWNkOq18xTI5ZqByoxfPTL9H5M1bC4Ls= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.0.2 h1:AWisx4JT3QV8tcgh6J5NCrex+wAgTYpWyHsyNPSXzsQ= github.com/smartcontractkit/chainlink-common/keystore v1.0.2/go.mod h1:rSkIHdomyak3YnUtXLenl6poIq8q0V3UZPiiyYqPdGA= -github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954 h1:QhTMiEn3s+AB4xBoScuQglsqHGJYxheYrgpxdIdqNAI= -github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= +github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= +github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260519095745-ddfc812d06a0 h1:rPVMnAi1+tWZOo8jTHavu/PbmoKNVRrKYOfxzujDuss= github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260519095745-ddfc812d06a0/go.mod h1:ow+Q/Tl8iDgDFaMkQveJJWEL6odFZAmuYRUm/dwk26M= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a h1:kVKWRGrSCioMY2lEVIEblerv/KkINIQS2hLUOw2wKOg= @@ -1034,8 +1031,8 @@ github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260508154216-3e github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20260508154216-3ed6f623098f/go.mod h1:HG/aei0MgBOpsyRLexdKGtOUO8yjSJO3iUu0Uu8KBm4= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260505202410-b350dca113b4 h1:nXU0s4WAVU2cAR76Ke7h9z55NuEtRq1WvT4wVEs7jwk= github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260505202410-b350dca113b4/go.mod h1:7ketk4ischPQW/JQgmyHz6zdzLUJv1VC29SiSgosydQ= -github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b h1:VDgJWDipihV9f7M5+d21d1RzSsg5rEv+iI12oN1VQbo= -github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b/go.mod h1:vTFHTCbLui4Vn8fTmAadfE3rdnvfrDwOmMujmW857D0= +github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 h1:WEUMkKQPAgcNMRgES6CBWrRUiII+HKEWQjulKQBSuMA= +github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648/go.mod h1:/i8hjTPFdVWHiY+QjeSiVS2Z3GB3WAZznGgXHstC02E= github.com/smartcontractkit/chainlink-protos/job-distributor v0.12.0 h1:/bhoALRzNXZkdzxBkNM505pMofNy0K0eW1nCzXw+AUI= github.com/smartcontractkit/chainlink-protos/job-distributor v0.12.0/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE= github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b h1:QuI6SmQFK/zyUlVWEf0GMkiUYBPY4lssn26nKSd/bOM= @@ -1052,8 +1049,8 @@ github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.2 h1:QFO9Ar1z github.com/smartcontractkit/chainlink-testing-framework/wasp v1.51.2/go.mod h1:OLczwaAvyObFG+eq4tQHkWqkbPBB0cHkZj0JzY3inik= github.com/smartcontractkit/freeport v0.1.3-0.20250828155247-add56fa28aad h1:lgHxTHuzJIF3Vj6LSMOnjhqKgRqYW+0MV2SExtCYL1Q= github.com/smartcontractkit/freeport v0.1.3-0.20250828155247-add56fa28aad/go.mod h1:T4zH9R8R8lVWKfU7tUvYz2o2jMv1OpGCdpY2j2QZXzU= -github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d h1:PvXor5Fjer7FIONSqYXbpd1LkA14hWrlAyxXzOrC9t8= -github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d/go.mod h1:PLdNK6GlqfxIWXzziPkU7dCAVlVFeYkyyW7AQY0R+4Q= +github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342 h1:pEcgcjTGA83MzpqbTbyIg9AJrOs62s77SooDdJGIg9w= +github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342/go.mod h1:5JPtsRwjugpyfsdEALC4RopfvohqK/G+3DHaR8uv+Bc= github.com/sony/gobreaker/v2 v2.4.0 h1:g2KJRW1Ubty3+ZOcSEUN7K+REQJdN6yo6XvaML+jptg= github.com/sony/gobreaker/v2 v2.4.0/go.mod h1:pTyFJgcZ3h2tdQVLZZruK2C0eoFL1fb/G83wK1ZQl+s= github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= @@ -1084,12 +1081,11 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.0 h1:K6Mr6jO9JICuend/5xzTM03ydSV3vdNRYAdPSukj8uI= +github.com/stretchr/testify v1.12.0/go.mod h1:bOYBZb5qJ00vPzWfIqBUZPaxK8jWiXc6d3ErP4Ca9Gw= github.com/supranational/blst v0.3.16 h1:bTDadT+3fK497EvLdWRQEjiGnUtzJ7jjIUMF0jqwYhE= github.com/supranational/blst v0.3.16/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= @@ -1139,7 +1135,8 @@ github.com/vultr/govultr/v3 v3.28.1 h1:KR3LhppYARlBujY7+dcrE7YKL0Yo9qXL+msxykKQr github.com/vultr/govultr/v3 v3.28.1/go.mod h1:2zyUw9yADQaGwKnwDesmIOlBNLrm7edsCfWHFJpWKf8= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw= -github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= +github.com/wlynxg/anet v0.0.5 h1:J3VJGi1gvo0JwZ/P1/Yc/8p63SoW98B5dHkYDmpgvvU= +github.com/wlynxg/anet v0.0.5/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= @@ -1326,14 +1323,11 @@ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= -golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= -golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a h1:+3jdDGGB8NGb1Zktc737jlt3/A5f6UlwSzmvqUuufxw= golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -1366,11 +1360,8 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= @@ -1387,8 +1378,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= +golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1435,29 +1426,23 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/telemetry v0.0.0-20260519152614-eab6ae52b5e2 h1:2EucmYlcIsc8Y6aLj+kX90Y00hmjqLNlw935kc13R2k= golang.org/x/telemetry v0.0.0-20260519152614-eab6ae52b5e2/go.mod h1:Eqhaxk/wZsWEH8CRxLwj6xzEJbz7k1EFGqx7nyCoabE= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= -golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= +golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= +golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -1467,10 +1452,9 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/go.mod b/go.mod index 3f7ed6ff4ff..ee015aba794 100644 --- a/go.mod +++ b/go.mod @@ -83,7 +83,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 github.com/smartcontractkit/chainlink-data-streams v1.1.0 @@ -93,6 +93,7 @@ require ( github.com/smartcontractkit/chainlink-feeds v0.1.2-0.20250227211209-7cd000095135 github.com/smartcontractkit/chainlink-framework/capabilities v0.0.0-20260423135514-5b1a7565a99c github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20260724153515-bb6a2de39bcb + // github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20260625152110-9afcf56e4053 github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251024234028-0988426d98f4 github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 diff --git a/go.sum b/go.sum index 6fb8eafbe2c..e1bc65cbdaa 100644 --- a/go.sum +++ b/go.sum @@ -1119,8 +1119,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index fadb15c9464..8d56ad1e414 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index c3f6cbbb9a6..581b568639c 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1395,8 +1395,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 2db772bd1d6..7ff9d4c180d 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -24,7 +24,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.6 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 1f67dff1bef..78c4e4e5bae 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1635,8 +1635,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index da52b8c0e0d..71f52096274 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -37,7 +37,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-aptos v0.0.0-20260708114855-e953eeb028a7 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index c9e08302e27..355c8d2587b 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1549,8 +1549,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod index 1c5a66aa9b4..9aaad12ece0 100644 --- a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod +++ b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod @@ -1,11 +1,11 @@ module main -go 1.26.5 +go 1.26.6 require ( - github.com/ethereum/go-ethereum v1.17.1 - github.com/smartcontractkit/chain-selectors v1.0.100 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034 + github.com/ethereum/go-ethereum v1.17.4 + github.com/smartcontractkit/chain-selectors v1.0.104 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c github.com/smartcontractkit/chainlink-common/pkg/workflows/sdk/v2/pb v0.0.0-20250806155403-1d805e639a0f github.com/smartcontractkit/cre-sdk-go v1.5.0 @@ -24,7 +24,6 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.16.2 // indirect github.com/cloudevents/sdk-go/v2 v2.16.2 // indirect - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/gabriel-vasile/mimetype v1.4.13 // indirect github.com/go-logr/logr v1.4.3 // indirect @@ -47,17 +46,16 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect github.com/prometheus/procfs v0.20.1 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/shopspring/decimal v1.4.0 // indirect - github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954 // indirect - github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b // indirect - github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d // indirect - github.com/stretchr/testify v1.11.1 // indirect + github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 // indirect + github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 // indirect + github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342 // indirect + github.com/stretchr/testify v1.12.0 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect @@ -82,11 +80,11 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect - golang.org/x/crypto v0.52.0 // indirect + golang.org/x/crypto v0.53.0 // indirect golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a // indirect golang.org/x/net v0.55.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect + golang.org/x/sys v0.46.0 // indirect + golang.org/x/text v0.38.0 // indirect golang.org/x/time v0.15.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect diff --git a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum index 2b87aabc489..6ff8abbfe0b 100644 --- a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum +++ b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum @@ -22,10 +22,8 @@ github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U github.com/decred/dcrd/crypto/blake256 v1.1.0/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= -github.com/dominikbraun/graph v0.23.0 h1:TdZB4pPqCLFxYhdyMFb1TBdFxp8XLcJfTTBQucVPgCo= -github.com/dominikbraun/graph v0.23.0/go.mod h1:yOjYyogZLY1LSG9E33JWZJiq5k83Qy2C6POAuiViluc= -github.com/ethereum/go-ethereum v1.17.1 h1:IjlQDjgxg2uL+GzPRkygGULPMLzcYWncEI7wbaizvho= -github.com/ethereum/go-ethereum v1.17.1/go.mod h1:7UWOVHL7K3b8RfVRea022btnzLCaanwHtBuH1jUCH/I= +github.com/ethereum/go-ethereum v1.17.4 h1:uA4q+qiLp7QImBsjdRbINu8iX6OEVmj4DPc5/E5Fsxc= +github.com/ethereum/go-ethereum v1.17.4/go.mod h1:qMdgwqqRAen+aT8P7KKQKi0Qt6RzG4cfejVAbCpJgqA= github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM= github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -84,8 +82,6 @@ github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= @@ -100,18 +96,18 @@ github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6Ng github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/smartcontractkit/chain-selectors v1.0.100 h1:wpiSpmI/eFjY+wx/nPr5VuNF4hki0prIBMKEaQWn3g4= -github.com/smartcontractkit/chain-selectors v1.0.100/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034 h1:XCnmvCaSuOXKShpfcmyrHskHnXDzjACxI37WiEFdJDI= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260722120418-c1a1e0e75034/go.mod h1:DGvW2Opi/qcOWNkOq18xTI5ZqByoxfPTL9H5M1bC4Ls= -github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954 h1:QhTMiEn3s+AB4xBoScuQglsqHGJYxheYrgpxdIdqNAI= -github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260716165322-7f2edff6e954/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= +github.com/smartcontractkit/chain-selectors v1.0.104 h1:/n9pPGM5W/+r1eHoWZv4VwX9LNS1af4+ICyhM8zKRNM= +github.com/smartcontractkit/chain-selectors v1.0.104/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= +github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c h1:QaImySzrLcGzQc4wCF2yDqqb73jA3+9EIqybgx8zT4w= github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c/go.mod h1:U1UAbPhy6D7Qz0wHKGPoQO+dpR0hsYjgUz8xwRrmKwI= github.com/smartcontractkit/chainlink-common/pkg/workflows/sdk/v2/pb v0.0.0-20250806155403-1d805e639a0f h1:mnnlyMH5LgJRAzx/4mW2R+sbK1Acpfs3q0EokeAX5RI= github.com/smartcontractkit/chainlink-common/pkg/workflows/sdk/v2/pb v0.0.0-20250806155403-1d805e639a0f/go.mod h1:yMGYq2fDYWPXZjkVuzgRiZVv/NaifvQUqK7CY6kNgW0= -github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b h1:VDgJWDipihV9f7M5+d21d1RzSsg5rEv+iI12oN1VQbo= -github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260622152157-c8e129347b8b/go.mod h1:vTFHTCbLui4Vn8fTmAadfE3rdnvfrDwOmMujmW857D0= +github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 h1:WEUMkKQPAgcNMRgES6CBWrRUiII+HKEWQjulKQBSuMA= +github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648/go.mod h1:/i8hjTPFdVWHiY+QjeSiVS2Z3GB3WAZznGgXHstC02E= github.com/smartcontractkit/cre-sdk-go v1.5.0 h1:kepW3QDKARrOOHjXwWAZ9j5KLk6bxLzvi6OMrLsFwVo= github.com/smartcontractkit/cre-sdk-go v1.5.0/go.mod h1:yYrQFz1UH7hhRbPO0q4fgo1tfsJNd4yXnI3oCZE0RzM= github.com/smartcontractkit/cre-sdk-go/capabilities/blockchain/evm v0.5.0 h1:ah2+pAuLOF8DMm2Kf7JXOV/OFkzDEfCDV8hQeiduyfg= @@ -120,14 +116,14 @@ github.com/smartcontractkit/cre-sdk-go/capabilities/networking/http v1.3.0 h1:m0 github.com/smartcontractkit/cre-sdk-go/capabilities/networking/http v1.3.0/go.mod h1:QpLhMGMa//e4G9qMmmCK4NPMcadRBaWC2FDV9hniMrI= github.com/smartcontractkit/cre-sdk-go/capabilities/scheduler/cron v1.3.0 h1:qBZ4y6qlTOynSpU1QAi2Fgr3tUZQ332b6hit9EVZqkk= github.com/smartcontractkit/cre-sdk-go/capabilities/scheduler/cron v1.3.0/go.mod h1:Rzhy75vD3FqQo/SV6lypnxIwjWac6IOWzI5BYj3tYMU= -github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d h1:PvXor5Fjer7FIONSqYXbpd1LkA14hWrlAyxXzOrC9t8= -github.com/smartcontractkit/libocr v0.0.0-20260403184524-b6409238958d/go.mod h1:PLdNK6GlqfxIWXzziPkU7dCAVlVFeYkyyW7AQY0R+4Q= +github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342 h1:pEcgcjTGA83MzpqbTbyIg9AJrOs62s77SooDdJGIg9w= +github.com/smartcontractkit/libocr v0.0.0-20260810200708-618b5bf7f342/go.mod h1:5JPtsRwjugpyfsdEALC4RopfvohqK/G+3DHaR8uv+Bc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.0 h1:K6Mr6jO9JICuend/5xzTM03ydSV3vdNRYAdPSukj8uI= +github.com/stretchr/testify v1.12.0/go.mod h1:bOYBZb5qJ00vPzWfIqBUZPaxK8jWiXc6d3ErP4Ca9Gw= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc= @@ -182,16 +178,16 @@ go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= -golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= -golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a h1:+3jdDGGB8NGb1Zktc737jlt3/A5f6UlwSzmvqUuufxw= golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= @@ -209,5 +205,3 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 0180da3cf9f..208dd9c8863 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -64,7 +64,7 @@ require ( github.com/rs/zerolog v1.35.1 github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute/tests/testhelpers v0.0.0-20260812145307-d77342c53d7d diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 1f4d1c3a258..fa16d3975f8 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1759,8 +1759,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572 h1:xs8vIJiC3GNaA5lqKcF4MaWDiCcAJxfv6u2uXTRAaQs= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260821173408-0ead1aabd572/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= From ba6961c0eebb6bab1d9cfb06a68f8edb77bbbf5b Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Tue, 25 Aug 2026 13:22:04 -0300 Subject: [PATCH 09/10] use computed default value --- .../workflows/proof-of-reserve/cron-based/go.mod | 2 +- .../workflows/proof-of-reserve/cron-based/go.sum | 4 ++-- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- core/services/workflows/v2/engine.go | 10 +++++----- .../workflows/v2/engine_drop_paths_test.go | 16 ++++++++-------- deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- devenv/go.mod | 2 +- devenv/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 ++-- .../proof-of-reserve/cron-based/go.mod | 2 +- .../proof-of-reserve/cron-based/go.sum | 4 ++-- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 ++-- 22 files changed, 43 insertions(+), 43 deletions(-) diff --git a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod index 473c4a5df2f..3d9fc38fc49 100644 --- a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod +++ b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod @@ -4,7 +4,7 @@ go 1.26.6 require ( github.com/ethereum/go-ethereum v1.17.4 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 github.com/smartcontractkit/cre-sdk-go v1.5.0 diff --git a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum index 3a48e276288..565d3a45f84 100644 --- a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum +++ b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum @@ -258,8 +258,8 @@ github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKl github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c h1:eX7SCn5AGUGduv5OrjbVJkUSOnyeal0BtVem6zBSB2Y= diff --git a/core/scripts/go.mod b/core/scripts/go.mod index f9feb45e63a..c2b7e8689df 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -45,7 +45,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 45bcb52e68e..4a432f55f70 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1578,8 +1578,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/core/services/workflows/v2/engine.go b/core/services/workflows/v2/engine.go index 8993074ab53..45889c90f6c 100644 --- a/core/services/workflows/v2/engine.go +++ b/core/services/workflows/v2/engine.go @@ -918,7 +918,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue // WithTimeout returns a usable ctx/cancel even on a read failure; err is advisory. execCtx, execCancel, err := e.cfg.LocalLimiters.ExecutionTime.WithTimeout(ctx) if err != nil { - lggr.Errorw("Failed to get execution time limit; proceeding with last known/default timeout", "err", err) + lggr.Errorw("Failed to get execution time limit; proceeding with the default timeout", "err", err) e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.ExecutionTimeout.Key) if execCtx == nil { // only nil when there's no tenant to resolve a limit for at all execCtx, execCancel = context.WithTimeout(ctx, cresettings.Default.PerWorkflow.ExecutionTimeout.DefaultValue) @@ -940,7 +940,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue // (called per log line in emitUserLogs) is what actually enforces the cap. maxUserLogEventsPerExecution, err := e.cfg.LocalLimiters.LogEvent.Limit(ctx) if err != nil { - lggr.Errorw("Failed to get log event limit; using last known/default value", "err", err) + lggr.Errorw("Failed to get log event limit; using the default value", "err", err) e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.LogEventLimit.Key) } userLogChan := make(chan *protoevents.LogLine, maxUserLogEventsPerExecution) @@ -1027,7 +1027,7 @@ func (e *Engine) startExecution(ctx context.Context, wrappedTriggerEvent enqueue // Limit is always usable even on a read failure; err is advisory. moduleExecuteMaxResponseSizeBytes, err := e.cfg.LocalLimiters.ExecutionResponse.Limit(ctx) if err != nil { - lggr.Errorw("Failed to get execution response size limit; using last known/default value", "err", err) + lggr.Errorw("Failed to get execution response size limit; using the default value", "err", err) e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.ExecutionResponseLimit.Key) } if moduleExecuteMaxResponseSizeBytes < 0 { @@ -1278,7 +1278,7 @@ func (e *Engine) deductStandardBalances(ctx context.Context, meteringReport *met // Limit is always usable even on a read failure; err is advisory. workflowExecutionTimeout, err := e.cfg.LocalLimiters.ExecutionTime.Limit(ctx) if err != nil { - e.logger().Errorw("Failed to get execution time limit; using last known/default value", "err", err) + e.logger().Errorw("Failed to get execution time limit; using the default value", "err", err) e.metrics.IncrementLimitReadFallbackCounter(ctx, cresettings.Default.PerWorkflow.ExecutionTimeout.Key) } compMs := decimal.NewFromInt(workflowExecutionTimeout.Milliseconds() + ctxCancelPadding) @@ -1373,7 +1373,7 @@ func (e *Engine) donTimeRequestTimeout(ctx context.Context, limiter limits.TimeL // falls back to defaultTimeout. limit, err := limiter.Limit(ctx) if err != nil { - e.logger().Errorw("Failed to get DON time request timeout; using last known/default value", "err", err) + e.logger().Errorw("Failed to get DON time request timeout; using the default value", "err", err) } if limit <= 0 { e.logger().Warnw("DON time request timeout is less than or equal to 0, using default timeout", "defaultTimeout", defaultTimeout) diff --git a/core/services/workflows/v2/engine_drop_paths_test.go b/core/services/workflows/v2/engine_drop_paths_test.go index d793c3b3d30..3a4cf79fb59 100644 --- a/core/services/workflows/v2/engine_drop_paths_test.go +++ b/core/services/workflows/v2/engine_drop_paths_test.go @@ -56,7 +56,7 @@ func (f *failAfterNBoundLimiter[N]) Limit(context.Context) (N, error) { defer f.mu.Unlock() f.calls++ if f.calls > f.n { - return f.ok, f.failErr // last known good value, not zero; err is advisory + return f.ok, f.failErr // resolved value, not zero; err is advisory } return f.ok, nil } @@ -252,13 +252,13 @@ func TestEngine_LimitReadFallback_ExecutesAnyway(t *testing.T) { //nolint:parall } } -// TestEngine_LimitReadFallback_UsesLastKnownGoodValue: on a read failure, the engine -// must use whatever value the limiter returns, not substitute its own compiled default. -func TestEngine_LimitReadFallback_UsesLastKnownGoodValue(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap - const lastKnownGood = config.Size(12345) +// TestEngine_LimitReadFallback_UsesLimiterValue: on a read failure, the engine must use +// whatever value the limiter returns, not substitute its own compiled default. +func TestEngine_LimitReadFallback_UsesLimiterValue(t *testing.T) { //nolint:paralleltest // uses beholdertest.NewObserver, a global singleton swap + const resolvedValue = config.Size(12345) harness := newDropPathHarness(t, setupMockBillingClient(t), func(cfg *v2.EngineConfig) { - cfg.LocalLimiters.ExecutionResponse = &failAfterNBoundLimiter[config.Size]{n: 1, ok: lastKnownGood, failErr: errors.New("limit read boom")} + cfg.LocalLimiters.ExecutionResponse = &failAfterNBoundLimiter[config.Size]{n: 1, ok: resolvedValue, failErr: errors.New("limit read boom")} }) var gotMaxResponseSize uint64 @@ -268,13 +268,13 @@ func TestEngine_LimitReadFallback_UsesLastKnownGoodValue(t *testing.T) { //nolin }). Return(nil, nil).Once() harness.eventCh <- capabilities.TriggerResponse{ - Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_last_known_good"}, + Event: capabilities.TriggerEvent{TriggerType: "basic-trigger@1.0.0", ID: "event_limiter_value"}, } executionID := <-harness.executionFinishedCh require.NotEmpty(t, executionID) - assert.Equal(t, uint64(lastKnownGood), gotMaxResponseSize, + assert.Equal(t, uint64(resolvedValue), gotMaxResponseSize, "engine must use the value the limiter returned, not fall back to its own compiled default") } diff --git a/deployment/go.mod b/deployment/go.mod index 9aa12dedda8..c11a6e582ba 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -49,7 +49,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-data-streams v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 diff --git a/deployment/go.sum b/deployment/go.sum index 546550cc2c9..9041f6bad74 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1408,8 +1408,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/devenv/go.mod b/devenv/go.mod index 0a7dc41f107..3f78132bf82 100644 --- a/devenv/go.mod +++ b/devenv/go.mod @@ -22,7 +22,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.104 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260519095745-ddfc812d06a0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a github.com/smartcontractkit/chainlink-protos/job-distributor v0.12.0 diff --git a/devenv/go.sum b/devenv/go.sum index 28b05586001..82e67eb1704 100644 --- a/devenv/go.sum +++ b/devenv/go.sum @@ -1015,8 +1015,8 @@ github.com/smartcontractkit/chain-selectors v1.0.104 h1:/n9pPGM5W/+r1eHoWZv4VwX9 github.com/smartcontractkit/chain-selectors v1.0.104/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.0.2 h1:AWisx4JT3QV8tcgh6J5NCrex+wAgTYpWyHsyNPSXzsQ= github.com/smartcontractkit/chainlink-common/keystore v1.0.2/go.mod h1:rSkIHdomyak3YnUtXLenl6poIq8q0V3UZPiiyYqPdGA= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/go.mod b/go.mod index ee015aba794..d7b43cfbe30 100644 --- a/go.mod +++ b/go.mod @@ -83,7 +83,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 github.com/smartcontractkit/chainlink-data-streams v1.1.0 diff --git a/go.sum b/go.sum index e1bc65cbdaa..2cb0957493c 100644 --- a/go.sum +++ b/go.sum @@ -1119,8 +1119,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 8d56ad1e414..14452d8f7cb 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 581b568639c..45d0a8fcc64 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1395,8 +1395,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 7ff9d4c180d..c5a998ad9e0 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -24,7 +24,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.6 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 78c4e4e5bae..14c0d8fe4a3 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1635,8 +1635,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 71f52096274..6f777bb4d56 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -37,7 +37,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-aptos v0.0.0-20260708114855-e953eeb028a7 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index 355c8d2587b..8219c31cdf1 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1549,8 +1549,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod index 9aaad12ece0..c01edbec30a 100644 --- a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod +++ b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod @@ -5,7 +5,7 @@ go 1.26.6 require ( github.com/ethereum/go-ethereum v1.17.4 github.com/smartcontractkit/chain-selectors v1.0.104 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c github.com/smartcontractkit/chainlink-common/pkg/workflows/sdk/v2/pb v0.0.0-20250806155403-1d805e639a0f github.com/smartcontractkit/cre-sdk-go v1.5.0 diff --git a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum index 6ff8abbfe0b..6b3e8125443 100644 --- a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum +++ b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum @@ -98,8 +98,8 @@ github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/smartcontractkit/chain-selectors v1.0.104 h1:/n9pPGM5W/+r1eHoWZv4VwX9LNS1af4+ICyhM8zKRNM= github.com/smartcontractkit/chain-selectors v1.0.104/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c h1:QaImySzrLcGzQc4wCF2yDqqb73jA3+9EIqybgx8zT4w= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 208dd9c8863..999e3bf7b93 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -64,7 +64,7 @@ require ( github.com/rs/zerolog v1.35.1 github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute/tests/testhelpers v0.0.0-20260812145307-d77342c53d7d diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index fa16d3975f8..ae543a44576 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1759,8 +1759,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188 h1:xEbu45ruVu5eT+eddfy8nGEyDD1s4u0z6eL2Nhyj2OY= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825143050-220691307188/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= From 290e996fd838c907ffe06991b09280a2770d7fc3 Mon Sep 17 00:00:00 2001 From: Tarcisio Ferraz Date: Tue, 25 Aug 2026 17:10:25 -0300 Subject: [PATCH 10/10] wip mods --- .../examples/workflows/proof-of-reserve/cron-based/go.mod | 2 +- .../examples/workflows/proof-of-reserve/cron-based/go.sum | 4 ++-- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- devenv/go.mod | 2 +- devenv/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 ++-- .../canaries_sentinels/proof-of-reserve/cron-based/go.mod | 2 +- .../canaries_sentinels/proof-of-reserve/cron-based/go.sum | 4 ++-- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 ++-- 20 files changed, 30 insertions(+), 30 deletions(-) diff --git a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod index 3d9fc38fc49..cf0253d998d 100644 --- a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod +++ b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.mod @@ -4,7 +4,7 @@ go 1.26.6 require ( github.com/ethereum/go-ethereum v1.17.4 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260804191526-b7a850ae7648 github.com/smartcontractkit/cre-sdk-go v1.5.0 diff --git a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum index 565d3a45f84..9d2b2b20e40 100644 --- a/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum +++ b/core/scripts/cre/environment/examples/workflows/proof-of-reserve/cron-based/go.sum @@ -258,8 +258,8 @@ github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKl github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251222115927-36a18321243c h1:eX7SCn5AGUGduv5OrjbVJkUSOnyeal0BtVem6zBSB2Y= diff --git a/core/scripts/go.mod b/core/scripts/go.mod index c2b7e8689df..407c0db6e47 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -45,7 +45,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 4a432f55f70..b1b3cb17e62 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1578,8 +1578,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/deployment/go.mod b/deployment/go.mod index c11a6e582ba..9776d49ef63 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -49,7 +49,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-data-streams v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 diff --git a/deployment/go.sum b/deployment/go.sum index 9041f6bad74..c24becd1ac2 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1408,8 +1408,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/devenv/go.mod b/devenv/go.mod index 3f78132bf82..4a37140e545 100644 --- a/devenv/go.mod +++ b/devenv/go.mod @@ -22,7 +22,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.104 github.com/smartcontractkit/chainlink-automation v0.8.1 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260519095745-ddfc812d06a0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a github.com/smartcontractkit/chainlink-protos/job-distributor v0.12.0 diff --git a/devenv/go.sum b/devenv/go.sum index 82e67eb1704..5c259e64b6e 100644 --- a/devenv/go.sum +++ b/devenv/go.sum @@ -1015,8 +1015,8 @@ github.com/smartcontractkit/chain-selectors v1.0.104 h1:/n9pPGM5W/+r1eHoWZv4VwX9 github.com/smartcontractkit/chain-selectors v1.0.104/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU= github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.0.2 h1:AWisx4JT3QV8tcgh6J5NCrex+wAgTYpWyHsyNPSXzsQ= github.com/smartcontractkit/chainlink-common/keystore v1.0.2/go.mod h1:rSkIHdomyak3YnUtXLenl6poIq8q0V3UZPiiyYqPdGA= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/go.mod b/go.mod index d7b43cfbe30..4569da7e6f8 100644 --- a/go.mod +++ b/go.mod @@ -83,7 +83,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 github.com/smartcontractkit/chainlink-data-streams v1.1.0 diff --git a/go.sum b/go.sum index 2cb0957493c..fe42e4ba63c 100644 --- a/go.sum +++ b/go.sum @@ -1119,8 +1119,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260415165642-49f23e4d76cc/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 14452d8f7cb..12c99f14c01 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 45d0a8fcc64..f4a37cbb957 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1395,8 +1395,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index c5a998ad9e0..0ee83b0cec2 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -24,7 +24,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260821001950-7520b255725e github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260810110946-8174b6bb7fc9 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.6 diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 14c0d8fe4a3..349989e357d 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1635,8 +1635,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260821001950-7520b255725e/go.mod h1:Dm/Abz0vr7F2v9TygUX947q8HIwJEJikDfSdanX1Cic= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 6f777bb4d56..7068a76b57e 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -37,7 +37,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-aptos v0.0.0-20260708114855-e953eeb028a7 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute v1.3.0 github.com/smartcontractkit/chainlink-deployments-framework v0.119.0 diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index 8219c31cdf1..a45cc471638 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1549,8 +1549,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= diff --git a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod index c01edbec30a..0fa945daa20 100644 --- a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod +++ b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.mod @@ -5,7 +5,7 @@ go 1.26.6 require ( github.com/ethereum/go-ethereum v1.17.4 github.com/smartcontractkit/chain-selectors v1.0.104 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c github.com/smartcontractkit/chainlink-common/pkg/workflows/sdk/v2/pb v0.0.0-20250806155403-1d805e639a0f github.com/smartcontractkit/cre-sdk-go v1.5.0 diff --git a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum index 6b3e8125443..2d6e3632b06 100644 --- a/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum +++ b/system-tests/tests/canaries_sentinels/proof-of-reserve/cron-based/go.sum @@ -98,8 +98,8 @@ github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/smartcontractkit/chain-selectors v1.0.104 h1:/n9pPGM5W/+r1eHoWZv4VwX9LNS1af4+ICyhM8zKRNM= github.com/smartcontractkit/chain-selectors v1.0.104/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72/go.mod h1:UYcRMb4dZcoaIPgZJ3hckCySTqtJc9K4Q+tOKErwTq0= github.com/smartcontractkit/chainlink-common/pkg/values v0.0.0-20250806152407-159881c7589c h1:QaImySzrLcGzQc4wCF2yDqqb73jA3+9EIqybgx8zT4w= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 999e3bf7b93..e9452cdcb91 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -64,7 +64,7 @@ require ( github.com/rs/zerolog v1.35.1 github.com/smartcontractkit/chain-selectors v1.0.108 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260624154507-ea7ff77a0ddb - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a github.com/smartcontractkit/chainlink-common/keystore v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute v1.3.0 github.com/smartcontractkit/chainlink-confidential-compute/tests/testhelpers v0.0.0-20260812145307-d77342c53d7d diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index ae543a44576..6188bf90e77 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1759,8 +1759,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260821001950-7520b255725e/go.mod h1:c++Ed0jeYn4w8WIfiAboRwN6ClRRVGglL0qwB/QjJvM= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182 h1:x0Upe32I18U2dG922M8OAq422KPxAuZBYLvc+lCIWjA= github.com/smartcontractkit/chainlink-ccv v0.4.1-0.20260824125235-2c733dbd7182/go.mod h1:d/Nk3xplHfdR9C8xB5uvhctGMFvqh/MmgWzUMqpXoaU= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f h1:c7ePc+mKfGj7A4AOMN09BLFyrxRpp6HhSVF+5fxNNtc= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825161728-e56dac65b24f/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a h1:GthV7DN0231Ev5FS52nAYl8ebyVMUf1wyEwpvnawmA4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260825200504-fc83f018151a/go.mod h1:HXAfE3CpzesS8GTPLc9W4S4spmBLBTLbGggb5VwK5HQ= github.com/smartcontractkit/chainlink-common/keystore v1.3.0 h1:V05Rp9/dTc4Wyipsk1EYnW3riZyjDVKmhz3769JpnHU= github.com/smartcontractkit/chainlink-common/keystore v1.3.0/go.mod h1:vHV8BGm6TN7jBbMsWxq1Hqm3HbCtYFwzvKS0CCczxG8= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260724142814-45996a1bcb72 h1:uWEwl7i2ryuRVoV4DmIKm6mqYevf1lH/8cQYhw/JXko=