@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
@@ -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": "6.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": "^4.0.0"
48
+ "@lifi/perps-types": "^4.1.0"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public"
@@ -426,6 +426,8 @@ export class PerpsClient {
426
426
  * Roll an already-fetched {@link AccountResponse} (plus its positions) up
427
427
  * into an {@link AccountSummary}, delegating to the owning provider so the
428
428
  * venue-specific collateral and margin semantics are applied correctly.
429
+ *
430
+ * @public
429
431
  */
430
432
  getAccountSummary(
431
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'
@@ -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
  }
@@ -23,12 +23,20 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
23
23
  super(client, provider, 'market')
24
24
  }
25
25
 
26
- /** The most recently synced market list. Empty before the first {@link sync}. */
26
+ /**
27
+ * The most recently synced market list. Empty before the first {@link sync}.
28
+ *
29
+ * @public
30
+ */
27
31
  get markets(): readonly Market[] {
28
32
  return this.items
29
33
  }
30
34
 
31
- /** The synced markets that are available for live and write operations. */
35
+ /**
36
+ * The synced markets that are available for live and write operations.
37
+ *
38
+ * @public
39
+ */
32
40
  get activeMarkets(): readonly Market[] {
33
41
  return this.items.filter(isActiveMarket)
34
42
  }
@@ -37,10 +45,10 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
37
45
  * Lookup by `Market.id`, throwing when the backend list does not know the
38
46
  * id. The list is the source of truth for enriched historical and live
39
47
  * market metadata, so an id the venue references but the backend does not
40
- * know is a hard error —
41
- * never a silent fallback to an unenriched stand-in.
48
+ * know is a hard error — never a silent fallback to an unenriched stand-in.
42
49
  *
43
50
  * @throws {PerpsError} `MarketNotFound`.
51
+ * @public
44
52
  */
