@zofai/zo-sdk 0.2.17 → 0.2.19

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.
Files changed (43) hide show
  1. package/dist/consts/deployments-usdz-mainnet.json +10 -0
  2. package/dist/consts/deployments-zo-oracle-mainnet.json +8 -0
  3. package/dist/consts/index.cjs.map +1 -1
  4. package/dist/consts/index.d.cts +2 -0
  5. package/dist/consts/index.d.cts.map +1 -1
  6. package/dist/consts/index.d.mts +2 -0
  7. package/dist/consts/index.d.mts.map +1 -1
  8. package/dist/consts/index.mjs.map +1 -1
  9. package/dist/interfaces/base.d.cts +9 -0
  10. package/dist/interfaces/base.d.cts.map +1 -1
  11. package/dist/interfaces/base.d.mts +9 -0
  12. package/dist/interfaces/base.d.mts.map +1 -1
  13. package/dist/oracle.cjs +19 -0
  14. package/dist/oracle.cjs.map +1 -1
  15. package/dist/oracle.d.cts +14 -1
  16. package/dist/oracle.d.cts.map +1 -1
  17. package/dist/oracle.d.mts +14 -1
  18. package/dist/oracle.d.mts.map +1 -1
  19. package/dist/oracle.mjs +20 -1
  20. package/dist/oracle.mjs.map +1 -1
  21. package/dist/oraclePro.cjs +5 -2
  22. package/dist/oraclePro.cjs.map +1 -1
  23. package/dist/oraclePro.d.cts.map +1 -1
  24. package/dist/oraclePro.d.mts.map +1 -1
  25. package/dist/oraclePro.mjs +5 -2
  26. package/dist/oraclePro.mjs.map +1 -1
  27. package/dist/storkClient.cjs +230 -0
  28. package/dist/storkClient.cjs.map +1 -1
  29. package/dist/storkClient.d.cts +89 -0
  30. package/dist/storkClient.d.cts.map +1 -1
  31. package/dist/storkClient.d.mts +89 -0
  32. package/dist/storkClient.d.mts.map +1 -1
  33. package/dist/storkClient.mjs +227 -0
  34. package/dist/storkClient.mjs.map +1 -1
  35. package/package.json +1 -1
  36. package/src/consts/deployments-usdz-mainnet.json +10 -0
  37. package/src/consts/deployments-zo-oracle-mainnet.json +8 -0
  38. package/src/consts/index.ts +2 -0
  39. package/src/interfaces/base.ts +17 -0
  40. package/src/oracle.ts +35 -2
  41. package/src/oraclePro.ts +7 -2
  42. package/src/storkClient.ts +308 -0
  43. package/tests/storkClient.test.ts +88 -0
@@ -87,4 +87,93 @@ assetIdByAsset?: Map<string, Uint8Array>): IStorkUpdateData[];
87
87
  */
88
88
  export declare function getLatestStorkPrices(baseUrl: string, options: IGetLatestStorkPricesOptions): Promise<IStorkLatestPriceData>;
89
89
  export declare function fetchStorkUpdateDataFromKronos(baseUrl: string, assets: string[], assetIdByAsset?: Map<string, Uint8Array>): Promise<IStorkUpdateData[]>;
