Skip to main content

vrf_pbft/
error.rs

1use crate::types::{Role, Stage};
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(Debug, thiserror::Error)]
6pub enum Error {
7    #[error("vrf error: {0}")]
8    Vrf(String),
9
10    #[error("invalid stage transition: from {from:?} to {to:?}")]
11    InvalidStage { from: Stage, to: Stage },
12
13    #[error("insufficient votes: need {needed}, got {got}")]
14    InsufficientVotes { needed: u64, got: u64 },
15
16    #[error("missing block in round {0}")]
17    MissingBlock(u64),
18
19    #[error("node not in role {0:?}")]
20    WrongRole(Role),
21
22    #[error("no proposer elected for round {0}")]
23    NoProposer(u64),
24
25    #[error("not enough nodes: need {needed}, have {have}")]
26    NotEnoughNodes { needed: usize, have: usize },
27}