mod types;
pub use types::*;
use crate::error::KrakenError;
use crate::spot::rest::SpotRestClient;
use crate::spot::rest::endpoints::public;
impl SpotRestClient {
pub async fn get_server_time(&self) -> Result<ServerTime, KrakenError> {
self.public_get(public::TIME).await
}
pub async fn get_system_status(&self) -> Result<SystemStatus, KrakenError> {
self.public_get(public::SYSTEM_STATUS).await
}
pub async fn get_assets(
&self,
request: Option<&AssetInfoRequest>,
) -> Result<std::collections::HashMap<String, AssetInfo>, KrakenError> {
match request {
Some(req) => self.public_get_with_params(public::ASSETS, req).await,
None => self.public_get(public::ASSETS).await,
}
}
pub async fn get_asset_pairs(
&self,
request: Option<&AssetPairsRequest>,
) -> Result<std::collections::HashMap<String, AssetPair>, KrakenError> {
match request {
Some(req) => self.public_get_with_params(public::ASSET_PAIRS, req).await,
None => self.public_get(public::ASSET_PAIRS).await,
}
}
pub async fn get_ticker(
&self,
pairs: &str,
) -> Result<std::collections::HashMap<String, TickerInfo>, KrakenError> {
#[derive(serde::Serialize)]
struct Params<'a> {
pair: &'a str,
}
self.public_get_with_params(public::TICKER, &Params { pair: pairs })
.await
}
pub async fn get_ohlc(&self, request: &OhlcRequest) -> Result<OhlcResponse, KrakenError> {
self.public_get_with_params(public::OHLC, request).await
}
pub async fn get_order_book(
&self,
request: &OrderBookRequest,
) -> Result<std::collections::HashMap<String, OrderBook>, KrakenError> {
self.public_get_with_params(public::DEPTH, request).await
}
pub async fn get_recent_trades(
&self,
request: &RecentTradesRequest,
) -> Result<RecentTradesResponse, KrakenError> {
self.public_get_with_params(public::TRADES, request).await
}
pub async fn get_recent_spreads(
&self,
request: &RecentSpreadsRequest,
) -> Result<RecentSpreadsResponse, KrakenError> {
self.public_get_with_params(public::SPREAD, request).await
}
}