90
+ export type StorkSignatureType = 'evm' | 'stark';
91
+ export interface StorkStreamUpdate {
92
+ traceId?: string;
93
+ /** Stork asset symbol (e.g. `BTCUSD`) → kronos price entry. */
94
+ prices: Record<string, IStorkKronosPriceEntry>;
95
+ }
96
+ export type StorkStreamServerMessage = {
97
+ type: 'connected';
98
+ message?: string;
99
+ } | {
100
+ type: 'oracle_prices';
101
+ trace_id?: string;
102
+ data: Record<string, IStorkKronosPriceEntry>;
103
+ } | {
104
+ type: 'error';
105
+ message?: string;
106
+ } | {
107
+ type: 'pong';
108
+ };
109
+ export type StorkStreamClientMessage = {
110
+ type: 'subscribe';
111
+ data: string[];
112
+ } | {
113
+ type: 'unsubscribe';
114
+ data: string[];
115
+ } | {
116
+ type: 'ping';
117
+ };
118
+ /** Derive ws(s):// stream URL from kronos http(s) base URL. */
119
+ export declare function apiBaseUrlToStorkWsUrl(baseUrl: string, signatureType?: StorkSignatureType): string;
120
+ export interface IStorkStreamClientOptions {
121
+ /** Defaults to `evm` (`/stork/stream/evm`). Use `stark` for StarkEx-native signatures. */
122
+ signatureType?: StorkSignatureType;
123
+ /** Defaults to apiBaseUrlToStorkWsUrl(baseUrl, signatureType). */
124
+ wsUrl?: string;
125
+ /** Reconnect after disconnect. Default true. */
126
+ autoReconnect?: boolean;
127
+ /** Initial reconnect delay in ms. Default 1000. */
128
+ reconnectDelayMs?: number;
129
+ /** Ping interval in ms. Default 30000. Set 0 to disable. */
130
+ pingIntervalMs?: number;
131
+ /** Custom WebSocket constructor (Node test mocks, etc.). */
132
+ WebSocketImpl?: typeof WebSocket;
133
+ }
134
+ type StorkStreamUpdateHandler = (update: StorkStreamUpdate) => void;
135
+ type StorkStreamMessageHandler = (message: StorkStreamServerMessage) => void;
136
+ /**
137
+ * WebSocket client for kronos `/stork/stream/{evm|stark}`.
138
+ * Multiplexes asset subscriptions and re-subscribes after reconnect.
139
+ */
140
+ export declare class StorkStreamClient {
141
+ private readonly wsUrl;
142
+ private readonly autoReconnect;
143
+ private readonly reconnectDelayMs;
144
+ private readonly pingIntervalMs;
145
+ private readonly WebSocketImpl;
146
+ private ws;
147
+ private connectPromise;
148
+ private reconnectTimer;
149
+ private pingTimer;
150
+ private closedByUser;
151
+ private readonly assetRefCount;
152
+ private readonly updateHandlers;
153
+ private readonly messageHandlers;
154
+ constructor(baseUrl: string, options?: IStorkStreamClientOptions);
155
+ /** Open the WebSocket and wait for socket open. */
156
+ connect(): Promise<void>;
157
+ disconnect(): void;
158
+ /**
159
+ * Subscribe to live Stork price updates for asset symbols (e.g. `BTCUSD`).
160
+ * Returns an unsubscribe function.
161
+ */
162
+ subscribe(assets: string[], onUpdate: StorkStreamUpdateHandler): () => void;
163
+ /** Remove one handler; unsubscribe upstream assets when no handlers remain. */
164
+ unsubscribe(assets: string[], onUpdate?: StorkStreamUpdateHandler): void;
165
+ onMessage(handler: StorkStreamMessageHandler): () => void;
166
+ private addAssetRefs;
167
+ private removeAssetRefs;
168
+ private clearAssetRefs;
169
+ private send;
170
+ private resubscribeAll;
171
+ private scheduleReconnect;
172
+ private clearReconnect;
173
+ private startPing;
174
+ private stopPing;
175
+ private emitMessage;
176
+ private handleMessage;
177
+ }
178
+ export {};
90
179
  //# sourceMappingURL=storkClient.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storkClient.d.cts","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storkClient.d.cts","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
@@ -87,4 +87,93 @@ assetIdByAsset?: Map<string, Uint8Array>): IStorkUpdateData[];
87
87
  */
88
88
  export declare function getLatestStorkPrices(baseUrl: string, options: IGetLatestStorkPricesOptions): Promise<IStorkLatestPriceData>;
89
89
  export declare function fetchStorkUpdateDataFromKronos(baseUrl: string, assets: string[], assetIdByAsset?: Map<string, Uint8Array>): Promise<IStorkUpdateData[]>;
