@lifi/perps-sdk-provider-hyperliquid 15.0.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/cjs/HyperliquidProvider.d.ts.map +1 -1
  2. package/dist/cjs/HyperliquidProvider.js +5 -1
  3. package/dist/cjs/HyperliquidProvider.js.map +1 -1
  4. package/dist/cjs/accountSummary.d.ts.map +1 -1
  5. package/dist/cjs/accountSummary.js +34 -7
  6. package/dist/cjs/accountSummary.js.map +1 -1
  7. package/dist/cjs/index.d.ts +2 -0
  8. package/dist/cjs/index.d.ts.map +1 -1
  9. package/dist/cjs/index.js +3 -1
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/services/activeAssetData.d.ts +6 -0
  12. package/dist/cjs/services/activeAssetData.d.ts.map +1 -0
  13. package/dist/cjs/services/activeAssetData.js +7 -0
  14. package/dist/cjs/services/activeAssetData.js.map +1 -0
  15. package/dist/cjs/services/getAccount.d.ts.map +1 -1
  16. package/dist/cjs/services/getAccount.js +23 -35
  17. package/dist/cjs/services/getAccount.js.map +1 -1
  18. package/dist/cjs/services/getAvailableToTrade.d.ts +10 -0
  19. package/dist/cjs/services/getAvailableToTrade.d.ts.map +1 -0
  20. package/dist/cjs/services/getAvailableToTrade.js +32 -0
  21. package/dist/cjs/services/getAvailableToTrade.js.map +1 -0
  22. package/dist/cjs/services/getMarketSettings.d.ts +1 -1
  23. package/dist/cjs/services/getMarketSettings.d.ts.map +1 -1
  24. package/dist/cjs/services/getMarketSettings.js +3 -7
  25. package/dist/cjs/services/getMarketSettings.js.map +1 -1
  26. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  27. package/dist/cjs/services/getOrder.js +7 -3
  28. package/dist/cjs/services/getOrder.js.map +1 -1
  29. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  30. package/dist/cjs/services/getOrders.js +4 -23
  31. package/dist/cjs/services/getOrders.js.map +1 -1
  32. package/dist/cjs/services/getWithdrawableBalances.d.ts +5 -0
  33. package/dist/cjs/services/getWithdrawableBalances.d.ts.map +1 -0
  34. package/dist/cjs/services/getWithdrawableBalances.js +29 -0
  35. package/dist/cjs/services/getWithdrawableBalances.js.map +1 -0
  36. package/dist/cjs/types/account.d.ts +11 -8
  37. package/dist/cjs/types/account.d.ts.map +1 -1
  38. package/dist/cjs/types/account.js.map +1 -1
  39. package/dist/cjs/types/ws.d.ts +3 -4
  40. package/dist/cjs/types/ws.d.ts.map +1 -1
  41. package/dist/cjs/utils/abstractionMode.d.ts +1 -1
  42. package/dist/cjs/utils/abstractionMode.d.ts.map +1 -1
  43. package/dist/cjs/utils/abstractionMode.js.map +1 -1
  44. package/dist/cjs/utils/explorer.d.ts +2 -1
  45. package/dist/cjs/utils/explorer.d.ts.map +1 -1
  46. package/dist/cjs/utils/explorer.js +24 -1
  47. package/dist/cjs/utils/explorer.js.map +1 -1
  48. package/dist/cjs/utils/index.d.ts +3 -1
  49. package/dist/cjs/utils/index.d.ts.map +1 -1
  50. package/dist/cjs/utils/index.js +7 -2
  51. package/dist/cjs/utils/index.js.map +1 -1
  52. package/dist/cjs/utils/mapPosition.d.ts.map +1 -1
  53. package/dist/cjs/utils/mapPosition.js +1 -4
  54. package/dist/cjs/utils/mapPosition.js.map +1 -1
  55. package/dist/cjs/utils/spotCollateral.d.ts +1 -1
  56. package/dist/cjs/utils/spotCollateral.d.ts.map +1 -1
  57. package/dist/cjs/utils/spotCollateral.js +1 -12
  58. package/dist/cjs/utils/spotCollateral.js.map +1 -1
  59. package/dist/cjs/utils/transferMargin.d.ts +2 -2
  60. package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
  61. package/dist/cjs/utils/transferMargin.js +20 -12
  62. package/dist/cjs/utils/transferMargin.js.map +1 -1
  63. package/dist/cjs/utils/venueTotals.d.ts +11 -0
  64. package/dist/cjs/utils/venueTotals.d.ts.map +1 -0
  65. package/dist/cjs/utils/venueTotals.js +24 -0
  66. package/dist/cjs/utils/venueTotals.js.map +1 -0
  67. package/dist/cjs/utils/withdrawableBalances.d.ts +4 -0
  68. package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -0
  69. package/dist/cjs/utils/withdrawableBalances.js +42 -0
  70. package/dist/cjs/utils/withdrawableBalances.js.map +1 -0
  71. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +3 -1
  72. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  73. package/dist/cjs/websocket/HyperliquidWsProvider.js +102 -36
  74. package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -1
  75. package/dist/esm/HyperliquidProvider.d.ts.map +1 -1
  76. package/dist/esm/HyperliquidProvider.js +6 -2
  77. package/dist/esm/HyperliquidProvider.js.map +1 -1
  78. package/dist/esm/accountSummary.d.ts +4 -3
  79. package/dist/esm/accountSummary.d.ts.map +1 -1
  80. package/dist/esm/accountSummary.js +36 -18
  81. package/dist/esm/accountSummary.js.map +1 -1
  82. package/dist/esm/index.d.ts +2 -0
  83. package/dist/esm/index.d.ts.map +1 -1
  84. package/dist/esm/index.js +1 -0
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/services/activeAssetData.d.ts +13 -0
  87. package/dist/esm/services/activeAssetData.d.ts.map +1 -0
  88. package/dist/esm/services/activeAssetData.js +10 -0
  89. package/dist/esm/services/activeAssetData.js.map +1 -0
  90. package/dist/esm/services/getAccount.d.ts.map +1 -1
  91. package/dist/esm/services/getAccount.js +19 -29
  92. package/dist/esm/services/getAccount.js.map +1 -1
  93. package/dist/esm/services/getAvailableToTrade.d.ts +26 -0
  94. package/dist/esm/services/getAvailableToTrade.d.ts.map +1 -0
  95. package/dist/esm/services/getAvailableToTrade.js +42 -0
  96. package/dist/esm/services/getAvailableToTrade.js.map +1 -0
  97. package/dist/esm/services/getMarketSettings.d.ts +1 -1
  98. package/dist/esm/services/getMarketSettings.d.ts.map +1 -1
  99. package/dist/esm/services/getMarketSettings.js +3 -7
  100. package/dist/esm/services/getMarketSettings.js.map +1 -1
  101. package/dist/esm/services/getOrder.d.ts.map +1 -1
  102. package/dist/esm/services/getOrder.js +7 -3
  103. package/dist/esm/services/getOrder.js.map +1 -1
  104. package/dist/esm/services/getOrders.d.ts.map +1 -1
  105. package/dist/esm/services/getOrders.js +6 -34
  106. package/dist/esm/services/getOrders.js.map +1 -1
  107. package/dist/esm/services/getWithdrawableBalances.d.ts +24 -0
  108. package/dist/esm/services/getWithdrawableBalances.d.ts.map +1 -0
  109. package/dist/esm/services/getWithdrawableBalances.js +39 -0
  110. package/dist/esm/services/getWithdrawableBalances.js.map +1 -0
  111. package/dist/esm/types/account.d.ts +21 -8
  112. package/dist/esm/types/account.d.ts.map +1 -1
  113. package/dist/esm/types/account.js.map +1 -1
  114. package/dist/esm/types/ws.d.ts +10 -4
  115. package/dist/esm/types/ws.d.ts.map +1 -1
  116. package/dist/esm/utils/abstractionMode.d.ts +1 -1
  117. package/dist/esm/utils/abstractionMode.d.ts.map +1 -1
  118. package/dist/esm/utils/abstractionMode.js.map +1 -1
  119. package/dist/esm/utils/explorer.d.ts +9 -1
  120. package/dist/esm/utils/explorer.d.ts.map +1 -1
  121. package/dist/esm/utils/explorer.js +34 -1
  122. package/dist/esm/utils/explorer.js.map +1 -1
  123. package/dist/esm/utils/index.d.ts +3 -1
  124. package/dist/esm/utils/index.d.ts.map +1 -1
  125. package/dist/esm/utils/index.js +3 -1
  126. package/dist/esm/utils/index.js.map +1 -1
  127. package/dist/esm/utils/mapPosition.d.ts.map +1 -1
  128. package/dist/esm/utils/mapPosition.js +1 -4
  129. package/dist/esm/utils/mapPosition.js.map +1 -1
  130. package/dist/esm/utils/spotCollateral.d.ts +4 -4
  131. package/dist/esm/utils/spotCollateral.d.ts.map +1 -1
  132. package/dist/esm/utils/spotCollateral.js +4 -23
  133. package/dist/esm/utils/spotCollateral.js.map +1 -1
  134. package/dist/esm/utils/transferMargin.d.ts +12 -8
  135. package/dist/esm/utils/transferMargin.d.ts.map +1 -1
  136. package/dist/esm/utils/transferMargin.js +30 -18
  137. package/dist/esm/utils/transferMargin.js.map +1 -1
  138. package/dist/esm/utils/venueTotals.d.ts +26 -0
  139. package/dist/esm/utils/venueTotals.d.ts.map +1 -0
  140. package/dist/esm/utils/venueTotals.js +26 -0
  141. package/dist/esm/utils/venueTotals.js.map +1 -0
  142. package/dist/esm/utils/withdrawableBalances.d.ts +16 -0
  143. package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -0
  144. package/dist/esm/utils/withdrawableBalances.js +50 -0
  145. package/dist/esm/utils/withdrawableBalances.js.map +1 -0
  146. package/dist/esm/websocket/HyperliquidWsProvider.d.ts +4 -1
  147. package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  148. package/dist/esm/websocket/HyperliquidWsProvider.js +101 -35
  149. package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -1
  150. package/dist/types/HyperliquidProvider.d.ts.map +1 -1
  151. package/dist/types/accountSummary.d.ts +4 -3
  152. package/dist/types/accountSummary.d.ts.map +1 -1
  153. package/dist/types/index.d.ts +2 -0
  154. package/dist/types/index.d.ts.map +1 -1
  155. package/dist/types/services/activeAssetData.d.ts +13 -0
  156. package/dist/types/services/activeAssetData.d.ts.map +1 -0
  157. package/dist/types/services/getAccount.d.ts.map +1 -1
  158. package/dist/types/services/getAvailableToTrade.d.ts +26 -0
  159. package/dist/types/services/getAvailableToTrade.d.ts.map +1 -0
  160. package/dist/types/services/getMarketSettings.d.ts +1 -1
  161. package/dist/types/services/getMarketSettings.d.ts.map +1 -1
  162. package/dist/types/services/getOrder.d.ts.map +1 -1
  163. package/dist/types/services/getOrders.d.ts.map +1 -1
  164. package/dist/types/services/getWithdrawableBalances.d.ts +24 -0
  165. package/dist/types/services/getWithdrawableBalances.d.ts.map +1 -0
  166. package/dist/types/types/account.d.ts +21 -8
  167. package/dist/types/types/account.d.ts.map +1 -1
  168. package/dist/types/types/ws.d.ts +10 -4
  169. package/dist/types/types/ws.d.ts.map +1 -1
  170. package/dist/types/utils/abstractionMode.d.ts +1 -1
  171. package/dist/types/utils/abstractionMode.d.ts.map +1 -1
  172. package/dist/types/utils/explorer.d.ts +9 -1
  173. package/dist/types/utils/explorer.d.ts.map +1 -1
  174. package/dist/types/utils/index.d.ts +3 -1
  175. package/dist/types/utils/index.d.ts.map +1 -1
  176. package/dist/types/utils/mapPosition.d.ts.map +1 -1
  177. package/dist/types/utils/spotCollateral.d.ts +4 -4
  178. package/dist/types/utils/spotCollateral.d.ts.map +1 -1
  179. package/dist/types/utils/transferMargin.d.ts +12 -8
  180. package/dist/types/utils/transferMargin.d.ts.map +1 -1
  181. package/dist/types/utils/venueTotals.d.ts +26 -0
  182. package/dist/types/utils/venueTotals.d.ts.map +1 -0
  183. package/dist/types/utils/withdrawableBalances.d.ts +16 -0
  184. package/dist/types/utils/withdrawableBalances.d.ts.map +1 -0
  185. package/dist/types/websocket/HyperliquidWsProvider.d.ts +4 -1
  186. package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  187. package/package.json +3 -3
  188. package/src/HyperliquidProvider.ts +28 -2
  189. package/src/accountSummary.ts +64 -19
  190. package/src/index.ts +2 -0
  191. package/src/services/activeAssetData.ts +24 -0
  192. package/src/services/getAccount.ts +37 -52
  193. package/src/services/getAvailableToTrade.ts +72 -0
  194. package/src/services/getMarketSettings.ts +7 -11
  195. package/src/services/getOrder.ts +10 -3
  196. package/src/services/getOrders.ts +5 -56
  197. package/src/services/getWithdrawableBalances.ts +94 -0
  198. package/src/types/account.ts +22 -8
  199. package/src/types/ws.ts +18 -5
  200. package/src/utils/abstractionMode.ts +1 -1
  201. package/src/utils/explorer.ts +51 -2
  202. package/src/utils/index.ts +7 -1
  203. package/src/utils/mapPosition.ts +1 -5
  204. package/src/utils/spotCollateral.ts +4 -25
  205. package/src/utils/transferMargin.ts +31 -20
  206. package/src/utils/venueTotals.ts +48 -0
  207. package/src/utils/withdrawableBalances.ts +69 -0
  208. package/src/websocket/HyperliquidWsProvider.ts +149 -42
  209. package/dist/cjs/websocket/decodeChain.d.ts +0 -11
  210. package/dist/cjs/websocket/decodeChain.d.ts.map +0 -1
  211. package/dist/cjs/websocket/decodeChain.js +0 -37
  212. package/dist/cjs/websocket/decodeChain.js.map +0 -1
  213. package/dist/esm/websocket/decodeChain.d.ts +0 -30
  214. package/dist/esm/websocket/decodeChain.d.ts.map +0 -1
  215. package/dist/esm/websocket/decodeChain.js +0 -44
  216. package/dist/esm/websocket/decodeChain.js.map +0 -1
  217. package/dist/types/websocket/decodeChain.d.ts +0 -30
  218. package/dist/types/websocket/decodeChain.d.ts.map +0 -1
  219. package/src/websocket/decodeChain.ts +0 -54
