Skip to content

Commit ee8e4b5

Browse files
committed
last block check
1 parent cc81319 commit ee8e4b5

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

internal/committer/reorg.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ func RunReorgValidator() {
4040
}
4141

4242
// Detect reorgs and handle them
43-
err = detectAndHandleReorgs(startBlock, endBlock)
43+
lastValidBlock, err := detectAndHandleReorgs(startBlock, endBlock)
4444
if err != nil {
4545
log.Error().Err(err).Msg("Failed to detect and handle reorgs")
4646
time.Sleep(2 * time.Second)
4747
continue
4848
}
49-
lastBlockCheck = endBlock
49+
lastBlockCheck = lastValidBlock
5050
}
5151
}
5252

@@ -91,18 +91,18 @@ func getLastValidBlock() (int64, error) {
9191
return lastValidBlock, nil
9292
}
9393

94-
func detectAndHandleReorgs(startBlock int64, endBlock int64) error {
94+
func detectAndHandleReorgs(startBlock int64, endBlock int64) (int64, error) {
9595
log.Debug().Msgf("Checking for reorgs from block %d to %d", startBlock, endBlock)
9696

9797
// Fetch block headers for the range
9898
blockHeaders, err := libs.GetBlockHeadersForReorgCheck(libs.ChainId.Uint64(), uint64(startBlock), uint64(endBlock))
9999
if err != nil {
100-
return fmt.Errorf("detectAndHandleReorgs: failed to get block headers: %w", err)
100+
return 0, fmt.Errorf("detectAndHandleReorgs: failed to get block headers: %w", err)
101101
}
102102

103103
if len(blockHeaders) == 0 {
104104
log.Debug().Msg("detectAndHandleReorgs: No block headers found in range")
105-
return nil
105+
return 0, nil
106106
}
107107

108108
// 1) Block verification: find reorg range from header continuity (existing behavior)
@@ -141,13 +141,13 @@ func detectAndHandleReorgs(startBlock int64, endBlock int64) error {
141141
// and the number of transactions stored per block in ClickHouse.
142142
txStart, txEnd, err := libs.GetTransactionMismatchRangeFromClickHouseV2(libs.ChainId.Uint64(), uint64(startBlock), uint64(endBlock))
143143
if err != nil {
144-
return fmt.Errorf("detectAndHandleReorgs: transaction verification failed: %w", err)
144+
return 0, fmt.Errorf("detectAndHandleReorgs: transaction verification failed: %w", err)
145145
}
146146

147147
// 3) Logs verification: check for mismatches between logsBloom and logs stored in ClickHouse.
148148
logsStart, logsEnd, err := libs.GetLogsMismatchRangeFromClickHouseV2(libs.ChainId.Uint64(), uint64(startBlock), uint64(endBlock))
149149
if err != nil {
150-
return fmt.Errorf("detectAndHandleReorgs: logs verification failed: %w", err)
150+
return 0, fmt.Errorf("detectAndHandleReorgs: logs verification failed: %w", err)
151151
}
152152

153153
// 4) Combine all ranges:
@@ -186,16 +186,16 @@ func detectAndHandleReorgs(startBlock int64, endBlock int64) error {
186186
if finalStart > -1 {
187187
// We found at least one inconsistent range; reorg from min(start) to max(end).
188188
if err := handleReorgForRange(uint64(finalStart), uint64(finalEnd)); err != nil {
189-
return err
189+
return 0, err
190190
}
191191
lastValidBlock = finalEnd
192192
}
193193
err = libs.SetReorgLastValidBlock(libs.ChainIdStr, lastValidBlock)
194194
if err != nil {
195-
return fmt.Errorf("detectAndHandleReorgs: failed to set last valid block: %w", err)
195+
return 0, fmt.Errorf("detectAndHandleReorgs: failed to set last valid block: %w", err)
196196
}
197197

198-
return nil
198+
return lastValidBlock, nil
199199
}
200200

201201
func handleReorgForRange(startBlock uint64, endBlock uint64) error {

0 commit comments

Comments
 (0)