From a6c0ac8cf4ade4eafd38ea2d09457bb02ba0ed68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erce=20Can=20Bekt=C3=BCre?= <47954181+ercecan@users.noreply.github.com> Date: Thu, 6 Nov 2025 19:20:50 +0300 Subject: [PATCH] fix: Update filter last poll timestamp in filter logs (#19549) --- crates/rpc/rpc/src/eth/filter.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/rpc/rpc/src/eth/filter.rs b/crates/rpc/rpc/src/eth/filter.rs index 22b14d7a17..f0dac574c3 100644 --- a/crates/rpc/rpc/src/eth/filter.rs +++ b/crates/rpc/rpc/src/eth/filter.rs @@ -298,11 +298,12 @@ where /// Handler for `eth_getFilterLogs` pub async fn filter_logs(&self, id: FilterId) -> Result, EthFilterError> { let filter = { - let filters = self.inner.active_filters.inner.lock().await; - if let FilterKind::Log(ref filter) = - filters.get(&id).ok_or_else(|| EthFilterError::FilterNotFound(id.clone()))?.kind - { - *filter.clone() + let mut filters = self.inner.active_filters.inner.lock().await; + let filter = + filters.get_mut(&id).ok_or_else(|| EthFilterError::FilterNotFound(id.clone()))?; + if let FilterKind::Log(ref inner_filter) = filter.kind { + filter.last_poll_timestamp = Instant::now(); + *inner_filter.clone() } else { // Not a log filter return Err(EthFilterError::FilterNotFound(id))