From 9bea202fc450e64518e94d6a20369168030ca0cb Mon Sep 17 00:00:00 2001 From: Russell Stern Date: Fri, 29 May 2026 14:50:26 -0400 Subject: [PATCH 1/4] Added an automated pending queue purge in vault --- core/scripts/go.mod | 8 +- core/scripts/go.sum | 16 +- core/services/ocr2/plugins/vault/kvstore.go | 26 ++- .../ocr2/plugins/vault/kvstore_test.go | 11 +- core/services/ocr2/plugins/vault/metrics.go | 39 +++++ core/services/ocr2/plugins/vault/plugin.go | 135 +++++++++++---- .../ocr2/plugins/vault/plugin_helpers_test.go | 50 ++++-- .../ocr2/plugins/vault/plugin_test.go | 163 +++++++++++++++++- deployment/go.mod | 8 +- deployment/go.sum | 16 +- go.mod | 8 +- go.sum | 16 +- integration-tests/go.mod | 8 +- integration-tests/go.sum | 16 +- integration-tests/load/go.mod | 8 +- integration-tests/load/go.sum | 16 +- system-tests/lib/go.mod | 8 +- system-tests/lib/go.sum | 16 +- system-tests/tests/go.mod | 8 +- system-tests/tests/go.sum | 16 +- 20 files changed, 454 insertions(+), 138 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 177eb23fbc5..b19e8ef92a4 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -43,7 +43,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.101 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260506144252-c100eabfda74 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-data-streams v0.1.15-0.20260522094612-5f9f748bd87a github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 @@ -598,12 +598,12 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/crypto v0.51.0 // indirect + golang.org/x/crypto v0.52.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.54.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/sys v0.45.0 // indirect golang.org/x/term v0.43.0 // indirect golang.org/x/time v0.15.0 // indirect golang.org/x/tools v0.45.0 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index f09f69db22b..c2e0a8ce800 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1571,8 +1571,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -2009,8 +2009,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2111,8 +2111,8 @@ 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.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2234,8 +2234,8 @@ 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.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/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= diff --git a/core/services/ocr2/plugins/vault/kvstore.go b/core/services/ocr2/plugins/vault/kvstore.go index 1e27d263d10..95c02ec268a 100644 --- a/core/services/ocr2/plugins/vault/kvstore.go +++ b/core/services/ocr2/plugins/vault/kvstore.go @@ -35,6 +35,7 @@ type ReadKVStore interface { GetSecret(ctx context.Context, id *vault.SecretIdentifier) (*vault.StoredSecret, error) GetMetadata(ctx context.Context, owner string) (*vault.StoredMetadata, error) GetSecretIdentifiersCountForOwner(ctx context.Context, owner string) (int, error) + GetPendingQueueIndex(ctx context.Context) (*vault.StoredPendingQueueIndex, error) GetPendingQueue(ctx context.Context) ([]*vault.StoredPendingQueueItem, error) } @@ -43,7 +44,7 @@ type WriteKVStore interface { WriteSecret(ctx context.Context, id *vault.SecretIdentifier, secret *vault.StoredSecret) error WriteMetadata(ctx context.Context, owner string, metadata *vault.StoredMetadata) error DeleteSecret(ctx context.Context, id *vault.SecretIdentifier) error - WritePendingQueue(ctx context.Context, pending []*vault.StoredPendingQueueItem) error + WritePendingQueue(ctx context.Context, pending []*vault.StoredPendingQueueItem, writtenSeqNr uint64) error } func NewReadStore(reader ocr3_1types.KeyValueStateReader, metrics *pluginMetrics) *KVStore { @@ -268,8 +269,8 @@ func (s *KVStore) DeleteSecret(ctx context.Context, id *vault.SecretIdentifier) return nil } -func (s *KVStore) GetPendingQueue(ctx context.Context) ([]*vault.StoredPendingQueueItem, error) { - defer s.trackDuration(ctx, "GetPendingQueue", time.Now()) +func (s *KVStore) GetPendingQueueIndex(ctx context.Context) (*vault.StoredPendingQueueIndex, error) { + defer s.trackDuration(ctx, "GetPendingQueueIndex", time.Now()) indexBytes, err := s.reader.Read([]byte(pendingQueueIndex)) if err != nil { return nil, fmt.Errorf("failed to read pending queue index: %w", err) @@ -285,6 +286,20 @@ func (s *KVStore) GetPendingQueue(ctx context.Context) ([]*vault.StoredPendingQu return nil, fmt.Errorf("failed to unmarshal pending queue index: %w", err) } + return index, nil +} + +func (s *KVStore) GetPendingQueue(ctx context.Context) ([]*vault.StoredPendingQueueItem, error) { + defer s.trackDuration(ctx, "GetPendingQueue", time.Now()) + index, err := s.GetPendingQueueIndex(ctx) + if err != nil { + return nil, err + } + + if index == nil { + return nil, nil + } + items := make([]*vault.StoredPendingQueueItem, 0, index.Length) for i := range index.Length { itemBytes, err := s.reader.Read([]byte(pendingQueueItemPrefix + strconv.Itoa(int(i)))) @@ -334,7 +349,7 @@ func (s *KVStore) deletePendingQueue() error { return nil } -func (s *KVStore) WritePendingQueue(ctx context.Context, pending []*vault.StoredPendingQueueItem) error { +func (s *KVStore) WritePendingQueue(ctx context.Context, pending []*vault.StoredPendingQueueItem, writtenSeqNr uint64) error { defer s.trackDuration(ctx, "WritePendingQueue", time.Now()) err := s.deletePendingQueue() if err != nil { @@ -353,7 +368,8 @@ func (s *KVStore) WritePendingQueue(ctx context.Context, pending []*vault.Stored } newIndex := &vault.StoredPendingQueueIndex{ - Length: int64(len(pending)), + Length: int64(len(pending)), + WrittenSeqNr: writtenSeqNr, } newIndexBytes, err := proto.Marshal(newIndex) if err != nil { diff --git a/core/services/ocr2/plugins/vault/kvstore_test.go b/core/services/ocr2/plugins/vault/kvstore_test.go index 391f4554e40..087228b9a46 100644 --- a/core/services/ocr2/plugins/vault/kvstore_test.go +++ b/core/services/ocr2/plugins/vault/kvstore_test.go @@ -422,7 +422,8 @@ func TestKVStore_WritePendingRequests(t *testing.T) { Id: "test-request-id-3", Item: empty, } - err = store.WritePendingQueue(t.Context(), []*vault.StoredPendingQueueItem{item, item2, item3}) + const writtenSeqNr = uint64(42) + err = store.WritePendingQueue(t.Context(), []*vault.StoredPendingQueueItem{item, item2, item3}, writtenSeqNr) require.NoError(t, err) // Ensure index is correctly written. @@ -433,6 +434,12 @@ func TestKVStore_WritePendingRequests(t *testing.T) { } require.NoError(t, proto.Unmarshal(indexBytes.data, index)) assert.Equal(t, int64(3), index.Length) + assert.Equal(t, writtenSeqNr, index.WrittenSeqNr) + + indexFromStore, err := store.GetPendingQueueIndex(t.Context()) + require.NoError(t, err) + require.NotNil(t, indexFromStore) + assert.Equal(t, writtenSeqNr, indexFromStore.WrittenSeqNr) // Ensure queue items are correctly written. itemBytes, exists := kv.m[pendingQueueItemPrefix+"0"] @@ -454,7 +461,7 @@ func TestKVStore_WritePendingRequests(t *testing.T) { assert.Equal(t, "test-request-id-3", item2.Id) // Writing a shorter list deletes the old one. - err = store.WritePendingQueue(t.Context(), []*vault.StoredPendingQueueItem{item, item2}) + err = store.WritePendingQueue(t.Context(), []*vault.StoredPendingQueueItem{item, item2}, 99) require.NoError(t, err) _, exists = kv.m[pendingQueueItemPrefix+"3"] diff --git a/core/services/ocr2/plugins/vault/metrics.go b/core/services/ocr2/plugins/vault/metrics.go index 224f6d5a86d..998f0620a4c 100644 --- a/core/services/ocr2/plugins/vault/metrics.go +++ b/core/services/ocr2/plugins/vault/metrics.go @@ -18,6 +18,8 @@ type pluginMetrics struct { localQueueSize metric.Int64Histogram observationPendingPackedItems metric.Int64Histogram pendingQueueWrittenSize metric.Int64Histogram + pendingQueueStaleAutoEmpty metric.Int64Counter + localQueueBlobSkipped metric.Int64Counter } func newPluginMetrics(configDigest string) (*pluginMetrics, error) { @@ -61,6 +63,22 @@ func newPluginMetrics(configDigest string) (*pluginMetrics, error) { return nil, fmt.Errorf("failed to create pending queue written size histogram: %w", err) } + pendingQueueStaleAutoEmpty, err := beholder.GetMeter().Int64Counter( + "platform_vault_plugin_pending_queue_stale_auto_empty_total", + metric.WithDescription("OCR rounds that skipped store-backed pending queue observations due to stale written_seq_nr."), + ) + if err != nil { + return nil, fmt.Errorf("failed to create pending queue stale auto empty counter: %w", err) + } + + localQueueBlobSkipped, err := beholder.GetMeter().Int64Counter( + "platform_vault_plugin_local_queue_blob_skipped_total", + metric.WithDescription("Local queue items skipped during Observation because a single blob payload exceeded max size."), + ) + if err != nil { + return nil, fmt.Errorf("failed to create local queue blob skipped counter: %w", err) + } + return &pluginMetrics{ configDigest: configDigest, queueOverflow: queueOverflow, @@ -68,6 +86,8 @@ func newPluginMetrics(configDigest string) (*pluginMetrics, error) { localQueueSize: localQueueSize, observationPendingPackedItems: observationPendingPackedItems, pendingQueueWrittenSize: pendingQueueWrittenSize, + pendingQueueStaleAutoEmpty: pendingQueueStaleAutoEmpty, + localQueueBlobSkipped: localQueueBlobSkipped, }, nil } @@ -119,3 +139,22 @@ func (m *pluginMetrics) trackPendingQueueWrittenSize(ctx context.Context, writte attribute.String("configDigest", m.configDigest), )) } + +func (m *pluginMetrics) trackPendingQueueStaleAutoEmpty(ctx context.Context) { + if m == nil { + return + } + m.pendingQueueStaleAutoEmpty.Add(ctx, 1, metric.WithAttributes( + attribute.String("configDigest", m.configDigest), + )) +} + +func (m *pluginMetrics) trackLocalQueueBlobSkipped(ctx context.Context, requestID string) { + if m == nil { + return + } + m.localQueueBlobSkipped.Add(ctx, 1, metric.WithAttributes( + attribute.String("configDigest", m.configDigest), + attribute.String("requestID", requestID), + )) +} diff --git a/core/services/ocr2/plugins/vault/plugin.go b/core/services/ocr2/plugins/vault/plugin.go index 02d63fe1165..22dbf30faad 100644 --- a/core/services/ocr2/plugins/vault/plugin.go +++ b/core/services/ocr2/plugins/vault/plugin.go @@ -54,17 +54,19 @@ type ReportingPluginConfig struct { PrivateKeyShare *tdh2easy.PrivateShare // Sourced from the offchain config - MaxSecretsPerOwner limits.BoundLimiter[int] - MaxCiphertextLengthBytes limits.BoundLimiter[pkgconfig.Size] - MaxIdentifierKeyLengthBytes limits.BoundLimiter[pkgconfig.Size] - MaxIdentifierOwnerLengthBytes limits.BoundLimiter[pkgconfig.Size] - MaxIdentifierNamespaceLengthBytes limits.BoundLimiter[pkgconfig.Size] - MaxShareLengthBytes limits.BoundLimiter[pkgconfig.Size] - MaxRequestBatchSize limits.BoundLimiter[int] - MaxBatchSize limits.BoundLimiter[int] - MaxBlobPayloadBytes limits.BoundLimiter[pkgconfig.Size] - VaultForceEmptyOCRRounds limits.GateLimiter - VaultOptimizationsEnabled limits.GateLimiter + MaxSecretsPerOwner limits.BoundLimiter[int] + MaxCiphertextLengthBytes limits.BoundLimiter[pkgconfig.Size] + MaxIdentifierKeyLengthBytes limits.BoundLimiter[pkgconfig.Size] + MaxIdentifierOwnerLengthBytes limits.BoundLimiter[pkgconfig.Size] + MaxIdentifierNamespaceLengthBytes limits.BoundLimiter[pkgconfig.Size] + MaxShareLengthBytes limits.BoundLimiter[pkgconfig.Size] + MaxRequestBatchSize limits.BoundLimiter[int] + MaxBatchSize limits.BoundLimiter[int] + MaxBlobPayloadBytes limits.BoundLimiter[pkgconfig.Size] + VaultForceEmptyOCRRounds limits.GateLimiter + VaultOptimizationsEnabled limits.GateLimiter + VaultPendingQueueStaleAutoEmpty limits.GateLimiter + VaultPendingQueueStaleRoundThreshold limits.BoundLimiter[int] } func NewReportingPluginFactory( @@ -214,21 +216,33 @@ func newReportingPluginConfigLimiters(factory limits.Factory) (*ReportingPluginC return nil, fmt.Errorf("VaultOptimizationsEnabled: %w", err) } + vaultPendingQueueStaleAutoEmpty, err := limits.MakeGateLimiter(factory, cresettings.Default.VaultPendingQueueStaleAutoEmpty) + if err != nil { + return nil, fmt.Errorf("VaultPendingQueueStaleAutoEmpty: %w", err) + } + + vaultPendingQueueStaleRoundThreshold, err := limits.MakeUpperBoundLimiter(factory, cresettings.Default.VaultPendingQueueStaleRoundThreshold) + if err != nil { + return nil, fmt.Errorf("VaultPendingQueueStaleRoundThreshold: %w", err) + } + maxBlobPayloadBytesLimiter, err := limits.MakeUpperBoundLimiter(factory, cresettings.Default.VaultMaxBlobPayloadSizeLimit) if err != nil { return nil, fmt.Errorf("VaultMaxBlobPayloadSizeLimit: %w", err) } return &ReportingPluginConfig{ - MaxShareLengthBytes: maxShareLengthBytesLimiter, - MaxRequestBatchSize: maxRequestBatchSizeLimiter, - MaxCiphertextLengthBytes: maxCiphertextLengthBytesLimiter, - MaxIdentifierKeyLengthBytes: maxIdentifierKeyLengthBytesLimiter, - MaxIdentifierOwnerLengthBytes: maxIdentifierOwnerLengthBytesLimiter, - MaxIdentifierNamespaceLengthBytes: maxIdentifierNamespaceLengthBytesLimiter, - MaxBlobPayloadBytes: maxBlobPayloadBytesLimiter, - VaultForceEmptyOCRRounds: vaultForceEmptyOCRRounds, - VaultOptimizationsEnabled: vaultOptimizationsEnabled, + MaxShareLengthBytes: maxShareLengthBytesLimiter, + MaxRequestBatchSize: maxRequestBatchSizeLimiter, + MaxCiphertextLengthBytes: maxCiphertextLengthBytesLimiter, + MaxIdentifierKeyLengthBytes: maxIdentifierKeyLengthBytesLimiter, + MaxIdentifierOwnerLengthBytes: maxIdentifierOwnerLengthBytesLimiter, + MaxIdentifierNamespaceLengthBytes: maxIdentifierNamespaceLengthBytesLimiter, + MaxBlobPayloadBytes: maxBlobPayloadBytesLimiter, + VaultForceEmptyOCRRounds: vaultForceEmptyOCRRounds, + VaultOptimizationsEnabled: vaultOptimizationsEnabled, + VaultPendingQueueStaleAutoEmpty: vaultPendingQueueStaleAutoEmpty, + VaultPendingQueueStaleRoundThreshold: vaultPendingQueueStaleRoundThreshold, }, nil } @@ -512,7 +526,14 @@ func (r *ReportingPlugin) prepareObservationPendingQueueBlobs( if len(payload) > maxBlobBytes { if len(currentBatch) == 0 { - return pendingQueueBlobPack{}, fmt.Errorf("single pending queue item exceeds max blob payload size (%d > %d)", len(payload), maxBlobBytes) + r.lggr.Errorw("local queue item exceeds max blob payload size, skipping", + "seqNr", seqNr, + "requestID", queueItem.ID(), + "payloadBytes", len(payload), + "maxBlobBytes", maxBlobBytes, + ) + r.metrics.trackLocalQueueBlobSkipped(ctx, queueItem.ID()) + continue } // Current batch is full; flush it and retry the same item on the next iteration. var ferr error @@ -593,7 +614,44 @@ func (r *ReportingPlugin) optimizationsEnabled(ctx context.Context) bool { } type pendingQueueStore interface { - WritePendingQueue(ctx context.Context, pending []*vaultcommon.StoredPendingQueueItem) error + WritePendingQueue(ctx context.Context, pending []*vaultcommon.StoredPendingQueueItem, writtenSeqNr uint64) error +} + +// skipStoreBackedPendingQueue reports whether Observation/ValidateObservation should skip +// reading the KV pending queue this round (manual force-empty or stale-queue TTL). +func (r *ReportingPlugin) skipStoreBackedPendingQueue(ctx context.Context, seqNr uint64, readKV *KVStore) (skip bool, reason string, err error) { + if gateAllows(ctx, r.lggr, r.cfg.VaultForceEmptyOCRRounds, "VaultForceEmptyOCRRounds") { + return true, "VaultForceEmptyOCRRounds", nil + } + + if !gateAllows(ctx, r.lggr, r.cfg.VaultPendingQueueStaleAutoEmpty, "VaultPendingQueueStaleAutoEmpty") { + return false, "", nil + } + + index, err := readKV.GetPendingQueueIndex(ctx) + if err != nil { + return false, "", err + } + if index == nil || index.Length == 0 || index.WrittenSeqNr == 0 { + return false, "", nil + } + + threshold, err := r.cfg.VaultPendingQueueStaleRoundThreshold.Limit(ctx) + if err != nil { + return false, "", fmt.Errorf("could not fetch VaultPendingQueueStaleRoundThreshold: %w", err) + } + + if seqNr < index.WrittenSeqNr { + return false, "", nil + } + + lag := seqNr - index.WrittenSeqNr + if lag < uint64(threshold) { + return false, "", nil + } + + r.metrics.trackPendingQueueStaleAutoEmpty(ctx) + return true, "VaultPendingQueueStaleAutoEmpty", nil } func (r *ReportingPlugin) Observation(ctx context.Context, seqNr uint64, aq types.AttributedQuery, keyValueReader ocr3_1types.KeyValueStateReader, blobBroadcastFetcher ocr3_1types.BlobBroadcastFetcher) (types.Observation, error) { @@ -605,14 +663,20 @@ func (r *ReportingPlugin) Observation(ctx context.Context, seqNr uint64, aq type readKV := NewReadStore(keyValueReader, r.metrics) var currentPendingQueueItems []*vaultcommon.StoredPendingQueueItem - if !gateAllows(ctx, r.lggr, r.cfg.VaultForceEmptyOCRRounds, "VaultForceEmptyOCRRounds") { - var err error + skipStoreBacked, skipReason, err := r.skipStoreBackedPendingQueue(ctx, seqNr, readKV) + if err != nil { + return nil, err + } + if skipStoreBacked { + r.lggr.Warnw("store-backed pending queue is not read this OCR round — pending observation items are skipped", + "reason", skipReason, + "seqNr", seqNr, + ) + } else { currentPendingQueueItems, err = readKV.GetPendingQueue(ctx) if err != nil { return nil, fmt.Errorf("could not fetch batch of requests: %w", err) } - } else { - r.lggr.Warnw("VaultForceEmptyOCRRounds is enabled; pending queue is not read this OCR round — store-backed pending observation items are skipped") } // Avoid log spam by only logging if we have any requests to process. @@ -1353,14 +1417,20 @@ func (r *ReportingPlugin) ValidateObservation(ctx context.Context, seqNr uint64, // - that all pending queue items can be fetched as blobs. readKV := NewReadStore(keyValueReader, r.metrics) var pendingQueueItems []*vaultcommon.StoredPendingQueueItem - if !gateAllows(ctx, r.lggr, r.cfg.VaultForceEmptyOCRRounds, "VaultForceEmptyOCRRounds") { - var err error + skipStoreBacked, skipReason, err := r.skipStoreBackedPendingQueue(ctx, seqNr, readKV) + if err != nil { + return err + } + if skipStoreBacked { + r.lggr.Warnw("store-backed pending queue is not read this OCR round — pending observation items are skipped", + "reason", skipReason, + "seqNr", seqNr, + ) + } else { pendingQueueItems, err = readKV.GetPendingQueue(ctx) if err != nil { return fmt.Errorf("could not fetch pending queue from store: %w", err) } - } else { - r.lggr.Warnw("VaultForceEmptyOCRRounds is enabled; pending queue is not read this OCR round — store-backed pending observation items are skipped") } pendingIDs := map[string]bool{} @@ -1965,7 +2035,7 @@ func (r *ReportingPlugin) stateTransitionPendingQueue(ctx context.Context, seqNr r.lifecycle.RecordWrittenToPendingQueue(ctx, it.Id, seqNr, now) } - return store.WritePendingQueue(ctx, keptItems) + return store.WritePendingQueue(ctx, keptItems, seqNr) } func sortKey(id string, nonce []byte) []byte { @@ -2563,5 +2633,8 @@ func (r *ReportingPlugin) Close() error { r.cfg.MaxRequestBatchSize.Close(), r.cfg.MaxBatchSize.Close(), r.cfg.VaultForceEmptyOCRRounds.Close(), + r.cfg.VaultOptimizationsEnabled.Close(), + r.cfg.VaultPendingQueueStaleAutoEmpty.Close(), + r.cfg.VaultPendingQueueStaleRoundThreshold.Close(), ) } diff --git a/core/services/ocr2/plugins/vault/plugin_helpers_test.go b/core/services/ocr2/plugins/vault/plugin_helpers_test.go index 178bd4740a9..3d8a9fb335b 100644 --- a/core/services/ocr2/plugins/vault/plugin_helpers_test.go +++ b/core/services/ocr2/plugins/vault/plugin_helpers_test.go @@ -36,6 +36,9 @@ type testPluginBuildOpts struct { batchSize int maxBlobPayloadBytes int vaultOptimizationsEnabled bool + vaultForceEmptyOCRRounds bool + vaultPendingQueueStaleAutoEmpty bool + vaultPendingQueueStaleRoundThreshold int marshalBlob func(ocr3_1types.BlobHandle) ([]byte, error) unmarshalBlob func([]byte) (ocr3_1types.BlobHandle, error) maxObservationBytesOverride int @@ -77,6 +80,18 @@ func withVaultOptimizationsEnabled() testPluginOption { return func(o *testPluginBuildOpts) { o.vaultOptimizationsEnabled = true } } +func withVaultForceEmptyOCRRounds() testPluginOption { + return func(o *testPluginBuildOpts) { o.vaultForceEmptyOCRRounds = true } +} + +func withVaultPendingQueueStaleAutoEmpty() testPluginOption { + return func(o *testPluginBuildOpts) { o.vaultPendingQueueStaleAutoEmpty = true } +} + +func withVaultPendingQueueStaleRoundThreshold(n int) testPluginOption { + return func(o *testPluginBuildOpts) { o.vaultPendingQueueStaleRoundThreshold = n } +} + func withOnchainCfg(n int, f int) testPluginOption { return func(o *testPluginBuildOpts) { o.onchainCfg = ocr3types.ReportingPluginConfig{N: n, F: f} @@ -133,6 +148,15 @@ func newTestReportingPlugin(t *testing.T, opts ...testPluginOption) *ReportingPl if o.vaultOptimizationsEnabled { cfg.VaultOptimizationsEnabled = limits.NewGateLimiter(true) } + if o.vaultForceEmptyOCRRounds { + cfg.VaultForceEmptyOCRRounds = limits.NewGateLimiter(true) + } + if o.vaultPendingQueueStaleAutoEmpty { + cfg.VaultPendingQueueStaleAutoEmpty = limits.NewGateLimiter(true) + } + if o.vaultPendingQueueStaleRoundThreshold > 0 { + cfg.VaultPendingQueueStaleRoundThreshold = limits.NewBoundLimiter(o.vaultPendingQueueStaleRoundThreshold) + } ctx := context.Background() pl, err := initializePluginLimits(ctx, limits.Factory{Settings: cresettings.DefaultGetter}) require.NoError(t, err) @@ -219,18 +243,20 @@ func makeReportingPluginConfig( return &ReportingPluginConfig{ MaxBatchSize: bsl, - PublicKey: publicKey, - PrivateKeyShare: privateKeyShare, - MaxSecretsPerOwner: msl, - MaxShareLengthBytes: shareLimiter, - MaxCiphertextLengthBytes: cipherTextLimiter, - MaxIdentifierOwnerLengthBytes: ownerLimiter, - MaxIdentifierNamespaceLengthBytes: namespaceOwnerLimiter, - MaxIdentifierKeyLengthBytes: keyLimiter, - MaxRequestBatchSize: requestBatchSizeLimiter, - MaxBlobPayloadBytes: maxBlobPayloadLimiter, - VaultForceEmptyOCRRounds: limits.NewGateLimiter(false), - VaultOptimizationsEnabled: limits.NewGateLimiter(false), + PublicKey: publicKey, + PrivateKeyShare: privateKeyShare, + MaxSecretsPerOwner: msl, + MaxShareLengthBytes: shareLimiter, + MaxCiphertextLengthBytes: cipherTextLimiter, + MaxIdentifierOwnerLengthBytes: ownerLimiter, + MaxIdentifierNamespaceLengthBytes: namespaceOwnerLimiter, + MaxIdentifierKeyLengthBytes: keyLimiter, + MaxRequestBatchSize: requestBatchSizeLimiter, + MaxBlobPayloadBytes: maxBlobPayloadLimiter, + VaultForceEmptyOCRRounds: limits.NewGateLimiter(false), + VaultOptimizationsEnabled: limits.NewGateLimiter(false), + VaultPendingQueueStaleAutoEmpty: limits.NewGateLimiter(false), + VaultPendingQueueStaleRoundThreshold: limits.NewUpperBoundLimiter(60), } } diff --git a/core/services/ocr2/plugins/vault/plugin_test.go b/core/services/ocr2/plugins/vault/plugin_test.go index 7affe575a76..224291fa93f 100644 --- a/core/services/ocr2/plugins/vault/plugin_test.go +++ b/core/services/ocr2/plugins/vault/plugin_test.go @@ -310,6 +310,7 @@ func TestPlugin_Observation_GetSecretsRequest_OmitsRequestWhenOptimizationsEnabl rdr := &kv{m: make(map[string]response)} require.NoError(t, newTestWriteStore(t, rdr).WritePendingQueue(t.Context(), []*vaultcommon.StoredPendingQueueItem{{Id: "request-1", Item: anyp}}, + 0, )) data, err := r.Observation(t.Context(), 1, types.AttributedQuery{}, rdr, &blobber{}) @@ -426,6 +427,7 @@ func TestPlugin_Observation_PendingQueueEnabled_WithPendingQueueProvided(t *test []*vaultcommon.StoredPendingQueueItem{ {Id: "request-3", Item: anyd}, }, + 0, ) require.NoError(t, err) @@ -502,6 +504,7 @@ func TestPlugin_Observation_PendingQueueEnabled_ItemBothInPendingQueueAndLocalQu []*vaultcommon.StoredPendingQueueItem{ {Id: "request-2", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -733,7 +736,7 @@ func TestPrepareObservationPendingQueueBlobs_truncatesWhenHandleCountExceeded(t require.Equal(t, maxBlobHandleCount, pack.packedItemCount) } -func TestPrepareObservationPendingQueueBlobs_errorWhenSingleItemTooLarge(t *testing.T) { +func TestPrepareObservationPendingQueueBlobs_skipsWhenSingleItemTooLarge(t *testing.T) { store := requests.NewStore[*vaulttypes.Request]() r := newTestReportingPlugin(t, withStore(store), withVaultOptimizationsEnabled()) @@ -749,9 +752,10 @@ func TestPrepareObservationPendingQueueBlobs_errorWhenSingleItemTooLarge(t *test localQueueItems, err := store.All() require.NoError(t, err) - _, err = r.prepareObservationPendingQueueBlobs(t.Context(), 1, localQueueItems, map[string]bool{}, 1, 10) - require.Error(t, err) - require.Contains(t, err.Error(), "single pending queue item exceeds max blob payload size") + pack, err := r.prepareObservationPendingQueueBlobs(t.Context(), 1, localQueueItems, map[string]bool{}, 1, 10) + require.NoError(t, err) + assert.Empty(t, pack.blobPayloads) + assert.Equal(t, 0, pack.packedItemCount) } type blockingBlobBroadcastFetcher struct { @@ -996,6 +1000,7 @@ func TestPlugin_Observation_GetSecretsRequest_SecretIdentifierInvalid(t *testing []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) bf := &blobber{} @@ -1071,6 +1076,7 @@ func TestPlugin_Observation_GetSecretsRequest_ResponseUsesCanonicalIdentifier(t []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) seqNr := uint64(1) @@ -1137,6 +1143,7 @@ func TestPlugin_Observation_GetSecretsRequest_WorkflowOwnerLabelAccepted(t *test []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -1198,6 +1205,7 @@ func TestPlugin_Observation_GetSecretsRequest_WrongOwnerLabelRejected(t *testing []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -1240,6 +1248,7 @@ func TestPlugin_Observation_GetSecretsRequest_SecretDoesNotExist(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) bf := &blobber{} @@ -1300,6 +1309,7 @@ func TestPlugin_Observation_GetSecretsRequest_SecretExistsButIsIncorrect(t *test []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) seqNr := uint64(1) @@ -1373,6 +1383,7 @@ func TestPlugin_Observation_GetSecretsRequest_PublicKeyIsInvalid(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) seqNr := uint64(1) @@ -1446,6 +1457,7 @@ func TestPlugin_Observation_GetSecretsRequest_SecretLabelIsInvalid(t *testing.T) []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) seqNr := uint64(1) @@ -1520,6 +1532,7 @@ func TestPlugin_Observation_GetSecretsRequest_Success(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) seqNr := uint64(1) @@ -1619,6 +1632,7 @@ func TestPlugin_Observation_GetSecretsRequest_BinarySharesWhenOptimizationsEnabl []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -1755,6 +1769,7 @@ func TestPlugin_Observation_CreateSecretsRequest_SecretIdentifierInvalid(t *test []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) bf := &blobber{} @@ -1811,6 +1826,7 @@ func TestPlugin_Observation_CreateSecretsRequest_DisallowsDuplicateRequests(t *t []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -1964,6 +1980,7 @@ func TestPlugin_Observation_CreateSecretsRequest_InvalidCiphertext(t *testing.T) []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -2016,6 +2033,7 @@ func TestPlugin_Observation_CreateSecretsRequest_InvalidCiphertext_TooLong(t *te []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -2079,6 +2097,7 @@ func TestPlugin_Observation_CreateSecretsRequest_InvalidCiphertext_EncryptedWith []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -2145,6 +2164,7 @@ func TestPlugin_Observation_CreateSecretsRequest_SecretLabelIsInvalid(t *testing []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -2207,6 +2227,7 @@ func TestPlugin_Observation_UpdateSecretsRequest_SecretLabelIsInvalid(t *testing []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -2403,6 +2424,7 @@ func TestPlugin_Observation_CreateSecretsRequest_Success(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -2456,6 +2478,7 @@ func TestPlugin_Observation_CreateSecretsRequest_WorkflowOwnerLabelAccepted(t *t []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -2500,6 +2523,7 @@ func TestPlugin_Observation_CreateSecretsRequest_WrongOwnerLabelRejected(t *test []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -2966,6 +2990,7 @@ func TestPlugin_ValidateObservations_RequiresObservedIDsInPendingQueue(t *testin {Id: vaulttypes.KeyFor(id), Item: anyd}, {Id: vaulttypes.KeyFor(id2), Item: anyg}, }, + 0, ) require.NoError(t, err) @@ -4098,6 +4123,7 @@ func TestPlugin_Observation_UpdateSecretsRequest_SecretIdentifierInvalid(t *test []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) bf := &blobber{} @@ -4154,6 +4180,7 @@ func TestPlugin_Observation_UpdateSecretsRequest_DisallowsDuplicateRequests(t *t []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4209,6 +4236,7 @@ func TestPlugin_Observation_UpdateSecretsRequest_InvalidCiphertext(t *testing.T) []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4261,6 +4289,7 @@ func TestPlugin_Observation_UpdateSecretsRequest_InvalidCiphertext_TooLong(t *te []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4324,6 +4353,7 @@ func TestPlugin_Observation_UpdateSecretsRequest_InvalidCiphertext_EncryptedWith []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4628,6 +4658,7 @@ func TestPlugin_Observation_DeleteSecrets(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4674,6 +4705,7 @@ func TestPlugin_Observation_DeleteSecrets_IdDoesntExist(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4721,6 +4753,7 @@ func TestPlugin_Observation_DeleteSecrets_InvalidRequestDuplicateIds(t *testing. []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -4994,6 +5027,7 @@ func TestPlugin_Observation_ListSecretIdentifiers_OwnerRequired(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -5058,6 +5092,7 @@ func TestPlugin_Observation_ListSecretIdentifiers_NoNamespaceProvided(t *testing []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -5143,6 +5178,7 @@ func TestPlugin_Observation_ListSecretIdentifiers_FilterByNamespace(t *testing.T []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) @@ -5205,6 +5241,7 @@ func TestPlugin_Observation_ListSecretIdentifiers_ListsSecretsForRequestOwner(t []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, )) data, err := r.Observation(t.Context(), 1, types.AttributedQuery{}, rdr, &blobber{}) @@ -5246,6 +5283,7 @@ func TestPlugin_Observation_ListSecretIdentifiers_DoesNotFallbackWhenGateDisable []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, )) data, err := r.Observation(t.Context(), 1, types.AttributedQuery{}, rdr, &blobber{}) @@ -6010,6 +6048,7 @@ func TestPlugin_ValidateObservation_GetSecretsRequest(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -6399,6 +6438,7 @@ func TestPlugin_ValidateObservation_PanicsOnEmptyShares(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -6635,6 +6675,7 @@ func TestPlugin_ValidateObservation_NilSecretIdentifier(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -6846,6 +6887,7 @@ func TestPlugin_ValidateObservation_CiphertextSize(t *testing.T) { []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyp}, }, + 0, ) require.NoError(t, err) @@ -7165,6 +7207,7 @@ func TestPlugin_ValidateObservation_SecretIdentifierValidation(t *testing.T) { err = newTestWriteStore(t, rdr).WritePendingQueue(t.Context(), []*vaultcommon.StoredPendingQueueItem{{Id: "request-1", Item: anyp}}, + 0, ) require.NoError(t, err) @@ -7537,6 +7580,7 @@ func TestPlugin_ValidateObservation_ListSecretIdentifiersExceedsMaxSecretsPerOwn []*vaultcommon.StoredPendingQueueItem{ {Id: "request-1", Item: anyReq}, }, + 0, ) require.NoError(t, err) @@ -8036,3 +8080,114 @@ func TestProperty_broadcastBlobPayloads_MaxSizePayloadsWithinBlobLimit(t *testin }) } } + +func TestObservation_skipsStoreBackedPendingWhenStale(t *testing.T) { + _, pk, shares, err := tdh2easy.GenerateKeys(1, 3) + require.NoError(t, err) + r := newTestReportingPlugin( + t, + withKeys(pk, shares[0]), + withVaultPendingQueueStaleAutoEmpty(), + withVaultPendingQueueStaleRoundThreshold(5), + ) + + const writtenSeqNr = uint64(1) + seqNr := uint64(10) + rdr := &kv{m: make(map[string]response)} + + pubK, _, err := box.GenerateKey(rand.Reader) + require.NoError(t, err) + pks := hex.EncodeToString(pubK[:]) + id := &vaultcommon.SecretIdentifier{Owner: "owner", Namespace: "main", Key: "my_secret"} + p := &vaultcommon.GetSecretsRequest{ + Requests: []*vaultcommon.SecretRequest{{Id: id, EncryptionKeys: []string{pks}}}, + } + anyp, err := anypb.New(p) + require.NoError(t, err) + + err = newTestWriteStore(t, rdr).WritePendingQueue(t.Context(), + []*vaultcommon.StoredPendingQueueItem{{Id: "request-1", Item: anyp}}, + writtenSeqNr, + ) + require.NoError(t, err) + + data, err := r.Observation(t.Context(), seqNr, types.AttributedQuery{}, rdr, &blobber{}) + require.NoError(t, err) + + obs := &vaultcommon.Observations{} + require.NoError(t, proto.Unmarshal(data, obs)) + assert.Empty(t, obs.Observations) +} + +func TestObservation_readsStoreBackedPendingWhenLegacyWrittenSeqNrZero(t *testing.T) { + _, pk, shares, err := tdh2easy.GenerateKeys(1, 3) + require.NoError(t, err) + r := newTestReportingPlugin( + t, + withKeys(pk, shares[0]), + withVaultPendingQueueStaleAutoEmpty(), + withVaultPendingQueueStaleRoundThreshold(1), + ) + + rdr := &kv{m: make(map[string]response)} + pubK, _, err := box.GenerateKey(rand.Reader) + require.NoError(t, err) + pks := hex.EncodeToString(pubK[:]) + id := &vaultcommon.SecretIdentifier{Owner: "owner", Namespace: "main", Key: "my_secret"} + p := &vaultcommon.GetSecretsRequest{ + Requests: []*vaultcommon.SecretRequest{{Id: id, EncryptionKeys: []string{pks}}}, + } + anyp, err := anypb.New(p) + require.NoError(t, err) + + item := &vaultcommon.StoredPendingQueueItem{Id: "request-1", Item: anyp} + itemBytes, err := proto.Marshal(item) + require.NoError(t, err) + rdr.m[pendingQueueItemPrefix+"0"] = response{data: itemBytes} + + index := &vaultcommon.StoredPendingQueueIndex{Length: 1} + indexBytes, err := proto.Marshal(index) + require.NoError(t, err) + rdr.m[pendingQueueIndex] = response{data: indexBytes} + + data, err := r.Observation(t.Context(), 100, types.AttributedQuery{}, rdr, &blobber{}) + require.NoError(t, err) + + obs := &vaultcommon.Observations{} + require.NoError(t, proto.Unmarshal(data, obs)) + assert.NotEmpty(t, obs.Observations) +} + +func TestObservation_skipsStoreBackedPendingWhenForceEmptyGateEnabled(t *testing.T) { + _, pk, shares, err := tdh2easy.GenerateKeys(1, 3) + require.NoError(t, err) + r := newTestReportingPlugin( + t, + withKeys(pk, shares[0]), + withVaultForceEmptyOCRRounds(), + ) + + rdr := &kv{m: make(map[string]response)} + pubK, _, err := box.GenerateKey(rand.Reader) + require.NoError(t, err) + pks := hex.EncodeToString(pubK[:]) + id := &vaultcommon.SecretIdentifier{Owner: "owner", Namespace: "main", Key: "my_secret"} + p := &vaultcommon.GetSecretsRequest{ + Requests: []*vaultcommon.SecretRequest{{Id: id, EncryptionKeys: []string{pks}}}, + } + anyp, err := anypb.New(p) + require.NoError(t, err) + + err = newTestWriteStore(t, rdr).WritePendingQueue(t.Context(), + []*vaultcommon.StoredPendingQueueItem{{Id: "request-1", Item: anyp}}, + 1, + ) + require.NoError(t, err) + + data, err := r.Observation(t.Context(), 2, types.AttributedQuery{}, rdr, &blobber{}) + require.NoError(t, err) + + obs := &vaultcommon.Observations{} + require.NoError(t, proto.Unmarshal(data, obs)) + assert.Empty(t, obs.Observations) +} diff --git a/deployment/go.mod b/deployment/go.mod index 14631daf6d7..265e91320cc 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -42,7 +42,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-20260511195239-0f6e1b177fc7 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260504204047-af9826978b72 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-data-streams v0.1.15-0.20260522094612-5f9f748bd87a github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 @@ -75,7 +75,7 @@ require ( github.com/xssnick/tonutils-go v1.14.1 github.com/zksync-sdk/zksync2-go v1.1.1-0.20250620124214-2c742ee399c6 go.uber.org/zap v1.28.0 - golang.org/x/crypto v0.51.0 + golang.org/x/crypto v0.52.0 golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a golang.org/x/mod v0.36.0 golang.org/x/oauth2 v0.36.0 @@ -515,8 +515,8 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/net v0.54.0 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/net v0.55.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/time v0.15.0 // indirect diff --git a/deployment/go.sum b/deployment/go.sum index 86a7fb779ff..9a3d5e3dd6b 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1378,8 +1378,8 @@ github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23 h1:1Rt4HLpwbRN1YtBFcbsxSJYIiUP2wJ11qizevOEeCrs= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23/go.mod h1:V+wrhuNve+JiFwoBr25d6y0lL1rYSCSJhTFyloL3ueo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1797,8 +1797,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1901,8 +1901,8 @@ 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.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2023,8 +2023,8 @@ 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.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/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-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/go.mod b/go.mod index 9667c1b8608..807e18aea10 100644 --- a/go.mod +++ b/go.mod @@ -84,7 +84,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.0.2-0.20260428133800-3b1484e8b1fd - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 github.com/smartcontractkit/chainlink-data-streams v0.1.15-0.20260522094612-5f9f748bd87a @@ -136,7 +136,7 @@ require ( go.opentelemetry.io/otel/trace v1.43.0 go.uber.org/atomic v1.11.0 go.uber.org/zap v1.28.0 - golang.org/x/crypto v0.51.0 + golang.org/x/crypto v0.52.0 golang.org/x/exp v0.0.0-20260508232706-74f9aab9d74a golang.org/x/mod v0.36.0 golang.org/x/oauth2 v0.36.0 @@ -413,8 +413,8 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/net v0.54.0 // indirect - golang.org/x/sys v0.44.0 // 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/tools v0.45.0 // indirect google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 // indirect diff --git a/go.sum b/go.sum index beb736b7247..89a9068135b 100644 --- a/go.sum +++ b/go.sum @@ -1177,8 +1177,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.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1543,8 +1543,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1646,8 +1646,8 @@ 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.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1764,8 +1764,8 @@ 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.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/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= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index ce781f62c15..67ead95e5d7 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -29,7 +29,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260527175653-b78bae59d823 @@ -501,11 +501,11 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/crypto v0.51.0 // indirect + golang.org/x/crypto v0.52.0 // indirect golang.org/x/mod v0.36.0 // indirect - golang.org/x/net v0.54.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/sys v0.45.0 // indirect golang.org/x/term v0.43.0 // indirect golang.org/x/time v0.15.0 // indirect golang.org/x/tools v0.45.0 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index b479cfb45f5..e71a4e30b55 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1363,8 +1363,8 @@ github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23 h1:1Rt4HLpwbRN1YtBFcbsxSJYIiUP2wJ11qizevOEeCrs= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23/go.mod h1:V+wrhuNve+JiFwoBr25d6y0lL1rYSCSJhTFyloL3ueo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1775,8 +1775,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1879,8 +1879,8 @@ 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.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2001,8 +2001,8 @@ 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.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/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-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 6d9b6427c8d..c3730d09d1b 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -20,7 +20,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260527175653-b78bae59d823 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.1 @@ -617,12 +617,12 @@ 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.11.0 // indirect - golang.org/x/crypto v0.51.0 // indirect + golang.org/x/crypto v0.52.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.54.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sys v0.44.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/time v0.15.0 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 2cfa5e31b5b..d9caca407e7 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1629,8 +1629,8 @@ github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23 h1:1Rt4HLpwbRN1YtBFcbsxSJYIiUP2wJ11qizevOEeCrs= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23/go.mod h1:V+wrhuNve+JiFwoBr25d6y0lL1rYSCSJhTFyloL3ueo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -2133,8 +2133,8 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2248,8 +2248,8 @@ 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.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2381,8 +2381,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index f17230d125c..2d1629b0a71 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.101 github.com/smartcontractkit/chainlink-aptos v0.0.0-20260507123701-77fc93b573bb github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260527175653-b78bae59d823 @@ -553,12 +553,12 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/crypto v0.51.0 // indirect + golang.org/x/crypto v0.52.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.54.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sys v0.44.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/time v0.15.0 // indirect diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index 483624f0f67..4c1f76a8339 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1538,8 +1538,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1966,8 +1966,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2068,8 +2068,8 @@ 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.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2187,8 +2187,8 @@ 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.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/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= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 88069ed9588..028ee8b573c 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -58,7 +58,7 @@ require ( github.com/rs/zerolog v1.34.0 github.com/smartcontractkit/chain-selectors v1.0.101 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm/contracts/cre/gobindings v0.0.0-20260403151002-2c91155b5501 @@ -614,12 +614,12 @@ require ( go.uber.org/ratelimit v0.3.1 // indirect go.uber.org/zap v1.28.0 // indirect golang.org/x/arch v0.11.0 // indirect - golang.org/x/crypto v0.51.0 // indirect + golang.org/x/crypto v0.52.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.54.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sys v0.44.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/time v0.15.0 // indirect diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 2378ee382c9..537a14bb725 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1552,8 +1552,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be h1:h6NXQz2hZEcdKF/UOXCtQANFGZFDnz6YUIee4OplWLo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260527110243-883689d933be/go.mod h1:lFJ2fkxep1wBzl+sIyxJNfwo5tb31mBNrGlHpjVO008= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1990,8 +1990,8 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +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/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2103,8 +2103,8 @@ 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.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2233,8 +2233,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +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/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= From 14af33837ac71d090d3d1afa786e15c032b0ce83 Mon Sep 17 00:00:00 2001 From: Russell Stern Date: Fri, 29 May 2026 15:00:34 -0400 Subject: [PATCH 2/4] Put writing seqNr behind the flag --- core/services/ocr2/plugins/vault/kvstore.go | 6 ++++-- core/services/ocr2/plugins/vault/kvstore_test.go | 16 ++++++++++++++++ core/services/ocr2/plugins/vault/plugin.go | 6 +++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/core/services/ocr2/plugins/vault/kvstore.go b/core/services/ocr2/plugins/vault/kvstore.go index 95c02ec268a..b42ca2afb07 100644 --- a/core/services/ocr2/plugins/vault/kvstore.go +++ b/core/services/ocr2/plugins/vault/kvstore.go @@ -368,8 +368,10 @@ func (s *KVStore) WritePendingQueue(ctx context.Context, pending []*vault.Stored } newIndex := &vault.StoredPendingQueueIndex{ - Length: int64(len(pending)), - WrittenSeqNr: writtenSeqNr, + Length: int64(len(pending)), + } + if writtenSeqNr != 0 { + newIndex.WrittenSeqNr = writtenSeqNr } newIndexBytes, err := proto.Marshal(newIndex) if err != nil { diff --git a/core/services/ocr2/plugins/vault/kvstore_test.go b/core/services/ocr2/plugins/vault/kvstore_test.go index 087228b9a46..3fba997738c 100644 --- a/core/services/ocr2/plugins/vault/kvstore_test.go +++ b/core/services/ocr2/plugins/vault/kvstore_test.go @@ -467,3 +467,19 @@ func TestKVStore_WritePendingRequests(t *testing.T) { _, exists = kv.m[pendingQueueItemPrefix+"3"] assert.False(t, exists) } + +func TestKVStore_WritePendingQueue_omitsWrittenSeqNrWhenZero(t *testing.T) { + kv := &kv{m: make(map[string]response)} + store := newTestWriteStore(t, kv) + + empty, err := anypb.New(&emptypb.Empty{}) + require.NoError(t, err) + item := &vault.StoredPendingQueueItem{Id: "test-request-id-1", Item: empty} + + err = store.WritePendingQueue(t.Context(), []*vault.StoredPendingQueueItem{item}, 0) + require.NoError(t, err) + + legacyIndexBytes, err := proto.Marshal(&vault.StoredPendingQueueIndex{Length: 1}) + require.NoError(t, err) + assert.Equal(t, legacyIndexBytes, kv.m[pendingQueueIndex].data) +} diff --git a/core/services/ocr2/plugins/vault/plugin.go b/core/services/ocr2/plugins/vault/plugin.go index 22dbf30faad..970af3874cf 100644 --- a/core/services/ocr2/plugins/vault/plugin.go +++ b/core/services/ocr2/plugins/vault/plugin.go @@ -2035,7 +2035,11 @@ func (r *ReportingPlugin) stateTransitionPendingQueue(ctx context.Context, seqNr r.lifecycle.RecordWrittenToPendingQueue(ctx, it.Id, seqNr, now) } - return store.WritePendingQueue(ctx, keptItems, seqNr) + var writtenSeqNr uint64 + if gateAllows(ctx, r.lggr, r.cfg.VaultPendingQueueStaleAutoEmpty, "VaultPendingQueueStaleAutoEmpty") { + writtenSeqNr = seqNr + } + return store.WritePendingQueue(ctx, keptItems, writtenSeqNr) } func sortKey(id string, nonce []byte) []byte { From 5b1894692756c9577b0c7d3b8060733fdabe8813 Mon Sep 17 00:00:00 2001 From: Russell Stern Date: Fri, 29 May 2026 15:31:00 -0400 Subject: [PATCH 3/4] Fixed linting --- core/services/ocr2/plugins/vault/plugin.go | 6 +++++- core/services/ocr2/plugins/vault/plugin_helpers_test.go | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/services/ocr2/plugins/vault/plugin.go b/core/services/ocr2/plugins/vault/plugin.go index 970af3874cf..16826aeafe1 100644 --- a/core/services/ocr2/plugins/vault/plugin.go +++ b/core/services/ocr2/plugins/vault/plugin.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "maps" + "math" "slices" "sort" "time" @@ -646,7 +647,10 @@ func (r *ReportingPlugin) skipStoreBackedPendingQueue(ctx context.Context, seqNr } lag := seqNr - index.WrittenSeqNr - if lag < uint64(threshold) { + if threshold <= 0 { + return false, "", nil + } + if lag <= math.MaxInt64 && int64(lag) < int64(threshold) { return false, "", nil } diff --git a/core/services/ocr2/plugins/vault/plugin_helpers_test.go b/core/services/ocr2/plugins/vault/plugin_helpers_test.go index 3d8a9fb335b..4db279a77bf 100644 --- a/core/services/ocr2/plugins/vault/plugin_helpers_test.go +++ b/core/services/ocr2/plugins/vault/plugin_helpers_test.go @@ -155,7 +155,7 @@ func newTestReportingPlugin(t *testing.T, opts ...testPluginOption) *ReportingPl cfg.VaultPendingQueueStaleAutoEmpty = limits.NewGateLimiter(true) } if o.vaultPendingQueueStaleRoundThreshold > 0 { - cfg.VaultPendingQueueStaleRoundThreshold = limits.NewBoundLimiter(o.vaultPendingQueueStaleRoundThreshold) + cfg.VaultPendingQueueStaleRoundThreshold = limits.NewUpperBoundLimiter(o.vaultPendingQueueStaleRoundThreshold) } ctx := context.Background() pl, err := initializePluginLimits(ctx, limits.Factory{Settings: cresettings.DefaultGetter}) From 8ae1c476154d56340608424ac44a348044a51f5b Mon Sep 17 00:00:00 2001 From: Russell Stern Date: Mon, 1 Jun 2026 21:54:43 -0400 Subject: [PATCH 4/4] Bump go mod --- core/scripts/go.mod | 4 ++-- core/scripts/go.sum | 8 ++++---- deployment/go.mod | 4 ++-- deployment/go.sum | 8 ++++---- go.mod | 4 ++-- go.sum | 8 ++++---- integration-tests/go.mod | 4 ++-- integration-tests/go.sum | 8 ++++---- integration-tests/load/go.mod | 4 ++-- integration-tests/load/go.sum | 8 ++++---- system-tests/lib/go.mod | 4 ++-- system-tests/lib/go.sum | 8 ++++---- system-tests/tests/go.mod | 4 ++-- system-tests/tests/go.sum | 8 ++++---- 14 files changed, 42 insertions(+), 42 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index b19e8ef92a4..8b4aa8e846e 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -43,7 +43,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.101 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260506144252-c100eabfda74 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-data-streams v0.1.15-0.20260522094612-5f9f748bd87a github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 @@ -500,7 +500,7 @@ require ( github.com/smartcontractkit/chainlink-protos/rmn/v1.6/go v0.0.0-20250131130834-15e0d4cde2a6 // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.2.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 // indirect github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 // indirect github.com/smartcontractkit/chainlink-sui v0.0.0-20260527160341-aa3adc0abf67 // indirect github.com/smartcontractkit/chainlink-testing-framework/framework/components/chiprouter v1.0.4 // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index c2e0a8ce800..0a55b7fc85d 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1571,8 +1571,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1629,8 +1629,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo= diff --git a/deployment/go.mod b/deployment/go.mod index 265e91320cc..970442a5e95 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -42,7 +42,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-20260511195239-0f6e1b177fc7 github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260504204047-af9826978b72 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-data-streams v0.1.15-0.20260522094612-5f9f748bd87a github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 @@ -437,7 +437,7 @@ require ( github.com/smartcontractkit/chainlink-protos/rmn/v1.6/go v0.0.0-20250131130834-15e0d4cde2a6 // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.2.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 // indirect github.com/smartcontractkit/chainlink-testing-framework/parrot v0.6.2 // indirect github.com/smartcontractkit/chainlink-testing-framework/seth v1.51.5 // indirect github.com/smartcontractkit/chainlink-tron/relayer v0.0.11-0.20260408092456-3c6369888d4a // indirect diff --git a/deployment/go.sum b/deployment/go.sum index 9a3d5e3dd6b..04ed7c05692 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1378,8 +1378,8 @@ github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23 h1:1Rt4HLpwbRN1YtBFcbsxSJYIiUP2wJ11qizevOEeCrs= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23/go.mod h1:V+wrhuNve+JiFwoBr25d6y0lL1rYSCSJhTFyloL3ueo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1436,8 +1436,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo= diff --git a/go.mod b/go.mod index 807e18aea10..c61bf615abc 100644 --- a/go.mod +++ b/go.mod @@ -84,7 +84,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.0.2-0.20260428133800-3b1484e8b1fd - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 github.com/smartcontractkit/chainlink-data-streams v0.1.15-0.20260522094612-5f9f748bd87a @@ -103,7 +103,7 @@ require ( github.com/smartcontractkit/chainlink-protos/orchestrator v0.10.0 github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 github.com/smartcontractkit/chainlink-sui v0.0.0-20260527160341-aa3adc0abf67 github.com/smartcontractkit/chainlink-ton v1.0.5-0.20260520103847-15ca4de9dba9 diff --git a/go.sum b/go.sum index 89a9068135b..3261251df87 100644 --- a/go.sum +++ b/go.sum @@ -1177,8 +1177,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.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1229,8 +1229,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-sui v0.0.0-20260527160341-aa3adc0abf67 h1:NNvPOgvf5vbOYVLxLST+5E88iPOAnpmzZGPihEx8DFc= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 67ead95e5d7..d46cc43fd8e 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -29,7 +29,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260527175653-b78bae59d823 @@ -417,7 +417,7 @@ require ( github.com/smartcontractkit/chainlink-protos/rmn/v1.6/go v0.0.0-20250131130834-15e0d4cde2a6 // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.2.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 // indirect github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 // indirect github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.1 // indirect github.com/smartcontractkit/chainlink-ton v1.0.5-0.20260520103847-15ca4de9dba9 // indirect diff --git a/integration-tests/go.sum b/integration-tests/go.sum index e71a4e30b55..b494858eb47 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1363,8 +1363,8 @@ github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23 h1:1Rt4HLpwbRN1YtBFcbsxSJYIiUP2wJ11qizevOEeCrs= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23/go.mod h1:V+wrhuNve+JiFwoBr25d6y0lL1rYSCSJhTFyloL3ueo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1421,8 +1421,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-sui v0.0.0-20260527160341-aa3adc0abf67 h1:NNvPOgvf5vbOYVLxLST+5E88iPOAnpmzZGPihEx8DFc= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index c3730d09d1b..16d0fee5f1b 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -20,7 +20,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/evm v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260506144252-c100eabfda74 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7 - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260527175653-b78bae59d823 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.1 @@ -500,7 +500,7 @@ require ( github.com/smartcontractkit/chainlink-protos/rmn/v1.6/go v0.0.0-20250131130834-15e0d4cde2a6 // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.2.0 // indirect - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 // indirect + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 // indirect github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 // indirect github.com/smartcontractkit/chainlink-sui v0.0.0-20260527160341-aa3adc0abf67 // indirect github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20260527160341-aa3adc0abf67 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index d9caca407e7..b03e1e8ae8b 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1629,8 +1629,8 @@ github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23 h1:1Rt4HLpwbRN1YtBFcbsxSJYIiUP2wJ11qizevOEeCrs= github.com/smartcontractkit/chainlink-ccv/deployment v0.0.2-0.20260428205321-9ce8f4c44d23/go.mod h1:V+wrhuNve+JiFwoBr25d6y0lL1rYSCSJhTFyloL3ueo= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1687,8 +1687,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-sui v0.0.0-20260527160341-aa3adc0abf67 h1:NNvPOgvf5vbOYVLxLST+5E88iPOAnpmzZGPihEx8DFc= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 2d1629b0a71..d418e0f1abf 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -33,7 +33,7 @@ require ( github.com/smartcontractkit/chain-selectors v1.0.101 github.com/smartcontractkit/chainlink-aptos v0.0.0-20260507123701-77fc93b573bb github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20260527175653-b78bae59d823 @@ -41,7 +41,7 @@ require ( github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260526195338-adcf8013a1b7 github.com/smartcontractkit/chainlink-protos/job-distributor v0.18.0 github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20260512230622-65f10f4cd305 - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.2 github.com/smartcontractkit/chainlink-testing-framework/framework/components/chiprouter v1.0.4 github.com/smartcontractkit/chainlink-testing-framework/framework/components/dockercompose v0.1.23 diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index 4c1f76a8339..188cad6ab50 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1538,8 +1538,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1596,8 +1596,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 028ee8b573c..d88bab1c101 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -58,14 +58,14 @@ require ( github.com/rs/zerolog v1.34.0 github.com/smartcontractkit/chain-selectors v1.0.101 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260415165642-49f23e4d76cc - github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 + github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 github.com/smartcontractkit/chainlink-common/keystore v1.1.0 github.com/smartcontractkit/chainlink-deployments-framework v0.105.0 github.com/smartcontractkit/chainlink-evm/contracts/cre/gobindings v0.0.0-20260403151002-2c91155b5501 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260521215851-3fdbb363496f github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260526195338-adcf8013a1b7 github.com/smartcontractkit/chainlink-protos/ring/go v0.0.0-20260331131315-f08a616d8dcd - github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 + github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 github.com/smartcontractkit/chainlink-testing-framework/framework v0.16.2 github.com/smartcontractkit/chainlink-testing-framework/framework/components/chiprouter v1.0.4 github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.15.0 diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 537a14bb725..745dafb9445 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1552,8 +1552,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20260511195239-0f6e1b177fc7/go.mod h1:67YbnoglYD61Pz/jTVCgav9wFq7S35OU8UyQSvPllRw= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd h1:IMopuENFVS63AerRELdfWo6o60UNUidcldJOxJLmk24= github.com/smartcontractkit/chainlink-ccv v0.0.2-0.20260428133800-3b1484e8b1fd/go.mod h1:SBN8Urnh5sQvrQRbSo1Nr8coWatHg8LZoPw3R/42sho= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147 h1:hT1hLVSIwbx+stzvrHpb2DaqBAw6QLSdPhVM73Zx9+4= -github.com/smartcontractkit/chainlink-common v0.11.2-0.20260529175815-6c662426f147/go.mod h1:jueIfDkkRexwGgLbVB7vGCZlNtd383zuwi4uHHwcbqc= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329 h1:CKOt2wAIlf4EdXfElUTaUqyBZnLmyK+tATIm1lY1v4I= +github.com/smartcontractkit/chainlink-common v0.11.2-0.20260601205228-7587adfeb329/go.mod h1:noBAXFIyadzhElKzb6a7pngnRsVTtV91muoeDqNnuUg= github.com/smartcontractkit/chainlink-common/keystore v1.1.0 h1:2wzySccgk2fpWusPKO0bpeAZzfSU9eq6CS5U+JwYaVo= github.com/smartcontractkit/chainlink-common/keystore v1.1.0/go.mod h1:6JexOOhPhknQ0QMuppFIlOpm6wCp54yZMxai+tWugwY= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260520194751-11a4f360f4e2 h1:22H/CQy2L1unVJ2KEViEqvM8evJLSIqJxEdfDeXB4o8= @@ -1610,8 +1610,8 @@ github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 h1:B7itmjy+C github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0/go.mod h1:h6kqaGajbNRrezm56zhx03p0mVmmA2xxj7E/M4ytLUA= github.com/smartcontractkit/chainlink-protos/svr v1.2.0 h1:7jjgqRgORQS/ikL3z0ZgJy95pzjhR9LuU1TVWg4BZ78= github.com/smartcontractkit/chainlink-protos/svr v1.2.0/go.mod h1:TcOliTQU6r59DwG4lo3U+mFM9WWyBHGuFkkxQpvSujo= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997 h1:W0HKHO8eE8BckTRnhSdqjHKbJcnk068nEWYnWRu6tJY= -github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260323124644-faea187e6997/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9 h1:LQy2j2+TdKLSWsUTUYuqmQPn8kjqCLjGI3ZJYGtDc08= +github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20260528173149-f5b8336b19d9/go.mod h1:GTpDgyK0OObf7jpch6p8N281KxN92wbB8serZhU9yRc= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020 h1:8bMEgrIdrff6CequbqHQOACd3ktgwlLf1XmQ6giPfNk= github.com/smartcontractkit/chainlink-solana v1.3.1-0.20260522172305-f71b70a4d020/go.mod h1:5uWu39vXphl2Ug0WyHqpB2UfltClSANBVenvGMpsDS8= github.com/smartcontractkit/chainlink-solana/contracts v0.0.0-20260513123719-d347eaf314e1 h1:/xvuNFI7DwOoTQnmAdYPDdY+sConn3RgZ2rMy/8AXlo=