@lifi/perps-sdk-provider-hyperliquid 0.0.0-preview-c903f1e

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 (434) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +29 -0
  3. package/dist/cjs/HyperliquidProvider.d.ts +15 -0
  4. package/dist/cjs/HyperliquidProvider.d.ts.map +1 -0
  5. package/dist/cjs/HyperliquidProvider.js +135 -0
  6. package/dist/cjs/HyperliquidProvider.js.map +1 -0
  7. package/dist/cjs/accountConfig.d.ts +3 -0
  8. package/dist/cjs/accountConfig.d.ts.map +1 -0
  9. package/dist/cjs/accountConfig.js +45 -0
  10. package/dist/cjs/accountConfig.js.map +1 -0
  11. package/dist/cjs/accountSummary.d.ts +3 -0
  12. package/dist/cjs/accountSummary.d.ts.map +1 -0
  13. package/dist/cjs/accountSummary.js +12 -0
  14. package/dist/cjs/accountSummary.js.map +1 -0
  15. package/dist/cjs/constants.d.ts +11 -0
  16. package/dist/cjs/constants.d.ts.map +1 -0
  17. package/dist/cjs/constants.js +16 -0
  18. package/dist/cjs/constants.js.map +1 -0
  19. package/dist/cjs/context.d.ts +13 -0
  20. package/dist/cjs/context.d.ts.map +1 -0
  21. package/dist/cjs/context.js +24 -0
  22. package/dist/cjs/context.js.map +1 -0
  23. package/dist/cjs/index.d.ts +22 -0
  24. package/dist/cjs/index.d.ts.map +1 -0
  25. package/dist/cjs/index.js +47 -0
  26. package/dist/cjs/index.js.map +1 -0
  27. package/dist/cjs/package.json +1 -0
  28. package/dist/cjs/services/getAccount.d.ts +6 -0
  29. package/dist/cjs/services/getAccount.d.ts.map +1 -0
  30. package/dist/cjs/services/getAccount.js +109 -0
  31. package/dist/cjs/services/getAccount.js.map +1 -0
  32. package/dist/cjs/services/getActivity.d.ts +15 -0
  33. package/dist/cjs/services/getActivity.d.ts.map +1 -0
  34. package/dist/cjs/services/getActivity.js +65 -0
  35. package/dist/cjs/services/getActivity.js.map +1 -0
  36. package/dist/cjs/services/getFills.d.ts +13 -0
  37. package/dist/cjs/services/getFills.d.ts.map +1 -0
  38. package/dist/cjs/services/getFills.js +40 -0
  39. package/dist/cjs/services/getFills.js.map +1 -0
  40. package/dist/cjs/services/getOrder.d.ts +6 -0
  41. package/dist/cjs/services/getOrder.d.ts.map +1 -0
  42. package/dist/cjs/services/getOrder.js +27 -0
  43. package/dist/cjs/services/getOrder.js.map +1 -0
  44. package/dist/cjs/services/getOrders.d.ts +11 -0
  45. package/dist/cjs/services/getOrders.d.ts.map +1 -0
  46. package/dist/cjs/services/getOrders.js +51 -0
  47. package/dist/cjs/services/getOrders.js.map +1 -0
  48. package/dist/cjs/services/getPositions.d.ts +11 -0
  49. package/dist/cjs/services/getPositions.d.ts.map +1 -0
  50. package/dist/cjs/services/getPositions.js +33 -0
  51. package/dist/cjs/services/getPositions.js.map +1 -0
  52. package/dist/cjs/signers/HyperliquidAgentStore.d.ts +19 -0
  53. package/dist/cjs/signers/HyperliquidAgentStore.d.ts.map +1 -0
  54. package/dist/cjs/signers/HyperliquidAgentStore.js +110 -0
  55. package/dist/cjs/signers/HyperliquidAgentStore.js.map +1 -0
  56. package/dist/cjs/signers/index.d.ts +4 -0
  57. package/dist/cjs/signers/index.d.ts.map +1 -0
  58. package/dist/cjs/signers/index.js +8 -0
  59. package/dist/cjs/signers/index.js.map +1 -0
  60. package/dist/cjs/signers/signActions.d.ts +7 -0
  61. package/dist/cjs/signers/signActions.d.ts.map +1 -0
  62. package/dist/cjs/signers/signActions.js +33 -0
  63. package/dist/cjs/signers/signActions.js.map +1 -0
  64. package/dist/cjs/types/account.d.ts +51 -0
  65. package/dist/cjs/types/account.d.ts.map +1 -0
  66. package/dist/cjs/types/account.js +10 -0
  67. package/dist/cjs/types/account.js.map +1 -0
  68. package/dist/cjs/types/action.d.ts +51 -0
  69. package/dist/cjs/types/action.d.ts.map +1 -0
  70. package/dist/cjs/types/action.js +11 -0
  71. package/dist/cjs/types/action.js.map +1 -0
  72. package/dist/cjs/types/asset.d.ts +66 -0
  73. package/dist/cjs/types/asset.d.ts.map +1 -0
  74. package/dist/cjs/types/asset.js +3 -0
  75. package/dist/cjs/types/asset.js.map +1 -0
  76. package/dist/cjs/types/fill.d.ts +18 -0
  77. package/dist/cjs/types/fill.d.ts.map +1 -0
  78. package/dist/cjs/types/fill.js +3 -0
  79. package/dist/cjs/types/fill.js.map +1 -0
  80. package/dist/cjs/types/index.d.ts +8 -0
  81. package/dist/cjs/types/index.d.ts.map +1 -0
  82. package/dist/cjs/types/index.js +24 -0
  83. package/dist/cjs/types/index.js.map +1 -0
  84. package/dist/cjs/types/ledger.d.ts +53 -0
  85. package/dist/cjs/types/ledger.d.ts.map +1 -0
  86. package/dist/cjs/types/ledger.js +8 -0
  87. package/dist/cjs/types/ledger.js.map +1 -0
  88. package/dist/cjs/types/order.d.ts +46 -0
  89. package/dist/cjs/types/order.d.ts.map +1 -0
  90. package/dist/cjs/types/order.js +3 -0
  91. package/dist/cjs/types/order.js.map +1 -0
  92. package/dist/cjs/types/ws.d.ts +36 -0
  93. package/dist/cjs/types/ws.d.ts.map +1 -0
  94. package/dist/cjs/types/ws.js +3 -0
  95. package/dist/cjs/types/ws.js.map +1 -0
  96. package/dist/cjs/utils/assetId.d.ts +4 -0
  97. package/dist/cjs/utils/assetId.d.ts.map +1 -0
  98. package/dist/cjs/utils/assetId.js +21 -0
  99. package/dist/cjs/utils/assetId.js.map +1 -0
  100. package/dist/cjs/utils/index.d.ts +15 -0
  101. package/dist/cjs/utils/index.d.ts.map +1 -0
  102. package/dist/cjs/utils/index.js +49 -0
  103. package/dist/cjs/utils/index.js.map +1 -0
  104. package/dist/cjs/utils/infoClient.d.ts +10 -0
  105. package/dist/cjs/utils/infoClient.d.ts.map +1 -0
  106. package/dist/cjs/utils/infoClient.js +58 -0
  107. package/dist/cjs/utils/infoClient.js.map +1 -0
  108. package/dist/cjs/utils/liquidation.d.ts +3 -0
  109. package/dist/cjs/utils/liquidation.d.ts.map +1 -0
  110. package/dist/cjs/utils/liquidation.js +24 -0
  111. package/dist/cjs/utils/liquidation.js.map +1 -0
  112. package/dist/cjs/utils/mapActivity.d.ts +5 -0
  113. package/dist/cjs/utils/mapActivity.d.ts.map +1 -0
  114. package/dist/cjs/utils/mapActivity.js +133 -0
  115. package/dist/cjs/utils/mapActivity.js.map +1 -0
  116. package/dist/cjs/utils/mapFill.d.ts +6 -0
  117. package/dist/cjs/utils/mapFill.d.ts.map +1 -0
  118. package/dist/cjs/utils/mapFill.js +33 -0
  119. package/dist/cjs/utils/mapFill.js.map +1 -0
  120. package/dist/cjs/utils/mapMarket.d.ts +4 -0
  121. package/dist/cjs/utils/mapMarket.d.ts.map +1 -0
  122. package/dist/cjs/utils/mapMarket.js +22 -0
  123. package/dist/cjs/utils/mapMarket.js.map +1 -0
  124. package/dist/cjs/utils/mapMarketPrice.d.ts +4 -0
  125. package/dist/cjs/utils/mapMarketPrice.d.ts.map +1 -0
  126. package/dist/cjs/utils/mapMarketPrice.js +22 -0
  127. package/dist/cjs/utils/mapMarketPrice.js.map +1 -0
  128. package/dist/cjs/utils/mapOrder.d.ts +12 -0
  129. package/dist/cjs/utils/mapOrder.d.ts.map +1 -0
  130. package/dist/cjs/utils/mapOrder.js +156 -0
  131. package/dist/cjs/utils/mapOrder.js.map +1 -0
  132. package/dist/cjs/utils/mapPosition.d.ts +5 -0
  133. package/dist/cjs/utils/mapPosition.d.ts.map +1 -0
  134. package/dist/cjs/utils/mapPosition.js +28 -0
  135. package/dist/cjs/utils/mapPosition.js.map +1 -0
  136. package/dist/cjs/utils/marketDisplay.d.ts +4 -0
  137. package/dist/cjs/utils/marketDisplay.d.ts.map +1 -0
  138. package/dist/cjs/utils/marketDisplay.js +23 -0
  139. package/dist/cjs/utils/marketDisplay.js.map +1 -0
  140. package/dist/cjs/utils/orderFormatting.d.ts +4 -0
  141. package/dist/cjs/utils/orderFormatting.d.ts.map +1 -0
  142. package/dist/cjs/utils/orderFormatting.js +30 -0
  143. package/dist/cjs/utils/orderFormatting.js.map +1 -0
  144. package/dist/cjs/utils/priceStepToAggregation.d.ts +5 -0
  145. package/dist/cjs/utils/priceStepToAggregation.d.ts.map +1 -0
  146. package/dist/cjs/utils/priceStepToAggregation.js +36 -0
  147. package/dist/cjs/utils/priceStepToAggregation.js.map +1 -0
  148. package/dist/cjs/utils/spotBalance.d.ts +6 -0
  149. package/dist/cjs/utils/spotBalance.d.ts.map +1 -0
  150. package/dist/cjs/utils/spotBalance.js +34 -0
  151. package/dist/cjs/utils/spotBalance.js.map +1 -0
  152. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +29 -0
  153. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -0
  154. package/dist/cjs/websocket/HyperliquidWsProvider.js +359 -0
  155. package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -0
  156. package/dist/cjs/websocket/index.d.ts +2 -0
  157. package/dist/cjs/websocket/index.d.ts.map +1 -0
  158. package/dist/cjs/websocket/index.js +6 -0
  159. package/dist/cjs/websocket/index.js.map +1 -0
  160. package/dist/esm/HyperliquidProvider.d.ts +64 -0
  161. package/dist/esm/HyperliquidProvider.d.ts.map +1 -0
  162. package/dist/esm/HyperliquidProvider.js +162 -0
  163. package/dist/esm/HyperliquidProvider.js.map +1 -0
  164. package/dist/esm/accountConfig.d.ts +10 -0
  165. package/dist/esm/accountConfig.d.ts.map +1 -0
  166. package/dist/esm/accountConfig.js +65 -0
  167. package/dist/esm/accountConfig.js.map +1 -0
  168. package/dist/esm/accountSummary.d.ts +10 -0
  169. package/dist/esm/accountSummary.d.ts.map +1 -0
  170. package/dist/esm/accountSummary.js +22 -0
  171. package/dist/esm/accountSummary.js.map +1 -0
  172. package/dist/esm/constants.d.ts +40 -0
  173. package/dist/esm/constants.d.ts.map +1 -0
  174. package/dist/esm/constants.js +42 -0
  175. package/dist/esm/constants.js.map +1 -0
  176. package/dist/esm/context.d.ts +26 -0
  177. package/dist/esm/context.d.ts.map +1 -0
  178. package/dist/esm/context.js +25 -0
  179. package/dist/esm/context.js.map +1 -0
  180. package/dist/esm/index.d.ts +31 -0
  181. package/dist/esm/index.d.ts.map +1 -0
  182. package/dist/esm/index.js +26 -0
  183. package/dist/esm/index.js.map +1 -0
  184. package/dist/esm/package.json +1 -0
  185. package/dist/esm/services/getAccount.d.ts +28 -0
  186. package/dist/esm/services/getAccount.d.ts.map +1 -0
  187. package/dist/esm/services/getAccount.js +134 -0
  188. package/dist/esm/services/getAccount.js.map +1 -0
  189. package/dist/esm/services/getActivity.d.ts +33 -0
  190. package/dist/esm/services/getActivity.d.ts.map +1 -0
  191. package/dist/esm/services/getActivity.js +75 -0
  192. package/dist/esm/services/getActivity.js.map +1 -0
  193. package/dist/esm/services/getFills.d.ts +34 -0
  194. package/dist/esm/services/getFills.d.ts.map +1 -0
  195. package/dist/esm/services/getFills.js +49 -0
  196. package/dist/esm/services/getFills.js.map +1 -0
  197. package/dist/esm/services/getOrder.d.ts +17 -0
  198. package/dist/esm/services/getOrder.d.ts.map +1 -0
  199. package/dist/esm/services/getOrder.js +29 -0
  200. package/dist/esm/services/getOrder.js.map +1 -0
  201. package/dist/esm/services/getOrders.d.ts +27 -0
  202. package/dist/esm/services/getOrders.d.ts.map +1 -0
  203. package/dist/esm/services/getOrders.js +57 -0
  204. package/dist/esm/services/getOrders.js.map +1 -0
  205. package/dist/esm/services/getPositions.d.ts +26 -0
  206. package/dist/esm/services/getPositions.d.ts.map +1 -0
  207. package/dist/esm/services/getPositions.js +37 -0
  208. package/dist/esm/services/getPositions.js.map +1 -0
  209. package/dist/esm/signers/HyperliquidAgentStore.d.ts +54 -0
  210. package/dist/esm/signers/HyperliquidAgentStore.d.ts.map +1 -0
  211. package/dist/esm/signers/HyperliquidAgentStore.js +134 -0
  212. package/dist/esm/signers/HyperliquidAgentStore.js.map +1 -0
  213. package/dist/esm/signers/index.d.ts +4 -0
  214. package/dist/esm/signers/index.d.ts.map +1 -0
  215. package/dist/esm/signers/index.js +4 -0
  216. package/dist/esm/signers/index.js.map +1 -0
  217. package/dist/esm/signers/signActions.d.ts +15 -0
  218. package/dist/esm/signers/signActions.d.ts.map +1 -0
  219. package/dist/esm/signers/signActions.js +38 -0
  220. package/dist/esm/signers/signActions.js.map +1 -0
  221. package/dist/esm/types/account.d.ts +64 -0
  222. package/dist/esm/types/account.d.ts.map +1 -0
  223. package/dist/esm/types/account.js +13 -0
  224. package/dist/esm/types/account.js.map +1 -0
  225. package/dist/esm/types/action.d.ts +61 -0
  226. package/dist/esm/types/action.d.ts.map +1 -0
  227. package/dist/esm/types/action.js +16 -0
  228. package/dist/esm/types/action.js.map +1 -0
  229. package/dist/esm/types/asset.d.ts +82 -0
  230. package/dist/esm/types/asset.d.ts.map +1 -0
  231. package/dist/esm/types/asset.js +3 -0
  232. package/dist/esm/types/asset.js.map +1 -0
  233. package/dist/esm/types/fill.d.ts +21 -0
  234. package/dist/esm/types/fill.d.ts.map +1 -0
  235. package/dist/esm/types/fill.js +3 -0
  236. package/dist/esm/types/fill.js.map +1 -0
  237. package/dist/esm/types/index.d.ts +8 -0
  238. package/dist/esm/types/index.d.ts.map +1 -0
  239. package/dist/esm/types/index.js +11 -0
  240. package/dist/esm/types/index.js.map +1 -0
  241. package/dist/esm/types/ledger.d.ts +93 -0
  242. package/dist/esm/types/ledger.d.ts.map +1 -0
  243. package/dist/esm/types/ledger.js +16 -0
  244. package/dist/esm/types/ledger.js.map +1 -0
  245. package/dist/esm/types/order.d.ts +51 -0
  246. package/dist/esm/types/order.d.ts.map +1 -0
  247. package/dist/esm/types/order.js +3 -0
  248. package/dist/esm/types/order.js.map +1 -0
  249. package/dist/esm/types/ws.d.ts +43 -0
  250. package/dist/esm/types/ws.d.ts.map +1 -0
  251. package/dist/esm/types/ws.js +3 -0
  252. package/dist/esm/types/ws.js.map +1 -0
  253. package/dist/esm/utils/assetId.d.ts +20 -0
  254. package/dist/esm/utils/assetId.d.ts.map +1 -0
  255. package/dist/esm/utils/assetId.js +31 -0
  256. package/dist/esm/utils/assetId.js.map +1 -0
  257. package/dist/esm/utils/index.d.ts +15 -0
  258. package/dist/esm/utils/index.d.ts.map +1 -0
  259. package/dist/esm/utils/index.js +17 -0
  260. package/dist/esm/utils/index.js.map +1 -0
  261. package/dist/esm/utils/infoClient.d.ts +28 -0
  262. package/dist/esm/utils/infoClient.d.ts.map +1 -0
  263. package/dist/esm/utils/infoClient.js +70 -0
  264. package/dist/esm/utils/infoClient.js.map +1 -0
  265. package/dist/esm/utils/liquidation.d.ts +48 -0
  266. package/dist/esm/utils/liquidation.d.ts.map +1 -0
  267. package/dist/esm/utils/liquidation.js +65 -0
  268. package/dist/esm/utils/liquidation.js.map +1 -0
  269. package/dist/esm/utils/mapActivity.d.ts +15 -0
  270. package/dist/esm/utils/mapActivity.d.ts.map +1 -0
  271. package/dist/esm/utils/mapActivity.js +148 -0
  272. package/dist/esm/utils/mapActivity.js.map +1 -0
  273. package/dist/esm/utils/mapFill.d.ts +11 -0
  274. package/dist/esm/utils/mapFill.d.ts.map +1 -0
  275. package/dist/esm/utils/mapFill.js +34 -0
  276. package/dist/esm/utils/mapFill.js.map +1 -0
  277. package/dist/esm/utils/mapMarket.d.ts +12 -0
  278. package/dist/esm/utils/mapMarket.d.ts.map +1 -0
  279. package/dist/esm/utils/mapMarket.js +27 -0
  280. package/dist/esm/utils/mapMarket.js.map +1 -0
  281. package/dist/esm/utils/mapMarketPrice.d.ts +10 -0
  282. package/dist/esm/utils/mapMarketPrice.d.ts.map +1 -0
  283. package/dist/esm/utils/mapMarketPrice.js +24 -0
  284. package/dist/esm/utils/mapMarketPrice.js.map +1 -0
  285. package/dist/esm/utils/mapOrder.d.ts +49 -0
  286. package/dist/esm/utils/mapOrder.d.ts.map +1 -0
  287. package/dist/esm/utils/mapOrder.js +182 -0
  288. package/dist/esm/utils/mapOrder.js.map +1 -0
  289. package/dist/esm/utils/mapPosition.d.ts +12 -0
  290. package/dist/esm/utils/mapPosition.d.ts.map +1 -0
  291. package/dist/esm/utils/mapPosition.js +30 -0
  292. package/dist/esm/utils/mapPosition.js.map +1 -0
  293. package/dist/esm/utils/marketDisplay.d.ts +17 -0
  294. package/dist/esm/utils/marketDisplay.d.ts.map +1 -0
  295. package/dist/esm/utils/marketDisplay.js +31 -0
  296. package/dist/esm/utils/marketDisplay.js.map +1 -0
  297. package/dist/esm/utils/orderFormatting.d.ts +50 -0
  298. package/dist/esm/utils/orderFormatting.d.ts.map +1 -0
  299. package/dist/esm/utils/orderFormatting.js +78 -0
  300. package/dist/esm/utils/orderFormatting.js.map +1 -0
  301. package/dist/esm/utils/priceStepToAggregation.d.ts +20 -0
  302. package/dist/esm/utils/priceStepToAggregation.d.ts.map +1 -0
  303. package/dist/esm/utils/priceStepToAggregation.js +51 -0
  304. package/dist/esm/utils/priceStepToAggregation.js.map +1 -0
  305. package/dist/esm/utils/spotBalance.d.ts +18 -0
  306. package/dist/esm/utils/spotBalance.d.ts.map +1 -0
  307. package/dist/esm/utils/spotBalance.js +40 -0
  308. package/dist/esm/utils/spotBalance.js.map +1 -0
  309. package/dist/esm/websocket/HyperliquidWsProvider.d.ts +61 -0
  310. package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -0
  311. package/dist/esm/websocket/HyperliquidWsProvider.js +406 -0
  312. package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -0
  313. package/dist/esm/websocket/index.d.ts +2 -0
  314. package/dist/esm/websocket/index.d.ts.map +1 -0
  315. package/dist/esm/websocket/index.js +3 -0
  316. package/dist/esm/websocket/index.js.map +1 -0
  317. package/dist/types/HyperliquidProvider.d.ts +64 -0
  318. package/dist/types/HyperliquidProvider.d.ts.map +1 -0
  319. package/dist/types/accountConfig.d.ts +10 -0
  320. package/dist/types/accountConfig.d.ts.map +1 -0
  321. package/dist/types/accountSummary.d.ts +10 -0
  322. package/dist/types/accountSummary.d.ts.map +1 -0
  323. package/dist/types/constants.d.ts +40 -0
  324. package/dist/types/constants.d.ts.map +1 -0
  325. package/dist/types/context.d.ts +26 -0
  326. package/dist/types/context.d.ts.map +1 -0
  327. package/dist/types/index.d.ts +31 -0
  328. package/dist/types/index.d.ts.map +1 -0
  329. package/dist/types/services/getAccount.d.ts +28 -0
  330. package/dist/types/services/getAccount.d.ts.map +1 -0
  331. package/dist/types/services/getActivity.d.ts +33 -0
  332. package/dist/types/services/getActivity.d.ts.map +1 -0
  333. package/dist/types/services/getFills.d.ts +34 -0
  334. package/dist/types/services/getFills.d.ts.map +1 -0
  335. package/dist/types/services/getOrder.d.ts +17 -0
  336. package/dist/types/services/getOrder.d.ts.map +1 -0
  337. package/dist/types/services/getOrders.d.ts +27 -0
  338. package/dist/types/services/getOrders.d.ts.map +1 -0
  339. package/dist/types/services/getPositions.d.ts +26 -0
  340. package/dist/types/services/getPositions.d.ts.map +1 -0
  341. package/dist/types/signers/HyperliquidAgentStore.d.ts +54 -0
  342. package/dist/types/signers/HyperliquidAgentStore.d.ts.map +1 -0
  343. package/dist/types/signers/index.d.ts +4 -0
  344. package/dist/types/signers/index.d.ts.map +1 -0
  345. package/dist/types/signers/signActions.d.ts +15 -0
  346. package/dist/types/signers/signActions.d.ts.map +1 -0
  347. package/dist/types/types/account.d.ts +64 -0
  348. package/dist/types/types/account.d.ts.map +1 -0
  349. package/dist/types/types/action.d.ts +61 -0
  350. package/dist/types/types/action.d.ts.map +1 -0
  351. package/dist/types/types/asset.d.ts +82 -0
  352. package/dist/types/types/asset.d.ts.map +1 -0
  353. package/dist/types/types/fill.d.ts +21 -0
  354. package/dist/types/types/fill.d.ts.map +1 -0
  355. package/dist/types/types/index.d.ts +8 -0
  356. package/dist/types/types/index.d.ts.map +1 -0
  357. package/dist/types/types/ledger.d.ts +93 -0
  358. package/dist/types/types/ledger.d.ts.map +1 -0
  359. package/dist/types/types/order.d.ts +51 -0
  360. package/dist/types/types/order.d.ts.map +1 -0
  361. package/dist/types/types/ws.d.ts +43 -0
  362. package/dist/types/types/ws.d.ts.map +1 -0
  363. package/dist/types/utils/assetId.d.ts +20 -0
  364. package/dist/types/utils/assetId.d.ts.map +1 -0
  365. package/dist/types/utils/index.d.ts +15 -0
  366. package/dist/types/utils/index.d.ts.map +1 -0
  367. package/dist/types/utils/infoClient.d.ts +28 -0
  368. package/dist/types/utils/infoClient.d.ts.map +1 -0
  369. package/dist/types/utils/liquidation.d.ts +48 -0
  370. package/dist/types/utils/liquidation.d.ts.map +1 -0
  371. package/dist/types/utils/mapActivity.d.ts +15 -0
  372. package/dist/types/utils/mapActivity.d.ts.map +1 -0
  373. package/dist/types/utils/mapFill.d.ts +11 -0
  374. package/dist/types/utils/mapFill.d.ts.map +1 -0
  375. package/dist/types/utils/mapMarket.d.ts +12 -0
  376. package/dist/types/utils/mapMarket.d.ts.map +1 -0
  377. package/dist/types/utils/mapMarketPrice.d.ts +10 -0
  378. package/dist/types/utils/mapMarketPrice.d.ts.map +1 -0
  379. package/dist/types/utils/mapOrder.d.ts +49 -0
  380. package/dist/types/utils/mapOrder.d.ts.map +1 -0
  381. package/dist/types/utils/mapPosition.d.ts +12 -0
  382. package/dist/types/utils/mapPosition.d.ts.map +1 -0
  383. package/dist/types/utils/marketDisplay.d.ts +17 -0
  384. package/dist/types/utils/marketDisplay.d.ts.map +1 -0
  385. package/dist/types/utils/orderFormatting.d.ts +50 -0
  386. package/dist/types/utils/orderFormatting.d.ts.map +1 -0
  387. package/dist/types/utils/priceStepToAggregation.d.ts +20 -0
  388. package/dist/types/utils/priceStepToAggregation.d.ts.map +1 -0
  389. package/dist/types/utils/spotBalance.d.ts +18 -0
  390. package/dist/types/utils/spotBalance.d.ts.map +1 -0
  391. package/dist/types/websocket/HyperliquidWsProvider.d.ts +61 -0
  392. package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -0
  393. package/dist/types/websocket/index.d.ts +2 -0
  394. package/dist/types/websocket/index.d.ts.map +1 -0
  395. package/package.json +68 -0
  396. package/src/HyperliquidProvider.ts +381 -0
  397. package/src/accountConfig.ts +89 -0
  398. package/src/accountSummary.ts +32 -0
  399. package/src/constants.ts +47 -0
  400. package/src/context.ts +41 -0
  401. package/src/index.ts +45 -0
  402. package/src/services/getAccount.ts +263 -0
  403. package/src/services/getActivity.ts +162 -0
  404. package/src/services/getFills.ts +96 -0
  405. package/src/services/getOrder.ts +61 -0
  406. package/src/services/getOrders.ts +101 -0
  407. package/src/services/getPositions.ts +76 -0
  408. package/src/signers/HyperliquidAgentStore.ts +176 -0
  409. package/src/signers/index.ts +5 -0
  410. package/src/signers/signActions.ts +78 -0
  411. package/src/types/account.ts +74 -0
  412. package/src/types/action.ts +66 -0
  413. package/src/types/asset.ts +96 -0
  414. package/src/types/fill.ts +24 -0
  415. package/src/types/index.ts +11 -0
  416. package/src/types/ledger.ts +111 -0
  417. package/src/types/order.ts +56 -0
  418. package/src/types/ws.ts +47 -0
  419. package/src/utils/assetId.ts +38 -0
  420. package/src/utils/index.ts +38 -0
  421. package/src/utils/infoClient.ts +111 -0
  422. package/src/utils/liquidation.ts +74 -0
  423. package/src/utils/mapActivity.ts +182 -0
  424. package/src/utils/mapFill.ts +48 -0
  425. package/src/utils/mapMarket.ts +33 -0
  426. package/src/utils/mapMarketPrice.ts +33 -0
  427. package/src/utils/mapOrder.ts +218 -0
  428. package/src/utils/mapPosition.ts +40 -0
  429. package/src/utils/marketDisplay.ts +38 -0
  430. package/src/utils/orderFormatting.ts +93 -0
  431. package/src/utils/priceStepToAggregation.ts +58 -0
  432. package/src/utils/spotBalance.ts +51 -0
  433. package/src/websocket/HyperliquidWsProvider.ts +533 -0
  434. package/src/websocket/index.ts +3 -0
