no need to check the caches, we have latest block

This commit is contained in:
Bryan Stitt 2023-06-29 00:06:58 -07:00
parent bfc663d678
commit 357701bccc
2 changed files with 14 additions and 12 deletions

View File

@ -1332,8 +1332,6 @@ impl Web3ProxyApp {
match head_block.cloned().or(self.balanced_rpcs.head_block()) { match head_block.cloned().or(self.balanced_rpcs.head_block()) {
Some(head_block) => JsonRpcResponseEnum::from(json!(head_block.number())), Some(head_block) => JsonRpcResponseEnum::from(json!(head_block.number())),
None => { None => {
// TODO: what does geth do if this happens?
// TODO: standard not synced error
return Err(Web3ProxyError::NoServersSynced); return Err(Web3ProxyError::NoServersSynced);
} }
} }

View File

@ -11,7 +11,7 @@ use ethers::{
}; };
use serde_json::json; use serde_json::json;
use std::sync::Arc; use std::sync::Arc;
use tracing::{trace, warn, error}; use tracing::{error, trace, warn};
use crate::{frontend::authorization::Authorization, rpcs::many::Web3Rpcs}; use crate::{frontend::authorization::Authorization, rpcs::many::Web3Rpcs};
@ -116,17 +116,21 @@ pub async fn clean_block_number(
let (block_num, change) = let (block_num, change) =
BlockNumber_to_U64(block_number, latest_block.number()); BlockNumber_to_U64(block_number, latest_block.number());
let (block_hash, _) = rpcs if block_num == *latest_block.number() {
.block_hash(authorization, &block_num) (latest_block.into(), change)
.await } else {
.context("fetching block hash from number")?; let (block_hash, _) = rpcs
.block_hash(authorization, &block_num)
.await
.context("fetching block hash from number")?;
let block = rpcs let block = rpcs
.block(authorization, &block_hash, None, Some(3), None) .block(authorization, &block_hash, None, Some(3), None)
.await .await
.context("fetching block from hash")?; .context("fetching block from hash")?;
(BlockNumAndHash::from(&block), change) (BlockNumAndHash::from(&block), change)
}
} else if let Ok(block_hash) = serde_json::from_value::<H256>(x.clone()) { } else if let Ok(block_hash) = serde_json::from_value::<H256>(x.clone()) {
let block = rpcs let block = rpcs
.block(authorization, &block_hash, None, Some(3), None) .block(authorization, &block_hash, None, Some(3), None)