@lifi/perps-sdk 0.1.1-alpha.4 → 0.1.1-alpha.40

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 (595) hide show
  1. package/README.md +38 -15
  2. package/dist/cjs/agent/AgentManager.d.ts +5 -5
  3. package/dist/cjs/agent/AgentManager.d.ts.map +1 -1
  4. package/dist/cjs/agent/AgentManager.js +16 -14
  5. package/dist/cjs/agent/AgentManager.js.map +1 -1
  6. package/dist/cjs/client/PerpsClient.d.ts +70 -21
  7. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  8. package/dist/cjs/client/PerpsClient.js +323 -175
  9. package/dist/cjs/client/PerpsClient.js.map +1 -1
  10. package/dist/cjs/client/createPerpsClient.d.ts +12 -2
  11. package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
  12. package/dist/cjs/client/createPerpsClient.js +6 -5
  13. package/dist/cjs/client/createPerpsClient.js.map +1 -1
  14. package/dist/cjs/client/types.d.ts +42 -25
  15. package/dist/cjs/client/types.d.ts.map +1 -1
  16. package/dist/cjs/client/types.js +6 -0
  17. package/dist/cjs/client/types.js.map +1 -1
  18. package/dist/cjs/errors/PerpsError.d.ts +2 -3
  19. package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
  20. package/dist/cjs/errors/PerpsError.js +3 -15
  21. package/dist/cjs/errors/PerpsError.js.map +1 -1
  22. package/dist/cjs/errors/constants.d.ts +0 -10
  23. package/dist/cjs/errors/constants.d.ts.map +1 -1
  24. package/dist/cjs/errors/constants.js +1 -12
  25. package/dist/cjs/errors/constants.js.map +1 -1
  26. package/dist/cjs/index.d.ts +31 -32
  27. package/dist/cjs/index.d.ts.map +1 -1
  28. package/dist/cjs/index.js +58 -42
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/cjs/realtime/PerpsWsClient.d.ts +1 -0
  31. package/dist/cjs/realtime/PerpsWsClient.d.ts.map +1 -1
  32. package/dist/cjs/realtime/PerpsWsClient.js +28 -23
  33. package/dist/cjs/realtime/PerpsWsClient.js.map +1 -1
  34. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts +9 -5
  35. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
  36. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +162 -52
  37. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
  38. package/dist/cjs/realtime/hyperliquid/types.d.ts +11 -9
  39. package/dist/cjs/realtime/hyperliquid/types.d.ts.map +1 -1
  40. package/dist/cjs/services/createAction.d.ts +11 -0
  41. package/dist/cjs/services/createAction.d.ts.map +1 -0
  42. package/dist/cjs/services/{submitAuthorization.js → createAction.js} +7 -6
  43. package/dist/cjs/services/createAction.js.map +1 -0
  44. package/dist/cjs/services/executeAction.d.ts +11 -0
  45. package/dist/cjs/services/executeAction.d.ts.map +1 -0
  46. package/dist/cjs/services/{submitOrder.js → executeAction.js} +6 -5
  47. package/dist/cjs/services/executeAction.js.map +1 -0
  48. package/dist/cjs/services/getAccount.d.ts +1 -1
  49. package/dist/cjs/services/getAccount.d.ts.map +1 -1
  50. package/dist/cjs/services/getAccount.js +1 -1
  51. package/dist/cjs/services/getAccount.js.map +1 -1
  52. package/dist/cjs/services/getActivity.d.ts +13 -0
  53. package/dist/cjs/services/getActivity.d.ts.map +1 -0
  54. package/dist/cjs/services/getActivity.js +21 -0
  55. package/dist/cjs/services/getActivity.js.map +1 -0
  56. package/dist/cjs/services/getAsset.d.ts +8 -0
  57. package/dist/cjs/services/getAsset.d.ts.map +1 -0
  58. package/dist/cjs/services/{getMarkets.js → getAsset.js} +6 -4
  59. package/dist/cjs/services/getAsset.js.map +1 -0
  60. package/dist/cjs/services/getAssets.d.ts +7 -0
  61. package/dist/cjs/services/getAssets.d.ts.map +1 -0
  62. package/dist/cjs/services/{getMarket.js → getAssets.js} +5 -5
  63. package/dist/cjs/services/getAssets.js.map +1 -0
  64. package/dist/cjs/services/getFills.d.ts +12 -0
  65. package/dist/cjs/services/getFills.d.ts.map +1 -0
  66. package/dist/cjs/services/{getHistory.js → getFills.js} +7 -5
  67. package/dist/cjs/services/getFills.js.map +1 -0
  68. package/dist/cjs/services/getOhlcv.d.ts +1 -1
  69. package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
  70. package/dist/cjs/services/getOhlcv.js +1 -1
  71. package/dist/cjs/services/getOhlcv.js.map +1 -1
  72. package/dist/cjs/services/getOrder.d.ts +1 -1
  73. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  74. package/dist/cjs/services/getOrder.js +1 -1
  75. package/dist/cjs/services/getOrder.js.map +1 -1
  76. package/dist/cjs/services/getOrderbook.d.ts +1 -1
  77. package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
  78. package/dist/cjs/services/getOrderbook.js +1 -1
  79. package/dist/cjs/services/getOrderbook.js.map +1 -1
  80. package/dist/cjs/services/getOrders.d.ts +11 -0
  81. package/dist/cjs/services/getOrders.d.ts.map +1 -0
  82. package/dist/cjs/services/getOrders.js +15 -0
  83. package/dist/cjs/services/getOrders.js.map +1 -0
  84. package/dist/cjs/services/getPositions.d.ts +11 -0
  85. package/dist/cjs/services/getPositions.d.ts.map +1 -0
  86. package/dist/cjs/services/getPositions.js +15 -0
  87. package/dist/cjs/services/getPositions.js.map +1 -0
  88. package/dist/cjs/services/getPrices.d.ts +1 -1
  89. package/dist/cjs/services/getPrices.d.ts.map +1 -1
  90. package/dist/cjs/services/getPrices.js +1 -1
  91. package/dist/cjs/services/getPrices.js.map +1 -1
  92. package/dist/cjs/services/getProviders.d.ts +4 -0
  93. package/dist/cjs/services/getProviders.d.ts.map +1 -0
  94. package/dist/cjs/services/{getDexes.js → getProviders.js} +4 -4
  95. package/dist/cjs/services/getProviders.js.map +1 -0
  96. package/dist/cjs/utils/accountSummary.d.ts +9 -0
  97. package/dist/cjs/utils/accountSummary.d.ts.map +1 -0
  98. package/dist/cjs/utils/accountSummary.js +81 -0
  99. package/dist/cjs/utils/accountSummary.js.map +1 -0
  100. package/dist/cjs/utils/calculations.d.ts +16 -0
  101. package/dist/cjs/utils/calculations.d.ts.map +1 -0
  102. package/dist/cjs/utils/calculations.js +71 -0
  103. package/dist/cjs/utils/calculations.js.map +1 -0
  104. package/dist/cjs/utils/hyperliquid/index.d.ts +3 -0
  105. package/dist/cjs/utils/hyperliquid/index.d.ts.map +1 -0
  106. package/dist/cjs/utils/hyperliquid/index.js +11 -0
  107. package/dist/cjs/utils/hyperliquid/index.js.map +1 -0
  108. package/dist/cjs/utils/hyperliquid/liquidation.d.ts +3 -0
  109. package/dist/cjs/utils/hyperliquid/liquidation.d.ts.map +1 -0
  110. package/dist/cjs/utils/hyperliquid/liquidation.js +24 -0
  111. package/dist/cjs/utils/hyperliquid/liquidation.js.map +1 -0
  112. package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts +4 -0
  113. package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
  114. package/dist/cjs/utils/hyperliquid/orderFormatting.js +33 -0
  115. package/dist/cjs/utils/hyperliquid/orderFormatting.js.map +1 -0
  116. package/dist/cjs/utils/orderClassification.d.ts +8 -0
  117. package/dist/cjs/utils/orderClassification.d.ts.map +1 -0
  118. package/dist/cjs/utils/orderClassification.js +39 -0
  119. package/dist/cjs/utils/orderClassification.js.map +1 -0
  120. package/dist/cjs/utils/parse.d.ts +2 -0
  121. package/dist/cjs/utils/parse.d.ts.map +1 -0
  122. package/dist/cjs/utils/parse.js +14 -0
  123. package/dist/cjs/utils/parse.js.map +1 -0
  124. package/dist/cjs/utils/request.d.ts.map +1 -1
  125. package/dist/cjs/utils/request.js +16 -4
  126. package/dist/cjs/utils/request.js.map +1 -1
  127. package/dist/cjs/utils/units.d.ts +3 -0
  128. package/dist/cjs/utils/units.d.ts.map +1 -0
  129. package/dist/cjs/utils/units.js +18 -0
  130. package/dist/cjs/utils/units.js.map +1 -0
  131. package/dist/cjs/utils/validation.d.ts +2 -0
  132. package/dist/cjs/utils/validation.d.ts.map +1 -0
  133. package/dist/cjs/utils/validation.js +16 -0
  134. package/dist/cjs/utils/validation.js.map +1 -0
  135. package/dist/cjs/version.d.ts +1 -1
  136. package/dist/cjs/version.d.ts.map +1 -1
  137. package/dist/cjs/version.js +1 -1
  138. package/dist/cjs/version.js.map +1 -1
  139. package/dist/esm/agent/AgentManager.d.ts +9 -9
  140. package/dist/esm/agent/AgentManager.d.ts.map +1 -1
  141. package/dist/esm/agent/AgentManager.js +20 -18
  142. package/dist/esm/agent/AgentManager.js.map +1 -1
  143. package/dist/esm/agent/storage.d.ts +1 -1
  144. package/dist/esm/agent/storage.js +1 -1
  145. package/dist/esm/client/PerpsClient.d.ts +70 -189
  146. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  147. package/dist/esm/client/PerpsClient.js +355 -361
  148. package/dist/esm/client/PerpsClient.js.map +1 -1
  149. package/dist/esm/client/createPerpsClient.d.ts +30 -7
  150. package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
  151. package/dist/esm/client/createPerpsClient.js +6 -6
  152. package/dist/esm/client/createPerpsClient.js.map +1 -1
  153. package/dist/esm/client/types.d.ts +75 -48
  154. package/dist/esm/client/types.d.ts.map +1 -1
  155. package/dist/esm/client/types.js +11 -1
  156. package/dist/esm/client/types.js.map +1 -1
  157. package/dist/esm/errors/PerpsError.d.ts +2 -3
  158. package/dist/esm/errors/PerpsError.d.ts.map +1 -1
  159. package/dist/esm/errors/PerpsError.js +3 -15
  160. package/dist/esm/errors/PerpsError.js.map +1 -1
  161. package/dist/esm/errors/constants.d.ts +0 -10
  162. package/dist/esm/errors/constants.d.ts.map +1 -1
  163. package/dist/esm/errors/constants.js +0 -11
  164. package/dist/esm/errors/constants.js.map +1 -1
  165. package/dist/esm/index.d.ts +31 -32
  166. package/dist/esm/index.d.ts.map +1 -1
  167. package/dist/esm/index.js +22 -23
  168. package/dist/esm/index.js.map +1 -1
  169. package/dist/esm/realtime/PerpsWsClient.d.ts +1 -0
  170. package/dist/esm/realtime/PerpsWsClient.d.ts.map +1 -1
  171. package/dist/esm/realtime/PerpsWsClient.js +30 -23
  172. package/dist/esm/realtime/PerpsWsClient.js.map +1 -1
  173. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
  174. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
  175. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +174 -53
  176. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
  177. package/dist/esm/realtime/hyperliquid/types.d.ts +11 -9
  178. package/dist/esm/realtime/hyperliquid/types.d.ts.map +1 -1
  179. package/dist/esm/services/createAction.d.ts +11 -0
  180. package/dist/esm/services/createAction.d.ts.map +1 -0
  181. package/dist/esm/services/createAction.js +14 -0
  182. package/dist/esm/services/createAction.js.map +1 -0
  183. package/dist/esm/services/executeAction.d.ts +11 -0
  184. package/dist/esm/services/executeAction.d.ts.map +1 -0
  185. package/dist/esm/services/executeAction.js +14 -0
  186. package/dist/esm/services/executeAction.js.map +1 -0
  187. package/dist/esm/services/getAccount.d.ts +7 -7
  188. package/dist/esm/services/getAccount.d.ts.map +1 -1
  189. package/dist/esm/services/getAccount.js +6 -6
  190. package/dist/esm/services/getAccount.js.map +1 -1
  191. package/dist/esm/services/getActivity.d.ts +49 -0
  192. package/dist/esm/services/getActivity.d.ts.map +1 -0
  193. package/dist/esm/services/getActivity.js +47 -0
  194. package/dist/esm/services/getActivity.js.map +1 -0
  195. package/dist/esm/services/getAsset.d.ts +20 -0
  196. package/dist/esm/services/getAsset.d.ts.map +1 -0
  197. package/dist/esm/services/getAsset.js +18 -0
  198. package/dist/esm/services/getAsset.js.map +1 -0
  199. package/dist/esm/services/getAssets.d.ts +18 -0
  200. package/dist/esm/services/getAssets.d.ts.map +1 -0
  201. package/dist/esm/services/getAssets.js +18 -0
  202. package/dist/esm/services/getAssets.js.map +1 -0
  203. package/dist/{types/services/getHistory.d.ts → esm/services/getFills.d.ts} +17 -13
  204. package/dist/esm/services/getFills.d.ts.map +1 -0
  205. package/dist/esm/services/{getHistory.js → getFills.js} +13 -11
  206. package/dist/esm/services/getFills.js.map +1 -0
  207. package/dist/esm/services/getOhlcv.d.ts +4 -4
  208. package/dist/esm/services/getOhlcv.d.ts.map +1 -1
  209. package/dist/esm/services/getOhlcv.js +3 -3
  210. package/dist/esm/services/getOhlcv.js.map +1 -1
  211. package/dist/esm/services/getOrder.d.ts +4 -4
  212. package/dist/esm/services/getOrder.d.ts.map +1 -1
  213. package/dist/esm/services/getOrder.js +3 -3
  214. package/dist/esm/services/getOrder.js.map +1 -1
  215. package/dist/esm/services/getOrderbook.d.ts +4 -4
  216. package/dist/esm/services/getOrderbook.d.ts.map +1 -1
  217. package/dist/esm/services/getOrderbook.js +3 -3
  218. package/dist/esm/services/getOrderbook.js.map +1 -1
  219. package/dist/esm/services/getOrders.d.ts +27 -0
  220. package/dist/esm/services/getOrders.d.ts.map +1 -0
  221. package/dist/esm/services/getOrders.js +23 -0
  222. package/dist/esm/services/getOrders.js.map +1 -0
  223. package/dist/esm/services/getPositions.d.ts +27 -0
  224. package/dist/esm/services/getPositions.d.ts.map +1 -0
  225. package/dist/esm/services/getPositions.js +23 -0
  226. package/dist/esm/services/getPositions.js.map +1 -0
  227. package/dist/esm/services/getPrices.d.ts +5 -5
  228. package/dist/esm/services/getPrices.d.ts.map +1 -1
  229. package/dist/esm/services/getPrices.js +4 -4
  230. package/dist/esm/services/getPrices.js.map +1 -1
  231. package/dist/esm/services/getProviders.d.ts +20 -0
  232. package/dist/esm/services/getProviders.d.ts.map +1 -0
  233. package/dist/esm/services/getProviders.js +21 -0
  234. package/dist/esm/services/getProviders.js.map +1 -0
  235. package/dist/esm/utils/accountSummary.d.ts +13 -0
  236. package/dist/esm/utils/accountSummary.d.ts.map +1 -0
  237. package/dist/esm/utils/accountSummary.js +92 -0
  238. package/dist/esm/utils/accountSummary.js.map +1 -0
  239. package/dist/esm/utils/calculations.d.ts +109 -0
  240. package/dist/esm/utils/calculations.d.ts.map +1 -0
  241. package/dist/esm/utils/calculations.js +154 -0
  242. package/dist/esm/utils/calculations.js.map +1 -0
  243. package/dist/esm/utils/hyperliquid/index.d.ts +3 -0
  244. package/dist/esm/utils/hyperliquid/index.d.ts.map +1 -0
  245. package/dist/esm/utils/hyperliquid/index.js +3 -0
  246. package/dist/esm/utils/hyperliquid/index.js.map +1 -0
  247. package/dist/esm/utils/hyperliquid/liquidation.d.ts +46 -0
  248. package/dist/esm/utils/hyperliquid/liquidation.d.ts.map +1 -0
  249. package/dist/esm/utils/hyperliquid/liquidation.js +63 -0
  250. package/dist/esm/utils/hyperliquid/liquidation.js.map +1 -0
  251. package/dist/esm/utils/hyperliquid/orderFormatting.d.ts +44 -0
  252. package/dist/esm/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
  253. package/dist/esm/utils/hyperliquid/orderFormatting.js +79 -0
  254. package/dist/esm/utils/hyperliquid/orderFormatting.js.map +1 -0
  255. package/dist/esm/utils/orderClassification.d.ts +29 -0
  256. package/dist/esm/utils/orderClassification.d.ts.map +1 -0
  257. package/dist/esm/utils/orderClassification.js +53 -0
  258. package/dist/esm/utils/orderClassification.js.map +1 -0
  259. package/dist/esm/utils/parse.d.ts +18 -0
  260. package/dist/esm/utils/parse.d.ts.map +1 -0
  261. package/dist/esm/utils/parse.js +28 -0
  262. package/dist/esm/utils/parse.js.map +1 -0
  263. package/dist/esm/utils/request.d.ts +1 -2
  264. package/dist/esm/utils/request.d.ts.map +1 -1
  265. package/dist/esm/utils/request.js +20 -7
  266. package/dist/esm/utils/request.js.map +1 -1
  267. package/dist/esm/utils/units.d.ts +20 -0
  268. package/dist/esm/utils/units.d.ts.map +1 -0
  269. package/dist/esm/utils/units.js +31 -0
  270. package/dist/esm/utils/units.js.map +1 -0
  271. package/dist/esm/utils/validation.d.ts +15 -0
  272. package/dist/esm/utils/validation.d.ts.map +1 -0
  273. package/dist/esm/utils/validation.js +26 -0
  274. package/dist/esm/utils/validation.js.map +1 -0
  275. package/dist/esm/version.d.ts +1 -1
  276. package/dist/esm/version.d.ts.map +1 -1
  277. package/dist/esm/version.js +1 -1
  278. package/dist/esm/version.js.map +1 -1
  279. package/dist/types/agent/AgentManager.d.ts +9 -9
  280. package/dist/types/agent/AgentManager.d.ts.map +1 -1
  281. package/dist/types/agent/storage.d.ts +1 -1
  282. package/dist/types/client/PerpsClient.d.ts +70 -189
  283. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  284. package/dist/types/client/createPerpsClient.d.ts +30 -7
  285. package/dist/types/client/createPerpsClient.d.ts.map +1 -1
  286. package/dist/types/client/types.d.ts +75 -48
  287. package/dist/types/client/types.d.ts.map +1 -1
  288. package/dist/types/errors/PerpsError.d.ts +2 -3
  289. package/dist/types/errors/PerpsError.d.ts.map +1 -1
  290. package/dist/types/errors/constants.d.ts +0 -10
  291. package/dist/types/errors/constants.d.ts.map +1 -1
  292. package/dist/types/index.d.ts +31 -32
  293. package/dist/types/index.d.ts.map +1 -1
  294. package/dist/types/realtime/PerpsWsClient.d.ts +1 -0
  295. package/dist/types/realtime/PerpsWsClient.d.ts.map +1 -1
  296. package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
  297. package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
  298. package/dist/types/realtime/hyperliquid/types.d.ts +11 -9
  299. package/dist/types/realtime/hyperliquid/types.d.ts.map +1 -1
  300. package/dist/types/services/createAction.d.ts +11 -0
  301. package/dist/types/services/createAction.d.ts.map +1 -0
  302. package/dist/types/services/executeAction.d.ts +11 -0
  303. package/dist/types/services/executeAction.d.ts.map +1 -0
  304. package/dist/types/services/getAccount.d.ts +7 -7
  305. package/dist/types/services/getAccount.d.ts.map +1 -1
  306. package/dist/types/services/getActivity.d.ts +49 -0
  307. package/dist/types/services/getActivity.d.ts.map +1 -0
  308. package/dist/types/services/getAsset.d.ts +20 -0
  309. package/dist/types/services/getAsset.d.ts.map +1 -0
  310. package/dist/types/services/getAssets.d.ts +18 -0
  311. package/dist/types/services/getAssets.d.ts.map +1 -0
  312. package/dist/{esm/services/getHistory.d.ts → types/services/getFills.d.ts} +17 -13
  313. package/dist/types/services/getFills.d.ts.map +1 -0
  314. package/dist/types/services/getOhlcv.d.ts +4 -4
  315. package/dist/types/services/getOhlcv.d.ts.map +1 -1
  316. package/dist/types/services/getOrder.d.ts +4 -4
  317. package/dist/types/services/getOrder.d.ts.map +1 -1
  318. package/dist/types/services/getOrderbook.d.ts +4 -4
  319. package/dist/types/services/getOrderbook.d.ts.map +1 -1
  320. package/dist/types/services/getOrders.d.ts +27 -0
  321. package/dist/types/services/getOrders.d.ts.map +1 -0
  322. package/dist/types/services/getPositions.d.ts +27 -0
  323. package/dist/types/services/getPositions.d.ts.map +1 -0
  324. package/dist/types/services/getPrices.d.ts +5 -5
  325. package/dist/types/services/getPrices.d.ts.map +1 -1
  326. package/dist/types/services/getProviders.d.ts +20 -0
  327. package/dist/types/services/getProviders.d.ts.map +1 -0
  328. package/dist/types/utils/accountSummary.d.ts +13 -0
  329. package/dist/types/utils/accountSummary.d.ts.map +1 -0
  330. package/dist/types/utils/calculations.d.ts +109 -0
  331. package/dist/types/utils/calculations.d.ts.map +1 -0
  332. package/dist/types/utils/hyperliquid/index.d.ts +3 -0
  333. package/dist/types/utils/hyperliquid/index.d.ts.map +1 -0
  334. package/dist/types/utils/hyperliquid/liquidation.d.ts +46 -0
  335. package/dist/types/utils/hyperliquid/liquidation.d.ts.map +1 -0
  336. package/dist/types/utils/hyperliquid/orderFormatting.d.ts +44 -0
  337. package/dist/types/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
  338. package/dist/types/utils/orderClassification.d.ts +29 -0
  339. package/dist/types/utils/orderClassification.d.ts.map +1 -0
  340. package/dist/types/utils/parse.d.ts +18 -0
  341. package/dist/types/utils/parse.d.ts.map +1 -0
  342. package/dist/types/utils/request.d.ts +1 -2
  343. package/dist/types/utils/request.d.ts.map +1 -1
  344. package/dist/types/utils/units.d.ts +20 -0
  345. package/dist/types/utils/units.d.ts.map +1 -0
  346. package/dist/types/utils/validation.d.ts +15 -0
  347. package/dist/types/utils/validation.d.ts.map +1 -0
  348. package/dist/types/version.d.ts +1 -1
  349. package/dist/types/version.d.ts.map +1 -1
  350. package/package.json +8 -4
  351. package/src/agent/AgentManager.ts +21 -19
  352. package/src/agent/storage.ts +1 -1
  353. package/src/client/PerpsClient.ts +569 -446
  354. package/src/client/createPerpsClient.ts +36 -11
  355. package/src/client/types.ts +84 -51
  356. package/src/errors/PerpsError.ts +3 -22
  357. package/src/errors/constants.ts +0 -11
  358. package/src/index.ts +70 -47
  359. package/src/realtime/PerpsWsClient.ts +47 -31
  360. package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +203 -64
  361. package/src/realtime/hyperliquid/types.ts +8 -10
  362. package/src/services/createAction.ts +41 -0
  363. package/src/services/executeAction.ts +41 -0
  364. package/src/services/getAccount.ts +8 -8
  365. package/src/services/getActivity.ts +77 -0
  366. package/src/services/getAsset.ts +34 -0
  367. package/src/services/getAssets.ts +32 -0
  368. package/src/services/{getHistory.ts → getFills.ts} +23 -17
  369. package/src/services/getOhlcv.ts +5 -5
  370. package/src/services/getOrder.ts +5 -5
  371. package/src/services/getOrderbook.ts +5 -5
  372. package/src/services/getOrders.ts +45 -0
  373. package/src/services/getPositions.ts +45 -0
  374. package/src/services/getPrices.ts +6 -6
  375. package/src/services/{getDexes.ts → getProviders.ts} +10 -10
  376. package/src/utils/accountSummary.ts +124 -0
  377. package/src/utils/calculations.ts +209 -0
  378. package/src/utils/hyperliquid/index.ts +9 -0
  379. package/src/utils/hyperliquid/liquidation.ts +71 -0
  380. package/src/utils/hyperliquid/orderFormatting.ts +96 -0
  381. package/src/utils/orderClassification.ts +64 -0
  382. package/src/utils/parse.ts +28 -0
  383. package/src/utils/request.ts +22 -7
  384. package/src/utils/units.ts +32 -0
  385. package/src/utils/validation.ts +35 -0
  386. package/src/version.ts +1 -1
  387. package/dist/cjs/dex/hyperliquid.d.ts +0 -3
  388. package/dist/cjs/dex/hyperliquid.d.ts.map +0 -1
  389. package/dist/cjs/dex/hyperliquid.js +0 -21
  390. package/dist/cjs/dex/hyperliquid.js.map +0 -1
  391. package/dist/cjs/dex/registry.d.ts +0 -3
  392. package/dist/cjs/dex/registry.d.ts.map +0 -1
  393. package/dist/cjs/dex/registry.js +0 -16
  394. package/dist/cjs/dex/registry.js.map +0 -1
  395. package/dist/cjs/dex/types.d.ts +0 -13
  396. package/dist/cjs/dex/types.d.ts.map +0 -1
  397. package/dist/cjs/dex/types.js +0 -3
  398. package/dist/cjs/dex/types.js.map +0 -1
  399. package/dist/cjs/errors/AgentError.d.ts +0 -10
  400. package/dist/cjs/errors/AgentError.d.ts.map +0 -1
  401. package/dist/cjs/errors/AgentError.js +0 -23
  402. package/dist/cjs/errors/AgentError.js.map +0 -1
  403. package/dist/cjs/errors/HTTPError.d.ts +0 -11
  404. package/dist/cjs/errors/HTTPError.d.ts.map +0 -1
  405. package/dist/cjs/errors/HTTPError.js +0 -62
  406. package/dist/cjs/errors/HTTPError.js.map +0 -1
  407. package/dist/cjs/errors/PerpsSDKError.d.ts +0 -9
  408. package/dist/cjs/errors/PerpsSDKError.d.ts.map +0 -1
  409. package/dist/cjs/errors/PerpsSDKError.js +0 -36
  410. package/dist/cjs/errors/PerpsSDKError.js.map +0 -1
  411. package/dist/cjs/errors/ServerError.d.ts +0 -10
  412. package/dist/cjs/errors/ServerError.d.ts.map +0 -1
  413. package/dist/cjs/errors/ServerError.js +0 -24
  414. package/dist/cjs/errors/ServerError.js.map +0 -1
  415. package/dist/cjs/errors/ValidationError.d.ts +0 -9
  416. package/dist/cjs/errors/ValidationError.d.ts.map +0 -1
  417. package/dist/cjs/errors/ValidationError.js +0 -23
  418. package/dist/cjs/errors/ValidationError.js.map +0 -1
  419. package/dist/cjs/errors/utils/rootCause.d.ts +0 -6
  420. package/dist/cjs/errors/utils/rootCause.d.ts.map +0 -1
  421. package/dist/cjs/errors/utils/rootCause.js +0 -41
  422. package/dist/cjs/errors/utils/rootCause.js.map +0 -1
  423. package/dist/cjs/services/cancelOrder.d.ts +0 -10
  424. package/dist/cjs/services/cancelOrder.d.ts.map +0 -1
  425. package/dist/cjs/services/cancelOrder.js +0 -16
  426. package/dist/cjs/services/cancelOrder.js.map +0 -1
  427. package/dist/cjs/services/createAuthorization.d.ts +0 -10
  428. package/dist/cjs/services/createAuthorization.d.ts.map +0 -1
  429. package/dist/cjs/services/createAuthorization.js +0 -16
  430. package/dist/cjs/services/createAuthorization.js.map +0 -1
  431. package/dist/cjs/services/createOrder.d.ts +0 -21
  432. package/dist/cjs/services/createOrder.d.ts.map +0 -1
  433. package/dist/cjs/services/createOrder.js +0 -27
  434. package/dist/cjs/services/createOrder.js.map +0 -1
  435. package/dist/cjs/services/createWithdrawal.d.ts +0 -9
  436. package/dist/cjs/services/createWithdrawal.d.ts.map +0 -1
  437. package/dist/cjs/services/createWithdrawal.js +0 -15
  438. package/dist/cjs/services/createWithdrawal.js.map +0 -1
  439. package/dist/cjs/services/getDexes.d.ts +0 -4
  440. package/dist/cjs/services/getDexes.d.ts.map +0 -1
  441. package/dist/cjs/services/getDexes.js.map +0 -1
  442. package/dist/cjs/services/getHistory.d.ts +0 -10
  443. package/dist/cjs/services/getHistory.d.ts.map +0 -1
  444. package/dist/cjs/services/getHistory.js.map +0 -1
  445. package/dist/cjs/services/getMarket.d.ts +0 -8
  446. package/dist/cjs/services/getMarket.d.ts.map +0 -1
  447. package/dist/cjs/services/getMarket.js.map +0 -1
  448. package/dist/cjs/services/getMarkets.d.ts +0 -7
  449. package/dist/cjs/services/getMarkets.d.ts.map +0 -1
  450. package/dist/cjs/services/getMarkets.js.map +0 -1
  451. package/dist/cjs/services/submitAuthorization.d.ts +0 -10
  452. package/dist/cjs/services/submitAuthorization.d.ts.map +0 -1
  453. package/dist/cjs/services/submitAuthorization.js.map +0 -1
  454. package/dist/cjs/services/submitOrder.d.ts +0 -10
  455. package/dist/cjs/services/submitOrder.d.ts.map +0 -1
  456. package/dist/cjs/services/submitOrder.js.map +0 -1
  457. package/dist/cjs/services/submitWithdrawal.d.ts +0 -9
  458. package/dist/cjs/services/submitWithdrawal.d.ts.map +0 -1
  459. package/dist/cjs/services/submitWithdrawal.js +0 -15
  460. package/dist/cjs/services/submitWithdrawal.js.map +0 -1
  461. package/dist/esm/dex/hyperliquid.d.ts +0 -3
  462. package/dist/esm/dex/hyperliquid.d.ts.map +0 -1
  463. package/dist/esm/dex/hyperliquid.js +0 -19
  464. package/dist/esm/dex/hyperliquid.js.map +0 -1
  465. package/dist/esm/dex/registry.d.ts +0 -3
  466. package/dist/esm/dex/registry.d.ts.map +0 -1
  467. package/dist/esm/dex/registry.js +0 -13
  468. package/dist/esm/dex/registry.js.map +0 -1
  469. package/dist/esm/dex/types.d.ts +0 -15
  470. package/dist/esm/dex/types.d.ts.map +0 -1
  471. package/dist/esm/dex/types.js +0 -2
  472. package/dist/esm/dex/types.js.map +0 -1
  473. package/dist/esm/errors/AgentError.d.ts +0 -25
  474. package/dist/esm/errors/AgentError.d.ts.map +0 -1
  475. package/dist/esm/errors/AgentError.js +0 -35
  476. package/dist/esm/errors/AgentError.js.map +0 -1
  477. package/dist/esm/errors/HTTPError.d.ts +0 -11
  478. package/dist/esm/errors/HTTPError.d.ts.map +0 -1
  479. package/dist/esm/errors/HTTPError.js +0 -61
  480. package/dist/esm/errors/HTTPError.js.map +0 -1
  481. package/dist/esm/errors/PerpsSDKError.d.ts +0 -40
  482. package/dist/esm/errors/PerpsSDKError.d.ts.map +0 -1
  483. package/dist/esm/errors/PerpsSDKError.js +0 -67
  484. package/dist/esm/errors/PerpsSDKError.js.map +0 -1
  485. package/dist/esm/errors/ServerError.d.ts +0 -23
  486. package/dist/esm/errors/ServerError.d.ts.map +0 -1
  487. package/dist/esm/errors/ServerError.js +0 -34
  488. package/dist/esm/errors/ServerError.js.map +0 -1
  489. package/dist/esm/errors/ValidationError.d.ts +0 -23
  490. package/dist/esm/errors/ValidationError.d.ts.map +0 -1
  491. package/dist/esm/errors/ValidationError.js +0 -34
  492. package/dist/esm/errors/ValidationError.js.map +0 -1
  493. package/dist/esm/errors/utils/rootCause.d.ts +0 -71
  494. package/dist/esm/errors/utils/rootCause.d.ts.map +0 -1
  495. package/dist/esm/errors/utils/rootCause.js +0 -99
  496. package/dist/esm/errors/utils/rootCause.js.map +0 -1
  497. package/dist/esm/services/cancelOrder.d.ts +0 -51
  498. package/dist/esm/services/cancelOrder.d.ts.map +0 -1
  499. package/dist/esm/services/cancelOrder.js +0 -50
  500. package/dist/esm/services/cancelOrder.js.map +0 -1
  501. package/dist/esm/services/createAuthorization.d.ts +0 -51
  502. package/dist/esm/services/createAuthorization.d.ts.map +0 -1
  503. package/dist/esm/services/createAuthorization.js +0 -50
  504. package/dist/esm/services/createAuthorization.js.map +0 -1
  505. package/dist/esm/services/createOrder.d.ts +0 -74
  506. package/dist/esm/services/createOrder.d.ts.map +0 -1
  507. package/dist/esm/services/createOrder.js +0 -62
  508. package/dist/esm/services/createOrder.js.map +0 -1
  509. package/dist/esm/services/createWithdrawal.d.ts +0 -49
  510. package/dist/esm/services/createWithdrawal.d.ts.map +0 -1
  511. package/dist/esm/services/createWithdrawal.js +0 -49
  512. package/dist/esm/services/createWithdrawal.js.map +0 -1
  513. package/dist/esm/services/getDexes.d.ts +0 -20
  514. package/dist/esm/services/getDexes.d.ts.map +0 -1
  515. package/dist/esm/services/getDexes.js +0 -21
  516. package/dist/esm/services/getDexes.js.map +0 -1
  517. package/dist/esm/services/getHistory.d.ts.map +0 -1
  518. package/dist/esm/services/getHistory.js.map +0 -1
  519. package/dist/esm/services/getMarket.d.ts +0 -27
  520. package/dist/esm/services/getMarket.d.ts.map +0 -1
  521. package/dist/esm/services/getMarket.js +0 -25
  522. package/dist/esm/services/getMarket.js.map +0 -1
  523. package/dist/esm/services/getMarkets.d.ts +0 -25
  524. package/dist/esm/services/getMarkets.d.ts.map +0 -1
  525. package/dist/esm/services/getMarkets.js +0 -23
  526. package/dist/esm/services/getMarkets.js.map +0 -1
  527. package/dist/esm/services/submitAuthorization.d.ts +0 -42
  528. package/dist/esm/services/submitAuthorization.d.ts.map +0 -1
  529. package/dist/esm/services/submitAuthorization.js +0 -41
  530. package/dist/esm/services/submitAuthorization.js.map +0 -1
  531. package/dist/esm/services/submitOrder.d.ts +0 -44
  532. package/dist/esm/services/submitOrder.d.ts.map +0 -1
  533. package/dist/esm/services/submitOrder.js +0 -43
  534. package/dist/esm/services/submitOrder.js.map +0 -1
  535. package/dist/esm/services/submitWithdrawal.d.ts +0 -40
  536. package/dist/esm/services/submitWithdrawal.d.ts.map +0 -1
  537. package/dist/esm/services/submitWithdrawal.js +0 -40
  538. package/dist/esm/services/submitWithdrawal.js.map +0 -1
  539. package/dist/types/dex/hyperliquid.d.ts +0 -3
  540. package/dist/types/dex/hyperliquid.d.ts.map +0 -1
  541. package/dist/types/dex/registry.d.ts +0 -3
  542. package/dist/types/dex/registry.d.ts.map +0 -1
  543. package/dist/types/dex/types.d.ts +0 -15
  544. package/dist/types/dex/types.d.ts.map +0 -1
  545. package/dist/types/errors/AgentError.d.ts +0 -25
  546. package/dist/types/errors/AgentError.d.ts.map +0 -1
  547. package/dist/types/errors/HTTPError.d.ts +0 -11
  548. package/dist/types/errors/HTTPError.d.ts.map +0 -1
  549. package/dist/types/errors/PerpsSDKError.d.ts +0 -40
  550. package/dist/types/errors/PerpsSDKError.d.ts.map +0 -1
  551. package/dist/types/errors/ServerError.d.ts +0 -23
  552. package/dist/types/errors/ServerError.d.ts.map +0 -1
  553. package/dist/types/errors/ValidationError.d.ts +0 -23
  554. package/dist/types/errors/ValidationError.d.ts.map +0 -1
  555. package/dist/types/errors/utils/rootCause.d.ts +0 -71
  556. package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
  557. package/dist/types/services/cancelOrder.d.ts +0 -51
  558. package/dist/types/services/cancelOrder.d.ts.map +0 -1
  559. package/dist/types/services/createAuthorization.d.ts +0 -51
  560. package/dist/types/services/createAuthorization.d.ts.map +0 -1
  561. package/dist/types/services/createOrder.d.ts +0 -74
  562. package/dist/types/services/createOrder.d.ts.map +0 -1
  563. package/dist/types/services/createWithdrawal.d.ts +0 -49
  564. package/dist/types/services/createWithdrawal.d.ts.map +0 -1
  565. package/dist/types/services/getDexes.d.ts +0 -20
  566. package/dist/types/services/getDexes.d.ts.map +0 -1
  567. package/dist/types/services/getHistory.d.ts.map +0 -1
  568. package/dist/types/services/getMarket.d.ts +0 -27
  569. package/dist/types/services/getMarket.d.ts.map +0 -1
  570. package/dist/types/services/getMarkets.d.ts +0 -25
  571. package/dist/types/services/getMarkets.d.ts.map +0 -1
  572. package/dist/types/services/submitAuthorization.d.ts +0 -42
  573. package/dist/types/services/submitAuthorization.d.ts.map +0 -1
  574. package/dist/types/services/submitOrder.d.ts +0 -44
  575. package/dist/types/services/submitOrder.d.ts.map +0 -1
  576. package/dist/types/services/submitWithdrawal.d.ts +0 -40
  577. package/dist/types/services/submitWithdrawal.d.ts.map +0 -1
  578. package/src/dex/hyperliquid.ts +0 -20
  579. package/src/dex/registry.ts +0 -15
  580. package/src/dex/types.ts +0 -16
  581. package/src/errors/AgentError.ts +0 -43
  582. package/src/errors/HTTPError.ts +0 -72
  583. package/src/errors/PerpsSDKError.ts +0 -79
  584. package/src/errors/ServerError.ts +0 -41
  585. package/src/errors/ValidationError.ts +0 -38
  586. package/src/errors/utils/rootCause.ts +0 -112
  587. package/src/services/cancelOrder.ts +0 -75
  588. package/src/services/createAuthorization.ts +0 -79
  589. package/src/services/createOrder.ts +0 -116
  590. package/src/services/createWithdrawal.ts +0 -76
  591. package/src/services/getMarket.ts +0 -41
  592. package/src/services/getMarkets.ts +0 -37
  593. package/src/services/submitAuthorization.ts +0 -70
  594. package/src/services/submitOrder.ts +0 -72
  595. package/src/services/submitWithdrawal.ts +0 -67
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,43 +1,42 @@
1
1
  // Client
