Expand description
Ecbt integrates a high-performance cryptocurrency transaction API, which can be easily used by users.
§Example
The Binance Http Api of Ecbt is:
use std::borrow::Borrow;
use ecbt::{
prelude::{
market_pair::{Currency, MarketPair},
GetPriceTickerRequest,
},
Ecbt,
};
use ecbt_binance::{Binance, BinanceParameters};
use ecbt_exchange::ExchangeMarketData;
#[tokio::main]
async fn main() {
let ecbt = Ecbt::http::<Binance>(BinanceParameters::sandbox())
.await
.unwrap();
let request = GetPriceTickerRequest {
market_pair: MarketPair(Currency::ETH, Currency::USDT),
};
let s = ecbt.get_price_ticker(request.borrow()).await.unwrap();
println!("{:?}", s);
}
The Binance WebSocket of Ecbt is:
use ecbt::{
model::websocket::{EcbtWebSocketMessage, Subscription, WebSocketResponse},
prelude::{
market_pair::{Currency, MarketPair},
ExchangeStream,
},
Ecbt,
};
use ecbt_binance::{BinanceParameters, BinanceWebsocket};
#[tokio::main]
async fn main() {
let ecbt = Ecbt::ws::<BinanceWebsocket>(BinanceParameters::sandbox())
.await
.unwrap();
let market = MarketPair(Currency::ETH, Currency::BTC);
ecbt.subscribe(Subscription::OrderBookUpdates(market), move |m| {
let r = m.as_ref();
if let Ok(WebSocketResponse::Generic(EcbtWebSocketMessage::OrderBook(order_book))) = r {
println!("{:?}", order_book)
} else if let Err(err) = r {
println!("{:#?}", err);
}
})
.await
.expect("Failed to subscribe to orderbook on Binance");
std::thread::sleep(std::time::Duration::from_millis(5000));
}