@@ -1432,42 +1432,39 @@ impl EthereumAdapterTrait for EthereumAdapter {
14321432 } )
14331433 }
14341434
1435- fn block_hash_by_block_number (
1435+ async fn block_hash_by_block_number (
14361436 & self ,
14371437 logger : & Logger ,
14381438 block_number : BlockNumber ,
1439- ) -> Box < dyn Future < Item = Option < H256 > , Error = Error > + Send > {
1439+ ) -> Result < Option < H256 > , Error > {
14401440 let web3 = self . web3 . clone ( ) ;
14411441 let retry_log_message = format ! (
14421442 "eth_getBlockByNumber RPC call for block number {}" ,
14431443 block_number
14441444 ) ;
1445- Box :: new (
1446- retry ( retry_log_message, logger)
1447- . redact_log_urls ( true )
1448- . no_limit ( )
1449- . timeout_secs ( ENV_VARS . json_rpc_timeout . as_secs ( ) )
1450- . run ( move || {
1451- let web3 = web3. cheap_clone ( ) ;
1452- async move {
1453- web3. eth ( )
1454- . block ( BlockId :: Number ( block_number. into ( ) ) )
1455- . await
1456- . map ( |block_opt| block_opt. and_then ( |block| block. hash ) )
1457- . map_err ( Error :: from)
1458- }
1445+ retry ( retry_log_message, logger)
1446+ . redact_log_urls ( true )
1447+ . no_limit ( )
1448+ . timeout_secs ( ENV_VARS . json_rpc_timeout . as_secs ( ) )
1449+ . run ( move || {
1450+ let web3 = web3. cheap_clone ( ) ;
1451+ async move {
1452+ web3. eth ( )
1453+ . block ( BlockId :: Number ( block_number. into ( ) ) )
1454+ . await
1455+ . map ( |block_opt| block_opt. and_then ( |block| block. hash ) )
1456+ . map_err ( Error :: from)
1457+ }
1458+ } )
1459+ . await
1460+ . map_err ( move |e| {
1461+ e. into_inner ( ) . unwrap_or_else ( move || {
1462+ anyhow ! (
1463+ "Ethereum node took too long to return data for block #{}" ,
1464+ block_number
1465+ )
14591466 } )
1460- . boxed ( )
1461- . compat ( )
1462- . map_err ( move |e| {
1463- e. into_inner ( ) . unwrap_or_else ( move || {
1464- anyhow ! (
1465- "Ethereum node took too long to return data for block #{}" ,
1466- block_number
1467- )
1468- } )
1469- } ) ,
1470- )
1467+ } )
14711468 }
14721469
14731470 fn get_balance (
0 commit comments