@lifi/perps-sdk-provider-lighter 8.0.0 → 8.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 (156) hide show
  1. package/dist/cjs/LighterProvider.d.ts.map +1 -1
  2. package/dist/cjs/LighterProvider.js +3 -0
  3. package/dist/cjs/LighterProvider.js.map +1 -1
  4. package/dist/cjs/constants.d.ts.map +1 -1
  5. package/dist/cjs/constants.js.map +1 -1
  6. package/dist/cjs/signers/LighterKeyStore.d.ts.map +1 -1
  7. package/dist/cjs/signers/LighterKeyStore.js.map +1 -1
  8. package/dist/cjs/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
  9. package/dist/cjs/signers/LighterReadOnlyTokenManager.js.map +1 -1
  10. package/dist/cjs/signers/LighterSigner.d.ts.map +1 -1
  11. package/dist/cjs/signers/LighterSigner.js.map +1 -1
  12. package/dist/cjs/signers/createAuthToken.d.ts.map +1 -1
  13. package/dist/cjs/signers/createAuthToken.js.map +1 -1
  14. package/dist/cjs/signers/wasmLoader.d.ts.map +1 -1
  15. package/dist/cjs/signers/wasmLoader.js.map +1 -1
  16. package/dist/cjs/types/account.d.ts.map +1 -1
  17. package/dist/cjs/types/action.d.ts.map +1 -1
  18. package/dist/cjs/types/action.js.map +1 -1
  19. package/dist/cjs/types/activity.d.ts.map +1 -1
  20. package/dist/cjs/types/asset.d.ts.map +1 -1
  21. package/dist/cjs/types/fill.d.ts.map +1 -1
  22. package/dist/cjs/types/order.d.ts.map +1 -1
  23. package/dist/cjs/types/submit.d.ts.map +1 -1
  24. package/dist/cjs/types/ws.d.ts.map +1 -1
  25. package/dist/cjs/utils/lighterAsset.d.ts.map +1 -1
  26. package/dist/cjs/utils/lighterAsset.js.map +1 -1
  27. package/dist/cjs/utils/ohlcvInterval.d.ts.map +1 -1
  28. package/dist/cjs/utils/ohlcvInterval.js.map +1 -1
  29. package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
  30. package/dist/cjs/utils/transferMargin.js +1 -2
  31. package/dist/cjs/utils/transferMargin.js.map +1 -1
  32. package/dist/cjs/utils/wireEncoding.d.ts.map +1 -1
  33. package/dist/cjs/utils/wireEncoding.js.map +1 -1
  34. package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -1
  35. package/dist/cjs/websocket/LighterWsProvider.js.map +1 -1
  36. package/dist/esm/LighterProvider.d.ts.map +1 -1
  37. package/dist/esm/LighterProvider.js +7 -0
  38. package/dist/esm/LighterProvider.js.map +1 -1
  39. package/dist/esm/constants.d.ts +15 -2
  40. package/dist/esm/constants.d.ts.map +1 -1
  41. package/dist/esm/constants.js +15 -2
  42. package/dist/esm/constants.js.map +1 -1
  43. package/dist/esm/signers/LighterKeyStore.d.ts +31 -2
  44. package/dist/esm/signers/LighterKeyStore.d.ts.map +1 -1
  45. package/dist/esm/signers/LighterKeyStore.js +24 -1
  46. package/dist/esm/signers/LighterKeyStore.js.map +1 -1
  47. package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts +23 -3
  48. package/dist/esm/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
  49. package/dist/esm/signers/LighterReadOnlyTokenManager.js +4 -0
  50. package/dist/esm/signers/LighterReadOnlyTokenManager.js.map +1 -1
  51. package/dist/esm/signers/LighterSigner.d.ts +49 -7
  52. package/dist/esm/signers/LighterSigner.d.ts.map +1 -1
  53. package/dist/esm/signers/LighterSigner.js +11 -1
  54. package/dist/esm/signers/LighterSigner.js.map +1 -1
  55. package/dist/esm/signers/createAuthToken.d.ts +8 -2
  56. package/dist/esm/signers/createAuthToken.d.ts.map +1 -1
  57. package/dist/esm/signers/createAuthToken.js.map +1 -1
  58. package/dist/esm/signers/wasmLoader.d.ts +14 -2
  59. package/dist/esm/signers/wasmLoader.d.ts.map +1 -1
  60. package/dist/esm/signers/wasmLoader.js.map +1 -1
  61. package/dist/esm/types/account.d.ts +58 -8
  62. package/dist/esm/types/account.d.ts.map +1 -1
  63. package/dist/esm/types/action.d.ts +72 -18
  64. package/dist/esm/types/action.d.ts.map +1 -1
  65. package/dist/esm/types/action.js +72 -18
  66. package/dist/esm/types/action.js.map +1 -1
  67. package/dist/esm/types/activity.d.ts +64 -10
  68. package/dist/esm/types/activity.d.ts.map +1 -1
  69. package/dist/esm/types/asset.d.ts +72 -12
  70. package/dist/esm/types/asset.d.ts.map +1 -1
  71. package/dist/esm/types/fill.d.ts +14 -2
  72. package/dist/esm/types/fill.d.ts.map +1 -1
  73. package/dist/esm/types/order.d.ts +27 -4
  74. package/dist/esm/types/order.d.ts.map +1 -1
  75. package/dist/esm/types/submit.d.ts +26 -4
  76. package/dist/esm/types/submit.d.ts.map +1 -1
  77. package/dist/esm/types/ws.d.ts +56 -8
  78. package/dist/esm/types/ws.d.ts.map +1 -1
  79. package/dist/esm/utils/lighterAsset.d.ts +7 -1
  80. package/dist/esm/utils/lighterAsset.d.ts.map +1 -1
  81. package/dist/esm/utils/lighterAsset.js +7 -1
  82. package/dist/esm/utils/lighterAsset.js.map +1 -1
  83. package/dist/esm/utils/ohlcvInterval.d.ts +6 -1
  84. package/dist/esm/utils/ohlcvInterval.d.ts.map +1 -1
  85. package/dist/esm/utils/ohlcvInterval.js +6 -1
  86. package/dist/esm/utils/ohlcvInterval.js.map +1 -1
  87. package/dist/esm/utils/transferMargin.d.ts.map +1 -1
  88. package/dist/esm/utils/transferMargin.js +2 -3
  89. package/dist/esm/utils/transferMargin.js.map +1 -1
  90. package/dist/esm/utils/wireEncoding.d.ts +58 -23
  91. package/dist/esm/utils/wireEncoding.d.ts.map +1 -1
  92. package/dist/esm/utils/wireEncoding.js +58 -23
  93. package/dist/esm/utils/wireEncoding.js.map +1 -1
  94. package/dist/esm/websocket/LighterWsProvider.d.ts +6 -0
  95. package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -1
  96. package/dist/esm/websocket/LighterWsProvider.js +6 -0
  97. package/dist/esm/websocket/LighterWsProvider.js.map +1 -1
  98. package/dist/types/LighterProvider.d.ts.map +1 -1
  99. package/dist/types/constants.d.ts +15 -2
  100. package/dist/types/constants.d.ts.map +1 -1
  101. package/dist/types/signers/LighterKeyStore.d.ts +31 -2
  102. package/dist/types/signers/LighterKeyStore.d.ts.map +1 -1
  103. package/dist/types/signers/LighterReadOnlyTokenManager.d.ts +23 -3
  104. package/dist/types/signers/LighterReadOnlyTokenManager.d.ts.map +1 -1
  105. package/dist/types/signers/LighterSigner.d.ts +49 -7
  106. package/dist/types/signers/LighterSigner.d.ts.map +1 -1
  107. package/dist/types/signers/createAuthToken.d.ts +8 -2
  108. package/dist/types/signers/createAuthToken.d.ts.map +1 -1
  109. package/dist/types/signers/wasmLoader.d.ts +14 -2
  110. package/dist/types/signers/wasmLoader.d.ts.map +1 -1
  111. package/dist/types/types/account.d.ts +58 -8
  112. package/dist/types/types/account.d.ts.map +1 -1
  113. package/dist/types/types/action.d.ts +72 -18
  114. package/dist/types/types/action.d.ts.map +1 -1
  115. package/dist/types/types/activity.d.ts +64 -10
  116. package/dist/types/types/activity.d.ts.map +1 -1
  117. package/dist/types/types/asset.d.ts +72 -12
  118. package/dist/types/types/asset.d.ts.map +1 -1
  119. package/dist/types/types/fill.d.ts +14 -2
  120. package/dist/types/types/fill.d.ts.map +1 -1
  121. package/dist/types/types/order.d.ts +27 -4
  122. package/dist/types/types/order.d.ts.map +1 -1
  123. package/dist/types/types/submit.d.ts +26 -4
  124. package/dist/types/types/submit.d.ts.map +1 -1
  125. package/dist/types/types/ws.d.ts +56 -8
  126. package/dist/types/types/ws.d.ts.map +1 -1
  127. package/dist/types/utils/lighterAsset.d.ts +7 -1
  128. package/dist/types/utils/lighterAsset.d.ts.map +1 -1
  129. package/dist/types/utils/ohlcvInterval.d.ts +6 -1
  130. package/dist/types/utils/ohlcvInterval.d.ts.map +1 -1
  131. package/dist/types/utils/transferMargin.d.ts.map +1 -1
  132. package/dist/types/utils/wireEncoding.d.ts +58 -23
  133. package/dist/types/utils/wireEncoding.d.ts.map +1 -1
  134. package/dist/types/websocket/LighterWsProvider.d.ts +6 -0
  135. package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -1
  136. package/package.json +3 -3
  137. package/src/LighterProvider.ts +8 -0
  138. package/src/constants.ts +15 -2
  139. package/src/signers/LighterKeyStore.ts +31 -2
  140. package/src/signers/LighterReadOnlyTokenManager.ts +23 -3
  141. package/src/signers/LighterSigner.ts +49 -7
  142. package/src/signers/createAuthToken.ts +8 -2
  143. package/src/signers/wasmLoader.ts +14 -2
  144. package/src/types/account.ts +58 -8
  145. package/src/types/action.ts +72 -18
  146. package/src/types/activity.ts +64 -10
  147. package/src/types/asset.ts +72 -12
  148. package/src/types/fill.ts +14 -2
  149. package/src/types/order.ts +27 -4
  150. package/src/types/submit.ts +26 -4
  151. package/src/types/ws.ts +56 -8
  152. package/src/utils/lighterAsset.ts +7 -1
  153. package/src/utils/ohlcvInterval.ts +6 -1
  154. package/src/utils/transferMargin.ts +2 -6
  155. package/src/utils/wireEncoding.ts +58 -23
  156. package/src/websocket/LighterWsProvider.ts +6 -0