90
+ export type StorkSignatureType = 'evm' | 'stark';
91
+ export interface StorkStreamUpdate {
92
+ traceId?: string;
93
+ /** Stork asset symbol (e.g. `BTCUSD`) → kronos price entry. */
94
+ prices: Record<string, IStorkKronosPriceEntry>;
95
+ }
96
+ export type StorkStreamServerMessage = {
97
+ type: 'connected';
98
+ message?: string;
99
+ } | {
100
+ type: 'oracle_prices';
101
+ trace_id?: string;
102
+ data: Record<string, IStorkKronosPriceEntry>;
103
+ } | {
104
+ type: 'error';
105
+ message?: string;
106
+ } | {
107
+ type: 'pong';
108
+ };
109
+ export type StorkStreamClientMessage = {
110
+ type: 'subscribe';
111
+ data: string[];
112
+ } | {
113
+ type: 'unsubscribe';
114
+ data: string[];
115
+ } | {
116
+ type: 'ping';
117
+ };
118
+ /** Derive ws(s):// stream URL from kronos http(s) base URL. */
119
+ export declare function apiBaseUrlToStorkWsUrl(baseUrl: string, signatureType?: StorkSignatureType): string;
120
+ export interface IStorkStreamClientOptions {
121
+ /** Defaults to `evm` (`/stork/stream/evm`). Use `stark` for StarkEx-native signatures. */
122
+ signatureType?: StorkSignatureType;
123
+ /** Defaults to apiBaseUrlToStorkWsUrl(baseUrl, signatureType). */
124
+ wsUrl?: string;
125
+ /** Reconnect after disconnect. Default true. */
126
+ autoReconnect?: boolean;
127
+ /** Initial reconnect delay in ms. Default 1000. */
128
+ reconnectDelayMs?: number;
129
+ /** Ping interval in ms. Default 30000. Set 0 to disable. */
130
+ pingIntervalMs?: number;
131
+ /** Custom WebSocket constructor (Node test mocks, etc.). */
132
+ WebSocketImpl?: typeof WebSocket;
133
+ }
134
+ type StorkStreamUpdateHandler = (update: StorkStreamUpdate) => void;
135
+ type StorkStreamMessageHandler = (message: StorkStreamServerMessage) => void;
136
+ /**
137
+ * WebSocket client for kronos `/stork/stream/{evm|stark}`.
138
+ * Multiplexes asset subscriptions and re-subscribes after reconnect.
139
+ */
140
+ export declare class StorkStreamClient {
141
+ private readonly wsUrl;
142
+ private readonly autoReconnect;
143
+ private readonly reconnectDelayMs;
144
+ private readonly pingIntervalMs;
145
+ private readonly WebSocketImpl;
146
+ private ws;
147
+ private connectPromise;
148
+ private reconnectTimer;
149
+ private pingTimer;
150
+ private closedByUser;
151
+ private readonly assetRefCount;
152
+ private readonly updateHandlers;
153
+ private readonly messageHandlers;
154
+ constructor(baseUrl: string, options?: IStorkStreamClientOptions);
155
+ /** Open the WebSocket and wait for socket open. */
156
+ connect(): Promise<void>;
157
+ disconnect(): void;
158
+ /**
159
+ * Subscribe to live Stork price updates for asset symbols (e.g. `BTCUSD`).
160
+ * Returns an unsubscribe function.
161
+ */
162
+ subscribe(assets: string[], onUpdate: StorkStreamUpdateHandler): () => void;
163
+ /** Remove one handler; unsubscribe upstream assets when no handlers remain. */
164
+ unsubscribe(assets: string[], onUpdate?: StorkStreamUpdateHandler): void;
165
+ onMessage(handler: StorkStreamMessageHandler): () => void;
166
+ private addAssetRefs;
167
+ private removeAssetRefs;
168
+ private clearAssetRefs;
169
+ private send;
170
+ private resubscribeAll;
171
+ private scheduleReconnect;
172
+ private clearReconnect;
173
+ private startPing;
174
+ private stopPing;
175
+ private emitMessage;
176
+ private handleMessage;
177
+ }
178
+ export {};
90
179
  //# sourceMappingURL=storkClient.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storkClient.d.mts","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storkClient.d.mts","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
