bee_ledger_types/
error.rs1use core::{convert::Infallible, num::TryFromIntError};
5
6use bee_block::{payload::milestone::MilestoneId, Error as BlockError};
7
8#[derive(Debug, thiserror::Error)]
10pub enum Error {
11 #[error("i/o error: {0}")]
13 Io(#[from] std::io::Error),
14 #[error("block error: {0}")]
16 Block(#[from] BlockError),
17 #[error("Invalid output count: {0}")]
19 InvalidOutputCount(TryFromIntError),
20 #[error("unsupported output kind: {0}")]
22 UnsupportedOutputKind(u8),
23 #[error("unsupported input kind: {0}")]
25 UnsupportedInputKind(u8),
26 #[error("unsupported payload kind: {0}")]
28 UnsupportedPayloadKind(u32),
29 #[error("invalid payload kind: {0}")]
31 InvalidPayloadKind(u32),
32 #[error("treasury amount mismatch: {0} != {1}")]
34 TreasuryAmountMismatch(u64, u64),
35 #[error("migrated funds amount overflow: {0}")]
37 MigratedFundsAmountOverflow(u128),
38 #[error("invalid migrated funds amount: {0}")]
40 InvalidMigratedFundsAmount(u64),
41 #[error("consumed treasury output mismatch: {0} != {1}")]
43 ConsumedTreasuryOutputMismatch(MilestoneId, MilestoneId),
44 #[error("negative balance: {0}")]
46 NegativeBalance(i64),
47 #[error("negative dust allowance: {0}")]
49 NegativeDustAllowance(i64),
50 #[error("negative dust outputs: {0}")]
52 NegativeDustOutputs(i64),
53 #[error("balance overflow: {0}")]
55 BalanceOverflow(i128),
56 #[error("invalid balance: {0}")]
58 InvalidBalance(u64),
59 #[error("balance diff overflow: {0}")]
61 BalanceDiffOverflow(i128),
62 #[error("invalid balance diff: {0}")]
64 InvalidBalanceDiff(i64),
65 #[error("packable option error happened")]
67 PackableOption,
68 #[error("invalid snapshot kind: {0}")]
70 InvalidSnapshotKind(u8),
71 #[error("unsupported snapshot version: supports {0}, read {1}")]
73 UnsupportedVersion(u8, u8),
74 #[error("missing consumed treasury")]
76 MissingConsumedTreasury,
77 #[error("milestone length mismatch: expected {0}, got {1}")]
79 MilestoneLengthMismatch(usize, usize),
80}
81
82impl From<Infallible> for Error {
83 fn from(err: Infallible) -> Self {
84 match err {}
85 }
86}