discv5_cli/server/services/
events.rs

1use std::sync::Arc;
2
3use discv5::{Discv5, Event};
4
5/// Streams the discv5 server event stream.
6pub async fn run(discv5: Arc<Discv5>) {
7    let mut event_stream = discv5.event_stream().await.unwrap();
8    loop {
9        match event_stream.recv().await {
10            Some(Event::SocketUpdated(addr)) => {
11                log::info!("Nodes ENR socket address has been updated to: {:?}", addr);
12            }
13            Some(Event::Discovered(enr)) => {
14                log::info!("A peer has been discovered: {}", enr.node_id());
15            }
16            Some(Event::UnverifiableEnr { enr, .. }) => {
17                log::info!(
18                    "A peer has been added to the routing table with enr: {}",
19                    enr
20                );
21            }
22            Some(Event::NodeInserted { node_id, .. }) => {
23                log::info!(
24                    "A peer has been added to the routing table with node_id: {}",
25                    node_id
26                );
27            }
28            Some(Event::SessionEstablished(enr, addr)) => {
29                log::info!(
30                    "A session has been established with peer: {} at address: {}",
31                    enr,
32                    addr
33                );
34            }
35            Some(Event::TalkRequest(talk_request)) => {
36                log::info!(
37                    "A talk request has been received from peer: {}",
38                    talk_request.node_id()
39                );
40            }
41            _ => {}
42        }
43    }
44}