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))