@lifi/perps-sdk 5.0.0 → 6.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 (281) hide show
  1. package/dist/cjs/client/PerpsClient.d.ts +7 -1
  2. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  3. package/dist/cjs/client/PerpsClient.js +10 -0
  4. package/dist/cjs/client/PerpsClient.js.map +1 -1
  5. package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
  6. package/dist/cjs/errors/PerpsError.js.map +1 -1
  7. package/dist/cjs/index.d.ts +5 -3
  8. package/dist/cjs/index.d.ts.map +1 -1
  9. package/dist/cjs/index.js +6 -4
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
  12. package/dist/cjs/registry/assetRegistry.js.map +1 -1
  13. package/dist/cjs/registry/marketRegistry.d.ts +2 -1
  14. package/dist/cjs/registry/marketRegistry.d.ts.map +1 -1
  15. package/dist/cjs/registry/marketRegistry.js +24 -1
  16. package/dist/cjs/registry/marketRegistry.js.map +1 -1
  17. package/dist/cjs/services/createAction.d.ts.map +1 -1
  18. package/dist/cjs/services/createAction.js.map +1 -1
  19. package/dist/cjs/services/executeAction.d.ts.map +1 -1
  20. package/dist/cjs/services/executeAction.js.map +1 -1
  21. package/dist/cjs/services/getActivity.d.ts.map +1 -1
  22. package/dist/cjs/services/getActivity.js.map +1 -1
  23. package/dist/cjs/services/getFills.d.ts.map +1 -1
  24. package/dist/cjs/services/getFills.js.map +1 -1
  25. package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
  26. package/dist/cjs/services/getOhlcv.js.map +1 -1
  27. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  28. package/dist/cjs/services/getOrder.js.map +1 -1
  29. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  30. package/dist/cjs/services/getOrders.js.map +1 -1
  31. package/dist/cjs/services/getPositions.d.ts.map +1 -1
  32. package/dist/cjs/services/getPositions.js.map +1 -1
  33. package/dist/cjs/services/getQuote.d.ts.map +1 -1
  34. package/dist/cjs/services/getQuote.js.map +1 -1
  35. package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -1
  36. package/dist/cjs/storage/parseStoredRecord.js.map +1 -1
  37. package/dist/cjs/storage/types.d.ts.map +1 -1
  38. package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -1
  39. package/dist/cjs/transport/fetchWithRetry.js.map +1 -1
  40. package/dist/cjs/transport/retryPolicy.d.ts.map +1 -1
  41. package/dist/cjs/transport/retryPolicy.js.map +1 -1
  42. package/dist/cjs/types/api.d.ts +2 -1
  43. package/dist/cjs/types/api.d.ts.map +1 -1
  44. package/dist/cjs/types/config.d.ts.map +1 -1
  45. package/dist/cjs/types/deposit.d.ts.map +1 -1
  46. package/dist/cjs/types/provider.d.ts +7 -1
  47. package/dist/cjs/types/provider.d.ts.map +1 -1
  48. package/dist/cjs/utils/calculations.d.ts +0 -5
  49. package/dist/cjs/utils/calculations.d.ts.map +1 -1
  50. package/dist/cjs/utils/calculations.js +0 -9
  51. package/dist/cjs/utils/calculations.js.map +1 -1
  52. package/dist/cjs/utils/format.d.ts.map +1 -1
  53. package/dist/cjs/utils/format.js.map +1 -1
  54. package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
  55. package/dist/cjs/utils/orderClassification.js.map +1 -1
  56. package/dist/cjs/utils/transferMargin.d.ts +7 -0
  57. package/dist/cjs/utils/transferMargin.d.ts.map +1 -0
  58. package/dist/cjs/utils/transferMargin.js +50 -0
  59. package/dist/cjs/utils/transferMargin.js.map +1 -0
  60. package/dist/cjs/version.d.ts +1 -1
  61. package/dist/cjs/version.js +1 -1
  62. package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
  63. package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
  64. package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -1
  65. package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -1
  66. package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -1
  67. package/dist/cjs/websocket/WsProviderBase.js.map +1 -1
  68. package/dist/cjs/websocket/cachePromise.d.ts.map +1 -1
  69. package/dist/cjs/websocket/cachePromise.js.map +1 -1
  70. package/dist/cjs/websocket/types.d.ts.map +1 -1
  71. package/dist/esm/client/PerpsClient.d.ts +24 -1
  72. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  73. package/dist/esm/client/PerpsClient.js +27 -0
  74. package/dist/esm/client/PerpsClient.js.map +1 -1
  75. package/dist/esm/errors/PerpsError.d.ts +7 -0
  76. package/dist/esm/errors/PerpsError.d.ts.map +1 -1
  77. package/dist/esm/errors/PerpsError.js +7 -0
  78. package/dist/esm/errors/PerpsError.js.map +1 -1
  79. package/dist/esm/index.d.ts +5 -3
  80. package/dist/esm/index.d.ts.map +1 -1
  81. package/dist/esm/index.js +3 -2
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/registry/assetRegistry.d.ts +5 -1
  84. package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
  85. package/dist/esm/registry/assetRegistry.js +5 -1
  86. package/dist/esm/registry/assetRegistry.js.map +1 -1
  87. package/dist/esm/registry/marketRegistry.d.ts +28 -6
  88. package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
  89. package/dist/esm/registry/marketRegistry.js +49 -6
  90. package/dist/esm/registry/marketRegistry.js.map +1 -1
  91. package/dist/esm/services/createAction.d.ts +2 -0
  92. package/dist/esm/services/createAction.d.ts.map +1 -1
  93. package/dist/esm/services/createAction.js.map +1 -1
  94. package/dist/esm/services/executeAction.d.ts +2 -0
  95. package/dist/esm/services/executeAction.d.ts.map +1 -1
  96. package/dist/esm/services/executeAction.js.map +1 -1
  97. package/dist/esm/services/getActivity.d.ts +4 -2
  98. package/dist/esm/services/getActivity.d.ts.map +1 -1
  99. package/dist/esm/services/getActivity.js.map +1 -1
  100. package/dist/esm/services/getFills.d.ts +4 -2
  101. package/dist/esm/services/getFills.d.ts.map +1 -1
  102. package/dist/esm/services/getFills.js.map +1 -1
  103. package/dist/esm/services/getMarkets.d.ts +1 -1
  104. package/dist/esm/services/getMarkets.d.ts.map +1 -1
  105. package/dist/esm/services/getMarketsContext.d.ts +1 -1
  106. package/dist/esm/services/getMarketsContext.d.ts.map +1 -1
  107. package/dist/esm/services/getOhlcv.d.ts +4 -3
  108. package/dist/esm/services/getOhlcv.d.ts.map +1 -1
  109. package/dist/esm/services/getOhlcv.js.map +1 -1
  110. package/dist/esm/services/getOrder.d.ts +1 -0
  111. package/dist/esm/services/getOrder.d.ts.map +1 -1
  112. package/dist/esm/services/getOrder.js.map +1 -1
  113. package/dist/esm/services/getOrderbook.d.ts +2 -2
  114. package/dist/esm/services/getOrderbook.d.ts.map +1 -1
  115. package/dist/esm/services/getOrders.d.ts +3 -1
  116. package/dist/esm/services/getOrders.d.ts.map +1 -1
  117. package/dist/esm/services/getOrders.js.map +1 -1
  118. package/dist/esm/services/getPositions.d.ts +3 -1
  119. package/dist/esm/services/getPositions.d.ts.map +1 -1
  120. package/dist/esm/services/getPositions.js.map +1 -1
  121. package/dist/esm/services/getQuote.d.ts +3 -1
  122. package/dist/esm/services/getQuote.d.ts.map +1 -1
  123. package/dist/esm/services/getQuote.js.map +1 -1
  124. package/dist/esm/storage/parseStoredRecord.d.ts +4 -0
  125. package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -1
  126. package/dist/esm/storage/parseStoredRecord.js +4 -0
  127. package/dist/esm/storage/parseStoredRecord.js.map +1 -1
  128. package/dist/esm/storage/types.d.ts +10 -6
  129. package/dist/esm/storage/types.d.ts.map +1 -1
  130. package/dist/esm/transport/fetchWithRetry.d.ts +3 -0
  131. package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -1
  132. package/dist/esm/transport/fetchWithRetry.js.map +1 -1
  133. package/dist/esm/transport/retryPolicy.d.ts +20 -0
  134. package/dist/esm/transport/retryPolicy.d.ts.map +1 -1
  135. package/dist/esm/transport/retryPolicy.js.map +1 -1
  136. package/dist/esm/types/api.d.ts +31 -10
  137. package/dist/esm/types/api.d.ts.map +1 -1
  138. package/dist/esm/types/config.d.ts +10 -0
  139. package/dist/esm/types/config.d.ts.map +1 -1
  140. package/dist/esm/types/deposit.d.ts +9 -3
  141. package/dist/esm/types/deposit.d.ts.map +1 -1
  142. package/dist/esm/types/provider.d.ts +63 -18
  143. package/dist/esm/types/provider.d.ts.map +1 -1
  144. package/dist/esm/utils/calculations.d.ts +2 -20
  145. package/dist/esm/utils/calculations.d.ts.map +1 -1
  146. package/dist/esm/utils/calculations.js +0 -23
  147. package/dist/esm/utils/calculations.js.map +1 -1
  148. package/dist/esm/utils/format.d.ts +5 -1
  149. package/dist/esm/utils/format.d.ts.map +1 -1
  150. package/dist/esm/utils/format.js.map +1 -1
  151. package/dist/esm/utils/orderClassification.d.ts +5 -0
  152. package/dist/esm/utils/orderClassification.d.ts.map +1 -1
  153. package/dist/esm/utils/orderClassification.js +5 -0
  154. package/dist/esm/utils/orderClassification.js.map +1 -1
  155. package/dist/esm/utils/transferMargin.d.ts +24 -0
  156. package/dist/esm/utils/transferMargin.d.ts.map +1 -0
  157. package/dist/esm/utils/transferMargin.js +56 -0
  158. package/dist/esm/utils/transferMargin.js.map +1 -0
  159. package/dist/esm/version.d.ts +1 -1
  160. package/dist/esm/version.js +1 -1
  161. package/dist/esm/websocket/PerpsWsClient.d.ts +0 -1
  162. package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
  163. package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
  164. package/dist/esm/websocket/ReconnectingWebSocket.d.ts +5 -3
  165. package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -1
  166. package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -1
  167. package/dist/esm/websocket/WsProviderBase.d.ts +17 -0
  168. package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -1
  169. package/dist/esm/websocket/WsProviderBase.js +17 -0
  170. package/dist/esm/websocket/WsProviderBase.js.map +1 -1
  171. package/dist/esm/websocket/cachePromise.d.ts +2 -0
  172. package/dist/esm/websocket/cachePromise.d.ts.map +1 -1
  173. package/dist/esm/websocket/cachePromise.js +2 -0
  174. package/dist/esm/websocket/cachePromise.js.map +1 -1
  175. package/dist/esm/websocket/types.d.ts +5 -0
  176. package/dist/esm/websocket/types.d.ts.map +1 -1
  177. package/dist/types/client/PerpsClient.d.ts +24 -1
  178. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  179. package/dist/types/errors/PerpsError.d.ts +7 -0
  180. package/dist/types/errors/PerpsError.d.ts.map +1 -1
  181. package/dist/types/index.d.ts +5 -3
  182. package/dist/types/index.d.ts.map +1 -1
  183. package/dist/types/registry/assetRegistry.d.ts +5 -1
  184. package/dist/types/registry/assetRegistry.d.ts.map +1 -1
  185. package/dist/types/registry/marketRegistry.d.ts +28 -6
  186. package/dist/types/registry/marketRegistry.d.ts.map +1 -1
  187. package/dist/types/services/createAction.d.ts +2 -0
  188. package/dist/types/services/createAction.d.ts.map +1 -1
  189. package/dist/types/services/executeAction.d.ts +2 -0
  190. package/dist/types/services/executeAction.d.ts.map +1 -1
  191. package/dist/types/services/getActivity.d.ts +4 -2
  192. package/dist/types/services/getActivity.d.ts.map +1 -1
  193. package/dist/types/services/getFills.d.ts +4 -2
  194. package/dist/types/services/getFills.d.ts.map +1 -1
  195. package/dist/types/services/getMarkets.d.ts +1 -1
  196. package/dist/types/services/getMarkets.d.ts.map +1 -1
  197. package/dist/types/services/getMarketsContext.d.ts +1 -1
  198. package/dist/types/services/getMarketsContext.d.ts.map +1 -1
  199. package/dist/types/services/getOhlcv.d.ts +4 -3
  200. package/dist/types/services/getOhlcv.d.ts.map +1 -1
  201. package/dist/types/services/getOrder.d.ts +1 -0
  202. package/dist/types/services/getOrder.d.ts.map +1 -1
  203. package/dist/types/services/getOrderbook.d.ts +2 -2
  204. package/dist/types/services/getOrderbook.d.ts.map +1 -1
  205. package/dist/types/services/getOrders.d.ts +3 -1
  206. package/dist/types/services/getOrders.d.ts.map +1 -1
  207. package/dist/types/services/getPositions.d.ts +3 -1
  208. package/dist/types/services/getPositions.d.ts.map +1 -1
  209. package/dist/types/services/getQuote.d.ts +3 -1
  210. package/dist/types/services/getQuote.d.ts.map +1 -1
  211. package/dist/types/storage/parseStoredRecord.d.ts +4 -0
  212. package/dist/types/storage/parseStoredRecord.d.ts.map +1 -1
  213. package/dist/types/storage/types.d.ts +10 -6
  214. package/dist/types/storage/types.d.ts.map +1 -1
  215. package/dist/types/transport/fetchWithRetry.d.ts +3 -0
  216. package/dist/types/transport/fetchWithRetry.d.ts.map +1 -1
  217. package/dist/types/transport/retryPolicy.d.ts +20 -0
  218. package/dist/types/transport/retryPolicy.d.ts.map +1 -1
  219. package/dist/types/types/api.d.ts +31 -10
  220. package/dist/types/types/api.d.ts.map +1 -1
  221. package/dist/types/types/config.d.ts +10 -0
  222. package/dist/types/types/config.d.ts.map +1 -1
  223. package/dist/types/types/deposit.d.ts +9 -3
  224. package/dist/types/types/deposit.d.ts.map +1 -1
  225. package/dist/types/types/provider.d.ts +63 -18
  226. package/dist/types/types/provider.d.ts.map +1 -1
  227. package/dist/types/utils/calculations.d.ts +2 -20
  228. package/dist/types/utils/calculations.d.ts.map +1 -1
  229. package/dist/types/utils/format.d.ts +5 -1
  230. package/dist/types/utils/format.d.ts.map +1 -1
  231. package/dist/types/utils/orderClassification.d.ts +5 -0
  232. package/dist/types/utils/orderClassification.d.ts.map +1 -1
  233. package/dist/types/utils/transferMargin.d.ts +24 -0
  234. package/dist/types/utils/transferMargin.d.ts.map +1 -0
  235. package/dist/types/version.d.ts +1 -1
  236. package/dist/types/websocket/PerpsWsClient.d.ts +0 -1
  237. package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
  238. package/dist/types/websocket/ReconnectingWebSocket.d.ts +5 -3
  239. package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -1
  240. package/dist/types/websocket/WsProviderBase.d.ts +17 -0
  241. package/dist/types/websocket/WsProviderBase.d.ts.map +1 -1
  242. package/dist/types/websocket/cachePromise.d.ts +2 -0
  243. package/dist/types/websocket/cachePromise.d.ts.map +1 -1
  244. package/dist/types/websocket/types.d.ts +5 -0
  245. package/dist/types/websocket/types.d.ts.map +1 -1
  246. package/package.json +2 -2
  247. package/src/client/PerpsClient.ts +39 -0
  248. package/src/errors/PerpsError.ts +7 -0
  249. package/src/index.ts +4 -1
  250. package/src/registry/assetRegistry.ts +5 -1
  251. package/src/registry/marketRegistry.ts +64 -7
  252. package/src/services/createAction.ts +2 -0
  253. package/src/services/executeAction.ts +2 -0
  254. package/src/services/getActivity.ts +4 -2
  255. package/src/services/getFills.ts +4 -2
  256. package/src/services/getMarkets.ts +1 -1
  257. package/src/services/getMarketsContext.ts +1 -1
  258. package/src/services/getOhlcv.ts +4 -3
  259. package/src/services/getOrder.ts +1 -0
  260. package/src/services/getOrderbook.ts +2 -2
  261. package/src/services/getOrders.ts +3 -1
  262. package/src/services/getPositions.ts +3 -1
  263. package/src/services/getQuote.ts +3 -1
  264. package/src/storage/parseStoredRecord.ts +4 -0
  265. package/src/storage/types.ts +10 -6
  266. package/src/transport/fetchWithRetry.ts +3 -0
  267. package/src/transport/retryPolicy.ts +20 -0
  268. package/src/types/api.ts +31 -9
  269. package/src/types/config.ts +10 -0
  270. package/src/types/deposit.ts +9 -3
  271. package/src/types/provider.ts +73 -17
  272. package/src/utils/calculations.ts +2 -28
  273. package/src/utils/format.ts +5 -1
  274. package/src/utils/orderClassification.ts +5 -0
  275. package/src/utils/transferMargin.ts +98 -0
  276. package/src/version.ts +1 -1
  277. package/src/websocket/PerpsWsClient.ts +0 -1
  278. package/src/websocket/ReconnectingWebSocket.ts +5 -3
  279. package/src/websocket/WsProviderBase.ts +17 -0
  280. package/src/websocket/cachePromise.ts +2 -0
  281. package/src/websocket/types.ts +5 -0
