use thiserror::Error;
use uint::FromDecStrErr;
use casper_types::{file_utils::ReadFileError, GlobalStateUpdateError};
#[derive(Debug, Error)]
pub enum Error {
#[error("decoding from TOML error: {0}")]
DecodingFromToml(#[from] toml::de::Error),
#[error("decoding motes from base-10 error: {0}")]
DecodingMotes(#[from] FromDecStrErr),
#[error("could not load chainspec: {0}")]
LoadChainspec(ReadFileError),
#[error("could not load chainspec accounts: {0}")]
LoadChainspecAccounts(#[from] ChainspecAccountsLoadError),
#[error("could not load the global state update: {0}")]
LoadGlobalStateUpgrade(#[from] GlobalStateUpdateLoadError),
}
#[derive(Debug, Error)]
pub enum ChainspecAccountsLoadError {
#[error("could not load accounts: {0}")]
LoadAccounts(#[from] ReadFileError),
#[error("decoding from TOML error: {0}")]
DecodingFromToml(#[from] toml::de::Error),
#[error("decoding from hex error: {0}")]
DecodingFromHex(#[from] base16::DecodeError),
#[error("decoding motes from base-10 error: {0}")]
DecodingMotes(#[from] FromDecStrErr),
#[error("crypto module error: {0}")]
Crypto(#[from] casper_types::crypto::ErrorExt),
}
#[derive(Debug, Error)]
pub enum GlobalStateUpdateLoadError {
#[error("could not load the file: {0}")]
LoadFile(#[from] ReadFileError),
#[error("decoding from TOML error: {0}")]
DecodingFromToml(#[from] toml::de::Error),
#[error("decoding key value entries error: {0}")]
DecodingKeyValuePairs(#[from] GlobalStateUpdateError),
}