Skip to main content

casper_node/utils/chain_specification/
error.rs

1use thiserror::Error;
2use uint::FromDecStrErr;
3
4use casper_types::{file_utils::ReadFileError, GlobalStateUpdateError};
5
6/// Error returned when loading the chainspec.
7#[derive(Debug, Error)]
8pub enum Error {
9    /// Error while decoding the chainspec from TOML format.
10    #[error("decoding from TOML error: {0}")]
11    DecodingFromToml(#[from] toml::de::Error),
12
13    /// Error while decoding Motes from a decimal format.
14    #[error("decoding motes from base-10 error: {0}")]
15    DecodingMotes(#[from] FromDecStrErr),
16
17    /// Error loading the chainspec.
18    #[error("could not load chainspec: {0}")]
19    LoadChainspec(ReadFileError),
20
21    /// Error loading the chainspec accounts.
22    #[error("could not load chainspec accounts: {0}")]
23    LoadChainspecAccounts(#[from] ChainspecAccountsLoadError),
24
25    /// Error loading the global state update.
26    #[error("could not load the global state update: {0}")]
27    LoadGlobalStateUpgrade(#[from] GlobalStateUpdateLoadError),
28}
29
30/// Error loading chainspec accounts file.
31#[derive(Debug, Error)]
32pub enum ChainspecAccountsLoadError {
33    /// Error loading the accounts file.
34    #[error("could not load accounts: {0}")]
35    LoadAccounts(#[from] ReadFileError),
36
37    /// Error while decoding the chainspec accounts from TOML format.
38    #[error("decoding from TOML error: {0}")]
39    DecodingFromToml(#[from] toml::de::Error),
40
41    /// Error while decoding a chainspec account's key hash from hex format.
42    #[error("decoding from hex error: {0}")]
43    DecodingFromHex(#[from] base16::DecodeError),
44
45    /// Error while decoding Motes from a decimal format.
46    #[error("decoding motes from base-10 error: {0}")]
47    DecodingMotes(#[from] FromDecStrErr),
48
49    /// Error while decoding a chainspec account's key hash from base-64 format.
50    #[error("crypto module error: {0}")]
51    Crypto(#[from] casper_types::crypto::ErrorExt),
52}
53
54/// Error loading global state update file.
55#[derive(Debug, Error)]
56pub enum GlobalStateUpdateLoadError {
57    /// Error loading the accounts file.
58    #[error("could not load the file: {0}")]
59    LoadFile(#[from] ReadFileError),
60
61    /// Error while decoding the chainspec accounts from TOML format.
62    #[error("decoding from TOML error: {0}")]
63    DecodingFromToml(#[from] toml::de::Error),
64
65    /// Error decoding kvp items.
66    #[error("decoding key value entries error: {0}")]
67    DecodingKeyValuePairs(#[from] GlobalStateUpdateError),
68}