@@ -1,4 +1,4 @@
1
- import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, FillsResponse, Market, Order, OrdersResponse, PerpsMarket, PerpsSigner, Position, PositionsResponse, ProviderAction, Quote, QuoteSide, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
1
+ import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, FillsResponse, Market, MarketRef, MarketSettings, Order, OrdersResponse, PerpsMarket, PerpsSigner, Position, PositionMarginConstraints, PositionsResponse, ProviderAction, Quote, QuoteSide, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
2
2
  import type { Address } from 'viem';
3
3
  import type { PerpsBaseConfig, PerpsClientSigner, SDKRequestOptions } from './config.js';
4
4
  import type { DepositFlow } from './deposit.js';
@@ -11,21 +11,13 @@ import type { DepositFlow } from './deposit.js';
11
11
  */
12
12
  export interface PerpsSDKClient {
13
13
  readonly config: PerpsBaseConfig;
14
- /** The end-user's wallet — accepts any viem WalletClient (browser, private key, mnemonic). */
14
+ /** End-user wallet for USER-signed or on-chain EVM legs, when configured. */
15
15
  readonly userWallet?: PerpsClientSigner;
16
- /** Registered providers, bound to this client, in construction order. */
16
+ /** Providers bound to this client, in registration order. */
17
17
  readonly providers: PerpsProvider[];
18
- /** Look up a registered bound {@link PerpsProvider} by its `type` key. */
18
+ /** Look up a bound provider by its wire `type` key. */
19
19
  getProvider(key: string): PerpsProvider | undefined;
20
20
  }
