Skip to content

Commit be04f32

Browse files
committed
Fixed MsgsBetweenSeqNums query filter
1 parent 741d320 commit be04f32

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

pkg/solana/ccip/chainaccessor/event.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,16 @@ var eventFilterConfigMap = map[string]map[string]filterConfig{
102102

103103
// Map of event name to offchain attribute to its subkey index for querying the LogPoller
104104
// Corresponds to the indexed fields in the eventFilterConfigMap above
105-
var eventFilterSubkeyIndexMap = map[string]map[string]uint64 {
105+
var eventFilterSubkeyIndexMap = map[string]map[string]uint64{
106106
consts.EventNameCCIPMessageSent: {
107-
consts.EventAttributeSourceChain: 0,
108-
consts.EventAttributeDestChain: 1,
107+
consts.EventAttributeSourceChain: 0,
108+
consts.EventAttributeDestChain: 1,
109109
consts.EventAttributeSequenceNumber: 2,
110110
},
111111
consts.EventNameExecutionStateChanged: {
112-
consts.EventAttributeSourceChain: 0,
112+
consts.EventAttributeSourceChain: 0,
113113
consts.EventAttributeSequenceNumber: 1,
114-
consts.EventAttributeState: 2,
114+
consts.EventAttributeState: 2,
115115
},
116116
}
117117

@@ -517,7 +517,7 @@ func createExecutedMessagesKeyFilter(rangesPerChain map[ccipocr3.ChainSelector][
517517
}
518518
// We don't need to wait for an execute state changed event to be finalized
519519
// before we optimistically mark a message as executed.
520-
subKeyFilter, err := logpoller.NewEventBySubKeyFilter(stateAttributeIndex, []primitives.ValueComparator{{Value: 0, Operator: primitives.Gt}},)
520+
subKeyFilter, err := logpoller.NewEventBySubKeyFilter(stateAttributeIndex, []primitives.ValueComparator{{Value: 0, Operator: primitives.Gt}})
521521
if err != nil {
522522
return query.KeyFilter{}, 0, fmt.Errorf("failed to build event sub key filter for state attribute: %w", err)
523523
}

pkg/solana/ccip/chainaccessor/solana_accessor.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -231,22 +231,24 @@ func (a *SolanaAccessor) MsgsBetweenSeqNums(ctx context.Context, dest ccipocr3.C
231231
if !ok {
232232
return nil, fmt.Errorf("failed to find index for attribute %s for event %s", consts.EventAttributeDestChain, consts.EventNameCCIPMessageSent)
233233
}
234-
subKeyFilter, err := logpoller.NewEventBySubKeyFilter(destChainAttributeIndex, []primitives.ValueComparator{{Value: dest, Operator: primitives.Eq}},)
234+
destChainSubKeyFilter, err := logpoller.NewEventBySubKeyFilter(destChainAttributeIndex, []primitives.ValueComparator{{Value: dest, Operator: primitives.Eq}})
235235
if err != nil {
236236
return nil, fmt.Errorf("failed to build event sub key filter for dest chain attribute: %w", err)
237237
}
238+
seqNumAttributeIndex, ok := attributeIndexes[consts.EventAttributeSequenceNumber]
239+
if !ok {
240+
return nil, fmt.Errorf("failed to find index for attribute %s for event %s", consts.EventAttributeSequenceNumber, consts.EventNameCCIPMessageSent)
241+
}
242+
seqNumSubkeyFilter, err := logpoller.NewEventBySubKeyFilter(seqNumAttributeIndex, []primitives.ValueComparator{{Value: seqNumRange.Start(), Operator: primitives.Gte}, {Value: seqNumRange.End(), Operator: primitives.Lte}})
243+
if err != nil {
244+
return nil, fmt.Errorf("failed to build event sub key filter for sequence number attribute: %w", err)
245+
}
238246

239247
expressions := []query.Expression{
240248
logpoller.NewAddressFilter(onrampAddr),
241249
logpoller.NewEventSigFilter(logpollertypes.NewEventSignatureFromName(consts.EventNameCCIPMessageSent)),
242-
subKeyFilter,
243-
query.Comparator(consts.EventAttributeSequenceNumber, primitives.ValueComparator{
244-
Value: seqNumRange.Start(),
245-
Operator: primitives.Gte,
246-
}, primitives.ValueComparator{
247-
Value: seqNumRange.End(),
248-
Operator: primitives.Lte,
249-
}),
250+
destChainSubKeyFilter,
251+
seqNumSubkeyFilter,
250252
query.Confidence(primitives.Finalized),
251253
}
252254

@@ -303,7 +305,7 @@ func (a *SolanaAccessor) LatestMessageTo(ctx context.Context, dest ccipocr3.Chai
303305
if !ok {
304306
return 0, fmt.Errorf("failed to find index for attribute %s for event %s", consts.EventAttributeDestChain, consts.EventNameCCIPMessageSent)
305307
}
306-
subKeyFilter, err := logpoller.NewEventBySubKeyFilter(destChainAttributeIndex, []primitives.ValueComparator{{Value: dest, Operator: primitives.Eq}},)
308+
subKeyFilter, err := logpoller.NewEventBySubKeyFilter(destChainAttributeIndex, []primitives.ValueComparator{{Value: dest, Operator: primitives.Eq}})
307309
if err != nil {
308310
return 0, fmt.Errorf("failed to build event sub key filter for dest chain attribute: %w", err)
309311
}
@@ -744,10 +746,10 @@ func (a *SolanaAccessor) GetFeeQuoterTokenUpdates(
744746
}
745747

746748
token := ccipocr3.UnknownEncodedAddress(billingConfig.Mint.String())
747-
value := new(big.Int).SetBytes( billingConfig.UsdPerToken.Value[:])
749+
value := new(big.Int).SetBytes(billingConfig.UsdPerToken.Value[:])
748750
feePriceUpdates[token] = ccipocr3.TimestampedUnixBig{
749-
Value: value,
750-
Timestamp: uint32(billingConfig.UsdPerToken.Timestamp),
751+
Value: value,
752+
Timestamp: uint32(billingConfig.UsdPerToken.Timestamp), //nolint:gosec // G115: validated to be within uint32 max above
751753
}
752754
}
753755
}

0 commit comments

Comments
 (0)