Skip to content

Commit 9c72de4

Browse files
authored
[CAL][7] - implement GetExpectedNextSequenceNumber (#990)
1 parent eee2b6a commit 9c72de4

File tree

2 files changed

+29
-25
lines changed

2 files changed

+29
-25
lines changed

pkg/chainaccessor/legacy_accessor.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,30 @@ func (l *LegacyAccessor) LatestMsgSeqNum(
219219

220220
func (l *LegacyAccessor) GetExpectedNextSequenceNumber(
221221
ctx context.Context,
222-
dest cciptypes.ChainSelector,
222+
destChainSelector cciptypes.ChainSelector,
223223
) (cciptypes.SeqNum, error) {
224-
// TODO(NONEVM-1865): implement
225-
panic("implement me")
224+
var expectedNextSequenceNumber uint64
225+
err := l.contractReader.ExtendedGetLatestValue(
226+
ctx,
227+
consts.ContractNameOnRamp,
228+
consts.MethodNameGetExpectedNextSequenceNumber,
229+
primitives.Unconfirmed,
230+
map[string]any{
231+
"destChainSelector": destChainSelector,
232+
},
233+
&expectedNextSequenceNumber,
234+
)
235+
if err != nil {
236+
return 0, fmt.Errorf("failed to get expected next sequence number from onramp, source chain: %d, dest chain: %d: %w",
237+
l.chainSelector, destChainSelector, err)
238+
}
239+
240+
if expectedNextSequenceNumber == 0 {
241+
return 0, fmt.Errorf("the returned expected next sequence num is 0, source chain: %d, dest chain: %d",
242+
l.chainSelector, destChainSelector)
243+
}
244+
245+
return cciptypes.SeqNum(expectedNextSequenceNumber), nil
226246
}
227247

228248
func (l *LegacyAccessor) GetTokenPriceUSD(

pkg/reader/ccip.go

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -555,34 +555,18 @@ func (r *ccipChainReader) GetExpectedNextSequenceNumber(
555555
) (cciptypes.SeqNum, error) {
556556
lggr := logutil.WithContextValues(ctx, r.lggr)
557557

558-
if err := validateReaderExistence(r.contractReaders, sourceChainSelector); err != nil {
558+
if err := validateAccessorExistence(r.accessors, sourceChainSelector); err != nil {
559559
return 0, err
560560
}
561-
562-
var expectedNextSequenceNumber uint64
563-
err := r.contractReaders[sourceChainSelector].ExtendedGetLatestValue(
564-
ctx,
565-
consts.ContractNameOnRamp,
566-
consts.MethodNameGetExpectedNextSequenceNumber,
567-
primitives.Unconfirmed,
568-
map[string]any{
569-
"destChainSelector": r.destChain,
570-
},
571-
&expectedNextSequenceNumber,
572-
)
561+
expectedNextSeqNum, err := r.accessors[sourceChainSelector].GetExpectedNextSequenceNumber(ctx, r.destChain)
573562
if err != nil {
574-
return 0, fmt.Errorf("failed to get expected next sequence number from onramp, source chain: %d, dest chain: %d: %w",
563+
return 0, fmt.Errorf("failed to call accessor LatestMsgSeqNum, source chain: %d, dest chain: %d: %w",
575564
sourceChainSelector, r.destChain, err)
576565
}
577566

578-
if expectedNextSequenceNumber == 0 {
579-
return 0, fmt.Errorf("the returned expected next sequence num is 0, source chain: %d, dest chain: %d",
580-
sourceChainSelector, r.destChain)
581-
}
582-
583-
lggr.Debugw("chain reader returning expected next sequence number",
584-
"seqNum", expectedNextSequenceNumber, "sourceChainSelector", sourceChainSelector)
585-
return cciptypes.SeqNum(expectedNextSequenceNumber), nil
567+
lggr.Debugw("chain accessor returning expected next sequence number",
568+
"seqNum", expectedNextSeqNum, "sourceChainSelector", sourceChainSelector)
569+
return expectedNextSeqNum, nil
586570
}
587571

588572
// NextSeqNum returns the current sequence numbers for chains.

0 commit comments

Comments
 (0)