@@ -0,0 +1,101 @@
1
+ import { getMarketRegistry, type SDKRequestOptions } from '@lifi/perps-sdk'
2
+ import type { OpenOrder, OrdersResponse, TriggerOrder } from '@lifi/perps-types'
3
+ import type { Address } from 'viem'
4
+ import { PROVIDER_KEY } from '../constants.js'
5
+ import type { HyperliquidContext } from '../context.js'
6
+ import type {
7
+ HlFrontendOpenOrder,
8
+ HlFrontendOpenOrders,
9
+ } from '../types/index.js'
10
+ import {
11
+ isTriggerOrder,
12
+ mapOpenOrder,
13
+ mapTriggerOrder,
14
+ perpsDexNames,
15
+ } from '../utils/index.js'
16
+ import { hlInfoOptions, infoRequest } from '../utils/infoClient.js'
17
+
18
+ /**
19
+ * Parameters for {@link getOrders}.
20
+ *
21
+ * @public
22
+ */
23
+ export interface GetOrdersParams {
24
+ address: Address
25
+ /** Optional filter — opaque `Market.id`. */
26
+ marketId?: string
27
+ limit?: number
28
+ }
29
+
30
+ /**
31
+ * Fetch open + trigger orders across every supported perps sub-dex for
32
+ * `address`, normalised into `OrdersResponse`. Trigger orders that appear as
33
+ * children of a parent limit order (Hyperliquid's `normalTpsl` flow) are
34
+ * extracted and surfaced alongside top-level trigger orders. The backend's
35
+ * enriched asset list supplies the sub-dex fan-out and display fields; only
36
+ * `frontendOpenOrders` is read direct.
37
+ * @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
38
+ * @public
39
+ */
40
+ export const getOrders = async (
41
+ { client, apiUrl }: HyperliquidContext,
42
+ params: GetOrdersParams,
43
+ options?: SDKRequestOptions
44
+ ): Promise<OrdersResponse> => {
45
+ const registry = getMarketRegistry(client, PROVIDER_KEY)
46
+ const markets = await registry.sync()
47
+ const infoOpts = hlInfoOptions(client, options)
48
+
49
+ const ordersResults = await Promise.all(
50
+ perpsDexNames(markets).map((name) =>
51
+ infoRequest<HlFrontendOpenOrders>(
52
+ apiUrl,
53
+ {
54
+ type: 'frontendOpenOrders',
55
+ user: params.address,
56
+ ...(name ? { dex: name } : {}),
57
+ },
58
+ infoOpts
59
+ )
60
+ )
61
+ )
62
+
63
+ const raw: HlFrontendOpenOrder[] = ordersResults.flat()
64
+
65
+ const childOids = new Set<number>()
66
+ for (const o of raw) {
67
+ for (const child of o.children) {
68
+ childOids.add(child.oid)
69
+ }
70
+ }
71
+
72
+ const nonChild = raw.filter((o) => !childOids.has(o.oid))
73
+
74
+ let openOrders: OpenOrder[] = nonChild
75
+ .filter((o) => !isTriggerOrder(o))
76
+ .map((o) => mapOpenOrder(o, registry.require(o.coin)))
77
+
78
+ let triggerOrders: TriggerOrder[] = [
79
+ ...nonChild
80
+ .filter((o) => isTriggerOrder(o))
81
+ .map((o) => mapTriggerOrder(o, registry.require(o.coin))),
82
+ ...raw
83
+ .filter((o) => childOids.has(o.oid))
84
+ .map((o) => mapTriggerOrder(o, registry.require(o.coin))),
85
+ ]
86
+
87
+ if (params.marketId !== undefined) {
88
+ openOrders = openOrders.filter((o) => o.market.id === params.marketId)
89
+ triggerOrders = triggerOrders.filter((o) => o.market.id === params.marketId)
90
+ }
91
+
92
+ return {
93
+ provider: PROVIDER_KEY,
94
+ openOrders,
95
+ triggerOrders,
96
+ pagination: {
97
+ limit: params.limit ?? openOrders.length + triggerOrders.length,
98
+ hasMore: false,
99
+ },
100
+ }
101
+ }
@@ -0,0 +1,76 @@
1
+ import { getMarketRegistry, type SDKRequestOptions } from '@lifi/perps-sdk'
2
+ import type { PositionsResponse } from '@lifi/perps-types'
3
+ import type { Address } from 'viem'
4
+ import { PROVIDER_KEY } from '../constants.js'
5
+ import type { HyperliquidContext } from '../context.js'
6
+ import type { HlClearinghouseState } from '../types/index.js'
7
+ import {
8
+ isOpenAssetPosition,
9
+ mapPosition,
10
+ perpsDexNames,
11
+ } from '../utils/index.js'
12
+ import { hlInfoOptions, infoRequest } from '../utils/infoClient.js'
13
+
14
+ /**
15
+ * Parameters for {@link getPositions}.
16
+ *
17
+ * @public
18
+ */
19
+ export interface GetPositionsParams {
20
+ address: Address
21
+ /** Filter to a single opaque `Market.id` (e.g. `'BTC'`, `'xyz:PURR'`). */
22
+ marketId?: string
23
+ /** Page size hint surfaced on the response. Hyperliquid returns all open positions in one call, so pagination is never required. */
24
+ limit?: number
25
+ }
26
+
27
+ /**
28
+ * Fetch open positions across every supported perps sub-dex for `address`,
29
+ * normalised into `PositionsResponse`. Zero-size entries are dropped. The
30
+ * backend's enriched asset list supplies the sub-dex fan-out and display
31
+ * fields; only `clearinghouseState` is read direct from Hyperliquid.
32
+ * @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
33
+ * @public
34
+ */
35
+ export const getPositions = async (
36
+ { client, apiUrl }: HyperliquidContext,
37
+ params: GetPositionsParams,
38
+ options?: SDKRequestOptions
39
+ ): Promise<PositionsResponse> => {
40
+ const registry = getMarketRegistry(client, PROVIDER_KEY)
41
+ const markets = await registry.sync()
42
+ const infoOpts = hlInfoOptions(client, options)
43
+
44
+ const stateResults = await Promise.all(
45
+ perpsDexNames(markets).map((name) =>
46
+ infoRequest<HlClearinghouseState>(
47
+ apiUrl,
48
+ {
49
+ type: 'clearinghouseState',
50
+ user: params.address,
51
+ ...(name ? { dex: name } : {}),
52
+ },
53
+ infoOpts
54
+ )
55
+ )
56
+ )
57
+
58
+ let positions = stateResults.flatMap((state) =>
59
+ state.assetPositions
60
+ .filter(isOpenAssetPosition)
61
+ .map((ap) => mapPosition(ap, registry.require(ap.position.coin)))
62
+ )
63
+
64
+ if (params.marketId !== undefined) {
65
+ positions = positions.filter((p) => p.market.id === params.marketId)
66
+ }
67
+
68
+ return {
69
+ provider: PROVIDER_KEY,
70
+ positions,
71
+ pagination: {
72
+ limit: params.limit ?? positions.length,
73
+ hasMore: false,
74
+ },
75
+ }
76
+ }
@@ -0,0 +1,176 @@
1
+ import {
2
+ localStorageAdapter,
3
+ PerpsError,
4
+ PerpsErrorMessage,
5
+ parseStoredRecord,
6
+ type StorageAdapter,
7
+ } from '@lifi/perps-sdk'
8
+ import { PerpsErrorCode } from '@lifi/perps-types'
9
+ import { type Address, type Hex, isAddress, isHex } from 'viem'
10
+ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'
11
+ import { PROVIDER_KEY } from '../constants.js'
12
+
13
+ const STORAGE_PREFIX = 'lifi-perps-agent'
14
+
15
+ /**
16
+ * Hyperliquid agent keypair — an EVM keypair the user approves (via
17
+ * `APPROVE_AGENT`) to sign trading actions on their behalf, so each order
18
+ * does not require a wallet prompt.
19
+ */
20
+ export interface HyperliquidAgent {
21
+ /** Agent wallet address. */
22
+ address: Address
23
+ /** Agent private key. */
24
+ privateKey: Hex
25
+ }
26
+
27
+ const isParsablePrivateKey = (value: unknown): value is Hex => {
28
+ if (!isHex(value)) {
29
+ return false
30
+ }
31
+ try {
32
+ privateKeyToAccount(value)
33
+ return true
34
+ } catch {
35
+ return false
36
+ }
37
+ }
38
+
39
+ const isHyperliquidAgent = (value: unknown): value is HyperliquidAgent => {
40
+ if (typeof value !== 'object' || value === null) {
41
+ return false
42
+ }
43
+ const { address, privateKey } = value as Record<string, unknown>
44
+ return (
45
+ typeof address === 'string' &&
46
+ isAddress(address) &&
47
+ isParsablePrivateKey(privateKey)
48
+ )
49
+ }
50
+
51
+ /**
52
+ * Owns the Hyperliquid agent keypair lifecycle: generate, persist, look up,
53
+ * and revoke. Keyed per user L1 address. Persisted via the injected
54
+ * {@link StorageAdapter} (browser `localStorage` by default).
55
+ */
56
+ export class HyperliquidAgentStore {
57
+ private storage: StorageAdapter
58
+ private cache: Map<string, HyperliquidAgent> = new Map()
59
+
60
+ constructor(storage?: StorageAdapter) {
61
+ this.storage = storage ?? localStorageAdapter
62
+ }
63
+
64
+ private storageKey(address: Address): string {
65
+ return `${STORAGE_PREFIX}:${address.toLowerCase()}:${PROVIDER_KEY}`
66
+ }
67
+
68
+ /**
69
+ * Get the existing agent for a user address.
70
+ *
71
+ * @throws {PerpsError} `AgentNotFound` when no agent exists, or
72
+ * `AgentStorageCorrupt` when a record is present but malformed (so callers
73
+ * never act on a structurally-invalid keypair, and `getOrCreate` does not
74
+ * silently overwrite a poisoned-but-recoverable entry).
75
+ */
76
+ async get(address: Address): Promise<HyperliquidAgent> {
77
+ const key = this.storageKey(address)
78
+
79
+ const cached = this.cache.get(key)
80
+ if (cached) {
81
+ return cached
82
+ }
83
+
84
+ const stored = await this.storage.get(key)
85
+ const agent = parseStoredRecord(stored, isHyperliquidAgent)
86
+ if (agent) {
87
+ this.cache.set(key, agent)
88
+ return agent
89
+ }
90
+
91
+ const corrupt = stored !== null
92
+ const error = new PerpsError(
93
+ PerpsErrorCode.SDKError,
94
+ corrupt
95
+ ? PerpsErrorMessage.AgentStorageCorrupt
96
+ : PerpsErrorMessage.AgentNotFound
97
+ )
98
+ error.tool = '@lifi/perps-sdk-provider-hyperliquid'
99
+ throw error
100
+ }
101
+
102
+ /**
103
+ * Get the existing agent for a user address, or create and persist one.
104
+ * Regenerates only on genuine absence; a malformed stored record surfaces
105
+ * as `AgentStorageCorrupt` rather than being overwritten with a fresh key.
106
+ */
107
+ async getOrCreate(address: Address): Promise<HyperliquidAgent> {
108
+ try {
109
+ return await this.get(address)
110
+ } catch (error) {
111
+ if (
112
+ error instanceof PerpsError &&
113
+ error.message !== PerpsErrorMessage.AgentNotFound
114
+ ) {
115
+ throw error
116
+ }
117
+ const privateKey = generatePrivateKey()
118
+ const account = privateKeyToAccount(privateKey)
119
+
120
+ const agent: HyperliquidAgent = {
121
+ address: account.address,
122
+ privateKey,
123
+ }
124
+
125
+ const key = this.storageKey(address)
126
+ await this.storage.set(key, JSON.stringify(agent))
127
+ this.cache.set(key, agent)
128
+
129
+ return agent
130
+ }
131
+ }
132
+
133
+ /** Whether an agent exists for the user address. */
134
+ async has(address: Address): Promise<boolean> {
135
+ try {
136
+ await this.get(address)
137
+ return true
138
+ } catch {
139
+ return false
140
+ }
141
+ }
142
+
143
+ /**
144
+ * Remove the agent for a user address. Call when the user revokes agent
145
+ * authorization.
146
+ */
147
+ async remove(address: Address): Promise<void> {
148
+ const key = this.storageKey(address)
149
+ this.cache.delete(key)
150
+ await this.storage.remove(key)
151
+ }
152
+
153
+ /**
154
+ * Import an existing agent keypair (e.g. restoring from backup or pinning a
155
+ * specific key) and persist it.
156
+ */
157
+ async import(address: Address, privateKey: Hex): Promise<HyperliquidAgent> {
158
+ const account = privateKeyToAccount(privateKey)
159
+
160
+ const agent: HyperliquidAgent = {
161
+ address: account.address,
162
+ privateKey,
163
+ }
164
+
165
+ const key = this.storageKey(address)
166
+ await this.storage.set(key, JSON.stringify(agent))
167
+ this.cache.set(key, agent)
168
+
169
+ return agent
170
+ }
171
+
172
+ /** Clear the in-memory cache. Does not remove persisted agents. */
173
+ clearCache(): void {
174
+ this.cache.clear()
175
+ }
176
+ }
@@ -0,0 +1,5 @@
1
+ // biome-ignore-all lint/performance/noBarrelFile: package-internal barrel.
2
+
3
+ export type { HyperliquidAgent } from './HyperliquidAgentStore.js'
4
+ export { HyperliquidAgentStore } from './HyperliquidAgentStore.js'
5
+ export { hyperliquidSignActions } from './signActions.js'
@@ -0,0 +1,78 @@
1
+ import {
2
+ PerpsError,
3
+ type SignActionsContext,
4
+ signTypedData,
5
+ signTypedDataWithSigner,
6
+ } from '@lifi/perps-sdk'
7
+ import type {
8
+ ActionStep,
9
+ Eip712ActionStep,
10
+ Eip712SignedActionStep,
11
+ SignedActionStep,
12
+ } from '@lifi/perps-types'
13
+ import { PerpsErrorCode, PerpsSigner, SigningMethod } from '@lifi/perps-types'
14
+ import type { Address, Hex } from 'viem'
15
+ import type { HyperliquidAgentStore } from './HyperliquidAgentStore.js'
16
+
17
+ /**
18
+ * Sign a batch of EIP-712 action steps. Hyperliquid owns both EIP712 arms and
19
+ * picks WHO signs from the descriptor's `signers` (forwarded on the context):
20
+ * - `AGENT` → the user's Hyperliquid agent keypair (provisioned + approved
21
+ * during setup; a missing agent throws).
22
+ * - `USER` → the end-user's wallet, read from `ctx.userWallet`.
23
+ * Hyperliquid declares no WASM_BLOB / EVM_TX actions, so those schemes reject.
24
+ */
25
+ export async function hyperliquidSignActions(
26
+ agentStore: HyperliquidAgentStore,
27
+ method: SigningMethod,
28
+ steps: ActionStep[],
29
+ address: Address,
30
+ ctx: SignActionsContext | undefined
31
+ ): Promise<SignedActionStep[]> {
32
+ if (method !== SigningMethod.EIP712) {
33
+ throw new PerpsError(
34
+ PerpsErrorCode.SDKError,
35
+ `hyperliquidProvider.signActions: unsupported SigningMethod '${method}'. ` +
36
+ 'Hyperliquid only signs EIP712 actions.'
37
+ )
38
+ }
39
+
40
+ const sign = ctx?.signers?.includes(PerpsSigner.USER)
41
+ ? await userWalletSigner(ctx)
42
+ : await agentSigner(agentStore, address)
43
+
44
+ return Promise.all(
45
+ (steps as Eip712ActionStep[]).map(
46
+ async (step): Promise<Eip712SignedActionStep> => ({
47
+ action: step.action,
48
+ typedData: step.typedData,
49
+ signature: await sign(step),
50
+ })
51
+ )
52
+ )
53
+ }
54
+
55
+ type SignStep = (step: Eip712ActionStep) => Promise<Hex>
56
+
57
+ async function agentSigner(
58
+ agentStore: HyperliquidAgentStore,
59
+ address: Address
60
+ ): Promise<SignStep> {
61
+ const agent = await agentStore.get(address)
62
+ return (step) => signTypedData(agent.privateKey, step.typedData)
63
+ }
64
+
65
+ function userWalletSigner(ctx: SignActionsContext): Promise<SignStep> {
66
+ const wallet = ctx.userWallet
67
+ if (!wallet) {
68
+ throw new PerpsError(
69
+ PerpsErrorCode.SDKError,
70
+ 'hyperliquidProvider.signActions: a USER-signed action requires the ' +
71
+ 'end-user wallet. Pass `userWallet` to createPerpsClient or call ' +
72
+ 'setUserWallet(walletClient).'
73
+ )
74
+ }
75
+ return Promise.resolve((step) =>
76
+ signTypedDataWithSigner(wallet, step.typedData)
77
+ )
78
+ }
@@ -0,0 +1,74 @@
1
+ // Account-level types returned by Hyperliquid `/info`.
2
+
3
+ /** @public */
4
+ export type HlPosition = {
5
+ coin: string
6
+ szi: string
7
+ entryPx: string
8
+ positionValue: string
9
+ liquidationPx: string
10
+ unrealizedPnl: string
11
+ marginUsed: string
12
+ leverage: {
13
+ type: string
14
+ value: number
15
+ }
16
+ }
17
+
18
+ /** @public */
19
+ export type HlAssetPosition = {
20
+ position: HlPosition
21
+ }
22
+
23
+ /** @public */
24
+ export type HlClearinghouseState = {
25
+ assetPositions: HlAssetPosition[]
26
+ marginSummary: {
27
+ accountValue: string
28
+ totalMarginUsed: string
29
+ }
30
+ crossMarginSummary: {
31
+ accountValue: string
32
+ totalMarginUsed: string
33
+ }
34
+ }
35
+
36
+ /** @public */
37
+ export type HlSpotBalance = {
38
+ coin: string
39
+ token: number
40
+ total: string
41
+ hold: string
42
+ entryNtl: string
43
+ }
44
+
45
+ /** @public */
46
+ export type HlSpotClearinghouseState = {
47
+ balances: HlSpotBalance[]
48
+ }
49
+
50
+ /** @public */
51
+ export type HlUserFees = {
52
+ userAddRate: string
53
+ userCrossRate: string
54
+ activeReferralDiscount: string
55
+ }
56
+
57
+ /** @public */
58
+ export type HlExtraAgents = Record<string, unknown>[]
59
+
60
+ /**
61
+ * Possible values returned by the `userAbstraction` info endpoint.
62
+ * `null` means abstraction has never been set (standard mode).
63
+ * @public
64
+ */
65
+ export const HlAbstractionMode = {
66
+ DISABLED: 'disabled',
67
+ UNIFIED_ACCOUNT: 'unifiedAccount',
68
+ PORTFOLIO_MARGIN: 'portfolioMargin',
69
+ DEX_ABSTRACTION: 'dexAbstraction',
70
+ } as const
71
+
72
+ /** @public */
73
+ export type HlAbstractionMode =
74
+ (typeof HlAbstractionMode)[keyof typeof HlAbstractionMode]
@@ -0,0 +1,66 @@
1
+ // Hyperliquid `/exchange` request/response shapes + EIP-712 primary types.
2
+
3
+ /** @public */
4
+ export type HlExchangeRequest = {
5
+ action: Record<string, unknown>
6
+ signature: {
7
+ r: string
8
+ s: string
9
+ v: number
10
+ }
11
+ nonce: number
12
+ vaultAddress?: string | null
13
+ }
14
+
15
+ /** @public */
16
+ export type HlExchangeResponse = {
17
+ status: string
18
+ response?:
19
+ | string
20
+ | {
21
+ type: string
22
+ data?: {
23
+ statuses?: (
24
+ | string
25
+ | { filled: { totalSz: string; avgPx: string; oid: number } }
26
+ | { resting: { oid: number } }
27
+ | { waitingForFill: { oid: number } }
28
+ | { waitingForTrigger: { oid: number } }
29
+ | { success: true }
30
+ | { error: string }
31
+ )[]
32
+ status?: unknown
33
+ }
34
+ }
35
+ }
36
+
37
+ /** @public */
38
+ export const HL_PRIMARY_TYPE_APPROVE_AGENT =
39
+ 'HyperliquidTransaction:ApproveAgent' as const
40
+ /** @public */
41
+ export const HL_PRIMARY_TYPE_APPROVE_BUILDER_FEE =
42
+ 'HyperliquidTransaction:ApproveBuilderFee' as const
43
+ /** @public */
44
+ export const HL_PRIMARY_TYPE_USER_SET_ABSTRACTION =
45
+ 'HyperliquidTransaction:UserSetAbstraction' as const
46
+ /** @public */
47
+ export const HL_PRIMARY_TYPE_AGENT_SET_ABSTRACTION =
48
+ 'HyperliquidTransaction:AgentSetAbstraction' as const
49
+ /** @public */
50
+ export const HL_PRIMARY_TYPE_WITHDRAW =
51
+ 'HyperliquidTransaction:Withdraw' as const
52
+ /** @public */
53
+ export const HL_PRIMARY_TYPE_SEND_ASSET =
54
+ 'HyperliquidTransaction:SendAsset' as const
55
+ /** @public */
56
+ export const HL_PRIMARY_TYPE_AGENT = 'Agent' as const
57
+
58
+ /** @public */
59
+ export type HlPrimaryType =
60
+ | typeof HL_PRIMARY_TYPE_APPROVE_AGENT
61
+ | typeof HL_PRIMARY_TYPE_APPROVE_BUILDER_FEE
62
+ | typeof HL_PRIMARY_TYPE_USER_SET_ABSTRACTION
63
+ | typeof HL_PRIMARY_TYPE_AGENT_SET_ABSTRACTION
64
+ | typeof HL_PRIMARY_TYPE_WITHDRAW
65
+ | typeof HL_PRIMARY_TYPE_SEND_ASSET
66
+ | typeof HL_PRIMARY_TYPE_AGENT
@@ -0,0 +1,96 @@
1
+ // Asset / market metadata returned by Hyperliquid `/info`.
2
+
3
+ /** @public */
4
+ export type HlUniverseItem = {
5
+ name: string
6
+ szDecimals: number
7
+ maxLeverage: number
8
+ onlyIsolated?: boolean
9
+ isDelisted?: boolean
10
+ }
11
+
12
+ /** @public */
13
+ export type HlMeta = {
14
+ universe: HlUniverseItem[]
15
+ }
16
+
17
+ /** @public */
18
+ export type HlAssetCtx = {
19
+ funding: string
20
+ openInterest: string
21
+ dayNtlVlm: string
22
+ prevDayPx: string
23
+ markPx: string
24
+ }
25
+
26
+ /** @public */
27
+ export type HlMetaAndAssetCtxs = [HlMeta, HlAssetCtx[]]
28
+
29
+ /** @public */
30
+ export type HlUniverse = HlMeta['universe']
31
+
32
+ /** @public */
33
+ export type HlAllMids = Record<string, string>
34
+
35
+ /** @public */
36
+ export type HlCandle = {
37
+ t: number
38
+ o: string
39
+ h: string
40
+ l: string
41
+ c: string
42
+ v: string
43
+ }
44
+
45
+ /** @public */
46
+ export type HlCandleSnapshot = HlCandle[]
47
+
48
+ /** @public */
49
+ export type HlLevel = {
50
+ px: string
51
+ sz: string
52
+ n: number
53
+ }
54
+
55
+ /** @public */
56
+ export type HlL2Book = {
57
+ levels: [HlLevel[], HlLevel[]]
58
+ time: number
59
+ }
60
+
61
+ /** @public */
62
+ export type HlPerpDexs = (null | { name: string })[]
63
+
64
+ /** @public */
65
+ export type HlSpotToken = {
66
+ name: string
67
+ index: number
68
+ tokenId: string
69
+ szDecimals: number
70
+ }
71
+
72
+ /** @public */
73
+ export type HlSpotUniverseEntry = {
74
+ name: string
75
+ tokens: [number, number]
76
+ index: number
77
+ isCanonical: boolean
78
+ }
79
+
80
+ /** @public */
81
+ export type HlSpotMeta = {
82
+ tokens: HlSpotToken[]
83
+ universe: HlSpotUniverseEntry[]
84
+ }
85
+
86
+ /** @public */
87
+ export type HlSpotAssetCtx = {
88
+ coin: string
89
+ prevDayPx: string
90
+ dayNtlVlm: string
91
+ markPx: string
92
+ midPx: string | null
93
+ }
94
+
95
+ /** @public */
96
+ export type HlSpotMetaAndAssetCtxs = [HlSpotMeta, HlSpotAssetCtx[]]
@@ -0,0 +1,24 @@
1
+ // Fill shapes returned by Hyperliquid `/info`.
2
+
3
+ /** @public */
4
+ export type HlUserFill = {
5
+ tid: number
6
+ oid: number
7
+ hash?: string
8
+ coin: string
9
+ side: string
10
+ sz: string
11
+ px: string
12
+ dir: string
13
+ fee: string
14
+ closedPnl: string
15
+ crossed: boolean
16
+ time: number
17
+ startPosition: string
18
+ }
19
+
20
+ /** @public */
21
+ export type HlUserFills = HlUserFill[]
22
+
23
+ /** @public */
24
+ export type HlUserFillsByTime = HlUserFill[]