hyperspace-rs 0.2.0

A Rust library to interact with [Hyperspace](https://avax.hyperspace.xyz/) NFT marketplace on Avalanche
Documentation
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 {
    // Validation errors.
    #[error("invalid api key")]
    InvalidApiKey,
    #[error("invalid private key")]
    InvalidPrivateKey,
    #[error("invalid rpc url")]
    InvalidRpcUrl,
    // Other errors.
    #[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,
}