massa_consensus_exports/
error.rs1use displaydoc::Display;
3use massa_execution_exports::ExecutionError;
4use massa_models::error::ModelsError;
5use massa_protocol_exports::ProtocolError;
6use massa_time::TimeError;
7use std::array::TryFromSliceError;
8use thiserror::Error;
9
10#[non_exhaustive]
12#[derive(Display, Error, Debug)]
13pub enum ConsensusError {
14 ExecutionError(#[from] ExecutionError),
16 ModelsError(#[from] ModelsError),
18 SerializationError(String),
20 GenesisCreationError(String),
22 MissingBlock(String),
24 MissingOperation(String),
26 ContainerInconsistency(String),
28 FitnessOverflow,
30 InvalidLedgerChange(String),
32 IOError(#[from] std::io::Error),
34 SerdeError(#[from] serde_json::Error),
36 PosCycleUnavailable(String),
38 LedgerError(#[from] LedgerError),
40 MassaTimeError(#[from] TimeError),
42 TransactionError(String),
44 ProtocolError(#[from] ProtocolError),
46 InvalidTransition(String),
48}
49
50#[non_exhaustive]
52#[derive(Display, Error, Debug)]
53pub enum InternalError {
54 TransactionError(String),
56}
57
58#[non_exhaustive]
60#[derive(Display, Error, Debug)]
61pub enum LedgerError {
62 AmountOverflowError,
64 LedgerInconsistency(String),
66 ModelsError(#[from] ModelsError),
68 TryFromSliceError(#[from] TryFromSliceError),
70 IOError(#[from] std::io::Error),
72 SerdeError(#[from] serde_json::Error),
74}