starknet_devnet_types/
error.rs

1use blockifier::transaction::errors::TransactionExecutionError;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum Error {
6    #[error(transparent)]
7    StarknetApiError(#[from] starknet_api::StarknetApiError),
8    #[error("Conversion error: {0}")]
9    ConversionError(#[from] ConversionError),
10    #[error(transparent)]
11    JsonError(#[from] JsonError),
12    #[error(transparent)]
13    IoError(#[from] std::io::Error),
14    #[error(transparent)]
15    FromHexError(#[from] starknet_rs_core::types::eth_address::FromHexError),
16    #[error(transparent)]
17    TransactionExecutionError(#[from] TransactionExecutionError),
18    // TODO import cairo-lang-starknet to the project so this error could be created with its
19    // variants
20    #[error("Sierra compilation error: {reason}")]
21    SierraCompilationError { reason: String },
22    #[error("Program error")]
23    ProgramError,
24}
25
26#[derive(Error, Debug)]
27pub enum ConversionError {
28    #[error("Byte array invalid")]
29    FromByteArrayError,
30    #[error("Invalid format")]
31    InvalidFormat,
32    #[error("Invalid internal structure: {0}")]
33    InvalidInternalStructure(String),
34    #[error("Value is out of range: {0}")]
35    OutOfRangeError(String),
36    #[error("Error converting from hex string: {0}")]
37    CustomFromHexError(String),
38}
39
40#[derive(Error, Debug)]
41pub enum JsonError {
42    #[error(transparent)]
43    SerdeJsonError(#[from] serde_json::Error),
44    #[error("Error: {msg}")]
45    Custom { msg: String },
46}
47
48pub type DevnetResult<T, E = Error> = Result<T, E>;