diff --git a/backend/src/bin/client.rs b/backend/src/bin/client.rs index 4dbb548..85309ef 100644 --- a/backend/src/bin/client.rs +++ b/backend/src/bin/client.rs @@ -110,7 +110,7 @@ async fn main() -> Result<(), Box> { }, SerializableExecEvent::TxnEvmOutput { txn_index, .. } => { if let Some((txn_hash, txn_start_ns)) = client_state.txs_start_ns.remove(&txn_index) { - let txn_duration = std::time::Duration::from_nanos((event.timestamp_ns - txn_start_ns) as u64); + let txn_duration = std::time::Duration::from_nanos(event.timestamp_ns - txn_start_ns); client_state.block_txns_total_duration += txn_duration; log_event!("TxnEvmOutput", txn_index = txn_index, txn_hash = txn_hash, duration = txn_duration); @@ -120,7 +120,7 @@ async fn main() -> Result<(), Box> { }, SerializableExecEvent::BlockPerfEvmExit => { log_event!("BlockPerfEvmExit"); - let block_duration = std::time::Duration::from_nanos((event.timestamp_ns - client_state.block_start_ns) as u64); + let block_duration = std::time::Duration::from_nanos(event.timestamp_ns - client_state.block_start_ns); let parallel_execution_savings = client_state.block_txns_total_duration.checked_sub(block_duration); let savings_pct = if parallel_execution_savings.is_none() { // This only happens with really small/empty blocks error!("Parallel execution savings is negative: txs={:?} block={:?} height={}", client_state.block_txns_total_duration, block_duration, client_state.current_block_number); diff --git a/backend/src/lib/event_filter.rs b/backend/src/lib/event_filter.rs index 41f8373..81f5311 100644 --- a/backend/src/lib/event_filter.rs +++ b/backend/src/lib/event_filter.rs @@ -63,7 +63,7 @@ pub struct ArrayPrefixFilter { impl ArrayPrefixFilter { /// Checks if input array starts with filter values (prefix match) - pub fn matches(&self, value: &Vec) -> bool { + pub fn matches(&self, value: &[T]) -> bool { self.values.is_empty() || value.starts_with(&self.values) } @@ -192,7 +192,7 @@ impl EventFilter { return true; } - if self.includes_native_transfers() && is_native_transfer(&event) { + if self.includes_native_transfers() && is_native_transfer(event) { return true; } diff --git a/backend/src/lib/event_listener.rs b/backend/src/lib/event_listener.rs index 27a8522..6d311fc 100644 --- a/backend/src/lib/event_listener.rs +++ b/backend/src/lib/event_listener.rs @@ -85,7 +85,7 @@ impl EventName { } } - pub fn from_str(s: &str) -> Option { + pub fn from_name(s: &str) -> Option { match s { "RECORD_ERROR" => Some(EventName::RecordError), "BLOCK_START" => Some(EventName::BlockStart), @@ -157,7 +157,7 @@ fn event_to_data(event: &EventDescriptor) -> Option } = event.info(); // Convert event_type to EventName enum for type safety - let event_name = EventName::from_str(EXEC_EVENT_NAMES[event_type as usize])?; + let event_name = EventName::from_name(EXEC_EVENT_NAMES[event_type as usize])?; // Get block number if present let block_number = if flow_info.block_seqno != 0 { @@ -284,7 +284,7 @@ pub fn run_event_listener( last_event_timestamp_ns = Some(event.info().record_epoch_nanos); event_count += 1; - if event_count % 100 == 0 { + if event_count.is_multiple_of(100) { debug!("Processed {} events", event_count); } diff --git a/backend/src/lib/serializable_event.rs b/backend/src/lib/serializable_event.rs index 2005903..f5faba6 100644 --- a/backend/src/lib/serializable_event.rs +++ b/backend/src/lib/serializable_event.rs @@ -326,7 +326,7 @@ impl From<&EventData> for SerializableEventData { txn_hash: data.txn_hash.map(B256::from), payload: SerializableExecEvent::from(&data.payload), seqno: data.seqno, - timestamp_ns: data.timestamp_ns.clone(), + timestamp_ns: data.timestamp_ns, } } } diff --git a/backend/src/lib/server.rs b/backend/src/lib/server.rs index a2c470c..57766bd 100644 --- a/backend/src/lib/server.rs +++ b/backend/src/lib/server.rs @@ -43,7 +43,7 @@ pub struct TopAccessesData { #[derive(Debug, Clone)] pub enum EventDataOrMetrics { - Event(EventData), + Event(Box), TopAccesses(TopAccessesData), TPS(usize) } @@ -80,7 +80,7 @@ impl TPSTracker { self.block_2_txs = self.block_3_txs; self.block_3_txs = self.current_tx_count; self.current_tx_count = 0; - return self.block_1_txs + self.block_2_txs + (self.block_3_txs / 2); + self.block_1_txs + self.block_2_txs + (self.block_3_txs / 2) } } @@ -95,7 +95,7 @@ fn process_event( ) { match event { EventDataOrMetrics::Event(event_data) => { - let serializable = SerializableEventData::from(&event_data); + let serializable = SerializableEventData::from(&*event_data); if filter.matches_event(&serializable) { events_buf.push(serializable); } @@ -289,13 +289,9 @@ async fn run_event_forwarder_task( } // Send accesses update on BlockEnd events (after all access events are processed) - let send_accesses_update = if let EventName::BlockEnd = event_data.event_name { - true - } else { - false - }; + let send_accesses_update = matches!(event_data.event_name, EventName::BlockEnd); - let _ = event_broadcast_sender.send(EventDataOrMetrics::Event(event_data)); + let _ = event_broadcast_sender.send(EventDataOrMetrics::Event(Box::new(event_data))); if send_accesses_update { let top_accesses_data = TopAccessesData {