@@ -205,4 +205,231 @@ export async function fetchStorkUpdateDataFromKronos(baseUrl, assets, assetIdByA
205
205
  }
206
206
  return updates;
207
207
  }
208
+ /** Derive ws(s):// stream URL from kronos http(s) base URL. */
209
+ export function apiBaseUrlToStorkWsUrl(baseUrl, signatureType = 'evm') {
210
+ const url = new URL(baseUrl);
211
+ url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
212
+ url.pathname = `/stork/stream/${signatureType}`;
213
+ url.search = '';
214
+ url.hash = '';
215
+ return url.toString();
216
+ }
217
+ /**
218
+ * WebSocket client for kronos `/stork/stream/{evm|stark}`.
219
+ * Multiplexes asset subscriptions and re-subscribes after reconnect.
220
+ */
221
+ export class StorkStreamClient {
222
+ constructor(baseUrl, options) {
223
+ this.ws = null;
224
+ this.connectPromise = null;
225
+ this.reconnectTimer = null;
226
+ this.pingTimer = null;
227
+ this.closedByUser = false;
228
+ this.assetRefCount = new Map();
229
+ this.updateHandlers = new Set();
230
+ this.messageHandlers = new Set();
231
+ const signatureType = options?.signatureType ?? 'evm';
232
+ this.wsUrl = options?.wsUrl ?? apiBaseUrlToStorkWsUrl(baseUrl, signatureType);
233
+ this.autoReconnect = options?.autoReconnect ?? true;
234
+ this.reconnectDelayMs = options?.reconnectDelayMs ?? 1000;
235
+ this.pingIntervalMs = options?.pingIntervalMs ?? 30000;
236
+ this.WebSocketImpl = options?.WebSocketImpl ?? WebSocket;
237
+ }
238
+ /** Open the WebSocket and wait for socket open. */
239
+ connect() {
240
+ if (this.ws?.readyState === WebSocket.OPEN) {
241
+ return Promise.resolve();
242
+ }
243
+ if (this.connectPromise) {
244
+ return this.connectPromise;
245
+ }
246
+ this.closedByUser = false;
247
+ this.connectPromise = new Promise((resolve, reject) => {
248
+ const ws = new this.WebSocketImpl(this.wsUrl);
249
+ this.ws = ws;
250
+ const onOpen = () => {
251
+ this.startPing();
252
+ this.resubscribeAll();
253
+ resolve();
254
+ };
255
+ const onError = () => {
256
+ if (ws.readyState !== WebSocket.OPEN) {
257
+ reject(new Error(`Stork WebSocket connection failed: ${this.wsUrl}`));
258
+ }
259
+ this.emitMessage({ type: 'error', message: `Stork WebSocket error: ${this.wsUrl}` });
260
+ };
261
+ ws.addEventListener('open', onOpen, { once: true });
262
+ ws.addEventListener('error', onError, { once: true });
263
+ ws.addEventListener('message', (event) => {
264
+ this.handleMessage(String(event.data));
265
+ });
266
+ ws.addEventListener('close', () => {
267
+ this.stopPing();
268
+ this.ws = null;
269
+ this.connectPromise = null;
270
+ if (!this.closedByUser && this.autoReconnect) {
271
+ this.scheduleReconnect();
272
+ }
273
+ });
274
+ });
275
+ return this.connectPromise;
276
+ }
277
+ disconnect() {
278
+ this.closedByUser = true;
279
+ this.clearReconnect();
280
+ this.stopPing();
281
+ if (this.ws) {
282
+ this.ws.close();
283
+ this.ws = null;
284
+ }
285
+ this.connectPromise = null;
286
+ }
287
+ /**
288
+ * Subscribe to live Stork price updates for asset symbols (e.g. `BTCUSD`).
289
+ * Returns an unsubscribe function.
290
+ */
291
+ subscribe(assets, onUpdate) {
292
+ if (assets.length === 0) {
293
+ throw new Error('assets is required');
294
+ }
295
+ const newAssets = this.addAssetRefs(assets);
296
+ this.updateHandlers.add(onUpdate);
297
+ void this.connect().then(() => {
298
+ if (newAssets.length > 0) {
299
+ this.send({ type: 'subscribe', data: newAssets });
300
+ }
301
+ });
302
+ return () => {
303
+ this.unsubscribe(assets, onUpdate);
304
+ };
305
+ }
306
+ /** Remove one handler; unsubscribe upstream assets when no handlers remain. */
307
+ unsubscribe(assets, onUpdate) {
308
+ if (onUpdate) {
309
+ this.updateHandlers.delete(onUpdate);
310
+ }
311
+ else {
312
+ this.updateHandlers.clear();
313
+ }
314
+ if (this.updateHandlers.size === 0) {
315
+ const removedAssets = this.clearAssetRefs();
316
+ if (removedAssets.length > 0 && this.ws?.readyState === WebSocket.OPEN) {
317
+ this.send({ type: 'unsubscribe', data: removedAssets });
318
+ }
319
+ return;
320
+ }
321
+ const removedAssets = this.removeAssetRefs(assets);
322
+ if (removedAssets.length > 0 && this.ws?.readyState === WebSocket.OPEN) {
323
+ this.send({ type: 'unsubscribe', data: removedAssets });
324
+ }
325
+ }
326
+ onMessage(handler) {
327
+ this.messageHandlers.add(handler);
328
+ return () => {
329
+ this.messageHandlers.delete(handler);
330
+ };
331
+ }
332
+ addAssetRefs(assets) {
333
+ const newAssets = [];
334
+ for (const asset of assets) {
335
+ const count = this.assetRefCount.get(asset) ?? 0;
336
+ this.assetRefCount.set(asset, count + 1);
337
+ if (count === 0) {
338
+ newAssets.push(asset);
339
+ }
340
+ }
341
+ return newAssets;
342
+ }
343
+ removeAssetRefs(assets) {
344
+ const removedAssets = [];
345
+ for (const asset of assets) {
346
+ const count = this.assetRefCount.get(asset);
347
+ if (count === undefined) {
348
+ continue;
349
+ }
350
+ if (count <= 1) {
351
+ this.assetRefCount.delete(asset);
352
+ removedAssets.push(asset);
353
+ }
354
+ else {
355
+ this.assetRefCount.set(asset, count - 1);
356
+ }
357
+ }
358
+ return removedAssets;
359
+ }
360
+ clearAssetRefs() {
361
+ const removedAssets = [...this.assetRefCount.keys()];
362
+ this.assetRefCount.clear();
363
+ return removedAssets;
364
+ }
365
+ send(message) {
366
+ if (this.ws?.readyState !== WebSocket.OPEN) {
367
+ return;
368
+ }
369
+ this.ws.send(JSON.stringify(message));
370
+ }
371
+ resubscribeAll() {
372
+ const assets = [...this.assetRefCount.keys()];
373
+ if (assets.length > 0) {
374
+ this.send({ type: 'subscribe', data: assets });
375
+ }
376
+ }
377
+ scheduleReconnect() {
378
+ if (this.reconnectTimer) {
379
+ return;
380
+ }
381
+ this.reconnectTimer = setTimeout(() => {
382
+ this.reconnectTimer = null;
383
+ void this.connect().catch(() => {
384
+ this.scheduleReconnect();
385
+ });
386
+ }, this.reconnectDelayMs);
387
+ }
388
+ clearReconnect() {
389
+ if (this.reconnectTimer) {
390
+ clearTimeout(this.reconnectTimer);
391
+ this.reconnectTimer = null;
392
+ }
393
+ }
394
+ startPing() {
395
+ if (this.pingIntervalMs <= 0) {
396
+ return;
397
+ }
398
+ this.stopPing();
399
+ this.pingTimer = setInterval(() => {
400
+ this.send({ type: 'ping' });
401
+ }, this.pingIntervalMs);
402
+ }
403
+ stopPing() {
404
+ if (this.pingTimer) {
405
+ clearInterval(this.pingTimer);
406
+ this.pingTimer = null;
407
+ }
408
+ }
409
+ emitMessage(message) {
410
+ for (const handler of this.messageHandlers) {
411
+ handler(message);
412
+ }
413
+ }
414
+ handleMessage(raw) {
415
+ let message;
416
+ try {
417
+ message = JSON.parse(raw);
418
+ }
419
+ catch {
420
+ this.emitMessage({ type: 'error', message: `Invalid JSON: ${raw}` });
421
+ return;
422
+ }
423
+ this.emitMessage(message);
424
+ if (message.type === 'oracle_prices') {
425
+ const update = {
426
+ traceId: message.trace_id,
427
+ prices: message.data,
428
+ };
429
+ for (const handler of this.updateHandlers) {
430
+ handler(update);
431
+ }
432
+ }
433
+ }
434
+ }
208
435
  //# sourceMappingURL=storkClient.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"storkClient.mjs","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storkClient.mjs","sourceRoot":"","sources":["../src/storkClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zofai/zo-sdk",
