symbols.rs 858 B

12345678910111213141516171819202122232425262728
  1. use std::time::Duration;
  2. use pyth_lazer_client::history_client::{PythLazerHistoryClient, PythLazerHistoryClientConfig};
  3. use pyth_lazer_protocol::PriceFeedId;
  4. use tokio::time::sleep;
  5. use url::Url;
  6. #[tokio::main]
  7. async fn main() -> anyhow::Result<()> {
  8. tracing_subscriber::fmt::init();
  9. let urls = std::env::args()
  10. .skip(1)
  11. .map(|s| Url::parse(&s))
  12. .collect::<Result<Vec<_>, _>>()?;
  13. let client = PythLazerHistoryClient::new(PythLazerHistoryClientConfig {
  14. urls,
  15. update_interval: Duration::from_secs(5),
  16. ..Default::default()
  17. });
  18. let symbols = client.all_symbols_metadata_handle().await?;
  19. loop {
  20. println!("symbols len: {}", symbols.symbols().len());
  21. println!("symbol 1: {:?}", symbols.symbols().get(&PriceFeedId(1)));
  22. sleep(Duration::from_secs(15)).await;
  23. }
  24. }