@lifi/perps-sdk 20.0.0 → 20.1.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.
Files changed (93) hide show
  1. package/README.md +20 -0
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/index.js +7 -2
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/registry/assetRegistry.d.ts +2 -1
  7. package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
  8. package/dist/cjs/registry/assetRegistry.js +4 -2
  9. package/dist/cjs/registry/assetRegistry.js.map +1 -1
  10. package/dist/cjs/registry/marketRegistry.d.ts +2 -1
  11. package/dist/cjs/registry/marketRegistry.d.ts.map +1 -1
  12. package/dist/cjs/registry/marketRegistry.js +4 -2
  13. package/dist/cjs/registry/marketRegistry.js.map +1 -1
  14. package/dist/cjs/registry/referenceDataRegistry.d.ts +5 -1
  15. package/dist/cjs/registry/referenceDataRegistry.d.ts.map +1 -1
  16. package/dist/cjs/registry/referenceDataRegistry.js +65 -5
  17. package/dist/cjs/registry/referenceDataRegistry.js.map +1 -1
  18. package/dist/cjs/transport/request.d.ts +1 -0
  19. package/dist/cjs/transport/request.d.ts.map +1 -1
  20. package/dist/cjs/transport/request.js +6 -2
  21. package/dist/cjs/transport/request.js.map +1 -1
  22. package/dist/cjs/utils/decimal.d.ts +1 -0
  23. package/dist/cjs/utils/decimal.d.ts.map +1 -1
  24. package/dist/cjs/utils/decimal.js +4 -1
  25. package/dist/cjs/utils/decimal.js.map +1 -1
  26. package/dist/cjs/utils/orderEntry.d.ts +6 -0
  27. package/dist/cjs/utils/orderEntry.d.ts.map +1 -0
  28. package/dist/cjs/utils/orderEntry.js +20 -0
  29. package/dist/cjs/utils/orderEntry.js.map +1 -0
  30. package/dist/cjs/version.d.ts +1 -1
  31. package/dist/cjs/version.js +1 -1
  32. package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -1
  33. package/dist/cjs/websocket/WsProviderBase.js +11 -3
  34. package/dist/cjs/websocket/WsProviderBase.js.map +1 -1
  35. package/dist/esm/index.d.ts +1 -0
  36. package/dist/esm/index.d.ts.map +1 -1
  37. package/dist/esm/index.js +1 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/registry/assetRegistry.d.ts +2 -1
  40. package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
  41. package/dist/esm/registry/assetRegistry.js +4 -2
  42. package/dist/esm/registry/assetRegistry.js.map +1 -1
  43. package/dist/esm/registry/marketRegistry.d.ts +2 -1
  44. package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
  45. package/dist/esm/registry/marketRegistry.js +4 -2
  46. package/dist/esm/registry/marketRegistry.js.map +1 -1
  47. package/dist/esm/registry/referenceDataRegistry.d.ts +6 -6
  48. package/dist/esm/registry/referenceDataRegistry.d.ts.map +1 -1
  49. package/dist/esm/registry/referenceDataRegistry.js +68 -10
  50. package/dist/esm/registry/referenceDataRegistry.js.map +1 -1
  51. package/dist/esm/transport/request.d.ts +2 -0
  52. package/dist/esm/transport/request.d.ts.map +1 -1
  53. package/dist/esm/transport/request.js +6 -2
  54. package/dist/esm/transport/request.js.map +1 -1
  55. package/dist/esm/utils/decimal.d.ts +5 -0
  56. package/dist/esm/utils/decimal.d.ts.map +1 -1
  57. package/dist/esm/utils/decimal.js +7 -0
  58. package/dist/esm/utils/decimal.js.map +1 -1
  59. package/dist/esm/utils/orderEntry.d.ts +26 -0
  60. package/dist/esm/utils/orderEntry.d.ts.map +1 -0
  61. package/dist/esm/utils/orderEntry.js +34 -0
  62. package/dist/esm/utils/orderEntry.js.map +1 -0
  63. package/dist/esm/version.d.ts +1 -1
  64. package/dist/esm/version.js +1 -1
  65. package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -1
  66. package/dist/esm/websocket/WsProviderBase.js +11 -3
  67. package/dist/esm/websocket/WsProviderBase.js.map +1 -1
  68. package/dist/types/index.d.ts +1 -0
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/types/registry/assetRegistry.d.ts +2 -1
  71. package/dist/types/registry/assetRegistry.d.ts.map +1 -1
  72. package/dist/types/registry/marketRegistry.d.ts +2 -1
  73. package/dist/types/registry/marketRegistry.d.ts.map +1 -1
  74. package/dist/types/registry/referenceDataRegistry.d.ts +6 -6
  75. package/dist/types/registry/referenceDataRegistry.d.ts.map +1 -1
  76. package/dist/types/transport/request.d.ts +2 -0
  77. package/dist/types/transport/request.d.ts.map +1 -1
  78. package/dist/types/utils/decimal.d.ts +5 -0
  79. package/dist/types/utils/decimal.d.ts.map +1 -1
  80. package/dist/types/utils/orderEntry.d.ts +26 -0
  81. package/dist/types/utils/orderEntry.d.ts.map +1 -0
  82. package/dist/types/version.d.ts +1 -1
  83. package/dist/types/websocket/WsProviderBase.d.ts.map +1 -1
  84. package/package.json +1 -1
  85. package/src/index.ts +6 -0
  86. package/src/registry/assetRegistry.ts +7 -5
  87. package/src/registry/marketRegistry.ts +7 -5
  88. package/src/registry/referenceDataRegistry.ts +89 -11
  89. package/src/transport/request.ts +12 -2
  90. package/src/utils/decimal.ts +8 -0
  91. package/src/utils/orderEntry.ts +38 -0
  92. package/src/version.ts +1 -1
  93. package/src/websocket/WsProviderBase.ts +11 -3
@@ -199,7 +199,9 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
199
199
  try {
200
200
  await this.sendSubscribe(state)
201
201
  } catch (err) {
202
- this.wireSubs.delete(key)
202
+ if (this.wireSubs.get(key) === state) {
203
+ this.wireSubs.delete(key)
204
+ }
203
205
  throw err
204
206
  }
205
207
  }
@@ -304,7 +306,11 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
304
306
  try {
305
307
  const teardown = await opening
306
308
  const current = this.channels.get(key)
307
- if (current === undefined || current.listeners.size === 0) {
309
+ if (current !== entry) {
310
+ teardown()
311
+ return
312
+ }
313
+ if (current.listeners.size === 0) {
308
314
  // Every listener released while opening — unwind immediately.
309
315
  teardown()
310
316
  this.channels.delete(key)
@@ -315,7 +321,9 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
315
321
  } catch (err) {
316
322
  // Open failed: drop the channel so all (concurrent) subscribers reject
317
323
  // cleanly and a later subscribe re-opens.
318
- this.channels.delete(key)
324
+ if (this.channels.get(key) === entry) {
325
+ this.channels.delete(key)
326
+ }
319
327
  throw err
320
328
  }
321
329
  }