diff --git a/apps/hermes/server/Cargo.lock b/apps/hermes/server/Cargo.lock index aca82cb4ce..798405fd56 100644 --- a/apps/hermes/server/Cargo.lock +++ b/apps/hermes/server/Cargo.lock @@ -1796,7 +1796,7 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermes" -version = "0.6.0" +version = "0.6.1" dependencies = [ "anyhow", "async-trait", diff --git a/apps/hermes/server/Cargo.toml b/apps/hermes/server/Cargo.toml index 0324e57ddb..85fbca1c80 100644 --- a/apps/hermes/server/Cargo.toml +++ b/apps/hermes/server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hermes" -version = "0.6.0" +version = "0.6.1" description = "Hermes is an agent that provides Verified Prices from the Pythnet Pyth Oracle." edition = "2021" diff --git a/apps/hermes/server/src/api.rs b/apps/hermes/server/src/api.rs index 9b63a20186..36bd5a8877 100644 --- a/apps/hermes/server/src/api.rs +++ b/apps/hermes/server/src/api.rs @@ -132,7 +132,10 @@ where types::ParsedPriceUpdate, types::RpcPriceFeedMetadataV2, types::PriceFeedMetadata, - types::AssetType + types::LatestPublisherStakeCapsUpdateDataResponse, + types::ParsedPublisherStakeCapsUpdate, + types::ParsedPublisherStakeCap, + types::AssetType, ) ), tags( diff --git a/apps/hermes/server/src/api/rest/v2/latest_publisher_stake_caps.rs b/apps/hermes/server/src/api/rest/v2/latest_publisher_stake_caps.rs index 480caf4e76..a429efd042 100644 --- a/apps/hermes/server/src/api/rest/v2/latest_publisher_stake_caps.rs +++ b/apps/hermes/server/src/api/rest/v2/latest_publisher_stake_caps.rs @@ -5,6 +5,7 @@ use { types::{ BinaryUpdate, EncodingType, + LatestPublisherStakeCapsUpdateDataResponse, ParsedPublisherStakeCapsUpdate, }, ApiState, @@ -20,15 +21,9 @@ use { engine::general_purpose::STANDARD as base64_standard_engine, Engine as _, }, - serde::{ - Deserialize, - Serialize, - }, + serde::Deserialize, serde_qs::axum::QsQuery, - utoipa::{ - IntoParams, - ToSchema, - }, + utoipa::IntoParams, }; @@ -50,19 +45,12 @@ fn default_true() -> bool { true } -#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] -pub struct LatestPublisherStakeCapsUpdateDataResponse { - pub binary: BinaryUpdate, - #[serde(skip_serializing_if = "Option::is_none")] - pub parsed: Option>, -} - /// Get the most recent publisher stake caps update data. #[utoipa::path( get, path = "/v2/updates/publisher_stake_caps/latest", responses( - (status = 200, description = "Publisher stake caps update data retrieved succesfully", body = Vec) + (status = 200, description = "Publisher stake caps update data retrieved successfully", body = LatestPublisherStakeCapsUpdateDataResponse) ), params( LatestPublisherStakeCapsUpdateData diff --git a/apps/hermes/server/src/api/types.rs b/apps/hermes/server/src/api/types.rs index ab72bbb273..865a12744d 100644 --- a/apps/hermes/server/src/api/types.rs +++ b/apps/hermes/server/src/api/types.rs @@ -28,7 +28,6 @@ use { Deserialize, Serialize, }, - solana_sdk::pubkey::Pubkey, std::{ collections::BTreeMap, fmt::{ @@ -273,18 +272,24 @@ impl From for ParsedPriceUpdate { } } -#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize, Clone)] +#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize, Clone, ToSchema)] pub struct ParsedPublisherStakeCapsUpdate { pub publisher_stake_caps: Vec, } -#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize, Clone)] +#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize, Clone, ToSchema)] pub struct ParsedPublisherStakeCap { - #[serde(with = "pyth_sdk::utils::as_string")] - pub publisher: Pubkey, + pub publisher: String, pub cap: u64, } +#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] +pub struct LatestPublisherStakeCapsUpdateDataResponse { + pub binary: BinaryUpdate, + #[serde(skip_serializing_if = "Option::is_none")] + pub parsed: Option>, +} + #[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] pub struct PriceUpdate { pub binary: BinaryUpdate, diff --git a/apps/hermes/server/src/state/aggregate.rs b/apps/hermes/server/src/state/aggregate.rs index 84fd74ce89..cf4971e08e 100644 --- a/apps/hermes/server/src/state/aggregate.rs +++ b/apps/hermes/server/src/state/aggregate.rs @@ -436,7 +436,7 @@ where .caps .iter() .map(|cap| ParsedPublisherStakeCap { - publisher: Pubkey::from(cap.publisher), + publisher: Pubkey::from(cap.publisher).to_string(), cap: cap.cap, }) .collect(),