Skip to content

Commit 17f6458

Browse files
committed
apollo_batcher: define custom input task type
1 parent 98e5e7d commit 17f6458

File tree

5 files changed

+46
-26
lines changed

5 files changed

+46
-26
lines changed

crates/apollo_batcher/src/commitment_manager/commitment_manager_impl.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::sync::Arc;
44

55
use apollo_batcher_config::config::{BatcherConfig, CommitmentManagerConfig};
66
use apollo_committer_types::committer_types::{CommitBlockRequest, CommitBlockResponse};
7-
use apollo_committer_types::communication::{CommitterRequest, SharedCommitterClient};
7+
use apollo_committer_types::communication::SharedCommitterClient;
88
use starknet_api::block::{BlockHash, BlockNumber};
99
use starknet_api::block_hash::block_hash_calculator::{
1010
calculate_block_hash,
@@ -90,12 +90,11 @@ impl<S: StateCommitterTrait> CommitmentManager<S> {
9090
state_diff_commitment,
9191
});
9292
}
93-
let commitment_task_input =
94-
CommitterTaskInput(CommitterRequest::CommitBlock(CommitBlockRequest {
95-
height,
96-
state_diff,
97-
state_diff_commitment,
98-
}));
93+
let commitment_task_input = CommitterTaskInput::Commit(CommitBlockRequest {
94+
height,
95+
state_diff,
96+
state_diff_commitment,
97+
});
9998
let error_message = format!(
10099
"Failed to send commitment task to state committer. Block: {height}, state diff \
101100
commitment: {state_diff_commitment:?}",

crates/apollo_batcher/src/commitment_manager/state_committer.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![allow(dead_code, unused_variables, unused_mut)]
22

33
use apollo_committer_types::committer_types::{CommitBlockRequest, RevertBlockRequest};
4-
use apollo_committer_types::communication::{CommitterRequest, SharedCommitterClient};
4+
use apollo_committer_types::communication::SharedCommitterClient;
55
use apollo_committer_types::errors::{CommitterClientError, CommitterClientResult};
66
use tokio::sync::mpsc::error::TrySendError;
77
use tokio::sync::mpsc::{Receiver, Sender};
@@ -55,7 +55,7 @@ impl StateCommitter {
5555
committer_client: SharedCommitterClient,
5656
) {
5757
// TODO(Yoav): Test this function.
58-
while let Some(CommitterTaskInput(request)) = tasks_receiver.recv().await {
58+
while let Some(request) = tasks_receiver.recv().await {
5959
let output = perform_task(request, &committer_client).await;
6060
let height = output.height();
6161
match results_sender.try_send(output.clone()) {
@@ -77,15 +77,15 @@ impl StateCommitter {
7777
/// Performs a commitment task by calling the committer.
7878
/// Retries at recoverable errors.
7979
async fn perform_task(
80-
request: CommitterRequest,
80+
request: CommitterTaskInput,
8181
committer_client: &SharedCommitterClient,
8282
) -> CommitterTaskOutput {
8383
loop {
8484
let result = match &request {
85-
CommitterRequest::CommitBlock(commit_block_request) => {
85+
CommitterTaskInput::Commit(commit_block_request) => {
8686
perform_commit_block_task(commit_block_request.clone(), committer_client).await
8787
}
88-
CommitterRequest::RevertBlock(revert_block_request) => {
88+
CommitterTaskInput::Revert(revert_block_request) => {
8989
perform_revert_block_task(revert_block_request.clone(), committer_client).await
9090
}
9191
};

crates/apollo_batcher/src/commitment_manager/types.rs

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,43 @@
11
#![allow(dead_code)]
22

3-
use apollo_committer_types::committer_types::{CommitBlockResponse, RevertBlockResponse};
4-
use apollo_committer_types::communication::CommitterRequest;
3+
use std::fmt::Display;
4+
5+
use apollo_committer_types::committer_types::{
6+
CommitBlockRequest,
7+
CommitBlockResponse,
8+
RevertBlockRequest,
9+
RevertBlockResponse,
10+
};
511
use starknet_api::block::{BlockHash, BlockNumber};
612
use starknet_api::core::GlobalRoot;
713

814
/// Input for commitment tasks.
9-
pub(crate) struct CommitterTaskInput(pub(crate) CommitterRequest);
15+
pub(crate) enum CommitterTaskInput {
16+
Commit(CommitBlockRequest),
17+
Revert(RevertBlockRequest),
18+
}
19+
20+
impl CommitterTaskInput {
21+
pub(crate) fn height(&self) -> BlockNumber {
22+
match self {
23+
Self::Commit(request) => request.height,
24+
Self::Revert(request) => request.height,
25+
}
26+
}
27+
}
28+
29+
impl Display for CommitterTaskInput {
30+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
31+
match self {
32+
Self::Commit(request) => write!(
33+
f,
34+
"Commit(height={}, state_diff_commitment={:?})",
35+
request.height, request.state_diff_commitment
36+
),
37+
Self::Revert(request) => write!(f, "Revert(height={})", request.height),
38+
}
39+
}
40+
}
1041

1142
#[derive(Clone, Debug)]
1243
pub(crate) struct CommitmentTaskOutput {

crates/apollo_batcher/src/test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ impl MockStateCommitter {
347347
let task = tasks_receiver.try_recv().unwrap();
348348
let result = CommitterTaskOutput::Commit(CommitmentTaskOutput {
349349
response: CommitBlockResponse { state_root: GlobalRoot::default() },
350-
height: task.0.height(),
350+
height: task.height(),
351351
});
352352
results_sender.try_send(result).unwrap();
353353
}

crates/apollo_committer_types/src/communication.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use async_trait::async_trait;
1010
#[cfg(any(feature = "testing", test))]
1111
use mockall::automock;
1212
use serde::{Deserialize, Serialize};
13-
use starknet_api::block::BlockNumber;
1413
use strum::{EnumVariantNames, VariantNames};
1514
use strum_macros::{AsRefStr, EnumDiscriminants, EnumIter, IntoStaticStr};
1615

@@ -55,15 +54,6 @@ pub enum CommitterRequest {
5554
RevertBlock(RevertBlockRequest),
5655
}
5756

58-
impl CommitterRequest {
59-
pub fn height(&self) -> BlockNumber {
60-
match self {
61-
CommitterRequest::CommitBlock(request) => request.height,
62-
CommitterRequest::RevertBlock(request) => request.height,
63-
}
64-
}
65-
}
66-
6757
impl_debug_for_infra_requests_and_responses!(CommitterRequest);
6858
impl_labeled_request!(CommitterRequest, CommitterRequestLabelValue);
6959
impl PrioritizedRequest for CommitterRequest {}

0 commit comments

Comments
 (0)