Skip to content
Merged
5 changes: 5 additions & 0 deletions .changeset/ripe-foxes-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": patch
---

#bugfix Fixing atomic core swapper after logger init
2 changes: 1 addition & 1 deletion core/cmd/shell.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ type Shell struct {
Logger logger.Logger // initialized in Before
Registerer prometheus.Registerer // initialized in Before
CloseLogger func() error // called in After
SetOtelCore func(*zapcore.Core) // reference to AtomicCore.Store
SetOtelCore func(zapcore.Core) // reference to AtomicCore.Store
AppFactory AppFactory
KeyStoreAuthenticator TerminalKeyStoreAuthenticator
FallbackAPIInitializer APIInitializer
Expand Down
2 changes: 1 addition & 1 deletion core/cmd/shell_local.go
Original file line number Diff line number Diff line change
Expand Up @@ -1151,7 +1151,7 @@ func (s *Shell) beforeNode(c *cli.Context) error {
logLevel := s.Config.Telemetry().LogLevel()
otelCore := otelzap.NewCore(otelLogger, otelzap.WithLevel(logLevel))

s.SetOtelCore(&otelCore)
s.SetOtelCore(otelCore)
lggr.Info("Log streaming enabled")
}

Expand Down
88 changes: 29 additions & 59 deletions core/logger/logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/log/noop"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"go.uber.org/zap/zaptest/observer"

Expand Down Expand Up @@ -92,70 +91,41 @@ func TestOtelCore(t *testing.T) {
}
}

// TestAtomicCoreSwap tests the atomic core swap functionality after logger creation.
func TestAtomicCoreSwap(t *testing.T) {
// This test simulates two processes:
// 1. Process 1 creates a logger with an AtomicCore (initially noop)
// 2. Process 2 swaps in a new OTel core using SetOtelCore
// 3. Verify that subsequent logs go to both original and new cores
atomicCore := NewAtomicCore()
setOtelCore := atomicCore.Store

lggrCfg := Config{
LogLevel: zapcore.InfoLevel,
JsonConsole: true,
UnixTS: false,
FileMaxSizeMB: 0,
FileMaxAgeDays: 0,
FileMaxBackups: 0,
SentryEnabled: false,
}

// Create test cores that capture log entries
observedCore1, observedLogs1 := observer.New(zapcore.InfoLevel)
observedCore2, observedLogs2 := observer.New(zapcore.InfoLevel)
lggr, closeFn := lggrCfg.NewWithCores(atomicCore)
defer func() {
err := closeFn()
require.NoError(t, err)
}()

// Process 1: Create logger with AtomicCore
atomicCore := NewAtomicCore()
// Create observer to capture logs
otelCore, otelLogs := observer.New(zapcore.InfoLevel)

// Build the logger manually to have full control over cores
zcfg := newZapConfigBase()
zcfg.Level = zap.NewAtomicLevelAt(zapcore.InfoLevel)
lggr.Info("before swap")

// Create a tee with observedCore1 and atomicCore
teeCore := zapcore.NewTee(observedCore1, atomicCore)
assert.Equal(t, 0, otelLogs.Len(), "Expected no logs before core swap")

// Create logger with the combined core
errSink, _, err := zap.Open(zcfg.ErrorOutputPaths...)
require.NoError(t, err)
// Swap to the observer core
setOtelCore(otelCore)

zapLog := zap.New(teeCore, zap.ErrorOutput(errSink), zap.AddCaller(), zap.AddStacktrace(zapcore.ErrorLevel))
logger := &zapLogger{
level: zcfg.Level,
SugaredLogger: zapLog.Sugar(),
}
lggr.Info("after swap")

assert.Equal(t, 1, otelLogs.Len(), "Expected 1 log after core swap")
assert.Equal(t, "after swap", otelLogs.All()[0].Message)
assert.Equal(t, zapcore.InfoLevel, otelLogs.All()[0].Level)

// Log before swapping - should only go to observedCore1 (atomicCore is noop)
logger.Info("before swap")
assert.Equal(t, 1, observedLogs1.Len(), "Expected 1 log in observedCore1 before swap")
assert.Equal(t, 0, observedLogs2.Len(), "Expected 0 logs in observedCore2 before swap")

// Process 2: Swap in a new core (simulating SetOtelCore)
// In production, this would be an OTel core, but we use observedCore2 for verification
core2 := observedCore2
atomicCore.Store(&core2)

// Log after swapping - should go to both observedCore1 and observedCore2
logger.Info("after swap")
assert.Equal(t, 2, observedLogs1.Len(), "Expected 2 logs in observedCore1 after swap")
assert.Equal(t, 1, observedLogs2.Len(), "Expected 1 log in observedCore2 after swap")

// Verify the message in observedCore2
entries := observedLogs2.All()
require.Len(t, entries, 1)
assert.Equal(t, "after swap", entries[0].Message)
assert.Equal(t, zapcore.InfoLevel, entries[0].Level)

// Test with different log levels
logger.Debug("debug message")
// Debug is below InfoLevel, so shouldn't be logged
assert.Equal(t, 2, observedLogs1.Len(), "Debug should not be logged at Info level")
assert.Equal(t, 1, observedLogs2.Len(), "Debug should not be logged at Info level")

logger.Warn("warning message")
assert.Equal(t, 3, observedLogs1.Len(), "Warn should be logged")
assert.Equal(t, 2, observedLogs2.Len(), "Warn should be logged in both cores")

// Verify the second message in observedCore2
entries = observedLogs2.All()
require.Len(t, entries, 2)
assert.Equal(t, "warning message", entries[1].Message)
assert.Equal(t, zapcore.WarnLevel, entries[1].Level)
}
63 changes: 51 additions & 12 deletions core/logger/zap.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package logger