21
- /**
22
- * Per-call context passed by `PerpsClient` to a provider's {@link
23
- * PerpsProvider.signActions} method. Carries the end-user's wallet (when
24
- * configured); providers that own a session credential (e.g. the Hyperliquid
25
- * agent keypair, Lighter's API key) resolve it internally.
26
- *
27
- * @public
28
- */
29
21
  /**
30
22
  * Progress for one on-chain leg of an `EVM_TX` batch (e.g. a native deposit's
31
23
  * `approve` then `deposit`). Emitted twice per leg: `submitted` once the wallet
@@ -35,18 +27,25 @@ export interface PerpsSDKClient {
35
27
  * @public
36
28
  */
37
29
  export interface SignActionProgress {
38
- /** 0-based index of this leg within the batch. */
39
30
  index: number;
40
- /** Total legs in the batch. */
41
31
  total: number;
42
32
  action: ActionType;
43
- /** Contract function the leg invokes, e.g. `"approve"` or the deposit method. */
44
33
  functionName: string;
45
34
  chainId: number;
35
+ /** Whether the transaction was broadcast or its receipt confirmed. */
46
36
  status: 'submitted' | 'confirmed';
47
37
  txHash: string;
48
38
  }
39
+ /**
40
+ * Per-call context passed by `PerpsClient` to a provider's
41
+ * {@link PerpsProviderPlugin.signActions} implementation. Carries the
42
+ * configured end-user wallet, descriptor-declared signer roles, an optional
43
+ * chain-switch helper, and an optional progress callback.
44
+ *
45
+ * @public
46
+ */
49
47
  export interface SignActionsContext {
48
+ /** End-user wallet used for USER-signed or EVM transaction legs. */
50
49
  userWallet?: PerpsClientSigner;
51
50
  /**
52
51
  * The signing batch's declared signers, from the action's `ProviderAction`
@@ -106,8 +105,10 @@ export interface ActionSignerContribution {
106
105
  * @public
107
106
  */
108
107
  export interface LiquidationEstimateParams {
108
+ /** Entry price in quote currency per base unit. */
109
109
  entryPrice: number;
110
110
  leverage: number;
111
+ /** `true` for long, `false` for short. */
111
112
  isLong: boolean;
112
113
  }
113
114
  /**
@@ -142,11 +143,24 @@ export interface ProviderGetDepositFlowParams {
142
143
  */
143
144
  export interface ProviderGetPositionsParams {
144
145
  address: Address;
145
- /** Optional filter — opaque `Market.id` (not `displaySymbol`). */
146
+ /** Optional opaque `Market.id` filter (not a display symbol). */
146
147
  marketId?: string;
148
+ /** Maximum items returned; provider defaults and caps apply. */
147
149
  limit?: number;
150
+ /** Opaque pagination cursor from the previous response. */
148
151
  cursor?: string;
149
152
  }
153
+ /**
154
+ * Read params for {@link PerpsProviderPlugin.getMarketSettings}.
155
+ *
156
+ * @public
157
+ */
158
+ export interface ProviderGetMarketSettingsParams {
159
+ address: Address;
160
+ /** The market's `id` and `categoryId`; the category identifies spot
161
+ * markets, which carry no venue leverage state. */
162
+ market: MarketRef;
163
+ }
150
164
  /**
151
165
  * Read params for {@link PerpsProvider.getOrders}.
152
166
  *
@@ -154,9 +168,11 @@ export interface ProviderGetPositionsParams {
154
168
  */
155
169
  export interface ProviderGetOrdersParams {
156
170
  address: Address;
157
- /** Optional filter — opaque `Market.id` (not `displaySymbol`). */
171
+ /** Optional opaque `Market.id` filter (not a display symbol). */
158
172
  marketId?: string;
173
+ /** Maximum items returned; provider defaults and caps apply. */
159
174
  limit?: number;
175
+ /** Opaque pagination cursor from the previous response. */
160
176
  cursor?: string;
161
177
  }
162
178
  /**
@@ -166,6 +182,7 @@ export interface ProviderGetOrdersParams {
166
182
  */
167
183
  export interface ProviderGetOrderParams {
168
184
  address: Address;
185
+ /** Venue order id, opaque to the SDK. */
169
186
  id: string;
170
187
  }
171
188
  /**
@@ -175,9 +192,13 @@ export interface ProviderGetOrderParams {
175
192
  */
176
193
  export interface ProviderGetFillsParams {
177
194
  address: Address;
195
+ /** Maximum items returned; provider defaults and caps apply. */
178
196
  limit?: number;
197
+ /** Opaque pagination cursor from the previous response. */
179
198
  cursor?: string;
199
+ /** Include fills at or after this Unix timestamp in milliseconds. */
180
200
  startTime?: number;
201
+ /** Include fills at or before this Unix timestamp in milliseconds. */
181
202
  endTime?: number;
182
203
  }
183
204
  /**
@@ -187,10 +208,15 @@ export interface ProviderGetFillsParams {
187
208
  */
188
209
  export interface ProviderGetActivityParams {
189
210
  address: Address;
211
+ /** Maximum items returned; provider defaults and caps apply. */
190
212
  limit?: number;
213
+ /** Opaque pagination cursor from the previous response. */
191
214
  cursor?: string;
215
+ /** Include activity at or after this Unix timestamp in milliseconds. */
192
216
  startTime?: number;
217
+ /** Include activity at or before this Unix timestamp in milliseconds. */
193
218
  endTime?: number;
219
+ /** Optional filter for activity types. */
194
220
  type?: ActivityType[];
195
221
  }
196
222
  /**
@@ -200,11 +226,13 @@ export interface ProviderGetActivityParams {
200
226
  * @public
201
227
  */
202
228
  export interface ProviderGetQuoteParams {
203
- /** Human `displaySymbol`, e.g. `"BTC"`. Resolved against the provider's own markets, scoped by `type`. */
229
+ /** Human `displaySymbol`, resolved against this provider and `type`. */
204
230
  symbol: string;
231
+ /** Trade direction used to choose asks for buys or bids for sells. */
205
232
  side: QuoteSide;
206
233
  /** USD notional to fill. */
207
234
  size: number;
235
+ /** Product family used to disambiguate spot and perpetual markets. */
208
236
  type: TradeType;
209
237
  }
210
238
  /**
@@ -287,6 +315,14 @@ export interface PerpsProviderPlugin {
287
315
  */
288
316
  getDepositFlow?(params: ProviderGetDepositFlowParams, options?: SDKRequestOptions): Promise<DepositFlow>;
289
317
  getPositions(params: ProviderGetPositionsParams, options?: SDKRequestOptions): Promise<PositionsResponse>;
318
+ /**
319
+ * The user's current venue-side settings for one market — the margin mode
320
+ * and leverage the next order on it will use. Optional because venues
321
+ * expose this unevenly: Hyperliquid reads it directly (`activeAssetData`),
322
+ * Lighter only reports it on an account's position row. `undefined` means
323
+ * the venue has nothing to read for this market.
324
+ */
325
+ getMarketSettings?(params: ProviderGetMarketSettingsParams, options?: SDKRequestOptions): Promise<MarketSettings | undefined>;
290
326
  getOrders(params: ProviderGetOrdersParams, options?: SDKRequestOptions): Promise<OrdersResponse>;
291
327
  getOrder(params: ProviderGetOrderParams, options?: SDKRequestOptions): Promise<Order>;
292
328
  getFills(params: ProviderGetFillsParams, options?: SDKRequestOptions): Promise<FillsResponse>;
@@ -343,6 +379,15 @@ export interface PerpsProviderPlugin {
343
379
  * lacks the margin metadata the model needs).
344
380
  */
345
381
  estimateLiquidationPrice(market: PerpsMarket, params: LiquidationEstimateParams): number | undefined;
382
+ /**
383
+ * Exact venue-owned constraints for changing `position`'s dedicated margin.
384
+ * Pure — providers normalize raw venue quantities onto the position before
385
+ * returning these inputs.
386
+ *
387
+ * @returns `undefined` when this position has no individual margin
388
+ * adjustment (for example a cross position or a cross-only venue).
389
+ */
390
+ positionMarginConstraints(position: Position): PositionMarginConstraints | undefined;
346
391
  /**
347
392
  * Project a typed {@link AccountConfig} against the provider's `setup`
348
393
  * + `options` descriptors into `AccountConfigSetting[]`. Used by
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
@@ -103,33 +103,15 @@ export declare function effectiveLeverage(params: {
103
103
  positionValueUsd: number;
104
104
  marginUsd: number;
105
105
  }): number;
106
- /**
107
- * Margin that can be removed from a position while keeping its leverage at or
108
- * below the asset's maximum.
109
- *
110
- * The minimum margin to stay within `maxLeverage` is the required margin for
111
- * the position's notional (see {@link calculateRequiredMargin}); anything above
112
- * that is removable.
113
- *
114
- * @param marginUsed - Margin currently backing the position in USD
115
- * @param positionValueUsd - Position notional value in USD
116
- * @param maxLeverage - Maximum leverage allowed for the asset
117
- * @returns Removable margin in USD (never negative); falls back to the full
118
- * `marginUsed` when `maxLeverage` is zero (no constraint available)
119
- * @public
120
- */
121
- export declare function removableMargin(params: {
122
- marginUsed: number;
123
- positionValueUsd: number;
124
- maxLeverage: number;
125
- }): number;
126
106
  /**
127
107
  * Signed expected PnL for a trigger price — see {@link calculateExpectedPnl}.
128
108
  *
129
109
  * @public
130
110
  */
131
111
  export interface ExpectedPnl {
112
+ /** Signed expected profit/loss in USD. */
132
113
  amount: number;
114
+ /** Signed expected return as a percentage (10 means 10%). */
133
115
  percent: number;
134
116
  }
135
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,11 @@ export interface FormatOptions {
18
18
  */
19
19
  rounding?: RoundingMode;
20
20
  }
21
- /** Rounding mode for {@link FormatOptions.rounding}. */
21
+ /**
22
+ * Rounding mode for {@link FormatOptions.rounding}.
23
+ *
24
+ * @public
25
+ */
22
26
  export type RoundingMode = 'halfUp' | 'floor';
23
27
  type FormatInput = number | string | null | undefined;
24
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAyFrD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAkBR"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAyFrD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAkBR"}
@@ -7,6 +7,11 @@
7
7
  */
