@lifi/perps-sdk 6.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 (258) hide show
  1. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  2. package/dist/cjs/client/PerpsClient.js.map +1 -1
  3. package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
  4. package/dist/cjs/errors/PerpsError.js.map +1 -1
  5. package/dist/cjs/registry/assetRegistry.d.ts.map +1 -1
  6. package/dist/cjs/registry/assetRegistry.js.map +1 -1
  7. package/dist/cjs/registry/marketRegistry.d.ts.map +1 -1
  8. package/dist/cjs/registry/marketRegistry.js.map +1 -1
  9. package/dist/cjs/services/createAction.d.ts.map +1 -1
  10. package/dist/cjs/services/createAction.js.map +1 -1
  11. package/dist/cjs/services/executeAction.d.ts.map +1 -1
  12. package/dist/cjs/services/executeAction.js.map +1 -1
  13. package/dist/cjs/services/getActivity.d.ts.map +1 -1
  14. package/dist/cjs/services/getActivity.js.map +1 -1
  15. package/dist/cjs/services/getFills.d.ts.map +1 -1
  16. package/dist/cjs/services/getFills.js.map +1 -1
  17. package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
  18. package/dist/cjs/services/getOhlcv.js.map +1 -1
  19. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  20. package/dist/cjs/services/getOrder.js.map +1 -1
  21. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  22. package/dist/cjs/services/getOrders.js.map +1 -1
  23. package/dist/cjs/services/getPositions.d.ts.map +1 -1
  24. package/dist/cjs/services/getPositions.js.map +1 -1
  25. package/dist/cjs/services/getQuote.d.ts.map +1 -1
  26. package/dist/cjs/services/getQuote.js.map +1 -1
  27. package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -1
  28. package/dist/cjs/storage/parseStoredRecord.js.map +1 -1
  29. package/dist/cjs/storage/types.d.ts.map +1 -1
  30. package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -1
  31. package/dist/cjs/transport/fetchWithRetry.js.map +1 -1
  32. package/dist/cjs/transport/retryPolicy.d.ts.map +1 -1
  33. package/dist/cjs/transport/retryPolicy.js.map +1 -1
  34. package/dist/cjs/types/api.d.ts.map +1 -1
  35. package/dist/cjs/types/config.d.ts.map +1 -1
  36. package/dist/cjs/types/deposit.d.ts.map +1 -1
  37. package/dist/cjs/types/provider.d.ts.map +1 -1
  38. package/dist/cjs/utils/calculations.d.ts.map +1 -1
  39. package/dist/cjs/utils/calculations.js.map +1 -1
  40. package/dist/cjs/utils/format.d.ts.map +1 -1
  41. package/dist/cjs/utils/format.js.map +1 -1
  42. package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
  43. package/dist/cjs/utils/orderClassification.js.map +1 -1
  44. package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
  45. package/dist/cjs/utils/transferMargin.js +1 -3
  46. package/dist/cjs/utils/transferMargin.js.map +1 -1
  47. package/dist/cjs/version.d.ts +1 -1
  48. package/dist/cjs/version.js +1 -1
  49. package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
  50. package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
  51. package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -1
  52. package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -1
  53. package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -1
  54. package/dist/cjs/websocket/WsProviderBase.js.map +1 -1
  55. package/dist/cjs/websocket/cachePromise.d.ts.map +1 -1
  56. package/dist/cjs/websocket/cachePromise.js.map +1 -1
  57. package/dist/cjs/websocket/types.d.ts.map +1 -1
  58. package/dist/esm/client/PerpsClient.d.ts +2 -0
  59. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  60. package/dist/esm/client/PerpsClient.js +2 -0
  61. package/dist/esm/client/PerpsClient.js.map +1 -1
  62. package/dist/esm/errors/PerpsError.d.ts +7 -0
  63. package/dist/esm/errors/PerpsError.d.ts.map +1 -1
  64. package/dist/esm/errors/PerpsError.js +7 -0
  65. package/dist/esm/errors/PerpsError.js.map +1 -1
  66. package/dist/esm/registry/assetRegistry.d.ts +5 -1
  67. package/dist/esm/registry/assetRegistry.d.ts.map +1 -1
  68. package/dist/esm/registry/assetRegistry.js +5 -1
  69. package/dist/esm/registry/assetRegistry.js.map +1 -1
  70. package/dist/esm/registry/marketRegistry.d.ts +19 -5
  71. package/dist/esm/registry/marketRegistry.d.ts.map +1 -1
  72. package/dist/esm/registry/marketRegistry.js +19 -5
  73. package/dist/esm/registry/marketRegistry.js.map +1 -1
  74. package/dist/esm/services/createAction.d.ts +2 -0
  75. package/dist/esm/services/createAction.d.ts.map +1 -1
  76. package/dist/esm/services/createAction.js.map +1 -1
  77. package/dist/esm/services/executeAction.d.ts +2 -0
  78. package/dist/esm/services/executeAction.d.ts.map +1 -1
  79. package/dist/esm/services/executeAction.js.map +1 -1
  80. package/dist/esm/services/getActivity.d.ts +4 -2
  81. package/dist/esm/services/getActivity.d.ts.map +1 -1
  82. package/dist/esm/services/getActivity.js.map +1 -1
  83. package/dist/esm/services/getFills.d.ts +4 -2
  84. package/dist/esm/services/getFills.d.ts.map +1 -1
  85. package/dist/esm/services/getFills.js.map +1 -1
  86. package/dist/esm/services/getMarkets.d.ts +1 -1
  87. package/dist/esm/services/getMarkets.d.ts.map +1 -1
  88. package/dist/esm/services/getMarketsContext.d.ts +1 -1
  89. package/dist/esm/services/getMarketsContext.d.ts.map +1 -1
  90. package/dist/esm/services/getOhlcv.d.ts +4 -3
  91. package/dist/esm/services/getOhlcv.d.ts.map +1 -1
  92. package/dist/esm/services/getOhlcv.js.map +1 -1
  93. package/dist/esm/services/getOrder.d.ts +1 -0
  94. package/dist/esm/services/getOrder.d.ts.map +1 -1
  95. package/dist/esm/services/getOrder.js.map +1 -1
  96. package/dist/esm/services/getOrderbook.d.ts +2 -2
  97. package/dist/esm/services/getOrderbook.d.ts.map +1 -1
  98. package/dist/esm/services/getOrders.d.ts +3 -1
  99. package/dist/esm/services/getOrders.d.ts.map +1 -1
  100. package/dist/esm/services/getOrders.js.map +1 -1
  101. package/dist/esm/services/getPositions.d.ts +3 -1
  102. package/dist/esm/services/getPositions.d.ts.map +1 -1
  103. package/dist/esm/services/getPositions.js.map +1 -1
  104. package/dist/esm/services/getQuote.d.ts +3 -1
  105. package/dist/esm/services/getQuote.d.ts.map +1 -1
  106. package/dist/esm/services/getQuote.js.map +1 -1
  107. package/dist/esm/storage/parseStoredRecord.d.ts +4 -0
  108. package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -1
  109. package/dist/esm/storage/parseStoredRecord.js +4 -0
  110. package/dist/esm/storage/parseStoredRecord.js.map +1 -1
  111. package/dist/esm/storage/types.d.ts +10 -6
  112. package/dist/esm/storage/types.d.ts.map +1 -1
  113. package/dist/esm/transport/fetchWithRetry.d.ts +3 -0
  114. package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -1
  115. package/dist/esm/transport/fetchWithRetry.js.map +1 -1
  116. package/dist/esm/transport/retryPolicy.d.ts +20 -0
  117. package/dist/esm/transport/retryPolicy.d.ts.map +1 -1
  118. package/dist/esm/transport/retryPolicy.js.map +1 -1
  119. package/dist/esm/types/api.d.ts +24 -9
  120. package/dist/esm/types/api.d.ts.map +1 -1
  121. package/dist/esm/types/config.d.ts +10 -0
  122. package/dist/esm/types/config.d.ts.map +1 -1
  123. package/dist/esm/types/deposit.d.ts +9 -3
  124. package/dist/esm/types/deposit.d.ts.map +1 -1
  125. package/dist/esm/types/provider.d.ts +34 -17
  126. package/dist/esm/types/provider.d.ts.map +1 -1
  127. package/dist/esm/utils/calculations.d.ts +2 -0
  128. package/dist/esm/utils/calculations.d.ts.map +1 -1
  129. package/dist/esm/utils/calculations.js.map +1 -1
  130. package/dist/esm/utils/format.d.ts +5 -1
  131. package/dist/esm/utils/format.d.ts.map +1 -1
  132. package/dist/esm/utils/format.js.map +1 -1
  133. package/dist/esm/utils/orderClassification.d.ts +5 -0
  134. package/dist/esm/utils/orderClassification.d.ts.map +1 -1
  135. package/dist/esm/utils/orderClassification.js +5 -0
  136. package/dist/esm/utils/orderClassification.js.map +1 -1
  137. package/dist/esm/utils/transferMargin.d.ts.map +1 -1
  138. package/dist/esm/utils/transferMargin.js +2 -4
  139. package/dist/esm/utils/transferMargin.js.map +1 -1
  140. package/dist/esm/version.d.ts +1 -1
  141. package/dist/esm/version.js +1 -1
  142. package/dist/esm/websocket/PerpsWsClient.d.ts +0 -1
  143. package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
  144. package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
  145. package/dist/esm/websocket/ReconnectingWebSocket.d.ts +5 -3
  146. package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -1
  147. package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -1
  148. package/dist/esm/websocket/WsProviderBase.d.ts +17 -0
  149. package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -1
  150. package/dist/esm/websocket/WsProviderBase.js +17 -0
  151. package/dist/esm/websocket/WsProviderBase.js.map +1 -1
  152. package/dist/esm/websocket/cachePromise.d.ts +2 -0
  153. package/dist/esm/websocket/cachePromise.d.ts.map +1 -1
  154. package/dist/esm/websocket/cachePromise.js +2 -0
  155. package/dist/esm/websocket/cachePromise.js.map +1 -1
  156. package/dist/esm/websocket/types.d.ts +5 -0
  157. package/dist/esm/websocket/types.d.ts.map +1 -1
  158. package/dist/types/client/PerpsClient.d.ts +2 -0
  159. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  160. package/dist/types/errors/PerpsError.d.ts +7 -0
  161. package/dist/types/errors/PerpsError.d.ts.map +1 -1
  162. package/dist/types/registry/assetRegistry.d.ts +5 -1
  163. package/dist/types/registry/assetRegistry.d.ts.map +1 -1
  164. package/dist/types/registry/marketRegistry.d.ts +19 -5
  165. package/dist/types/registry/marketRegistry.d.ts.map +1 -1
  166. package/dist/types/services/createAction.d.ts +2 -0
  167. package/dist/types/services/createAction.d.ts.map +1 -1
  168. package/dist/types/services/executeAction.d.ts +2 -0
  169. package/dist/types/services/executeAction.d.ts.map +1 -1
  170. package/dist/types/services/getActivity.d.ts +4 -2
  171. package/dist/types/services/getActivity.d.ts.map +1 -1
  172. package/dist/types/services/getFills.d.ts +4 -2
  173. package/dist/types/services/getFills.d.ts.map +1 -1
  174. package/dist/types/services/getMarkets.d.ts +1 -1
  175. package/dist/types/services/getMarkets.d.ts.map +1 -1
  176. package/dist/types/services/getMarketsContext.d.ts +1 -1
  177. package/dist/types/services/getMarketsContext.d.ts.map +1 -1
  178. package/dist/types/services/getOhlcv.d.ts +4 -3
  179. package/dist/types/services/getOhlcv.d.ts.map +1 -1
  180. package/dist/types/services/getOrder.d.ts +1 -0
  181. package/dist/types/services/getOrder.d.ts.map +1 -1
  182. package/dist/types/services/getOrderbook.d.ts +2 -2
  183. package/dist/types/services/getOrderbook.d.ts.map +1 -1
  184. package/dist/types/services/getOrders.d.ts +3 -1
  185. package/dist/types/services/getOrders.d.ts.map +1 -1
  186. package/dist/types/services/getPositions.d.ts +3 -1
  187. package/dist/types/services/getPositions.d.ts.map +1 -1
  188. package/dist/types/services/getQuote.d.ts +3 -1
  189. package/dist/types/services/getQuote.d.ts.map +1 -1
  190. package/dist/types/storage/parseStoredRecord.d.ts +4 -0
  191. package/dist/types/storage/parseStoredRecord.d.ts.map +1 -1
  192. package/dist/types/storage/types.d.ts +10 -6
  193. package/dist/types/storage/types.d.ts.map +1 -1
  194. package/dist/types/transport/fetchWithRetry.d.ts +3 -0
  195. package/dist/types/transport/fetchWithRetry.d.ts.map +1 -1
  196. package/dist/types/transport/retryPolicy.d.ts +20 -0
  197. package/dist/types/transport/retryPolicy.d.ts.map +1 -1
  198. package/dist/types/types/api.d.ts +24 -9
  199. package/dist/types/types/api.d.ts.map +1 -1
  200. package/dist/types/types/config.d.ts +10 -0
  201. package/dist/types/types/config.d.ts.map +1 -1
  202. package/dist/types/types/deposit.d.ts +9 -3
  203. package/dist/types/types/deposit.d.ts.map +1 -1
  204. package/dist/types/types/provider.d.ts +34 -17
  205. package/dist/types/types/provider.d.ts.map +1 -1
  206. package/dist/types/utils/calculations.d.ts +2 -0
  207. package/dist/types/utils/calculations.d.ts.map +1 -1
  208. package/dist/types/utils/format.d.ts +5 -1
  209. package/dist/types/utils/format.d.ts.map +1 -1
  210. package/dist/types/utils/orderClassification.d.ts +5 -0
  211. package/dist/types/utils/orderClassification.d.ts.map +1 -1
  212. package/dist/types/utils/transferMargin.d.ts.map +1 -1
  213. package/dist/types/version.d.ts +1 -1
  214. package/dist/types/websocket/PerpsWsClient.d.ts +0 -1
  215. package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
  216. package/dist/types/websocket/ReconnectingWebSocket.d.ts +5 -3
  217. package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -1
  218. package/dist/types/websocket/WsProviderBase.d.ts +17 -0
  219. package/dist/types/websocket/WsProviderBase.d.ts.map +1 -1
  220. package/dist/types/websocket/cachePromise.d.ts +2 -0
  221. package/dist/types/websocket/cachePromise.d.ts.map +1 -1
  222. package/dist/types/websocket/types.d.ts +5 -0
  223. package/dist/types/websocket/types.d.ts.map +1 -1
  224. package/package.json +2 -2
  225. package/src/client/PerpsClient.ts +2 -0
  226. package/src/errors/PerpsError.ts +7 -0
  227. package/src/registry/assetRegistry.ts +5 -1
  228. package/src/registry/marketRegistry.ts +19 -5
  229. package/src/services/createAction.ts +2 -0
  230. package/src/services/executeAction.ts +2 -0
  231. package/src/services/getActivity.ts +4 -2
  232. package/src/services/getFills.ts +4 -2
  233. package/src/services/getMarkets.ts +1 -1
  234. package/src/services/getMarketsContext.ts +1 -1
  235. package/src/services/getOhlcv.ts +4 -3
  236. package/src/services/getOrder.ts +1 -0
  237. package/src/services/getOrderbook.ts +2 -2
  238. package/src/services/getOrders.ts +3 -1
  239. package/src/services/getPositions.ts +3 -1
  240. package/src/services/getQuote.ts +3 -1
  241. package/src/storage/parseStoredRecord.ts +4 -0
  242. package/src/storage/types.ts +10 -6
  243. package/src/transport/fetchWithRetry.ts +3 -0
  244. package/src/transport/retryPolicy.ts +20 -0
  245. package/src/types/api.ts +24 -9
  246. package/src/types/config.ts +10 -0
  247. package/src/types/deposit.ts +9 -3
  248. package/src/types/provider.ts +34 -17
  249. package/src/utils/calculations.ts +2 -0
  250. package/src/utils/format.ts +5 -1
  251. package/src/utils/orderClassification.ts +5 -0
  252. package/src/utils/transferMargin.ts +2 -7
  253. package/src/version.ts +1 -1
  254. package/src/websocket/PerpsWsClient.ts +0 -1
  255. package/src/websocket/ReconnectingWebSocket.ts +5 -3
  256. package/src/websocket/WsProviderBase.ts +17 -0
  257. package/src/websocket/cachePromise.ts +2 -0
  258. package/src/websocket/types.ts +5 -0