3
3
  "type": "module",
4
- "version": "0.2.17",
4
+ "version": "0.2.19",
5
5
  "author": "zo",
6
6
  "exports": {
7
7
  ".": {
@@ -132,6 +132,16 @@
132
132
  "supported_collaterals": ["nusdc"],
133
133
  "funding_fee_model": "0x1247d3e6abf83e1e8341feb4b7476e3df57484ea5f6e25d17e31187eb3159624",
134
134
  "position_config": "0x4b7b7f80dfb443e4758eac7be07cbd2620442c01aa9d80b2fd7b04fd4c170efc"
135
+ },
136
+ "long_spy": {
137
+ "supported_collaterals": ["nusdc"],
138
+ "funding_fee_model": "0x7dc84b1edf83630dfc8676ea44d1843a50e872198fb4e7e146b5e42a03cd7316",
139
+ "position_config": "0x2a59d371959ea488262267b048ea3773e0b8109a7ef81ed35889fad47f540129"
140
+ },
141
+ "short_spy": {
142
+ "supported_collaterals": ["nusdc"],
143
+ "funding_fee_model": "0xa46b82dafc473075d858f4356dc587b1cc84d20a15d655868d1b33cb26a510d8",
144
+ "position_config": "0x34dd41c6a64c4c39efbaaa638743085c0b4cb8e361f5a8c33e2736306832b169"
135
145
  }
136
146
  }