@@ -27,6 +27,8 @@ export type { GetPortfolioHistoryParams } from './services/getPortfolioHistory.j
27
27
  export { getPortfolioHistory } from './services/getPortfolioHistory.js';
28
28
  export type { GetPositionsParams } from './services/getPositions.js';
29
29
  export { getPositions } from './services/getPositions.js';
30
+ export type { GetWithdrawableBalancesParams } from './services/getWithdrawableBalances.js';
31
+ export { getWithdrawableBalances } from './services/getWithdrawableBalances.js';
30
32
  export type { HyperliquidAgent } from './signers/HyperliquidAgentStore.js';
31
33
  export { HyperliquidAgentStore } from './signers/HyperliquidAgentStore.js';
32
34
  export * from './types/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
package/dist/esm/index.js CHANGED
@@ -21,6 +21,7 @@ export { getOrder } from './services/getOrder.js';
21
21
  export { getOrders } from './services/getOrders.js';
22
22
  export { getPortfolioHistory } from './services/getPortfolioHistory.js';
23
23
  export { getPositions } from './services/getPositions.js';
24
+ export { getWithdrawableBalances } from './services/getWithdrawableBalances.js';
24
25
  export { HyperliquidAgentStore } from './signers/HyperliquidAgentStore.js';
25
26
  export * from './types/index.js';
