Skip to content

Commit 16e461e

Browse files
committed
refactor(p2p_channels_rpc): Combine all action types of the p2p_channels_rpc module into the parent action type
1 parent 2034a63 commit 16e461e

15 files changed

+492
-654
lines changed

node/src/effects.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ use crate::consensus::consensus_effects;
66
use crate::event_source::event_source_effects;
77
use crate::external_snark_worker::external_snark_worker_effects;
88
use crate::logger::logger_effects;
9-
use crate::p2p::channels::rpc::{
10-
P2pChannelsRpcRequestSendAction, P2pChannelsRpcTimeoutAction, P2pRpcKind, P2pRpcRequest,
11-
};
9+
use crate::p2p::channels::rpc::{P2pChannelsRpcAction, P2pRpcKind, P2pRpcRequest};
1210
use crate::p2p::connection::incoming::P2pConnectionIncomingTimeoutAction;
1311
use crate::p2p::connection::outgoing::{
1412
P2pConnectionOutgoingRandomInitAction, P2pConnectionOutgoingReconnectAction,
@@ -69,7 +67,7 @@ pub fn effects<S: Service>(store: &mut Store<S>, action: ActionWithMeta) {
6967

7068
let state = store.state();
7169
for (peer_id, id) in state.p2p.peer_rpc_timeouts(state.time()) {
72-
store.dispatch(P2pChannelsRpcTimeoutAction { peer_id, id });
70+
store.dispatch(P2pChannelsRpcAction::Timeout { peer_id, id });
7371
}
7472

7573
// TODO(binier): remove once ledger communication is async.
@@ -182,7 +180,7 @@ fn p2p_request_best_tip_if_needed<S: Service>(store: &mut Store<S>) {
182180
.map(|(peer_id, p)| (*peer_id, p.channels.rpc.next_local_rpc_id()))
183181
.last()
184182
{
185-
store.dispatch(P2pChannelsRpcRequestSendAction {
183+
store.dispatch(P2pChannelsRpcAction::RequestSend {
186184
peer_id,
187185
id,
188186
request: P2pRpcRequest::BestTipWithProof,

node/src/event_source/event_source_effects.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use crate::action::CheckTimeoutsAction;
88
use crate::block_producer::vrf_evaluator::BlockProducerVrfEvaluatorEvaluationSuccessAction;
99
use crate::external_snark_worker::ExternalSnarkWorkerEvent;
1010
use crate::p2p::channels::best_tip::P2pChannelsBestTipAction;
11-
use crate::p2p::channels::rpc::P2pChannelsRpcReadyAction;
11+
use crate::p2p::channels::rpc::P2pChannelsRpcAction;
1212
use crate::p2p::channels::snark_job_commitment::P2pChannelsSnarkJobCommitmentAction;
1313
use crate::p2p::channels::{ChannelId, P2pChannelsMessageReceivedAction};
1414
use crate::p2p::connection::incoming::{
@@ -185,7 +185,7 @@ pub fn event_source_effects<S: Service>(store: &mut Store<S>, action: EventSourc
185185
}
186186
ChannelId::Rpc => {
187187
// TODO(binier): maybe dispatch success and then ready.
188-
store.dispatch(P2pChannelsRpcReadyAction { peer_id });
188+
store.dispatch(P2pChannelsRpcAction::Ready { peer_id });
189189
}
190190
},
191191
},

node/src/logger/logger_effects.rs

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -420,40 +420,48 @@ pub fn logger_effects<S: Service>(store: &Store<S>, action: ActionWithMetaRef<'_
420420
_ => {}
421421
},
422422
P2pChannelsAction::Rpc(action) => match action {
423-
P2pChannelsRpcAction::Init(action) => {
423+
P2pChannelsRpcAction::Init { peer_id } => {
424424
openmina_core::log::debug!(
425425
meta.time();
426426
kind = kind.to_string(),
427-
summary = format!("peer_id: {}", action.peer_id),
428-
peer_id = action.peer_id.to_string()
427+
summary = format!("peer_id: {peer_id}", ),
428+
peer_id = peer_id.to_string()
429429
);
430430
}
431-
P2pChannelsRpcAction::Ready(action) => {
431+
P2pChannelsRpcAction::Ready { peer_id } => {
432432
openmina_core::log::debug!(
433433
meta.time();
434434
kind = kind.to_string(),
435-
summary = format!("peer_id: {}", action.peer_id),
436-
peer_id = action.peer_id.to_string()
435+
summary = format!("peer_id: {peer_id}", ),
436+
peer_id = peer_id.to_string()
437437
);
438438
}
439-
P2pChannelsRpcAction::RequestSend(action) => {
439+
P2pChannelsRpcAction::RequestSend {
440+
peer_id,
441+
id,
442+
request,
443+
} => {
440444
openmina_core::log::debug!(
441445
meta.time();
442446
kind = kind.to_string(),
443-
summary = format!("peer_id: {}, rpc_id: {}, kind: {:?}", action.peer_id, action.id, action.request.kind()),
444-
peer_id = action.peer_id.to_string(),
445-
rpc_id = action.id.to_string(),
446-
trace_request = serde_json::to_string(&action.request).ok()
447+
summary = format!("peer_id: {peer_id}, rpc_id: {id}, kind: {:?}", request.kind()),
448+
peer_id = peer_id.to_string(),
449+
rpc_id = id.to_string(),
450+
trace_request = serde_json::to_string(request).ok()
447451
);
448452
}
449-
P2pChannelsRpcAction::ResponseReceived(action) => {
453+
P2pChannelsRpcAction::ResponseReceived {
454+
peer_id,
455+
id,
456+
response,
457+
} => {
450458
openmina_core::log::debug!(
451459
meta.time();
452460
kind = kind.to_string(),
453-
summary = format!("peer_id: {}, rpc_id: {}", action.peer_id, action.id),
454-
peer_id = action.peer_id.to_string(),
455-
rpc_id = action.id.to_string(),
456-
trace_response = serde_json::to_string(&action.response).ok()
461+
summary = format!("peer_id: {peer_id}, rpc_id: {id}"),
462+
peer_id = peer_id.to_string(),
463+
rpc_id = id.to_string(),
464+
trace_response = serde_json::to_string(response).ok()
457465
);
458466
}
459467
_ => {}
Lines changed: 9 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,13 @@
11
use super::*;
22

3-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcInitAction {
4-
fn is_enabled(&self, state: &crate::State) -> bool {
5-
self.is_enabled(&state.p2p)
6-
}
7-
}
8-
9-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcPendingAction {
10-
fn is_enabled(&self, state: &crate::State) -> bool {
11-
self.is_enabled(&state.p2p)
12-
}
13-
}
14-
15-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcReadyAction {
16-
fn is_enabled(&self, state: &crate::State) -> bool {
17-
self.is_enabled(&state.p2p)
18-
}
19-
}
20-
21-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcRequestSendAction {
22-
fn is_enabled(&self, state: &crate::State) -> bool {
23-
self.is_enabled(&state.p2p)
24-
}
25-
}
26-
27-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcTimeoutAction {
28-
fn is_enabled(&self, state: &crate::State) -> bool {
29-
self.is_enabled(&state.p2p)
30-
&& state
31-
.p2p
32-
.is_peer_rpc_timed_out(&self.peer_id, self.id, state.time())
33-
}
34-
}
35-
36-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcResponseReceivedAction {
37-
fn is_enabled(&self, state: &crate::State) -> bool {
38-
self.is_enabled(&state.p2p)
39-
}
40-
}
41-
42-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcRequestReceivedAction {
43-
fn is_enabled(&self, state: &crate::State) -> bool {
44-
self.is_enabled(&state.p2p)
45-
}
46-
}
47-
48-
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcResponseSendAction {
49-
fn is_enabled(&self, state: &crate::State) -> bool {
50-
self.is_enabled(&state.p2p)
3+
impl redux::EnablingCondition<crate::State> for P2pChannelsRpcAction {
4+
fn is_enabled(&self, state: &crate::State) -> bool {
5+
match self {
6+
Self::Timeout { peer_id, id } => {
7+
self.is_enabled(&state.p2p)
8+
&& state.p2p.is_peer_rpc_timed_out(peer_id, *id, state.time())
9+
}
10+
_ => self.is_enabled(&state.p2p),
11+
}
5112
}
5213
}

node/src/p2p/mod.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,4 @@ impl_into_global_action!(channels::snark::P2pChannelsSnarkAction);
103103

104104
impl_into_global_action!(channels::snark_job_commitment::P2pChannelsSnarkJobCommitmentAction);
105105

106-
impl_into_global_action!(channels::rpc::P2pChannelsRpcInitAction);
107-
impl_into_global_action!(channels::rpc::P2pChannelsRpcPendingAction);
108-
impl_into_global_action!(channels::rpc::P2pChannelsRpcReadyAction);
109-
impl_into_global_action!(channels::rpc::P2pChannelsRpcRequestSendAction);
110-
impl_into_global_action!(channels::rpc::P2pChannelsRpcTimeoutAction);
111-
impl_into_global_action!(channels::rpc::P2pChannelsRpcResponseReceivedAction);
112-
impl_into_global_action!(channels::rpc::P2pChannelsRpcRequestReceivedAction);
113-
impl_into_global_action!(channels::rpc::P2pChannelsRpcResponseSendAction);
106+
impl_into_global_action!(channels::rpc::P2pChannelsRpcAction);

0 commit comments

Comments
 (0)