8
8
  import type { OpenOrder } from '@lifi/perps-types';
9
9
  import { FillClassification, OrderSide, OrderStatus } from '@lifi/perps-types';
10
+ /**
11
+ * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
12
+ *
13
+ * @public
14
+ */
10
15
  export { FillClassification };
11
16
  /**
12
17
  * Check if an open order is a Take Profit trigger order.
@@ -1 +1 @@
1
- {"version":3,"file":"orderClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EAEZ,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,WAAW,CAKzD,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAUpB"}
1
+ {"version":3,"file":"orderClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EAEZ,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,WAAW,CAKzD,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAUpB"}
@@ -0,0 +1,24 @@
1
+ import { type Position, type PositionMarginConstraints } from '@lifi/perps-types';
2
+ /**
3
+ * Exact inputs for {@link removableIsolatedMargin}.
4
+ *
5
+ * @public
6
+ */
7
+ export interface RemovableIsolatedMarginParams {
8
+ position: Position;
9
+ constraints: PositionMarginConstraints;
10
+ }
11
+ /**
12
+ * Calculate margin that can be removed from an isolated position using the
13
+ * provider's exact retained-margin requirement. Position equity is allocated
14
+ * margin plus unrealized PnL.
15
+ *
16
+ * The result snaps down to the provider's accepted amount increment. Markets
17
+ * that are add-only and cross-margined positions return `'0'`.
18
+ *
19
+ * @throws {PerpsError} `ValidationError` for malformed, non-positive, or
20
+ * inconsistent risk inputs.
21
+ * @public
22
+ */
23
+ export declare function removableIsolatedMargin({ position, constraints, }: RemovableIsolatedMarginParams): string;
24
+ //# sourceMappingURL=transferMargin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferMargin.d.ts","sourceRoot":"","sources":["../../../src/utils/transferMargin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,yBAAyB,EAE/B,MAAM,mBAAmB,CAAA;AAoC1B;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,yBAAyB,CAAA;CACvC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,WAAW,GACZ,EAAE,6BAA6B,GAAG,MAAM,CA+BxC"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@lifi/perps-sdk";
2
- export declare const version = "5.0.0";
2
+ export declare const version = "6.1.0";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -9,7 +9,6 @@ import type { EventForSubscription, WsProvider, WsStatusListener } from './types
9
9
  * @public
