use ethers::{
contract::ContractError, middleware::signer::SignerMiddlewareError, providers::ProviderError,
signers::WalletError,
};
use hex::FromHexError;
use reqwest::{header::InvalidHeaderValue, Error as ReqwestError};
use thiserror::Error as ThisError;
use url::ParseError;
use super::{Http, Provider, SignerMiddleware, SigningKey, Wallet, U256};
#[derive(ThisError, Debug)]
pub enum HyperspaceClientError {
#[error("invalid api key")]
InvalidApiKey,
#[error("invalid private key")]
InvalidPrivateKey,
#[error("invalid rpc url")]
InvalidRpcUrl,
#[error("{0}")]
InvalidHeaderValue(#[from] InvalidHeaderValue),
#[error("{0}")]
Reqwest(#[from] ReqwestError),
#[error("{0}")]
FromHex(#[from] FromHexError),
#[error("{0}")]
Wallet(#[from] WalletError),
#[error("{0}")]
Parse(#[from] ParseError),
#[error("{0}")]
SignerMiddleware(#[from] SignerMiddlewareError<Provider<Http>, Wallet<SigningKey>>),
#[error("{0}")]
Contract(#[from] ContractError<SignerMiddleware<Provider<Http>, Wallet<SigningKey>>>),
#[error("{0}")]
Provider(#[from] ProviderError),
#[error("no transaction receipt found")]
NoTransactionReceipt,
#[error("insufficient avax balance, current balance: {0}")]
InsufficientAvaxBalance(U256),
#[error("insufficient wavax balance, current balance: {0}")]
InsufficientWavaxBalance(U256),
#[error("no stats found for collection")]
NoCollectionStats,
#[error("no highest bid found for collection")]
NoHighestBid,
}