1 个不稳定版本

0.1.0 2023年11月23日

#7 in #coin-gecko


price-adapter 中使用

MIT/Apache

20KB
452

价格探索器

价格探索器是加密货币交易所和价格聚合器的价格查询适配器。

它提供了一种统一的接口,用于查询来自不同交易所和价格聚合器的价格数据。目前,它支持以下交易所和价格聚合器

  • 币安
  • 币安

用法

Coingecko

要使用Coingecko API,您需要创建一个 CoingeckoPro 实例并设置API密钥。

use price_adapter_raw::CoinGecko;

#[tokio::main]
async fn main() {
    let coingecko = CoinGecko::new_with_api_key("$API_KEY".into());
    let queries = vec!["ethereum"];
    let prices = coingecko.get_prices(&queries).await;
    println!("prices: {:?}", prices);
}

币安Websocket

要使用币安Websocket API,您需要创建一个 BinanceWebsocket 实例并设置查询符号。

use price_adapter_raw::BinanceWebsocket;
use futures_util::StreamExt;

#[tokio::main]
async fn main() {
    let mut binance_ws = BinanceWebsocket::new("wss://stream.binance.com:9443", &["ethbtc", "btcusdt"]);
    binance_ws.connect().await.unwrap();
    while let Some(data) = binance_ws.next().await {
        match data {
            Ok(price) => {
                println!("price: {}", price);
                # break;
            }
            Err(e) => {
                eprintln!("Error: {}", e);
                break;
            }
        }
    }
}

或者使用 BinanceWebsocketService 查询价格数据。

use price_adapter_raw::{BinanceWebsocket, BinanceWebsocketService};
use std::time::Duration;

#[tokio::main]
async fn main() {
    let mut binance_ws = BinanceWebsocket::new("wss://stream.binance.com:9443", &["ethbtc", "btcusdt"]);

    let mut service = BinanceWebsocketService::new(binance_ws);
    service.start().await.unwrap();
    tokio::time::sleep(Duration::from_secs(1)).await;

    let price = service.get_prices(&["btcusdt"]).await;
    println!("price: {:?}", price);
}

依赖项

~9–27MB
~388K SLoC