From 75cddfec8325b81810d8e2945dd7bc4602522070 Mon Sep 17 00:00:00 2001 From: Danial Mehrjerdi Date: Wed, 2 Jul 2025 16:10:17 +0200 Subject: [PATCH 1/5] Lazer: Add deprecated symbol state --- lazer/contracts/solana/Cargo.lock | 2 +- lazer/publisher_sdk/proto/state.proto | 8 ++++++++ lazer/publisher_sdk/rust/Cargo.toml | 2 +- lazer/sdk/rust/protocol/Cargo.toml | 2 +- lazer/sdk/rust/protocol/src/symbol_state.rs | 2 ++ 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lazer/contracts/solana/Cargo.lock b/lazer/contracts/solana/Cargo.lock index 35a1f1e6dd..f6846fd209 100644 --- a/lazer/contracts/solana/Cargo.lock +++ b/lazer/contracts/solana/Cargo.lock @@ -3200,7 +3200,7 @@ dependencies = [ [[package]] name = "pyth-lazer-protocol" -version = "0.7.2" +version = "0.7.3" dependencies = [ "anyhow", "base64 0.22.1", diff --git a/lazer/publisher_sdk/proto/state.proto b/lazer/publisher_sdk/proto/state.proto index 3181236e44..c2b7621533 100644 --- a/lazer/publisher_sdk/proto/state.proto +++ b/lazer/publisher_sdk/proto/state.proto @@ -44,6 +44,12 @@ message Publisher { optional bool is_active = 4; } +enum FeedMetadataState { + COMING_SOON = 0; // Default value + STABLE = 1; + DEPRECATED = 2; +} + // Static data for a feed. message FeedMetadata { // [required] ID of the price feed. @@ -86,6 +92,8 @@ message FeedMetadata { // [optional] Market schedule in Pythnet format. // If absent, the default schedule is used (market is always open). optional string market_schedule = 15; + // [required] Feed state + optional FeedMetadataState state = 16; } // An item of the state describing a feed. diff --git a/lazer/publisher_sdk/rust/Cargo.toml b/lazer/publisher_sdk/rust/Cargo.toml index c33f280b20..cabd2aa12b 100644 --- a/lazer/publisher_sdk/rust/Cargo.toml +++ b/lazer/publisher_sdk/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyth-lazer-publisher-sdk" -version = "0.1.5" +version = "0.1.7" edition = "2021" description = "Pyth Lazer Publisher SDK types." license = "Apache-2.0" diff --git a/lazer/sdk/rust/protocol/Cargo.toml b/lazer/sdk/rust/protocol/Cargo.toml index c8a0a8fcda..75ba2f0d08 100644 --- a/lazer/sdk/rust/protocol/Cargo.toml +++ b/lazer/sdk/rust/protocol/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyth-lazer-protocol" -version = "0.7.2" +version = "0.7.3" edition = "2021" description = "Pyth Lazer SDK - protocol types." license = "Apache-2.0" diff --git a/lazer/sdk/rust/protocol/src/symbol_state.rs b/lazer/sdk/rust/protocol/src/symbol_state.rs index fb0a763f8a..d649a9628c 100644 --- a/lazer/sdk/rust/protocol/src/symbol_state.rs +++ b/lazer/sdk/rust/protocol/src/symbol_state.rs @@ -8,6 +8,7 @@ use { pub enum SymbolState { Stable, ComingSoon, + Deprecated, } impl Display for SymbolState { @@ -15,6 +16,7 @@ impl Display for SymbolState { match self { SymbolState::Stable => write!(f, "stable"), SymbolState::ComingSoon => write!(f, "coming_soon"), + SymbolState::Deprecated => write!(f, "deprecated"), } } } From 05f66238d217a8f4a973e763a7ebd062b366cd6a Mon Sep 17 00:00:00 2001 From: Danial Mehrjerdi Date: Wed, 2 Jul 2025 16:16:46 +0200 Subject: [PATCH 2/5] Fix version --- lazer/contracts/solana/Cargo.lock | 14 ++++++++++++++ lazer/publisher_sdk/rust/Cargo.toml | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lazer/contracts/solana/Cargo.lock b/lazer/contracts/solana/Cargo.lock index f6846fd209..d689daad3a 100644 --- a/lazer/contracts/solana/Cargo.lock +++ b/lazer/contracts/solana/Cargo.lock @@ -3213,6 +3213,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "pyth-lazer-publisher-sdk" +version = "0.1.6" +dependencies = [ + "anyhow", + "fs-err", + "humantime", + "protobuf", + "protobuf-codegen", + "pyth-lazer-protocol", + "serde-value", + "tracing", +] + [[package]] name = "pyth-lazer-solana-contract" version = "0.4.2" diff --git a/lazer/publisher_sdk/rust/Cargo.toml b/lazer/publisher_sdk/rust/Cargo.toml index cabd2aa12b..13f8bb6c61 100644 --- a/lazer/publisher_sdk/rust/Cargo.toml +++ b/lazer/publisher_sdk/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyth-lazer-publisher-sdk" -version = "0.1.7" +version = "0.1.6" edition = "2021" description = "Pyth Lazer Publisher SDK types." license = "Apache-2.0" From 4c7e63e087faa587244bb1a92d019341b9400b2f Mon Sep 17 00:00:00 2001 From: Danial Mehrjerdi Date: Wed, 2 Jul 2025 17:08:27 +0200 Subject: [PATCH 3/5] Address comments --- lazer/publisher_sdk/proto/state.proto | 4 ++-- lazer/sdk/rust/protocol/src/symbol_state.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lazer/publisher_sdk/proto/state.proto b/lazer/publisher_sdk/proto/state.proto index c2b7621533..8143a46b8c 100644 --- a/lazer/publisher_sdk/proto/state.proto +++ b/lazer/publisher_sdk/proto/state.proto @@ -44,7 +44,7 @@ message Publisher { optional bool is_active = 4; } -enum FeedMetadataState { +enum FeedState { COMING_SOON = 0; // Default value STABLE = 1; DEPRECATED = 2; @@ -93,7 +93,7 @@ message FeedMetadata { // If absent, the default schedule is used (market is always open). optional string market_schedule = 15; // [required] Feed state - optional FeedMetadataState state = 16; + optional FeedState state = 16; } // An item of the state describing a feed. diff --git a/lazer/sdk/rust/protocol/src/symbol_state.rs b/lazer/sdk/rust/protocol/src/symbol_state.rs index d649a9628c..4bbe98bd61 100644 --- a/lazer/sdk/rust/protocol/src/symbol_state.rs +++ b/lazer/sdk/rust/protocol/src/symbol_state.rs @@ -6,16 +6,16 @@ use { #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum SymbolState { - Stable, ComingSoon, + Stable, Deprecated, } impl Display for SymbolState { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - SymbolState::Stable => write!(f, "stable"), SymbolState::ComingSoon => write!(f, "coming_soon"), + SymbolState::Stable => write!(f, "stable"), SymbolState::Deprecated => write!(f, "deprecated"), } } From 6420f95027e365ea7f8e4bb0ded5ee68370594a0 Mon Sep 17 00:00:00 2001 From: Danial Mehrjerdi Date: Thu, 3 Jul 2025 09:19:32 +0200 Subject: [PATCH 4/5] Rename deprecated to inactive --- lazer/publisher_sdk/proto/state.proto | 2 +- lazer/sdk/rust/protocol/src/symbol_state.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lazer/publisher_sdk/proto/state.proto b/lazer/publisher_sdk/proto/state.proto index 8143a46b8c..d98e42f246 100644 --- a/lazer/publisher_sdk/proto/state.proto +++ b/lazer/publisher_sdk/proto/state.proto @@ -47,7 +47,7 @@ message Publisher { enum FeedState { COMING_SOON = 0; // Default value STABLE = 1; - DEPRECATED = 2; + INACTIVE = 2; } // Static data for a feed. diff --git a/lazer/sdk/rust/protocol/src/symbol_state.rs b/lazer/sdk/rust/protocol/src/symbol_state.rs index 4bbe98bd61..54f7bcbb87 100644 --- a/lazer/sdk/rust/protocol/src/symbol_state.rs +++ b/lazer/sdk/rust/protocol/src/symbol_state.rs @@ -8,7 +8,7 @@ use { pub enum SymbolState { ComingSoon, Stable, - Deprecated, + Inactive, } impl Display for SymbolState { @@ -16,7 +16,7 @@ impl Display for SymbolState { match self { SymbolState::ComingSoon => write!(f, "coming_soon"), SymbolState::Stable => write!(f, "stable"), - SymbolState::Deprecated => write!(f, "deprecated"), + SymbolState::Inactive => write!(f, "inactive"), } } } From eca6b132adc9164c24c1e7c393a1f93ca8659d96 Mon Sep 17 00:00:00 2001 From: Danial Mehrjerdi Date: Mon, 7 Jul 2025 14:51:03 +0200 Subject: [PATCH 5/5] Address comments --- Cargo.lock | 32 +++++++++---------- .../proto/transaction_envelope.proto | 1 + 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c9dcb00e8..17075d2611 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5539,8 +5539,8 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "protobuf", - "pyth-lazer-protocol 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "pyth-lazer-publisher-sdk 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "pyth-lazer-protocol 0.7.2", + "pyth-lazer-publisher-sdk 0.1.5", "serde", "serde_json", "soketto", @@ -5568,7 +5568,7 @@ dependencies = [ "futures-util", "hex", "libsecp256k1 0.7.2", - "pyth-lazer-protocol 0.7.2", + "pyth-lazer-protocol 0.7.3", "serde", "serde_json", "tokio", @@ -5580,18 +5580,14 @@ dependencies = [ [[package]] name = "pyth-lazer-protocol" version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9bdf4e2ba853a8b437309487542e742c7d094d8db189db194cb538f2be02ecd" dependencies = [ - "alloy-primitives 0.8.25", "anyhow", "base64 0.22.1", - "bincode 1.3.3", - "bs58", "byteorder", "derive_more 1.0.0", - "ed25519-dalek 2.1.1", - "hex", "itertools 0.13.0", - "libsecp256k1 0.7.2", "protobuf", "rust_decimal", "serde", @@ -5600,15 +5596,19 @@ dependencies = [ [[package]] name = "pyth-lazer-protocol" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9bdf4e2ba853a8b437309487542e742c7d094d8db189db194cb538f2be02ecd" +version = "0.7.3" dependencies = [ + "alloy-primitives 0.8.25", "anyhow", "base64 0.22.1", + "bincode 1.3.3", + "bs58", "byteorder", "derive_more 1.0.0", + "ed25519-dalek 2.1.1", + "hex", "itertools 0.13.0", + "libsecp256k1 0.7.2", "protobuf", "rust_decimal", "serde", @@ -5618,6 +5618,8 @@ dependencies = [ [[package]] name = "pyth-lazer-publisher-sdk" version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e633db28ca38210de8ab3e99d5bd85ad8cae08a08bb0292506340ee9d1c718" dependencies = [ "anyhow", "fs-err", @@ -5631,16 +5633,14 @@ dependencies = [ [[package]] name = "pyth-lazer-publisher-sdk" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e633db28ca38210de8ab3e99d5bd85ad8cae08a08bb0292506340ee9d1c718" +version = "0.1.6" dependencies = [ "anyhow", "fs-err", "humantime", "protobuf", "protobuf-codegen", - "pyth-lazer-protocol 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pyth-lazer-protocol 0.7.3", "serde-value", "tracing", ] diff --git a/lazer/publisher_sdk/proto/transaction_envelope.proto b/lazer/publisher_sdk/proto/transaction_envelope.proto index bd89e9758e..750f98606d 100644 --- a/lazer/publisher_sdk/proto/transaction_envelope.proto +++ b/lazer/publisher_sdk/proto/transaction_envelope.proto @@ -64,4 +64,5 @@ enum RejectReason { PriceOverflow = 2; InvalidFeedId = 3; MissingFields = 4; + InactiveFeedId = 5; }