p2p/network/pnet_effectful/
p2p_network_pnet_effectful_effects.rs1use openmina_core::fuzzed_maybe;
2
3use super::P2pNetworkPnetEffectfulAction;
4use crate::{P2pMioService, P2pNetworkSelectAction, SelectKind};
5
6impl P2pNetworkPnetEffectfulAction {
7 pub fn effects<Store, S>(self, _meta: &redux::ActionMeta, store: &mut Store)
8 where
9 Store: crate::P2pStore<S>,
10 Store::Service: P2pMioService,
11 {
12 let service = store.service();
13
14 match self {
15 P2pNetworkPnetEffectfulAction::OutgoingData { addr, data } => {
16 let data = fuzzed_maybe!(data, crate::fuzzer::mutate_pnet);
17 service.send_mio_cmd(crate::MioCmd::Send(addr, data.into_boxed_slice()));
18 }
19 P2pNetworkPnetEffectfulAction::SetupNonce {
20 addr,
21 nonce,
22 incoming,
23 } => {
24 service.send_mio_cmd(crate::MioCmd::Send(addr, nonce.to_vec().into_boxed_slice()));
25 store.dispatch(P2pNetworkSelectAction::Init {
26 addr,
27 kind: SelectKind::Authentication,
28 incoming,
29 });
30 }
31 }
32 }
33}