@@ -78,14 +78,17 @@ def call(self, use_revert: Optional[bool] = None, batch_size: int = 1_000):
78
78
return self ._inner_call (use_revert = use_revert , calls = self .calls , batch_size = batch_size )
79
79
80
80
def _inner_call (self , use_revert : bool , calls : list [ContractFunction ], batch_size : int ):
81
+ kwargs = dict (
82
+ use_revert = use_revert ,
83
+ batch_size = batch_size ,
84
+ )
81
85
# make sure calls are not bigger than batch_size
82
86
if len (calls ) > batch_size :
83
87
results = []
84
88
for start in range (0 , len (calls ), batch_size ):
85
89
results += self ._inner_call (
86
- use_revert = use_revert ,
90
+ ** kwargs ,
87
91
calls = calls [start : min (start + batch_size , len (calls ))],
88
- batch_size = batch_size
89
92
)
90
93
return results
91
94
@@ -102,16 +105,16 @@ def _inner_call(self, use_revert: bool, calls: list[ContractFunction], batch_siz
102
105
if len (calls ) == 1 :
103
106
print (f"Multicall with single call got Exception '{ repr (e )} ', retrying in 1 sec" )
104
107
sleep (1 )
105
- return self ._inner_call (use_revert = use_revert , calls = calls )
108
+ return self ._inner_call (** kwargs , calls = calls )
106
109
print (f"Multicall got Exception '{ repr (e )} ', splitting and retrying" )
107
- left_results = self ._inner_call (use_revert = use_revert , calls = calls [:len (calls ) // 2 ])
108
- right_results = self ._inner_call (use_revert = use_revert , calls = calls [len (calls ) // 2 :])
110
+ left_results = self ._inner_call (** kwargs , calls = calls [:len (calls ) // 2 ])
111
+ right_results = self ._inner_call (** kwargs , calls = calls [len (calls ) // 2 :])
109
112
return left_results + right_results
110
113
results = self .decode_contract_function_results (raw_returns = raw_returns , contract_functions = calls )
111
114
if len (results ) == len (calls ):
112
115
return results
113
116
# if not all calls were executed, recursively execute remaining calls and concatenate results
114
- return results + self ._inner_call (use_revert = use_revert , calls = calls [len (results ):])
117
+ return results + self ._inner_call (** kwargs , calls = calls [len (results ):])
115
118
116
119
@staticmethod
117
120
def calculate_expected_contract_address (sender : str , nonce : int ):
0 commit comments