@@ -9,9 +9,11 @@ import type { Address } from 'viem'
9
9
  * @public
10
10
  */
11
11
  export interface DeclaredDepositAsset {
12
+ /** EVM chain id on which the asset is held or broadcast. */
12
13
  chainId: number
13
- /** EIP-55 checksummed address; the zero address denotes the chain's native gas token. */
14
+ /** EIP-55 checksummed address; the zero address denotes native gas. */
14
15
  address: Address
16
+ /** Decimal places used by the token; native gas assets use 18. */
15
17
  decimals: number
16
18
  }
17
19
 
@@ -25,6 +27,7 @@ export interface DeclaredDepositAsset {
25
27
  */
26
28
  export interface DepositFlowLifiSwap {
27
29
  kind: 'lifiSwap'
30
+ /** Destination collateral token and its full chain identity. */
28
31
  destination: DeclaredDepositAsset
29
32
  /**
30
33
  * Credited address when it is not the user's own — a venue-provisioned
@@ -43,10 +46,13 @@ export interface DepositFlowLifiSwap {
43
46
  */
44
47
  export interface DepositFlowFirstDepositPipeline {
45
48
  kind: 'firstDepositPipeline'
46
- /** Chain the deposit legs broadcast on; the user's wallet must be switched to it. */
49
+ /** Chain on which the deposit legs broadcast; the wallet must be switched here. */
47
50
  chainId: number
51
+ /** Native gas asset needed to broadcast the deposit legs. */
48
52
  gasAsset: DeclaredDepositAsset
53
+ /** Collateral asset credited by the first deposit. */
49
54
  collateral: DeclaredDepositAsset
55
+ /** Action type used to stage the deposit pipeline. */
50
56
  bridgeAction: ActionType.DEPOSIT
51
57
  }
52
58
 
@@ -59,7 +65,7 @@ export interface DepositFlowFirstDepositPipeline {
59
65
  */
60
66
  export interface DepositFlowSetupRequired {
61
67
  kind: 'setupRequired'
62
- /** Outstanding `Provider.setup` action types, in the order they must be run. */
68
+ /** Setup action types that must be completed, in execution order. */
63
69
  setup: ActionType[]
64
70
  }
65
71
 
@@ -43,22 +43,14 @@ import type { DepositFlow } from './deposit.js'
43
43
  */
44
44
  export interface PerpsSDKClient {
45
45
  readonly config: PerpsBaseConfig
46
- /** The end-user's wallet — accepts any viem WalletClient (browser, private key, mnemonic). */
46
+ /** End-user wallet for USER-signed or on-chain EVM legs, when configured. */
47
47
  readonly userWallet?: PerpsClientSigner
48
- /** Registered providers, bound to this client, in construction order. */
48
+ /** Providers bound to this client, in registration order. */
49
49
  readonly providers: PerpsProvider[]
50
- /** Look up a registered bound {@link PerpsProvider} by its `type` key. */
50
+ /** Look up a bound provider by its wire `type` key. */
51
51
  getProvider(key: string): PerpsProvider | undefined
52
52
  }
53
53
 
54
- /**
55
- * Per-call context passed by `PerpsClient` to a provider's {@link
56
- * PerpsProvider.signActions} method. Carries the end-user's wallet (when
57
- * configured); providers that own a session credential (e.g. the Hyperliquid
58
- * agent keypair, Lighter's API key) resolve it internally.
59
- *
60
- * @public
61
- */
62
54
  /**
63
55
  * Progress for one on-chain leg of an `EVM_TX` batch (e.g. a native deposit's
64
56
  * `approve` then `deposit`). Emitted twice per leg: `submitted` once the wallet
@@ -68,19 +60,26 @@ export interface PerpsSDKClient {
68
60
  * @public
69
61
  */
70
62
  export interface SignActionProgress {
71
- /** 0-based index of this leg within the batch. */
72
63
  index: number
73
- /** Total legs in the batch. */
74
64
  total: number
75
65
  action: ActionType
76
- /** Contract function the leg invokes, e.g. `"approve"` or the deposit method. */
77
66
  functionName: string
78
67
  chainId: number
68
+ /** Whether the transaction was broadcast or its receipt confirmed. */
79
69
  status: 'submitted' | 'confirmed'
80
70
  txHash: string
81
71
  }
82
72
 
73
+ /**
74
+ * Per-call context passed by `PerpsClient` to a provider's
75
+ * {@link PerpsProviderPlugin.signActions} implementation. Carries the
76
+ * configured end-user wallet, descriptor-declared signer roles, an optional
77
+ * chain-switch helper, and an optional progress callback.
78
+ *
79
+ * @public
80
+ */
83
81
  export interface SignActionsContext {
82
+ /** End-user wallet used for USER-signed or EVM transaction legs. */
84
83
  userWallet?: PerpsClientSigner
85
84
  /**
86
85
  * The signing batch's declared signers, from the action's `ProviderAction`
@@ -142,8 +141,10 @@ export interface ActionSignerContribution {
142
141
  * @public
143
142
  */
144
143
  export interface LiquidationEstimateParams {
144
+ /** Entry price in quote currency per base unit. */
145
145
  entryPrice: number
146
146
  leverage: number
147
+ /** `true` for long, `false` for short. */
147
148
  isLong: boolean
148
149
  }
149
150
 
@@ -182,9 +183,11 @@ export interface ProviderGetDepositFlowParams {
182
183
  */
183
184
  export interface ProviderGetPositionsParams {
184
185
  address: Address
185
- /** Optional filter — opaque `Market.id` (not `displaySymbol`). */
186
+ /** Optional opaque `Market.id` filter (not a display symbol). */
186
187
  marketId?: string
188
+ /** Maximum items returned; provider defaults and caps apply. */
187
189
  limit?: number
190
+ /** Opaque pagination cursor from the previous response. */
188
191
  cursor?: string
189
192
  }
190
193
 
@@ -207,9 +210,11 @@ export interface ProviderGetMarketSettingsParams {
207
210
  */
208
211
  export interface ProviderGetOrdersParams {
209
212
  address: Address
210
- /** Optional filter — opaque `Market.id` (not `displaySymbol`). */
213
+ /** Optional opaque `Market.id` filter (not a display symbol). */
211
214
  marketId?: string
215
+ /** Maximum items returned; provider defaults and caps apply. */
212
216
  limit?: number
217
+ /** Opaque pagination cursor from the previous response. */
213
218
  cursor?: string
214
219
  }
215
220
 
@@ -220,6 +225,7 @@ export interface ProviderGetOrdersParams {
220
225
  */
221
226
  export interface ProviderGetOrderParams {
222
227
  address: Address
228
+ /** Venue order id, opaque to the SDK. */
223
229
  id: string
224
230
  }
225
231
 
@@ -230,9 +236,13 @@ export interface ProviderGetOrderParams {
230
236
  */
231
237
  export interface ProviderGetFillsParams {
232
238
  address: Address
239
+ /** Maximum items returned; provider defaults and caps apply. */
233
240
  limit?: number
241
+ /** Opaque pagination cursor from the previous response. */
234
242
  cursor?: string
243
+ /** Include fills at or after this Unix timestamp in milliseconds. */
235
244
  startTime?: number
245
+ /** Include fills at or before this Unix timestamp in milliseconds. */
236
246
  endTime?: number
237
247
  }
238
248
 
@@ -243,10 +253,15 @@ export interface ProviderGetFillsParams {
243
253
  */
244
254
  export interface ProviderGetActivityParams {
245
255
  address: Address
256
+ /** Maximum items returned; provider defaults and caps apply. */
246
257
  limit?: number
258
+ /** Opaque pagination cursor from the previous response. */
247
259
  cursor?: string
260
+ /** Include activity at or after this Unix timestamp in milliseconds. */
248
261
  startTime?: number
262
+ /** Include activity at or before this Unix timestamp in milliseconds. */
249
263
  endTime?: number
264
+ /** Optional filter for activity types. */
250
265
  type?: ActivityType[]
251
266
  }
252
267
 
@@ -257,11 +272,13 @@ export interface ProviderGetActivityParams {
257
272
  * @public
258
273
  */
259
274
  export interface ProviderGetQuoteParams {
260
- /** Human `displaySymbol`, e.g. `"BTC"`. Resolved against the provider's own markets, scoped by `type`. */
275
+ /** Human `displaySymbol`, resolved against this provider and `type`. */
261
276
  symbol: string
277
+ /** Trade direction used to choose asks for buys or bids for sells. */
262
278
  side: QuoteSide
263
279
  /** USD notional to fill. */
264
280
  size: number
281
+ /** Product family used to disambiguate spot and perpetual markets. */
265
282
  type: TradeType
266
283
  }
267
284
 
@@ -175,7 +175,9 @@ export function effectiveLeverage(params: {
175
175
  * @public
176
176
  */
177
177
  export interface ExpectedPnl {
178
+ /** Signed expected profit/loss in USD. */
178
179
  amount: number
180
+ /** Signed expected return as a percentage (10 means 10%). */
179
181
  percent: number
180
182
  }
181
183
 
@@ -19,7 +19,11 @@ export interface FormatOptions {
19
19
  rounding?: RoundingMode
20
20
  }
21
21
 
22
- /** Rounding mode for {@link FormatOptions.rounding}. */
22
+ /**
23
+ * Rounding mode for {@link FormatOptions.rounding}.
24
+ *
25
+ * @public
26
+ */
23
27
  export type RoundingMode = 'halfUp' | 'floor'
24
28
 
25
29
  const DEFAULT_PLACEHOLDER = '—'
@@ -15,6 +15,11 @@ import {
15
15
  } from '@lifi/perps-types'
16
16
  import { stringToFloat } from './parse.js'
17
17
 
18
+ /**
19
+ * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
20
+ *
21
+ * @public
22
+ */
18
23
  export { FillClassification }
19
24
 
20
25
  const TP_TYPES = new Set<OrderType>([
@@ -1,9 +1,8 @@
1
1
  import {
2
- MarginMode,
3
2
  PerpsErrorCode,
4
3
  type Position,
5
- PositionMarginAdjustment,
6
4
  type PositionMarginConstraints,
5
+ positionSupportsMarginRemoval,
7
6
  } from '@lifi/perps-types'
8
7
  import Big from 'big.js'
9
8
  import { PerpsError } from '../errors/PerpsError.js'
@@ -66,11 +65,7 @@ export function removableIsolatedMargin({
66
65
  position,
67
66
  constraints,
68
67
  }: RemovableIsolatedMarginParams): string {
69
- if (
70
- position.marginMode !== MarginMode.ISOLATED ||
71
- position.market.positionMarginAdjustment !==
72
- PositionMarginAdjustment.ADD_AND_REMOVE
73
- ) {
68
+ if (!positionSupportsMarginRemoval(position)) {
74
69
  return '0'
75
70
  }
76
71
 
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/perps-sdk'
2
- export const version = '6.0.0'
2
+ export const version = '6.1.0'
@@ -18,7 +18,6 @@ import type {
18
18
  * @public
19
19
  */
20
20
  export type WsProviderFactory = (params: {
21
- /** Provider key (e.g. `'lighter'`, `'hyperliquid'`). */
22
21
  provider: string
23
22
  /** WS URL discovered from `/providers`. */
24
23
  wsUrl: string
@@ -44,7 +44,9 @@ const WS_PROVIDER_KEY = 'reconnecting-websocket'
44
44
  * @public
45
45
  */
46
46
  export interface ReconnectingWebSocketOptions {
47
+ /** Maximum reconnect attempts before status becomes `disconnected`; defaults to 10. */
47
48
  maxRetries?: number
49
+ /** Keepalive interval in milliseconds; defaults to 30,000. */
48
50
  pingIntervalMs?: number
49
51
  /**
50
52
  * Keepalive frame sent every `pingIntervalMs` while the socket is open.
@@ -52,9 +54,9 @@ export interface ReconnectingWebSocketOptions {
52
54
  */
53
55
  pingPayload?: string
54
56
  /**
55
- * Stale-stream watchdog window. With `pingPayload` configured, the socket is
56
- * force-reconnected when no inbound frame arrives within this window.
57
- * Defaults to 3× `pingIntervalMs`.
57
+ * Stale-stream watchdog window in milliseconds. With `pingPayload` configured,
58
+ * the socket is force-reconnected when no inbound frame arrives within this
59
+ * window. Defaults to 3× `pingIntervalMs`.
58
60
  */
59
61
  staleWindowMs?: number
60
62
  }
@@ -76,6 +76,13 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
76
76
  })
77
77
  }
78
78
 
79
+ /**
80
+ * Acquire a ref-counted subscription to a provider channel and return an
81
+ * idempotent release function. Optional status listeners are reference-counted
82
+ * alongside the channel listener.
83
+ *
84
+ * @public
85
+ */
79
86
  async subscribe(
80
87
  sub: Subscription,
81
88
  listener: SubscriptionListener,
@@ -112,6 +119,11 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
112
119
  }
113
120
  }
114
121
 
122
+ /**
123
+ * Reconnect the underlying socket only when it is terminally disconnected.
124
+ *
125
+ * @public
126
+ */
115
127
  reconnect(): void {
116
128
  if (this.rws.getStatus() !== 'disconnected') {
117
129
  return
@@ -119,6 +131,11 @@ export abstract class WsProviderBase<TSub = unknown> implements WsProvider {
119
131
  this.rws.reconnect()
120
132
  }
121
133
 
134
+ /**
135
+ * Release all channel and status listeners and close the underlying socket.
136
+ *
137
+ * @public
138
+ */
122
139
  close(): void {
123
140
  for (const entry of this.channels.values()) {
124
141
  if (entry.pendingTeardown !== undefined) {
@@ -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 function cachePromise<T>(
14
16
  read: () => Promise<T> | undefined,
@@ -50,6 +50,10 @@ export type WsStatusListener = (status: WsConnectionStatus) => void
50
50
  * @public
51
51
  */
52
52
  export interface WsProvider {
53
+ /**
54
+ * Subscribe to one venue channel and return an idempotent unsubscribe.
55
+ * `onStatus` receives the provider socket's health transitions.
56
+ */
53
57
  subscribe(
54
58
  sub: Subscription,
55
59
  listener: SubscriptionListener,
@@ -71,5 +75,6 @@ export interface WsProvider {
71
75
  params: ProviderGetQuoteParams,
72
76
  onQuote: QuoteListener
73
77
  ): Promise<() => void>
78
+ /** Permanently close the provider's realtime connection. */
74
79
  close(): void
75
80
  }