mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-29 09:08:05 -05:00
fix: bad recursion in logs (#4113)
This commit is contained in:
@@ -67,6 +67,7 @@ pub mod clients {
|
||||
debug::DebugApiClient,
|
||||
engine::{EngineApiClient, EngineEthApiClient},
|
||||
eth::EthApiClient,
|
||||
eth_filter::EthFilterApiClient,
|
||||
net::NetApiClient,
|
||||
otterscan::OtterscanClient,
|
||||
rpc::RpcApiServer,
|
||||
|
||||
@@ -14,10 +14,11 @@ use reth_primitives::{
|
||||
};
|
||||
use reth_rpc_api::{
|
||||
clients::{AdminApiClient, EthApiClient},
|
||||
DebugApiClient, NetApiClient, OtterscanClient, TraceApiClient, Web3ApiClient,
|
||||
DebugApiClient, EthFilterApiClient, NetApiClient, OtterscanClient, TraceApiClient,
|
||||
Web3ApiClient,
|
||||
};
|
||||
use reth_rpc_builder::RethRpcModule;
|
||||
use reth_rpc_types::{trace::filter::TraceFilter, CallRequest, Index, TransactionRequest};
|
||||
use reth_rpc_types::{trace::filter::TraceFilter, CallRequest, Filter, Index, TransactionRequest};
|
||||
use std::collections::HashSet;
|
||||
|
||||
fn is_unimplemented(err: Error) -> bool {
|
||||
@@ -30,6 +31,20 @@ fn is_unimplemented(err: Error) -> bool {
|
||||
}
|
||||
}
|
||||
|
||||
async fn test_filter_calls<C>(client: &C)
|
||||
where
|
||||
C: ClientT + SubscriptionClientT + Sync,
|
||||
{
|
||||
EthFilterApiClient::new_filter(client, Filter::default()).await.unwrap();
|
||||
EthFilterApiClient::new_pending_transaction_filter(client).await.unwrap();
|
||||
let id = EthFilterApiClient::new_block_filter(client).await.unwrap();
|
||||
EthFilterApiClient::filter_changes(client, id.clone()).await.unwrap();
|
||||
EthFilterApiClient::logs(client, Filter::default()).await.unwrap();
|
||||
let id = EthFilterApiClient::new_filter(client, Filter::default()).await.unwrap();
|
||||
EthFilterApiClient::filter_logs(client, id.clone()).await.unwrap();
|
||||
EthFilterApiClient::uninstall_filter(client, id).await.unwrap();
|
||||
}
|
||||
|
||||
async fn test_basic_admin_calls<C>(client: &C)
|
||||
where
|
||||
C: ClientT + SubscriptionClientT + Sync,
|
||||
@@ -240,6 +255,15 @@ where
|
||||
));
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn test_call_filter_functions_http() {
|
||||
reth_tracing::init_test_tracing();
|
||||
|
||||
let handle = launch_http(vec![RethRpcModule::Eth]).await;
|
||||
let client = handle.http_client().unwrap();
|
||||
test_filter_calls(&client).await;
|
||||
}
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn test_call_admin_functions_http() {
|
||||
reth_tracing::init_test_tracing();
|
||||
|
||||
@@ -209,7 +209,7 @@ where
|
||||
/// Handler for `eth_getLogs`
|
||||
async fn logs(&self, filter: Filter) -> RpcResult<Vec<Log>> {
|
||||
trace!(target: "rpc::eth", "Serving eth_getLogs");
|
||||
Ok(EthFilter::logs(self, filter).await?)
|
||||
Ok(self.inner.logs_for_filter(filter).await?)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user