cita_vm/
err.rs

1use std::error;
2use std::fmt;
3use std::io;
4
5use crate::evm;
6use crate::state::Error as StateError;
7
8#[derive(Debug)]
9pub enum Error {
10    Evm(evm::Error),
11    Secp256k1(secp256k1::Error),
12    State(StateError),
13    IO(io::Error),
14    Str(String),
15    NotEnoughBaseGas,
16    NotEnoughBalance,
17    InvalidNonce,
18    ContractAlreadyExist,
19    ExccedMaxCodeSize,
20    ExccedMaxBlockGasLimit,
21    ExccedMaxCallDepth,
22    CreateInStaticCall,
23}
24
25impl error::Error for Error {}
26impl fmt::Display for Error {
27    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28        match self {
29            Error::Evm(e) => write!(f, "{}", e),
30            Error::Secp256k1(e) => write!(f, "{:?}", e),
31            Error::State(e) => write!(f, "{}", e),
32            Error::IO(e) => write!(f, "{:?}", e),
33            Error::Str(e) => write!(f, "{:?}", e),
34            Error::NotEnoughBaseGas => write!(f, "NotEnoughBaseGas"),
35            Error::NotEnoughBalance => write!(f, "NotEnoughBalance"),
36            Error::InvalidNonce => write!(f, "InvalidNonce"),
37            Error::ContractAlreadyExist => write!(f, "ContractAlreadyExist"),
38            Error::ExccedMaxCodeSize => write!(f, "ExccedMaxCodeSize"),
39            Error::ExccedMaxBlockGasLimit => write!(f, "ExccedMaxBlockGasLimit"),
40            Error::ExccedMaxCallDepth => write!(f, "ExccedMaxCallDepth"),
41            Error::CreateInStaticCall => write!(f, "CreateInStaticCall"),
42        }
43    }
44}
45
46impl From<evm::Error> for Error {
47    fn from(error: evm::Error) -> Self {
48        Error::Evm(error)
49    }
50}
51
52impl From<StateError> for Error {
53    fn from(error: StateError) -> Self {
54        Error::State(error)
55    }
56}
57
58impl From<secp256k1::Error> for Error {
59    fn from(error: secp256k1::Error) -> Self {
60        Error::Secp256k1(error)
61    }
62}
63
64impl From<io::Error> for Error {
65    fn from(error: io::Error) -> Self {
66        Error::IO(error)
67    }
68}