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