1 个不稳定版本
0.1.0 | 2023年11月23日 |
---|
#7 in #coin-gecko
在 price-adapter 中使用
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