@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,93 @@
1
+ import type { Address } from 'viem';
2
+ /**
3
+ * Hyperliquid `spotTransfer` ledger delta. Emitted for transfers of spot
4
+ * tokens between Hyperliquid accounts. `user` is the sender, `destination`
5
+ * the recipient; direction is derived at the call site from the queried
6
+ * address.
7
+ * @public
8
+ */
9
+ export type HlSpotTransferDelta = {
10
+ type: 'spotTransfer';
11
+ token: string;
12
+ amount: string;
13
+ usdcValue: string;
14
+ user: Address;
15
+ destination: Address;
16
+ fee?: string;
17
+ nativeTokenFee?: string;
18
+ nonce?: number;
19
+ };
20
+ /**
21
+ * Hyperliquid ledger delta emitted for the `sendAsset` exchange action. The
22
+ * wire `type` literal is `'send'` (NOT `'sendAsset'`); the TS name retains
23
+ * the `SendAsset` prefix to match `HL_PRIMARY_TYPE_SEND_ASSET`.
24
+ *
25
+ * - `user` is the sender, `destination` the recipient. For same-user dex
26
+ * moves both equal the queried address.
27
+ * - `sourceDex` / `destinationDex` use `""` for the main USDC perp DEX,
28
+ * `"spot"` for spot, or the perp DEX name otherwise.
29
+ * - `token` is a wire token identifier (e.g. `"USDC"` or `"TOKEN:0x..."`).
30
+ * - `nonce` is the wire nonce (ms timestamp); always present on `send`
31
+ * deltas, unlike `spotTransfer` where it may be null.
32
+ * @public
33
+ */
34
+ export type HlSendAssetDelta = {
35
+ type: 'send';
36
+ user: Address;
37
+ destination: Address;
38
+ sourceDex: string;
39
+ destinationDex: string;
40
+ token: string;
41
+ amount: string;
42
+ usdcValue: string;
43
+ fee: string;
44
+ nativeTokenFee: string;
45
+ nonce: number;
46
+ feeToken: string;
47
+ };
48
+ /** @public */
49
+ export type HlLedgerDelta = HlSpotTransferDelta | HlSendAssetDelta | {
50
+ type: string;
51
+ usdc?: string;
52
+ [key: string]: unknown;
53
+ };
54
+ /**
55
+ * Type guard for `HlSpotTransferDelta` — TypeScript cannot narrow off the
56
+ * `type` discriminant alone because the catch-all arm of `HlLedgerDelta` has
57
+ * `type: string` (a supertype of the literal `'spotTransfer'`). Use this at
58
+ * call sites that need the strongly-typed shape.
59
+ * @public
60
+ */
61
+ export declare const isSpotTransferDelta: (delta: HlLedgerDelta) => delta is HlSpotTransferDelta;
62
+ /**
63
+ * Type guard for `HlSendAssetDelta`. The wire `type` literal is `'send'`;
64
+ * see `HlSendAssetDelta` for the naming-vs-wire-format rationale. Same
65
+ * catch-all-arm caveat as `isSpotTransferDelta`.
66
+ * @public
67
+ */
68
+ export declare const isSendAssetDelta: (delta: HlLedgerDelta) => delta is HlSendAssetDelta;
69
+ /** @public */
70
+ export type HlLedgerUpdate = {
71
+ time: number;
72
+ hash: string;
73
+ delta: HlLedgerDelta;
74
+ };
75
+ /** @public */
76
+ export type HlUserNonFundingLedgerUpdates = HlLedgerUpdate[];
77
+ /** @public */
78
+ export type HlFundingDelta = {
79
+ type: 'funding';
80
+ coin: string;
81
+ usdc: string;
82
+ szi: string;
83
+ fundingRate: string;
84
+ };
85
+ /** @public */
86
+ export type HlFundingUpdate = {
87
+ time: number;
88
+ hash: string;
89
+ delta: HlFundingDelta;
90
+ };
91
+ /** @public */
92
+ export type HlUserFunding = HlFundingUpdate[];
93
+ //# sourceMappingURL=ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../../src/types/ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,gBAAgB,GAChB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAEL;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,aAAa,KACnB,KAAK,IAAI,mBAAoD,CAAA;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,aAAa,KACnB,KAAK,IAAI,gBAAyC,CAAA;AAErD,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,6BAA6B,GAAG,cAAc,EAAE,CAAA;AAE5D,cAAc;AACd,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,cAAc,CAAA;CACtB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,aAAa,GAAG,eAAe,EAAE,CAAA"}
@@ -0,0 +1,51 @@
1
+ /** @public */
2
+ export type HlFrontendOpenOrder = {
3
+ oid: number;
4
+ coin: string;
5
+ side: string;
6
+ sz: string;
7
+ limitPx: string;
8
+ orderType: string;
9
+ origSz: string;
10
+ reduceOnly: boolean;
11
+ timestamp: number;
12
+ isTrigger: boolean;
13
+ isPositionTpsl: boolean;
14
+ triggerCondition: string;
15
+ triggerPx: string;
16
+ children: HlFrontendOpenOrder[];
17
+ tif: string | null;
18
+ cloid: string | null;
19
+ };
20
+ /** @public */
21
+ export type HlFrontendOpenOrders = HlFrontendOpenOrder[];
22
+ /** @public */
23
+ export type HlOrderDetail = {
24
+ order: {
25
+ oid: number;
26
+ coin: string;
27
+ side: string;
28
+ sz: string;
29
+ limitPx: string;
30
+ orderType: string;
31
+ origSz: string;
32
+ reduceOnly: boolean;
33
+ timestamp: number;
34
+ tif: string | null;
35
+ cloid: string | null;
36
+ triggerCondition: string;
37
+ triggerPx: string | null;
38
+ };
39
+ status: string;
40
+ statusTimestamp: number;
41
+ };
42
+ /** @public */
43
+ export type HlOrderStatusFound = {
44
+ status: 'order';
45
+ order: HlOrderDetail;
46
+ };
47
+ /** @public */
48
+ export type HlOrderStatusResponse = HlOrderStatusFound | {
49
+ status: 'unknownOid';
50
+ };
51
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/types/order.ts"],"names":[],"mappings":"AAEA,cAAc;AACd,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,EAAE,CAAA;AAExD,cAAc;AACd,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,OAAO,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KACzB,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAA"}
@@ -0,0 +1,43 @@
1
+ import type { HlClearinghouseState, HlSpotBalance } from './account.js';
2
+ import type { HlAllMids, HlCandle, HlL2Book } from './asset.js';
3
+ import type { HlUserFill } from './fill.js';
4
+ /** @public */
5
+ export type HlWsMessage = {
6
+ channel: string;
7
+ data: unknown;
8
+ };
9
+ /** @public */
10
+ export type HlWsAllMidsData = {
11
+ mids: HlAllMids;
12
+ dex?: string;
13
+ };
14
+ /** @public */
15
+ export type HlWsL2BookData = HlL2Book & {
16
+ coin: string;
17
+ };
18
+ /** @public */
19
+ export type HlWsCandleData = HlCandle & {
20
+ T: number;
21
+ s: string;
22
+ i: string;
23
+ n: number;
24
+ };
25
+ /** @public */
26
+ export type HlWsUserFillsData = {
27
+ isSnapshot: boolean;
28
+ user: string;
29
+ fills: HlUserFill[];
30
+ };
31
+ /** @public */
32
+ export type HlWsAllDexsClearinghouseStateData = {
33
+ user: string;
34
+ clearinghouseStates: [string, Pick<HlClearinghouseState, 'assetPositions'>][];
35
+ };
36
+ /** @public */
37
+ export type HlWsSpotStateData = {
38
+ user: string;
39
+ spotState: {
40
+ balances: HlSpotBalance[];
41
+ };
42
+ };
43
+ //# sourceMappingURL=ws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../../src/types/ws.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,cAAc;AACd,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,cAAc;AACd,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,cAAc;AACd,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD,cAAc;AACd,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IACtC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,cAAc;AACd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAA;AAED,cAAc;AACd,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAA;CAC9E,CAAA;AAED,cAAc;AACd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAA;CACzC,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Spot asset IDs use the @pairIndex format (e.g. "@230").
3
+ *
4
+ * @public
5
+ */
6
+ export declare const assetIsSpot: (assetId: string) => boolean;
7
+ /**
8
+ * Calculate the asset ID for a given provider index and asset index.
9
+ *
10
+ * Main provider (provider = ''): assetId = indexInProvider
11
+ * HIP-3 providers (provider = 'xyz'): assetId = 100_000 + perpDexIndex * 10_000 + indexInProvider
12
+ * @public
13
+ */
14
+ export declare const calculateAssetId: (providerIndex: number, indexInProvider: number) => number;
15
+ /**
16
+ * Get the provider index from the given list of provider names.
17
+ * @public
18
+ */
19
+ export declare const getProviderIndex: (provider: string, providerNames: string[]) => number;
20
+ //# sourceMappingURL=assetId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetId.d.ts","sourceRoot":"","sources":["../../../src/utils/assetId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,OAAkC,CAAA;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,eAAe,MAAM,EACrB,iBAAiB,MAAM,KACtB,MAKF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,eAAe,MAAM,EAAE,KACtB,MAMF,CAAA"}
@@ -0,0 +1,15 @@
1
+ export { assetIsSpot, calculateAssetId, getProviderIndex } from './assetId.js';
2
+ export type { InfoRequestOptions } from './infoClient.js';
3
+ export { hlInfoOptions, infoRequest } from './infoClient.js';
4
+ export { calculateLiquidationPrice, calculateMaintenanceMarginRate, } from './liquidation.js';
5
+ export { mapFundingActivity, mapLedgerEntry } from './mapActivity.js';
6
+ export { classifyFillFromPosition, mapFill } from './mapFill.js';
7
+ export { mapMarket } from './mapMarket.js';
8
+ export { mapMarketPrice } from './mapMarketPrice.js';
9
+ export { isTriggerOrder, isTriggerType, mapOpenOrder, mapOrder, mapOrderStatus, mapOrderType, mapStatusReason, mapTriggerOrder, } from './mapOrder.js';
10
+ export { isOpenAssetPosition, mapPosition } from './mapPosition.js';
11
+ export { coinAsset, perpsDexNames } from './marketDisplay.js';
12
+ export { formatOrderPrice, formatOrderSize, getMaxPriceDecimals, } from './orderFormatting.js';
13
+ export { priceStepToAggregation } from './priceStepToAggregation.js';
14
+ export { spotAssetFromToken, spotBalance, spotPriceById, } from './spotBalance.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { type PerpsSDKClient, type ResolvedRetryPolicy, type SDKRequestOptions } from '@lifi/perps-sdk';
2
+ /** @internal */
3
+ export declare const HYPERLIQUID_RETRY_DEFAULTS: ResolvedRetryPolicy;
4
+ /** @public */
5
+ export interface InfoRequestOptions {
6
+ signal?: AbortSignal;
7
+ policy?: ResolvedRetryPolicy;
8
+ fetchImpl?: typeof fetch;
9
+ }
10
+ /**
11
+ * Resolve the client's retry/fetch config into options for {@link infoRequest}.
12
+ *
13
+ * @public
14
+ */
15
+ export declare const hlInfoOptions: (client: PerpsSDKClient, options?: SDKRequestOptions) => InfoRequestOptions;
16
+ /**
17
+ * POST to the Hyperliquid `/info` endpoint and return the parsed JSON body.
18
+ *
19
+ * Direct-to-venue: no proxy, no AJV validation, no cache. The caller's type
20
+ * parameter is trusted; consumers should treat the response shape as
21
+ * upstream-controlled and normalise into `@lifi/perps-types` shapes before
22
+ * surfacing.
23
+ *
24
+ * Non-2xx responses raise a {@link PerpsError} with the Hyperliquid provider key.
25
+ * @public
26
+ */
27
+ export declare function infoRequest<T>(apiUrl: string, body: Record<string, unknown>, options?: InfoRequestOptions): Promise<T>;
28
+ //# sourceMappingURL=infoClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infoClient.d.ts","sourceRoot":"","sources":["../../../src/utils/infoClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAIxB,gBAAgB;AAChB,eAAO,MAAM,0BAA0B,EAAE,mBAmBxC,CAAA;AAED,cAAc;AACd,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,kBAQD,CAAA;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAqCZ"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Hyperliquid-specific liquidation price calculation.
3
+ *
4
+ * Uses the exact formula from Hyperliquid docs:
5
+ * https://hyperliquid.gitbook.io/hyperliquid-docs/trading/liquidations
6
+ *
7
+ * liq_price = price - side * margin_available / position_size / (1 - l * side)
8
+ *
9
+ * Where:
10
+ * - l = 1 / (2 * maxLeverage) (maintenance margin fraction)
11
+ * - side = 1 (long) or -1 (short)
12
+ * - margin_available = isolated_margin - maintenance_margin_required
13
+ */
14
+ /**
15
+ * Calculate the maintenance margin fraction for a Hyperliquid asset.
16
+ *
17
+ * Maintenance margin is half of the initial margin at max leverage.
18
+ *
19
+ * @param maxLeverage - Maximum leverage for the asset (e.g., 50 for BTC)
20
+ * @returns Maintenance margin fraction (e.g., 0.01 for 50x max leverage),
21
+ * or undefined if maxLeverage is zero
22
+ * @public
23
+ */
24
+ export declare function calculateMaintenanceMarginRate(maxLeverage: number): number | undefined;
25
+ /**
26
+ * Calculate liquidation price using the exact Hyperliquid formula.
27
+ *
28
+ * For isolated margin, new position prediction. For existing positions,
29
+ * prefer Position.liquidationPrice from the API.
30
+ *
31
+ * Formula derivation (isolated margin, single position):
32
+ * margin_per_unit = entryPrice / leverage
33
+ * maintenance_per_unit = entryPrice * mmr
34
+ * margin_available = margin_per_unit - maintenance_per_unit
35
+ * liq_price = entryPrice - side * margin_available / (1 - mmr * side)
36
+ *
37
+ * Where mmr = 1 / (2 * maxLeverage).
38
+ *
39
+ * @param entryPrice - Position entry price
40
+ * @param leverage - User-selected leverage (e.g., 10)
41
+ * @param isLong - True if long position, false if short
42
+ * @param maxLeverage - Asset's maximum leverage (e.g., 50 for BTC). Determines
43
+ * the maintenance margin rate: mmr = 1 / (2 * maxLeverage)
44
+ * @returns Estimated liquidation price, or undefined if inputs are invalid
45
+ * @public
46
+ */
47
+ export declare function calculateLiquidationPrice(entryPrice: number, leverage: number, isLong: boolean, maxLeverage: number): number | undefined;
48
+ //# sourceMappingURL=liquidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidation.d.ts","sourceRoot":"","sources":["../../../src/utils/liquidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAWpB"}
@@ -0,0 +1,15 @@
1
+ import type { ActivityItem, FundingActivity, MarketDisplay } from '@lifi/perps-types';
2
+ import type { HlFundingUpdate, HlLedgerUpdate } from '../types/index.js';
3
+ /**
4
+ * Map a Hyperliquid non-funding ledger entry to an ActivityItem.
5
+ *
6
+ * Direction for `spotTransfer` and `sendAsset` is derived from
7
+ * `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
8
+ * Returns null for unsupported delta types and for same-user `sendAsset`
9
+ * dex moves (where `user === destination === queriedAddress`).
10
+ * @public
11
+ */
12
+ export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay) => ActivityItem | null;
13
+ /** @public */
14
+ export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay) => FundingActivity;
15
+ //# sourceMappingURL=mapActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGxE;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,YAAY,GAAG,IA0IjB,CAAA;AAED,cAAc;AACd,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,eASD,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { classifyFillFromPosition } from '@lifi/perps-sdk';
2
+ import type { Fill, MarketDisplay } from '@lifi/perps-types';
3
+ import type { HlUserFill } from '../types/index.js';
4
+ export { classifyFillFromPosition };
5
+ /**
6
+ * Spot-ness comes from the resolved market's category, not the coin string —
7
+ * HL's canonical spot pair 0 is addressed as `PURR/USDC`, not `@0`.
8
+ * @public
9
+ */
10
+ export declare const mapFill: (fill: HlUserFill, market: MarketDisplay) => Fill;
11
+ //# sourceMappingURL=mapFill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAGzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,CAAA;AAEnC;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,UAAU,EAAE,QAAQ,aAAa,KAAG,IAwBhE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { PerpsMarket } from '@lifi/perps-types';
2
+ import type { HlUniverseItem } from '../types/index.js';
3
+ /**
4
+ * Map a Hyperliquid universe entry to a {@link PerpsMarket}'s static instrument
5
+ * metadata. Live mark/stats fields live on the `/prices` item — see
6
+ * {@link mapMarketPrice}. `categoryId` is the `Provider.categories[].id` of the
7
+ * dex the entry was fetched from — known to the caller at fetch time, never
8
+ * re-derived from the coin string.
9
+ * @public
10
+ */
11
+ export declare const mapMarket: (universe: HlUniverseItem, categoryId: string) => PerpsMarket;
12
+ //# sourceMappingURL=mapMarket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapMarket.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAQvD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,cAAc,EACxB,YAAY,MAAM,KACjB,WAWD,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { MarketPrice } from '@lifi/perps-types';
2
+ import type { HlAssetCtx } from '../types/index.js';
3
+ /**
4
+ * Map a Hyperliquid asset context plus its mid to a {@link MarketPrice} — the
5
+ * live mark/stats data for the `/prices` item. `mid` is the market mid from
6
+ * `allMids`, known to the caller; `HlAssetCtx` carries no mid of its own.
7
+ * @public
8
+ */
9
+ export declare const mapMarketPrice: (marketId: string, assetCtx: HlAssetCtx, mid: string) => MarketPrice;
10
+ //# sourceMappingURL=mapMarketPrice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapMarketPrice.d.ts","sourceRoot":"","sources":["../../../src/utils/mapMarketPrice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAInD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,UAAU,UAAU,EACpB,KAAK,MAAM,KACV,WAiBF,CAAA"}
@@ -0,0 +1,49 @@
1
+ import type { MarketDisplay, OpenOrder, Order, TriggerOrder } from '@lifi/perps-types';
2
+ import { OrderStatus, OrderType } from '@lifi/perps-types';
3
+ import type { HlFrontendOpenOrder, HlOrderDetail } from '../types/index.js';
4
+ /**
5
+ * Map a Hyperliquid orderType string to the OrderType enum.
6
+ *
7
+ * @public
8
+ */
9
+ export declare const mapOrderType: (orderType: string) => OrderType;
10
+ /** @public */
11
+ export declare const isTriggerType: (type: OrderType) => boolean;
12
+ /**
13
+ * Decide whether a raw Hyperliquid order belongs in the cross-provider
14
+ * `triggerOrders` bucket. Single source of truth for both the REST
15
+ * `getOrders` path (`HlFrontendOpenOrder` payload) and the `orderUpdates`
16
+ * WS handler (`HlOrderDetail.order`, a strict subset).
17
+ *
18
+ * Authoritative signals, in order:
19
+ * 1. `isTrigger` — REST-only boolean Hyperliquid sets on
20
+ * `frontendOpenOrders`. Definitive when present.
21
+ * 2. `isPositionTpsl` — REST-only flag for TP/SL legs attached to a
22
+ * position.
23
+ * 3. `triggerCondition !== 'N/A'` — present on both REST and WS payloads.
24
+ * Non-trigger orders carry the literal `'N/A'`.
25
+ * 4. `triggerPx` non-null and non-zero — present on both. The reliable
26
+ * trigger signal on the WS wire when `orderType` lies (HL pushes
27
+ * `'Limit'` for a freshly-placed TP/SL until REST refetch lands the
28
+ * corrected type).
29
+ * 5. `orderType` — final fall-back via `isTriggerType`.
30
+ * @public
31
+ */
32
+ export declare const isTriggerOrder: (o: HlFrontendOpenOrder | HlOrderDetail["order"]) => boolean;
33
+ /** @public */
34
+ export declare const mapOpenOrder: (o: HlFrontendOpenOrder, market: MarketDisplay) => OpenOrder;
35
+ /** @public */
36
+ export declare const mapTriggerOrder: (o: HlFrontendOpenOrder, market: MarketDisplay) => TriggerOrder;
37
+ /** @public */
38
+ export declare const mapOrderStatus: (status: string) => OrderStatus;
39
+ /**
40
+ * Map a raw Hyperliquid order status to a short English sentence
41
+ * describing *why* the order ended in a terminal non-FILLED state. Bare
42
+ * `canceled`/`cancelled`/`rejected` carry no actionable detail and
43
+ * return `undefined`; so do non-terminal and unknown values.
44
+ * @public
45
+ */
46
+ export declare const mapStatusReason: (status: string) => string | undefined;
47
+ /** @public */
48
+ export declare const mapOrder: (detail: HlOrderDetail, market: MarketDisplay) => Order;
49
+ //# sourceMappingURL=mapOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,KAAK,EACL,YAAY,EACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,WAAW,EACX,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAehD,CAAA;AAED,cAAc;AACd,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,KAAG,OAIjB,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,cAAc,GACzB,GAAG,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,KAC9C,OAkBF,CAAA;AAED,cAAc;AACd,eAAO,MAAM,YAAY,GACvB,GAAG,mBAAmB,EACtB,QAAQ,aAAa,KACpB,SAaD,CAAA;AAEF,cAAc;AACd,eAAO,MAAM,eAAe,GAC1B,GAAG,mBAAmB,EACtB,QAAQ,aAAa,KACpB,YAcF,CAAA;AAED,cAAc;AACd,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,WAmB/C,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAuBzD,CAAA;AAeD,cAAc;AACd,eAAO,MAAM,QAAQ,GACnB,QAAQ,aAAa,EACrB,QAAQ,aAAa,KACpB,KAsBF,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { MarketDisplay, Position } from '@lifi/perps-types';
2
+ import type { HlAssetPosition } from '../types/index.js';
3
+ /**
4
+ * True when the assetPosition has non-zero size. Hyperliquid keeps zero-size
5
+ * rows in clearinghouse states after a close; both the REST and WS positions
6
+ * paths drop them so a close surfaces as absence from the open set.
7
+ * @public
8
+ */
9
+ export declare const isOpenAssetPosition: (ap: HlAssetPosition) => boolean;
10
+ /** @public */
11
+ export declare const mapPosition: (ap: HlAssetPosition, market: MarketDisplay) => Position;
12
+ //# sourceMappingURL=mapPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,eAAe,KAAG,OAChB,CAAA;AAE1C,cAAc;AACd,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,QAAQ,aAAa,KACpB,QAsBF,CAAA"}
@@ -0,0 +1,17 @@
1
+ import type { Asset, Market } from '@lifi/perps-types';
2
+ /**
3
+ * Synthesise the {@link Asset} for a Hyperliquid wire coin. `id` and `logoURI`
4
+ * keep the raw coin — the logo CDN is keyed by it, HIP-3 `dex:` prefix
5
+ * included. `displaySymbol` drops the prefix: the category is carried by
6
+ * `categoryId`, never by the display string.
7
+ * @public
8
+ */
9
+ export declare const coinAsset: (coin: string) => Asset;
10
+ /**
11
+ * Distinct wire `dex` names to fan `clearinghouseState` / `frontendOpenOrders`
12
+ * reads across, derived from the backend market list. Spot is excluded (it has
13
+ * no clearinghouseState); the main perp dex maps to the empty string.
14
+ * @public
15
+ */
16
+ export declare const perpsDexNames: (markets: readonly Market[]) => string[];
17
+ //# sourceMappingURL=marketDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketDisplay.d.ts","sourceRoot":"","sources":["../../../src/utils/marketDisplay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQtD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,KAKvC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,MAAM,EAShE,CAAA"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Hyperliquid order size and price formatting for exchange submission.
3
+ *
4
+ * These encode Hyperliquid-specific order submission rules. Getting size/price
5
+ * formatting wrong causes rejected orders.
6
+ *
7
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/tick-and-lot-size
8
+ */
9
+ /**
10
+ * Derive the maximum number of price decimal places for a given asset.
11
+ *
12
+ * @param szDecimals - The asset's szDecimals (from market meta)
13
+ * @param market - Optional market type (e.g. 'spot'). Defaults to perps rules.
14
+ * @returns Maximum allowed price decimals
15
+ * @public
16
+ */
17
+ export declare function getMaxPriceDecimals(szDecimals: number, market?: string): number;
18
+ /**
19
+ * Format a size value for order submission.
20
+ *
21
+ * Per Hyperliquid docs (tick-and-lot-size):
22
+ * - Size must be rounded to the asset's szDecimals
23
+ * - Trailing zeroes must be removed for signing
24
+ *
25
+ * @param size - The size value to format
26
+ * @param szDecimals - Number of decimal places allowed for this asset (from meta)
27
+ * @returns Size as a string with correct precision, no trailing zeros
28
+ * @public
29
+ */
30
+ export declare function formatOrderSize(size: number, szDecimals: number): string;
31
+ /**
32
+ * Format a price value for order submission.
33
+ *
34
+ * Per Hyperliquid docs (tick-and-lot-size):
35
+ * - Maximum 5 significant figures
36
+ * - Max decimals = MAX_DECIMALS - szDecimals (6 for perps, 8 for spot)
37
+ * - Integer prices always allowed regardless of significant figures
38
+ * - Trailing zeroes must be removed for signing
39
+ *
40
+ * Rounding is half-up (away from zero at exact halfway) on the true decimal
41
+ * value, not on the binary float — (1.005).toFixed(2) would give '1.00'.
42
+ *
43
+ * @param price - The price value to format
44
+ * @param szDecimals - The asset's szDecimals (affects max price decimals)
45
+ * @param market - Optional market type (e.g. 'spot'). Defaults to perps rules.
46
+ * @returns Price as a string with correct precision, no trailing zeros
47
+ * @public
48
+ */
49
+ export declare function formatOrderPrice(price: number, szDecimals: number, market?: string): string;
50
+ //# sourceMappingURL=orderFormatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderFormatting.d.ts","sourceRoot":"","sources":["../../../src/utils/orderFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAOxE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAYR"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Map a desired price `step` to Hyperliquid's server-side aggregation hint
3
+ * `(nSigFigs, mantissa)` against the order of magnitude of `referencePrice`
4
+ * (the market's mark price gives the digit count). HL buckets the book to
5
+ * `nSigFigs` significant figures, so the figures resolving a price to `step`
6
+ * granularity are `floor(log10(referencePrice)) - floor(log10(step)) + 1`.
7
+ *
8
+ * Returns `{}` (full precision) when the step is finer than HL's 5-sig-fig
9
+ * grid or the inputs are unusable; clamps to {@link HL_MIN_SIG_FIGS} when the
10
+ * step is coarser than HL's lowest granularity. `mantissa` is emitted only for
11
+ * a non-power-of-ten step that lands on the 5-sig-fig grid, since HL ignores
12
+ * it below `nSigFigs === 5`.
13
+ *
14
+ * @public
15
+ */
16
+ export declare function priceStepToAggregation(step: number, referencePrice: number): {
17
+ nSigFigs?: number;
18
+ mantissa?: number;
19
+ };
20
+ //# sourceMappingURL=priceStepToAggregation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priceStepToAggregation.d.ts","sourceRoot":"","sources":["../../../src/utils/priceStepToAggregation.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB1C"}
@@ -0,0 +1,18 @@
1
+ import type { Asset, Balance, Market } from '@lifi/perps-types';
2
+ import type { HlSpotBalance } from '../types/index.js';
3
+ /**
4
+ * USD price keyed by spot token index: each spot market's live USD price
5
+ * (from `priceByMarketId`, keyed by `Market.id`) under its base-asset id, and
6
+ * every market's quote-asset id at $1. A spot market absent from
7
+ * `priceByMarketId` values its token at 0.
8
+ */
9
+ export declare const spotPriceById: (markets: readonly Market[], priceByMarketId: ReadonlyMap<string, number>) => Map<string, number>;
10
+ /**
11
+ * The held spot {@link Asset} for an HL balance: the venue token index
12
+ * (`b.token`) as `Asset.id` — equal to that token's spot `Market.baseAsset.id`
13
+ * — with display fields derived from the coin.
14
+ */
15
+ export declare const spotAssetFromToken: (b: HlSpotBalance) => Asset;
16
+ /** Assemble a typed spot {@link Balance} from its resolved asset and raw size. */
17
+ export declare const spotBalance: (asset: Asset, total: string, priceById: Map<string, number>) => Balance;
18
+ //# sourceMappingURL=spotBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotBalance.d.ts","sourceRoot":"","sources":["../../../src/utils/spotBalance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGtD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,SAAS,MAAM,EAAE,EAC1B,iBAAiB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3C,GAAG,CAAC,MAAM,EAAE,MAAM,CAapB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,aAAa,KAAG,KAGpD,CAAA;AAEF,kFAAkF;AAClF,eAAO,MAAM,WAAW,GACtB,OAAO,KAAK,EACZ,OAAO,MAAM,EACb,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7B,OAKD,CAAA"}