mina_node_testing/scenario/
event_details.rs

1use mina_node::{
2    event_source::Event,
3    p2p::{
4        channels::{rpc::RpcChannelMsg, ChannelMsg},
5        P2pChannelEvent, P2pEvent,
6    },
7    State,
8};
9
10pub fn event_details(state: &State, event: &Event) -> Option<String> {
11    // this could be a let-chain but we're on rust 2021 instead of 2024 >:(
12    if let Event::P2p(P2pEvent::Channel(P2pChannelEvent::Received(peer_id, Ok(msg)))) = event {
13        if let ChannelMsg::Rpc(RpcChannelMsg::Response(req_id, _)) = &**msg {
14            let rpc_state = &state.p2p.get_ready_peer(peer_id)?.channels.rpc;
15            if *req_id == rpc_state.pending_local_rpc_id()? {
16                return Some(format!("Request: {}", rpc_state.pending_local_rpc()?));
17            }
18        }
19    }
20
21    None
22}