@@ -18,8 +18,8 @@ use graph::{
18
18
web3:: {
19
19
self ,
20
20
types:: {
21
- Address , Block , BlockId , BlockNumber as Web3BlockNumber , Bytes , CallRequest ,
22
- Filter , FilterBuilder , Log , Transaction , TransactionReceipt , H256 ,
21
+ Address , BlockId , BlockNumber as Web3BlockNumber , Bytes , CallRequest , Filter ,
22
+ FilterBuilder , Log , Transaction , TransactionReceipt , H256 ,
23
23
} ,
24
24
} ,
25
25
BlockNumber , ChainStore , CheapClone , DynTryFuture , Error , EthereumCallCache , Logger ,
@@ -188,8 +188,9 @@ impl EthereumAdapter {
188
188
addresses : Vec < H160 > ,
189
189
) -> Result < Vec < Trace > , Error > {
190
190
let eth = self . clone ( ) ;
191
-
192
- retry ( "trace_filter RPC call" , & logger)
191
+ let retry_log_message =
192
+ format ! ( "trace_filter RPC call for block range: [{}..{}]" , from, to) ;
193
+ retry ( retry_log_message, & logger)
193
194
. limit ( * REQUEST_RETRIES )
194
195
. timeout_secs ( * JSON_RPC_TIMEOUT )
195
196
. run ( move || {
@@ -282,8 +283,8 @@ impl EthereumAdapter {
282
283
too_many_logs_fingerprints : & ' static [ & ' static str ] ,
283
284
) -> Result < Vec < Log > , TimeoutError < web3:: error:: Error > > {
284
285
let eth_adapter = self . clone ( ) ;
285
-
286
- retry ( "eth_getLogs RPC call" , & logger)
286
+ let retry_log_message = format ! ( "eth_getLogs RPC call for block range: [{}..{}]" , from , to ) ;
287
+ retry ( retry_log_message , & logger)
287
288
. when ( move |res : & Result < _ , web3:: error:: Error > | match res {
288
289
Ok ( _) => false ,
289
290
Err ( e) => !too_many_logs_fingerprints
@@ -483,8 +484,8 @@ impl EthereumAdapter {
483
484
} else {
484
485
BlockId :: Hash ( block_ptr. hash_as_h256 ( ) )
485
486
} ;
486
-
487
- retry ( "eth_call RPC call" , & logger)
487
+ let retry_log_message = format ! ( "eth_call RPC call for block {}" , block_ptr ) ;
488
+ retry ( retry_log_message , & logger)
488
489
. when ( |result| match result {
489
490
Ok ( _) | Err ( EthereumContractCallError :: Revert ( _) ) => false ,
490
491
Err ( _) => true ,
@@ -1004,9 +1005,12 @@ impl EthereumAdapterTrait for EthereumAdapter {
1004
1005
) -> Box < dyn Future < Item = Option < LightEthereumBlock > , Error = Error > + Send > {
1005
1006
let web3 = self . web3 . clone ( ) ;
1006
1007
let logger = logger. clone ( ) ;
1007
-
1008
+ let retry_log_message = format ! (
1009
+ "eth_getBlockByHash RPC call for block hash {:?}" ,
1010
+ block_hash
1011
+ ) ;
1008
1012
Box :: new (
1009
- retry ( "eth_getBlockByHash RPC call" , & logger)
1013
+ retry ( retry_log_message , & logger)
1010
1014
. limit ( * REQUEST_RETRIES )
1011
1015
. timeout_secs ( * JSON_RPC_TIMEOUT )
1012
1016
. run ( move || {
@@ -1032,9 +1036,12 @@ impl EthereumAdapterTrait for EthereumAdapter {
1032
1036
) -> Box < dyn Future < Item = Option < LightEthereumBlock > , Error = Error > + Send > {
1033
1037
let web3 = self . web3 . clone ( ) ;
1034
1038
let logger = logger. clone ( ) ;
1035
-
1039
+ let retry_log_message = format ! (
1040
+ "eth_getBlockByNumber RPC call for block number {}" ,
1041
+ block_number
1042
+ ) ;
1036
1043
Box :: new (
1037
- retry ( "eth_getBlockByNumber RPC call" , & logger)
1044
+ retry ( retry_log_message , & logger)
1038
1045
. no_limit ( )
1039
1046
. timeout_secs ( * JSON_RPC_TIMEOUT )
1040
1047
. run ( move || {
@@ -1135,9 +1142,12 @@ impl EthereumAdapterTrait for EthereumAdapter {
1135
1142
block_number : BlockNumber ,
1136
1143
) -> Box < dyn Future < Item = Option < H256 > , Error = Error > + Send > {
1137
1144
let web3 = self . web3 . clone ( ) ;
1138
-
1145
+ let retry_log_message = format ! (
1146
+ "eth_getBlockByNumber RPC call for block number {}" ,
1147
+ block_number
1148
+ ) ;
1139
1149
Box :: new (
1140
- retry ( "eth_getBlockByNumber RPC call" , & logger)
1150
+ retry ( retry_log_message , & logger)
1141
1151
. no_limit ( )
1142
1152
. timeout_secs ( * JSON_RPC_TIMEOUT )
1143
1153
. run ( move || {
@@ -1163,58 +1173,6 @@ impl EthereumAdapterTrait for EthereumAdapter {
1163
1173
)
1164
1174
}
1165
1175
1166
- fn uncles (
1167
- & self ,
1168
- logger : & Logger ,
1169
- block : & LightEthereumBlock ,
1170
- ) -> Box < dyn Future < Item = Vec < Option < Block < H256 > > > , Error = Error > + Send > {
1171
- let block_hash = match block. hash {
1172
- Some ( hash) => hash,
1173
- None => {
1174
- return Box :: new ( future:: result ( Err ( anyhow ! (
1175
- "could not get uncle for block '{}' because block has null hash" ,
1176
- block
1177
- . number
1178
- . map( |num| num. to_string( ) )
1179
- . unwrap_or( String :: from( "null" ) )
1180
- ) ) ) )
1181
- }
1182
- } ;
1183
- let n = block. uncles . len ( ) ;
1184
-
1185
- Box :: new (
1186
- futures:: stream:: futures_ordered ( ( 0 ..n) . map ( move |index| {
1187
- let web3 = self . web3 . clone ( ) ;
1188
-
1189
- retry ( "eth_getUncleByBlockHashAndIndex RPC call" , & logger)
1190
- . no_limit ( )
1191
- . timeout_secs ( 60 )
1192
- . run ( move || {
1193
- Box :: pin ( web3. eth ( ) . uncle ( block_hash. clone ( ) . into ( ) , index. into ( ) ) )
1194
- . compat ( )
1195
- . map_err ( move |e| {
1196
- anyhow ! (
1197
- "could not get uncle {} for block {:?} ({} uncles): {}" ,
1198
- index,
1199
- block_hash,
1200
- n,
1201
- e
1202
- )
1203
- } )
1204
- . compat ( )
1205
- } )
1206
- . map_err ( move |e| {
1207
- e. into_inner ( ) . unwrap_or_else ( move || {
1208
- anyhow ! ( "Ethereum node took too long to return uncle" )
1209
- } )
1210
- } )
1211
- . boxed ( )
1212
- . compat ( )
1213
- } ) )
1214
- . collect ( ) ,
1215
- )
1216
- }
1217
-
1218
1176
fn contract_call (
1219
1177
& self ,
1220
1178
logger : & Logger ,
@@ -1812,7 +1770,11 @@ async fn fetch_transaction_receipts_in_batch_with_retry(
1812
1770
block_hash : H256 ,
1813
1771
logger : Logger ,
1814
1772
) -> Result < Vec < TransactionReceipt > , IngestorError > {
1815
- retry ( "batch eth_getTransactionReceipt RPC call" , & logger)
1773
+ let retry_log_message = format ! (
1774
+ "batch eth_getTransactionReceipt RPC call for block {:?}" ,
1775
+ block_hash
1776
+ ) ;
1777
+ retry ( retry_log_message, & logger)
1816
1778
. limit ( * REQUEST_RETRIES )
1817
1779
. no_logging ( )
1818
1780
. timeout_secs ( * JSON_RPC_TIMEOUT )
@@ -1864,7 +1826,11 @@ async fn fetch_transaction_receipt_with_retry(
1864
1826
logger : Logger ,
1865
1827
) -> Result < TransactionReceipt , IngestorError > {
1866
1828
let logger = logger. cheap_clone ( ) ;
1867
- retry ( "batch eth_getTransactionReceipt RPC call" , & logger)
1829
+ let retry_log_message = format ! (
1830
+ "eth_getTransactionReceipt RPC call for transaction {:?}" ,
1831
+ transaction_hash
1832
+ ) ;
1833
+ retry ( retry_log_message, & logger)
1868
1834
. limit ( * REQUEST_RETRIES )
1869
1835
. no_logging ( )
1870
1836
. timeout_secs ( * JSON_RPC_TIMEOUT )
0 commit comments