Forráskód Böngészése

feat(hermes): fix publisher cap schema (#1890)

* feat(hermes): fix publisher cap schema

* update version

* go
Keyvan Khademi 1 éve
szülő
commit
cac1a8e296

+ 1 - 1
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",

+ 1 - 1
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"
 

+ 4 - 1
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(

+ 4 - 16
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<Vec<ParsedPublisherStakeCapsUpdate>>,
-}
-
 /// 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<PriceFeedMetadata>)
+        (status = 200, description = "Publisher stake caps update data retrieved successfully", body = LatestPublisherStakeCapsUpdateDataResponse)
     ),
     params(
         LatestPublisherStakeCapsUpdateData

+ 10 - 5
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<PriceFeedUpdate> 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<ParsedPublisherStakeCap>,
 }
 
-#[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<Vec<ParsedPublisherStakeCapsUpdate>>,
+}
+
 #[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
 pub struct PriceUpdate {
     pub binary: BinaryUpdate,

+ 1 - 1
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(),