Crate ecbt

Source
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));
}

Modules§

errors
exchange
model
prelude
This module contains some Traits and Structs that are frequently used.

Structs§

Ecbt