From 1e0e9259d21dff4c0ef48a4cbde68c2cb6f1b7fa Mon Sep 17 00:00:00 2001 From: Esad Yusuf Atik Date: Fri, 14 Jun 2024 12:11:49 +0300 Subject: [PATCH] backport todo! removal on evm query (#750) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * exclude system transactions from tip cap calc. (#674) * exclude system transactions from tip cap calc. * ci runs on prs to main * Update package details in cargo.toml files (#678) * Update package details in cargo.toml files * Add devnet readme (#681) --------- Co-authored-by: Ömer Talip Akalın <56600661+otaliptus@users.noreply.github.com> * Add build-release (#706) * remove todo! in block_number_for_id in evm query (#724) * Merge branch 'nightly' into esad/fix-backport-merge-conflicts-1 * lint --------- Co-authored-by: Erce Can Bektüre <47954181+ercecan@users.noreply.github.com> Co-authored-by: Ömer Talip Akalın <56600661+otaliptus@users.noreply.github.com> --- Makefile | 3 ++ bin/citrea/tests/test_client/mod.rs | 1 + .../ethereum-rpc/src/gas_price/fee_history.rs | 1 + .../ethereum-rpc/src/gas_price/gas_oracle.rs | 7 ++-- crates/ethereum-rpc/src/lib.rs | 3 +- crates/evm/src/evm/error/rpc.rs | 10 +++--- crates/evm/src/query.rs | 34 ++++++++++--------- .../examples/demo-simple-stf/README.md | 1 - .../full-node/sov-stf-runner/src/lib.rs | 1 - .../sov-modules-macros/src/make_constants.rs | 5 +++ 10 files changed, 36 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index c5ac16d2d..08b2ef632 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,9 @@ help: ## Display this help message build: ## Build the the project @cargo build +build-release: ## Build the project in release mode + @cargo build --release + clean: ## Cleans compiled @cargo clean diff --git a/bin/citrea/tests/test_client/mod.rs b/bin/citrea/tests/test_client/mod.rs index 42fa558a0..b3dc646d4 100644 --- a/bin/citrea/tests/test_client/mod.rs +++ b/bin/citrea/tests/test_client/mod.rs @@ -724,6 +724,7 @@ impl TestClient { #[serde(rename_all = "camelCase")] // ethers version of FeeHistory doesn't accept None reward pub struct FeeHistory { + #[allow(dead_code)] pub base_fee_per_gas: Vec, pub gas_used_ratio: Vec, pub oldest_block: ethers::types::U256, diff --git a/crates/ethereum-rpc/src/gas_price/fee_history.rs b/crates/ethereum-rpc/src/gas_price/fee_history.rs index 8b506ac77..39b0c7b32 100644 --- a/crates/ethereum-rpc/src/gas_price/fee_history.rs +++ b/crates/ethereum-rpc/src/gas_price/fee_history.rs @@ -234,6 +234,7 @@ pub struct FeeHistoryEntry { pub gas_used: u64, /// Gas limit by this block. pub gas_limit: u64, + #[allow(dead_code)] /// Hash of the block. pub header_hash: B256, /// Approximated rewards for the configured percentiles. diff --git a/crates/ethereum-rpc/src/gas_price/gas_oracle.rs b/crates/ethereum-rpc/src/gas_price/gas_oracle.rs index 81cc3f045..3544719a7 100644 --- a/crates/ethereum-rpc/src/gas_price/gas_oracle.rs +++ b/crates/ethereum-rpc/src/gas_price/gas_oracle.rs @@ -167,12 +167,9 @@ impl GasPriceOracle { block_count = max_fee_history } - let Some(end_block) = self + let end_block = self .provider - .block_number_for_id(&newest_block, working_set) - else { - return Err(EthApiError::UnknownBlockNumber); - }; + .block_number_for_id(&newest_block, working_set)?; // need to add 1 to the end block to get the correct (inclusive) range let end_block_plus = end_block + 1; diff --git a/crates/ethereum-rpc/src/lib.rs b/crates/ethereum-rpc/src/lib.rs index 1cbf6f6f7..5da630db8 100644 --- a/crates/ethereum-rpc/src/lib.rs +++ b/crates/ethereum-rpc/src/lib.rs @@ -249,8 +249,7 @@ fn register_rpc_methods( reward_percentiles, &mut working_set, ) - .await - .unwrap() + .await? }; Ok::(fee_history) diff --git a/crates/evm/src/evm/error/rpc.rs b/crates/evm/src/evm/error/rpc.rs index a09c044cb..ad376f742 100644 --- a/crates/evm/src/evm/error/rpc.rs +++ b/crates/evm/src/evm/error/rpc.rs @@ -173,11 +173,11 @@ pub enum SignError { NoChainId, } -impl From for ErrorObject<'static> { - fn from(error: SignError) -> Self { - error.into() - } -} +// impl From for ErrorObject<'static> { +// fn from(error: SignError) -> Self { +// error.into() +// } +// } /// We have to implement these functions because they are private to the reth_rpc crate pub trait RpcInvalidTransactionErrorExt { diff --git a/crates/evm/src/query.rs b/crates/evm/src/query.rs index 42e12b508..7a3beea3b 100644 --- a/crates/evm/src/query.rs +++ b/crates/evm/src/query.rs @@ -318,7 +318,7 @@ impl Evm { } _ => { return Err(EthApiError::InvalidParams( - "Please provide a number or earliest/latest/pending tag".to_string(), + "Please provide a number or earliest/latest tag".to_string(), ) .into()) } @@ -366,7 +366,7 @@ impl Evm { } _ => { return Err(EthApiError::InvalidParams( - "Please provide a number or earliest/latest/pending tag".to_string(), + "Please provide a number or earliest/latest tag".to_string(), ) .into()) } @@ -413,7 +413,7 @@ impl Evm { } _ => { return Err(EthApiError::InvalidParams( - "Please provide a number or earliest/latest/pending tag".to_string(), + "Please provide a number or earliest/latest tag".to_string(), ) .into()) } @@ -461,7 +461,7 @@ impl Evm { // Note that reth works for all types of BlockNumberOrTag _ => { return Err(EthApiError::InvalidParams( - "Please provide a number or earliest/latest/pending tag".to_string(), + "Please provide a number or earliest/latest tag".to_string(), ) .into()) } @@ -537,8 +537,9 @@ impl Evm { debug!("evm module: eth_getTransactionByBlockNumberAndIndex"); let block_number = match self.block_number_for_id(&block_number, working_set) { - Some(block_number) => block_number, - None => return Ok(None), + Ok(block_number) => block_number, + Err(EthApiError::UnknownBlockNumber) => return Ok(None), + Err(err) => return Err(err.into()), }; let block = self @@ -1565,23 +1566,24 @@ impl Evm { &self, block_id: &BlockNumberOrTag, working_set: &mut WorkingSet, - ) -> Option { + ) -> Result { match block_id { - BlockNumberOrTag::Earliest => Some(0), - BlockNumberOrTag::Latest => self + BlockNumberOrTag::Earliest => Ok(0), + BlockNumberOrTag::Latest => Ok(self .blocks .last(&mut working_set.accessory_state()) - .map(|block| block.header.number), + .map(|block| block.header.number) + .expect("Head block must be set")), BlockNumberOrTag::Number(block_number) => { if *block_number < self.blocks.len(&mut working_set.accessory_state()) as u64 { - Some(*block_number) + Ok(*block_number) } else { - None + Err(EthApiError::UnknownBlockNumber) } } - _ => { - todo!(); - } + _ => Err(EthApiError::InvalidParams( + "Please provide a number or earliest/latest tag".to_string(), + )), } } @@ -1613,7 +1615,7 @@ impl Evm { .expect("Head block must be set"), )), _ => Err(EthApiError::InvalidParams( - "pending block not supported".to_string(), + "pending/safe/finalized block not supported".to_string(), )), } } diff --git a/crates/sovereign-sdk/examples/demo-simple-stf/README.md b/crates/sovereign-sdk/examples/demo-simple-stf/README.md index ecfea2187..a354db6f3 100644 --- a/crates/sovereign-sdk/examples/demo-simple-stf/README.md +++ b/crates/sovereign-sdk/examples/demo-simple-stf/README.md @@ -167,7 +167,6 @@ use sov_mock_da::{MockAddress, MockBlob, MockBlock, MockValidityCond}; use sov_mock_zkvm::MockZkvm; use sov_rollup_interface::stf::StateTransitionFunction; -#[test] fn test_stf() { let address = MockAddress { addr: [1; 32] }; let preimage = vec![0; 32]; diff --git a/crates/sovereign-sdk/full-node/sov-stf-runner/src/lib.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/lib.rs index 5dd757d75..3c027c995 100644 --- a/crates/sovereign-sdk/full-node/sov-stf-runner/src/lib.rs +++ b/crates/sovereign-sdk/full-node/sov-stf-runner/src/lib.rs @@ -3,7 +3,6 @@ #[cfg(feature = "native")] mod config; -#[cfg(feature = "mock")] /// Testing utilities. #[cfg(feature = "mock")] pub mod mock; diff --git a/crates/sovereign-sdk/module-system/sov-modules-macros/src/make_constants.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/make_constants.rs index e9809a9d4..316792904 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-macros/src/make_constants.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-macros/src/make_constants.rs @@ -7,10 +7,15 @@ use crate::manifest::Manifest; pub struct PartialItemConst { pub attrs: Vec, pub vis: Visibility, + #[allow(dead_code)] pub const_token: Token![const], + #[allow(dead_code)] pub ident: Ident, + #[allow(dead_code)] pub colon_token: Token![:], + #[allow(dead_code)] pub ty: Type, + #[allow(dead_code)] pub semi_token: Token![;], }