45
53
  require(marketId: string): Market {
46
54
  const market = this.get(marketId)
@@ -61,6 +69,7 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
61
69
  * rejects them.
62
70
  *
63
71
  * @throws {PerpsError} `MarketNotFound` when the market is absent or delisted.
72
+ * @public
64
73
  */
65
74
  requireActive(marketId: string): Market {
66
75
  const market = this.require(marketId)
@@ -91,7 +100,12 @@ export class MarketRegistry extends ReferenceDataRegistry<Market> {
91
100
 
92
101
  const registries = new WeakMap<PerpsSDKClient, Map<string, MarketRegistry>>()
93
102
 
94
- /** A market is active unless the provider explicitly marks it delisted. */
103
+ /**
104
+ * Return whether a market is available for live quoting and trading. A market
105
+ * remains active unless the backend explicitly sets `isDelisted` to `true`.
106
+ *
107
+ * @public
108
+ */
95
109
  export const isActiveMarket = (market: Market): boolean =>
96
110
  market.isDelisted !== true
97
111
 
@@ -16,8 +16,10 @@ import type { PerpsSDKClient } from '../types/provider.js'
16
16
  export interface CreateActionParams<T extends ActionType = ActionType> {
17
17
  provider: string
18
18
  address: Address
19
+ /** Optional provider-owned signer address sent to the backend. */
19
20
  signerAddress?: Address
20
21
  action: T
22
+ /** Action-specific payload matching `action`. */
21
23
  params: ActionParamsMap[T]
22
24
  }
23
25
 
@@ -16,7 +16,9 @@ import type { PerpsSDKClient } from '../types/provider.js'
16
16
  export interface ExecuteActionParams {
17
17
  provider: string
18
18
  address: Address
19
+ /** Optional provider-owned signer address used for submission. */
19
20
  signerAddress?: Address
21
+ /** Action descriptor shared by the signed steps. */
20
22
  action: ActionType
21
23
  actions: SignedActionStep[]
22
24
  }
@@ -12,11 +12,13 @@ import type { PerpsSDKClient } from '../types/provider.js'
12
12
  export interface GetActivityParams {
13
13
  provider: string
14
14
  address: Address
15
+ /** Maximum items returned; provider defaults and caps apply. */
15
16
  limit?: number
17
+ /** Opaque pagination cursor from the previous response. */
16
18
  cursor?: string
17
- /** Filter: activity after this timestamp (ms) */
19
+ /** Include activity at or after this Unix timestamp in milliseconds. */
18
20
  startTime?: number
19
- /** Filter: activity before this timestamp (ms) */
21
+ /** Include activity at or before this Unix timestamp in milliseconds. */
20
22
  endTime?: number
21
23
  type?: ActivityType[]
22
24
  }
@@ -12,11 +12,13 @@ import type { PerpsSDKClient } from '../types/provider.js'
12
12
  export interface GetFillsParams {
13
13
  provider: string
14
14
  address: Address
15
+ /** Maximum items returned; provider defaults and caps apply. */
15
16
  limit?: number
17
+ /** Opaque pagination cursor from the previous response. */
16
18
  cursor?: string
17
- /** Filter: fills after this timestamp (ms) */
19
+ /** Include fills at or after this Unix timestamp in milliseconds. */
18
20
  startTime?: number
19
- /** Filter: fills before this timestamp (ms) */
21
+ /** Include fills at or before this Unix timestamp in milliseconds. */
20
22
  endTime?: number
21
23
  }
22
24
 
@@ -11,7 +11,7 @@ import type { PerpsSDKClient } from '../types/provider.js'
11
11
  */
12
12
  export interface GetMarketsParams {
13
13
  provider: string
14
- /** Optional filter — opaque `Market.id`s (not display symbols). */
14
+ /** Optional comma-joined filter of opaque `Market.id`s. */
15
15
  marketIds?: string[]
16
16
  }
17
17
 
@@ -10,7 +10,7 @@ import type { PerpsSDKClient } from '../types/provider.js'
10
10
  */
11
11
  export interface GetMarketsContextParams {
12
12
  provider: string
13
- /** Optional filter — opaque `Market.id`s (not display symbols). */
13
+ /** Optional filter of opaque `Market.id`s (not display symbols). */
14
14
  marketIds?: string[]
15
15
  }
16
16
 
@@ -10,13 +10,14 @@ import type { PerpsSDKClient } from '../types/provider.js'
10
10
  */
11
11
  export interface GetOhlcvParams {
12
12
  provider: string
13
- /** Opaque provider `Market.id` (not `displaySymbol`). */
13
+ /** Opaque provider `Market.id`, not a display symbol. */
14
14
  marketId: string
15
15
  interval: OhlcvInterval
16
- /** Unix timestamp in milliseconds */
16
+ /** Unix timestamp in milliseconds for the start bound. */
17
17
  startTime?: number
18
- /** Unix timestamp in milliseconds */
18
+ /** Unix timestamp in milliseconds for the end bound. */
19
19
  endTime?: number
20
+ /** Maximum candles returned; provider defaults and caps apply. */
20
21
  limit?: number
21
22
  }
22
23
 
@@ -12,6 +12,7 @@ import type { PerpsSDKClient } from '../types/provider.js'
12
12
  export interface GetOrderParams {
13
13
  provider: string
14
14
  address: Address
15
+ /** Venue order id, opaque to the SDK. */
15
16
  id: string
16
17
  }
17
18
 
@@ -10,9 +10,9 @@ import type { PerpsSDKClient } from '../types/provider.js'
10
10
  */
11
11
  export interface GetOrderbookParams {
12
12
  provider: string
13
- /** Opaque provider `Market.id` (not `displaySymbol`). */
13
+ /** Opaque provider `Market.id`, not a display symbol. */
14
14
  marketId: string
15
- /** Number of levels to return (default varies by DEX) */
15
+ /** Optional number of price levels; venue defaults apply when omitted. */
16
16
  depth?: number
17
17
  }
18
18
 
@@ -12,9 +12,11 @@ import type { PerpsSDKClient } from '../types/provider.js'
12
12
  export interface GetOrdersParams {
13
13
  provider: string
14
14
  address: Address
15
- /** Optional filter — opaque `Market.id` (not `displaySymbol`) */
15
+ /** Optional opaque `Market.id` filter, not a display symbol. */
16
16
  marketId?: string
17
+ /** Maximum items returned; provider defaults and caps apply. */
17
18
  limit?: number
19
+ /** Opaque pagination cursor from the previous response. */
18
20
  cursor?: string
19
21
  }
20
22
 
@@ -12,9 +12,11 @@ import type { PerpsSDKClient } from '../types/provider.js'
12
12
  export interface GetPositionsParams {
13
13
  provider: string
14
14
  address: Address
15
- /** Optional filter — opaque `Market.id` (not `displaySymbol`) */
15
+ /** Optional opaque `Market.id` filter, not a display symbol. */
16
16
  marketId?: string
17
+ /** Maximum items returned; provider defaults and caps apply. */
17
18
  limit?: number
19
+ /** Opaque pagination cursor from the previous response. */
18
20
  cursor?: string
19
21
  }
20
22
 
@@ -10,11 +10,13 @@ import type { PerpsSDKClient } from '../types/provider.js'
10
10
  */
11
11
  export interface GetQuoteParams {
12
12
  provider: string
13
- /** Human `displaySymbol`, e.g. `"BTC"`. */
13
+ /** Human `displaySymbol`, e.g. `"BTC"`, resolved by the provider. */
14
14
  symbol: string
15
+ /** Buy consumes asks; sell consumes bids. */
15
16
  side: QuoteSide
16
17
  /** USD notional to fill. */
17
18
  size: number
19
+ /** Product family used to distinguish spot and perpetual markets. */
18
20
  type: TradeType
19
21
  }
20
22
 
@@ -15,6 +15,8 @@ import type { StorageAdapter } from './types.js'
15
15
  *
16
16
  * @param raw Stored string, or `null` when the key is absent.
17
17
  * @param isValid Shape guard run against the parsed value.
18
+ *
19
+ * @public
18
20
  */
19
21
  export function parseStoredRecord<T>(
20
22
  raw: string | null,
@@ -40,6 +42,8 @@ export function parseStoredRecord<T>(
40
42
  * Returns `null` for both the genuine-absence and the evicted-poison cases;
41
43
  * callers that must distinguish them should compare against the pre-read
42
44
  * presence of the key themselves.
45
+ *
46
+ * @public
43
47
  */
44
48
  export async function readValidatedRecord<T>(
45
49
  storage: StorageAdapter,
@@ -1,13 +1,17 @@
1
1
  /**
2
- * Storage adapter interface for persisting SDK session credentials (provider
3
- * agent keypairs, API keys, read-only tokens). Implement this to use custom
4
- * storage (e.g. encrypted storage, a database, async key-value stores).
2
+ * Asynchronous key-value storage for SDK session credentials (provider agent
3
+ * keypairs, API keys, and read-only tokens). Values are opaque strings; an
4
+ * adapter should preserve them exactly and return `null` when a key is absent.
5
+ * Implement this interface for encrypted storage, a database, or another
6
+ * application-owned store.
7
+ *
8
+ * @public
5
9
  */
6
10
  export interface StorageAdapter {
7
- /** Get a value by key. */
11
+ /** Read the value for `key`, or `null` when the key is absent. */
8
12
  get(key: string): Promise<string | null>
9
- /** Set a value by key. */
13
+ /** Persist `value` under `key`, replacing any existing value. */
10
14
  set(key: string, value: string): Promise<void>
11
- /** Remove a value by key. */
15
+ /** Remove `key`; resolving successfully when it is already absent. */
12
16
  remove(key: string): Promise<void>
13
17
  }
@@ -7,8 +7,11 @@ import type { ResolvedRetryPolicy, RetryClassification } from './retryPolicy.js'
7
7
  * @public
8
8
  */
9
9
  export interface FetchWithRetryOptions {
10
+ /** Fully resolved retry policy controlling attempts, delays, and classification. */
10
11
  policy: ResolvedRetryPolicy
12
+ /** Optional fetch implementation; defaults to the global `fetch`. */
11
13
  fetchImpl?: typeof fetch
14
+ /** Abort signal; cancellation is propagated without retrying. */
12
15
  signal?: AbortSignal
13
16
  }
14
17
 
@@ -24,6 +24,7 @@ export type RetryClassification =
24
24
  * @public
25
25
  */
26
26
  export interface RetryClassifyContext {
27
+ /** Non-2xx response being classified for retry or terminal failure. */
27
28
  response: Response
28
29
  }
29
30
 
@@ -34,9 +35,13 @@ export interface RetryClassifyContext {
34
35
  * @public
35
36
  */
36
37
  export interface RetryAttemptContext {
38
+ /** Zero-based attempt index for the response/error. */
37
39
  attempt: number
40
+ /** Response received, when the attempt reached the server. */
38
41
  response?: Response
42
+ /** Network error thrown before a response was received. */
39
43
  error?: unknown
44
+ /** Classification returned by the policy's classifier. */
40
45
  classification: RetryClassification
41
46
  }
42
47
 
@@ -50,11 +55,17 @@ export interface RetryAttemptContext {
50
55
  * @public
51
56
  */
52
57
  export interface RetryPolicy {
58
+ /** Maximum total attempts, including the initial request. */
53
59
  maxAttempts?: number
60
+ /** Initial exponential-backoff ceiling in milliseconds. */
54
61
  baseDelayMs?: number
62
+ /** Maximum backoff delay in milliseconds. */
55
63
  maxDelayMs?: number
64
+ /** Whether a valid `Retry-After` response header takes precedence. */
56
65
  respectRetryAfter?: boolean
66
+ /** Classify a response; `undefined` delegates to the base classifier. */
57
67
  classify?: (ctx: RetryClassifyContext) => RetryClassification | undefined
68
+ /** Final per-attempt veto after classification requests a retry. */
58
69
  shouldRetry?: (ctx: RetryAttemptContext) => boolean | Promise<boolean>
59
70
  }
60
71
 
@@ -65,12 +76,19 @@ export interface RetryPolicy {
65
76
  * @public
66
77
  */
67
78
  export interface ResolvedRetryPolicy {
79
+ /** Whether retries are enabled. */
68
80
  enabled: boolean
81
+ /** Maximum total attempts, including the initial request. */
69
82
  maxAttempts: number
83
+ /** Initial exponential-backoff ceiling in milliseconds. */
70
84
  baseDelayMs: number
85
+ /** Maximum backoff delay in milliseconds. */
71
86
  maxDelayMs: number
87
+ /** Whether a valid `Retry-After` header is honored. */
72
88
  respectRetryAfter: boolean
89
+ /** Final response classifier used for each failed attempt. */
73
90
  classify: (ctx: RetryClassifyContext) => RetryClassification
91
+ /** Optional final veto after classification requests a retry. */
74
92
  shouldRetry?: (ctx: RetryAttemptContext) => boolean | Promise<boolean>
75
93
  }
76
94
 
@@ -82,7 +100,9 @@ export interface ResolvedRetryPolicy {
82
100
  * @public
83
101
  */
84
102
  export interface ProviderRetryConfig {
103
+ /** Fallback policy for providers without an explicit key. */
85
104
  default?: RetryPolicy | false
105
+ /** Override keyed by provider type, or `lifi` for backend requests. */
86
106
  [providerKey: string]: RetryPolicy | false | undefined
87
107
  }
88
108
 
package/src/types/api.ts CHANGED
@@ -28,10 +28,15 @@ import type { PerpsProviderPlugin } from './provider.js'
28
28
  * @public
29
29
  */
30
30
  export interface PerpsConfig {
31
+ /** Integrator identifier sent in the `x-lifi-integrator` request header. */
31
32
  integrator: string
33
+ /** LI.FI API key used for authenticated backend requests. */
32
34
  apiKey: string
35
+ /** Perps API base URL; defaults to {@link DEFAULT_API_URL}. */
33
36
  apiUrl?: string
37
+ /** Skip the SDK-version compatibility check when set. */
34
38
  disableVersionCheck?: boolean
39
+ /** Hook that can rewrite URL/request options before transport. */
35
40
  requestInterceptor?: RequestInterceptor
36
41
  /**
37
42
  * Provider plugins or per-provider config. Two shapes are accepted:
@@ -79,10 +84,11 @@ export interface PerpsConfig {
79
84
  * @public
80
85
  */
81
86
  export interface PerpsClientOptions {
87
+ /** Integrator identifier sent in the `x-lifi-integrator` request header. */
82
88
  integrator: string
83
- /** API key for authenticated requests (get one at https://portal.li.fi/) */
89
+ /** API key for authenticated requests (get one at https://portal.li.fi/). */
84
90
  apiKey: string
85
- /** Defaults to DEFAULT_API_URL */
91
+ /** Perps API base URL; defaults to {@link DEFAULT_API_URL}. */
86
92
  apiUrl?: string
87
93
  /**
88
94
  * Provider plugins or per-provider config. Accepts the same two shapes as
@@ -117,11 +123,15 @@ export interface BuildProviderSetupParams {
117
123
  export interface PlaceOrderParams {
118
124
  provider: string
119
125
  address: Address
126
+ /** Opaque provider market reference. */
120
127
  market: MarketRef
121
128
  side: OrderSide
122
129
  type: OrderType
130
+ /** Base-asset size as a decimal wire string. */
123
131
  size: string
132
+ /** Limit price as a decimal wire string; required by limit-style orders. */
124
133
  price: string
134
+ /** Optional leverage multiplier; provider defaults apply when omitted. */
125
135
  leverage?: number
126
136
  /**
127
137
  * Margin mode the order trades under; omitted falls to the venue's cross
@@ -129,8 +139,11 @@ export interface PlaceOrderParams {
129
139
  * applies it via a prepended leverage update (requires `leverage`).
130
140
  */
131
141
  marginMode?: MarginMode
142
+ /** Whether the order may only reduce an existing position. */
132
143
  reduceOnly?: boolean
144
+ /** Time-in-force policy; provider defaults apply when omitted. */
133
145
  timeInForce?: TimeInForce
146
+ /** Optional Unix timestamp or provider wire expiry string. */
134
147
  expiresAt?: string
135
148
  takeProfit?: TriggerOrderInput
136
149
  stopLoss?: TriggerOrderInput
@@ -145,6 +158,7 @@ export interface PlaceOrderParams {
145
158
  export interface PlaceTriggerOrderParams {
146
159
  provider: string
147
160
  address: Address
161
+ /** Opaque provider market reference. */
148
162
  market: MarketRef
149
163
  side: OrderSide
150
164
  takeProfit?: TriggerOrderInput
@@ -159,6 +173,7 @@ export interface PlaceTriggerOrderParams {
159
173
  export interface WithdrawParams {
160
174
  provider: string
161
175
  address: Address
176
+ /** Provider-specific withdrawal payload, including amount/destination. */
162
177
  withdrawal: WithdrawalParams
163
178
  }
164
179
 
@@ -172,11 +187,13 @@ export interface WithdrawParams {
172
187
  export interface SendAssetActionParams {
173
188
  provider: string
174
189
  address: Address
175
- /** Canonical `Asset.id` of the asset being moved (for Hyperliquid spot
176
- * assets, the token index as a string) — never a display symbol. */
190
+ /** Canonical `Asset.id` (Hyperliquid spot uses the token index as a string); never a display symbol. */
177
191
  collateral: string
192
+ /** Source DEX/account identifier understood by the provider. */
178
193
  sourceDex: string
194
+ /** Destination DEX/account identifier understood by the provider. */
179
195
  destinationDex: string
196
+ /** Transfer amount as a provider-compatible decimal wire string. */
180
197
  amount: string
181
198
  }
182
199
 
@@ -188,10 +205,9 @@ export interface SendAssetActionParams {
188
205
  export interface CancelOrdersParams {
189
206
  provider: string
190
207
  address: Address
191
- /** Venue order ids. Venues whose ids are scoped per market (e.g. Lighter's
192
- * `order_index`) also accept the composite `"<market_id>:<order_id>"`. */
208
+ /** Venue order ids. Market-scoped venues such as Lighter also accept `"<market_id>:<order_id>"`. */
193
209
  ids: string[]
194
- /** Market context for per-market order ids; the order's `market.id`. */
210
+ /** Market context for per-market order ids; use the order's opaque `market.id`. */
195
211
  assetId?: string
196
212
  }
197
213
 
@@ -203,6 +219,7 @@ export interface CancelOrdersParams {
203
219
  export interface ModifyOrdersParams {
204
220
  provider: string
205
221
  address: Address
222
+ /** Provider-specific order modifications. */
206
223
  modifications: ModifyOrderInput[]
207
224
  }
208
225
 
@@ -257,9 +274,7 @@ export interface ProviderSetup {
257
274
  * Parameters for the internal `PerpsClient.executeProviderSetup` batch submit.
258
275
  */
259
276
  export interface ExecuteProviderSetupParams {
260
- /** Provider to satisfy setup for */
261
277
  provider: string
262
- /** User wallet address */
263
278
  address: Address
264
279
  /** The unsatisfied setup steps from checkSetup() */
265
280
  setup: ActionStep[]
@@ -30,6 +30,7 @@ export type SwitchChainHook = (
30
30
  * @public
31
31
  */
32
32
  export interface ProviderConfig {
33
+ /** Optional provider category/market ids used to filter WS subscriptions. */
33
34
  markets?: string[]
34
35
  }
35
36
 
@@ -64,6 +65,7 @@ export type RequestInterceptor = (
64
65
  * @public
65
66
  */
66
67
  export interface SDKRequestOptions {
68
+ /** Abort the request and any pending backoff delay. */
67
69
  signal?: AbortSignal
68
70
  /**
69
71
  * Lighter auth token consumed by provider-direct venue reads (getOrders,
@@ -85,12 +87,20 @@ export interface SDKRequestOptions {
85
87
  * @public
86
88
  */
87
89
  export interface PerpsBaseConfig {
90
+ /** Integrator identifier sent in the `x-lifi-integrator` header. */
88
91
  integrator: string
92
+ /** API key applied to backend requests when non-empty. */
89
93
  apiKey: string
94
+ /** Resolved perps API base URL. */
90
95
  apiUrl: string
96
+ /** Whether SDK version compatibility checks are disabled. */
91
97
  disableVersionCheck?: boolean
98
+ /** Optional outgoing-request URL/options interceptor. */
92
99
  requestInterceptor?: RequestInterceptor
100
+ /** Optional per-provider WS market filters. */
93
101
  providers?: ProviderConfigs
102
+ /** Optional global or per-provider retry configuration. */
94
103
  retry?: RetryConfig
104
+ /** Fetch implementation used by core HTTP transport. */
95
105
  fetch?: typeof fetch
96
106
  }