| 1234567891011121314151617181920212223242526272829303132333435363738 | use crate::{amount, asset::Asset, storage, transaction, AccountId};use serde::Serialize;/// The errors that can happen in the Verax crate#[derive(thiserror::Error, Debug, Serialize)]pub enum Error {    /// A transaction error    #[error("Transaction: {0}")]    Transaction(#[from] transaction::Error),    /// An internal conversion error    #[error("Conversion overflow: {0}")]    Overflow(String),    /// An internal conversion error    #[error("Conversion overflow: {0}")]    Underflow(String),    /// A storage error    #[error("Storage: {0}")]    Storage(#[from] storage::Error),    /// The asset is not defined    #[error("Asset {0} is not defined")]    AssetIdNotFound(Asset),    /// The asset is not found    #[error("Asset {0} is not defined")]    AssetNotFound(String),    /// The account has not enough balance to perform the operation    #[error("Not enough funds (asset {1}) for account {0}")]    InsufficientBalance(AccountId, Asset),    /// The amount is invalid    #[error("Invalid amount: {0}")]    InvalidAmount(#[from] amount::Error),}
 |