137
147
  },
@@ -324,6 +324,14 @@
324
324
  "stork_feeder_id": null,
325
325
  "enabled_sources": 3,
326
326
  "max_slippage": "1000000000000000000"
327
+ },
328
+ "SPY/USD": {
329
+ "coin_type": "0x20bf0078ab6cab00add9f9dd4bd3585603bf35e494bf6f81dfda6b2c5ef789a0::spy::SPY",
330
+ "pyth_feeder_id": "0xe1d36d749ce811cbcb09ad882e2b4f757c689bd0f651974b014fea4a1f0f1606",
331
+ "stork_feeder_id": "0x01ef2ebdefa4a9fbd6f75da48007552e7a56dfd99247197a38205efb3bae634e",
332
+ "stork_asset_id": "SPY_24_5",
333
+ "enabled_sources": 3,
334
+ "max_slippage": "1000000000000000000"
327
335
  }
328
336
  }
329
337
  }
@@ -57,6 +57,8 @@ export interface IZoOracleSymbolConfig {
57
57
  coinType: string
58
58
  pythFeederId: string
59
59
  storkFeederId: string | null
60
+ /** Kronos/Stork asset symbol override (default: symbol key without `/`, e.g. `BTCUSD`). */
61
+ storkAssetId?: string | null
60
62
  enabledSources: number
61
63
  maxSlippage: string
62
64
  }
@@ -17,6 +17,11 @@ import type {
17
17
  PythProStreamClient,
18
18
  PythProStreamUpdate,
19
19
  } from '../pythProClient'