26
27
  export * from './utils/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;;GAQG;AAEH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,YAAY,IAAI,wBAAwB,GACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { SDKRequestOptions } from '@lifi/perps-sdk';
2
+ import type { Address } from 'viem';
3
+ import type { HyperliquidContext } from '../context.js';
4
+ import type { HlActiveAssetData } from '../types/index.js';
5
+ /**
6
+ * The venue's per-account, per-market state for one perps market: margin
7
+ * mode, leverage, maximum sizes and the amounts still tradable on each side.
8
+ * Present whether or not a position is open.
9
+ *
10
+ * @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
11
+ */
12
+ export declare const fetchActiveAssetData: ({ client, apiUrl }: HyperliquidContext, address: Address, marketId: string, options?: SDKRequestOptions) => Promise<HlActiveAssetData>;
13
+ //# sourceMappingURL=activeAssetData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activeAssetData.d.ts","sourceRoot":"","sources":["../../../src/services/activeAssetData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,oBAAoB,kBAAkB,EACtC,SAAS,OAAO,EAChB,UAAU,MAAM,EAChB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,iBAAiB,CAKzB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
2
+ /**
3
+ * The venue's per-account, per-market state for one perps market: margin
4
+ * mode, leverage, maximum sizes and the amounts still tradable on each side.
5
+ * Present whether or not a position is open.
6
+ *
7
+ * @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
8
+ */
9
+ export const fetchActiveAssetData = ({ client, apiUrl }, address, marketId, options) => infoRequest(apiUrl, { type: 'activeAssetData', user: address, coin: marketId }, hlInfoOptions(client, options));
10
+ //# sourceMappingURL=activeAssetData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activeAssetData.js","sourceRoot":"","sources":["../../../src/services/activeAssetData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,OAAgB,EAChB,QAAgB,EAChB,OAA2B,EACC,EAAE,CAC9B,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC1D,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAC/B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,EAKhB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAqBvD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AA+FvD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,GACrB,oBAAoB,kBAAkB,EACtC,QAAQ,gBAAgB,EACxB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,eAAe,CAkHzB,CAAA"}
1
+ {"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EAGvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAuBvD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AA+DvD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,GACrB,oBAAoB,kBAAkB,EACtC,QAAQ,gBAAgB,EACxB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,eAAe,CAgIzB,CAAA"}
@@ -1,42 +1,20 @@
1
1
  import { getMarketRegistry, getMarketsContext, stringToFloat, toPerpsMarketDisplay, } from '@lifi/perps-sdk';
2
- import Big from 'big.js';
3
2
  import { PROVIDER_KEY } from '../constants.js';
4
- import { HlAbstractionMode, } from '../types/index.js';
5
3
  import { isUnifiedAbstraction } from '../utils/abstractionMode.js';
6
4
  import { toWireBig } from '../utils/decimal.js';
7
- import { assetIsOutcome, partitionSpotBalances, perpsDexNames, spotAssetFromToken, spotBalance, spotPriceById, } from '../utils/index.js';
5
+ import { assetIsOutcome, partitionSpotBalances, perpsDexNames, perpsTotals, spotAssetFromToken, spotBalance, spotPriceById, sumUnrealizedPnl, } from '../utils/index.js';
8
6
  import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
