tardis-dev 16.4.0 → 16.4.2

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 (60) hide show
  1. package/README.md +1 -1
  2. package/dist/exchangedetails.d.ts +1 -1
  3. package/dist/exchangedetails.d.ts.map +1 -1
  4. package/dist/handy.d.ts +9 -4
  5. package/dist/handy.d.ts.map +1 -1
  6. package/dist/handy.js +17 -12
  7. package/dist/handy.js.map +1 -1
  8. package/dist/mappers/binanceeuropeanoptions.d.ts.map +1 -1
  9. package/dist/mappers/binanceeuropeanoptions.js +30 -70
  10. package/dist/mappers/binanceeuropeanoptions.js.map +1 -1
  11. package/dist/mappers/bitget.js +5 -5
  12. package/dist/mappers/bitget.js.map +1 -1
  13. package/dist/mappers/bitmex.js +5 -5
  14. package/dist/mappers/bitmex.js.map +1 -1
  15. package/dist/mappers/bullish.js +15 -15
  16. package/dist/mappers/bullish.js.map +1 -1
  17. package/dist/mappers/bybit.js +16 -16
  18. package/dist/mappers/bybit.js.map +1 -1
  19. package/dist/mappers/deribit.js +12 -12
  20. package/dist/mappers/deribit.js.map +1 -1
  21. package/dist/mappers/ftx.js +5 -5
  22. package/dist/mappers/ftx.js.map +1 -1
  23. package/dist/mappers/huobi.d.ts.map +1 -1
  24. package/dist/mappers/huobi.js +20 -20
  25. package/dist/mappers/huobi.js.map +1 -1
  26. package/dist/mappers/index.d.ts.map +1 -1
  27. package/dist/mappers/index.js +4 -2
  28. package/dist/mappers/index.js.map +1 -1
  29. package/dist/mappers/kraken.js +5 -5
  30. package/dist/mappers/kraken.js.map +1 -1
  31. package/dist/mappers/kucoinfutures.d.ts.map +1 -1
  32. package/dist/mappers/kucoinfutures.js +2 -2
  33. package/dist/mappers/kucoinfutures.js.map +1 -1
  34. package/dist/mappers/lighter.js +5 -5
  35. package/dist/mappers/lighter.js.map +1 -1
  36. package/dist/mappers/okex.js +38 -38
  37. package/dist/mappers/okex.js.map +1 -1
  38. package/dist/mappers/phemex.d.ts.map +1 -1
  39. package/dist/mappers/phemex.js +15 -1
  40. package/dist/mappers/phemex.js.map +1 -1
  41. package/dist/mappers/serum.js +5 -5
  42. package/dist/mappers/serum.js.map +1 -1
  43. package/package.json +1 -1
  44. package/src/exchangedetails.ts +1 -1
  45. package/src/handy.ts +18 -14
  46. package/src/mappers/binanceeuropeanoptions.ts +30 -79
  47. package/src/mappers/bitget.ts +5 -5
  48. package/src/mappers/bitmex.ts +5 -5
  49. package/src/mappers/bullish.ts +15 -15
  50. package/src/mappers/bybit.ts +16 -16
  51. package/src/mappers/deribit.ts +12 -12
  52. package/src/mappers/ftx.ts +5 -5
  53. package/src/mappers/huobi.ts +20 -20
  54. package/src/mappers/index.ts +4 -2
  55. package/src/mappers/kraken.ts +5 -5
  56. package/src/mappers/kucoinfutures.ts +2 -2
  57. package/src/mappers/lighter.ts +5 -5
  58. package/src/mappers/okex.ts +38 -38
  59. package/src/mappers/phemex.ts +15 -1
  60. package/src/mappers/serum.ts +5 -5
@@ -80,7 +80,21 @@ const COINS_STARTING_WITH_S = [
80
80
  'STRKUSD',
81
81
  'SOLVUSD',
82
82
  'SPKUSDT',
83
- 'SAHARAUSDT'
83
+ 'SAHARAUSDT',
84
+ 'SOLAMIUSDT',
85
+ 'SAPIENUSDT',
86
+ 'SOMIUSDT',
87
+ 'SKYUSDT',
88
+ 'STBLUSDT',
89
+ 'STABLEUSDT',
90
+ 'SENTUSDT',
91
+ 'SPORTFUNUSDT',
92
+ 'SKRUSDT',
93
+ 'SPACEUSDT',
94
+ 'SPX500USDT',
95
+ 'SPYXUSDT',
96
+ 'SP500USDT',
97
+ 'SNDKUSDT'
84
98
  ];
