@@ -46,7 +46,12 @@ def request_wrapper(method, params):
46
46
for method , params in requests_info
47
47
]
48
48
49
- no_splitting = len (requests_info ) == 2 and requests_info [0 ][0 ] == "eth_getLogs" and requests_info [1 ][0 ] == "eth_getBlockByNumber"
49
+ if (
50
+ (len (requests_info ) == 2 and requests_info [0 ][0 ] == "eth_getLogs" and requests_info [1 ][0 ] == "eth_getBlockByNumber" ) or
51
+ (len (requests_info ) == 3 and requests_info [0 ][0 ] == "eth_getBlockByNumber" and requests_info [1 ][0 ] == "eth_getLogs" and requests_info [2 ][0 ] == "eth_getBlockByNumber" )
52
+ ):
53
+ # not retrying or splitting when this request comes from our get_logs wrapper
54
+ return make_batch_request (requests_info )
50
55
51
56
try :
52
57
response = make_batch_request (requests_info )
@@ -78,17 +83,12 @@ def request_wrapper(method, params):
78
83
79
84
print (f"{ len (requests_retry )} /{ len (requests_info )} requests in batch failed, retrying. Example response: { response [request_indexes [0 ][0 ]]} " )
80
85
81
- if len (requests_retry ) != len (requests_info ) and not no_splitting : # if some requests succeeded, retry failed requests
86
+ if len (requests_retry ) != len (requests_info ): # if some requests succeeded, retry failed requests
82
87
response_new = middleware (requests_retry )
83
88
for old_idx , new_idx in request_indexes :
84
89
response [old_idx ] = response_new [new_idx ]
85
90
return response
86
91
87
- if no_splitting :
88
- # retry request. This being recursive is not optimal, but should be ok
89
- sleep (0.1 )
90
- return middleware (requests_info )
91
-
92
92
assert len (requests_info ) > 1
93
93
middle = len (requests_info ) // 2
94
94
sleep (0.1 )
0 commit comments