import (
"os"
"sync/atomic"
"slices"
"sync"
"weak"

pkgerrors "github.com/pkg/errors"
"go.uber.org/zap"
Expand All @@ -14,28 +16,46 @@ import (
var _ zapcore.Core = &AtomicCore{}

type AtomicCore struct {
atomic.Pointer[zapcore.Core]
mu sync.RWMutex
core zapcore.Core
children []weak.Pointer[withCore]
}

// NewAtomicCore creates a new AtomicCore initialized with a noop core
func NewAtomicCore() *AtomicCore {
ac := &AtomicCore{}
noop := zapcore.NewNopCore()
ac.Store(&noop)
return ac
return &AtomicCore{core: zapcore.NewNopCore()}
}

func (d *AtomicCore) Store(core zapcore.Core) {
d.mu.Lock()
defer d.mu.Unlock()
d.core = core
d.children = slices.DeleteFunc(d.children, func(p weak.Pointer[withCore]) bool {
c := p.Value()
if c == nil {
return true
}
c.Store(d.core)
return false
})
}

func (d *AtomicCore) load() zapcore.Core {
p := d.Load()
if p == nil {
return zapcore.NewNopCore()
}
return *p
d.mu.RLock()
defer d.mu.RUnlock()
return d.core
}

func (d *AtomicCore) Enabled(l zapcore.Level) bool { return d.load().Enabled(l) }

func (d *AtomicCore) With(fs []zapcore.Field) zapcore.Core { return d.load().With(fs) }
func (d *AtomicCore) With(fs []zapcore.Field) zapcore.Core {
d.mu.Lock()
defer d.mu.Unlock()
coreWithFields := d.core.With(fs)
w := &withCore{fields: fs, AtomicCore: AtomicCore{core: coreWithFields}}
d.children = append(d.children, weak.Make(w))
return w
}

func (d *AtomicCore) Check(e zapcore.Entry, ce *zapcore.CheckedEntry) *zapcore.CheckedEntry {
return d.load().Check(e, ce)
Expand All @@ -45,6 +65,25 @@ func (d *AtomicCore) Write(e zapcore.Entry, fs []zapcore.Field) error { return d

func (d *AtomicCore) Sync() error { return d.load().Sync() }

type withCore struct {
fields []zapcore.Field
AtomicCore
}

func (w *withCore) Store(core zapcore.Core) {
w.mu.Lock()
defer w.mu.Unlock()
w.core = core.With(w.fields)
w.children = slices.DeleteFunc(w.children, func(p weak.Pointer[withCore]) bool {
c := p.Value()
if c == nil {
return true
}
c.Store(w.core)
return false
})
}

var _ Logger = &zapLogger{}

type zapLogger struct {
Expand Down
4 changes: 2 additions & 2 deletions core/scripts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ require (
github.com/shopspring/decimal v1.4.0
github.com/smartcontractkit/chainlink-automation v0.8.1
github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251009203201-900123a5c46a
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1
github.com/smartcontractkit/chainlink-data-streams v0.1.6
github.com/smartcontractkit/chainlink-deployments-framework v0.56.0
github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251022194559-afe69ec20020
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8
github.com/smartcontractkit/chainlink-protos/job-distributor v0.13.1
github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.2
github.com/smartcontractkit/chainlink-testing-framework/framework/components/dockercompose v0.1.16
Expand Down
8 changes: 4 additions & 4 deletions core/scripts/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1599,8 +1599,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-f
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:Ve1xD71bl193YIZQEoJMmBqLGQJdNs29bwbuObwvbhQ=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 h1:Z4t2ZY+ZyGWxtcXvPr11y4o3CGqhg3frJB5jXkCSvWA=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a h1:CoErLc04q7N3pwQ5+ko/0rV5wOYPuzA0iNB67wLZgMw=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a/go.mod h1:xmVGqtE4P3pAfENbJYTq86CfhQfwn622CQabYRJtPy4=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1 h1:+ELLSZF82q/hhoATWYbz9g2nitEVVW+MwKw0dzL3Oz4=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1/go.mod h1:bweMpOLYCumPXnYBIPRAH4dbvVRtPmyVB+8TSzh0ILY=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.9-0.20251020192327-c433c5906b14 h1:5K4U9ZYDr11i530QZxbmVboxaOKSID7gr4bT2miQR8E=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.9-0.20251020192327-c433c5906b14/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY=
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw=
Expand All @@ -1625,8 +1625,8 @@ github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942/go.mod h1:2JTBNp3FlRdO/nHc4dsc9bfxxMClMO1Qt8sLJgtreBY=
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066 h1:D7fFxHtPZNKKh1eWcTqpasb/aBGxnQ2REssEP49l1lg=
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066/go.mod h1:HHGeDUpAsPa0pmOx7wrByCitjQ0mbUxf0R9v+g67uCA=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba h1:M+tG22TF6jpfeGifM4UpjUzbfD2JDD3ixIX9MdZ0qH8=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8 h1:hPeEwcvRVtwhyNXH45qbzqmscqlbygu94cROwbjyzNQ=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q=
github.com/smartcontractkit/chainlink-protos/job-distributor v0.13.1 h1:PWwLGimBt37eDzpbfZ9V/ZkW4oCjcwKjKiAwKlSfPc0=
github.com/smartcontractkit/chainlink-protos/job-distributor v0.13.1/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE=
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b h1:QuI6SmQFK/zyUlVWEf0GMkiUYBPY4lssn26nKSd/bOM=
Expand Down
4 changes: 2 additions & 2 deletions deployment/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ require (
github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251009203201-900123a5c46a
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1
github.com/smartcontractkit/chainlink-deployments-framework v0.56.0
github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251022194559-afe69ec20020
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8
github.com/smartcontractkit/chainlink-protos/job-distributor v0.13.1
github.com/smartcontractkit/chainlink-protos/orchestrator v0.10.0
github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251020193713-b63bc17bfeb1
Expand Down
8 changes: 4 additions & 4 deletions deployment/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1336,8 +1336,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-f
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:Ve1xD71bl193YIZQEoJMmBqLGQJdNs29bwbuObwvbhQ=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 h1:Z4t2ZY+ZyGWxtcXvPr11y4o3CGqhg3frJB5jXkCSvWA=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a h1:CoErLc04q7N3pwQ5+ko/0rV5wOYPuzA0iNB67wLZgMw=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a/go.mod h1:xmVGqtE4P3pAfENbJYTq86CfhQfwn622CQabYRJtPy4=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1 h1:+ELLSZF82q/hhoATWYbz9g2nitEVVW+MwKw0dzL3Oz4=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1/go.mod h1:bweMpOLYCumPXnYBIPRAH4dbvVRtPmyVB+8TSzh0ILY=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.9-0.20251020192327-c433c5906b14 h1:5K4U9ZYDr11i530QZxbmVboxaOKSID7gr4bT2miQR8E=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.9-0.20251020192327-c433c5906b14/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY=
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw=
Expand All @@ -1362,8 +1362,8 @@ github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942/go.mod h1:2JTBNp3FlRdO/nHc4dsc9bfxxMClMO1Qt8sLJgtreBY=
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066 h1:D7fFxHtPZNKKh1eWcTqpasb/aBGxnQ2REssEP49l1lg=
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066/go.mod h1:HHGeDUpAsPa0pmOx7wrByCitjQ0mbUxf0R9v+g67uCA=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba h1:M+tG22TF6jpfeGifM4UpjUzbfD2JDD3ixIX9MdZ0qH8=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8 h1:hPeEwcvRVtwhyNXH45qbzqmscqlbygu94cROwbjyzNQ=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q=
github.com/smartcontractkit/chainlink-protos/job-distributor v0.13.1 h1:PWwLGimBt37eDzpbfZ9V/ZkW4oCjcwKjKiAwKlSfPc0=
github.com/smartcontractkit/chainlink-protos/job-distributor v0.13.1/go.mod h1:/dVVLXrsp+V0AbcYGJo3XMzKg3CkELsweA/TTopCsKE=
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b h1:QuI6SmQFK/zyUlVWEf0GMkiUYBPY4lssn26nKSd/bOM=
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ require (
github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251009203201-900123a5c46a
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1
github.com/smartcontractkit/chainlink-data-streams v0.1.6
github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251022194559-afe69ec20020
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b
Expand All @@ -93,7 +93,7 @@ require (
github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20251021173435-e86785845942
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b
github.com/smartcontractkit/chainlink-protos/orchestrator v0.10.0
github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1113,8 +1113,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-f
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:Ve1xD71bl193YIZQEoJMmBqLGQJdNs29bwbuObwvbhQ=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 h1:Z4t2ZY+ZyGWxtcXvPr11y4o3CGqhg3frJB5jXkCSvWA=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a h1:CoErLc04q7N3pwQ5+ko/0rV5wOYPuzA0iNB67wLZgMw=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251022080338-3fe067fa640a/go.mod h1:xmVGqtE4P3pAfENbJYTq86CfhQfwn622CQabYRJtPy4=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1 h1:+ELLSZF82q/hhoATWYbz9g2nitEVVW+MwKw0dzL3Oz4=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20251023122816-20bf9584c7f1/go.mod h1:bweMpOLYCumPXnYBIPRAH4dbvVRtPmyVB+8TSzh0ILY=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.9-0.20251020192327-c433c5906b14 h1:5K4U9ZYDr11i530QZxbmVboxaOKSID7gr4bT2miQR8E=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.9-0.20251020192327-c433c5906b14/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY=
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw=
Expand All @@ -1137,8 +1137,8 @@ github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-
github.com/smartcontractkit/chainlink-framework/multinode v0.0.0-20251021173435-e86785845942/go.mod h1:2JTBNp3FlRdO/nHc4dsc9bfxxMClMO1Qt8sLJgtreBY=
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066 h1:D7fFxHtPZNKKh1eWcTqpasb/aBGxnQ2REssEP49l1lg=
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251020004840-4638e4262066/go.mod h1:HHGeDUpAsPa0pmOx7wrByCitjQ0mbUxf0R9v+g67uCA=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba h1:M+tG22TF6jpfeGifM4UpjUzbfD2JDD3ixIX9MdZ0qH8=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251008161434-22d9bd439bba/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8 h1:hPeEwcvRVtwhyNXH45qbzqmscqlbygu94cROwbjyzNQ=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251021010742-3f8d3dba17d8/go.mod h1:jUC52kZzEnWF9tddHh85zolKybmLpbQ1oNA4FjOHt1Q=
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b h1:QuI6SmQFK/zyUlVWEf0GMkiUYBPY4lssn26nKSd/bOM=
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b/go.mod h1:qSTSwX3cBP3FKQwQacdjArqv0g6QnukjV4XuzO6UyoY=
github.com/smartcontractkit/chainlink-protos/orchestrator v0.10.0 h1:0eroOyBwmdoGUwUdvMI0/J7m5wuzNnJDMglSOK1sfNY=
Expand Down
Loading
Loading