use crate::cosmos_client::error::CosmosClientError;
use crate::tx_builder::error::TxBuilderError;
use cosmrs::proto::prost;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum OracleError {
#[error("Tendermint Error: {0}")]
TendermintError(#[from] tendermint_rpc::Error),
#[error("TxBuilderError Error: {0}")]
TxBuilderError(#[from] TxBuilderError),
#[error("SerdeJson Error: {0}")]
SerdeJsonError(#[from] serde_json::Error),
#[error("Eyre Error: {0}")]
EyreError(#[from] eyre::Report),
#[error("Prost Error: {0}")]
ProstError(#[from] prost::DecodeError),
#[error("CosmosClient Error: {0}")]
CosmosClientError(#[from] CosmosClientError),
#[error("Price not found: Base {0}, Quote {1}")]
PriceNotFound(String, String),
}