@@ -1,13 +1,30 @@
1
- /** @public */
1
+ /**
2
+ * Common envelope fields on every Lighter WebSocket frame.
3
+ *
4
+ * `channel` identifies the subscribed stream when present; `type` is the
5
+ * subscription, update, or control-frame discriminator.
6
+ *
7
+ * @public
8
+ */
2
9
  export type LtWsMessage = {
3
10
  channel?: string;
4
11
  type: string;
5
12
  };
6
- /** @public */
13
+ /**
14
+ * Lighter WebSocket keepalive frame.
15
+ *
16
+ * @public
17
+ */
7
18
  export type LtWsPingMessage = LtWsMessage & {
8
19
  type: 'ping';
9
20
  };
10
- /** @public */
21
+ /**
22
+ * Perpetual-market statistics pushed by Lighter's `market_stats` channels.
23
+ * Price, interest, volume, and funding values are decimal strings; the funding
24
+ * timestamp is a Unix timestamp in milliseconds.
25
+ *
26
+ * @public
27
+ */
11
28
  export type LtWsMarketStats = {
12
29
  market_id: number;
13
30
  index_price: string;
@@ -59,18 +76,32 @@ export type LtWsSpotMarketStatsAllMessage = LtWsMessage & {
59
76
  type: 'subscribed/spot_market_stats' | 'update/spot_market_stats';
60
77
  spot_market_stats?: LtWsSpotMarketStats | Record<string, LtWsSpotMarketStats>;
61
78
  };
62
- /** @public */
79
+ /**
80
+ * One bid or ask level in a Lighter order-book snapshot or delta. Price and
81
+ * size are decimal strings in the market's native precision.
82
+ *
83
+ * @public
84
+ */
63
85
  export type LtWsOrderBookLevel = {
64
86
  price: string;
65
87
  size: string;
66
88
  };
67
- /** @public */
89
+ /**
90
+ * Lighter order-book state containing ask and bid levels. `offset`, when
91
+ * present, identifies the sequence offset used for stateful delta updates.
92
+ *
93
+ * @public
94
+ */
68
95
  export type LtWsOrderBook = {
69
96
  asks: LtWsOrderBookLevel[];
70
97
  bids: LtWsOrderBookLevel[];
71
98
  offset?: number;
72
99
  };
73
- /** @public */
100
+ /**
101
+ * Subscription or update frame carrying a Lighter order-book snapshot/delta.
102
+ *
103
+ * @public
104
+ */
74
105
  export type LtWsOrderBookMessage = LtWsMessage & {
75
106
  type: 'subscribed/order_book' | 'update/order_book';
76
107
  order_book: LtWsOrderBook;
@@ -89,7 +120,11 @@ export type LtWsTrade = {
89
120
  is_maker_ask: boolean;
90
121
  timestamp: number;
91
122
  };
92
- /** @public */
123
+ /**
124
+ * Subscription or update frame carrying public trades from a Lighter market.
125
+ *
126
+ * @public
127
+ */
93
128
  export type LtWsTradeMessage = LtWsMessage & {
94
129
  type: 'subscribed/trade' | 'update/trade';
95
130
  trades?: LtWsTrade[];
@@ -118,7 +153,13 @@ export type LtWsAccountAllOrdersMessage = LtWsMessage & {
118
153
  orders?: Record<string, unknown[]> | unknown[];
119
154
  };
120
155
  };
121
- /** @public */
156
+ /**
157
+ * Authenticated account trade-history frame. Trade arrays may be flat or
158
+ * market-indexed depending on whether the frame is an initial snapshot or
159
+ * update.
160
+ *
161
+ * @public
162
+ */
122
163
  export type LtWsAccountAllTradesMessage = LtWsMessage & {
123
164
  type: 'subscribed/account_all_trades' | 'update/account_all_trades';
124
165
  trades?: Record<string, unknown[]> | unknown[];
@@ -149,6 +190,13 @@ export type LtWsUserStatsMessage = LtWsMessage & {
149
190
  };
150
191
  };
151
192
  };
193
+ /**
194
+ * Authenticated account-position frame. Position and funding maps are keyed
195
+ * by Lighter market index; the provider normalizes the payload before emitting
196
+ * account updates.
197
+ *
198
+ * @public
199
+ */
152
200
  export type LtWsAccountAllPositionsMessage = LtWsMessage & {
153
201
  type: 'subscribed/account_all_positions' | 'update/account_all_positions';
154
202
  positions?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { Asset } from '@lifi/perps-types';
2
- /** @public */
2
+ /**
3
+ * Create the SDK asset descriptor for a Lighter asset identifier and display
4
+ * symbol. Lighter assets do not provide a package-level logo URI, so this
5
+ * helper leaves that field empty.
6
+ *
7
+ * @public
8
+ */
3
9
  export declare const lighterAsset: (id: string, displaySymbol: string) => Asset;
4
10
  //# sourceMappingURL=lighterAsset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lighterAsset.d.ts","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,cAAc;AACd,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,eAAe,MAAM,KAAG,KAK/D,CAAA"}
1
+ {"version":3,"file":"lighterAsset.d.ts","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,MAAM,EAAE,eAAe,MAAM,KAAG,KAK/D,CAAA"}
@@ -1,5 +1,11 @@
1
1
  import { LIGHTER_PROVIDER_KEY } from '../constants.js';
2
- /** @public */
2
+ /**
3
+ * Create the SDK asset descriptor for a Lighter asset identifier and display
4
+ * symbol. Lighter assets do not provide a package-level logo URI, so this
5
+ * helper leaves that field empty.
6
+ *
7
+ * @public
8
+ */
3
9
  export const lighterAsset = (id, displaySymbol) => ({
4
10
  providerId: LIGHTER_PROVIDER_KEY,
5
11
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"lighterAsset.js","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,cAAc;AACd,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,aAAqB,EAAS,EAAE,CAAC,CAAC;IACzE,UAAU,EAAE,oBAAoB;IAChC,EAAE;IACF,aAAa;IACb,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"lighterAsset.js","sourceRoot":"","sources":["../../../src/utils/lighterAsset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,aAAqB,EAAS,EAAE,CAAC,CAAC;IACzE,UAAU,EAAE,oBAAoB;IAChC,EAAE;IACF,aAAa;IACb,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA"}
@@ -1,3 +1,8 @@
1
- /** @public */
1
+ /**
2
+ * Validate and map an SDK OHLCV interval to Lighter's resolution string.
3
+ * Unsupported intervals raise a validation error instead of being rounded.
4
+ *
5
+ * @public
6
+ */
2
7
  export declare const mapInterval: (interval: string) => string;
3
8
  //# sourceMappingURL=ohlcvInterval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ohlcvInterval.d.ts","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AAsBA,cAAc;AACd,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,MAU9C,CAAA"}
1
+ {"version":3,"file":"ohlcvInterval.d.ts","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,MAU9C,CAAA"}
@@ -18,7 +18,12 @@ const LIGHTER_SUPPORTED_INTERVALS = {
18
18
  '1d': '1d',
19
19
  '1w': '1w',
20
20
  };
21
- /** @public */
21
+ /**
22
+ * Validate and map an SDK OHLCV interval to Lighter's resolution string.
23
+ * Unsupported intervals raise a validation error instead of being rounded.
24
+ *
25
+ * @public
26
+ */
22
27
  export const mapInterval = (interval) => {
23
28
  const resolution = LIGHTER_SUPPORTED_INTERVALS[interval];
24
29
  if (!resolution) {
@@ -1 +1 @@
1
- {"version":3,"file":"ohlcvInterval.js","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD;;;;;;GAMG;AACH,MAAM,2BAA2B,GAA2B;IAC1D,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAA;AAED,cAAc;AACd,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IACxD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,4CAA4C,QAAQ,KAAK;YACvD,cAAc,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvE,CAAA;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
1
+ {"version":3,"file":"ohlcvInterval.js","sourceRoot":"","sources":["../../../src/utils/ohlcvInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD;;;;;;GAMG;AACH,MAAM,2BAA2B,GAA2B;IAC1D,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IACxD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,4CAA4C,QAAQ,KAAK;YACvD,cAAc,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvE,CAAA;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEb,KAAK,yBAAyB,EAC/B,MAAM,mBAAmB,CAAA;AAK1B;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,GACjB,yBAAyB,GAAG,SAAS,CAcvC"}
1
+ {"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAA;AAK1B;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,GACjB,yBAAyB,GAAG,SAAS,CAWvC"}
@@ -1,4 +1,4 @@
1
- import { MarginMode, PositionMarginAdjustment, } from '@lifi/perps-types';
1
+ import { positionSupportsMarginAdjustment, } from '@lifi/perps-types';
2
2
  import { toPositiveRequiredBig } from './decimal.js';
3
3
  const AMOUNT_INCREMENT = '0.000001';
4
4
  /**
@@ -10,8 +10,7 @@ const AMOUNT_INCREMENT = '0.000001';
10
10
  * @public
11
11
  */
12
12
  export function positionMarginConstraints(position) {
13
- if (position.marginMode !== MarginMode.ISOLATED ||
14
- position.market.positionMarginAdjustment === PositionMarginAdjustment.NONE) {
13
+ if (!positionSupportsMarginAdjustment(position)) {
15
14
  return undefined;
16
15
  }
17
16
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,wBAAwB,GAEzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEpD,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAkB;IAElB,IACE,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ;QAC3C,QAAQ,CAAC,MAAM,CAAC,wBAAwB,KAAK,wBAAwB,CAAC,IAAI,EAC1E,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO;QACL,wBAAwB,EAAE,qBAAqB,CAC7C,QAAQ,CAAC,wBAAwB,EACjC,0BAA0B,CAC3B,CAAC,OAAO,EAAE;QACX,eAAe,EAAE,gBAAgB;KAClC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"transferMargin.js","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gCAAgC,GACjC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEpD,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAkB;IAElB,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO;QACL,wBAAwB,EAAE,qBAAqB,CAC7C,QAAQ,CAAC,wBAAwB,EACjC,0BAA0B,CAC3B,CAAC,OAAO,EAAE;QACX,eAAe,EAAE,gBAAgB;KAClC,CAAA;AACH,CAAC"}
@@ -1,49 +1,84 @@
1
1
  /**
2
- * Lighter wire encoding for the WASM signer: scaled-integer decimal values,
3
- * basis-point margin fractions, and order-type/TIF/expiry resolution
4
- * mirroring the lighter-go signer's rules.
2
+ * Lighter wire encoding for the WASM signer: basis-point margin fractions and
3
+ * order-type/time-in-force/expiry resolution mirroring lighter-go's rules.
5
4
  */
6
5
  /**
7
- * Lighter uses basis-points (1/10000) for margin fractions.
8
- * Convert to a decimal multiplier: 1000 → 0.1 (10x leverage).
6
+ * Convert Lighter's initial-margin fraction to the largest whole-number
7
+ * leverage exposed by the provider.
8
+ *
9
+ * Lighter expresses margin fractions in basis points (`10_000` = 100%), so
10
+ * the conversion is `floor(10_000 / fraction)`. Non-finite or non-positive
11
+ * input uses the safe `1x` fallback.
12
+ *
13
+ * @param fraction - Lighter's basis-point initial-margin fraction.
14
+ * @returns The floored maximum leverage, or `1` for invalid input.
9
15
  * @public
10
16
  */
11
17
  export declare const marginFractionToMaxLeverage: (fraction: number) => number;
12
18
  /**
13
- * Convert leverage to margin fraction in basis points for WASM signer.
19
+ * Convert requested leverage to Lighter's basis-point margin fraction.
20
+ *
21
+ * The signer expects `round(10_000 / leverage)`, where the result is the
22
+ * margin requirement in basis points.
23
+ *
24
+ * @param leverage - Requested leverage multiplier.
25
+ * @returns The rounded basis-point margin fraction.
26
+ * @throws {PerpsError} With `ValidationError` when leverage is less than
27
+ * or equal to zero.
14
28
  * @public
15
29
  */
16
30
  export declare const leverageToFraction: (leverage: number) => number;
17
31
  /**
18
- * Map our OrderType enum to Lighter's integer order type.
32
+ * Map a LI.FI `OrderType` value to Lighter's integer wire type.
33
+ *
34
+ * Supported mappings are LIMIT → 0, MARKET → 1, STOP_MARKET → 2,
35
+ * STOP_LIMIT → 3, TAKE_PROFIT_MARKET → 4, and TAKE_PROFIT_LIMIT → 5.
36
+ * Omitted or unknown values fall back to LIMIT.
37
+ *
38
+ * @param type - LI.FI order type value.
39
+ * @returns The corresponding Lighter order-type integer.
19
40
  * @public
20
41
  */
21
42
  export declare const mapOrderTypeToInt: (type?: string) => number;
22
43
  /**
23
- * Lighter pairs each `order_type` with a permitted set of `time_in_force`
24
- * values: market-style orders (MARKET, STOP_MARKET, TAKE_PROFIT_MARKET) are
25
- * IOC by definition; limit-style orders may carry any TIF. The Go WASM
26
- * signer rejects mismatches with `OrderTimeInForce is not valid`. Resolve
27
- * the caller's optional `timeInForce` against the order type so unspecified
28
- * values land on the correct default and explicit values are validated up
29
- * front.
44
+ * Resolve a Lighter `time_in_force` value that is valid for an order type.
45
+ *
46
+ * Market-style orders (MARKET, STOP_MARKET, TAKE_PROFIT_MARKET) are IOC-only.
47
+ * Limit-style orders default to GTC when no TIF is supplied. An explicit
48
+ * non-IOC TIF on a market-style order raises a validation error. For
49
+ * limit-style orders, unknown TIF strings use the GTC fallback from
50
+ * {@link mapTimeInForceToInt}.
51
+ *
52
+ * @param orderTypeInt - Lighter order-type integer.
53
+ * @param tif - Optional LI.FI time-in-force value.
54
+ * @returns The validated Lighter time-in-force integer.
55
+ * @throws {PerpsError} With `ValidationError` for a market-style/TIF mismatch.
30
56
  * @public
31
57
  */
32
58
  export declare const resolveTimeInForce: (orderTypeInt: number, tif?: string) => number;
33
59
  /**
34
- * Map our TimeInForce enum to Lighter's integer time-in-force.
60
+ * Map a LI.FI time-in-force value to Lighter's integer wire value.
61
+ *
62
+ * IOC maps to 0, GTC maps to 1, and POST_ONLY maps to 2. Omitted or unknown
63
+ * values fall back to GTC.
64
+ *
65
+ * @param tif - LI.FI time-in-force value.
66
+ * @returns The corresponding Lighter time-in-force integer.
35
67
  * @public
36
68
  */
37
69
  export declare const mapTimeInForceToInt: (tif?: string) => number;
38
70
  /**
39
- * Pick the `order_expiry` value Lighter expects for a given TIF on a
40
- * regular limit order. `lighter-go/types/txtypes/create_order.go:121-128`
41
- * enforces:
42
- * - IOC limit orders → `OrderExpiry == NilOrderExpiry (0)`
43
- * - non-IOC limit orders → `OrderExpiry != NilOrderExpiry`
44
- * For non-IOC we pass the `-1` sentinel, which the WASM signer rewrites
45
- * to `now + 28d` (absolute ms). Trigger orders take a different rule —
46
- * see {@link LT_DEFAULT_ORDER_EXPIRY} call sites.
71
+ * Select the `order_expiry` sentinel required for a regular Lighter limit
72
+ * order from its resolved time-in-force.
73
+ *
74
+ * IOC uses Lighter's nil expiry (`0`). Every other TIF uses
75
+ * `LT_DEFAULT_ORDER_EXPIRY` (`-1`), which the WASM signer expands to its
76
+ * canonical future expiry (`now + 28d`) as an absolute Unix-millisecond
77
+ * timestamp. Trigger-order expiry handling is provider-specific; see
78
+ * {@link LT_DEFAULT_ORDER_EXPIRY} and its call sites.
79
+ *
80
+ * @param tifInt - Lighter time-in-force integer.
81
+ * @returns `0` for IOC, otherwise the default-expiry sentinel.
47
82
  * @public
48
83
  */
49
84
  export declare const orderExpiryForTif: (tifInt: number) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"wireEncoding.d.ts","sourceRoot":"","sources":["../../../src/utils/wireEncoding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,MAK9D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MAQrD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAUjD,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,EACpB,MAAM,MAAM,KACX,MAgBF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAOlD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAKlD,CAAA"}
1
+ {"version":3,"file":"wireEncoding.d.ts","sourceRoot":"","sources":["../../../src/utils/wireEncoding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B,GAAI,UAAU,MAAM,KAAG,MAK9D,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MAQrD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAUjD,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,EACpB,MAAM,MAAM,KACX,MAgBF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAOlD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAKlD,CAAA"}
@@ -1,14 +1,20 @@
1
1
  /**
2
- * Lighter wire encoding for the WASM signer: scaled-integer decimal values,
3
- * basis-point margin fractions, and order-type/TIF/expiry resolution
4
- * mirroring the lighter-go signer's rules.
2
+ * Lighter wire encoding for the WASM signer: basis-point margin fractions and
3
+ * order-type/time-in-force/expiry resolution mirroring lighter-go's rules.
5
4
  */
6
5
  import { PerpsError } from '@lifi/perps-sdk';
7
6
  import { PerpsErrorCode } from '@lifi/perps-types';
8
7
  import { LT_DEFAULT_ORDER_EXPIRY, LT_ORDER_TYPE_LIMIT, LT_ORDER_TYPE_MARKET, LT_ORDER_TYPE_STOP_LOSS, LT_ORDER_TYPE_STOP_LOSS_LIMIT, LT_ORDER_TYPE_TAKE_PROFIT, LT_ORDER_TYPE_TAKE_PROFIT_LIMIT, LT_TIME_IN_FORCE_GTC, LT_TIME_IN_FORCE_IOC, LT_TIME_IN_FORCE_POST_ONLY, } from '../types/action.js';
9
8
  /**
10
- * Lighter uses basis-points (1/10000) for margin fractions.
11
- * Convert to a decimal multiplier: 1000 → 0.1 (10x leverage).
9
+ * Convert Lighter's initial-margin fraction to the largest whole-number
10
+ * leverage exposed by the provider.
11
+ *
12
+ * Lighter expresses margin fractions in basis points (`10_000` = 100%), so
13
+ * the conversion is `floor(10_000 / fraction)`. Non-finite or non-positive
14
+ * input uses the safe `1x` fallback.
15
+ *
16
+ * @param fraction - Lighter's basis-point initial-margin fraction.
17
+ * @returns The floored maximum leverage, or `1` for invalid input.
12
18
  * @public
13
19
  */
14
20
  export const marginFractionToMaxLeverage = (fraction) => {
@@ -18,7 +24,15 @@ export const marginFractionToMaxLeverage = (fraction) => {
18
24
  return Math.floor(10_000 / fraction);
19
25
  };
20
26
  /**
21
- * Convert leverage to margin fraction in basis points for WASM signer.
27
+ * Convert requested leverage to Lighter's basis-point margin fraction.
28
+ *
29
+ * The signer expects `round(10_000 / leverage)`, where the result is the
30
+ * margin requirement in basis points.
31
+ *
32
+ * @param leverage - Requested leverage multiplier.
33
+ * @returns The rounded basis-point margin fraction.
34
+ * @throws {PerpsError} With `ValidationError` when leverage is less than
35
+ * or equal to zero.
22
36
  * @public
23
37
  */
24
38
  export const leverageToFraction = (leverage) => {
@@ -28,7 +42,14 @@ export const leverageToFraction = (leverage) => {
28
42
  return Math.round(10_000 / leverage);
29
43
  };
30
44
  /**
31
- * Map our OrderType enum to Lighter's integer order type.
45
+ * Map a LI.FI `OrderType` value to Lighter's integer wire type.
46
+ *
47
+ * Supported mappings are LIMIT → 0, MARKET → 1, STOP_MARKET → 2,
48
+ * STOP_LIMIT → 3, TAKE_PROFIT_MARKET → 4, and TAKE_PROFIT_LIMIT → 5.
49
+ * Omitted or unknown values fall back to LIMIT.
50
+ *
51
+ * @param type - LI.FI order type value.
52
+ * @returns The corresponding Lighter order-type integer.
32
53
  * @public
33
54
  */
34
55
  export const mapOrderTypeToInt = (type) => {
@@ -43,13 +64,18 @@ export const mapOrderTypeToInt = (type) => {
43
64
  return map[type ?? 'LIMIT'] ?? LT_ORDER_TYPE_LIMIT;
44
65
  };
45
66
  /**
46
- * Lighter pairs each `order_type` with a permitted set of `time_in_force`
47
- * values: market-style orders (MARKET, STOP_MARKET, TAKE_PROFIT_MARKET) are
48
- * IOC by definition; limit-style orders may carry any TIF. The Go WASM
49
- * signer rejects mismatches with `OrderTimeInForce is not valid`. Resolve
50
- * the caller's optional `timeInForce` against the order type so unspecified
51
- * values land on the correct default and explicit values are validated up
52
- * front.
67
+ * Resolve a Lighter `time_in_force` value that is valid for an order type.
68
+ *
69
+ * Market-style orders (MARKET, STOP_MARKET, TAKE_PROFIT_MARKET) are IOC-only.
70
+ * Limit-style orders default to GTC when no TIF is supplied. An explicit
71
+ * non-IOC TIF on a market-style order raises a validation error. For
72
+ * limit-style orders, unknown TIF strings use the GTC fallback from
73
+ * {@link mapTimeInForceToInt}.
74
+ *
75
+ * @param orderTypeInt - Lighter order-type integer.
76
+ * @param tif - Optional LI.FI time-in-force value.
77
+ * @returns The validated Lighter time-in-force integer.
78
+ * @throws {PerpsError} With `ValidationError` for a market-style/TIF mismatch.
53
79
  * @public
54
80
  */
55
81
  export const resolveTimeInForce = (orderTypeInt, tif) => {
@@ -66,7 +92,13 @@ export const resolveTimeInForce = (orderTypeInt, tif) => {
66
92
  return requested ?? LT_TIME_IN_FORCE_GTC;
67
93
  };
68
94
  /**
69
- * Map our TimeInForce enum to Lighter's integer time-in-force.
95
+ * Map a LI.FI time-in-force value to Lighter's integer wire value.
96
+ *
97
+ * IOC maps to 0, GTC maps to 1, and POST_ONLY maps to 2. Omitted or unknown
98
+ * values fall back to GTC.
99
+ *
100
+ * @param tif - LI.FI time-in-force value.
101
+ * @returns The corresponding Lighter time-in-force integer.
70
102
  * @public
71
103
  */
72
104
  export const mapTimeInForceToInt = (tif) => {
@@ -78,14 +110,17 @@ export const mapTimeInForceToInt = (tif) => {
78
110
  return map[tif ?? 'GTC'] ?? LT_TIME_IN_FORCE_GTC;
79
111
  };
80
112
  /**
81
- * Pick the `order_expiry` value Lighter expects for a given TIF on a
82
- * regular limit order. `lighter-go/types/txtypes/create_order.go:121-128`
83
- * enforces:
84
- * - IOC limit orders → `OrderExpiry == NilOrderExpiry (0)`
85
- * - non-IOC limit orders → `OrderExpiry != NilOrderExpiry`
86
- * For non-IOC we pass the `-1` sentinel, which the WASM signer rewrites
87
- * to `now + 28d` (absolute ms). Trigger orders take a different rule —
88
- * see {@link LT_DEFAULT_ORDER_EXPIRY} call sites.
113
+ * Select the `order_expiry` sentinel required for a regular Lighter limit
114
+ * order from its resolved time-in-force.
115
+ *
116
+ * IOC uses Lighter's nil expiry (`0`). Every other TIF uses
117
+ * `LT_DEFAULT_ORDER_EXPIRY` (`-1`), which the WASM signer expands to its
118
+ * canonical future expiry (`now + 28d`) as an absolute Unix-millisecond
119
+ * timestamp. Trigger-order expiry handling is provider-specific; see
120
+ * {@link LT_DEFAULT_ORDER_EXPIRY} and its call sites.
121
+ *
122
+ * @param tifInt - Lighter time-in-force integer.
123
+ * @returns `0` for IOC, otherwise the default-expiry sentinel.
89
124
  * @public
90
125
  */
91
126
  export const orderExpiryForTif = (tifInt) => {
@@ -1 +1 @@
1
- {"version":3,"file":"wireEncoding.js","sourceRoot":"","sources":["../../../src/utils/wireEncoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wireEncoding.js","sourceRoot":"","sources":["../../../src/utils/wireEncoding.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,12 @@ export declare class LighterWsProvider extends WsProviderBase<SubState> {
69
69
  * `resolveAuthToken`. `undefined` when neither is available.
70
70
  */
71
71
  private authTokenResolver;
72
+ /**
73
+ * Subscribe to a live quote stream resolved through the registered Lighter
74
+ * market registry. Returns an unsubscribe function; quote subscription
75
+ * requires the provider to be constructed through `lighterWsProvider` with a
76
+ * bound {@link PerpsSDKClient}.
77
+ */
72
78
  subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
73
79
  protected openChannel(sub: Subscription): Promise<() => void>;
74
80
  protected onClose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"LighterWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/LighterWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAKlB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AA4EnC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AAEhC,UAAU,QAAQ;IAChB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;CACnB;AAkBD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;CAC5C;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAE5B;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,cAAc,CAAoC;IAE1D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2C;IAE9E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IAErD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;gBAGxE,KAAK,GAAE,MAA+B,EACtC,WAAW,GAAE,MAA6B,EAC1C,OAAO,GAAE,wBAA6B,EACtC,MAAM,CAAC,EAAE,cAAc;IAsBzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWnB,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;cAkBN,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;cA4ChD,OAAO,IAAI,IAAI;cAMlB,aAAa,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,OAAO,GACR,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;YA2B5B,cAAc;YAsFd,mBAAmB;YAqBnB,iBAAiB;IAK/B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAqB1C,OAAO,CAAC,QAAQ;IAkFhB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,eAAe;IAuDvB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,sBAAsB;IAiC9B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,mBAAmB;CAc5B;AAkID;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,GAC3B,UAAU,wBAAwB,KAAG,iBAEmB,CAAA"}
1
+ {"version":3,"file":"LighterWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/LighterWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAKlB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AA4EnC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;AAEhC,UAAU,QAAQ;IAChB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAA;CACnB;AAkBD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;CAC5C;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAE5B;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,cAAc,CAAoC;IAE1D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2C;IAE9E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IAErD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;gBAGxE,KAAK,GAAE,MAA+B,EACtC,WAAW,GAAE,MAA6B,EAC1C,OAAO,GAAE,wBAA6B,EACtC,MAAM,CAAC,EAAE,cAAc;IAsBzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;OAKG;IACG,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;cAkBN,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;cA4ChD,OAAO,IAAI,IAAI;cAMlB,aAAa,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,OAAO,GACR,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;YA2B5B,cAAc;YAsFd,mBAAmB;YAqBnB,iBAAiB;IAK/B,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAqB1C,OAAO,CAAC,QAAQ;IAkFhB,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,eAAe;IAuDvB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,sBAAsB;IAiC9B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,mBAAmB;CAc5B;AAkID;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,GAC3B,UAAU,wBAAwB,KAAG,iBAEmB,CAAA"}
@@ -84,6 +84,12 @@ export class LighterWsProvider extends WsProviderBase {
84
84
  }
85
85
  return undefined;
86
86
  }
87
+ /**
88
+ * Subscribe to a live quote stream resolved through the registered Lighter
89
+ * market registry. Returns an unsubscribe function; quote subscription
90
+ * requires the provider to be constructed through `lighterWsProvider` with a
91
+ * bound {@link PerpsSDKClient}.
92
+ */
87
93
  async subscribeQuote(params, onQuote) {
88
94
  const client = this.client;
89
95
  if (client === undefined) {