From 529ec3eb0915dad81a3b792e144b89b41600f0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20Okan=20=C3=9Cnald=C4=B1?= Date: Thu, 19 Dec 2024 16:53:56 +0300 Subject: [PATCH] fix tests --- bin/citrea/tests/evm/tracing.rs | 44 +++++++++++++++++++++++++---- bin/citrea/tests/test_client/mod.rs | 10 +++---- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/bin/citrea/tests/evm/tracing.rs b/bin/citrea/tests/evm/tracing.rs index 6a5a30301..aa1b121ca 100644 --- a/bin/citrea/tests/evm/tracing.rs +++ b/bin/citrea/tests/evm/tracing.rs @@ -5,7 +5,7 @@ use alloy_primitives::Address; use alloy_rpc_types_trace::geth::GethTrace::{self, CallTracer, FourByteTracer}; use alloy_rpc_types_trace::geth::{ CallConfig, CallFrame, FourByteFrame, GethDebugBuiltInTracerType, GethDebugTracerType, - GethDebugTracingOptions, + GethDebugTracingOptions, TraceResult, }; use citrea_common::SequencerConfig; use citrea_evm::smart_contracts::{CallerContract, SimpleStorageContract}; @@ -222,7 +222,14 @@ async fn tracing_tests() -> Result<(), Box> { GethDebugTracerType::BuiltInTracer(GethDebugBuiltInTracerType::CallTracer), )), ) - .await; + .await + .into_iter() + .map(|trace| match trace { + TraceResult::Success { result, .. } => Ok(result), + _ => anyhow::bail!("Unexpected trace result"), + }) + .collect::, _>>()?; + assert_eq!(traces.len(), 2); assert_eq!(traces[1], CallTracer(expected_send_eth_trace.clone())); assert_eq!(traces[0], CallTracer(expected_call_get_trace.clone())); @@ -240,7 +247,13 @@ async fn tracing_tests() -> Result<(), Box> { GethDebugTracerType::BuiltInTracer(GethDebugBuiltInTracerType::CallTracer), )), ) - .await; + .await + .into_iter() + .map(|trace| match trace { + TraceResult::Success { result, .. } => Ok(result), + _ => anyhow::bail!("Unexpected trace result"), + }) + .collect::, _>>()?; assert_eq!(traces.len(), 2); assert_eq!(traces[1], CallTracer(expected_send_eth_trace.clone())); @@ -253,7 +266,13 @@ async fn tracing_tests() -> Result<(), Box> { GethDebugTracerType::BuiltInTracer(GethDebugBuiltInTracerType::FourByteTracer), )), ) - .await; + .await + .into_iter() + .map(|trace| match trace { + TraceResult::Success { result, .. } => Ok(result), + _ => anyhow::bail!("Unexpected trace result"), + }) + .collect::, _>>()?; let expected_call_get_4byte_trace = serde_json::from_value::(json![{"35c152bd-32": 1, "6d4ce63c-0": 1}]) @@ -285,7 +304,13 @@ async fn tracing_tests() -> Result<(), Box> { }), ), ) - .await; + .await + .into_iter() + .map(|trace| match trace { + TraceResult::Success { result, .. } => Ok(result), + _ => anyhow::bail!("Unexpected trace result"), + }) + .collect::, _>>()?; let expected_top_call_only_call_get_trace = serde_json::from_value::( json![{"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","gas":"0x1886","gasUsed":"0x6b64","to":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", @@ -313,7 +338,14 @@ async fn tracing_tests() -> Result<(), Box> { GethDebugTracerType::BuiltInTracer(GethDebugBuiltInTracerType::CallTracer), )), ) - .await; + .await + .into_iter() + .map(|trace| match trace { + TraceResult::Success { result, .. } => Ok(result), + _ => anyhow::bail!("Unexpected trace result"), + }) + .collect::, _>>()?; + assert_eq!(traces.len(), 8); assert_eq!(traces[5], CallTracer(reth_json)); assert_eq!(traces[6], CallTracer(expected_call_get_trace)); diff --git a/bin/citrea/tests/test_client/mod.rs b/bin/citrea/tests/test_client/mod.rs index 3d83c5389..c7209db33 100644 --- a/bin/citrea/tests/test_client/mod.rs +++ b/bin/citrea/tests/test_client/mod.rs @@ -11,7 +11,7 @@ use alloy::transports::http::{Http, HyperClient}; use alloy_primitives::{Address, Bytes, TxHash, TxKind, B256, U256, U64}; // use reth_rpc_types::TransactionReceipt; use alloy_rpc_types::AnyNetworkBlock; -use alloy_rpc_types_trace::geth::{GethDebugTracingOptions, GethTrace}; +use alloy_rpc_types_trace::geth::{GethDebugTracingOptions, GethTrace, TraceResult}; use citrea_batch_prover::GroupCommitments; use citrea_evm::{Filter, LogResponse}; use ethereum_rpc::SyncStatus; @@ -608,7 +608,7 @@ impl TestClient { &self, block_number: BlockNumberOrTag, opts: Option, - ) -> Vec { + ) -> Vec { self.http_client .request("debug_traceBlockByNumber", rpc_params![block_number, opts]) .await @@ -619,7 +619,7 @@ impl TestClient { &self, block_hash: B256, opts: Option, - ) -> Vec { + ) -> Vec { self.http_client .request("debug_traceBlockByHash", rpc_params![block_hash, opts]) .await @@ -631,7 +631,7 @@ impl TestClient { start_block: BlockNumberOrTag, end_block: BlockNumberOrTag, opts: Option, - ) -> Vec { + ) -> Vec { let mut subscription = self .ws_client .subscribe( @@ -650,7 +650,7 @@ impl TestClient { BlockNumberOrTag::Latest => self.eth_block_number().await, _ => panic!("Only number and latest"), }; - let mut traces: Vec> = vec![]; + let mut traces: Vec> = vec![]; for _ in start_block..end_block { let block_traces = subscription.next().await.unwrap().unwrap(); traces.push(block_traces);