mithril_aggregator/services/signer_registration/
error.rs1use thiserror::Error;
2
3use mithril_common::{
4 StdError,
5 entities::{Epoch, SignerWithStake},
6};
7
8use mithril_cardano_node_chain::chain_observer::ChainObserverError;
9
10#[derive(Error, Debug)]
12pub enum SignerRegistrationError {
13 #[error("a signer registration round is not opened yet, please try again later")]
15 RegistrationRoundNotYetOpened,
16
17 #[error(
19 "unexpected signer registration round epoch: current_round_epoch: {current_round_epoch}, received_epoch: {received_epoch}"
20 )]
21 RegistrationRoundUnexpectedEpoch {
22 current_round_epoch: Epoch,
24 received_epoch: Epoch,
26 },
27
28 #[error("chain observer error")]
30 ChainObserver(#[from] ChainObserverError),
31
32 #[error("signer already registered")]
34 ExistingSigner(Box<SignerWithStake>),
35
36 #[error("store error")]
38 Store(#[source] StdError),
39
40 #[error("epoch service error")]
42 EpochService(#[source] StdError),
43
44 #[error("signer registration failed")]
46 FailedSignerRegistration(#[source] StdError),
47
48 #[error("signer recorder failed: '{0}'")]
50 FailedSignerRecorder(String),
51
52 #[error("signer registration is always closed on a follower aggregator")]
54 RegistrationRoundAlwaysClosedOnFollowerAggregator,
55
56 #[error("signer synchronization is not available on a leader aggregator")]
58 SignerSynchronizationUnavailableOnLeaderAggregator,
59
60 #[error("failed fetching leader aggregator epoch settings: '{0}'")]
62 FailedFetchingLeaderAggregatorEpochSettings(#[source] StdError),
63}