1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use crate::{
    no_std::{
        fmt::Error as FmtError, io::Error as IoError, num::ParseIntError as NumParseIntError,
        String,
    },
    AddressError, AmountError, FormatError, PublicKeyError, TransactionError,
};

#[derive(Debug, Error)]
pub enum Error {
    #[error("Runtime Error:{0}")]
    RuntimeError(String),

    #[error("Invalid Address: {0}")]
    InvalidAddress(#[from] AddressError),

    #[error("Invalid Transaction: {0:}")]
    InvalidTransaction(#[from] TransactionError),

    #[error("Invalid Amount: {0:}")]
    InvalidAmount(#[from] AmountError),

    #[error("Invalid PublickKey: {0:}")]
    InvalidPublickKey(#[from] PublicKeyError),

    #[error("Invalid Format: {0:}")]
    InvalidFormat(#[from] FormatError),

    #[error("io error: {0:}")]
    Io(#[from] IoError),

    #[error("fmt error: {0:}")]
    Fmt(#[from] FmtError),

    #[error("fromHex error: {0:}")]
    FromHex(#[from] ::hex::FromHexError),

    #[error("parsing error: {0:}")]
    ParseInt(#[from] NumParseIntError),
}