2
2
  // Types
3
3
  export * from '@lifi/perps-types';
4
+ // Utils
5
+ // biome-ignore lint/correctness/useImportExtensions: package subpath export
6
+ export { HlAbstractionMode } from '@lifi/perps-types/providers/hyperliquid';
4
7
  // Agent
5
8
  export { AgentManager } from './agent/AgentManager.js';
6
9
  export { createMemoryStorage, localStorageAdapter } from './agent/storage.js';
7
- export { createPerpsClient } from './client/createPerpsClient.js';
10
+ export { createPerpsClient, DEFAULT_API_URL, } from './client/createPerpsClient.js';
8
11
  export { PerpsClient } from './client/PerpsClient.js';
9
- // Dex
10
- export { getDexAuthProvider } from './dex/registry.js';
11
- export { AgentError } from './errors/AgentError.js';
12
- export { PerpsErrorMessage, PerpsErrorName } from './errors/constants.js';
12
+ export { SigningMode } from './client/types.js';
13
13
  // Errors
14
- export { HTTPError } from './errors/HTTPError.js';
14
+ export { PerpsErrorMessage } from './errors/constants.js';
15
15
  export { PerpsError } from './errors/PerpsError.js';
16
- export { PerpsSDKError } from './errors/PerpsSDKError.js';
17
- export { ServerError } from './errors/ServerError.js';
18
- export { findErrorType, getErrorChain, getRootCause, getRootCauseMessage, hasErrorType, } from './errors/utils/rootCause.js';
19
- export { ValidationError } from './errors/ValidationError.js';
20
16
  // Realtime
