@pythnetwork/hermes-client 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,7 @@ export type EncodingType = z.infer<typeof schemas.EncodingType>;
7
7
  export type PriceFeedMetadata = z.infer<typeof schemas.PriceFeedMetadata>;
8
8
  export type PriceIdInput = z.infer<typeof schemas.PriceIdInput>;
9
9
  export type PriceUpdate = z.infer<typeof schemas.PriceUpdate>;
10
+ export type TwapsResponse = z.infer<typeof schemas.TwapsResponse>;
10
11
  export type PublisherCaps = z.infer<typeof schemas.LatestPublisherStakeCapsUpdateDataResponse>;
11
12
  export type UnixTimestamp = number;
12
13
  export type DurationInSeconds = number;
@@ -130,6 +131,26 @@ export declare class HermesClient {
130
131
  benchmarksOnly?: boolean;
131
132
  ignoreInvalidPriceIds?: boolean;
132
133
  }): Promise<EventSource>;
134
+ /**
135
+ * Fetch the latest TWAP (time weighted average price) for a set of price feed IDs.
136
+ * This endpoint can be customized by specifying the encoding type and whether the results should also return the calculated TWAP using the options object.
137
+ * This will throw an error if there is a network problem or the price service returns a non-ok response.
138
+ *
139
+ * @param ids Array of hex-encoded price feed IDs for which updates are requested.
140
+ * @param window_seconds The time window in seconds over which to calculate the TWAP, ending at the current time.
141
+ * For example, a value of 300 would return the most recent 5 minute TWAP. Must be greater than 0 and less than or equal to 600 seconds (10 minutes).
142
+ * @param options Optional parameters:
143
+ * - encoding: Encoding type. If specified, return the TWAP binary data in the encoding specified by the encoding parameter. Default is hex.
144
+ * - parsed: Boolean to specify if the calculated TWAP should be included in the response. Default is false.
145
+ * - ignoreInvalidPriceIds: Boolean to specify if invalid price IDs should be ignored instead of returning an error. Default is false.
146
+ *
147
+ * @returns TwapsResponse object containing the latest TWAPs.
148
+ */
149
+ getLatestTwaps(ids: HexString[], window_seconds: number, options?: {
150
+ encoding?: EncodingType;
151
+ parsed?: boolean;
152
+ ignoreInvalidPriceIds?: boolean;
153
+ }): Promise<TwapsResponse>;
133
154
  private appendUrlSearchParams;
134
155
  }
135
156
  //# sourceMappingURL=HermesClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HermesClient.d.ts","sourceRoot":"","sources":["../src/HermesClient.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CACjC,OAAO,OAAO,CAAC,0CAA0C,CAC1D,CAAC;AAKF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,kBAAkB,GAAG;IAE/B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAc;IAE7B;;;;;OAKG;gBACS,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB;YAO3C,WAAW;IAyCzB;;;;;;;;;;OAUG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWhC;;;;;;;;;;OAUG;IACG,sBAAsB,CAAC,OAAO,CAAC,EAAE;QACrC,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,aAAa,CAAC;IAW1B;;;;;;;;;;;;OAYG;IACG,qBAAqB,CACzB,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;;;;;;;;;;OAaG;IACG,0BAA0B,CAC9B,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;;;;;;;;;;;;;OAgBG;IACG,qBAAqB,CACzB,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,WAAW,CAAC;IAcvB,OAAO,CAAC,qBAAqB;CAU9B"}
