@@ -565,7 +565,7 @@ impl<N: Network> Service<N> {
565565 }
566566
567567 async fn stream_live_blocks < P : Provider < N > > (
568- mut current : BlockNumber ,
568+ mut expected_next_block : BlockNumber ,
569569 provider : P ,
570570 sender : mpsc:: Sender < Result < RangeInclusive < BlockNumber > , Error > > ,
571571 reorg_rewind_depth : u64 ,
@@ -574,13 +574,14 @@ impl<N: Network> Service<N> {
574574 Ok ( ws_stream) => {
575575 info ! ( "WebSocket connected for live blocks" ) ;
576576
577- let cur = current ;
577+ let cur = expected_next_block ;
578578 let mut stream = ws_stream. into_stream ( ) . skip_while ( |header| header. number ( ) < cur) ;
579579 while let Some ( incoming_block) = stream. next ( ) . await {
580580 let incoming_block_num = incoming_block. number ( ) ;
581581 info ! ( block_number = incoming_block_num, "Received block header" ) ;
582582
583- if incoming_block_num <= current {
583+ if incoming_block_num < expected_next_block {
584+ println ! ( "reorg detected" ) ;
584585 // TODO: send reorg err - issue is this causes event scanner to stop
585586 // if sender.send(Err(Error::ReorgDetected)).await.is_err() {
586587 // warn!("Downstream channel closed, stopping live blocks task");
@@ -591,16 +592,21 @@ impl<N: Network> Service<N> {
591592 // reorg depth? The incoming block should be the
592593 // latest block from the reorg point so no real need
593594 // tbd
594- if sender. send ( Ok ( incoming_block_num..=current) ) . await . is_err ( ) {
595+ if sender. send ( Ok ( incoming_block_num..=expected_next_block) ) . await . is_err ( )
596+ {
595597 warn ! ( "Downstream channel closed, stopping live blocks task (reorg)" ) ;
596598 return ;
597599 }
598- } else if sender. send ( Ok ( current..=incoming_block_num) ) . await . is_err ( ) {
600+ } else if sender
601+ . send ( Ok ( expected_next_block..=incoming_block_num) )
602+ . await
603+ . is_err ( )
604+ {
599605 warn ! ( "Downstream channel closed, stopping live blocks task" ) ;
600606 return ;
601607 }
602608
603- current = incoming_block_num + 1 ;
609+ expected_next_block = incoming_block_num + 1 ;
604610 }
605611 }
606612 Err ( e) => {
0 commit comments