From f84a52616ae20187d116452d1a44a0ed3f954249 Mon Sep 17 00:00:00 2001 From: keyvan Date: Fri, 9 May 2025 13:57:00 -0700 Subject: [PATCH] feat: update lazer publisher example --- lazer/publisher/Cargo.lock | 33 +++++++++++++++++++++++++++++++-- lazer/publisher/Cargo.toml | 2 +- lazer/publisher/src/main.rs | 20 ++++++-------------- 3 files changed, 38 insertions(+), 17 deletions(-) diff --git a/lazer/publisher/Cargo.lock b/lazer/publisher/Cargo.lock index 1f87029..485e143 100644 --- a/lazer/publisher/Cargo.lock +++ b/lazer/publisher/Cargo.lock @@ -70,6 +70,12 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bincode" version = "1.3.3" @@ -899,6 +905,26 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "protobuf" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65a1d4ddae7d8b5de68153b48f6aa3bba8cb002b243dbdbc55a5afbc98f99f4" +dependencies = [ + "once_cell", + "protobuf-support", + "thiserror", +] + +[[package]] +name = "protobuf-support" +version = "3.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e36c2f31e0a47f9280fb347ef5e461ffcd2c52dd520d8e216b52f93b0b0d7d6" +dependencies = [ + "thiserror", +] + [[package]] name = "ptr_meta" version = "0.1.4" @@ -937,16 +963,19 @@ dependencies = [ [[package]] name = "pyth-lazer-protocol" -version = "0.1.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743de8136e00ba9e82400109fc2e8b4eceaad9df0189825ac958397bd64a53b5" +checksum = "a9bdf4e2ba853a8b437309487542e742c7d094d8db189db194cb538f2be02ecd" dependencies = [ "anyhow", + "base64", "byteorder", "derive_more", "itertools", + "protobuf", "rust_decimal", "serde", + "serde_json", ] [[package]] diff --git a/lazer/publisher/Cargo.toml b/lazer/publisher/Cargo.toml index 2df8ef6..678d981 100644 --- a/lazer/publisher/Cargo.toml +++ b/lazer/publisher/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -pyth-lazer-protocol = "0.1.0" +pyth-lazer-protocol = "0.7.2" tokio = { version = "1.40.0", features = ["full"] } anyhow = "1.0.89" diff --git a/lazer/publisher/src/main.rs b/lazer/publisher/src/main.rs index 8b01741..b39c0cf 100644 --- a/lazer/publisher/src/main.rs +++ b/lazer/publisher/src/main.rs @@ -1,7 +1,7 @@ use { futures::{SinkExt, StreamExt}, pyth_lazer_protocol::{ - publisher::PriceFeedData, + publisher::PriceFeedDataV2, router::{Price, PriceFeedId, TimestampUs}, }, std::time::Duration, @@ -37,22 +37,14 @@ async fn run() -> anyhow::Result<()> { i += 1; sleep(Duration::from_secs(1)).await; for feed_id in 1u32..=5 { - let data = PriceFeedData { + let data = PriceFeedDataV2 { price_feed_id: PriceFeedId(feed_id), source_timestamp_us: TimestampUs::now(), publisher_timestamp_us: TimestampUs::now(), - price: Some(Price::from_integer( - (feed_id * 10000 + i) as i64, - Price::TMP_EXPONENT, - )?), - best_bid_price: Some(Price::from_integer( - (feed_id * 10000 + i - 1) as i64, - Price::TMP_EXPONENT, - )?), - best_ask_price: Some(Price::from_integer( - (feed_id * 10000 + i + 1) as i64, - Price::TMP_EXPONENT, - )?), + price: Some(Price::from_integer((feed_id * 10000 + i) as i64, 8)?), + best_bid_price: Some(Price::from_integer((feed_id * 10000 + i - 1) as i64, 8)?), + best_ask_price: Some(Price::from_integer((feed_id * 10000 + i + 1) as i64, 8)?), + funding_rate: None, }; let mut buf = Vec::new(); bincode::serialize_into(&mut buf, &data)?;