From f47800dcbd701ba1a63de50bacfbbde0d58e644f Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Mon, 15 Dec 2025 11:28:16 -0500 Subject: [PATCH 1/6] Add MethodTriggerEventAck --- core/capabilities/remote/trigger_publisher.go | 14 +++++++++++++ .../capabilities/remote/trigger_subscriber.go | 19 ++++++++++++++++++ core/capabilities/remote/types/types.go | 1 + core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- core/services/workflows/engine.go | 20 +++++++++++++++++++ deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 ++-- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 ++-- 18 files changed, 75 insertions(+), 21 deletions(-) diff --git a/core/capabilities/remote/trigger_publisher.go b/core/capabilities/remote/trigger_publisher.go index c12e88f0fc8..1eeaf57f771 100644 --- a/core/capabilities/remote/trigger_publisher.go +++ b/core/capabilities/remote/trigger_publisher.go @@ -245,6 +245,20 @@ func (p *triggerPublisher) Receive(_ context.Context, msg *types.MessageBody) { case types.MethodTriggerEvent: p.lggr.Errorw("trigger request failed with error", "method", SanitizeLogString(msg.Method), "sender", sender, "errorMsg", SanitizeLogString(msg.ErrorMsg)) + case types.MethodTriggerEventAck: + p.mu.Lock() + defer p.mu.Unlock() + // TODO: Need to aggregate first + triggerMetadata := msg.GetTriggerEventMetadata() // TODO: Build actual message type + if triggerMetadata == nil { + // TODO handle + } + ctx, cancel := p.stopCh.NewCtx() + defer cancel() + err := cfg.underlying.AckEvent(ctx, msg.CapabilityId, triggerMetadata.GetTriggerEventId()) + if err != nil { + // TODO + } default: p.lggr.Errorw("received message with unknown method", "method", SanitizeLogString(msg.Method), "sender", sender) diff --git a/core/capabilities/remote/trigger_subscriber.go b/core/capabilities/remote/trigger_subscriber.go index c0df1da9d44..3ad299b811a 100644 --- a/core/capabilities/remote/trigger_subscriber.go +++ b/core/capabilities/remote/trigger_subscriber.go @@ -161,6 +161,25 @@ func (s *triggerSubscriber) RegisterTrigger(ctx context.Context, request commonc return regState.callback, nil } +// TODO: we want to implement this somewhere reusable? +/* + Keeps track of workflow registrations (similar to LLO streams trigger). + Handles retransmits based on T_retransmit and T_max. + Persists pending events in the DB to be resilient to node restarts. +*/ +func (s *triggerSubscriber) deliverEvent(event *commoncap.TriggerEvent, workflowIDs []string) error { + /* + Base Trigger Capability can interact with the Don2Don layer (in the remote capability setting) + as well as directly with a consumer (in the local setting). + */ + return nil // only when the event is successfully persisted and ready to be reliably delivered +} + +func (s *triggerSubscriber) AckEvent(ctx context.Context, triggerId string, eventId string) error { + // TODO + return nil +} + func (s *triggerSubscriber) registrationLoop() { defer s.wg.Done() cfg := s.cfg.Load() diff --git a/core/capabilities/remote/types/types.go b/core/capabilities/remote/types/types.go index 81a00e7152d..0b4d61df774 100644 --- a/core/capabilities/remote/types/types.go +++ b/core/capabilities/remote/types/types.go @@ -17,6 +17,7 @@ const ( MethodUnRegisterTrigger = "UnregisterTrigger" MethodTriggerEvent = "TriggerEvent" MethodExecute = "Execute" + MethodTriggerEventAck = "TriggerEventACK" ) type Dispatcher interface { diff --git a/core/scripts/go.mod b/core/scripts/go.mod index d087789d049..67107582a5b 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -47,7 +47,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-data-streams v0.1.7-0.20251209111830-ccd12a5b2a19 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/core/scripts/go.sum b/core/scripts/go.sum index cb7cb3916b8..10f4a3a6ece 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1634,8 +1634,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/core/services/workflows/engine.go b/core/services/workflows/engine.go index 2cc672aa74d..407b082ee03 100644 --- a/core/services/workflows/engine.go +++ b/core/services/workflows/engine.go @@ -477,6 +477,22 @@ func (e *Engine) registerTrigger(ctx context.Context, t *triggerCapability, trig return nil } +func (e *Engine) ackTriggerEvent(ctx context.Context, te *capabilities.TriggerEvent) error { + triggerID := te.TriggerType + for _, trigger := range e.workflow.triggers { + info, err := trigger.trigger.Info(ctx) + if err != nil { + e.logger.Errorf("failed to get trigger info") + continue + } + if info.ID == triggerID { + // TODO: Don't need to pass the triggerID since AckEvent is called on a trigger object? + return trigger.trigger.AckEvent(ctx, triggerID, te.ID) + } + } + return fmt.Errorf("failed to find trigger %s", triggerID) +} + // stepUpdateLoop is a singleton goroutine per `Execution`, and it updates the `executionState` with the outcome of a `step`. // // Note: `executionState` is only mutated by this loop directly. @@ -771,6 +787,10 @@ func (e *Engine) worker(ctx context.Context) { } else { e.logger.With(platform.KeyWorkflowExecutionID, executionID).Debug("execution started") logCustMsg(ctx, cma, "execution started", e.logger) + ackErr := e.ackTriggerEvent(ctx, &te) + if ackErr != nil { + // TODO: handle + } } case <-ctx.Done(): return diff --git a/deployment/go.mod b/deployment/go.mod index 2d5005c5d0a..e45ca0998d4 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -42,7 +42,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/deployment/go.sum b/deployment/go.sum index f732732f76a..667892038a5 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1358,8 +1358,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/go.mod b/go.mod index f77a004be4d..9f84e7cd958 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 github.com/smartcontractkit/chainlink-data-streams v0.1.7-0.20251209111830-ccd12a5b2a19 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/go.sum b/go.sum index 036ce6fd3de..fd41239840d 100644 --- a/go.sum +++ b/go.sum @@ -1164,8 +1164,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 419e2f660bc..5a49c754bbb 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -51,7 +51,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 558bbd73cfa..796c36214a3 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1601,8 +1601,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 1add2d6adbe..d54f9f35ac9 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 6f3c5aa9a59..b5044b10e1e 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1580,8 +1580,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 3673d5421b3..168e7eea548 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -33,7 +33,7 @@ require ( github.com/sethvargo/go-retry v0.3.0 github.com/smartcontractkit/chain-selectors v1.0.85 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index c0182b2210a..e57f7d48889 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1602,8 +1602,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index c3906e950fd..b991f0fe0bc 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -46,7 +46,7 @@ require ( github.com/rs/zerolog v1.34.0 github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.85 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 github.com/smartcontractkit/chainlink-data-streams v0.1.7-0.20251209111830-ccd12a5b2a19 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index a29dcd0f7f5..bc86eca39f1 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1799,8 +1799,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4 h1:2LHrlWAStA2oRcDKrJ9lKOShC9an2Pkis2BwY8J7gDw= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251125103916-0b41e73b80c4/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= From 96711cd50572ee086aaa2920e06f547ac355a1ed Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Thu, 18 Dec 2025 15:08:11 -0500 Subject: [PATCH 2/6] Add ackKey --- core/capabilities/remote/trigger_publisher.go | 45 ++++++++++++++++++- .../capabilities/remote/trigger_subscriber.go | 14 ------ 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/core/capabilities/remote/trigger_publisher.go b/core/capabilities/remote/trigger_publisher.go index 1eeaf57f771..e8165529b66 100644 --- a/core/capabilities/remote/trigger_publisher.go +++ b/core/capabilities/remote/trigger_publisher.go @@ -34,6 +34,7 @@ type triggerPublisher struct { cfg atomic.Pointer[dynamicPublisherConfig] messageCache *messagecache.MessageCache[registrationKey, p2ptypes.PeerID] + ackCache *messagecache.MessageCache[ackKey, p2ptypes.PeerID] registrations map[registrationKey]*pubRegState mu sync.RWMutex // protects messageCache and registrations batchingQueue map[[32]byte]*batchedResponse @@ -57,6 +58,11 @@ type registrationKey struct { workflowID string } +type ackKey struct { + callerDonID uint32 + triggerEventID string +} + type pubRegState struct { callback <-chan commoncap.TriggerResponse request commoncap.TriggerRegistrationRequest @@ -246,13 +252,48 @@ func (p *triggerPublisher) Receive(_ context.Context, msg *types.MessageBody) { p.lggr.Errorw("trigger request failed with error", "method", SanitizeLogString(msg.Method), "sender", sender, "errorMsg", SanitizeLogString(msg.ErrorMsg)) case types.MethodTriggerEventAck: + // TODO: Need message protos to unmarshal + req, err := pb.UnmarshalTriggerResponse(msg.Payload) + if err != nil { + p.lggr.Errorw("failed to unmarshal trigger registration request", "err", err) + return + } + + p.lggr.Debugw("received trigger event ack", "workflowId", req.Metadata.WorkflowID, "sender", sender) + + key := ackKey{msg.CallerDonId, req.Metadata.WorkflowID} // TODO: Do we want the workflowID + TriggerEventID? p.mu.Lock() defer p.mu.Unlock() - // TODO: Need to aggregate first - triggerMetadata := msg.GetTriggerEventMetadata() // TODO: Build actual message type + + triggerMetadata := msg.GetTriggerEventMetadata() // TODO Build message type if triggerMetadata == nil { // TODO handle } + + // TODO Validation + + // TODO Using the same cache overwrite trigger registrations? FIX THIS. + nowMs := time.Now().UnixMilli() + p.messageCache.Insert(key, sender, nowMs, msg.Payload) + _, exists := p.registrations[key] + if exists { + // TODO Should we cache by trigger event not workflow in this case? + p.lggr.Debugw("trigger event ACK already exists", "workflowId", req.Metadata.WorkflowID) + return + } + // TODO Need to aggregate 2F+1 ACKs first + minRequired := uint32(2*callerDon.F + 1) + ready, payloads := p.messageCache.Ready(key, minRequired, nowMs-cfg.remoteConfig.RegistrationExpiry.Milliseconds(), false) + if !ready { + p.lggr.Debugw("not ready to aggregate yet", "workflowId", req.Metadata.WorkflowID, "minRequired", minRequired) + return + } + aggregated, err := aggregation.AggregateModeRaw(payloads, uint32(callerDon.F+1)) + if err != nil { + p.lggr.Errorw("failed to aggregate trigger registrations", "workflowId", req.Metadata.WorkflowID, "err", err) + return + } + ctx, cancel := p.stopCh.NewCtx() defer cancel() err := cfg.underlying.AckEvent(ctx, msg.CapabilityId, triggerMetadata.GetTriggerEventId()) diff --git a/core/capabilities/remote/trigger_subscriber.go b/core/capabilities/remote/trigger_subscriber.go index 3ad299b811a..ffba63228b2 100644 --- a/core/capabilities/remote/trigger_subscriber.go +++ b/core/capabilities/remote/trigger_subscriber.go @@ -161,20 +161,6 @@ func (s *triggerSubscriber) RegisterTrigger(ctx context.Context, request commonc return regState.callback, nil } -// TODO: we want to implement this somewhere reusable? -/* - Keeps track of workflow registrations (similar to LLO streams trigger). - Handles retransmits based on T_retransmit and T_max. - Persists pending events in the DB to be resilient to node restarts. -*/ -func (s *triggerSubscriber) deliverEvent(event *commoncap.TriggerEvent, workflowIDs []string) error { - /* - Base Trigger Capability can interact with the Don2Don layer (in the remote capability setting) - as well as directly with a consumer (in the local setting). - */ - return nil // only when the event is successfully persisted and ready to be reliably delivered -} - func (s *triggerSubscriber) AckEvent(ctx context.Context, triggerId string, eventId string) error { // TODO return nil From 6d5850aad51f345c2c1aeec3315ca2b1e503e1a4 Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Wed, 24 Dec 2025 13:28:00 -0500 Subject: [PATCH 3/6] Update DON2DON --- core/capabilities/remote/trigger_publisher.go | 55 ++++++++----------- .../capabilities/remote/trigger_subscriber.go | 36 ++++++++++-- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 +- core/services/workflows/engine.go | 9 ++- deployment/go.mod | 2 +- deployment/go.sum | 4 +- go.mod | 2 +- go.sum | 4 +- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 +- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 +- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 +- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 +- 17 files changed, 78 insertions(+), 64 deletions(-) diff --git a/core/capabilities/remote/trigger_publisher.go b/core/capabilities/remote/trigger_publisher.go index e8165529b66..5b051a174e0 100644 --- a/core/capabilities/remote/trigger_publisher.go +++ b/core/capabilities/remote/trigger_publisher.go @@ -34,8 +34,9 @@ type triggerPublisher struct { cfg atomic.Pointer[dynamicPublisherConfig] messageCache *messagecache.MessageCache[registrationKey, p2ptypes.PeerID] - ackCache *messagecache.MessageCache[ackKey, p2ptypes.PeerID] registrations map[registrationKey]*pubRegState + + ackCache *messagecache.MessageCache[ackKey, p2ptypes.PeerID] mu sync.RWMutex // protects messageCache and registrations batchingQueue map[[32]byte]*batchedResponse bqMu sync.Mutex // protects batchingQueue @@ -252,53 +253,41 @@ func (p *triggerPublisher) Receive(_ context.Context, msg *types.MessageBody) { p.lggr.Errorw("trigger request failed with error", "method", SanitizeLogString(msg.Method), "sender", sender, "errorMsg", SanitizeLogString(msg.ErrorMsg)) case types.MethodTriggerEventAck: - // TODO: Need message protos to unmarshal - req, err := pb.UnmarshalTriggerResponse(msg.Payload) - if err != nil { - p.lggr.Errorw("failed to unmarshal trigger registration request", "err", err) - return + triggerMetadata := msg.GetTriggerEventMetadata() + if triggerMetadata == nil { + p.lggr.Errorw("recieved empty trigger event ack metadata", "sender", sender) + break } + triggerEventID := triggerMetadata.TriggerEventId + p.lggr.Debugw("received trigger event ACK", "sender", sender, "trigger event ID", triggerEventID) - p.lggr.Debugw("received trigger event ack", "workflowId", req.Metadata.WorkflowID, "sender", sender) - - key := ackKey{msg.CallerDonId, req.Metadata.WorkflowID} // TODO: Do we want the workflowID + TriggerEventID? p.mu.Lock() defer p.mu.Unlock() - - triggerMetadata := msg.GetTriggerEventMetadata() // TODO Build message type - if triggerMetadata == nil { - // TODO handle + callerDon, ok := cfg.workflowDONs[msg.CallerDonId] + if !ok { + p.lggr.Errorw("received a message from unsupported workflow DON", "callerDonId", msg.CallerDonId) + return } - - // TODO Validation - - // TODO Using the same cache overwrite trigger registrations? FIX THIS. - nowMs := time.Now().UnixMilli() - p.messageCache.Insert(key, sender, nowMs, msg.Payload) - _, exists := p.registrations[key] - if exists { - // TODO Should we cache by trigger event not workflow in this case? - p.lggr.Debugw("trigger event ACK already exists", "workflowId", req.Metadata.WorkflowID) + if !cfg.membersCache[msg.CallerDonId][sender] { + p.lggr.Errorw("sender not a member of its workflow DON", "callerDonId", msg.CallerDonId, "sender", sender) return } - // TODO Need to aggregate 2F+1 ACKs first + + key := ackKey{msg.CallerDonId, triggerEventID} + nowMs := time.Now().UnixMilli() + p.ackCache.Insert(key, sender, nowMs, msg.Payload) minRequired := uint32(2*callerDon.F + 1) - ready, payloads := p.messageCache.Ready(key, minRequired, nowMs-cfg.remoteConfig.RegistrationExpiry.Milliseconds(), false) + ready, _ := p.ackCache.Ready(key, minRequired, nowMs-cfg.remoteConfig.EventTimeout.Milliseconds(), false) if !ready { - p.lggr.Debugw("not ready to aggregate yet", "workflowId", req.Metadata.WorkflowID, "minRequired", minRequired) - return - } - aggregated, err := aggregation.AggregateModeRaw(payloads, uint32(callerDon.F+1)) - if err != nil { - p.lggr.Errorw("failed to aggregate trigger registrations", "workflowId", req.Metadata.WorkflowID, "err", err) + p.lggr.Debugw("not ready to ACK trigger event yet", "triggerEventId", triggerEventID, "minRequired", minRequired) return } ctx, cancel := p.stopCh.NewCtx() defer cancel() - err := cfg.underlying.AckEvent(ctx, msg.CapabilityId, triggerMetadata.GetTriggerEventId()) + err = cfg.underlying.AckEvent(ctx, triggerEventID) if err != nil { - // TODO + p.lggr.Errorw("failed to AckEvent on underlying trigger capability", "err", err) } default: p.lggr.Errorw("received message with unknown method", diff --git a/core/capabilities/remote/trigger_subscriber.go b/core/capabilities/remote/trigger_subscriber.go index ffba63228b2..a2f6997e71f 100644 --- a/core/capabilities/remote/trigger_subscriber.go +++ b/core/capabilities/remote/trigger_subscriber.go @@ -129,6 +129,37 @@ func (s *triggerSubscriber) Info(ctx context.Context) (commoncap.CapabilityInfo, return cfg.capInfo, nil } +func (s *triggerSubscriber) AckEvent(ctx context.Context, eventId string) error { + response := commoncap.TriggerResponse{ + Event: commoncap.TriggerEvent{ + TriggerType: s.capMethodName, + ID: eventId, + }} + rawRequest, err := pb.MarshalTriggerResponse(response) + if err != nil { + return fmt.Errorf("failed to marshal trigger response: %w", err) + } + + s.mu.RLock() + cfg := s.cfg.Load() + for _, peerID := range cfg.capDonInfo.Members { + m := &types.MessageBody{ + CapabilityId: cfg.capInfo.ID, + CapabilityDonId: cfg.capDonInfo.ID, + CallerDonId: cfg.localDonID, + Method: types.MethodTriggerEventAck, + CapabilityMethod: s.capMethodName, + Payload: rawRequest, + } + err := s.dispatcher.Send(peerID, m) + if err != nil { + s.lggr.Errorw("failed to send message", "donId", cfg.capDonInfo.ID, "peerId", peerID, "err", err) + } + } + s.mu.RUnlock() + return nil +} + func (s *triggerSubscriber) RegisterTrigger(ctx context.Context, request commoncap.TriggerRegistrationRequest) (<-chan commoncap.TriggerResponse, error) { rawRequest, err := pb.MarshalTriggerRegistrationRequest(request) if err != nil { @@ -161,11 +192,6 @@ func (s *triggerSubscriber) RegisterTrigger(ctx context.Context, request commonc return regState.callback, nil } -func (s *triggerSubscriber) AckEvent(ctx context.Context, triggerId string, eventId string) error { - // TODO - return nil -} - func (s *triggerSubscriber) registrationLoop() { defer s.wg.Done() cfg := s.cfg.Load() diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 67107582a5b..0d007278f75 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -47,7 +47,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-data-streams v0.1.7-0.20251209111830-ccd12a5b2a19 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 10f4a3a6ece..b0d64306b8f 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1634,8 +1634,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/core/services/workflows/engine.go b/core/services/workflows/engine.go index 407b082ee03..9cd82230f4c 100644 --- a/core/services/workflows/engine.go +++ b/core/services/workflows/engine.go @@ -486,8 +486,7 @@ func (e *Engine) ackTriggerEvent(ctx context.Context, te *capabilities.TriggerEv continue } if info.ID == triggerID { - // TODO: Don't need to pass the triggerID since AckEvent is called on a trigger object? - return trigger.trigger.AckEvent(ctx, triggerID, te.ID) + return trigger.trigger.AckEvent(ctx, te.ID) } } return fmt.Errorf("failed to find trigger %s", triggerID) @@ -787,9 +786,9 @@ func (e *Engine) worker(ctx context.Context) { } else { e.logger.With(platform.KeyWorkflowExecutionID, executionID).Debug("execution started") logCustMsg(ctx, cma, "execution started", e.logger) - ackErr := e.ackTriggerEvent(ctx, &te) - if ackErr != nil { - // TODO: handle + err = e.ackTriggerEvent(ctx, &te) + if err != nil { + e.logger.With(platform.KeyTriggerID, te.ID).Errorf("failed to ACK trigger event: %v", err) } } case <-ctx.Done(): diff --git a/deployment/go.mod b/deployment/go.mod index e45ca0998d4..84581bc2942 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -42,7 +42,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/deployment/go.sum b/deployment/go.sum index 667892038a5..ae4e6f024ea 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1358,8 +1358,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/go.mod b/go.mod index 9f84e7cd958..bf05bb78ff4 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 github.com/smartcontractkit/chainlink-data-streams v0.1.7-0.20251209111830-ccd12a5b2a19 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/go.sum b/go.sum index fd41239840d..32898e14893 100644 --- a/go.sum +++ b/go.sum @@ -1164,8 +1164,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 5a49c754bbb..6dbefba6752 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -51,7 +51,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 796c36214a3..fc3746147a1 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1601,8 +1601,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index d54f9f35ac9..d92499ff639 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index b5044b10e1e..de550d9b029 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1580,8 +1580,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 168e7eea548..d64221e216b 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -33,7 +33,7 @@ require ( github.com/sethvargo/go-retry v0.3.0 github.com/smartcontractkit/chain-selectors v1.0.85 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index e57f7d48889..01ffa40361c 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1602,8 +1602,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index b991f0fe0bc..5c49d4c369f 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -46,7 +46,7 @@ require ( github.com/rs/zerolog v1.34.0 github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.85 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 github.com/smartcontractkit/chainlink-data-streams v0.1.7-0.20251209111830-ccd12a5b2a19 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index bc86eca39f1..74ee633235a 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1799,8 +1799,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599 h1:0IMjHpzI9mgvGGtmsr1NdRhoXp++gU805f/f9oN94ls= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251210114515-e8434089d599/go.mod h1:Ysd/qkofD0bepk29RS7Q4ZlVDd4yAHXucYsp5gAy6AE= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778 h1:tB1guzp4uW8lPPakJpNbBlFZ+a2oKklWnwEcb3e8yWY= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251215155132-ee4104716778/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126 h1:u5ZIvgbInXDaYNOuY1VJ1IvVGmIdqYt1E3b6lvizlk8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224165552-624fe53c4126/go.mod h1:uRnGLHKo56QYaPk93z0NRAIgv115lh72rzG40CiE1Mk= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= From 33bedcb25afd17e77dbae6fd153eb6b22f8e7c5f Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Wed, 24 Dec 2025 13:30:20 -0500 Subject: [PATCH 4/6] Bump common --- core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 ++-- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 ++-- 14 files changed, 21 insertions(+), 21 deletions(-) diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 00011a11ac0..184714f99d0 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -47,7 +47,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-data-streams v0.1.9 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 4dbdfbbc7de..a0cd6ee3171 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1634,8 +1634,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/deployment/go.mod b/deployment/go.mod index 0fe5ee536b6..c89ded73edb 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -42,7 +42,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/deployment/go.sum b/deployment/go.sum index 7118e0b3bac..75db8473681 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1358,8 +1358,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/go.mod b/go.mod index 90d5fe870c8..e439d2db838 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 github.com/smartcontractkit/chainlink-data-streams v0.1.9 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/go.sum b/go.sum index dac445dfba7..e8b240dd44e 100644 --- a/go.sum +++ b/go.sum @@ -1166,8 +1166,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index 3dfdc00b37e..e85b47f6e8d 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -51,7 +51,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/integration-tests/go.sum b/integration-tests/go.sum index e56180b32c6..4a9b3be01c1 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1601,8 +1601,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 9327ff5fe3d..8835f3312e4 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index f41be6e8973..25a51b2a9d0 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1580,8 +1580,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index b0bc99245c5..b2db3087b01 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -33,7 +33,7 @@ require ( github.com/sethvargo/go-retry v0.3.0 github.com/smartcontractkit/chain-selectors v1.0.85 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index 0fed8375b2c..c3337ca73ad 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1602,8 +1602,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 4a33b239aab..9d79af1e853 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -46,7 +46,7 @@ require ( github.com/rs/zerolog v1.34.0 github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.85 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b github.com/smartcontractkit/chainlink-data-streams v0.1.9 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 3bf59cac32c..865a45cbb9d 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1799,8 +1799,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761 h1:K5uuKFGylvfxWEvaNcXHdXXNAjwhwz9+6FwTTX7ppGs= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251219154553-3688afcb0761/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= From 37773c90347a3c536f2f020a86bc78c76f975d17 Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Wed, 24 Dec 2025 14:52:50 -0500 Subject: [PATCH 5/6] Add AckEvent --- core/capabilities/remote/combined_client.go | 5 +++++ core/scripts/go.mod | 2 +- core/scripts/go.sum | 4 ++-- core/services/llo/cre/transmitter.go | 5 +++++ core/services/workflows/engine_test.go | 8 ++++++++ deployment/go.mod | 2 +- deployment/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- integration-tests/go.mod | 2 +- integration-tests/go.sum | 4 ++-- integration-tests/load/go.mod | 2 +- integration-tests/load/go.sum | 4 ++-- system-tests/lib/go.mod | 2 +- system-tests/lib/go.sum | 4 ++-- system-tests/tests/go.mod | 2 +- system-tests/tests/go.sum | 4 ++-- 17 files changed, 39 insertions(+), 21 deletions(-) diff --git a/core/capabilities/remote/combined_client.go b/core/capabilities/remote/combined_client.go index 0080e61e257..b369732a753 100644 --- a/core/capabilities/remote/combined_client.go +++ b/core/capabilities/remote/combined_client.go @@ -35,6 +35,11 @@ func (c *combinedClient) Info(ctx context.Context) (capabilities.CapabilityInfo, return c.info, nil } +func (c *combinedClient) AckEvent(ctx context.Context, eventId string) error { + // TODO: Do we need triggerID to match the triggerSubscriber? And then call AckEvent on that? + return nil +} + func (c *combinedClient) RegisterTrigger(ctx context.Context, request capabilities.TriggerRegistrationRequest) (<-chan capabilities.TriggerResponse, error) { c.mu.RLock() subscriber, ok := c.triggerSubscribers[request.Method] diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 184714f99d0..09e785f4d7c 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -47,7 +47,7 @@ require ( github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chainlink-automation v0.8.1 github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-data-streams v0.1.9 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/core/scripts/go.sum b/core/scripts/go.sum index a0cd6ee3171..157dcda299f 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1634,8 +1634,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/core/services/llo/cre/transmitter.go b/core/services/llo/cre/transmitter.go index f8275e0f4d6..ddba60692bf 100644 --- a/core/services/llo/cre/transmitter.go +++ b/core/services/llo/cre/transmitter.go @@ -217,6 +217,11 @@ func (t *transmitter) processNewEvent(ctx context.Context, event *capabilities.O return nil } +func (t *transmitter) AckEvent(ctx context.Context, eventId string) error { + // TODO + return nil +} + func (t *transmitter) RegisterTrigger(ctx context.Context, req capabilities.TriggerRegistrationRequest) (<-chan capabilities.TriggerResponse, error) { t.mu.Lock() defer t.mu.Unlock() diff --git a/core/services/workflows/engine_test.go b/core/services/workflows/engine_test.go index be64af76063..f6eb76389d7 100644 --- a/core/services/workflows/engine_test.go +++ b/core/services/workflows/engine_test.go @@ -350,6 +350,10 @@ type mockTriggerCapability struct { var _ capabilities.TriggerCapability = (*mockTriggerCapability)(nil) +func (m *mockTriggerCapability) AckEvent(ctx context.Context, eventId string) error { + return nil +} + func (m *mockTriggerCapability) RegisterTrigger(ctx context.Context, req capabilities.TriggerRegistrationRequest) (<-chan capabilities.TriggerResponse, error) { m.registerTriggerCallCounter[req.TriggerID]++ if m.triggerEvent != nil { @@ -2570,6 +2574,10 @@ func (t mockRuntimeTrigger) Info(ctx context.Context) (capabilities.CapabilityIn return t.c.Info(ctx) } +func (t mockRuntimeTrigger) AckEvent(ctx context.Context, eventId string) error { + return t.c.AckEvent(ctx, eventId) +} + func (t mockRuntimeTrigger) RegisterTrigger(ctx context.Context, request capabilities.TriggerRegistrationRequest) (<-chan capabilities.TriggerResponse, error) { return t.c.RegisterTrigger(ctx, request) } diff --git a/deployment/go.mod b/deployment/go.mod index c89ded73edb..52ac452bd11 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -42,7 +42,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/deployment/go.sum b/deployment/go.sum index 75db8473681..2f3b26ad5a5 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1358,8 +1358,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/go.mod b/go.mod index e439d2db838..8365ae0ddf1 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 github.com/smartcontractkit/chainlink-data-streams v0.1.9 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec diff --git a/go.sum b/go.sum index e8b240dd44e..7860c31ec5c 100644 --- a/go.sum +++ b/go.sum @@ -1166,8 +1166,8 @@ github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index e85b47f6e8d..d9b910ad828 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -51,7 +51,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/integration-tests/go.sum b/integration-tests/go.sum index 4a9b3be01c1..5fd74d4a03b 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1601,8 +1601,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 8835f3312e4..b2ca3bf0a4b 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -32,7 +32,7 @@ require ( github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20251128020529-88d93b01d749 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 25a51b2a9d0..e230a8d0b7b 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1580,8 +1580,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index b2db3087b01..0361a00f8a7 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -33,7 +33,7 @@ require ( github.com/sethvargo/go-retry v0.3.0 github.com/smartcontractkit/chain-selectors v1.0.85 github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250912190424-fd2e35d7deb5 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251210110629-10c56e8d2cec github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index c3337ca73ad..292c29502f7 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1602,8 +1602,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index 9d79af1e853..2167f5fdb87 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -46,7 +46,7 @@ require ( github.com/rs/zerolog v1.34.0 github.com/shopspring/decimal v1.4.0 github.com/smartcontractkit/chain-selectors v1.0.85 - github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b + github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 github.com/smartcontractkit/chainlink-data-streams v0.1.9 github.com/smartcontractkit/chainlink-deployments-framework v0.70.0 github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251211123524-f0c4fe7cfc0a diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 865a45cbb9d..025c708ffa3 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1799,8 +1799,8 @@ github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20251027185542-babb09e5363e/go.mod h1:IaoLCQE1miX3iUlQNxOPcVrXrshcO/YsFpxnFuhG9DM= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a h1:GIy+bmMlABnWEvAIe7Jiae2UHk/FIN7hRYavZdm6+f8= github.com/smartcontractkit/chainlink-ccv v0.0.0-20251215155942-4daf59a09b5a/go.mod h1:2BhunX29Hx2aL31X7rSg5HT8nmmy5fvNsQaZ7wP3c/o= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b h1:HrbNkr6IK2j9ezDIvOl2pqFZgrqDDZ9kx1++Py6s6mg= -github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224182834-2569020a075b/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6 h1:S04uSTz2vy8lJJXN3+h0PKievspLWt1CU25OALKG8p8= +github.com/smartcontractkit/chainlink-common v0.9.6-0.20251224190747-4a1ca5d561d6/go.mod h1:ra9yvW8HbLgtXY0fHgnVdA5SjZ06v2/TNyTfPEJzsqo= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg= github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY= github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw= From 58228ff511273cc5cfe67d4630b999a3cbc4f1a3 Mon Sep 17 00:00:00 2001 From: Dylan Tinianov Date: Fri, 2 Jan 2026 11:31:45 -0500 Subject: [PATCH 6/6] Use metadata for acks --- .../executable_and_trigger_capability.go | 47 +++++++++++++++++++ core/capabilities/mocks/trigger_capability.go | 47 +++++++++++++++++++ core/capabilities/mocks/trigger_executable.go | 47 +++++++++++++++++++ core/capabilities/remote/trigger_publisher.go | 7 +-- .../remote/trigger_publisher_test.go | 33 +++++++++++++ .../capabilities/remote/trigger_subscriber.go | 16 ++----- 6 files changed, 183 insertions(+), 14 deletions(-) diff --git a/core/capabilities/mocks/executable_and_trigger_capability.go b/core/capabilities/mocks/executable_and_trigger_capability.go index 18735abe278..40355049579 100644 --- a/core/capabilities/mocks/executable_and_trigger_capability.go +++ b/core/capabilities/mocks/executable_and_trigger_capability.go @@ -23,6 +23,53 @@ func (_m *ExecutableAndTriggerCapability) EXPECT() *ExecutableAndTriggerCapabili return &ExecutableAndTriggerCapability_Expecter{mock: &_m.Mock} } +// AckEvent provides a mock function with given fields: ctx, eventId +func (_m *ExecutableAndTriggerCapability) AckEvent(ctx context.Context, eventId string) error { + ret := _m.Called(ctx, eventId) + + if len(ret) == 0 { + panic("no return value specified for AckEvent") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { + r0 = rf(ctx, eventId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// ExecutableAndTriggerCapability_AckEvent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AckEvent' +type ExecutableAndTriggerCapability_AckEvent_Call struct { + *mock.Call +} + +// AckEvent is a helper method to define mock.On call +// - ctx context.Context +// - eventId string +func (_e *ExecutableAndTriggerCapability_Expecter) AckEvent(ctx interface{}, eventId interface{}) *ExecutableAndTriggerCapability_AckEvent_Call { + return &ExecutableAndTriggerCapability_AckEvent_Call{Call: _e.mock.On("AckEvent", ctx, eventId)} +} + +func (_c *ExecutableAndTriggerCapability_AckEvent_Call) Run(run func(ctx context.Context, eventId string)) *ExecutableAndTriggerCapability_AckEvent_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *ExecutableAndTriggerCapability_AckEvent_Call) Return(_a0 error) *ExecutableAndTriggerCapability_AckEvent_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *ExecutableAndTriggerCapability_AckEvent_Call) RunAndReturn(run func(context.Context, string) error) *ExecutableAndTriggerCapability_AckEvent_Call { + _c.Call.Return(run) + return _c +} + // Execute provides a mock function with given fields: ctx, request func (_m *ExecutableAndTriggerCapability) Execute(ctx context.Context, request capabilities.CapabilityRequest) (capabilities.CapabilityResponse, error) { ret := _m.Called(ctx, request) diff --git a/core/capabilities/mocks/trigger_capability.go b/core/capabilities/mocks/trigger_capability.go index 5386e9d394e..d29b3e5f4f1 100644 --- a/core/capabilities/mocks/trigger_capability.go +++ b/core/capabilities/mocks/trigger_capability.go @@ -23,6 +23,53 @@ func (_m *TriggerCapability) EXPECT() *TriggerCapability_Expecter { return &TriggerCapability_Expecter{mock: &_m.Mock} } +// AckEvent provides a mock function with given fields: ctx, eventId +func (_m *TriggerCapability) AckEvent(ctx context.Context, eventId string) error { + ret := _m.Called(ctx, eventId) + + if len(ret) == 0 { + panic("no return value specified for AckEvent") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { + r0 = rf(ctx, eventId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// TriggerCapability_AckEvent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AckEvent' +type TriggerCapability_AckEvent_Call struct { + *mock.Call +} + +// AckEvent is a helper method to define mock.On call +// - ctx context.Context +// - eventId string +func (_e *TriggerCapability_Expecter) AckEvent(ctx interface{}, eventId interface{}) *TriggerCapability_AckEvent_Call { + return &TriggerCapability_AckEvent_Call{Call: _e.mock.On("AckEvent", ctx, eventId)} +} + +func (_c *TriggerCapability_AckEvent_Call) Run(run func(ctx context.Context, eventId string)) *TriggerCapability_AckEvent_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *TriggerCapability_AckEvent_Call) Return(_a0 error) *TriggerCapability_AckEvent_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *TriggerCapability_AckEvent_Call) RunAndReturn(run func(context.Context, string) error) *TriggerCapability_AckEvent_Call { + _c.Call.Return(run) + return _c +} + // Info provides a mock function with given fields: ctx func (_m *TriggerCapability) Info(ctx context.Context) (capabilities.CapabilityInfo, error) { ret := _m.Called(ctx) diff --git a/core/capabilities/mocks/trigger_executable.go b/core/capabilities/mocks/trigger_executable.go index eb4e25fed83..d3d76023490 100644 --- a/core/capabilities/mocks/trigger_executable.go +++ b/core/capabilities/mocks/trigger_executable.go @@ -23,6 +23,53 @@ func (_m *TriggerExecutable) EXPECT() *TriggerExecutable_Expecter { return &TriggerExecutable_Expecter{mock: &_m.Mock} } +// AckEvent provides a mock function with given fields: ctx, eventId +func (_m *TriggerExecutable) AckEvent(ctx context.Context, eventId string) error { + ret := _m.Called(ctx, eventId) + + if len(ret) == 0 { + panic("no return value specified for AckEvent") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { + r0 = rf(ctx, eventId) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// TriggerExecutable_AckEvent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AckEvent' +type TriggerExecutable_AckEvent_Call struct { + *mock.Call +} + +// AckEvent is a helper method to define mock.On call +// - ctx context.Context +// - eventId string +func (_e *TriggerExecutable_Expecter) AckEvent(ctx interface{}, eventId interface{}) *TriggerExecutable_AckEvent_Call { + return &TriggerExecutable_AckEvent_Call{Call: _e.mock.On("AckEvent", ctx, eventId)} +} + +func (_c *TriggerExecutable_AckEvent_Call) Run(run func(ctx context.Context, eventId string)) *TriggerExecutable_AckEvent_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string)) + }) + return _c +} + +func (_c *TriggerExecutable_AckEvent_Call) Return(_a0 error) *TriggerExecutable_AckEvent_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *TriggerExecutable_AckEvent_Call) RunAndReturn(run func(context.Context, string) error) *TriggerExecutable_AckEvent_Call { + _c.Call.Return(run) + return _c +} + // RegisterTrigger provides a mock function with given fields: ctx, request func (_m *TriggerExecutable) RegisterTrigger(ctx context.Context, request capabilities.TriggerRegistrationRequest) (<-chan capabilities.TriggerResponse, error) { ret := _m.Called(ctx, request) diff --git a/core/capabilities/remote/trigger_publisher.go b/core/capabilities/remote/trigger_publisher.go index 5b051a174e0..b5c22712cad 100644 --- a/core/capabilities/remote/trigger_publisher.go +++ b/core/capabilities/remote/trigger_publisher.go @@ -35,9 +35,9 @@ type triggerPublisher struct { messageCache *messagecache.MessageCache[registrationKey, p2ptypes.PeerID] registrations map[registrationKey]*pubRegState - ackCache *messagecache.MessageCache[ackKey, p2ptypes.PeerID] - mu sync.RWMutex // protects messageCache and registrations + mu sync.RWMutex // protects messageCache, ackCache, and registrations + batchingQueue map[[32]byte]*batchedResponse bqMu sync.Mutex // protects batchingQueue stopCh services.StopChan @@ -93,6 +93,7 @@ func NewTriggerPublisher(capabilityID string, capMethodName string, dispatcher t capMethodName: capMethodName, dispatcher: dispatcher, messageCache: messagecache.NewMessageCache[registrationKey, p2ptypes.PeerID](), + ackCache: messagecache.NewMessageCache[ackKey, p2ptypes.PeerID](), registrations: make(map[registrationKey]*pubRegState), batchingQueue: make(map[[32]byte]*batchedResponse), stopCh: make(services.StopChan), @@ -275,7 +276,7 @@ func (p *triggerPublisher) Receive(_ context.Context, msg *types.MessageBody) { key := ackKey{msg.CallerDonId, triggerEventID} nowMs := time.Now().UnixMilli() - p.ackCache.Insert(key, sender, nowMs, msg.Payload) + p.ackCache.Insert(key, sender, nowMs, msg.Payload) // TODO: Payload is empty.. minRequired := uint32(2*callerDon.F + 1) ready, _ := p.ackCache.Ready(key, minRequired, nowMs-cfg.remoteConfig.EventTimeout.Milliseconds(), false) if !ready { diff --git a/core/capabilities/remote/trigger_publisher_test.go b/core/capabilities/remote/trigger_publisher_test.go index bad3b4cd905..2abd27e4ca7 100644 --- a/core/capabilities/remote/trigger_publisher_test.go +++ b/core/capabilities/remote/trigger_publisher_test.go @@ -99,6 +99,20 @@ func TestTriggerPublisher_ReceiveTriggerEvents_BatchingEnabled(t *testing.T) { require.NoError(t, publisher.Close()) } +func TestTriggerPublisher_RecieveTriggerEventAcks(t *testing.T) { + ctx := testutils.Context(t) + capabilityDONID, workflowDONID := uint32(1), uint32(2) + underlyingTriggerCap, publisher, _, peers := newServices(t, capabilityDONID, workflowDONID, 2) + eventId := "123" + regEvent := newAckEventMessage(t, eventId, workflowDONID, peers[1]) + publisher.Receive(ctx, regEvent) + + require.True(t, underlyingTriggerCap.eventAckd) + require.NoError(t, publisher.Close()) + + // TODO: Increase event ACK test coverage +} + func TestTriggerPublisher_SetConfig_Basic(t *testing.T) { t.Parallel() lggr := logger.Test(t) @@ -266,10 +280,24 @@ func newRegisterTriggerMessage(t *testing.T, callerDonID uint32, sender p2ptypes } } +func newAckEventMessage(t *testing.T, eventId string, callerDonID uint32, sender p2ptypes.PeerID) *remotetypes.MessageBody { + return &remotetypes.MessageBody{ + Sender: sender[:], + Method: remotetypes.MethodTriggerEventAck, + CallerDonId: callerDonID, + Metadata: &remotetypes.MessageBody_TriggerEventMetadata{ + TriggerEventMetadata: &remotetypes.TriggerEventMetadata{ + TriggerEventId: eventId, + }, + }, + } +} + type testTrigger struct { info commoncap.CapabilityInfo registrationsCh chan commoncap.TriggerRegistrationRequest eventCh chan commoncap.TriggerResponse + eventAckd bool } func (tr *testTrigger) Info(_ context.Context) (commoncap.CapabilityInfo, error) { @@ -284,3 +312,8 @@ func (tr *testTrigger) RegisterTrigger(_ context.Context, request commoncap.Trig func (tr *testTrigger) UnregisterTrigger(_ context.Context, request commoncap.TriggerRegistrationRequest) error { return nil } + +func (tr *testTrigger) AckEvent(_ context.Context, eventId string) error { + tr.eventAckd = true + return nil +} diff --git a/core/capabilities/remote/trigger_subscriber.go b/core/capabilities/remote/trigger_subscriber.go index a2f6997e71f..071e6be2e85 100644 --- a/core/capabilities/remote/trigger_subscriber.go +++ b/core/capabilities/remote/trigger_subscriber.go @@ -130,16 +130,6 @@ func (s *triggerSubscriber) Info(ctx context.Context) (commoncap.CapabilityInfo, } func (s *triggerSubscriber) AckEvent(ctx context.Context, eventId string) error { - response := commoncap.TriggerResponse{ - Event: commoncap.TriggerEvent{ - TriggerType: s.capMethodName, - ID: eventId, - }} - rawRequest, err := pb.MarshalTriggerResponse(response) - if err != nil { - return fmt.Errorf("failed to marshal trigger response: %w", err) - } - s.mu.RLock() cfg := s.cfg.Load() for _, peerID := range cfg.capDonInfo.Members { @@ -149,7 +139,11 @@ func (s *triggerSubscriber) AckEvent(ctx context.Context, eventId string) error CallerDonId: cfg.localDonID, Method: types.MethodTriggerEventAck, CapabilityMethod: s.capMethodName, - Payload: rawRequest, + Metadata: &types.MessageBody_TriggerEventMetadata{ + TriggerEventMetadata: &types.TriggerEventMetadata{ + TriggerEventId: eventId, + }, + }, } err := s.dispatcher.Send(peerID, m) if err != nil {