9
7
  import { isOpenAssetPosition, mapPosition } from '../utils/mapPosition.js';
10
8
  // `marginSummary` covers the whole account (cross AND isolated positions);
11
9
  // `crossMarginSummary` is the cross-only subset and would drop isolated
12
10
  // equity/margin.
13
11
  const getAccountValue = (state) => toWireBig(state.marginSummary.accountValue, 'marginSummary.accountValue');
14
- const getTotalMarginUsed = (state) => toWireBig(state.marginSummary.totalMarginUsed, 'marginSummary.totalMarginUsed');
15
- const getMarginUsed = (abstraction, positions, stateByDex) => {
16
- if (abstraction === HlAbstractionMode.UNIFIED_ACCOUNT ||
17
- abstraction === HlAbstractionMode.PORTFOLIO_MARGIN) {
18
- // Per HL docs, individual per-dex states are not meaningful for these
19
- // modes; derive total margin from the already-mapped positions.
20
- const total = positions.reduce((sum, position) => sum.plus(toWireBig(position.marginUsed, 'positions.marginUsed')), new Big(0));
21
- return total.toFixed();
22
- }
23
- if (abstraction === HlAbstractionMode.DEX_ABSTRACTION) {
24
- let total = new Big(0);
25
- for (const [, state] of stateByDex) {
26
- total = total.plus(getTotalMarginUsed(state));
27
- }
28
- return total.toFixed();
29
- }
30
- const mainState = stateByDex.get('');
31
- if (!mainState) {
32
- return '0';
33
- }
34
- return getTotalMarginUsed(mainState).toFixed();
35
- };
12
+ /** Venue buying power for the quote asset the perps dex settles in. */
13
+ const getAvailableAfterMaintenance = (spotState, quoteAssetId) => spotState.tokenToAvailableAfterMaintenance.find(([token]) => String(token) === quoteAssetId)?.[1];
36
14
  const buildBalances = (abstraction, spotState, stateByDex, quoteAssetIds, priceById, quoteAssetByCategory) => {
37
15
  const { balances, collateralBalances } = partitionSpotBalances(spotState.balances
38
16
  .filter((b) => !assetIsOutcome(b.coin))
39
- .map((b) => spotBalance(spotAssetFromToken(b), b.total, priceById)), quoteAssetIds, abstraction === HlAbstractionMode.PORTFOLIO_MARGIN);
17
+ .map((b) => spotBalance(spotAssetFromToken(b), b.total, priceById)), quoteAssetIds);
40
18
  // Unified/portfolio modes hold everything in spot — per-dex equity would
41
19
  // double-count. Only disabled/dexAbstraction carry separate venue collateral.
42
20
  // `accountValue` is the dex's TOTAL equity: locked margin and unrealized
