@pythnetwork/hermes-client 1.3.0 → 1.3.1

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.
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2024 Pyth Data Association.
1
+ Copyright 2025 Pyth Data Association.
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -32,7 +32,10 @@ const priceIds = [
32
32
  ];
33
33
 
34
34
  // Get price feeds
35
- const priceFeeds = await connection.getPriceFeeds("btc", "crypto");
35
+ const priceFeeds = await connection.getPriceFeeds({
36
+ query: "btc",
37
+ filter: "crypto",
38
+ });
36
39
  console.log(priceFeeds);
37
40
 
38
41
  // Latest price updates
@@ -44,7 +47,7 @@ console.log(priceUpdates);
44
47
 
45
48
  ```typescript
46
49
  // Streaming price updates
47
- const eventSource = await connection.getStreamingPriceUpdates(priceIds);
50
+ const eventSource = await connection.getPriceUpdatesStream(priceIds);
48
51
 
49
52
  eventSource.onmessage = (event) => {
50
53
  console.log("Received price update:", event.data);
@@ -152,5 +152,6 @@ export declare class HermesClient {
152
152
  ignoreInvalidPriceIds?: boolean;
153
153
  }): Promise<TwapsResponse>;
154
154
  private appendUrlSearchParams;
155
+ private buildURL;
155
156
  }
156
157
  //# sourceMappingURL=HermesClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HermesClient.d.ts","sourceRoot":"","sources":["../src/HermesClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HermesClient.d.ts","sourceRoot":"","sources":["../src/HermesClient.ts"],"names":[],"mappings":"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"}
@@ -70,7 +70,7 @@ class HermesClient {
70
70
  * @returns Array of PriceFeedMetadata objects.
71
71
  */
72
72
  async getPriceFeeds(options) {
73
- const url = new URL("v2/price_feeds", this.baseURL);
73
+ const url = this.buildURL("price_feeds");
74
74
  if (options) {
75
75
  this.appendUrlSearchParams(url, options);
76
76
  }
@@ -88,7 +88,7 @@ class HermesClient {
88
88
  * @returns PublisherCaps object containing the latest publisher stake caps.
89
89
  */
90
90
  async getLatestPublisherCaps(options) {
91
- const url = new URL("v2/updates/publisher_stake_caps/latest", this.baseURL);
91
+ const url = this.buildURL("updates/publisher_stake_caps/latest");
92
92
  if (options) {
93
93
  this.appendUrlSearchParams(url, options);
94
94
  }
@@ -108,7 +108,7 @@ class HermesClient {
108
108
  * @returns PriceUpdate object containing the latest updates.
109
109
  */
110
110
  async getLatestPriceUpdates(ids, options) {
111
- const url = new URL("v2/updates/price/latest", this.baseURL);
111
+ const url = this.buildURL("updates/price/latest");
112
112
  for (const id of ids) {
113
113
  url.searchParams.append("ids[]", id);
114
114
  }
@@ -133,7 +133,7 @@ class HermesClient {
133
133
  * @returns PriceUpdate object containing the updates at the specified timestamp.
134
134
  */
135
135
  async getPriceUpdatesAtTimestamp(publishTime, ids, options) {
136
- const url = new URL(`v2/updates/price/${publishTime}`, this.baseURL);
136
+ const url = this.buildURL(`updates/price/${publishTime}`);
137
137
  for (const id of ids) {
138
138
  url.searchParams.append("ids[]", id);
139
139
  }
@@ -161,7 +161,7 @@ class HermesClient {
161
161
  * @returns An EventSource instance for receiving streaming updates.
162
162
  */
163
163
  async getPriceUpdatesStream(ids, options) {
164
- const url = new URL("v2/updates/price/stream", this.baseURL);
164
+ const url = this.buildURL("updates/price/stream");
165
165
  ids.forEach((id) => {
166
166
  url.searchParams.append("ids[]", id);
167
167
  });
@@ -187,7 +187,7 @@ class HermesClient {
187
187
  * @returns TwapsResponse object containing the latest TWAPs.
188
188
  */
189
189
  async getLatestTwaps(ids, window_seconds, options) {
190
- const url = new URL(`v2/updates/twap/${window_seconds}/latest`, this.baseURL);
190
+ const url = this.buildURL(`updates/twap/${window_seconds}/latest`);
191
191
  for (const id of ids) {
192
192
  url.searchParams.append("ids[]", id);
193
193
  }
@@ -204,5 +204,11 @@ class HermesClient {
204
204
  }
205
205
  });
206
206
  }
207
+ buildURL(endpoint) {
208
+ return new URL(`./v2/${endpoint}`,
209
+ // We ensure the `baseURL` ends with a `/` so that URL doesn't resolve the
210
+ // path relative to the parent.
211
+ `${this.baseURL}${this.baseURL.endsWith("/") ? "" : "/"}`);
212
+ }
207
213
  }
208
214
  exports.HermesClient = HermesClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pythnetwork/hermes-client",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
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": "512f6375bbedf78ff8e0d651c606701c0f7fb2ac"
58
+ "gitHead": "cdaf99e8629cd6af655a5f1c2c5750de9bc485dd"
59
59
  }