@@ -50,23 +50,32 @@ export class PollingBlockSubscriber implements Subscriber {
5050 set pollingInterval ( value : number ) { this . #interval = value ; }
5151
5252 async #poll( ) : Promise < void > {
53- const blockNumber = await this . #provider. getBlockNumber ( ) ;
54- if ( this . #blockNumber === - 2 ) {
55- this . #blockNumber = blockNumber ;
56- return ;
57- }
53+ try {
54+ const blockNumber = await this . #provider. getBlockNumber ( ) ;
55+
56+ // Bootstrap poll to setup our initial block number
57+ if ( this . #blockNumber === - 2 ) {
58+ this . #blockNumber = blockNumber ;
59+ return ;
60+ }
5861
59- // @TODO : Put a cap on the maximum number of events per loop?
62+ // @TODO : Put a cap on the maximum number of events per loop?
6063
61- if ( blockNumber !== this . #blockNumber) {
62- for ( let b = this . #blockNumber + 1 ; b <= blockNumber ; b ++ ) {
63- // We have been stopped
64- if ( this . #poller == null ) { return ; }
64+ if ( blockNumber !== this . #blockNumber) {
65+ for ( let b = this . #blockNumber + 1 ; b <= blockNumber ; b ++ ) {
66+ // We have been stopped
67+ if ( this . #poller == null ) { return ; }
6568
66- await this . #provider. emit ( "block" , b ) ;
69+ await this . #provider. emit ( "block" , b ) ;
70+ }
71+
72+ this . #blockNumber = blockNumber ;
6773 }
6874
69- this . #blockNumber = blockNumber ;
75+ } catch ( error ) {
76+ // @TODO : Minor bump, add an "error" event to let subscribers
77+ // know things went awry.
78+ //console.log(error);
7079 }
7180
7281 // We have been stopped
0 commit comments