bee_ledger/types/
error.rs

1// Copyright 2020-2021 IOTA Stiftung
2// SPDX-License-Identifier: Apache-2.0
3
4use bee_message::{payload::milestone::MilestoneId, Error as MessageError};
5
6/// Errors related to ledger types.
7#[derive(Debug, thiserror::Error)]
8pub enum Error {
9    /// I/O error.
10    #[error("I/O error: {0}")]
11    Io(#[from] std::io::Error),
12    /// Message error.
13    #[error("Message error: {0}")]
14    Message(#[from] MessageError),
15    /// Unsupported output kind.
16    #[error("Unsupported output kind: {0}")]
17    UnsupportedOutputKind(u8),
18    /// Unsupported input kind.
19    #[error("Unsupported input kind: {0}")]
20    UnsupportedInputKind(u8),
21    /// Unsupported payload kind.
22    #[error("Unsupported payload kind: {0}")]
23    UnsupportedPayloadKind(u32),
24    /// Invalid payload kind.
25    #[error("Invalid payload kind: {0}")]
26    InvalidPayloadKind(u32),
27    /// Treasury amount mismatch.
28    #[error("Treasury amount mismatch: {0} != {1}")]
29    TreasuryAmountMismatch(u64, u64),
30    /// Migrated funds amount overflow.
31    #[error("Migrated funds amount overflow: {0}")]
32    MigratedFundsAmountOverflow(u128),
33    /// Invalid migrated funds amount.
34    #[error("Invalid migrated funds amount: {0}")]
35    InvalidMigratedFundsAmount(u64),
36    /// Consumed treasury output mismatch.
37    #[error("Consumed treasury output mismatch: {0} != {1}")]
38    ConsumedTreasuryOutputMismatch(MilestoneId, MilestoneId),
39    /// Negative balance.
40    #[error("Negative balance: {0}")]
41    NegativeBalance(i64),
42    /// Negative dust allowance.
43    #[error("Negative dust allowance: {0}")]
44    NegativeDustAllowance(i64),
45    /// Negative dust outputs.
46    #[error("Negative dust outputs: {0}")]
47    NegativeDustOutputs(i64),
48    /// Balance overflow.
49    #[error("Balance overflow: {0}")]
50    BalanceOverflow(i128),
51    /// Invalid balance.
52    #[error("Invalid balance: {0}")]
53    InvalidBalance(u64),
54    /// Balance diff overflow.
55    #[error("Balance diff overflow: {0}")]
56    BalanceDiffOverflow(i128),
57    /// Invalid balance diff.
58    #[error("Invalid balance diff: {0}")]
59    InvalidBalanceDiff(i64),
60    /// Packable option error happened.
61    #[error("Packable option error happened")]
62    PackableOption,
63    /// Invalid snapshot kind.
64    #[error("Invalid snapshot kind: {0}")]
65    InvalidSnapshotKind(u8),
66    /// Unsupported snapshot version.
67    #[error("Unsupported snapshot version: supports {0}, read {1}")]
68    UnsupportedVersion(u8, u8),
69    /// Missing consumed treasury.
70    #[error("Missing consumed treasury")]
71    MissingConsumedTreasury,
72    /// Milestone length mismatch.
73    #[error("Milestone length mismatch: expected {0}, got {1}")]
74    MilestoneLengthMismatch(usize, usize),
75}