1
+ {"version":3,"file":"HermesClient.d.ts","sourceRoot":"","sources":["../src/HermesClient.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CACjC,OAAO,OAAO,CAAC,0CAA0C,CAC1D,CAAC;AAKF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,MAAM,kBAAkB,GAAG;IAE/B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAc;IAE7B;;;;;OAKG;gBACS,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB;YAO3C,WAAW;IA8CzB;;;;;;;;;;OAUG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWhC;;;;;;;;;;OAUG;IACG,sBAAsB,CAAC,OAAO,CAAC,EAAE;QACrC,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,aAAa,CAAC;IAW1B;;;;;;;;;;;;OAYG;IACG,qBAAqB,CACzB,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;;;;;;;;;;OAaG;IACG,0BAA0B,CAC9B,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;;;;;;;;;;;;;OAgBG;IACG,qBAAqB,CACzB,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;;;;;;;;;;;OAcG;IACG,cAAc,CAClB,GAAG,EAAE,SAAS,EAAE,EAChB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,OAAO,CAAC,aAAa,CAAC;IAiBzB,OAAO,CAAC,qBAAqB;CAU9B"}
@@ -41,7 +41,8 @@ class HermesClient {
41
41
  const response = await fetch(url, options);
42
42
  clearTimeout(timeout); // Clear the timeout if the request completes in time
43
43
  if (!response.ok) {
44
- throw new Error(`HTTP error! status: ${response.status}`);
44
+ const errorBody = await response.text();
45
+ throw new Error(`HTTP error! status: ${response.status}${errorBody ? `, body: ${errorBody}` : ""}`);
45
46
  }
46
47
  const data = await response.json();
47
48
  return schema.parse(data);
@@ -170,6 +171,32 @@ class HermesClient {
170
171
  }
171
172
  return new eventsource_1.default(url.toString(), { headers: this.headers });
172
173
  }
174
+ /**
175
+ * Fetch the latest TWAP (time weighted average price) for a set of price feed IDs.
176
+ * This endpoint can be customized by specifying the encoding type and whether the results should also return the calculated TWAP using the options object.
177
+ * This will throw an error if there is a network problem or the price service returns a non-ok response.
178
+ *
179
+ * @param ids Array of hex-encoded price feed IDs for which updates are requested.
180
+ * @param window_seconds The time window in seconds over which to calculate the TWAP, ending at the current time.
181
+ * For example, a value of 300 would return the most recent 5 minute TWAP. Must be greater than 0 and less than or equal to 600 seconds (10 minutes).
182
+ * @param options Optional parameters:
183
+ * - encoding: Encoding type. If specified, return the TWAP binary data in the encoding specified by the encoding parameter. Default is hex.
184
+ * - parsed: Boolean to specify if the calculated TWAP should be included in the response. Default is false.
185
+ * - ignoreInvalidPriceIds: Boolean to specify if invalid price IDs should be ignored instead of returning an error. Default is false.
186
+ *
187
+ * @returns TwapsResponse object containing the latest TWAPs.
188
+ */
189
+ async getLatestTwaps(ids, window_seconds, options) {
190
+ const url = new URL(`v2/updates/twap/${window_seconds}/latest`, this.baseURL);
191
+ for (const id of ids) {
192
+ url.searchParams.append("ids[]", id);
193
+ }
194
+ if (options) {
195
+ const transformedOptions = (0, utils_1.camelToSnakeCaseObject)(options);
196
+ this.appendUrlSearchParams(url, transformedOptions);
197
+ }
198
+ return this.httpRequest(url.toString(), zodSchemas_1.schemas.TwapsResponse);
199
+ }
173
200
  appendUrlSearchParams(url, params) {
174
201
  Object.entries(params).forEach(([key, value]) => {
175
202
  if (value !== undefined) {
@@ -48,15 +48,22 @@ async function run() {
48
48
  const connection = new HermesClient_1.HermesClient(endpoint, { headers });
49
49
  const priceIds = argv.priceIds;
50
50
  // Get price feeds
51
+ console.log(`Price feeds matching "btc" with asset type "crypto":`);
51
52
  const priceFeeds = await connection.getPriceFeeds({
52
53
  query: "btc",
53
54
  filter: "crypto",
54
55
  });
55
56
  console.log(priceFeeds);
56
57
  // Latest price updates
58
+ console.log(`Latest price updates for price IDs ${priceIds}:`);
57
59
  const priceUpdates = await connection.getLatestPriceUpdates(priceIds);
58
60
  console.log(priceUpdates);
61
+ // Get the latest 5 second TWAPs
62
+ console.log(`Latest 5 second TWAPs for price IDs ${priceIds}`);
63
+ const twapUpdates = await connection.getLatestTwaps(priceIds, 5);
64
+ console.log(twapUpdates);
59
65
  // Streaming price updates
66
+ console.log(`Streaming latest prices for price IDs ${priceIds}...`);
60
67
  const eventSource = await connection.getPriceUpdatesStream(priceIds, {
61
68
  encoding: "hex",
62
69
  parsed: true,
@@ -65,6 +72,7 @@ async function run() {
65
72
  });
66
73
  eventSource.onmessage = (event) => {
67
74
  console.log("Received price update:", event.data);
75
+ const _priceUpdate = JSON.parse(event.data);
68
76
  };
69
77
  eventSource.onerror = (error) => {
70
78
  console.error("Error receiving updates:", error);
@@ -837,6 +837,296 @@ export declare const schemas: {
837
837
  }, z.ZodTypeAny, "passthrough">>, "many">;
838
838
  }, z.ZodTypeAny, "passthrough">>, "many">>>;
839
839
  }, z.ZodTypeAny, "passthrough">>;
840
+ ParsedPriceFeedTwap: z.ZodObject<{
841
+ down_slots_ratio: z.ZodString;
842
+ end_timestamp: z.ZodNumber;
843
+ id: z.ZodString;
844
+ start_timestamp: z.ZodNumber;
845
+ twap: z.ZodObject<{
846
+ conf: z.ZodString;
847
+ expo: z.ZodNumber;
848
+ price: z.ZodString;
849
+ publish_time: z.ZodNumber;
850
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
851
+ conf: z.ZodString;
852
+ expo: z.ZodNumber;
853
+ price: z.ZodString;
854
+ publish_time: z.ZodNumber;
855
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
856
+ conf: z.ZodString;
857
+ expo: z.ZodNumber;
858
+ price: z.ZodString;
859
+ publish_time: z.ZodNumber;
860
+ }, z.ZodTypeAny, "passthrough">>;
861
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
862
+ down_slots_ratio: z.ZodString;
863
+ end_timestamp: z.ZodNumber;
864
+ id: z.ZodString;
865
+ start_timestamp: z.ZodNumber;
866
+ twap: z.ZodObject<{
867
+ conf: z.ZodString;
868
+ expo: z.ZodNumber;
869
+ price: z.ZodString;
870
+ publish_time: z.ZodNumber;
871
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
872
+ conf: z.ZodString;
873
+ expo: z.ZodNumber;
874
+ price: z.ZodString;
875
+ publish_time: z.ZodNumber;
876
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
877
+ conf: z.ZodString;
878
+ expo: z.ZodNumber;
879
+ price: z.ZodString;
880
+ publish_time: z.ZodNumber;
881
+ }, z.ZodTypeAny, "passthrough">>;
882
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
883
+ down_slots_ratio: z.ZodString;
884
+ end_timestamp: z.ZodNumber;
885
+ id: z.ZodString;
886
+ start_timestamp: z.ZodNumber;
887
+ twap: z.ZodObject<{
888
+ conf: z.ZodString;
889
+ expo: z.ZodNumber;
890
+ price: z.ZodString;
891
+ publish_time: z.ZodNumber;
892
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
893
+ conf: z.ZodString;
894
+ expo: z.ZodNumber;
895
+ price: z.ZodString;
896
+ publish_time: z.ZodNumber;
897
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
898
+ conf: z.ZodString;
899
+ expo: z.ZodNumber;
900
+ price: z.ZodString;
901
+ publish_time: z.ZodNumber;
902
+ }, z.ZodTypeAny, "passthrough">>;
903
+ }, z.ZodTypeAny, "passthrough">>;
904
+ TwapsResponse: z.ZodObject<{
905
+ binary: z.ZodObject<{
906
+ data: z.ZodArray<z.ZodString, "many">;
907
+ encoding: z.ZodEnum<["hex", "base64"]>;
908
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
909
+ data: z.ZodArray<z.ZodString, "many">;
910
+ encoding: z.ZodEnum<["hex", "base64"]>;
911
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
912
+ data: z.ZodArray<z.ZodString, "many">;
913
+ encoding: z.ZodEnum<["hex", "base64"]>;
914
+ }, z.ZodTypeAny, "passthrough">>;
915
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
916
+ down_slots_ratio: z.ZodString;
917
+ end_timestamp: z.ZodNumber;
918
+ id: z.ZodString;
919
+ start_timestamp: z.ZodNumber;
920
+ twap: z.ZodObject<{
921
+ conf: z.ZodString;
922
+ expo: z.ZodNumber;
923
+ price: z.ZodString;
924
+ publish_time: z.ZodNumber;
925
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
926
+ conf: z.ZodString;
927
+ expo: z.ZodNumber;
928
+ price: z.ZodString;
929
+ publish_time: z.ZodNumber;
930
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
931
+ conf: z.ZodString;
932
+ expo: z.ZodNumber;
933
+ price: z.ZodString;
934
+ publish_time: z.ZodNumber;
935
+ }, z.ZodTypeAny, "passthrough">>;
936
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
937
+ down_slots_ratio: z.ZodString;
938
+ end_timestamp: z.ZodNumber;
939
+ id: z.ZodString;
940
+ start_timestamp: z.ZodNumber;
941
+ twap: z.ZodObject<{
942
+ conf: z.ZodString;
943
+ expo: z.ZodNumber;
944
+ price: z.ZodString;
945
+ publish_time: z.ZodNumber;
946
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
947
+ conf: z.ZodString;
948
+ expo: z.ZodNumber;
949
+ price: z.ZodString;
950
+ publish_time: z.ZodNumber;
951
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
952
+ conf: z.ZodString;
953
+ expo: z.ZodNumber;
954
+ price: z.ZodString;
955
+ publish_time: z.ZodNumber;
956
+ }, z.ZodTypeAny, "passthrough">>;
957
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
958
+ down_slots_ratio: z.ZodString;
959
+ end_timestamp: z.ZodNumber;
960
+ id: z.ZodString;
961
+ start_timestamp: z.ZodNumber;
962
+ twap: z.ZodObject<{
963
+ conf: z.ZodString;
964
+ expo: z.ZodNumber;
965
+ price: z.ZodString;
966
+ publish_time: z.ZodNumber;
967
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
968
+ conf: z.ZodString;
969
+ expo: z.ZodNumber;
970
+ price: z.ZodString;
971
+ publish_time: z.ZodNumber;
972
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
973
+ conf: z.ZodString;
974
+ expo: z.ZodNumber;
975
+ price: z.ZodString;
976
+ publish_time: z.ZodNumber;
977
+ }, z.ZodTypeAny, "passthrough">>;
978
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
979
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
980
+ binary: z.ZodObject<{
981
+ data: z.ZodArray<z.ZodString, "many">;
982
+ encoding: z.ZodEnum<["hex", "base64"]>;
983
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
984
+ data: z.ZodArray<z.ZodString, "many">;
985
+ encoding: z.ZodEnum<["hex", "base64"]>;
986
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
987
+ data: z.ZodArray<z.ZodString, "many">;
988
+ encoding: z.ZodEnum<["hex", "base64"]>;
989
+ }, z.ZodTypeAny, "passthrough">>;
990
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
991
+ down_slots_ratio: z.ZodString;
992
+ end_timestamp: z.ZodNumber;
993
+ id: z.ZodString;
994
+ start_timestamp: z.ZodNumber;
995
+ twap: z.ZodObject<{
996
+ conf: z.ZodString;
997
+ expo: z.ZodNumber;
998
+ price: z.ZodString;
999
+ publish_time: z.ZodNumber;
1000
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1001
+ conf: z.ZodString;
1002
+ expo: z.ZodNumber;
1003
+ price: z.ZodString;
1004
+ publish_time: z.ZodNumber;
1005
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1006
+ conf: z.ZodString;
1007
+ expo: z.ZodNumber;
1008
+ price: z.ZodString;
1009
+ publish_time: z.ZodNumber;
1010
+ }, z.ZodTypeAny, "passthrough">>;
1011
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1012
+ down_slots_ratio: z.ZodString;
1013
+ end_timestamp: z.ZodNumber;
1014
+ id: z.ZodString;
1015
+ start_timestamp: z.ZodNumber;
1016
+ twap: z.ZodObject<{
1017
+ conf: z.ZodString;
1018
+ expo: z.ZodNumber;
1019
+ price: z.ZodString;
1020
+ publish_time: z.ZodNumber;
1021
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1022
+ conf: z.ZodString;
1023
+ expo: z.ZodNumber;
1024
+ price: z.ZodString;
1025
+ publish_time: z.ZodNumber;
1026
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1027
+ conf: z.ZodString;
1028
+ expo: z.ZodNumber;
1029
+ price: z.ZodString;
1030
+ publish_time: z.ZodNumber;
1031
+ }, z.ZodTypeAny, "passthrough">>;
1032
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1033
+ down_slots_ratio: z.ZodString;
1034
+ end_timestamp: z.ZodNumber;
1035
+ id: z.ZodString;
1036
+ start_timestamp: z.ZodNumber;
1037
+ twap: z.ZodObject<{
1038
+ conf: z.ZodString;
1039
+ expo: z.ZodNumber;
1040
+ price: z.ZodString;
1041
+ publish_time: z.ZodNumber;
1042
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1043
+ conf: z.ZodString;
1044
+ expo: z.ZodNumber;
1045
+ price: z.ZodString;
1046
+ publish_time: z.ZodNumber;
1047
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1048
+ conf: z.ZodString;
1049
+ expo: z.ZodNumber;
1050
+ price: z.ZodString;
1051
+ publish_time: z.ZodNumber;
1052
+ }, z.ZodTypeAny, "passthrough">>;
1053
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
1054
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1055
+ binary: z.ZodObject<{
1056
+ data: z.ZodArray<z.ZodString, "many">;
1057
+ encoding: z.ZodEnum<["hex", "base64"]>;
1058
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1059
+ data: z.ZodArray<z.ZodString, "many">;
1060
+ encoding: z.ZodEnum<["hex", "base64"]>;
1061
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1062
+ data: z.ZodArray<z.ZodString, "many">;
1063
+ encoding: z.ZodEnum<["hex", "base64"]>;
1064
+ }, z.ZodTypeAny, "passthrough">>;
1065
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
1066
+ down_slots_ratio: z.ZodString;
1067
+ end_timestamp: z.ZodNumber;
1068
+ id: z.ZodString;
1069
+ start_timestamp: z.ZodNumber;
1070
+ twap: z.ZodObject<{
1071
+ conf: z.ZodString;
1072
+ expo: z.ZodNumber;
1073
+ price: z.ZodString;
1074
+ publish_time: z.ZodNumber;
1075
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1076
+ conf: z.ZodString;
1077
+ expo: z.ZodNumber;
1078
+ price: z.ZodString;
1079
+ publish_time: z.ZodNumber;
1080
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1081
+ conf: z.ZodString;
1082
+ expo: z.ZodNumber;
1083
+ price: z.ZodString;
1084
+ publish_time: z.ZodNumber;
1085
+ }, z.ZodTypeAny, "passthrough">>;
1086
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1087
+ down_slots_ratio: z.ZodString;
1088
+ end_timestamp: z.ZodNumber;
1089
+ id: z.ZodString;
1090
+ start_timestamp: z.ZodNumber;
1091
+ twap: z.ZodObject<{
1092
+ conf: z.ZodString;
1093
+ expo: z.ZodNumber;
1094
+ price: z.ZodString;
1095
+ publish_time: z.ZodNumber;
1096
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1097
+ conf: z.ZodString;
1098
+ expo: z.ZodNumber;
1099
+ price: z.ZodString;
1100
+ publish_time: z.ZodNumber;
1101
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1102
+ conf: z.ZodString;
1103
+ expo: z.ZodNumber;
1104
+ price: z.ZodString;
1105
+ publish_time: z.ZodNumber;
1106
+ }, z.ZodTypeAny, "passthrough">>;
1107
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1108
+ down_slots_ratio: z.ZodString;
1109
+ end_timestamp: z.ZodNumber;
1110
+ id: z.ZodString;
1111
+ start_timestamp: z.ZodNumber;
1112
+ twap: z.ZodObject<{
1113
+ conf: z.ZodString;
1114
+ expo: z.ZodNumber;
1115
+ price: z.ZodString;
1116
+ publish_time: z.ZodNumber;
1117
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
1118
+ conf: z.ZodString;
1119
+ expo: z.ZodNumber;
1120
+ price: z.ZodString;
1121
+ publish_time: z.ZodNumber;
1122
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
1123
+ conf: z.ZodString;
1124
+ expo: z.ZodNumber;
1125
+ price: z.ZodString;
1126
+ publish_time: z.ZodNumber;
1127
+ }, z.ZodTypeAny, "passthrough">>;
1128
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
1129
+ }, z.ZodTypeAny, "passthrough">>;
840
1130
  };
841
1131
  export declare const api: import("@zodios/core").ZodiosInstance<[{
842
1132
  method: "get";
@@ -2474,22 +2764,280 @@ export declare const api: import("@zodios/core").ZodiosInstance<[{
2474
2764
  cap: z.ZodNumber;
2475
2765
  publisher: z.ZodString;
2476
2766
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2477
- cap: z.ZodNumber;
2478
- publisher: z.ZodString;
2479
- }, z.ZodTypeAny, "passthrough">>, "many">;
2767
+ cap: z.ZodNumber;
2768
+ publisher: z.ZodString;
2769
+ }, z.ZodTypeAny, "passthrough">>, "many">;
2770
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2771
+ publisher_stake_caps: z.ZodArray<z.ZodObject<{
2772
+ cap: z.ZodNumber;
2773
+ publisher: z.ZodString;
2774
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2775
+ cap: z.ZodNumber;
2776
+ publisher: z.ZodString;
2777
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2778
+ cap: z.ZodNumber;
2779
+ publisher: z.ZodString;
2780
+ }, z.ZodTypeAny, "passthrough">>, "many">;
2781
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
2782
+ }, z.ZodTypeAny, "passthrough">>;
2783
+ }, {
2784
+ method: "get";
2785
+ path: "/v2/updates/twap/:window_seconds/latest";
2786
+ alias: "latest_twaps";
2787
+ description: "Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.";
2788
+ requestFormat: "json";
2789
+ parameters: [{
2790
+ name: "window_seconds";
2791
+ type: "Path";
2792
+ schema: z.ZodNumber;
2793
+ }, {
2794
+ name: "ids[]";
2795
+ type: "Query";
2796
+ schema: z.ZodArray<z.ZodString, "many">;
2797
+ }, {
2798
+ name: "encoding";
2799
+ type: "Query";
2800
+ schema: z.ZodOptional<z.ZodEnum<["hex", "base64"]>>;
2801
+ }, {
2802
+ name: "parsed";
2803
+ type: "Query";
2804
+ schema: z.ZodOptional<z.ZodBoolean>;
2805
+ }, {
2806
+ name: "ignore_invalid_price_ids";
2807
+ type: "Query";
2808
+ schema: z.ZodOptional<z.ZodBoolean>;
2809
+ }];
2810
+ response: z.ZodObject<{
2811
+ binary: z.ZodObject<{
2812
+ data: z.ZodArray<z.ZodString, "many">;
2813
+ encoding: z.ZodEnum<["hex", "base64"]>;
2814
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2815
+ data: z.ZodArray<z.ZodString, "many">;
2816
+ encoding: z.ZodEnum<["hex", "base64"]>;
2817
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2818
+ data: z.ZodArray<z.ZodString, "many">;
2819
+ encoding: z.ZodEnum<["hex", "base64"]>;
2820
+ }, z.ZodTypeAny, "passthrough">>;
2821
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
2822
+ down_slots_ratio: z.ZodString;
2823
+ end_timestamp: z.ZodNumber;
2824
+ id: z.ZodString;
2825
+ start_timestamp: z.ZodNumber;
2826
+ twap: z.ZodObject<{
2827
+ conf: z.ZodString;
2828
+ expo: z.ZodNumber;
2829
+ price: z.ZodString;
2830
+ publish_time: z.ZodNumber;
2831
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2832
+ conf: z.ZodString;
2833
+ expo: z.ZodNumber;
2834
+ price: z.ZodString;
2835
+ publish_time: z.ZodNumber;
2836
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2837
+ conf: z.ZodString;
2838
+ expo: z.ZodNumber;
2839
+ price: z.ZodString;
2840
+ publish_time: z.ZodNumber;
2841
+ }, z.ZodTypeAny, "passthrough">>;
2842
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2843
+ down_slots_ratio: z.ZodString;
2844
+ end_timestamp: z.ZodNumber;
2845
+ id: z.ZodString;
2846
+ start_timestamp: z.ZodNumber;
2847
+ twap: z.ZodObject<{
2848
+ conf: z.ZodString;
2849
+ expo: z.ZodNumber;
2850
+ price: z.ZodString;
2851
+ publish_time: z.ZodNumber;
2852
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2853
+ conf: z.ZodString;
2854
+ expo: z.ZodNumber;
2855
+ price: z.ZodString;
2856
+ publish_time: z.ZodNumber;
2857
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2858
+ conf: z.ZodString;
2859
+ expo: z.ZodNumber;
2860
+ price: z.ZodString;
2861
+ publish_time: z.ZodNumber;
2862
+ }, z.ZodTypeAny, "passthrough">>;
2863
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2864
+ down_slots_ratio: z.ZodString;
2865
+ end_timestamp: z.ZodNumber;
2866
+ id: z.ZodString;
2867
+ start_timestamp: z.ZodNumber;
2868
+ twap: z.ZodObject<{
2869
+ conf: z.ZodString;
2870
+ expo: z.ZodNumber;
2871
+ price: z.ZodString;
2872
+ publish_time: z.ZodNumber;
2873
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2874
+ conf: z.ZodString;
2875
+ expo: z.ZodNumber;
2876
+ price: z.ZodString;
2877
+ publish_time: z.ZodNumber;
2878
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2879
+ conf: z.ZodString;
2880
+ expo: z.ZodNumber;
2881
+ price: z.ZodString;
2882
+ publish_time: z.ZodNumber;
2883
+ }, z.ZodTypeAny, "passthrough">>;
2884
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
2885
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2886
+ binary: z.ZodObject<{
2887
+ data: z.ZodArray<z.ZodString, "many">;
2888
+ encoding: z.ZodEnum<["hex", "base64"]>;
2889
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2890
+ data: z.ZodArray<z.ZodString, "many">;
2891
+ encoding: z.ZodEnum<["hex", "base64"]>;
2892
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2893
+ data: z.ZodArray<z.ZodString, "many">;
2894
+ encoding: z.ZodEnum<["hex", "base64"]>;
2895
+ }, z.ZodTypeAny, "passthrough">>;
2896
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
2897
+ down_slots_ratio: z.ZodString;
2898
+ end_timestamp: z.ZodNumber;
2899
+ id: z.ZodString;
2900
+ start_timestamp: z.ZodNumber;
2901
+ twap: z.ZodObject<{
2902
+ conf: z.ZodString;
2903
+ expo: z.ZodNumber;
2904
+ price: z.ZodString;
2905
+ publish_time: z.ZodNumber;
2906
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2907
+ conf: z.ZodString;
2908
+ expo: z.ZodNumber;
2909
+ price: z.ZodString;
2910
+ publish_time: z.ZodNumber;
2911
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2912
+ conf: z.ZodString;
2913
+ expo: z.ZodNumber;
2914
+ price: z.ZodString;
2915
+ publish_time: z.ZodNumber;
2916
+ }, z.ZodTypeAny, "passthrough">>;
2917
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2918
+ down_slots_ratio: z.ZodString;
2919
+ end_timestamp: z.ZodNumber;
2920
+ id: z.ZodString;
2921
+ start_timestamp: z.ZodNumber;
2922
+ twap: z.ZodObject<{
2923
+ conf: z.ZodString;
2924
+ expo: z.ZodNumber;
2925
+ price: z.ZodString;
2926
+ publish_time: z.ZodNumber;
2927
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2928
+ conf: z.ZodString;
2929
+ expo: z.ZodNumber;
2930
+ price: z.ZodString;
2931
+ publish_time: z.ZodNumber;
2932
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2933
+ conf: z.ZodString;
2934
+ expo: z.ZodNumber;
2935
+ price: z.ZodString;
2936
+ publish_time: z.ZodNumber;
2937
+ }, z.ZodTypeAny, "passthrough">>;
2938
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2939
+ down_slots_ratio: z.ZodString;
2940
+ end_timestamp: z.ZodNumber;
2941
+ id: z.ZodString;
2942
+ start_timestamp: z.ZodNumber;
2943
+ twap: z.ZodObject<{
2944
+ conf: z.ZodString;
2945
+ expo: z.ZodNumber;
2946
+ price: z.ZodString;
2947
+ publish_time: z.ZodNumber;
2948
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2949
+ conf: z.ZodString;
2950
+ expo: z.ZodNumber;
2951
+ price: z.ZodString;
2952
+ publish_time: z.ZodNumber;
2953
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2954
+ conf: z.ZodString;
2955
+ expo: z.ZodNumber;
2956
+ price: z.ZodString;
2957
+ publish_time: z.ZodNumber;
2958
+ }, z.ZodTypeAny, "passthrough">>;
2959
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
2960
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2961
+ binary: z.ZodObject<{
2962
+ data: z.ZodArray<z.ZodString, "many">;
2963
+ encoding: z.ZodEnum<["hex", "base64"]>;
2964
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2965
+ data: z.ZodArray<z.ZodString, "many">;
2966
+ encoding: z.ZodEnum<["hex", "base64"]>;
2967
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2968
+ data: z.ZodArray<z.ZodString, "many">;
2969
+ encoding: z.ZodEnum<["hex", "base64"]>;
2970
+ }, z.ZodTypeAny, "passthrough">>;
2971
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
2972
+ down_slots_ratio: z.ZodString;
2973
+ end_timestamp: z.ZodNumber;
2974
+ id: z.ZodString;
2975
+ start_timestamp: z.ZodNumber;
2976
+ twap: z.ZodObject<{
2977
+ conf: z.ZodString;
2978
+ expo: z.ZodNumber;
2979
+ price: z.ZodString;
2980
+ publish_time: z.ZodNumber;
2981
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2982
+ conf: z.ZodString;
2983
+ expo: z.ZodNumber;
2984
+ price: z.ZodString;
2985
+ publish_time: z.ZodNumber;
2986
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2987
+ conf: z.ZodString;
2988
+ expo: z.ZodNumber;
2989
+ price: z.ZodString;
2990
+ publish_time: z.ZodNumber;
2991
+ }, z.ZodTypeAny, "passthrough">>;
2992
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2993
+ down_slots_ratio: z.ZodString;
2994
+ end_timestamp: z.ZodNumber;
2995
+ id: z.ZodString;
2996
+ start_timestamp: z.ZodNumber;
2997
+ twap: z.ZodObject<{
2998
+ conf: z.ZodString;
2999
+ expo: z.ZodNumber;
3000
+ price: z.ZodString;
3001
+ publish_time: z.ZodNumber;
3002
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3003
+ conf: z.ZodString;
3004
+ expo: z.ZodNumber;
3005
+ price: z.ZodString;
3006
+ publish_time: z.ZodNumber;
3007
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3008
+ conf: z.ZodString;
3009
+ expo: z.ZodNumber;
3010
+ price: z.ZodString;
3011
+ publish_time: z.ZodNumber;
3012
+ }, z.ZodTypeAny, "passthrough">>;
2480
3013
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2481
- publisher_stake_caps: z.ZodArray<z.ZodObject<{
2482
- cap: z.ZodNumber;
2483
- publisher: z.ZodString;
3014
+ down_slots_ratio: z.ZodString;
3015
+ end_timestamp: z.ZodNumber;
3016
+ id: z.ZodString;
3017
+ start_timestamp: z.ZodNumber;
3018
+ twap: z.ZodObject<{
3019
+ conf: z.ZodString;
3020
+ expo: z.ZodNumber;
3021
+ price: z.ZodString;
3022
+ publish_time: z.ZodNumber;
2484
3023
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2485
- cap: z.ZodNumber;
2486
- publisher: z.ZodString;
3024
+ conf: z.ZodString;
3025
+ expo: z.ZodNumber;
3026
+ price: z.ZodString;
3027
+ publish_time: z.ZodNumber;
2487
3028
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2488
- cap: z.ZodNumber;
2489
- publisher: z.ZodString;
2490
- }, z.ZodTypeAny, "passthrough">>, "many">;
3029
+ conf: z.ZodString;
3030
+ expo: z.ZodNumber;
3031
+ price: z.ZodString;
3032
+ publish_time: z.ZodNumber;
3033
+ }, z.ZodTypeAny, "passthrough">>;
2491
3034
  }, z.ZodTypeAny, "passthrough">>, "many">>>;
2492
3035
  }, z.ZodTypeAny, "passthrough">>;
3036
+ errors: [{
3037
+ status: 404;
3038
+ description: string;
3039
+ schema: z.ZodVoid;
3040
+ }];
2493
3041
  }]>;
2494
3042
  export declare function createApiClient(baseUrl: string, options?: ZodiosOptions): import("@zodios/core").ZodiosInstance<[{
2495
3043
  method: "get";
@@ -4143,5 +4691,263 @@ export declare function createApiClient(baseUrl: string, options?: ZodiosOptions
4143
4691
  }, z.ZodTypeAny, "passthrough">>, "many">;
4144
4692
  }, z.ZodTypeAny, "passthrough">>, "many">>>;
4145
4693
  }, z.ZodTypeAny, "passthrough">>;
4694
+ }, {
4695
+ method: "get";
4696
+ path: "/v2/updates/twap/:window_seconds/latest";
4697
+ alias: "latest_twaps";
4698
+ description: "Get the latest TWAP by price feed id with a custom time window.\n\nGiven a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.";
4699
+ requestFormat: "json";
4700
+ parameters: [{
4701
+ name: "window_seconds";
4702
+ type: "Path";
4703
+ schema: z.ZodNumber;
4704
+ }, {
4705
+ name: "ids[]";
4706
+ type: "Query";
4707
+ schema: z.ZodArray<z.ZodString, "many">;
4708
+ }, {
4709
+ name: "encoding";
4710
+ type: "Query";
4711
+ schema: z.ZodOptional<z.ZodEnum<["hex", "base64"]>>;
4712
+ }, {
4713
+ name: "parsed";
4714
+ type: "Query";
4715
+ schema: z.ZodOptional<z.ZodBoolean>;
4716
+ }, {
4717
+ name: "ignore_invalid_price_ids";
4718
+ type: "Query";
4719
+ schema: z.ZodOptional<z.ZodBoolean>;
4720
+ }];
4721
+ response: z.ZodObject<{
4722
+ binary: z.ZodObject<{
4723
+ data: z.ZodArray<z.ZodString, "many">;
4724
+ encoding: z.ZodEnum<["hex", "base64"]>;
4725
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4726
+ data: z.ZodArray<z.ZodString, "many">;
4727
+ encoding: z.ZodEnum<["hex", "base64"]>;
4728
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4729
+ data: z.ZodArray<z.ZodString, "many">;
4730
+ encoding: z.ZodEnum<["hex", "base64"]>;
4731
+ }, z.ZodTypeAny, "passthrough">>;
4732
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
4733
+ down_slots_ratio: z.ZodString;
4734
+ end_timestamp: z.ZodNumber;
4735
+ id: z.ZodString;
4736
+ start_timestamp: z.ZodNumber;
4737
+ twap: z.ZodObject<{
4738
+ conf: z.ZodString;
4739
+ expo: z.ZodNumber;
4740
+ price: z.ZodString;
4741
+ publish_time: z.ZodNumber;
4742
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4743
+ conf: z.ZodString;
4744
+ expo: z.ZodNumber;
4745
+ price: z.ZodString;
4746
+ publish_time: z.ZodNumber;
4747
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4748
+ conf: z.ZodString;
4749
+ expo: z.ZodNumber;
4750
+ price: z.ZodString;
4751
+ publish_time: z.ZodNumber;
4752
+ }, z.ZodTypeAny, "passthrough">>;
4753
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4754
+ down_slots_ratio: z.ZodString;
4755
+ end_timestamp: z.ZodNumber;
4756
+ id: z.ZodString;
4757
+ start_timestamp: z.ZodNumber;
4758
+ twap: z.ZodObject<{
4759
+ conf: z.ZodString;
4760
+ expo: z.ZodNumber;
4761
+ price: z.ZodString;
4762
+ publish_time: z.ZodNumber;
4763
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4764
+ conf: z.ZodString;
4765
+ expo: z.ZodNumber;
4766
+ price: z.ZodString;
4767
+ publish_time: z.ZodNumber;
4768
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4769
+ conf: z.ZodString;
4770
+ expo: z.ZodNumber;
4771
+ price: z.ZodString;
4772
+ publish_time: z.ZodNumber;
4773
+ }, z.ZodTypeAny, "passthrough">>;
4774
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4775
+ down_slots_ratio: z.ZodString;
4776
+ end_timestamp: z.ZodNumber;
4777
+ id: z.ZodString;
4778
+ start_timestamp: z.ZodNumber;
4779
+ twap: z.ZodObject<{
4780
+ conf: z.ZodString;
4781
+ expo: z.ZodNumber;
4782
+ price: z.ZodString;
4783
+ publish_time: z.ZodNumber;
4784
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4785
+ conf: z.ZodString;
4786
+ expo: z.ZodNumber;
4787
+ price: z.ZodString;
4788
+ publish_time: z.ZodNumber;
4789
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4790
+ conf: z.ZodString;
4791
+ expo: z.ZodNumber;
4792
+ price: z.ZodString;
4793
+ publish_time: z.ZodNumber;
4794
+ }, z.ZodTypeAny, "passthrough">>;
4795
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
4796
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4797
+ binary: z.ZodObject<{
4798
+ data: z.ZodArray<z.ZodString, "many">;
4799
+ encoding: z.ZodEnum<["hex", "base64"]>;
4800
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4801
+ data: z.ZodArray<z.ZodString, "many">;
4802
+ encoding: z.ZodEnum<["hex", "base64"]>;
4803
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4804
+ data: z.ZodArray<z.ZodString, "many">;
4805
+ encoding: z.ZodEnum<["hex", "base64"]>;
4806
+ }, z.ZodTypeAny, "passthrough">>;
4807
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
4808
+ down_slots_ratio: z.ZodString;
4809
+ end_timestamp: z.ZodNumber;
4810
+ id: z.ZodString;
4811
+ start_timestamp: z.ZodNumber;
4812
+ twap: z.ZodObject<{
4813
+ conf: z.ZodString;
4814
+ expo: z.ZodNumber;
4815
+ price: z.ZodString;
4816
+ publish_time: z.ZodNumber;
4817
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4818
+ conf: z.ZodString;
4819
+ expo: z.ZodNumber;
4820
+ price: z.ZodString;
4821
+ publish_time: z.ZodNumber;
4822
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4823
+ conf: z.ZodString;
4824
+ expo: z.ZodNumber;
4825
+ price: z.ZodString;
4826
+ publish_time: z.ZodNumber;
4827
+ }, z.ZodTypeAny, "passthrough">>;
4828
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4829
+ down_slots_ratio: z.ZodString;
4830
+ end_timestamp: z.ZodNumber;
4831
+ id: z.ZodString;
4832
+ start_timestamp: z.ZodNumber;
4833
+ twap: z.ZodObject<{
4834
+ conf: z.ZodString;
4835
+ expo: z.ZodNumber;
4836
+ price: z.ZodString;
4837
+ publish_time: z.ZodNumber;
4838
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4839
+ conf: z.ZodString;
4840
+ expo: z.ZodNumber;
4841
+ price: z.ZodString;
4842
+ publish_time: z.ZodNumber;
4843
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4844
+ conf: z.ZodString;
4845
+ expo: z.ZodNumber;
4846
+ price: z.ZodString;
4847
+ publish_time: z.ZodNumber;
4848
+ }, z.ZodTypeAny, "passthrough">>;
4849
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4850
+ down_slots_ratio: z.ZodString;
4851
+ end_timestamp: z.ZodNumber;
4852
+ id: z.ZodString;
4853
+ start_timestamp: z.ZodNumber;
4854
+ twap: z.ZodObject<{
4855
+ conf: z.ZodString;
4856
+ expo: z.ZodNumber;
4857
+ price: z.ZodString;
4858
+ publish_time: z.ZodNumber;
4859
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4860
+ conf: z.ZodString;
4861
+ expo: z.ZodNumber;
4862
+ price: z.ZodString;
4863
+ publish_time: z.ZodNumber;
4864
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4865
+ conf: z.ZodString;
4866
+ expo: z.ZodNumber;
4867
+ price: z.ZodString;
4868
+ publish_time: z.ZodNumber;
4869
+ }, z.ZodTypeAny, "passthrough">>;
4870
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
4871
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4872
+ binary: z.ZodObject<{
4873
+ data: z.ZodArray<z.ZodString, "many">;
4874
+ encoding: z.ZodEnum<["hex", "base64"]>;
4875
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4876
+ data: z.ZodArray<z.ZodString, "many">;
4877
+ encoding: z.ZodEnum<["hex", "base64"]>;
4878
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4879
+ data: z.ZodArray<z.ZodString, "many">;
4880
+ encoding: z.ZodEnum<["hex", "base64"]>;
4881
+ }, z.ZodTypeAny, "passthrough">>;
4882
+ parsed: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
4883
+ down_slots_ratio: z.ZodString;
4884
+ end_timestamp: z.ZodNumber;
4885
+ id: z.ZodString;
4886
+ start_timestamp: z.ZodNumber;
4887
+ twap: z.ZodObject<{
4888
+ conf: z.ZodString;
4889
+ expo: z.ZodNumber;
4890
+ price: z.ZodString;
4891
+ publish_time: z.ZodNumber;
4892
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4893
+ conf: z.ZodString;
4894
+ expo: z.ZodNumber;
4895
+ price: z.ZodString;
4896
+ publish_time: z.ZodNumber;
4897
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4898
+ conf: z.ZodString;
4899
+ expo: z.ZodNumber;
4900
+ price: z.ZodString;
4901
+ publish_time: z.ZodNumber;
4902
+ }, z.ZodTypeAny, "passthrough">>;
4903
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4904
+ down_slots_ratio: z.ZodString;
4905
+ end_timestamp: z.ZodNumber;
4906
+ id: z.ZodString;
4907
+ start_timestamp: z.ZodNumber;
4908
+ twap: z.ZodObject<{
4909
+ conf: z.ZodString;
4910
+ expo: z.ZodNumber;
4911
+ price: z.ZodString;
4912
+ publish_time: z.ZodNumber;
4913
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4914
+ conf: z.ZodString;
4915
+ expo: z.ZodNumber;
4916
+ price: z.ZodString;
4917
+ publish_time: z.ZodNumber;
4918
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4919
+ conf: z.ZodString;
4920
+ expo: z.ZodNumber;
4921
+ price: z.ZodString;
4922
+ publish_time: z.ZodNumber;
4923
+ }, z.ZodTypeAny, "passthrough">>;
4924
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4925
+ down_slots_ratio: z.ZodString;
4926
+ end_timestamp: z.ZodNumber;
4927
+ id: z.ZodString;
4928
+ start_timestamp: z.ZodNumber;
4929
+ twap: z.ZodObject<{
4930
+ conf: z.ZodString;
4931
+ expo: z.ZodNumber;
4932
+ price: z.ZodString;
4933
+ publish_time: z.ZodNumber;
4934
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4935
+ conf: z.ZodString;
4936
+ expo: z.ZodNumber;
4937
+ price: z.ZodString;
4938
+ publish_time: z.ZodNumber;
4939
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4940
+ conf: z.ZodString;
4941
+ expo: z.ZodNumber;
4942
+ price: z.ZodString;
4943
+ publish_time: z.ZodNumber;
4944
+ }, z.ZodTypeAny, "passthrough">>;
4945
+ }, z.ZodTypeAny, "passthrough">>, "many">>>;
4946
+ }, z.ZodTypeAny, "passthrough">>;
4947
+ errors: [{
4948
+ status: 404;
4949
+ description: string;
4950
+ schema: z.ZodVoid;
4951
+ }];
4146
4952
  }]>;