21
17
  export { PerpsWsClient } from './realtime/PerpsWsClient.js';
22
- // Services
23
- export { cancelOrder } from './services/cancelOrder.js';
24
- export { createAuthorization } from './services/createAuthorization.js';
25
- export { createOrder } from './services/createOrder.js';
26
- export { createWithdrawal } from './services/createWithdrawal.js';
18
+ export { createAction } from './services/createAction.js';
19
+ export { executeAction } from './services/executeAction.js';
27
20
  export { getAccount } from './services/getAccount.js';
28
- export { getDexes } from './services/getDexes.js';
29
- export { getHistory } from './services/getHistory.js';
30
- export { getMarket } from './services/getMarket.js';
31
- export { getMarkets } from './services/getMarkets.js';
21
+ export { getActivity } from './services/getActivity.js';
22
+ export { getAsset } from './services/getAsset.js';
23
+ export { getAssets } from './services/getAssets.js';
24
+ export { getFills } from './services/getFills.js';
32
25
  export { getOhlcv } from './services/getOhlcv.js';
33
26
  export { getOrder } from './services/getOrder.js';
34
27
  export { getOrderbook } from './services/getOrderbook.js';
28
+ export { getOrders } from './services/getOrders.js';
29
+ export { getPositions } from './services/getPositions.js';
35
30
  export { getPrices } from './services/getPrices.js';
