@@ -93,7 +93,7 @@ func (repo *BlocksRepo) GetBlockDatePairs(ts int64) *schemas.BlockDate {
9393 return repo .blockDatePairs .Get (ts )
9494}
9595
96- func (repo * BlocksRepo ) fetchBlockTime (blockNum int64 ) uint64 {
96+ func (repo * BlocksRepo ) _fetchBlockTime (blockNum int64 ) ( uint64 , error ) {
9797 b , err := repo .client .BlockByNumber (context .Background (), big .NewInt (blockNum ))
9898 // if err != nil && err.Error() == "server returned empty uncle list but block header indicates uncles" {
9999 // repo.blocks[blockNum] = &core.Block{BlockNumber: blockNum}
@@ -104,11 +104,25 @@ func (repo *BlocksRepo) fetchBlockTime(blockNum int64) uint64 {
104104 if strings .Contains (err .Error (), "invalid transaction v, r, s values" ) && ds .IsTestnet (repo .client ) {
105105 b , err := repo .client .BlockByNumber (context .Background (), big .NewInt (blockNum - 1 ))
106106 log .CheckFatal (err )
107- return b .Time () + 1
107+ return b .Time () + 1 , nil
108108 }
109- log .Fatalf ("%s: %d" , err , blockNum )
109+ return 0 , err
110+ }
111+ return b .Time (), nil
112+ }
113+
114+ func (repo * BlocksRepo ) fetchBlockTime (blockNum int64 ) uint64 {
115+ bTime , err := repo ._fetchBlockTime (blockNum )
116+ msg := ""
117+ if err != nil && strings .Contains (err .Error (), "not found" ) {
118+ time .Sleep (5 * time .Second )
119+ bTime , err = repo ._fetchBlockTime (blockNum )
120+ msg = "tried again"
121+ }
122+ if err != nil {
123+ log .Fatalf ("%s: %d" , err , blockNum , msg )
110124 }
111- return b . Time ()
125+ return bTime
112126}
113127
114128func (repo * BlocksRepo ) setBlock (blockNum int64 ) {
0 commit comments