10
10
  */
11
11
  export type WsProviderFactory = (params: {
12
- /** Provider key (e.g. `'lighter'`, `'hyperliquid'`). */
13
12
  provider: string;
14
13
  /** WS URL discovered from `/providers`. */
15
14
  wsUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/websocket/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzE,OAAO,KAAK,EACV,oBAAoB,EAEpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE;IACvC,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,cAAc,CAAA;CACvB,KAAK,UAAU,CAAA;AAEhB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAChD;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,oBAAyB;IAKtE;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,CAAC,SAAS,YAAY,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAOtB;;;;;;;;;;OAUG;IACG,cAAc,CAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAatB;;;;;;;OAOG;IACH,KAAK;IASL;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,UAAU;YASJ,mBAAmB;YAqBnB,YAAY;CAsC3B"}
1
+ {"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/websocket/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzE,OAAO,KAAK,EACV,oBAAoB,EAEpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;;;OAIG;IACH,MAAM,EAAE,cAAc,CAAA;CACvB,KAAK,UAAU,CAAA;AAEhB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAChD;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,oBAAyB;IAKtE;;;;;;;;;;;;OAYG;IACG,SAAS,CAAC,CAAC,SAAS,YAAY,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAOtB;;;;;;;;;;OAUG;IACG,cAAc,CAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAatB;;;;;;;OAOG;IACH,KAAK;IASL;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,UAAU;YASJ,mBAAmB;YAqBnB,YAAY;CAsC3B"}
@@ -12,7 +12,9 @@ type WsEvent = keyof WsEventMap;
12
12
  * @public
13
13
  */
14
14
  export interface ReconnectingWebSocketOptions {
15
+ /** Maximum reconnect attempts before status becomes `disconnected`; defaults to 10. */
15
16
  maxRetries?: number;
17
+ /** Keepalive interval in milliseconds; defaults to 30,000. */
16
18
  pingIntervalMs?: number;
17
19
  /**
18
20
  * Keepalive frame sent every `pingIntervalMs` while the socket is open.
@@ -20,9 +22,9 @@ export interface ReconnectingWebSocketOptions {
20
22
  */
21
23
  pingPayload?: string;
22
24
  /**
23
- * Stale-stream watchdog window. With `pingPayload` configured, the socket is
24
- * force-reconnected when no inbound frame arrives within this window.
25
- * Defaults to 3× `pingIntervalMs`.
25
+ * Stale-stream watchdog window in milliseconds. With `pingPayload` configured,
26
+ * the socket is force-reconnected when no inbound frame arrives within this
27
+ * window. Defaults to 3× `pingIntervalMs`.
26
28
  */
27
29
  staleWindowMs?: number;
28
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReconnectingWebSocket.d.ts","sourceRoot":"","sources":["../../../src/websocket/ReconnectingWebSocket.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGtE,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,KAAK,OAAO,GAAG,MAAM,UAAU,CAAA;AAyB/B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,SAAS,CAKhB;IACD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,cAAc,CAGf;gBAEK,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B;IAyB/D,OAAO,CAAC,UAAU,CAWjB;IAED,OAAO,CAAC,WAAW,CA4BlB;IAED,OAAO,CAAC,WAAW,CAIlB;IAED,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAOrB;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAOjB;;;;;OAKG;IACH,KAAK;IAYL;;;;;;OAMG;IACH,SAAS;IAWT;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAIjD;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAIlD;;;;;;;OAOG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,gBAAgB;IAI7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,gBAAgB;IAI9B;;;;;;;OAOG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAcvB"}
1
+ {"version":3,"file":"ReconnectingWebSocket.d.ts","sourceRoot":"","sources":["../../../src/websocket/ReconnectingWebSocket.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGtE,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,KAAK,OAAO,GAAG,MAAM,UAAU,CAAA;AAyB/B;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,SAAS,CAKhB;IACD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,cAAc,CAGf;gBAEK,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,4BAA4B;IAyB/D,OAAO,CAAC,UAAU,CAWjB;IAED,OAAO,CAAC,WAAW,CA4BlB;IAED,OAAO,CAAC,WAAW,CAIlB;IAED,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAOrB;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAOjB;;;;;OAKG;IACH,KAAK;IAYL;;;;;;OAMG;IACH,SAAS;IAWT;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAIjD;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAIlD;;;;;;;OAOG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,gBAAgB;IAI7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,gBAAgB;IAI9B;;;;;;;OAOG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAcvB"}
@@ -36,8 +36,25 @@ export declare abstract class WsProviderBase<TSub = unknown> implements WsProvid
36
36
  private readonly statusListeners;
37
37
  private readonly wireSubs;
38
38
  constructor(rws: ReconnectingWebSocket, providerKey: string);
39
+ /**
40
+ * Acquire a ref-counted subscription to a provider channel and return an
41
+ * idempotent release function. Optional status listeners are reference-counted
42
+ * alongside the channel listener.
43
+ *
44
+ * @public
45
+ */
39
46
  subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
47
+ /**
48
+ * Reconnect the underlying socket only when it is terminally disconnected.
49
+ *
50
+ * @public
51
+ */
40
52
  reconnect(): void;
53
+ /**
54
+ * Release all channel and status listeners and close the underlying socket.
55
+ *
56
+ * @public
57
+ */
41
58
  close(): void;
42
59
  /** Deliver an event to every listener on `key`. */
43
60
  protected emit(key: string, event: SubscriptionEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"WsProviderBase.d.ts","sourceRoot":"","sources":["../../../src/websocket/WsProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAiBhD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,cAAc,CAAC,IAAI,GAAG,OAAO,CAAE,YAAW,UAAU;IACxE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAEtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM;IAcrD,SAAS,CACb,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAgCtB,SAAS,IAAI,IAAI;IAOjB,KAAK,IAAI,IAAI;IAab,mDAAmD;IACnD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAU3D;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgBlD;;;;;;OAMG;cACa,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,4EAA4E;IAC5E,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;YAI5B,UAAU;IAqBxB,qFAAqF;IACrF,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtB,iFAAiF;IACjF,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAEnD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnE,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAEnD,mFAAmF;IACnF,SAAS,CAAC,OAAO,IAAI,IAAI;IAEzB,OAAO,CAAC,YAAY;YAYN,cAAc;IAgD5B,OAAO,CAAC,cAAc;CAwCvB"}
1
+ {"version":3,"file":"WsProviderBase.d.ts","sourceRoot":"","sources":["../../../src/websocket/WsProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAiBhD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,cAAc,CAAC,IAAI,GAAG,OAAO,CAAE,YAAW,UAAU;IACxE,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAEtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;gBAEvC,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM;IAc3D;;;;;;OAMG;IACG,SAAS,CACb,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC;IAgCtB;;;;OAIG;IACH,SAAS,IAAI,IAAI;IAOjB;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAab,mDAAmD;IACnD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAU3D;;;;;;;OAOG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgBlD;;;;;;OAMG;cACa,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE,4EAA4E;IAC5E,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;YAI5B,UAAU;IAqBxB,qFAAqF;IACrF,QAAQ,CAAC,cAAc,CACrB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtB,iFAAiF;IACjF,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAEnD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnE,6DAA6D;IAC7D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAEnD,mFAAmF;IACnF,SAAS,CAAC,OAAO,IAAI,IAAI;IAEzB,OAAO,CAAC,YAAY;YAYN,cAAc;IAgD5B,OAAO,CAAC,cAAc;CAwCvB"}
@@ -9,6 +9,8 @@
9
9
  * @param read - Returns the currently cached promise, or `undefined` if none.
10
10
  * @param write - Stores (or with `undefined`, clears) the cached promise.
11
11
  * @param factory - Creates the promise when the slot is empty.
12
+ *
13
+ * @public
12
14
  */
13
15
  export declare function cachePromise<T>(read: () => Promise<T> | undefined, write: (promise: Promise<T> | undefined) => void, factory: () => Promise<T>): Promise<T>;
14
16
  //# sourceMappingURL=cachePromise.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cachePromise.d.ts","sourceRoot":"","sources":["../../../src/websocket/cachePromise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,IAAI,EAChD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
1
+ {"version":3,"file":"cachePromise.d.ts","sourceRoot":"","sources":["../../../src/websocket/cachePromise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,IAAI,EAChD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
@@ -41,6 +41,10 @@ export type WsStatusListener = (status: WsConnectionStatus) => void;
41
41
  * @public
42
42
  */
43
43
  export interface WsProvider {
44
+ /**
45
+ * Subscribe to one venue channel and return an idempotent unsubscribe.
46
+ * `onStatus` receives the provider socket's health transitions.
47
+ */
44
48
  subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
45
49
  /**
46
50
  * Recover a terminally exhausted connection. Safe no-op unless status is
@@ -55,6 +59,7 @@ export interface WsProvider {
55
59
  * public base fee tier. Returns an idempotent unsubscribe.
56
60
  */
57
61
  subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
62
+ /** Permanently close the provider's realtime connection. */
58
63
  close(): void;
59
64
  }
60
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/websocket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI,OAAO,CAChE,iBAAiB,EACjB;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,CACP,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB;;;OAGG;IACH,SAAS,IAAI,IAAI,CAAA;IACjB;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,IAAI,CAAA;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/websocket/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI,OAAO,CAChE,iBAAiB,EACjB;IAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;CAAE,CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,CACP,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB;;;OAGG;IACH,SAAS,IAAI,IAAI,CAAA;IACjB;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACtB,4DAA4D;IAC5D,KAAK,IAAI,IAAI,CAAA;CACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/perps-sdk",
3
- "version": "5.0.0",
3
+ "version": "6.1.0",
4
4
  "description": "LI.FI Perps SDK for perpetuals trading",
5
5
  "homepage": "https://github.com/lifinance/perps-sdk",
6
6
  "bugs": {
@@ -45,7 +45,7 @@
45
45
  "big.js": "^7.0.1",
46
46
  "partysocket": "^1.1.19",
47
47
  "viem": "^2.48.8",
48
- "@lifi/perps-types": "^3.3.2"
48
+ "@lifi/perps-types": "^4.1.0"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public"
@@ -7,7 +7,9 @@ import type {
7
7
  CreateActionResponse,
8
8
  ExecuteActionResponse,
9
9
  MarketRef,
10
+ MarketSettings,
10
11
  Position,
12
+ PositionMarginConstraints,
11
13
  Provider,
12
14
  ProviderAction,
13
15
  SignedActionStep,
@@ -385,10 +387,47 @@ export class PerpsClient {
385
387
  return { ...response, settings }
386
388
  }
387
389
 
390
+ /**
391
+ * The user's current venue-side settings for a market — the margin mode
392
+ * and leverage the next order on it will use. Resolves `undefined` when
393
+ * the venue exposes no readable setting for the market (or the provider
394
+ * has no such read at all).
395
+ *
396
+ * @throws {PerpsError} When the provider plugin is not registered.
397
+ * @public
398
+ */
399
+ async getMarketSettings(params: {
400
+ provider: string
401
+ address: Address
402
+ market: MarketRef
403
+ }): Promise<MarketSettings | undefined> {
404
+ const plugin = this.requireProvider(params.provider)
405
+ return plugin.getMarketSettings?.({
406
+ address: params.address,
407
+ market: params.market,
408
+ })
409
+ }
410
+
411
+ /**
412
+ * Resolve the exact venue-owned margin requirements for `position`.
413
+ * Returns `undefined` when the position has no individual margin adjustment.
414
+ *
415
+ * @public
416
+ */
417
+ getPositionMarginConstraints(
418
+ position: Position
419
+ ): PositionMarginConstraints | undefined {
420
+ return this.requireProvider(
421
+ position.market.providerId
422
+ ).positionMarginConstraints(position)
423
+ }
424
+
388
425
  /**
389
426
  * Roll an already-fetched {@link AccountResponse} (plus its positions) up
390
427
  * into an {@link AccountSummary}, delegating to the owning provider so the
391
428
  * venue-specific collateral and margin semantics are applied correctly.
429
+ *
430
+ * @public
392
431
  */
393
432
  getAccountSummary(
394
433
  account: AccountResponse,
@@ -9,10 +9,17 @@ import { PerpsErrorCode } from '@lifi/perps-types'
9
9
  * @public
10
10
  */
11
11
  export class PerpsError extends Error {
12
+ /** Machine-readable error code for programmatic handling. */
12
13
  code: PerpsErrorCode
14
+ /** Stable error name used by `instanceof`/logging. */
13
15
  override name = 'PerpsError'
16
+ /** Originating package or provider key, when known. */
14
17
  tool?: string
15
18
 
19
+ /**
20
+ * Create an SDK error. Defaults to `DefaultError` and a generic message when
21
+ * callers do not provide either value.
22
+ */
16
23
  constructor(
17
24
  code: PerpsErrorCode = PerpsErrorCode.DefaultError,
18
25
  message = 'Unknown error occurred'
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ export {
25
25
  isActiveMarket,
26
26
  MarketRegistry,
27
27
  toMarketDisplay,
28
+ toPerpsMarketDisplay,
28
29
  } from './registry/marketRegistry.js'
29
30
  // Services
30
31
  export type { CreateActionParams } from './services/createAction.js'
@@ -137,6 +138,7 @@ export type {
137
138
  ProviderGetActivityParams,
138
139
  ProviderGetDepositFlowParams,
139
140
  ProviderGetFillsParams,
141
+ ProviderGetMarketSettingsParams,
140
142
  ProviderGetOrderParams,
141
143
  ProviderGetOrdersParams,
142
144
  ProviderGetPositionsParams,
@@ -165,7 +167,6 @@ export {
165
167
  liquidationDistancePercent,
166
168
  percentFromPrice,
167
169
  priceFromPercent,
168
- removableMargin,
169
170
  walkOrderbook,
170
171
  } from './utils/calculations.js'
171
172
  export {
@@ -222,6 +223,8 @@ export {
222
223
  signTypedData,
223
224
  signTypedDataWithSigner,
224
225
  } from './utils/signTypedData.js'
226
+ export type { RemovableIsolatedMarginParams } from './utils/transferMargin.js'
227
+ export { removableIsolatedMargin } from './utils/transferMargin.js'
225
228
  export { fromBaseUnits, fromBaseUnitsNumber } from './utils/units.js'
226
229
  export { validateMargin } from './utils/validation.js'
227
230
  // Version
@@ -16,7 +16,11 @@ export class AssetRegistry extends ReferenceDataRegistry<Asset> {
16
16
  super(client, provider, 'asset')
17
17
  }
18
18
 
19
- /** The most recently synced asset list. Empty before the first {@link sync}. */
19
+ /**
20
+ * The most recently synced asset list. Empty before the first {@link sync}.
21
+ *
22
+ * @public
23
+ */
20
24
  get assets(): readonly Asset[] {
21
25
  return this.items
22
26
  }