36
- export { submitAuthorization } from './services/submitAuthorization.js';
37
- export { submitOrder } from './services/submitOrder.js';
38
- export { submitWithdrawal } from './services/submitWithdrawal.js';
39
- // Utils
31
+ export { getProviders } from './services/getProviders.js';
32
+ export { calculateAccountSummary } from './utils/accountSummary.js';
33
+ export { applySlippage, calculateExpectedPnl, calculateNotionalValue, calculatePositionSize, calculateRealizedPnlPercent, calculateRequiredMargin, calculateRoe, calculateUnrealizedPnl, estimateFees, percentFromPrice, priceFromPercent, } from './utils/calculations.js';
34
+ export { calculateLiquidationPrice, calculateMaintenanceMarginRate, formatOrderPrice, formatOrderSize, getMaxPriceDecimals, } from './utils/hyperliquid/index.js';
35
+ export { classifyFill, FillClassification, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, } from './utils/orderClassification.js';
36
+ export { stringToFloat } from './utils/parse.js';
40
37
  export { signTypedData } from './utils/signTypedData.js';
38
+ export { fromBaseUnits, fromBaseUnitsNumber } from './utils/units.js';
39
+ export { validateMargin } from './utils/validation.js';
41
40
  // Version
42
41
  export { name, version } from './version.js';
