1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use ethers_core::types::Chain;
use std::env::VarError;

#[derive(Debug, thiserror::Error)]
pub enum EtherscanError {
    #[error("chain {0} not supported")]
    ChainNotSupported(Chain),
    #[error("contract execution call failed: {0}")]
    ExecutionFailed(String),
    #[error("tx receipt failed")]
    TransactionReceiptFailed,
    #[error("gas estimation failed")]
    GasEstimationFailed,
    #[error("bad status code {0}")]
    BadStatusCode(String),
    #[error(transparent)]
    EnvVarNotFound(#[from] VarError),
    #[error(transparent)]
    Reqwest(#[from] reqwest::Error),
    #[error(transparent)]
    Serde(#[from] serde_json::Error),
}