@@ -109,11 +87,23 @@ export const getAccount = async ({ client, apiUrl }, params, options) => {
109
87
  stateResults.forEach((state, i) => {
110
88
  stateByDex.set(dexNames[i], state);
111
89
  });
112
- const totalUnrealizedPnl = positions.reduce((sum, p) => sum + Number.parseFloat(p.unrealizedPnl), 0);
90
+ const dexStates = stateResults.map((state, i) => ({
91
+ dex: dexNames[i],
92
+ marginSummary: state.marginSummary,
93
+ crossMarginSummary: state.crossMarginSummary,
94
+ crossMaintenanceMarginUsed: state.crossMaintenanceMarginUsed,
95
+ withdrawable: state.withdrawable,
96
+ }));
113
97
  const config = {
114
98
  provider: PROVIDER_KEY,
115
99
  abstractionMode: abstractionResult,
116
100
  agents: agentsResult,
101
+ dexStates,
102
+ ...(isUnifiedAbstraction(abstractionResult)
103
+ ? {
104
+ availableAfterMaintenance: getAvailableAfterMaintenance(spotState, quoteAssetByCategory.get(PROVIDER_KEY)?.id),
105
+ }
106
+ : {}),
117
107
  };
118
108
  const { balances, collateralBalances } = buildBalances(abstractionResult, spotState, stateByDex, quoteAssetIds, priceById, quoteAssetByCategory);
119
109
  return {
@@ -122,8 +112,8 @@ export const getAccount = async ({ client, apiUrl }, params, options) => {
122
112
  balances,
123
113
  collateralBalances,
124
114
  positions,
125
- marginUsed: getMarginUsed(abstractionResult, positions, stateByDex),
126
- unrealizedPnl: totalUnrealizedPnl.toString(),
115
+ marginUsed: perpsTotals(dexStates).marginUsed.toFixed(),
116
+ unrealizedPnl: sumUnrealizedPnl(positions).toFixed(),
127
117
  feeTier: {
128
118
  maker: feesResult.userAddRate ?? '0',
129
119
  taker: feesResult.userCrossRate ?? '0',
@@ -1 +1 @@
1
- {"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAGjB,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AAQxB,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EACL,iBAAiB,GAKlB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAS1E,2EAA2E;AAC3E,wEAAwE;AACxE,iBAAiB;AACjB,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAO,EAAE,CAC3D,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAA;AAE3E,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAO,EAAE,CAC9D,SAAS,CACP,KAAK,CAAC,aAAa,CAAC,eAAe,EACnC,+BAA+B,CAChC,CAAA;AAEH,MAAM,aAAa,GAAG,CACpB,WAAqC,EACrC,SAAqB,EACrB,UAA6C,EACrC,EAAE;IACV,IACE,WAAW,KAAK,iBAAiB,CAAC,eAAe;QACjD,WAAW,KAAK,iBAAiB,CAAC,gBAAgB,EAClD,CAAC;QACD,sEAAsE;QACtE,gEAAgE;QAChE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAChB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,EAClE,IAAI,GAAG,CAAC,CAAC,CAAC,CACX,CAAA;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,IAAI,WAAW,KAAK,iBAAiB,CAAC,eAAe,EAAE,CAAC;QACtD,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;QACtB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;AAChD,CAAC,CAAA;AAOD,MAAM,aAAa,GAAG,CACpB,WAAqC,EACrC,SAAmC,EACnC,UAA6C,EAC7C,aAAkC,EAClC,SAA8B,EAC9B,oBAAwC,EACtB,EAAE;IACpB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,qBAAqB,CAC5D,SAAS,CAAC,QAAQ;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EACrE,aAAa,EACb,WAAW,KAAK,iBAAiB,CAAC,gBAAgB,CACnD,CAAA;IAED,yEAAyE;IACzE,8EAA8E;IAC9E,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,GAAG,IAAI,YAAY,CAAA;YACtC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,SAAQ;YACV,CAAC;YACD,kBAAkB,CAAC,IAAI,CAAC;gBACtB,UAAU;gBACV,oEAAoE;gBACpE,kDAAkD;gBAClD,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAE;gBAC5C,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;gBACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE;gBACzB,KAAK,EAAE,GAAG;aACX,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;AACzC,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAwB,EACxB,OAA2B,EACD,EAAE;IAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAClC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CACjD,CAAA;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,CACJ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,EAAE,MAAM,EAAE,EACX,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAC1C,QAAQ,CACT;QACD,0EAA0E;QAC1E,uEAAuE;QACvE,2EAA2E;QAC3E,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACjD,QAAQ,CACT;QACD,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAC7C,QAAQ,CACT;QACD,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACxD,QAAQ,CACT;QACD,OAAO,CAAC,GAAG,CACT,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpB,WAAW,CACT,MAAM,EACN;YACE,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/B,EACD,QAAQ,CACT,CACF,CACF;QACD,iBAAiB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;KAC/D,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,aAAa,CAC7B,OAAO,EACP,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACrE,CAAA;IAED,MAAM,SAAS,GAAe,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3D,KAAK,CAAC,cAAc;SACjB,MAAM,CACL,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CACrE;SACA,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACV,WAAW,CACT,EAAE,EACF,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACzD,CACF,CACJ,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgC,CAAA;IAC1D,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,EACpD,CAAC,CACF,CAAA;IAED,MAAM,MAAM,GAA6B;QACvC,QAAQ,EAAE,YAAY;QACtB,eAAe,EAAE,iBAAiB;QAClC,MAAM,EAAE,YAAY;KACrB,CAAA;IAED,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,aAAa,CACpD,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,oBAAoB,CACrB,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ;QACR,kBAAkB;QAClB,SAAS;QACT,UAAU,EAAE,aAAa,CAAC,iBAAiB,EAAE,SAAS,EAAE,UAAU,CAAC;QACnE,aAAa,EAAE,kBAAkB,CAAC,QAAQ,EAAE;QAC5C,OAAO,EAAE;YACP,KAAK,EAAE,UAAU,CAAC,WAAW,IAAI,GAAG;YACpC,KAAK,EAAE,UAAU,CAAC,aAAa,IAAI,GAAG;SACvC;QACD,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type SDKRequestOptions } from '@lifi/perps-sdk';
2
+ import type { AvailableToTrade } from '@lifi/perps-types';
3
+ import type { Address } from 'viem';
4
+ import type { HyperliquidContext } from '../context.js';
5
+ /**
6
+ * Parameters for {@link getAvailableToTrade}.
7
+ *
8
+ * @public
9
+ */
10
+ export interface GetAvailableToTradeParams {
11
+ address: Address;
12
+ marketId: string;
13
+ }
14
+ /**
15
+ * The amounts the account can still buy and sell on one perps market, read
16
+ * from `activeAssetData`. The amounts are denominated in the market's margin
17
+ * asset: USDC on the main dex, and the dex margin asset on a builder-deployed
18
+ * dex. Resolves `undefined` for a spot market, which carries no such state.
19
+ *
20
+ * @throws {PerpsError} On an unknown market, an `availableToTrade` payload
21
+ * that is not a buy/sell pair, Hyperliquid REST error, network, or parsing
22
+ * failures.
23
+ * @public
24
+ */
25
+ export declare const getAvailableToTrade: (context: HyperliquidContext, params: GetAvailableToTradeParams, options?: SDKRequestOptions) => Promise<AvailableToTrade | undefined>;
26
+ //# sourceMappingURL=getAvailableToTrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAvailableToTrade.d.ts","sourceRoot":"","sources":["../../../src/services/getAvailableToTrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAGvD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,kBAAkB,EAC3B,QAAQ,yBAAyB,EACjC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAiCtC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { getMarketRegistry, PerpsError, toAssetDisplay, } from '@lifi/perps-sdk';
2
+ import { PerpsErrorCode } from '@lifi/perps-types';
3
+ import { PROVIDER_KEY, SPOT_MARKET_ID } from '../constants.js';
4
+ import { fetchActiveAssetData } from './activeAssetData.js';
5
+ /**
6
+ * The amounts the account can still buy and sell on one perps market, read
7
+ * from `activeAssetData`. The amounts are denominated in the market's margin
8
+ * asset: USDC on the main dex, and the dex margin asset on a builder-deployed
9
+ * dex. Resolves `undefined` for a spot market, which carries no such state.
10
+ *
11
+ * @throws {PerpsError} On an unknown market, an `availableToTrade` payload
12
+ * that is not a buy/sell pair, Hyperliquid REST error, network, or parsing
13
+ * failures.
14
+ * @public
15
+ */
16
+ export const getAvailableToTrade = async (context, params, options) => {
17
+ const registry = getMarketRegistry(context.client, PROVIDER_KEY);
18
+ await registry.sync();
19
+ const market = registry.require(params.marketId);
20
+ if (market.categoryId === SPOT_MARKET_ID) {
21
+ return undefined;
22
+ }
23
+ const data = await fetchActiveAssetData(context, params.address, params.marketId, options);
24
+ // The wire type states the pair; nothing verifies the response, so read it
25
+ // as a plain list to keep the length check in reach of the type checker.
26
+ const amounts = data.availableToTrade;
27
+ if (amounts.length !== 2) {
28
+ const err = new PerpsError(PerpsErrorCode.ValidationError, `Hyperliquid returned ${amounts.length} availableToTrade amounts for market '${params.marketId}'. Expected a buy amount and a sell amount.`);
29
+ err.tool = PROVIDER_KEY;
30
+ throw err;
31
+ }
32
+ // Hyperliquid orders the pair buy-side first, sell-side second.
33
+ const [buy, sell] = amounts;
34
+ return {
35
+ providerId: market.providerId,
36
+ marketId: market.id,
37
+ asset: toAssetDisplay(market.quoteAsset),
38
+ buy,
39
+ sell,
40
+ };
41
+ };
42
+ //# sourceMappingURL=getAvailableToTrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAvailableToTrade.js","sourceRoot":"","sources":["../../../src/services/getAvailableToTrade.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,UAAU,EAEV,cAAc,GACf,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAY3D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAA2B,EAC3B,MAAiC,EACjC,OAA2B,EACY,EAAE;IACzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAChE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CACrC,OAAO,EACP,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,OAAO,CACR,CAAA;IACD,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,OAAO,GAAsB,IAAI,CAAC,gBAAgB,CAAA;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,cAAc,CAAC,eAAe,EAC9B,wBAAwB,OAAO,CAAC,MAAM,yCAAyC,MAAM,CAAC,QAAQ,6CAA6C,CAC5I,CAAA;QACD,GAAG,CAAC,IAAI,GAAG,YAAY,CAAA;QACvB,MAAM,GAAG,CAAA;IACX,CAAC;IACD,gEAAgE;IAChE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,OAAO,CAAA;IAC3B,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;QACxC,GAAG;QACH,IAAI;KACL,CAAA;AACH,CAAC,CAAA"}
@@ -17,5 +17,5 @@ export interface GetMarketSettingsParams {
17
17
  * @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
18
18
  * @public
19
19
  */
20
- export declare const getMarketSettings: ({ client, apiUrl }: HyperliquidContext, params: GetMarketSettingsParams, options?: SDKRequestOptions) => Promise<MarketSettings | undefined>;
20
+ export declare const getMarketSettings: (context: HyperliquidContext, params: GetMarketSettingsParams, options?: SDKRequestOptions) => Promise<MarketSettings | undefined>;
21
21
  //# sourceMappingURL=getMarketSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getMarketSettings.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAIvD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,SAAS,CAAA;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,oBAAoB,kBAAkB,EACtC,QAAQ,uBAAuB,EAC/B,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,GAAG,SAAS,CAuBpC,CAAA"}
1
+ {"version":3,"file":"getMarketSettings.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAGvD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,SAAS,CAAA;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,kBAAkB,EAC3B,QAAQ,uBAAuB,EAC/B,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,GAAG,SAAS,CAoBpC,CAAA"}
@@ -1,22 +1,18 @@
1
1
  import { MarginMode, } from '@lifi/perps-types';
2
2
  import { SPOT_MARKET_ID } from '../constants.js';
3
- import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
3
+ import { fetchActiveAssetData } from './activeAssetData.js';
4
4
  /**
5
5
  * The user's venue-stored margin mode and leverage for one perps market,
6
6
  * read from `activeAssetData` — present whether or not a position is open.
7
7
  * @throws {PerpsError} On Hyperliquid REST error, network, or parsing failures.
8
8
  * @public
9
9
  */
10
- export const getMarketSettings = async ({ client, apiUrl }, params, options) => {
10
+ export const getMarketSettings = async (context, params, options) => {
11
11
  // Spot markets carry no leverage state on the venue.
12
12
  if (params.market.categoryId === SPOT_MARKET_ID) {
13
13
  return undefined;
14
14
  }
15
- const data = await infoRequest(apiUrl, {
16
- type: 'activeAssetData',
17
- user: params.address,
18
- coin: params.market.marketId,
19
- }, hlInfoOptions(client, options));
15
+ const data = await fetchActiveAssetData(context, params.address, params.market.marketId, options);
20
16
  const leverage = data.leverage;
21
17
  if (!leverage) {
22
18
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"getMarketSettings.js","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAYnE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAA+B,EAC/B,OAA2B,EACU,EAAE;IACvC,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,MAAM,EACN;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,MAAM,CAAC,OAAO;QACpB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;KAC7B,EACD,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAC/B,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO;QACL,UAAU,EACR,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;QACvE,QAAQ,EAAE,QAAQ,CAAC,KAAK;KACzB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"getMarketSettings.js","sourceRoot":"","sources":["../../../src/services/getMarketSettings.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,GAGX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAY3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAA2B,EAC3B,MAA+B,EAC/B,OAA2B,EACU,EAAE;IACvC,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAChD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CACrC,OAAO,EACP,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,CAAC,QAAQ,EACtB,OAAO,CACR,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO;QACL,UAAU,EACR,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;QACvE,QAAQ,EAAE,QAAQ,CAAC,KAAK;KACzB,CAAA;AACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAQvD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,KAAK,CAkDf,CAAA"}
1
+ {"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AASvD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,sBAAsB,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,KAAK,CAwDf,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { getMarketRegistry, PerpsError, } from '@lifi/perps-sdk';
2
2
  import { PerpsErrorCode } from '@lifi/perps-types';
3
3
  import { PROVIDER_KEY } from '../constants.js';
4
+ import { withExplorerLinks } from '../utils/explorer.js';
4
5
  import { assetIsOutcome, mapOrder } from '../utils/index.js';
5
6
  import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
6
7
  /**
@@ -18,9 +19,10 @@ export const getOrder = async ({ client, apiUrl }, params, options) => {
18
19
  err.tool = PROVIDER_KEY;
19
20
  throw err;
20
21
  }
21
- const status = await infoRequest(apiUrl, { type: 'orderStatus', user: params.address, oid }, hlInfoOptions(client, options));
22
+ const infoOpts = hlInfoOptions(client, options);
23
+ const status = await infoRequest(apiUrl, { type: 'orderStatus', user: params.address, oid }, infoOpts);
22
24
  if (status.status !== 'order') {
23
- const history = await infoRequest(apiUrl, { type: 'twapHistory', user: params.address }, hlInfoOptions(client, options));
25
+ const history = await infoRequest(apiUrl, { type: 'twapHistory', user: params.address }, infoOpts);
24
26
  const twap = history.find((entry) => String(entry.twapId) === params.id && !assetIsOutcome(entry.state.coin));
25
27
  if (twap !== undefined) {
26
28
  const registry = getMarketRegistry(client, PROVIDER_KEY);
@@ -35,6 +37,8 @@ export const getOrder = async ({ client, apiUrl }, params, options) => {
35
37
  }
36
38
  const registry = getMarketRegistry(client, PROVIDER_KEY);
37
39
  await registry.sync();
38
- return mapOrder(status.order, registry.require(status.order.order.coin));
40
+ const order = mapOrder(status.order, registry.require(status.order.order.coin));
41
+ const [linked] = await withExplorerLinks([order], params.address, infoOpts);
42
+ return linked;
39
43
  };
40
44
  //# sourceMappingURL=getOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOrder.js","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getOrder.js","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAoBvD,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAA;AA4ErD,iFAAiF;AACjF,eAAO,MAAM,SAAS,GACpB,oBAAoB,kBAAkB,EACtC,QAAQ,eAAe,EACvB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,CAoGxB,CAAA"}
1
+ {"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAUvD,kEAAkE;AAClE,MAAM,MAAM,eAAe,GAAG,uBAAuB,CAAA;AAqCrD,iFAAiF;AACjF,eAAO,MAAM,SAAS,GACpB,oBAAoB,kBAAkB,EACtC,QAAQ,eAAe,EACvB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,cAAc,CAoGxB,CAAA"}
@@ -1,10 +1,11 @@
1
- import { ACTIVE_ORDER_STATUSES, createWarnOnce, ExplorerChainId, explorerTxUrl, getMarketRegistry, isActiveOrderStatus, PerpsError, } from '@lifi/perps-sdk';
1
+ import { ACTIVE_ORDER_STATUSES, createWarnOnce, getMarketRegistry, isActiveOrderStatus, PerpsError, } from '@lifi/perps-sdk';
2
2
  import { PROVIDER_KEY } from '../constants.js';
3
- import { assetIsOutcome, fetchUserTransactions, mapOrder, matchOrderActionHash, perpsDexNames, } from '../utils/index.js';
4
- import { hlInfoOptions, infoRequest, } from '../utils/infoClient.js';
3
+ import { withExplorerLinks } from '../utils/explorer.js';
4
+ import { assetIsOutcome, mapOrder, perpsDexNames } from '../utils/index.js';
5
+ import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
5
6
  const warn = createWarnOnce();
6
- const warnOnce = (key, detail) => {
7
- warn(key, `[${PROVIDER_KEY}] ${detail === undefined ? key : `${key}: ${detail}`}`);
7
+ const warnOnce = (key) => {
8
+ warn(key, `[${PROVIDER_KEY}] ${key}`);
8
9
  };
9
10
  /**
10
11
  * Map one venue row, or drop it. An outcome market identity, a coin the backend
@@ -31,35 +32,6 @@ const mapRow = (coin, registry, map) => {
31
32
  return undefined;
32
33
  }
33
34
  };
34
- /**
35
- * Set `explorerLink` on each row whose placement transaction the explorer
36
- * window still holds. One explorer read serves the whole page, and it is
37
- * skipped when no row carries a client order id to match on. The link is
38
- * supplementary, so an explorer failure warns and leaves the rows unlinked
39
- * instead of failing the order read.
40
- */
41
- const withExplorerLinks = async (orders, address, options) => {
42
- if (!orders.some((order) => order.clientOrderId !== undefined)) {
43
- return orders;
44
- }
45
- let txs;
46
- try {
47
- txs = await fetchUserTransactions(address, options);
48
- }
49
- catch (error) {
50
- if (!(error instanceof PerpsError)) {
51
- throw error;
52
- }
53
- // The message stays out of the key: a transport failure names hosts and
54
- // ports, so keying on it would let the dedupe set grow without bound.
55
- warnOnce('explorer link lookup failed', error.message);
56
- return orders;
57
- }
58
- return orders.map((order) => {
59
- const explorerLink = explorerTxUrl(ExplorerChainId.HYPERLIQUID, matchOrderActionHash(txs, order));
60
- return explorerLink === undefined ? order : { ...order, explorerLink };
61
- });
62
- };
63
35
  /** Read regular, trigger, and TWAP orders from the requested lifecycle feeds. */
64
36
  export const getOrders = async ({ client, apiUrl }, params, options) => {
65
37
  const statuses = params.statuses ?? [...ACTIVE_ORDER_STATUSES];
@@ -1 +1 @@
1
- {"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAEnB,UAAU,GAGX,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAO9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAKnE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAQ,EAAE;IACrC,IAAI,CAAC,GAAG,EAAE,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC,CAAA;AACvC,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CACb,IAAY,EACZ,QAAwB,EACxB,GAAqC,EAClB,EAAE;IACrB,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,CAAA;QACb,CAAC;QACD,QAAQ,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAuB,EACvB,OAA2B,EACF,EAAE;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAA;IAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;SACzD,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAA;IACxE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,MAAM;YACJ,CAAC,CAAC,OAAO,CAAC,GAAG,CACT,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,WAAW,CACT,MAAM,EACN;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,MAAM,CAAC,OAAO;gBACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/B,EACD,QAAQ,CACT,CACF,CACF;YACH,CAAC,CAAC,EAAE;QACN,QAAQ;YACN,CAAC,CAAC,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAClD,QAAQ,CACT;YACH,CAAC,CAAC,EAAE;QACN,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAC7C,QAAQ,CACT;KACF,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAA;IACrC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAwB,EAAQ,EAAE;QAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,yEAAyE;QACzE,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CACF,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAC1E,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CACzE,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAClE,CAAA;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EACjB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAC3C,CACF,CAAA;QACH,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CACF,QAAQ,IAAI,CAAC,MAAM,EAAE,EACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CACtE,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACxC,CAAC,KAAK,EAAE,EAAE,CACR,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/B,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,CACzE,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC1E,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,MAAM;QACN,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KACrE,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { type ProviderGetWithdrawableBalancesParams, type ProviderWithdrawableBalance, type SDKRequestOptions } from '@lifi/perps-sdk';
2
+ import type { HyperliquidContext } from '../context.js';
3
+ /**
4
+ * Parameters for {@link getWithdrawableBalances}.
5
+ *
6
+ * @public
7
+ */
8
+ export type GetWithdrawableBalancesParams = ProviderGetWithdrawableBalancesParams;
9
+ /**
10
+ * The `(asset, route)` pairs `params.address` can withdraw from Hyperliquid,
11
+ * read from the venue's own `withdrawable` and spot `total`/`hold` figures.
12
+ * Hyperliquid charges its flat withdrawal fee in USDC, so the backend's
13
+ * `withdrawalFeeUsd` is the fee in quote-asset units on every USDC row.
14
+ *
15
+ * Only the main perps dex is read: a withdrawal to L1 draws on that account,
16
+ * and a sub-dex balance reaches it through a transfer first.
17
+ *
18
+ * @throws {PerpsError} On Hyperliquid REST or backend `/providers` error,
19
+ * network, or parsing failures, and `SDKError` when the market registry
20
+ * carries no main perps market to name the quote asset.
21
+ * @public
22
+ */
23
+ export declare const getWithdrawableBalances: ({ client, apiUrl }: HyperliquidContext, params: GetWithdrawableBalancesParams, options?: SDKRequestOptions) => Promise<ProviderWithdrawableBalance[]>;
24
+ //# sourceMappingURL=getWithdrawableBalances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getWithdrawableBalances.d.ts","sourceRoot":"","sources":["../../../src/services/getWithdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,qCAAqC,EAC1C,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AASvD;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GACvC,qCAAqC,CAAA;AAEvC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAClC,oBAAoB,kBAAkB,EACtC,QAAQ,6BAA6B,EACrC,UAAU,iBAAiB,KAC1B,OAAO,CAAC,2BAA2B,EAAE,CAgDvC,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { getMarketRegistry, getProviders, PerpsError, } from '@lifi/perps-sdk';
2
+ import { PerpsErrorCode } from '@lifi/perps-types';
3
+ import { MAIN_MARKET_ID, PROVIDER_KEY } from '../constants.js';
4
+ import { hlInfoOptions, infoRequest } from '../utils/infoClient.js';
5
+ import { hyperliquidWithdrawableBalances } from '../utils/withdrawableBalances.js';
6
+ /**
7
+ * The `(asset, route)` pairs `params.address` can withdraw from Hyperliquid,
8
+ * read from the venue's own `withdrawable` and spot `total`/`hold` figures.
9
+ * Hyperliquid charges its flat withdrawal fee in USDC, so the backend's
10
+ * `withdrawalFeeUsd` is the fee in quote-asset units on every USDC row.
11
+ *
12
+ * Only the main perps dex is read: a withdrawal to L1 draws on that account,
13
+ * and a sub-dex balance reaches it through a transfer first.
14
+ *
15
+ * @throws {PerpsError} On Hyperliquid REST or backend `/providers` error,
16
+ * network, or parsing failures, and `SDKError` when the market registry
17
+ * carries no main perps market to name the quote asset.
18
+ * @public
19
+ */
20
+ export const getWithdrawableBalances = async ({ client, apiUrl }, params, options) => {
21
+ const registry = getMarketRegistry(client, PROVIDER_KEY);
22
+ const infoOpts = hlInfoOptions(client, options);
23
+ const [{ providers }, markets, abstraction, state, spotState] = await Promise.all([
24
+ getProviders(client, options),
25
+ registry.sync(),
26
+ infoRequest(apiUrl, { type: 'userAbstraction', user: params.address }, infoOpts),
27
+ infoRequest(apiUrl, { type: 'clearinghouseState', user: params.address }, infoOpts),
28
+ infoRequest(apiUrl, { type: 'spotClearinghouseState', user: params.address }, infoOpts),
29
+ ]);
30
+ const quoteAsset = markets.find((market) => market.categoryId === MAIN_MARKET_ID)?.quoteAsset;
31
+ if (quoteAsset === undefined) {
32
+ const error = new PerpsError(PerpsErrorCode.SDKError, `Hyperliquid market registry carries no '${MAIN_MARKET_ID}' market to name the withdrawal quote asset`);
33
+ error.tool = PROVIDER_KEY;
34
+ throw error;
35
+ }
36
+ const feeUsd = providers.find((provider) => provider.key === PROVIDER_KEY)?.withdrawalFeeUsd;
37
+ return hyperliquidWithdrawableBalances(abstraction, state, spotState, quoteAsset.id, feeUsd === undefined ? undefined : String(feeUsd));
38
+ };
39
+ //# sourceMappingURL=getWithdrawableBalances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getWithdrawableBalances.js","sourceRoot":"","sources":["../../../src/services/getWithdrawableBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,UAAU,GAIX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAO9D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAA;AAUlF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAqC,EACrC,OAA2B,EACa,EAAE;IAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE;QACf,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACjD,QAAQ,CACT;QACD,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACpD,QAAQ,CACT;QACD,WAAW,CACT,MAAM,EACN,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACxD,QAAQ,CACT;KACF,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,CACjD,EAAE,UAAU,CAAA;IACb,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAC1B,cAAc,CAAC,QAAQ,EACvB,2CAA2C,cAAc,6CAA6C,CACvG,CAAA;QACD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAA;QACzB,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,YAAY,CAC5C,EAAE,gBAAgB,CAAA;IAEnB,OAAO,+BAA+B,CACpC,WAAW,EACX,KAAK,EACL,SAAS,EACT,UAAU,CAAC,EAAE,EACb,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAClD,CAAA;AACH,CAAC,CAAA"}
@@ -47,6 +47,18 @@ export type HlPosition = {
47
47
  export type HlAssetPosition = {
48
48
  position: HlPosition;
49
49
  };
50
+ /**
51
+ * Margin totals block of a Hyperliquid clearinghouse state. Monetary fields
52
+ * are decimal strings in the account's quote asset.
53
+ * @public
54
+ */
55
+ export type HlMarginSummary = {
56
+ /** Total equity: locked margin and unrealized PnL included. */
57
+ accountValue: string;
58
+ totalNtlPos: string;
59
+ totalRawUsd: string;
60
+ totalMarginUsed: string;
61
+ };
50
62
  /**
51
63
  * Perpetual clearinghouse account state returned by Hyperliquid `/info`.
52
64
  * `assetPositions` includes zero-size rows that callers may discard. Monetary
@@ -56,14 +68,10 @@ export type HlAssetPosition = {
56
68
  */
57
69
  export type HlClearinghouseState = {
58
70
  assetPositions: HlAssetPosition[];
59
- marginSummary: {
60
- accountValue: string;
61
- totalMarginUsed: string;
62
- };
63
- crossMarginSummary: {
64
- accountValue: string;
65
- totalMarginUsed: string;
66
- };
71
+ marginSummary: HlMarginSummary;
72
+ crossMarginSummary: HlMarginSummary;
73
+ crossMaintenanceMarginUsed: string;
74
+ withdrawable: string;
67
75
  };
68
76
  /**
69
77
  * One spot balance from Hyperliquid `spotClearinghouseState`.
@@ -84,6 +92,11 @@ export type HlSpotBalance = {
84
92
  */
85
93
  export type HlSpotClearinghouseState = {
86
94
  balances: HlSpotBalance[];
95
+ /**
96
+ * Venue buying power per spot token, as `[token index, amount]` pairs.
97
+ * The venue reports the amount after maintenance margin.
98
+ */
99
+ tokenToAvailableAfterMaintenance: [number, string][];
87
100
  };
88
101
  /**
89
102
  * User fee rates returned by Hyperliquid `userFees`.
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAA;IACX,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAA;IACrB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;;OAKG;IACH,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,UAAU,CAAA;CACrB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,kBAAkB,EAAE;QAClB,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;AAErD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAA;AAEV,wFAAwF;AACxF,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAAA,uDAAuD;AA0IvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACzB,CAAA"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAwJvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACzB,CAAA"}