use std::result::Result as StdResult;
use thiserror::Error as ThisError;
#[derive(Debug, ThisError)]
pub enum Error {
#[error("Unexpected length. Expected {expected} got {got}.")]
UnexpectedLength { expected: usize, got: usize },
#[error("Failed to decode hex string:\n{0}")]
DecodeHex(faster_hex::Error),
#[error("Invalid hex prefix. Hex string doesn't start with \"0x\". Value was: \"{0}\"")]
InvalidHexPrefix(String),
#[error("Unknown transaction status: {0}")]
UnknownTransactionStatus(String),
#[error("Unknown transaction type: {0}")]
UnknownTransactionType(String),
#[error("Unexpected quantity. Value was: {0}")]
UnexpectedQuantity(String),
#[error("Invalid Number from Hex. {0}")]
DecodeNumberFromHex(String),
}
pub type Result<T> = StdResult<T, Error>;