diff --git a/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator.go b/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator.go index 6f8e04c9e2..1221c68e78 100644 --- a/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator.go +++ b/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator.go @@ -20,7 +20,6 @@ import ( var ( ErrNoMatchingChainSelector = errors.New("no matching chain selector found") - ErrSequenceNumberTooLow = errors.New("sequence number too low") ) // secureMintReport represents the inner report structure, mimics the Report type in the SM plugin repo @@ -114,12 +113,7 @@ func (a *SecureMintAggregator) Aggregate(lggr logger.Logger, previousOutcome *ty // extractAndValidateReports extracts OCRTriggerEvent from observations and validates them func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, observations map[ocrcommon.OracleID][]values.Value, previousOutcome *types.AggregationOutcome) ([]*secureMintReport, error) { var validReports []*secureMintReport - var sequenceNumberTooLow bool var foundMatchingChainSelector bool - previousSeqNr := uint64(0) - if previousOutcome != nil { - previousSeqNr = previousOutcome.LastSeenAt - } for nodeID, nodeObservations := range observations { lggr = logger.With(lggr, "nodeID", nodeID) @@ -153,13 +147,6 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs // We found a matching chain selector foundMatchingChainSelector = true - // Validate sequence number - if triggerEvent.SeqNr <= previousSeqNr { - lggr.Warnw("sequence number too low", "seqNr", triggerEvent.SeqNr, "previousSeqNr", previousSeqNr) - sequenceNumberTooLow = true - continue - } - // Deserialize the inner secureMintReport var innerReport secureMintReport if err := json.Unmarshal(reportWithInfo.Report, &innerReport); err != nil { @@ -177,10 +164,6 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs return nil, nil } - if sequenceNumberTooLow { - return nil, fmt.Errorf("%w: all reports had sequence numbers <= %d", ErrSequenceNumberTooLow, previousSeqNr) - } - return validReports, nil } @@ -223,12 +206,15 @@ func (a *SecureMintAggregator) createOutcome(lggr logger.Logger, report *secureM // Store the sequence number in metadata for next round metadata := []byte{byte(report.SeqNr)} // Simple metadata for now - return &types.AggregationOutcome{ + aggOutcome := &types.AggregationOutcome{ EncodableOutcome: reportsProto.GetMapValue(), Metadata: metadata, LastSeenAt: report.SeqNr, ShouldReport: true, // Always report since we found and verified the target report - }, nil + } + + lggr.Debugw("SecureMint AggregationOutcome created", "aggOutcome", aggOutcome) + return aggOutcome, nil } // parseSecureMintConfig parses the user-facing, type-less, SecureMint aggregator config into the internal typed config. diff --git a/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator_test.go b/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator_test.go index 04703ec4e9..0b0b87c286 100644 --- a/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator_test.go +++ b/pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator_test.go @@ -87,28 +87,6 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) { expectError: false, expectedShouldReport: false, }, - { - name: "sequence number too low", - config: configWithChainSelector(t, "16015286601757825753"), - previousOutcome: &types.AggregationOutcome{ - LastSeenAt: 10, // Previous sequence number - }, - observations: createSecureMintObservations(t, []ocrTriggerEventData{ - { - chainSelector: ethSepoliaChainSelector, - seqNr: 9, // Lower than previous - report: &secureMintReport{ - ConfigDigest: ocr2types.ConfigDigest{0: 1, 31: 2}, - SeqNr: 9, - Block: 1000, - Mintable: big.NewInt(99), - }, - }, - }), - f: 1, - expectError: true, - errorContains: "sequence number too low", - }, { name: "no observations", config: configWithChainSelector(t, "16015286601757825753"), @@ -117,28 +95,6 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) { expectError: true, errorContains: "no observations", }, - { - name: "sequence number equal to previous (should be ignored)", - config: configWithChainSelector(t, "16015286601757825753"), - previousOutcome: &types.AggregationOutcome{ - LastSeenAt: 10, // Previous sequence number - }, - observations: createSecureMintObservations(t, []ocrTriggerEventData{ - { - chainSelector: ethSepoliaChainSelector, - seqNr: 10, // Equal to previous - report: &secureMintReport{ - ConfigDigest: ocr2types.ConfigDigest{0: 1, 31: 2}, - SeqNr: 10, - Block: 1000, - Mintable: big.NewInt(99), - }, - }, - }), - f: 1, - expectError: true, - errorContains: "sequence number too low", - }, } for _, tc := range tests {