20
+ import type {
21
+ IStorkStreamClientOptions,
22
+ StorkStreamClient,
23
+ StorkStreamUpdate,
24
+ } from '../storkClient'
20
25
  import type { SuiClient } from '../suiClient'
21
26
 
22
27
  // Common data interfaces
@@ -354,6 +359,18 @@ export interface IBaseDataAPI {
354
359
  subscriptionId?: number,
355
360
  ) => Promise<() => void>
356
361
 
362
+ /** kronos WebSocket client for `/stork/stream/{evm|stark}`. Requires apiEndpoint. */
363
+ createStorkStreamClient: (
364
+ options?: IStorkStreamClientOptions & { kronosUrl?: string },
365
+ ) => StorkStreamClient
366
+
367
+ /** Live Stork prices via kronos WebSocket. Requires apiEndpoint. */
368
+ subStorkPricesForTokens: (
369
+ tokens: string[],
370
+ onUpdate: (update: StorkStreamUpdate) => void,
371
+ options?: IStorkStreamClientOptions & { kronosUrl?: string },
372
+ ) => Promise<() => void>
373
+
357
374
  // Utility methods
358
375
  validateCache: () => void
359
376
  }
package/src/oracle.ts CHANGED
@@ -40,8 +40,15 @@ import {
40
40
  getLatestPythProPrices,
41
41
  PythProStreamClient,
42
42
  } from './pythProClient'
43
- import type { IStorkUpdateData } from './storkClient'
44
- import { fetchStorkUpdateDataFromKronos } from './storkClient'
43
+ import type {
44
+ IStorkStreamClientOptions,
45
+ IStorkUpdateData,
46
+ StorkStreamUpdate,
47
+ } from './storkClient'
48
+ import {
49
+ fetchStorkUpdateDataFromKronos,
50
+ StorkStreamClient,
51
+ } from './storkClient'
45
52
  import {
46
53
  appendStorkUpdatesToTransaction,
47
54
  estimateStorkUpdateFeeMist,
@@ -352,6 +359,12 @@ export class OracleAPI {
352
359
  return new PythProStreamClient(this.resolveKronosUrl(kronosUrl))
353
360
  }
354
361
 
362
+ /** WebSocket client for kronos `/stork/stream/{evm|stark}`. */
363
+ createStorkStreamClient(options?: IStorkStreamClientOptions & { kronosUrl?: string }): StorkStreamClient {
364
+ const { kronosUrl, ...clientOptions } = options ?? {}
365
+ return new StorkStreamClient(this.resolveKronosUrl(kronosUrl), clientOptions)
366
+ }
367
+
355
368
  /**
356
369
  * Subscribe to live Pyth Pro prices for SDK tokens via kronos WebSocket.
357
370
  * Returns unsubscribe (closes subscription; disconnect the client separately if unused).
@@ -375,6 +388,26 @@ export class OracleAPI {
375
388
  )
376
389
  }
377
390
 
391
+ /**
392
+ * Subscribe to live Stork prices for SDK tokens via kronos WebSocket.
393
+ * Tokens without a Stork feeder in zo-oracle config are skipped.
394
+ * Returns unsubscribe (disconnect the client separately if unused).
395
+ */
396
+ async subStorkPricesForTokens(
397
+ tokens: string[],
398
+ onUpdate: (update: StorkStreamUpdate) => void,
399
+ options?: IStorkStreamClientOptions & { kronosUrl?: string },
400
+ ): Promise<() => void> {
401
+ const assets = this.resolveStorkAssetsForTokens(tokens)
402
+ if (assets.length === 0) {
403
+ throw new Error(`No Stork assets configured for tokens: ${tokens.join(', ')}`)
404
+ }
405
+
406
+ const client = this.createStorkStreamClient(options)
407
+ await client.connect()
408
+ return client.subscribe(assets, onUpdate)
409
+ }
410
+
378
411
  /**
379
412
  * Fetch leEcdsa update bytes covering all tokens' Pyth Lazer feed ids via kronos REST.
380
413
  */