deribit_http_public/
http_public.rs1use std::env;
17
18use nautilus_deribit::http::{client::DeribitHttpClient, models::DeribitCurrency};
19use nautilus_model::identifiers::InstrumentId;
20use tracing_subscriber::filter::LevelFilter;
21
22#[tokio::main]
23async fn main() -> Result<(), Box<dyn std::error::Error>> {
24 tracing_subscriber::fmt()
25 .with_max_level(LevelFilter::INFO)
26 .init();
27
28 let args: Vec<String> = env::args().collect();
29 let is_testnet = args.iter().any(|a| a == "--testnet");
30
31 let client = DeribitHttpClient::new(None, is_testnet, None, None, None, None, None)?;
33
34 tracing::info!("Fetching BTC-PERPETUAL instrument...");
36 let instrument_id = InstrumentId::from("BTC-PERPETUAL.DERIBIT");
37 let instrument = client.request_instrument(instrument_id).await?;
38 println!("Single instrument:");
39 println!("{instrument:?}\n");
40
41 tracing::info!("Fetching BTC instruments...");
43 let instruments = client
44 .request_instruments(DeribitCurrency::BTC, None)
45 .await?;
46 println!("First 2 instruments from BTC:");
47 for (i, inst) in instruments.iter().take(2).enumerate() {
48 let num = i + 1;
49 println!("{num}. {inst:?}");
50 }
51
52 Ok(())
53}