43
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AAET,QAAQ;AACR,cAAc,mBAAmB,CAAA;AACjC,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAS7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAarD,MAAM;AACN,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACzE,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAG3D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,UAAU;AACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AAET,QAAQ;AACR,cAAc,mBAAmB,CAAA;AACjC,QAAQ;AACR,4EAA4E;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC3E,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAS7E,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAiBrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,SAAS;AACT,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAI3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,uBAAuB,EACvB,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,GACZ,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,UAAU;AACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -10,5 +10,6 @@ export declare class PerpsWsClient {
10
10
  close(): void;
11
11
  private getOrCreateProvider;
12
12
  private initProvider;
13
+ private createWsProvider;
13
14
  }
14
15
  //# sourceMappingURL=PerpsWsClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/realtime/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAIpE,OAAO,KAAK,EAAE,oBAAoB,EAAwB,MAAM,YAAY,CAAA;AAE5E,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,YAAY,CAAoD;gBAE5D,MAAM,EAAE,cAAc;IAI5B,SAAS,CAAC,CAAC,SAAS,YAAY,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GACjD,OAAO,CAAC,MAAM,IAAI,CAAC;IAKtB,KAAK;YAQS,mBAAmB;YAgBnB,YAAY;CAwB3B"}
1
+ {"version":3,"file":"PerpsWsClient.d.ts","sourceRoot":"","sources":["../../../src/realtime/PerpsWsClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAGpE,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,YAAY,CAAA;AAEnB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,YAAY,CAAyC;gBAEjD,MAAM,EAAE,cAAc;IAI5B,SAAS,CAAC,CAAC,SAAS,YAAY,EACpC,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GACjD,OAAO,CAAC,MAAM,IAAI,CAAC;IAMtB,KAAK;YAQS,mBAAmB;YAcnB,YAAY;IA6B1B,OAAO,CAAC,gBAAgB;CASzB"}
@@ -1,5 +1,4 @@
1
- import { getDexes } from '../services/getDexes.js';
2
- import { getMarkets } from '../services/getMarkets.js';
1
+ import { getProviders } from '../services/getProviders.js';
3
2
  import { HyperliquidWsProvider } from './hyperliquid/HyperliquidWsProvider.js';
4
3
  export class PerpsWsClient {
5
4
  client;
@@ -9,7 +8,8 @@ export class PerpsWsClient {
9
8
  this.client = client;
10
9
  }
11
10
  async subscribe(sub, listener) {
12
- const provider = await this.getOrCreateProvider(sub.dex);
11
+ const providerKey = sub.dex;
12
+ const provider = await this.getOrCreateProvider(providerKey);
13
13
  return provider.subscribe(sub, listener);
14
14
  }
15
15
  close() {
@@ -19,34 +19,41 @@ export class PerpsWsClient {
19
19
  this.providers.clear();
20
20
  this.initPromises.clear();
21
21
  }
22
- async getOrCreateProvider(dex) {
23
- const existing = this.providers.get(dex);
22
+ async getOrCreateProvider(provider) {
23
+ const existing = this.providers.get(provider);
24
24
  if (existing) {
25
25
  return existing;
26
26
  }
27
- let initPromise = this.initPromises.get(dex);
27
+ let initPromise = this.initPromises.get(provider);
28
28
  if (!initPromise) {
29
- initPromise = this.initProvider(dex);
30
- this.initPromises.set(dex, initPromise);
29
+ initPromise = this.initProvider(provider);
30
+ this.initPromises.set(provider, initPromise);
31
31
  }
32
32
  return initPromise;
33
33
  }
34
- async initProvider(dex) {
35
- const [{ dexes }, { markets }] = await Promise.all([
36
- getDexes(this.client),
37
- getMarkets(this.client, { dex }),
38
- ]);
39
- const dexInfo = dexes.find((d) => d.key === dex);
40
- if (!dexInfo?.wsUrl) {
41
- throw new Error(`No WebSocket URL found for dex: ${dex}`);
34
+ async initProvider(provider) {
35
+ const { providers } = await getProviders(this.client);
36
+ const providerInfo = providers.find((d) => d.key === provider);
37
+ if (!providerInfo?.wsUrl) {
38
+ throw new Error(`No WebSocket URL found for provider: ${provider}`);
42
39
  }
43
- const assetIdLookup = new Map();
44
- for (const m of markets) {
45
- assetIdLookup.set(m.symbol, m.assetId);
46
- }
47
- const provider = new HyperliquidWsProvider(dexInfo.wsUrl, dex, assetIdLookup);
48
- this.providers.set(dex, provider);
49
- return provider;
40
+ const allMarkets = (providerInfo.markets ?? []);
41
+ const providerConfig = this.client.config.providers?.[provider];
42
+ const configuredMarkets = providerConfig?.markets;
43
+ const filteredMarkets = configuredMarkets
44
+ ? allMarkets.filter((m) => configuredMarkets.includes(m.id))
45
+ : allMarkets;
46
+ const subProviders = filteredMarkets
47
+ .map((m) => m.id)
48
+ .filter((id) => id !== provider && id !== 'spot');
49
+ const wsProvider = this.createWsProvider(provider, providerInfo.wsUrl, subProviders);
50
+ this.providers.set(provider, wsProvider);
51
+ return wsProvider;
52
+ }
53
+ createWsProvider(provider, wsUrl, subProviders) {
54
+ // Currently only Hyperliquid has a WS implementation.
55
+ // Future providers can be added here with their own WsProvider classes.
56
+ return new HyperliquidWsProvider(wsUrl, provider, subProviders);
50
57
  }
51
58
  }
52
59
  //# sourceMappingURL=PerpsWsClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PerpsWsClient.js","sourceRoot":"","sources":["../../../src/realtime/PerpsWsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAG9E,MAAM,OAAO,aAAa;IACP,MAAM,CAAgB;IAC/B,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAA;IACpD,YAAY,GAAG,IAAI,GAAG,EAA0C,CAAA;IAExE,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAM,EACN,QAAkD;QAElD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxD,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAgC,CAAC,CAAA;IAClE,CAAC;IAED,KAAK;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,CAAC,CAAC,KAAK,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,GAAW;QAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW;QACpC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC;SACjC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAA;QAC/C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CACxC,OAAO,CAAC,KAAK,EACb,GAAG,EACH,aAAa,CACd,CAAA;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACjC,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"PerpsWsClient.js","sourceRoot":"","sources":["../../../src/realtime/PerpsWsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAO9E,MAAM,OAAO,aAAa;IACP,MAAM,CAAgB;IAC/B,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;IACzC,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAA;IAE7D,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,GAAM,EACN,QAAkD;QAElD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAA;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;QAC5D,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAgC,CAAC,CAAA;IAClE,CAAC;IAED,KAAK;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,CAAC,CAAC,KAAK,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;QAC9D,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAE5C,CAAA;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;QAC/D,MAAM,iBAAiB,GAAG,cAAc,EAAE,OAAO,CAAA;QACjD,MAAM,eAAe,GAAG,iBAAiB;YACvC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,UAAU,CAAA;QACd,MAAM,YAAY,GAAG,eAAe;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,CAAC,CAAA;QAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,QAAQ,EACR,YAAY,CAAC,KAAK,EAClB,YAAY,CACb,CAAA;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QACxC,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,gBAAgB,CACtB,QAAgB,EAChB,KAAa,EACb,YAAsB;QAEtB,sDAAsD;QACtD,wEAAwE;QACxE,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjE,CAAC;CACF"}
@@ -4,10 +4,16 @@ export declare class HyperliquidWsProvider implements WsProvider {
4
4
  private rws;
5
5
  private subs;
6
6
  private listeners;
7
- private readonly dexKey;
8
- private readonly assetIdLookup;
9
- constructor(wsUrl: string, dexKey: string, assetIdLookup: Map<string, number>);
7
+ private readonly providerKey;
8
+ private readonly subDexes;
9
+ private positionsBySubDex;
10
+ private midsBySubDex;
11
+ constructor(wsUrl: string, providerKey: string, subDexes: string[]);
10
12
  subscribe(sub: Subscription, listener: SubscriptionListener): Promise<() => void>;
13
+ /** Build sub-key + payload pairs for each sub-dex allMids subscription. */
14
+ private getPriceSubEntries;
15
+ /** Build sub-key + payload pairs for each sub-dex clearinghouseState subscription. */
16
+ private getPositionSubEntries;
11
17
  close(): void;
12
18
  private resubscribeAll;
13
19
  private toKey;
@@ -17,10 +23,10 @@ export declare class HyperliquidWsProvider implements WsProvider {
17
23
  private handleMessage;
18
24
  private handleAllMids;
19
25
  private handleL2Book;
20
- private handleTrades;
21
26
  private handleCandle;
22
27
  private handleOrderUpdates;
23
28
  private handleUserFills;
24
- private handleWebData2;
29
+ private handleClearinghouseState;
30
+ private handleSpotClearinghouseState;
25
31
  }
26
32
  //# sourceMappingURL=HyperliquidWsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HyperliquidWsProvider.d.ts","sourceRoot":"","sources":["../../../../src/realtime/hyperliquid/HyperliquidWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAA;AAaxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAWnE,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,IAAI,CAAwD;IACpE,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAGjD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAS9B,SAAS,CACb,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,IAAI,CAAC;IAoCtB,KAAK;IAML,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"HyperliquidWsProvider.d.ts","sourceRoot":"","sources":["../../../../src/realtime/hyperliquid/HyperliquidWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,mBAAmB,CAAA;AAY1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAWnE,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,IAAI,CAAwD;IACpE,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,YAAY,CAA4C;gBAEpD,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;IAQ5D,SAAS,CACb,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,IAAI,CAAC;IA6HtB,2EAA2E;IAC3E,OAAO,CAAC,kBAAkB;IAa1B,sFAAsF;IACtF,OAAO,CAAC,qBAAqB;IAgB7B,KAAK;IAML,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,4BAA4B;CAWrC"}
@@ -1,26 +1,106 @@
1
- import { HistoryItemStatus, OrderSide, OrderType } from '@lifi/perps-types';
2
- import { mapHistoryItem, mapOrder, mapPosition, } from '@lifi/perps-types/providers/hyperliquid';
1
+ import { mapFill, mapOrder, mapPosition, } from '@lifi/perps-types/providers/hyperliquid';
3
2
  import { ReconnectingWebSocket } from '../ReconnectingWebSocket.js';
4
3
  export class HyperliquidWsProvider {
5
4
  rws;
6
5
  subs = new Map();
7
6
  listeners = new Map();
8
- dexKey;
9
- assetIdLookup;
10
- constructor(wsUrl, dexKey, assetIdLookup) {
11
- this.dexKey = dexKey;
12
- this.assetIdLookup = assetIdLookup;
7
+ providerKey;
8
+ subDexes;
9
+ positionsBySubDex = new Map();
10
+ midsBySubDex = new Map();
11
+ constructor(wsUrl, providerKey, subDexes) {
12
+ this.providerKey = providerKey;
13
+ this.subDexes = subDexes;
13
14
  this.rws = new ReconnectingWebSocket(wsUrl);
14
15
  this.rws.on('message', (data) => this.handleMessage(data));
15
16
  this.rws.on('open', () => this.resubscribeAll());
16
17
  }
17
18
  async subscribe(sub, listener) {
18
19
  const key = this.toKey(sub);
19
- const payload = this.toHlPayload(sub);
20
20
  if (!this.listeners.has(key)) {
21
21
  this.listeners.set(key, new Set());
22
22
  }
23
23
  this.listeners.get(key).add(listener);
24
+ // Prices require multi-sub-dex allMids subscriptions
25
+ if (sub.channel === 'prices') {
26
+ const entries = this.getPriceSubEntries();
27
+ for (const { subKey, payload } of entries) {
28
+ const existing = this.subs.get(subKey);
29
+ if (existing) {
30
+ existing.count++;
31
+ }
32
+ else {
33
+ this.subs.set(subKey, { count: 1, payload });
34
+ await this.rws.ready();
35
+ this.rws.send(JSON.stringify({ method: 'subscribe', subscription: payload }));
36
+ }
37
+ }
38
+ return () => {
39
+ this.listeners.get(key)?.delete(listener);
40
+ let allRemoved = true;
41
+ for (const { subKey, payload } of entries) {
42
+ const s = this.subs.get(subKey);
43
+ if (s) {
44
+ s.count--;
45
+ if (s.count <= 0) {
46
+ this.subs.delete(subKey);
47
+ this.rws.send(JSON.stringify({
48
+ method: 'unsubscribe',
49
+ subscription: payload,
50
+ }));
51
+ }
52
+ else {
53
+ allRemoved = false;
54
+ }
55
+ }
56
+ }
57
+ if (allRemoved) {
58
+ this.listeners.delete(key);
59
+ this.midsBySubDex.clear();
60
+ }
61
+ };
62
+ }
63
+ // Positions require multi-sub-dex clearinghouseState subscriptions
64
+ if (sub.channel === 'positions') {
65
+ const entries = this.getPositionSubEntries(sub.address);
66
+ for (const { subKey, payload } of entries) {
67
+ const existing = this.subs.get(subKey);
68
+ if (existing) {
69
+ existing.count++;
70
+ }
71
+ else {
72
+ this.subs.set(subKey, { count: 1, payload });
73
+ await this.rws.ready();
74
+ this.rws.send(JSON.stringify({ method: 'subscribe', subscription: payload }));
75
+ }
76
+ }
77
+ return () => {
78
+ this.listeners.get(key)?.delete(listener);
79
+ let allRemoved = true;
80
+ for (const { subKey, payload } of entries) {
81
+ const s = this.subs.get(subKey);
82
+ if (s) {
83
+ s.count--;
84
+ if (s.count <= 0) {
85
+ this.subs.delete(subKey);
86
+ this.rws.send(JSON.stringify({
87
+ method: 'unsubscribe',
88
+ subscription: payload,
89
+ }));
90
+ }
91
+ else {
92
+ allRemoved = false;
93
+ }
94
+ }
95
+ }
96
+ if (allRemoved) {
97
+ this.listeners.delete(key);
98
+ this.positionsBySubDex.clear();
99
+ }
100
+ };
101
+ }
102
+ // All other channels: single WS subscription per key
103
+ const payload = this.toHlPayload(sub);
24
104
  const existing = this.subs.get(key);
25
105
  if (existing) {
26
106
  existing.count++;
@@ -43,6 +123,33 @@ export class HyperliquidWsProvider {
43
123
  }
44
124
  };
45
125
  }
126
+ /** Build sub-key + payload pairs for each sub-dex allMids subscription. */
127
+ getPriceSubEntries() {
128
+ return [
129
+ {
130
+ subKey: 'allMids:default',
131
+ payload: { type: 'allMids' },
132
+ },
133
+ ...this.subDexes.map((dex) => ({
134
+ subKey: `allMids:${dex}`,
135
+ payload: { type: 'allMids', dex },
136
+ })),
137
+ ];
138
+ }
139
+ /** Build sub-key + payload pairs for each sub-dex clearinghouseState subscription. */
140
+ getPositionSubEntries(address) {
141
+ const addr = address.toLowerCase();
142
+ return [
143
+ {
144
+ subKey: `positions:${addr}:default`,
145
+ payload: { type: 'clearinghouseState', user: address },
146
+ },
147
+ ...this.subDexes.map((dex) => ({
148
+ subKey: `positions:${addr}:${dex}`,
149
+ payload: { type: 'clearinghouseState', user: address, dex },
150
+ })),
151
+ ];
152
+ }
46
153
  close() {
47
154
  this.rws.close();
48
155
  this.subs.clear();
@@ -58,35 +165,47 @@ export class HyperliquidWsProvider {
58
165
  case 'prices':
59
166
  return 'allMids';
60
167
  case 'orderbook':
61
- return `l2Book:${sub.symbol}`;
62
- case 'trades':
63
- return `trades:${sub.symbol}`;
168
+ return `l2Book:${sub.assetId}`;
64
169
  case 'candle':
65
- return `candle:${sub.symbol}:${sub.interval}`;
170
+ return `candle:${sub.assetId}:${sub.interval}`;
66
171
  case 'orderUpdates':
67
- return `orderUpdates:${sub.address}`;
172
+ return `orderUpdates:${sub.address.toLowerCase()}`;
68
173
  case 'fills':
69
- return `userFills:${sub.address}`;
174
+ return `userFills:${sub.address.toLowerCase()}`;
70
175
  case 'positions':
71
- return `webData2:${sub.address}`;
176
+ return `positions:${sub.address.toLowerCase()}`;
177
+ case 'spotBalances':
178
+ return `spotClearinghouseState:${sub.address.toLowerCase()}`;
72
179
  }
73
180
  }
74
181
  toHlPayload(sub) {
75
182
  switch (sub.channel) {
76
183
  case 'prices':
184
+ // Prices are handled via getPriceSubEntries in subscribe()
185
+ // and never reach toHlPayload, but TS requires exhaustive cases.
77
186
  return { type: 'allMids' };
78
187
  case 'orderbook':
79
- return { type: 'l2Book', coin: sub.symbol };
80
- case 'trades':
81
- return { type: 'trades', coin: sub.symbol };
188
+ return {
189
+ type: 'l2Book',
190
+ coin: sub.assetId,
191
+ ...(sub.depth !== undefined ? { nLevels: sub.depth } : {}),
192
+ };
82
193
  case 'candle':
83
- return { type: 'candle', coin: sub.symbol, interval: sub.interval };
194
+ return {
195
+ type: 'candle',
196
+ coin: sub.assetId,
197
+ interval: sub.interval,
198
+ };
84
199
  case 'orderUpdates':
85
200
  return { type: 'orderUpdates', user: sub.address };
86
201
  case 'fills':
87
202
  return { type: 'userFills', user: sub.address };
88
203
  case 'positions':
89
- return { type: 'webData2', user: sub.address };
204
+ // Positions are handled via getPositionSubEntries in subscribe()
205
+ // and never reach toHlPayload, but TS requires exhaustive cases.
206
+ return { type: 'clearinghouseState', user: sub.address };
207
+ case 'spotBalances':
208
+ return { type: 'spotClearinghouseState', user: sub.address };
90
209
  }
91
210
  }
92
211
  emit(key, event) {
@@ -127,9 +246,6 @@ export class HyperliquidWsProvider {
127
246
  case 'l2Book':
128
247
  this.handleL2Book(msg.data);
129
248
  break;
130
- case 'trades':
131
- this.handleTrades(msg.data);
132
- break;
133
249
  case 'candle':
134
250
  this.handleCandle(msg.data);
135
251
  break;
@@ -139,8 +255,11 @@ export class HyperliquidWsProvider {
139
255
  case 'userFills':
140
256
  this.handleUserFills(msg.data);
141
257
  break;
142
- case 'webData2':
143
- this.handleWebData2(msg.data);
258
+ case 'clearinghouseState':
259
+ this.handleClearinghouseState(msg.data);
260
+ break;
261
+ case 'spotClearinghouseState':
262
+ this.handleSpotClearinghouseState(msg.data);
144
263
  break;
145
264
  }
146
265
  }
@@ -149,40 +268,27 @@ export class HyperliquidWsProvider {
149
268
  }
150
269
  }
151
270
  handleAllMids(data) {
152
- this.emit('allMids', { channel: 'prices', data: { prices: data.mids } });
271
+ const subDexKey = data.dex || 'default';
272
+ this.midsBySubDex.set(subDexKey, data.mids);
273
+ // Merge all sub-dex mids into a single record
274
+ const merged = {};
275
+ for (const mids of this.midsBySubDex.values()) {
276
+ Object.assign(merged, mids);
277
+ }
278
+ this.emit('allMids', { channel: 'prices', data: merged });
153
279
  }
154
280
  handleL2Book(data) {
155
281
  this.emit(`l2Book:${data.coin}`, {
156
282
  channel: 'orderbook',
157
283
  data: {
158
- dex: this.dexKey,
159
- symbol: data.coin,
284
+ provider: this.providerKey,
285
+ assetId: data.coin,
160
286
  bids: data.levels[0].map((l) => ({ price: l.px, size: l.sz })),
161
287
  asks: data.levels[1].map((l) => ({ price: l.px, size: l.sz })),
162
288
  timestamp: data.time,
163
289
  },
164
290
  });
165
291
  }
166
- handleTrades(data) {
167
- if (data.length === 0) {
168
- return;
169
- }
170
- const coin = data[0].coin;
171
- const items = data.map((t) => ({
172
- id: String(t.tid),
173
- symbol: t.coin,
174
- assetId: this.assetIdLookup.get(t.coin) ?? -1,
175
- dex: this.dexKey,
176
- side: t.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
177
- type: OrderType.MARKET,
178
- size: t.sz,
179
- price: t.px,
180
- status: HistoryItemStatus.FILLED,
181
- filledSize: t.sz,
182
- createdAt: new Date(t.time).toISOString(),
183
- }));
184
- this.emit(`trades:${coin}`, { channel: 'trades', data: items });
185
- }
186
292
  handleCandle(data) {
187
293
  this.emit(`candle:${data.s}:${data.i}`, {
188
294
  channel: 'candle',
@@ -204,14 +310,29 @@ export class HyperliquidWsProvider {
204
310
  });
205
311
  }
206
312
  handleUserFills(data) {
207
- const items = data.fills.map((f) => mapHistoryItem(f, this.dexKey, this.assetIdLookup));
313
+ const items = data.fills.map((f) => mapFill(f));
208
314
  this.emit(`userFills:${data.user}`, { channel: 'fills', data: items });
209
315
  }
210
- handleWebData2(data) {
211
- const positions = data.clearinghouseState.assetPositions.map((ap) => mapPosition(ap, this.dexKey, this.assetIdLookup));
212
- this.emit(`webData2:${data.user}`, {
316
+ handleClearinghouseState(data) {
317
+ const subDexKey = data.dex || 'default';
318
+ const positions = data.clearinghouseState.assetPositions.map((ap) => mapPosition(ap));
319
+ this.positionsBySubDex.set(subDexKey, positions);
320
+ // Merge all sub-dex positions into a single flat array
321
+ const merged = [...this.positionsBySubDex.values()].flat();
322
+ this.emit(`positions:${data.user.toLowerCase()}`, {
213
323
  channel: 'positions',
214
- data: positions,
324
+ data: merged,
325
+ });
326
+ }
327
+ handleSpotClearinghouseState(data) {
328
+ const balances = data.balances.map((b) => ({
329
+ coin: b.coin,
330
+ total: b.total,
331
+ hold: b.hold,
332
+ }));
333
+ this.emit(`spotClearinghouseState:${data.user.toLowerCase()}`, {
334
+ channel: 'spotBalances',
335
+ data: balances,
215
336
  });
216
337
  }
217
338
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HyperliquidWsProvider.js","sourceRoot":"","sources":["../../../../src/realtime/hyperliquid/HyperliquidWsProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperliquidWsProvider.js","sourceRoot":"","sources":["../../../../src/realtime/hyperliquid/HyperliquidWsProvider.ts"],"names":[],"mappings":"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"}