85
99
  function getInstrumentType(symbol) {
86
100
  if (/\d+$/.test(symbol)) {
@@ -1 +1 @@
1
- {"version":3,"file":"phemex.js","sourceRoot":"","sources":["../../src/mappers/phemex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phemex.js","sourceRoot":"","sources":["../../src/mappers/phemex.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, upperCaseSymbols } from "../handy.js";
1
+ import { asNonZeroNumberOrUndefined, upperCaseSymbols } from "../handy.js";
2
2
  export class SerumTradesMapper {
3
3
  _exchange;
4
4
  constructor(_exchange) {
@@ -97,10 +97,10 @@ export class SerumBookTickerMapper {
97
97
  type: 'book_ticker',
98
98
  symbol: message.market.toUpperCase(),
99
99
  exchange: this._exchange,
100
- askAmount: message.bestAsk !== undefined ? asNumberIfValid(message.bestAsk[1]) : undefined,
101
- askPrice: message.bestAsk !== undefined ? asNumberIfValid(message.bestAsk[0]) : undefined,
102
- bidPrice: message.bestBid !== undefined ? asNumberIfValid(message.bestBid[0]) : undefined,
103
- bidAmount: message.bestBid !== undefined ? asNumberIfValid(message.bestBid[1]) : undefined,
100
+ askAmount: asNonZeroNumberOrUndefined(message.bestAsk?.[1]),
101
+ askPrice: asNonZeroNumberOrUndefined(message.bestAsk?.[0]),
102
+ bidPrice: asNonZeroNumberOrUndefined(message.bestBid?.[0]),
103
+ bidAmount: asNonZeroNumberOrUndefined(message.bestBid?.[1]),
104
104
  timestamp: new Date(message.timestamp),
105
105
  localTimestamp: localTimestamp
106
106
  };
@@ -1 +1 @@
1
- {"version":3,"file":"serum.js","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serum.js","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tardis-dev",
3
- "version": "16.4.0",
3
+ "version": "16.4.2",
4
4
  "engines": {
5
5
  "node": ">=25"
6
6
  },
@@ -10,7 +10,7 @@ export async function getExchangeDetails<T extends Exchange>(exchange: T) {
10
10
  return data as ExchangeDetails<T>
11
11
  }
12
12
 
13
- export type SymbolType = 'spot' | 'future' | 'perpetual' | 'option' | 'combo'
13
+ export type SymbolType = 'spot' | 'future' | 'perpetual' | 'option' | 'combo' | 'prediction'
14
14
 
15
15
  export type DatasetType =
16
16
  | 'trades'
package/src/handy.ts CHANGED
@@ -771,38 +771,42 @@ export function decimalPlaces(n: number) {
771
771
  }
772
772
 
773
773
  /**
774
- * Parses optional numeric fields where `undefined`, `null`, `NaN`, `Infinity`, and `-Infinity` are treated as not valid and mapped to `undefined`.
775
- * `0` is valid and preserved. Use for nullable/optional numeric fields such as open interest, funding rates, and greeks.
774
+ * Parses optional numeric fields where:
775
+ * * `0` **is valid and preserved**
776
+ * * `undefined`, `null`, `NaN`, `Infinity`, and `-Infinity` are treated as not valid and mapped to `undefined`
777
+ *
778
+ * Use for nullable/optional numeric fields such as open interest, funding rates, and greeks.
776
779
  */
777
780
  export function asNumberOrUndefined(val: string | number | undefined | null) {
778
781
  if (val === undefined || val === null || val === '') {
779
782
  return
780
783
  }
781
784
 
785
+ if (typeof val === 'number') {
786
+ return Number.isFinite(val) ? val : undefined
787
+ }
788
+
782
789
  const asNumber = Number(val)
783
790
  return Number.isFinite(asNumber) ? asNumber : undefined
784
791
  }
785
792
 
786
793
  /**
787
- * Parses optional numeric fields where `0`, `undefined`, `null`, `NaN`, `Infinity`, and `-Infinity` are treated as not valid and mapped to `undefined`.
794
+ * Parses optional numeric fields where:
795
+ * * `0`, `undefined`, `null`, `NaN`, `Infinity`, and `-Infinity` are treated as not valid and mapped to `undefined`.
796
+ *
788
797
  * Use for empty quote/top-of-book values that exchanges encode as zero.
789
798
  */
790
- export function asNumberIfValid(val: string | number | undefined | null) {
791
- if (val === undefined || val === null) {
792
- return
793
- }
794
-
795
- var asNumber = Number(val)
796
-
797
- if (isNaN(asNumber) || isFinite(asNumber) === false) {
799
+ export function asNonZeroNumberOrUndefined(val: string | number | undefined | null) {
800
+ if (val === undefined || val === null || val === '' || val === 0) {
798
801
  return
799
802
  }
800
803
 
801
- if (asNumber === 0) {
802
- return
804
+ if (typeof val === 'number') {
805
+ return Number.isFinite(val) ? val : undefined
803
806
  }
804
807
 
805
- return asNumber
808
+ const asNumber = Number(val)
809
+ return Number.isFinite(asNumber) && asNumber !== 0 ? asNumber : undefined
806
810
  }
807
811
 
808
812
  export function upperCaseSymbols(symbols?: string[]) {
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, lowerCaseSymbols, upperCaseSymbols } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined, lowerCaseSymbols, upperCaseSymbols } from '../handy.ts'
2
2
  import { BookChange, BookTicker, OptionSummary, Trade } from '../types.ts'
3
3
  import { Mapper } from './mapper.ts'
4
4
 
@@ -285,34 +285,10 @@ export class BinanceEuropeanOptionSummaryMapper implements Mapper<'binance-europ
285
285
 
286
286
  const underlyingIndex = `${base}USDT`
287
287
 
288
- let bestBidPrice = asNumberIfValid(optionInfo.bo)
289
- if (bestBidPrice === 0) {
290
- bestBidPrice = undefined
291
- }
292
-
293
- let bestBidAmount = asNumberIfValid(optionInfo.bq)
294
- if (bestBidAmount === 0) {
295
- bestBidAmount = undefined
296
- }
297
- let bestAskPrice = asNumberIfValid(optionInfo.ao)
298
- if (bestAskPrice === 0) {
299
- bestAskPrice = undefined
300
- }
301
-
302
- let bestAskAmount = asNumberIfValid(optionInfo.aq)
303
- if (bestAskAmount === 0) {
304
- bestAskAmount = undefined
305
- }
306
-
307
- let bestBidIV = bestBidPrice !== undefined ? asNumberIfValid(optionInfo.b) : undefined
308
- if (bestBidIV === -1) {
309
- bestBidIV = undefined
310
- }
311
-
312
- let bestAskIV = bestAskPrice !== undefined ? asNumberIfValid(optionInfo.a) : undefined
313
- if (bestAskIV === -1) {
314
- bestAskIV = undefined
315
- }
288
+ const bestBidPrice = asNonZeroNumberOrUndefined(optionInfo.bo)
289
+ const bestBidIV = bestBidPrice !== undefined ? asNonZeroNumberOrUndefined(optionInfo.b) : undefined
290
+ const bestAskPrice = asNonZeroNumberOrUndefined(optionInfo.ao)
291
+ const bestAskIV = bestAskPrice !== undefined ? asNonZeroNumberOrUndefined(optionInfo.a) : undefined
316
292
 
317
293
  const optionSummary: OptionSummary = {
318
294
  type: 'option_summary',
@@ -323,24 +299,24 @@ export class BinanceEuropeanOptionSummaryMapper implements Mapper<'binance-europ
323
299
  expirationDate,
324
300
 
325
301
  bestBidPrice,
326
- bestBidAmount,
327
- bestBidIV,
302
+ bestBidAmount: asNonZeroNumberOrUndefined(optionInfo.bq),
303
+ bestBidIV: bestBidIV === -1 ? undefined : bestBidIV,
328
304
 
329
305
  bestAskPrice,
330
- bestAskAmount,
331
- bestAskIV,
306
+ bestAskAmount: asNonZeroNumberOrUndefined(optionInfo.aq),
307
+ bestAskIV: bestAskIV === -1 ? undefined : bestAskIV,
332
308
 
333
- lastPrice: asNumberIfValid(optionInfo.c),
309
+ lastPrice: asNonZeroNumberOrUndefined(optionInfo.c),
334
310
 
335
311
  openInterest: this._openInterests.get(optionInfo.s),
336
312
 
337
- markPrice: asNumberIfValid(optionInfo.mp),
313
+ markPrice: asNonZeroNumberOrUndefined(optionInfo.mp),
338
314
  markIV: undefined,
339
315
 
340
- delta: asNumberIfValid(optionInfo.d),
341
- gamma: asNumberIfValid(optionInfo.g),
342
- vega: asNumberIfValid(optionInfo.v),
343
- theta: asNumberIfValid(optionInfo.t),
316
+ delta: asNonZeroNumberOrUndefined(optionInfo.d),
317
+ gamma: asNonZeroNumberOrUndefined(optionInfo.g),
318
+ vega: asNonZeroNumberOrUndefined(optionInfo.v),
319
+ theta: asNonZeroNumberOrUndefined(optionInfo.t),
344
320
  rho: undefined,
345
321
 
346
322
  underlyingPrice: this._indexPrices.get(underlyingIndex),
@@ -434,43 +410,18 @@ export class BinanceEuropeanOptionSummaryMapperV2 implements Mapper<'binance-eur
434
410
  const isPut = optionType === 'P'
435
411
  const underlyingIndex = `${base}USDT`
436
412
 
437
- let bestBidPrice = asNumberIfValid(markData.bo)
438
- if (bestBidPrice === 0) {
439
- bestBidPrice = undefined
440
- }
441
-
442
- let bestBidAmount = asNumberIfValid(markData.bq)
443
- if (bestBidAmount === 0) {
444
- bestBidAmount = undefined
445
- }
446
-
447
- let bestAskPrice = asNumberIfValid(markData.ao)
448
- if (bestAskPrice === 0) {
449
- bestAskPrice = undefined
450
- }
451
-
452
- let bestAskAmount = asNumberIfValid(markData.aq)
453
- if (bestAskAmount === 0) {
454
- bestAskAmount = undefined
455
- }
456
-
457
- let bestBidIV = bestBidPrice !== undefined ? asNumberIfValid(markData.b) : undefined
458
- if (bestBidIV === -1) {
459
- bestBidIV = undefined
460
- }
461
-
462
- let bestAskIV = bestAskPrice !== undefined ? asNumberIfValid(markData.a) : undefined
463
- if (bestAskIV === -1) {
464
- bestAskIV = undefined
465
- }
413
+ const bestBidPrice = asNonZeroNumberOrUndefined(markData.bo)
414
+ const bestBidIV = bestBidPrice !== undefined ? asNonZeroNumberOrUndefined(markData.b) : undefined
415
+ const bestAskPrice = asNonZeroNumberOrUndefined(markData.ao)
416
+ const bestAskIV = bestAskPrice !== undefined ? asNonZeroNumberOrUndefined(markData.a) : undefined
466
417
 
467
- const markPrice = asNumberIfValid(markData.mp)
468
- const markIV = asNumberIfValid(markData.vo)
469
- const delta = asNumberIfValid(markData.d)
470
- const gamma = asNumberIfValid(markData.g)
471
- const vega = asNumberIfValid(markData.v)
472
- const theta = asNumberIfValid(markData.t)
473
- const underlyingPrice = asNumberIfValid(markData.i) // Index price is included in mark price data
418
+ const markPrice = asNonZeroNumberOrUndefined(markData.mp)
419
+ const markIV = asNonZeroNumberOrUndefined(markData.vo)
420
+ const delta = asNonZeroNumberOrUndefined(markData.d)
421
+ const gamma = asNonZeroNumberOrUndefined(markData.g)
422
+ const vega = asNonZeroNumberOrUndefined(markData.v)
423
+ const theta = asNonZeroNumberOrUndefined(markData.t)
424
+ const underlyingPrice = asNonZeroNumberOrUndefined(markData.i) // Index price is included in mark price data
474
425
 
475
426
  const optionSummary: OptionSummary = {
476
427
  type: 'option_summary',
@@ -481,12 +432,12 @@ export class BinanceEuropeanOptionSummaryMapperV2 implements Mapper<'binance-eur
481
432
  expirationDate,
482
433
 
483
434
  bestBidPrice,
484
- bestBidAmount,
485
- bestBidIV,
435
+ bestBidAmount: asNonZeroNumberOrUndefined(markData.bq),
436
+ bestBidIV: bestBidIV === -1 ? undefined : bestBidIV,
486
437
 
487
438
  bestAskPrice,
488
- bestAskAmount,
489
- bestAskIV,
439
+ bestAskAmount: asNonZeroNumberOrUndefined(markData.aq),
440
+ bestAskIV: bestAskIV === -1 ? undefined : bestAskIV,
490
441
 
491
442
  lastPrice: this._lastPrices.get(markData.s),
492
443
 
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined, upperCaseSymbols } from '../handy.ts'
2
2
  import { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, Trade } from '../types.ts'
3
3
  import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
 
@@ -248,10 +248,10 @@ export class BitgetV3BookTickerMapper implements Mapper<'bitget' | 'bitget-futur
248
248
  type: 'book_ticker',
249
249
  symbol: message.arg.symbol,
250
250
  exchange: this._exchange,
251
- askAmount: bboMessage.a[0] ? asNumberIfValid(bboMessage.a[0][1]) : undefined,
252
- askPrice: bboMessage.a[0] ? asNumberIfValid(bboMessage.a[0][0]) : undefined,
253
- bidPrice: bboMessage.b[0] ? asNumberIfValid(bboMessage.b[0][0]) : undefined,
254
- bidAmount: bboMessage.b[0] ? asNumberIfValid(bboMessage.b[0][1]) : undefined,
251
+ askPrice: asNonZeroNumberOrUndefined(bboMessage.a[0]?.[0]),
252
+ askAmount: asNonZeroNumberOrUndefined(bboMessage.a[0]?.[1]),
253
+ bidPrice: asNonZeroNumberOrUndefined(bboMessage.b[0]?.[0]),
254
+ bidAmount: asNonZeroNumberOrUndefined(bboMessage.b[0]?.[1]),
255
255
  timestamp: new Date(Number(bboMessage.ts)),
256
256
  localTimestamp
257
257
  }
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined, upperCaseSymbols } from '../handy.ts'
2
2
  import { BookChange, BookPriceLevel, BookTicker, DerivativeTicker, FilterForExchange, Liquidation, Trade } from '../types.ts'
3
3
  import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
 
@@ -267,11 +267,11 @@ export const bitmexBookTickerMapper: Mapper<'bitmex', BookTicker> = {
267
267
  type: 'book_ticker',
268
268
  symbol: bitmexQuote.symbol,
269
269
  exchange: 'bitmex',
270
- askAmount: asNumberIfValid(bitmexQuote.askSize),
271
- askPrice: asNumberIfValid(bitmexQuote.askPrice),
270
+ askAmount: asNonZeroNumberOrUndefined(bitmexQuote.askSize),
271
+ askPrice: asNonZeroNumberOrUndefined(bitmexQuote.askPrice),
272
272
 
273
- bidPrice: asNumberIfValid(bitmexQuote.bidPrice),
274
- bidAmount: asNumberIfValid(bitmexQuote.bidSize),
273
+ bidPrice: asNonZeroNumberOrUndefined(bitmexQuote.bidPrice),
274
+ bidAmount: asNonZeroNumberOrUndefined(bitmexQuote.bidSize),
275
275
  timestamp: new Date(bitmexQuote.timestamp),
276
276
  localTimestamp: localTimestamp
277
277
  }
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, asNumberOrUndefined } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined, asNumberOrUndefined } from '../handy.ts'
2
2
  import { BookChange, BookPriceLevel, BookTicker, DerivativeTicker, OptionSummary, Trade } from '../types.ts'
3
3
  import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
 
@@ -102,10 +102,10 @@ export class BullishBookTickerMapper implements Mapper<'bullish', BookTicker> {
102
102
  type: 'book_ticker',
103
103
  symbol: message.data.symbol,
104
104
  exchange: 'bullish',
105
- bidPrice: asNumberIfValid(message.data.bid[0]),
106
- bidAmount: asNumberIfValid(message.data.bid[1]),
107
- askPrice: asNumberIfValid(message.data.ask[0]),
108
- askAmount: asNumberIfValid(message.data.ask[1]),
105
+ bidPrice: asNonZeroNumberOrUndefined(message.data.bid[0]),
106
+ bidAmount: asNonZeroNumberOrUndefined(message.data.bid[1]),
107
+ askPrice: asNonZeroNumberOrUndefined(message.data.ask[0]),
108
+ askAmount: asNonZeroNumberOrUndefined(message.data.ask[1]),
109
109
  timestamp: new Date(message.data.datetime),
110
110
  localTimestamp
111
111
  }
@@ -145,7 +145,7 @@ export class BullishDerivativeTickerMapper implements Mapper<'bullish', Derivati
145
145
 
146
146
  *map(message: BullishDerivativeTickerMessage | BullishIndexPriceMessage, localTimestamp: Date): IterableIterator<DerivativeTicker> {
147
147
  if (message.dataType === 'V1TAIndexPrice') {
148
- const price = asNumberIfValid(message.data.price)
148
+ const price = asNonZeroNumberOrUndefined(message.data.price)
149
149
  if (price !== undefined) {
150
150
  this.indexPrices.set(message.data.assetSymbol, {
151
151
  price,
@@ -160,8 +160,8 @@ export class BullishDerivativeTickerMapper implements Mapper<'bullish', Derivati
160
160
  const indexAsset = message.data.symbol.split('-')[0]
161
161
  const indexPrice = this.indexPrices.get(indexAsset)
162
162
 
163
- pendingTickerInfo.updateLastPrice(asNumberIfValid(message.data.last))
164
- pendingTickerInfo.updateMarkPrice(asNumberIfValid(message.data.markPrice))
163
+ pendingTickerInfo.updateLastPrice(asNonZeroNumberOrUndefined(message.data.last))
164
+ pendingTickerInfo.updateMarkPrice(asNonZeroNumberOrUndefined(message.data.markPrice))
165
165
  pendingTickerInfo.updateFundingRate(asNumberOrUndefined(message.data.fundingRate))
166
166
  pendingTickerInfo.updateOpenInterest(asNumberOrUndefined(message.data.openInterest))
167
167
  pendingTickerInfo.updateIndexPrice(indexPrice?.price)
@@ -205,7 +205,7 @@ export class BullishOptionSummaryMapper implements Mapper<'bullish', OptionSumma
205
205
 
206
206
  *map(message: BullishOptionTickerMessage | BullishIndexPriceMessage, localTimestamp: Date): IterableIterator<OptionSummary> {
207
207
  if (message.dataType === 'V1TAIndexPrice') {
208
- const price = asNumberIfValid(message.data.price)
208
+ const price = asNonZeroNumberOrUndefined(message.data.price)
209
209
  if (price !== undefined) {
210
210
  this.indexPrices.set(message.data.assetSymbol, {
211
211
  price,
@@ -229,16 +229,16 @@ export class BullishOptionSummaryMapper implements Mapper<'bullish', OptionSumma
229
229
  optionType: optionType === 'P' ? 'put' : 'call',
230
230
  strikePrice: Number(strikePriceText),
231
231
  expirationDate,
232
- bestBidPrice: asNumberIfValid(message.data.bestBid),
233
- bestBidAmount: asNumberIfValid(message.data.bidVolume),
232
+ bestBidPrice: asNonZeroNumberOrUndefined(message.data.bestBid),
233
+ bestBidAmount: asNonZeroNumberOrUndefined(message.data.bidVolume),
234
234
  bestBidIV: undefined,
235
- bestAskPrice: asNumberIfValid(message.data.bestAsk),
236
- bestAskAmount: asNumberIfValid(message.data.askVolume),
235
+ bestAskPrice: asNonZeroNumberOrUndefined(message.data.bestAsk),
236
+ bestAskAmount: asNonZeroNumberOrUndefined(message.data.askVolume),
237
237
  bestAskIV: undefined,
238
- lastPrice: asNumberIfValid(message.data.last),
238
+ lastPrice: asNonZeroNumberOrUndefined(message.data.last),
239
239
  openInterest: asNumberOrUndefined(message.data.openInterest),
240
240
  markPrice: asNumberOrUndefined(message.data.markPrice),
241
- markIV: asNumberIfValid(message.data.impliedVolatility),
241
+ markIV: asNonZeroNumberOrUndefined(message.data.impliedVolatility),
242
242
  delta: asNumberOrUndefined(message.data.delta),
243
243
  gamma: asNumberOrUndefined(message.data.gamma),
244
244
  vega: asNumberOrUndefined(message.data.vega),
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, upperCaseSymbols } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined, upperCaseSymbols } from '../handy.ts'
2
2
  import { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, OptionSummary, Trade } from '../types.ts'
3
3
  import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
 
@@ -332,27 +332,27 @@ export class BybitV5OptionSummaryMapper implements Mapper<'bybit-options', Optio
332
332
  strikePrice,
333
333
  expirationDate,
334
334
 
335
- bestBidPrice: asNumberIfValid(message.data.bidPrice),
336
- bestBidAmount: asNumberIfValid(message.data.bidSize),
337
- bestBidIV: asNumberIfValid(message.data.bidIv),
335
+ bestBidPrice: asNonZeroNumberOrUndefined(message.data.bidPrice),
336
+ bestBidAmount: asNonZeroNumberOrUndefined(message.data.bidSize),
337
+ bestBidIV: asNonZeroNumberOrUndefined(message.data.bidIv),
338
338
 
339
- bestAskPrice: asNumberIfValid(message.data.askPrice),
340
- bestAskAmount: asNumberIfValid(message.data.askSize),
341
- bestAskIV: asNumberIfValid(message.data.askIv),
339
+ bestAskPrice: asNonZeroNumberOrUndefined(message.data.askPrice),
340
+ bestAskAmount: asNonZeroNumberOrUndefined(message.data.askSize),
341
+ bestAskIV: asNonZeroNumberOrUndefined(message.data.askIv),
342
342
 
343
- lastPrice: asNumberIfValid(message.data.lastPrice),
344
- openInterest: asNumberIfValid(message.data.openInterest),
343
+ lastPrice: asNonZeroNumberOrUndefined(message.data.lastPrice),
344
+ openInterest: asNonZeroNumberOrUndefined(message.data.openInterest),
345
345
 
346
- markPrice: asNumberIfValid(message.data.markPrice),
347
- markIV: asNumberIfValid(message.data.markPriceIv),
346
+ markPrice: asNonZeroNumberOrUndefined(message.data.markPrice),
347
+ markIV: asNonZeroNumberOrUndefined(message.data.markPriceIv),
348
348
 
349
- delta: asNumberIfValid(message.data.delta),
350
- gamma: asNumberIfValid(message.data.gamma),
351
- vega: asNumberIfValid(message.data.vega),
352
- theta: asNumberIfValid(message.data.theta),
349
+ delta: asNonZeroNumberOrUndefined(message.data.delta),
350
+ gamma: asNonZeroNumberOrUndefined(message.data.gamma),
351
+ vega: asNonZeroNumberOrUndefined(message.data.vega),
352
+ theta: asNonZeroNumberOrUndefined(message.data.theta),
353
353
  rho: undefined,
354
354
 
355
- underlyingPrice: asNumberIfValid(message.data.underlyingPrice),
355
+ underlyingPrice: asNonZeroNumberOrUndefined(message.data.underlyingPrice),
356
356
  underlyingIndex: '',
357
357
  timestamp: new Date(message.ts),
358
358
  localTimestamp: localTimestamp
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined } from '../handy.ts'
2
2
  import { BookChange, BookTicker, DerivativeTicker, Liquidation, OptionSummary, Trade } from '../types.ts'
3
3
  import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
 
@@ -200,15 +200,15 @@ export class DeribitOptionSummaryMapper implements Mapper<'deribit', OptionSumma
200
200
  strikePrice,
201
201
  expirationDate,
202
202
 
203
- bestBidPrice: asNumberIfValid(optionInfo.best_bid_price),
204
- bestBidAmount: asNumberIfValid(optionInfo.best_bid_amount),
205
- bestBidIV: asNumberIfValid(optionInfo.bid_iv),
203
+ bestBidPrice: asNonZeroNumberOrUndefined(optionInfo.best_bid_price),
204
+ bestBidAmount: asNonZeroNumberOrUndefined(optionInfo.best_bid_amount),
205
+ bestBidIV: asNonZeroNumberOrUndefined(optionInfo.bid_iv),
206
206
 
207
- bestAskPrice: asNumberIfValid(optionInfo.best_ask_price),
208
- bestAskAmount: asNumberIfValid(optionInfo.best_ask_amount),
209
- bestAskIV: asNumberIfValid(optionInfo.ask_iv),
207
+ bestAskPrice: asNonZeroNumberOrUndefined(optionInfo.best_ask_price),
208
+ bestAskAmount: asNonZeroNumberOrUndefined(optionInfo.best_ask_amount),
209
+ bestAskIV: asNonZeroNumberOrUndefined(optionInfo.ask_iv),
210
210
 
211
- lastPrice: asNumberIfValid(optionInfo.last_price),
211
+ lastPrice: asNonZeroNumberOrUndefined(optionInfo.last_price),
212
212
  openInterest: optionInfo.open_interest,
213
213
 
214
214
  markPrice: optionInfo.mark_price,
@@ -308,10 +308,10 @@ export const deribitBookTickerMapper: Mapper<'deribit', BookTicker> = {
308
308
  symbol: deribitTicker.instrument_name.toUpperCase(),
309
309
  exchange: 'deribit',
310
310
 
311
- askAmount: asNumberIfValid(deribitTicker.best_ask_amount),
312
- askPrice: asNumberIfValid(deribitTicker.best_ask_price),
313
- bidPrice: asNumberIfValid(deribitTicker.best_bid_price),
314
- bidAmount: asNumberIfValid(deribitTicker.best_bid_amount),
311
+ askAmount: asNonZeroNumberOrUndefined(deribitTicker.best_ask_amount),
312
+ askPrice: asNonZeroNumberOrUndefined(deribitTicker.best_ask_price),
313
+ bidPrice: asNonZeroNumberOrUndefined(deribitTicker.best_bid_price),
314
+ bidAmount: asNonZeroNumberOrUndefined(deribitTicker.best_bid_amount),
315
315
 
316
316
  timestamp: new Date(deribitTicker.timestamp),
317
317
  localTimestamp: localTimestamp
@@ -1,4 +1,4 @@
1
- import { asNumberIfValid, parseμs, upperCaseSymbols } from '../handy.ts'
1
+ import { asNonZeroNumberOrUndefined, parseμs, upperCaseSymbols } from '../handy.ts'
2
2
  import { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, Trade } from '../types.ts'
3
3
  import { Mapper, PendingTickerInfoHelper } from './mapper.ts'
4
4
 
@@ -229,11 +229,11 @@ export class FTXBookTickerMapper implements Mapper<'ftx' | 'ftx-us', BookTicker>
229
229
  symbol: ftxTicker.market,
230
230
  exchange: this._exchange,
231
231
 
232
- askAmount: asNumberIfValid(ftxTicker.data.askSize),
233
- askPrice: asNumberIfValid(ftxTicker.data.ask),
232
+ askAmount: asNonZeroNumberOrUndefined(ftxTicker.data.askSize),
233
+ askPrice: asNonZeroNumberOrUndefined(ftxTicker.data.ask),
234
234
 
235
- bidPrice: asNumberIfValid(ftxTicker.data.bid),
236
- bidAmount: asNumberIfValid(ftxTicker.data.bidSize),
235
+ bidPrice: asNonZeroNumberOrUndefined(ftxTicker.data.bid),
236
+ bidAmount: asNonZeroNumberOrUndefined(ftxTicker.data.bidSize),
237
237
  timestamp,
238
238
  localTimestamp: localTimestamp
239
239
  }