4147
4953
  //# sourceMappingURL=zodSchemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zodSchemas.d.ts","sourceRoot":"","sources":["../src/zodSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+DxB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAenB,CAAC;AAkLF,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwB,CAAC;AAEzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvE"}
1
+ {"version":3,"file":"zodSchemas.d.ts","sourceRoot":"","sources":["../src/zodSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8ExB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBnB,CAAC;AA8NF,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwB,CAAC;AAEzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEvE"}
package/lib/zodSchemas.js CHANGED
@@ -63,6 +63,21 @@ const LatestPublisherStakeCapsUpdateDataResponse = zod_1.z
63
63
  parsed: zod_1.z.array(ParsedPublisherStakeCapsUpdate).nullish(),
64
64
  })
65
65
  .passthrough();
66
+ const ParsedPriceFeedTwap = zod_1.z
67
+ .object({
68
+ down_slots_ratio: zod_1.z.string(),
69
+ end_timestamp: zod_1.z.number().int(),
70
+ id: RpcPriceIdentifier,
71
+ start_timestamp: zod_1.z.number().int(),
72
+ twap: RpcPrice,
73
+ })
74
+ .passthrough();
75
+ const TwapsResponse = zod_1.z
76
+ .object({
77
+ binary: BinaryUpdate,
78
+ parsed: zod_1.z.array(ParsedPriceFeedTwap).nullish(),
79
+ })
80
+ .passthrough();
66
81
  exports.schemas = {
67
82
  AssetType,
68
83
  asset_type,
@@ -78,6 +93,8 @@ exports.schemas = {
78
93
  ParsedPublisherStakeCap,
79
94
  ParsedPublisherStakeCapsUpdate,
80
95
  LatestPublisherStakeCapsUpdateDataResponse,
96
+ ParsedPriceFeedTwap,
97
+ TwapsResponse,
81
98
  };
82
99
  const endpoints = (0, core_1.makeApi)([
83
100
  {
@@ -253,6 +270,50 @@ Given a collection of price feed ids, retrieve the latest Pyth price for each pr
253
270
  ],
254
271
  response: LatestPublisherStakeCapsUpdateDataResponse,
255
272
  },
273
+ {
274
+ method: "get",
275
+ path: "/v2/updates/twap/:window_seconds/latest",
276
+ alias: "latest_twaps",
277
+ description: `Get the latest TWAP by price feed id with a custom time window.
278
+
279
+ Given a collection of price feed ids, retrieve the latest Pyth TWAP price for each price feed.`,
280
+ requestFormat: "json",
281
+ parameters: [
282
+ {
283
+ name: "window_seconds",
284
+ type: "Path",
285
+ schema: zod_1.z.number().int().gte(0),
286
+ },
287
+ {
288
+ name: "ids[]",
289
+ type: "Query",
290
+ schema: zod_1.z.array(PriceIdInput),
291
+ },
292
+ {
293
+ name: "encoding",
294
+ type: "Query",
295
+ schema: zod_1.z.enum(["hex", "base64"]).optional(),
296
+ },
297
+ {
298
+ name: "parsed",
299
+ type: "Query",
300
+ schema: zod_1.z.boolean().optional(),
301
+ },
302
+ {
303
+ name: "ignore_invalid_price_ids",
304
+ type: "Query",
305
+ schema: zod_1.z.boolean().optional(),
306
+ },
307
+ ],
308
+ response: TwapsResponse,
309
+ errors: [
310
+ {
311
+ status: 404,
312
+ description: `Price ids not found`,
313
+ schema: zod_1.z.void(),
314
+ },
315
+ ],
316
+ },
256
317
  ]);
257
318
  exports.api = new core_1.Zodios(endpoints);
258
319
  function createApiClient(baseUrl, options) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pythnetwork/hermes-client",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Pyth Hermes Client",
5
5
  "author": {
6
6
  "name": "Pyth Data Association"
@@ -55,5 +55,5 @@
55
55
  "eventsource": "^2.0.2",
56
56
  "zod": "^3.23.8"
57
57
  },
58
- "gitHead": "733971809a4415c420922477a162aff3789a7774"
58
+ "gitHead": "512f6375bbedf78ff8e0d651c606701c0f7fb2ac"
59
59
  }