use tonic::{
metadata::MetadataValue,
transport::Channel,
Request,
};
pub mod trading {
tonic::include_proto!("trading");
}
use trading::{
trading_service_client::TradingServiceClient,
EventType,
Subscribe,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>>
{
let mut client =
TradingServiceClient::connect(
"https://stream.anthid.com",
)
.await?;
let mut request = Request::new(
Subscribe {
trading_account_id:
"YOUR_TRADING_ACCOUNT_ID"
.to_string(),
subscriptions: vec![
EventType::BrokerOrder as i32,
EventType::BrokerPosition
as i32,
],
},
);
request.metadata_mut().insert(
"x-api-key",
MetadataValue::try_from(
"YOUR_API_KEY",
)?,
);
let mut stream = client
.subscribe_events(request)
.await?
.into_inner();
while let Some(event) =
stream.message().await?
{
println!("{event:?}");
}
Ok(())
}