@lifi/perps-sdk-provider-ondo 2.2.0 → 4.0.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 (62) hide show
  1. package/dist/cjs/OndoProvider.d.ts.map +1 -1
  2. package/dist/cjs/OndoProvider.js +23 -2
  3. package/dist/cjs/OndoProvider.js.map +1 -1
  4. package/dist/cjs/utils/depositAddress.d.ts +3 -2
  5. package/dist/cjs/utils/depositAddress.d.ts.map +1 -1
  6. package/dist/cjs/utils/depositAddress.js.map +1 -1
  7. package/dist/cjs/utils/index.d.ts +1 -0
  8. package/dist/cjs/utils/index.d.ts.map +1 -1
  9. package/dist/cjs/utils/index.js +3 -1
  10. package/dist/cjs/utils/index.js.map +1 -1
  11. package/dist/cjs/utils/mapPosition.d.ts +3 -3
  12. package/dist/cjs/utils/mapPosition.d.ts.map +1 -1
  13. package/dist/cjs/utils/mapPosition.js +1 -0
  14. package/dist/cjs/utils/mapPosition.js.map +1 -1
  15. package/dist/cjs/utils/transferMargin.d.ts +3 -0
  16. package/dist/cjs/utils/transferMargin.d.ts.map +1 -0
  17. package/dist/cjs/utils/transferMargin.js +7 -0
  18. package/dist/cjs/utils/transferMargin.js.map +1 -0
  19. package/dist/cjs/websocket/OndoWsProvider.d.ts +1 -0
  20. package/dist/cjs/websocket/OndoWsProvider.d.ts.map +1 -1
  21. package/dist/cjs/websocket/OndoWsProvider.js +13 -2
  22. package/dist/cjs/websocket/OndoWsProvider.js.map +1 -1
  23. package/dist/esm/OndoProvider.d.ts.map +1 -1
  24. package/dist/esm/OndoProvider.js +28 -4
  25. package/dist/esm/OndoProvider.js.map +1 -1
  26. package/dist/esm/utils/depositAddress.d.ts +3 -2
  27. package/dist/esm/utils/depositAddress.d.ts.map +1 -1
  28. package/dist/esm/utils/depositAddress.js.map +1 -1
  29. package/dist/esm/utils/index.d.ts +1 -0
  30. package/dist/esm/utils/index.d.ts.map +1 -1
  31. package/dist/esm/utils/index.js +1 -0
  32. package/dist/esm/utils/index.js.map +1 -1
  33. package/dist/esm/utils/mapPosition.d.ts +3 -3
  34. package/dist/esm/utils/mapPosition.d.ts.map +1 -1
  35. package/dist/esm/utils/mapPosition.js +1 -0
  36. package/dist/esm/utils/mapPosition.js.map +1 -1
  37. package/dist/esm/utils/transferMargin.d.ts +10 -0
  38. package/dist/esm/utils/transferMargin.d.ts.map +1 -0
  39. package/dist/esm/utils/transferMargin.js +11 -0
  40. package/dist/esm/utils/transferMargin.js.map +1 -0
  41. package/dist/esm/websocket/OndoWsProvider.d.ts +1 -0
  42. package/dist/esm/websocket/OndoWsProvider.d.ts.map +1 -1
  43. package/dist/esm/websocket/OndoWsProvider.js +15 -4
  44. package/dist/esm/websocket/OndoWsProvider.js.map +1 -1
  45. package/dist/types/OndoProvider.d.ts.map +1 -1
  46. package/dist/types/utils/depositAddress.d.ts +3 -2
  47. package/dist/types/utils/depositAddress.d.ts.map +1 -1
  48. package/dist/types/utils/index.d.ts +1 -0
  49. package/dist/types/utils/index.d.ts.map +1 -1
  50. package/dist/types/utils/mapPosition.d.ts +3 -3
  51. package/dist/types/utils/mapPosition.d.ts.map +1 -1
  52. package/dist/types/utils/transferMargin.d.ts +10 -0
  53. package/dist/types/utils/transferMargin.d.ts.map +1 -0
  54. package/dist/types/websocket/OndoWsProvider.d.ts +1 -0
  55. package/dist/types/websocket/OndoWsProvider.d.ts.map +1 -1
  56. package/package.json +3 -3
  57. package/src/OndoProvider.ts +45 -2
  58. package/src/utils/depositAddress.ts +3 -3
  59. package/src/utils/index.ts +1 -0
  60. package/src/utils/mapPosition.ts +4 -3
  61. package/src/utils/transferMargin.ts +12 -0
  62. package/src/websocket/OndoWsProvider.ts +21 -8
@@ -9,6 +9,7 @@ import {
9
9
  resolveSubscribeQuote,
10
10
  type StorageAdapter,
11
11
  toMarketDisplay,
12
+ toPerpsMarketDisplay,
12
13
  WsProviderBase,
13
14
  type WsProviderFactory,
14
15
  wsLog,
@@ -16,6 +17,7 @@ import {
16
17
  import type {
17
18
  MarketContext,
18
19
  MarketDisplay,
20
+ PerpsMarketDisplay,
19
21
  Subscription,
20
22
  } from '@lifi/perps-types'
21
23
  import type { Address } from 'viem'
@@ -42,7 +44,7 @@ import { OndoSessionExpiredError } from '../utils/apiClient.js'
42
44
  import {
43
45
  classifyAndMapOrders,
44
46
  mapFill,
45
- mapOpenPositions,
47
+ mapPosition,
46
48
  OndoApiClient,
47
49
  } from '../utils/index.js'
48
50
  import { intervalFromBarSpan, mapInterval } from '../utils/ohlcvInterval.js'
@@ -744,6 +746,13 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
744
746
  return known && toMarketDisplay(known)
745
747
  }
746
748
 
749
+ private resolvePerpsMarket = (
750
+ market: string
751
+ ): PerpsMarketDisplay | undefined => {
752
+ const known = this.registry?.get(market)
753
+ return known && toPerpsMarketDisplay(known)
754
+ }
755
+
747
756
  private handleOrders(orders: OndoOrder[]): void {
748
757
  const address = this.accountAddress
749
758
  if (address === undefined) {
@@ -780,15 +789,19 @@ export class OndoWsProvider extends WsProviderBase<SubState> {
780
789
  if (address === undefined) {
781
790
  return
782
791
  }
783
- const known = positions.filter(
784
- (position) => this.resolveMarket(position.market) !== undefined
785
- )
792
+ const mapped = positions.flatMap((position) => {
793
+ if (
794
+ position.direction === 'neutral' ||
795
+ Number.parseFloat(position.netQuantity) === 0
796
+ ) {
797
+ return []
798
+ }
799
+ const market = this.resolvePerpsMarket(position.market)
800
+ return market === undefined ? [] : [mapPosition(position, market)]
801
+ })
786
802
  this.emit(`positions:${address}`, {
787
803
  channel: 'positions',
788
- data: mapOpenPositions(
789
- known,
790
- (market) => this.resolveMarket(market) as MarketDisplay
791
- ),
804
+ data: mapped,
792
805
  })
793
806
  if (this.accountSummary !== undefined) {
794
807
  let marginUsed = 0