From 250c1c356389cba07321be2af1e01037f2dcf4f0 Mon Sep 17 00:00:00 2001 From: hanabi1224 Date: Wed, 19 Nov 2025 18:22:04 +0800 Subject: [PATCH] fix: avoid unecessary clone(s) in some Eth RPC methods --- src/rpc/methods/eth/filter/mod.rs | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/rpc/methods/eth/filter/mod.rs b/src/rpc/methods/eth/filter/mod.rs index d571dc52f86b..3df180f5d11c 100644 --- a/src/rpc/methods/eth/filter/mod.rs +++ b/src/rpc/methods/eth/filter/mod.rs @@ -95,7 +95,7 @@ pub struct EthEventHandler { mempool_filter_manager: Option>, } -#[derive(Clone)] +#[derive(Clone, Copy)] pub enum SkipEvent { OnUnresolvedAddress, Never, @@ -434,20 +434,11 @@ impl EthEventHandler { ResolveNullTipset::TakeOlder, )?; for tipset in max_tipset - .as_ref() - .clone() - .chain(&ctx.store()) + .chain_arc(&ctx.store()) .take_while(|ts| ts.epoch() >= *range.start()) { - let tipset = Arc::new(tipset); - Self::collect_events( - ctx, - &tipset, - Some(pf), - skip_event.clone(), - &mut collected_events, - ) - .await?; + Self::collect_events(ctx, &tipset, Some(pf), skip_event, &mut collected_events) + .await?; } } }