zera-sdk 0.1.0

Rust SDK for ZERA transactions, validator APIs, and bridge workflows
Documentation
use thiserror::Error;

#[derive(Debug, Error)]
pub enum ZeraError {
    #[error("feature not implemented yet: {0}")]
    NotImplemented(&'static str),

    #[error("invalid configuration: {0}")]
    InvalidConfig(String),

    #[error("invalid input: {0}")]
    InvalidInput(String),

    #[error("validation error: {0}")]
    Validation(String),

    #[error("rpc error: {0}")]
    Rpc(String),

    #[error("transport error: {0}")]
    Transport(String),

    #[error("serialization error: {0}")]
    Serialization(String),

    #[error("crypto error: {0}")]
    Crypto(String),

    #[error("unsupported operation: {0}")]
    Unsupported(String),

    #[error(transparent)]
    Reqwest(#[from] reqwest::Error),

    #[error(transparent)]
    ProstEncode(#[from] prost::EncodeError),

    #[error(transparent)]
    ProstDecode(#[from] prost::DecodeError),

    #[error(transparent)]
    Base58(#[from] bs58::decode::Error),

    #[error(transparent)]
    Base64Decode(#[from] base64::DecodeError),

    #[error(transparent)]
    SerdeJson(#[from] serde_json::Error),
}

pub type Result<T> = std::result::Result<T, ZeraError>;