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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/README.md +38 -15
  2. package/dist/cjs/agent/AgentManager.d.ts +5 -5
  3. package/dist/cjs/agent/AgentManager.d.ts.map +1 -1
  4. package/dist/cjs/agent/AgentManager.js +16 -14
  5. package/dist/cjs/agent/AgentManager.js.map +1 -1
  6. package/dist/cjs/client/PerpsClient.d.ts +70 -21
  7. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  8. package/dist/cjs/client/PerpsClient.js +323 -175
  9. package/dist/cjs/client/PerpsClient.js.map +1 -1
  10. package/dist/cjs/client/createPerpsClient.d.ts +12 -2
  11. package/dist/cjs/client/createPerpsClient.d.ts.map +1 -1
  12. package/dist/cjs/client/createPerpsClient.js +6 -5
  13. package/dist/cjs/client/createPerpsClient.js.map +1 -1
  14. package/dist/cjs/client/types.d.ts +42 -25
  15. package/dist/cjs/client/types.d.ts.map +1 -1
  16. package/dist/cjs/client/types.js +6 -0
  17. package/dist/cjs/client/types.js.map +1 -1
  18. package/dist/cjs/errors/PerpsError.d.ts +2 -3
  19. package/dist/cjs/errors/PerpsError.d.ts.map +1 -1
  20. package/dist/cjs/errors/PerpsError.js +3 -15
  21. package/dist/cjs/errors/PerpsError.js.map +1 -1
  22. package/dist/cjs/errors/constants.d.ts +0 -10
  23. package/dist/cjs/errors/constants.d.ts.map +1 -1
  24. package/dist/cjs/errors/constants.js +1 -12
  25. package/dist/cjs/errors/constants.js.map +1 -1
  26. package/dist/cjs/index.d.ts +31 -32
  27. package/dist/cjs/index.d.ts.map +1 -1
  28. package/dist/cjs/index.js +58 -42
  29. package/dist/cjs/index.js.map +1 -1
  30. package/dist/cjs/realtime/PerpsWsClient.d.ts +1 -0
  31. package/dist/cjs/realtime/PerpsWsClient.d.ts.map +1 -1
  32. package/dist/cjs/realtime/PerpsWsClient.js +28 -23
  33. package/dist/cjs/realtime/PerpsWsClient.js.map +1 -1
  34. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts +9 -5
  35. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
  36. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js +162 -52
  37. package/dist/cjs/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
  38. package/dist/cjs/realtime/hyperliquid/types.d.ts +11 -9
  39. package/dist/cjs/realtime/hyperliquid/types.d.ts.map +1 -1
  40. package/dist/cjs/services/createAction.d.ts +11 -0
  41. package/dist/cjs/services/createAction.d.ts.map +1 -0
  42. package/dist/cjs/services/{submitAuthorization.js → createAction.js} +7 -6
  43. package/dist/cjs/services/createAction.js.map +1 -0
  44. package/dist/cjs/services/executeAction.d.ts +11 -0
  45. package/dist/cjs/services/executeAction.d.ts.map +1 -0
  46. package/dist/cjs/services/{submitOrder.js → executeAction.js} +6 -5
  47. package/dist/cjs/services/executeAction.js.map +1 -0
  48. package/dist/cjs/services/getAccount.d.ts +1 -1
  49. package/dist/cjs/services/getAccount.d.ts.map +1 -1
  50. package/dist/cjs/services/getAccount.js +1 -1
  51. package/dist/cjs/services/getAccount.js.map +1 -1
  52. package/dist/cjs/services/getActivity.d.ts +13 -0
  53. package/dist/cjs/services/getActivity.d.ts.map +1 -0
  54. package/dist/cjs/services/getActivity.js +21 -0
  55. package/dist/cjs/services/getActivity.js.map +1 -0
  56. package/dist/cjs/services/getAsset.d.ts +8 -0
  57. package/dist/cjs/services/getAsset.d.ts.map +1 -0
  58. package/dist/cjs/services/{getMarkets.js → getAsset.js} +6 -4
  59. package/dist/cjs/services/getAsset.js.map +1 -0
  60. package/dist/cjs/services/getAssets.d.ts +7 -0
  61. package/dist/cjs/services/getAssets.d.ts.map +1 -0
  62. package/dist/cjs/services/{getMarket.js → getAssets.js} +5 -5
  63. package/dist/cjs/services/getAssets.js.map +1 -0
  64. package/dist/cjs/services/getFills.d.ts +12 -0
  65. package/dist/cjs/services/getFills.d.ts.map +1 -0
  66. package/dist/cjs/services/{getHistory.js → getFills.js} +7 -5
  67. package/dist/cjs/services/getFills.js.map +1 -0
  68. package/dist/cjs/services/getOhlcv.d.ts +1 -1
  69. package/dist/cjs/services/getOhlcv.d.ts.map +1 -1
  70. package/dist/cjs/services/getOhlcv.js +1 -1
  71. package/dist/cjs/services/getOhlcv.js.map +1 -1
  72. package/dist/cjs/services/getOrder.d.ts +1 -1
  73. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  74. package/dist/cjs/services/getOrder.js +1 -1
  75. package/dist/cjs/services/getOrder.js.map +1 -1
  76. package/dist/cjs/services/getOrderbook.d.ts +1 -1
  77. package/dist/cjs/services/getOrderbook.d.ts.map +1 -1
  78. package/dist/cjs/services/getOrderbook.js +1 -1
  79. package/dist/cjs/services/getOrderbook.js.map +1 -1
  80. package/dist/cjs/services/getOrders.d.ts +11 -0
  81. package/dist/cjs/services/getOrders.d.ts.map +1 -0
  82. package/dist/cjs/services/getOrders.js +15 -0
  83. package/dist/cjs/services/getOrders.js.map +1 -0
  84. package/dist/cjs/services/getPositions.d.ts +11 -0
  85. package/dist/cjs/services/getPositions.d.ts.map +1 -0
  86. package/dist/cjs/services/getPositions.js +15 -0
  87. package/dist/cjs/services/getPositions.js.map +1 -0
  88. package/dist/cjs/services/getPrices.d.ts +1 -1
  89. package/dist/cjs/services/getPrices.d.ts.map +1 -1
  90. package/dist/cjs/services/getPrices.js +1 -1
  91. package/dist/cjs/services/getPrices.js.map +1 -1
  92. package/dist/cjs/services/getProviders.d.ts +4 -0
  93. package/dist/cjs/services/getProviders.d.ts.map +1 -0
  94. package/dist/cjs/services/{getDexes.js → getProviders.js} +4 -4
  95. package/dist/cjs/services/getProviders.js.map +1 -0
  96. package/dist/cjs/utils/accountSummary.d.ts +9 -0
  97. package/dist/cjs/utils/accountSummary.d.ts.map +1 -0
  98. package/dist/cjs/utils/accountSummary.js +81 -0
  99. package/dist/cjs/utils/accountSummary.js.map +1 -0
  100. package/dist/cjs/utils/calculations.d.ts +16 -0
  101. package/dist/cjs/utils/calculations.d.ts.map +1 -0
  102. package/dist/cjs/utils/calculations.js +71 -0
  103. package/dist/cjs/utils/calculations.js.map +1 -0
  104. package/dist/cjs/utils/hyperliquid/index.d.ts +3 -0
  105. package/dist/cjs/utils/hyperliquid/index.d.ts.map +1 -0
  106. package/dist/cjs/utils/hyperliquid/index.js +11 -0
  107. package/dist/cjs/utils/hyperliquid/index.js.map +1 -0
  108. package/dist/cjs/utils/hyperliquid/liquidation.d.ts +3 -0
  109. package/dist/cjs/utils/hyperliquid/liquidation.d.ts.map +1 -0
  110. package/dist/cjs/utils/hyperliquid/liquidation.js +24 -0
  111. package/dist/cjs/utils/hyperliquid/liquidation.js.map +1 -0
  112. package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts +4 -0
  113. package/dist/cjs/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
  114. package/dist/cjs/utils/hyperliquid/orderFormatting.js +33 -0
  115. package/dist/cjs/utils/hyperliquid/orderFormatting.js.map +1 -0
  116. package/dist/cjs/utils/orderClassification.d.ts +8 -0
  117. package/dist/cjs/utils/orderClassification.d.ts.map +1 -0
  118. package/dist/cjs/utils/orderClassification.js +39 -0
  119. package/dist/cjs/utils/orderClassification.js.map +1 -0
  120. package/dist/cjs/utils/parse.d.ts +2 -0
  121. package/dist/cjs/utils/parse.d.ts.map +1 -0
  122. package/dist/cjs/utils/parse.js +14 -0
  123. package/dist/cjs/utils/parse.js.map +1 -0
  124. package/dist/cjs/utils/request.d.ts.map +1 -1
  125. package/dist/cjs/utils/request.js +16 -4
  126. package/dist/cjs/utils/request.js.map +1 -1
  127. package/dist/cjs/utils/units.d.ts +3 -0
  128. package/dist/cjs/utils/units.d.ts.map +1 -0
  129. package/dist/cjs/utils/units.js +18 -0
  130. package/dist/cjs/utils/units.js.map +1 -0
  131. package/dist/cjs/utils/validation.d.ts +2 -0
  132. package/dist/cjs/utils/validation.d.ts.map +1 -0
  133. package/dist/cjs/utils/validation.js +16 -0
  134. package/dist/cjs/utils/validation.js.map +1 -0
  135. package/dist/cjs/version.d.ts +1 -1
  136. package/dist/cjs/version.d.ts.map +1 -1
  137. package/dist/cjs/version.js +1 -1
  138. package/dist/cjs/version.js.map +1 -1
  139. package/dist/esm/agent/AgentManager.d.ts +9 -9
  140. package/dist/esm/agent/AgentManager.d.ts.map +1 -1
  141. package/dist/esm/agent/AgentManager.js +20 -18
  142. package/dist/esm/agent/AgentManager.js.map +1 -1
  143. package/dist/esm/agent/storage.d.ts +1 -1
  144. package/dist/esm/agent/storage.js +1 -1
  145. package/dist/esm/client/PerpsClient.d.ts +70 -189
  146. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  147. package/dist/esm/client/PerpsClient.js +355 -361
  148. package/dist/esm/client/PerpsClient.js.map +1 -1
  149. package/dist/esm/client/createPerpsClient.d.ts +30 -7
  150. package/dist/esm/client/createPerpsClient.d.ts.map +1 -1
  151. package/dist/esm/client/createPerpsClient.js +6 -6
  152. package/dist/esm/client/createPerpsClient.js.map +1 -1
  153. package/dist/esm/client/types.d.ts +75 -48
  154. package/dist/esm/client/types.d.ts.map +1 -1
  155. package/dist/esm/client/types.js +11 -1
  156. package/dist/esm/client/types.js.map +1 -1
  157. package/dist/esm/errors/PerpsError.d.ts +2 -3
  158. package/dist/esm/errors/PerpsError.d.ts.map +1 -1
  159. package/dist/esm/errors/PerpsError.js +3 -15
  160. package/dist/esm/errors/PerpsError.js.map +1 -1
  161. package/dist/esm/errors/constants.d.ts +0 -10
  162. package/dist/esm/errors/constants.d.ts.map +1 -1
  163. package/dist/esm/errors/constants.js +0 -11
  164. package/dist/esm/errors/constants.js.map +1 -1
  165. package/dist/esm/index.d.ts +31 -32
  166. package/dist/esm/index.d.ts.map +1 -1
  167. package/dist/esm/index.js +22 -23
  168. package/dist/esm/index.js.map +1 -1
  169. package/dist/esm/realtime/PerpsWsClient.d.ts +1 -0
  170. package/dist/esm/realtime/PerpsWsClient.d.ts.map +1 -1
  171. package/dist/esm/realtime/PerpsWsClient.js +30 -23
  172. package/dist/esm/realtime/PerpsWsClient.js.map +1 -1
  173. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
  174. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
  175. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js +174 -53
  176. package/dist/esm/realtime/hyperliquid/HyperliquidWsProvider.js.map +1 -1
  177. package/dist/esm/realtime/hyperliquid/types.d.ts +11 -9
  178. package/dist/esm/realtime/hyperliquid/types.d.ts.map +1 -1
  179. package/dist/esm/services/createAction.d.ts +11 -0
  180. package/dist/esm/services/createAction.d.ts.map +1 -0
  181. package/dist/esm/services/createAction.js +14 -0
  182. package/dist/esm/services/createAction.js.map +1 -0
  183. package/dist/esm/services/executeAction.d.ts +11 -0
  184. package/dist/esm/services/executeAction.d.ts.map +1 -0
  185. package/dist/esm/services/executeAction.js +14 -0
  186. package/dist/esm/services/executeAction.js.map +1 -0
  187. package/dist/esm/services/getAccount.d.ts +7 -7
  188. package/dist/esm/services/getAccount.d.ts.map +1 -1
  189. package/dist/esm/services/getAccount.js +6 -6
  190. package/dist/esm/services/getAccount.js.map +1 -1
  191. package/dist/esm/services/getActivity.d.ts +49 -0
  192. package/dist/esm/services/getActivity.d.ts.map +1 -0
  193. package/dist/esm/services/getActivity.js +47 -0
  194. package/dist/esm/services/getActivity.js.map +1 -0
  195. package/dist/esm/services/getAsset.d.ts +20 -0
  196. package/dist/esm/services/getAsset.d.ts.map +1 -0
  197. package/dist/esm/services/getAsset.js +18 -0
  198. package/dist/esm/services/getAsset.js.map +1 -0
  199. package/dist/esm/services/getAssets.d.ts +18 -0
  200. package/dist/esm/services/getAssets.d.ts.map +1 -0
  201. package/dist/esm/services/getAssets.js +18 -0
  202. package/dist/esm/services/getAssets.js.map +1 -0
  203. package/dist/{types/services/getHistory.d.ts → esm/services/getFills.d.ts} +17 -13
  204. package/dist/esm/services/getFills.d.ts.map +1 -0
  205. package/dist/esm/services/{getHistory.js → getFills.js} +13 -11
  206. package/dist/esm/services/getFills.js.map +1 -0
  207. package/dist/esm/services/getOhlcv.d.ts +4 -4
  208. package/dist/esm/services/getOhlcv.d.ts.map +1 -1
  209. package/dist/esm/services/getOhlcv.js +3 -3
  210. package/dist/esm/services/getOhlcv.js.map +1 -1
  211. package/dist/esm/services/getOrder.d.ts +4 -4
  212. package/dist/esm/services/getOrder.d.ts.map +1 -1
  213. package/dist/esm/services/getOrder.js +3 -3
  214. package/dist/esm/services/getOrder.js.map +1 -1
  215. package/dist/esm/services/getOrderbook.d.ts +4 -4
  216. package/dist/esm/services/getOrderbook.d.ts.map +1 -1
  217. package/dist/esm/services/getOrderbook.js +3 -3
  218. package/dist/esm/services/getOrderbook.js.map +1 -1
  219. package/dist/esm/services/getOrders.d.ts +27 -0
  220. package/dist/esm/services/getOrders.d.ts.map +1 -0
  221. package/dist/esm/services/getOrders.js +23 -0
  222. package/dist/esm/services/getOrders.js.map +1 -0
  223. package/dist/esm/services/getPositions.d.ts +27 -0
  224. package/dist/esm/services/getPositions.d.ts.map +1 -0
  225. package/dist/esm/services/getPositions.js +23 -0
  226. package/dist/esm/services/getPositions.js.map +1 -0
  227. package/dist/esm/services/getPrices.d.ts +5 -5
  228. package/dist/esm/services/getPrices.d.ts.map +1 -1
  229. package/dist/esm/services/getPrices.js +4 -4
  230. package/dist/esm/services/getPrices.js.map +1 -1
  231. package/dist/esm/services/getProviders.d.ts +20 -0
  232. package/dist/esm/services/getProviders.d.ts.map +1 -0
  233. package/dist/esm/services/getProviders.js +21 -0
  234. package/dist/esm/services/getProviders.js.map +1 -0
  235. package/dist/esm/utils/accountSummary.d.ts +13 -0
  236. package/dist/esm/utils/accountSummary.d.ts.map +1 -0
  237. package/dist/esm/utils/accountSummary.js +92 -0
  238. package/dist/esm/utils/accountSummary.js.map +1 -0
  239. package/dist/esm/utils/calculations.d.ts +109 -0
  240. package/dist/esm/utils/calculations.d.ts.map +1 -0
  241. package/dist/esm/utils/calculations.js +154 -0
  242. package/dist/esm/utils/calculations.js.map +1 -0
  243. package/dist/esm/utils/hyperliquid/index.d.ts +3 -0
  244. package/dist/esm/utils/hyperliquid/index.d.ts.map +1 -0
  245. package/dist/esm/utils/hyperliquid/index.js +3 -0
  246. package/dist/esm/utils/hyperliquid/index.js.map +1 -0
  247. package/dist/esm/utils/hyperliquid/liquidation.d.ts +46 -0
  248. package/dist/esm/utils/hyperliquid/liquidation.d.ts.map +1 -0
  249. package/dist/esm/utils/hyperliquid/liquidation.js +63 -0
  250. package/dist/esm/utils/hyperliquid/liquidation.js.map +1 -0
  251. package/dist/esm/utils/hyperliquid/orderFormatting.d.ts +44 -0
  252. package/dist/esm/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
  253. package/dist/esm/utils/hyperliquid/orderFormatting.js +79 -0
  254. package/dist/esm/utils/hyperliquid/orderFormatting.js.map +1 -0
  255. package/dist/esm/utils/orderClassification.d.ts +29 -0
  256. package/dist/esm/utils/orderClassification.d.ts.map +1 -0
  257. package/dist/esm/utils/orderClassification.js +53 -0
  258. package/dist/esm/utils/orderClassification.js.map +1 -0
  259. package/dist/esm/utils/parse.d.ts +18 -0
  260. package/dist/esm/utils/parse.d.ts.map +1 -0
  261. package/dist/esm/utils/parse.js +28 -0
  262. package/dist/esm/utils/parse.js.map +1 -0
  263. package/dist/esm/utils/request.d.ts +1 -2
  264. package/dist/esm/utils/request.d.ts.map +1 -1
  265. package/dist/esm/utils/request.js +20 -7
  266. package/dist/esm/utils/request.js.map +1 -1
  267. package/dist/esm/utils/units.d.ts +20 -0
  268. package/dist/esm/utils/units.d.ts.map +1 -0
  269. package/dist/esm/utils/units.js +31 -0
  270. package/dist/esm/utils/units.js.map +1 -0
  271. package/dist/esm/utils/validation.d.ts +15 -0
  272. package/dist/esm/utils/validation.d.ts.map +1 -0
  273. package/dist/esm/utils/validation.js +26 -0
  274. package/dist/esm/utils/validation.js.map +1 -0
  275. package/dist/esm/version.d.ts +1 -1
  276. package/dist/esm/version.d.ts.map +1 -1
  277. package/dist/esm/version.js +1 -1
  278. package/dist/esm/version.js.map +1 -1
  279. package/dist/types/agent/AgentManager.d.ts +9 -9
  280. package/dist/types/agent/AgentManager.d.ts.map +1 -1
  281. package/dist/types/agent/storage.d.ts +1 -1
  282. package/dist/types/client/PerpsClient.d.ts +70 -189
  283. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  284. package/dist/types/client/createPerpsClient.d.ts +30 -7
  285. package/dist/types/client/createPerpsClient.d.ts.map +1 -1
  286. package/dist/types/client/types.d.ts +75 -48
  287. package/dist/types/client/types.d.ts.map +1 -1
  288. package/dist/types/errors/PerpsError.d.ts +2 -3
  289. package/dist/types/errors/PerpsError.d.ts.map +1 -1
  290. package/dist/types/errors/constants.d.ts +0 -10
  291. package/dist/types/errors/constants.d.ts.map +1 -1
  292. package/dist/types/index.d.ts +31 -32
  293. package/dist/types/index.d.ts.map +1 -1
  294. package/dist/types/realtime/PerpsWsClient.d.ts +1 -0
  295. package/dist/types/realtime/PerpsWsClient.d.ts.map +1 -1
  296. package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts +11 -5
  297. package/dist/types/realtime/hyperliquid/HyperliquidWsProvider.d.ts.map +1 -1
  298. package/dist/types/realtime/hyperliquid/types.d.ts +11 -9
  299. package/dist/types/realtime/hyperliquid/types.d.ts.map +1 -1
  300. package/dist/types/services/createAction.d.ts +11 -0
  301. package/dist/types/services/createAction.d.ts.map +1 -0
  302. package/dist/types/services/executeAction.d.ts +11 -0
  303. package/dist/types/services/executeAction.d.ts.map +1 -0
  304. package/dist/types/services/getAccount.d.ts +7 -7
  305. package/dist/types/services/getAccount.d.ts.map +1 -1
  306. package/dist/types/services/getActivity.d.ts +49 -0
  307. package/dist/types/services/getActivity.d.ts.map +1 -0
  308. package/dist/types/services/getAsset.d.ts +20 -0
  309. package/dist/types/services/getAsset.d.ts.map +1 -0
  310. package/dist/types/services/getAssets.d.ts +18 -0
  311. package/dist/types/services/getAssets.d.ts.map +1 -0
  312. package/dist/{esm/services/getHistory.d.ts → types/services/getFills.d.ts} +17 -13
  313. package/dist/types/services/getFills.d.ts.map +1 -0
  314. package/dist/types/services/getOhlcv.d.ts +4 -4
  315. package/dist/types/services/getOhlcv.d.ts.map +1 -1
  316. package/dist/types/services/getOrder.d.ts +4 -4
  317. package/dist/types/services/getOrder.d.ts.map +1 -1
  318. package/dist/types/services/getOrderbook.d.ts +4 -4
  319. package/dist/types/services/getOrderbook.d.ts.map +1 -1
  320. package/dist/types/services/getOrders.d.ts +27 -0
  321. package/dist/types/services/getOrders.d.ts.map +1 -0
  322. package/dist/types/services/getPositions.d.ts +27 -0
  323. package/dist/types/services/getPositions.d.ts.map +1 -0
  324. package/dist/types/services/getPrices.d.ts +5 -5
  325. package/dist/types/services/getPrices.d.ts.map +1 -1
  326. package/dist/types/services/getProviders.d.ts +20 -0
  327. package/dist/types/services/getProviders.d.ts.map +1 -0
  328. package/dist/types/utils/accountSummary.d.ts +13 -0
  329. package/dist/types/utils/accountSummary.d.ts.map +1 -0
  330. package/dist/types/utils/calculations.d.ts +109 -0
  331. package/dist/types/utils/calculations.d.ts.map +1 -0
  332. package/dist/types/utils/hyperliquid/index.d.ts +3 -0
  333. package/dist/types/utils/hyperliquid/index.d.ts.map +1 -0
  334. package/dist/types/utils/hyperliquid/liquidation.d.ts +46 -0
  335. package/dist/types/utils/hyperliquid/liquidation.d.ts.map +1 -0
  336. package/dist/types/utils/hyperliquid/orderFormatting.d.ts +44 -0
  337. package/dist/types/utils/hyperliquid/orderFormatting.d.ts.map +1 -0
  338. package/dist/types/utils/orderClassification.d.ts +29 -0
  339. package/dist/types/utils/orderClassification.d.ts.map +1 -0
  340. package/dist/types/utils/parse.d.ts +18 -0
  341. package/dist/types/utils/parse.d.ts.map +1 -0
  342. package/dist/types/utils/request.d.ts +1 -2
  343. package/dist/types/utils/request.d.ts.map +1 -1
  344. package/dist/types/utils/units.d.ts +20 -0
  345. package/dist/types/utils/units.d.ts.map +1 -0
  346. package/dist/types/utils/validation.d.ts +15 -0
  347. package/dist/types/utils/validation.d.ts.map +1 -0
  348. package/dist/types/version.d.ts +1 -1
  349. package/dist/types/version.d.ts.map +1 -1
  350. package/package.json +8 -4
  351. package/src/agent/AgentManager.ts +21 -19
  352. package/src/agent/storage.ts +1 -1
  353. package/src/client/PerpsClient.ts +569 -446
  354. package/src/client/createPerpsClient.ts +36 -11
  355. package/src/client/types.ts +84 -51
  356. package/src/errors/PerpsError.ts +3 -22
  357. package/src/errors/constants.ts +0 -11
  358. package/src/index.ts +70 -47
  359. package/src/realtime/PerpsWsClient.ts +47 -31
  360. package/src/realtime/hyperliquid/HyperliquidWsProvider.ts +203 -64
  361. package/src/realtime/hyperliquid/types.ts +8 -10
  362. package/src/services/createAction.ts +41 -0
  363. package/src/services/executeAction.ts +41 -0
  364. package/src/services/getAccount.ts +8 -8
  365. package/src/services/getActivity.ts +77 -0
  366. package/src/services/getAsset.ts +34 -0
  367. package/src/services/getAssets.ts +32 -0
  368. package/src/services/{getHistory.ts → getFills.ts} +23 -17
  369. package/src/services/getOhlcv.ts +5 -5
  370. package/src/services/getOrder.ts +5 -5
  371. package/src/services/getOrderbook.ts +5 -5
  372. package/src/services/getOrders.ts +45 -0
  373. package/src/services/getPositions.ts +45 -0
  374. package/src/services/getPrices.ts +6 -6
  375. package/src/services/{getDexes.ts → getProviders.ts} +10 -10
  376. package/src/utils/accountSummary.ts +124 -0
  377. package/src/utils/calculations.ts +209 -0
  378. package/src/utils/hyperliquid/index.ts +9 -0
  379. package/src/utils/hyperliquid/liquidation.ts +71 -0
  380. package/src/utils/hyperliquid/orderFormatting.ts +96 -0
  381. package/src/utils/orderClassification.ts +64 -0
  382. package/src/utils/parse.ts +28 -0
  383. package/src/utils/request.ts +22 -7
  384. package/src/utils/units.ts +32 -0
  385. package/src/utils/validation.ts +35 -0
  386. package/src/version.ts +1 -1
  387. package/dist/cjs/dex/hyperliquid.d.ts +0 -3
  388. package/dist/cjs/dex/hyperliquid.d.ts.map +0 -1
  389. package/dist/cjs/dex/hyperliquid.js +0 -21
  390. package/dist/cjs/dex/hyperliquid.js.map +0 -1
  391. package/dist/cjs/dex/registry.d.ts +0 -3
  392. package/dist/cjs/dex/registry.d.ts.map +0 -1
  393. package/dist/cjs/dex/registry.js +0 -16
  394. package/dist/cjs/dex/registry.js.map +0 -1
  395. package/dist/cjs/dex/types.d.ts +0 -13
  396. package/dist/cjs/dex/types.d.ts.map +0 -1
  397. package/dist/cjs/dex/types.js +0 -3
  398. package/dist/cjs/dex/types.js.map +0 -1
  399. package/dist/cjs/errors/AgentError.d.ts +0 -10
  400. package/dist/cjs/errors/AgentError.d.ts.map +0 -1
  401. package/dist/cjs/errors/AgentError.js +0 -23
  402. package/dist/cjs/errors/AgentError.js.map +0 -1
  403. package/dist/cjs/errors/HTTPError.d.ts +0 -11
  404. package/dist/cjs/errors/HTTPError.d.ts.map +0 -1
  405. package/dist/cjs/errors/HTTPError.js +0 -62
  406. package/dist/cjs/errors/HTTPError.js.map +0 -1
  407. package/dist/cjs/errors/PerpsSDKError.d.ts +0 -9
  408. package/dist/cjs/errors/PerpsSDKError.d.ts.map +0 -1
  409. package/dist/cjs/errors/PerpsSDKError.js +0 -36
  410. package/dist/cjs/errors/PerpsSDKError.js.map +0 -1
  411. package/dist/cjs/errors/ServerError.d.ts +0 -10
  412. package/dist/cjs/errors/ServerError.d.ts.map +0 -1
  413. package/dist/cjs/errors/ServerError.js +0 -24
  414. package/dist/cjs/errors/ServerError.js.map +0 -1
  415. package/dist/cjs/errors/ValidationError.d.ts +0 -9
  416. package/dist/cjs/errors/ValidationError.d.ts.map +0 -1
  417. package/dist/cjs/errors/ValidationError.js +0 -23
  418. package/dist/cjs/errors/ValidationError.js.map +0 -1
  419. package/dist/cjs/errors/utils/rootCause.d.ts +0 -6
  420. package/dist/cjs/errors/utils/rootCause.d.ts.map +0 -1
  421. package/dist/cjs/errors/utils/rootCause.js +0 -41
  422. package/dist/cjs/errors/utils/rootCause.js.map +0 -1
  423. package/dist/cjs/services/cancelOrder.d.ts +0 -10
  424. package/dist/cjs/services/cancelOrder.d.ts.map +0 -1
  425. package/dist/cjs/services/cancelOrder.js +0 -16
  426. package/dist/cjs/services/cancelOrder.js.map +0 -1
  427. package/dist/cjs/services/createAuthorization.d.ts +0 -10
  428. package/dist/cjs/services/createAuthorization.d.ts.map +0 -1
  429. package/dist/cjs/services/createAuthorization.js +0 -16
  430. package/dist/cjs/services/createAuthorization.js.map +0 -1
  431. package/dist/cjs/services/createOrder.d.ts +0 -21
  432. package/dist/cjs/services/createOrder.d.ts.map +0 -1
  433. package/dist/cjs/services/createOrder.js +0 -27
  434. package/dist/cjs/services/createOrder.js.map +0 -1
  435. package/dist/cjs/services/createWithdrawal.d.ts +0 -9
  436. package/dist/cjs/services/createWithdrawal.d.ts.map +0 -1
  437. package/dist/cjs/services/createWithdrawal.js +0 -15
  438. package/dist/cjs/services/createWithdrawal.js.map +0 -1
  439. package/dist/cjs/services/getDexes.d.ts +0 -4
  440. package/dist/cjs/services/getDexes.d.ts.map +0 -1
  441. package/dist/cjs/services/getDexes.js.map +0 -1
  442. package/dist/cjs/services/getHistory.d.ts +0 -10
  443. package/dist/cjs/services/getHistory.d.ts.map +0 -1
  444. package/dist/cjs/services/getHistory.js.map +0 -1
  445. package/dist/cjs/services/getMarket.d.ts +0 -8
  446. package/dist/cjs/services/getMarket.d.ts.map +0 -1
  447. package/dist/cjs/services/getMarket.js.map +0 -1
  448. package/dist/cjs/services/getMarkets.d.ts +0 -7
  449. package/dist/cjs/services/getMarkets.d.ts.map +0 -1
  450. package/dist/cjs/services/getMarkets.js.map +0 -1
  451. package/dist/cjs/services/submitAuthorization.d.ts +0 -10
  452. package/dist/cjs/services/submitAuthorization.d.ts.map +0 -1
  453. package/dist/cjs/services/submitAuthorization.js.map +0 -1
  454. package/dist/cjs/services/submitOrder.d.ts +0 -10
  455. package/dist/cjs/services/submitOrder.d.ts.map +0 -1
  456. package/dist/cjs/services/submitOrder.js.map +0 -1
  457. package/dist/cjs/services/submitWithdrawal.d.ts +0 -9
  458. package/dist/cjs/services/submitWithdrawal.d.ts.map +0 -1
  459. package/dist/cjs/services/submitWithdrawal.js +0 -15
  460. package/dist/cjs/services/submitWithdrawal.js.map +0 -1
  461. package/dist/esm/dex/hyperliquid.d.ts +0 -3
  462. package/dist/esm/dex/hyperliquid.d.ts.map +0 -1
  463. package/dist/esm/dex/hyperliquid.js +0 -19
  464. package/dist/esm/dex/hyperliquid.js.map +0 -1
  465. package/dist/esm/dex/registry.d.ts +0 -3
  466. package/dist/esm/dex/registry.d.ts.map +0 -1
  467. package/dist/esm/dex/registry.js +0 -13
  468. package/dist/esm/dex/registry.js.map +0 -1
  469. package/dist/esm/dex/types.d.ts +0 -15
  470. package/dist/esm/dex/types.d.ts.map +0 -1
  471. package/dist/esm/dex/types.js +0 -2
  472. package/dist/esm/dex/types.js.map +0 -1
  473. package/dist/esm/errors/AgentError.d.ts +0 -25
  474. package/dist/esm/errors/AgentError.d.ts.map +0 -1
  475. package/dist/esm/errors/AgentError.js +0 -35
  476. package/dist/esm/errors/AgentError.js.map +0 -1
  477. package/dist/esm/errors/HTTPError.d.ts +0 -11
  478. package/dist/esm/errors/HTTPError.d.ts.map +0 -1
  479. package/dist/esm/errors/HTTPError.js +0 -61
  480. package/dist/esm/errors/HTTPError.js.map +0 -1
  481. package/dist/esm/errors/PerpsSDKError.d.ts +0 -40
  482. package/dist/esm/errors/PerpsSDKError.d.ts.map +0 -1
  483. package/dist/esm/errors/PerpsSDKError.js +0 -67
  484. package/dist/esm/errors/PerpsSDKError.js.map +0 -1
  485. package/dist/esm/errors/ServerError.d.ts +0 -23
  486. package/dist/esm/errors/ServerError.d.ts.map +0 -1
  487. package/dist/esm/errors/ServerError.js +0 -34
  488. package/dist/esm/errors/ServerError.js.map +0 -1
  489. package/dist/esm/errors/ValidationError.d.ts +0 -23
  490. package/dist/esm/errors/ValidationError.d.ts.map +0 -1
  491. package/dist/esm/errors/ValidationError.js +0 -34
  492. package/dist/esm/errors/ValidationError.js.map +0 -1
  493. package/dist/esm/errors/utils/rootCause.d.ts +0 -71
  494. package/dist/esm/errors/utils/rootCause.d.ts.map +0 -1
  495. package/dist/esm/errors/utils/rootCause.js +0 -99
  496. package/dist/esm/errors/utils/rootCause.js.map +0 -1
  497. package/dist/esm/services/cancelOrder.d.ts +0 -51
  498. package/dist/esm/services/cancelOrder.d.ts.map +0 -1
  499. package/dist/esm/services/cancelOrder.js +0 -50
  500. package/dist/esm/services/cancelOrder.js.map +0 -1
  501. package/dist/esm/services/createAuthorization.d.ts +0 -51
  502. package/dist/esm/services/createAuthorization.d.ts.map +0 -1
  503. package/dist/esm/services/createAuthorization.js +0 -50
  504. package/dist/esm/services/createAuthorization.js.map +0 -1
  505. package/dist/esm/services/createOrder.d.ts +0 -74
  506. package/dist/esm/services/createOrder.d.ts.map +0 -1
  507. package/dist/esm/services/createOrder.js +0 -62
  508. package/dist/esm/services/createOrder.js.map +0 -1
  509. package/dist/esm/services/createWithdrawal.d.ts +0 -49
  510. package/dist/esm/services/createWithdrawal.d.ts.map +0 -1
  511. package/dist/esm/services/createWithdrawal.js +0 -49
  512. package/dist/esm/services/createWithdrawal.js.map +0 -1
  513. package/dist/esm/services/getDexes.d.ts +0 -20
  514. package/dist/esm/services/getDexes.d.ts.map +0 -1
  515. package/dist/esm/services/getDexes.js +0 -21
  516. package/dist/esm/services/getDexes.js.map +0 -1
  517. package/dist/esm/services/getHistory.d.ts.map +0 -1
  518. package/dist/esm/services/getHistory.js.map +0 -1
  519. package/dist/esm/services/getMarket.d.ts +0 -27
  520. package/dist/esm/services/getMarket.d.ts.map +0 -1
  521. package/dist/esm/services/getMarket.js +0 -25
  522. package/dist/esm/services/getMarket.js.map +0 -1
  523. package/dist/esm/services/getMarkets.d.ts +0 -25
  524. package/dist/esm/services/getMarkets.d.ts.map +0 -1
  525. package/dist/esm/services/getMarkets.js +0 -23
  526. package/dist/esm/services/getMarkets.js.map +0 -1
  527. package/dist/esm/services/submitAuthorization.d.ts +0 -42
  528. package/dist/esm/services/submitAuthorization.d.ts.map +0 -1
  529. package/dist/esm/services/submitAuthorization.js +0 -41
  530. package/dist/esm/services/submitAuthorization.js.map +0 -1
  531. package/dist/esm/services/submitOrder.d.ts +0 -44
  532. package/dist/esm/services/submitOrder.d.ts.map +0 -1
  533. package/dist/esm/services/submitOrder.js +0 -43
  534. package/dist/esm/services/submitOrder.js.map +0 -1
  535. package/dist/esm/services/submitWithdrawal.d.ts +0 -40
  536. package/dist/esm/services/submitWithdrawal.d.ts.map +0 -1
  537. package/dist/esm/services/submitWithdrawal.js +0 -40
  538. package/dist/esm/services/submitWithdrawal.js.map +0 -1
  539. package/dist/types/dex/hyperliquid.d.ts +0 -3
  540. package/dist/types/dex/hyperliquid.d.ts.map +0 -1
  541. package/dist/types/dex/registry.d.ts +0 -3
  542. package/dist/types/dex/registry.d.ts.map +0 -1
  543. package/dist/types/dex/types.d.ts +0 -15
  544. package/dist/types/dex/types.d.ts.map +0 -1
  545. package/dist/types/errors/AgentError.d.ts +0 -25
  546. package/dist/types/errors/AgentError.d.ts.map +0 -1
  547. package/dist/types/errors/HTTPError.d.ts +0 -11
  548. package/dist/types/errors/HTTPError.d.ts.map +0 -1
  549. package/dist/types/errors/PerpsSDKError.d.ts +0 -40
  550. package/dist/types/errors/PerpsSDKError.d.ts.map +0 -1
  551. package/dist/types/errors/ServerError.d.ts +0 -23
  552. package/dist/types/errors/ServerError.d.ts.map +0 -1
  553. package/dist/types/errors/ValidationError.d.ts +0 -23
  554. package/dist/types/errors/ValidationError.d.ts.map +0 -1
  555. package/dist/types/errors/utils/rootCause.d.ts +0 -71
  556. package/dist/types/errors/utils/rootCause.d.ts.map +0 -1
  557. package/dist/types/services/cancelOrder.d.ts +0 -51
  558. package/dist/types/services/cancelOrder.d.ts.map +0 -1
  559. package/dist/types/services/createAuthorization.d.ts +0 -51
  560. package/dist/types/services/createAuthorization.d.ts.map +0 -1
  561. package/dist/types/services/createOrder.d.ts +0 -74
  562. package/dist/types/services/createOrder.d.ts.map +0 -1
  563. package/dist/types/services/createWithdrawal.d.ts +0 -49
  564. package/dist/types/services/createWithdrawal.d.ts.map +0 -1
  565. package/dist/types/services/getDexes.d.ts +0 -20
  566. package/dist/types/services/getDexes.d.ts.map +0 -1
  567. package/dist/types/services/getHistory.d.ts.map +0 -1
  568. package/dist/types/services/getMarket.d.ts +0 -27
  569. package/dist/types/services/getMarket.d.ts.map +0 -1
  570. package/dist/types/services/getMarkets.d.ts +0 -25
  571. package/dist/types/services/getMarkets.d.ts.map +0 -1
  572. package/dist/types/services/submitAuthorization.d.ts +0 -42
  573. package/dist/types/services/submitAuthorization.d.ts.map +0 -1
  574. package/dist/types/services/submitOrder.d.ts +0 -44
  575. package/dist/types/services/submitOrder.d.ts.map +0 -1
  576. package/dist/types/services/submitWithdrawal.d.ts +0 -40
  577. package/dist/types/services/submitWithdrawal.d.ts.map +0 -1
  578. package/src/dex/hyperliquid.ts +0 -20
  579. package/src/dex/registry.ts +0 -15
  580. package/src/dex/types.ts +0 -16
  581. package/src/errors/AgentError.ts +0 -43
  582. package/src/errors/HTTPError.ts +0 -72
  583. package/src/errors/PerpsSDKError.ts +0 -79
  584. package/src/errors/ServerError.ts +0 -41
  585. package/src/errors/ValidationError.ts +0 -38
  586. package/src/errors/utils/rootCause.ts +0 -112
  587. package/src/services/cancelOrder.ts +0 -75
  588. package/src/services/createAuthorization.ts +0 -79
  589. package/src/services/createOrder.ts +0 -116
  590. package/src/services/createWithdrawal.ts +0 -76
  591. package/src/services/getMarket.ts +0 -41
  592. package/src/services/getMarkets.ts +0 -37
  593. package/src/services/submitAuthorization.ts +0 -70
  594. package/src/services/submitOrder.ts +0 -72
  595. package/src/services/submitWithdrawal.ts +0 -67
@@ -1,10 +1,30 @@
1
1
  import { PerpsErrorCode } from '@lifi/perps-types'
2
2
  import { AgentManager } from '../agent/AgentManager.js'
3
3
  import type { StorageAdapter } from '../agent/types.js'
4
- import { PerpsErrorName } from '../errors/constants.js'
5
4
  import { PerpsError } from '../errors/PerpsError.js'
6
5
 
7
- const DEFAULT_API_URL = 'https://li.quest/v1/perps'
6
+ export const DEFAULT_API_URL = 'https://develop.li.quest/v1/perps'
7
+
8
+ /**
9
+ * Per-provider configuration.
10
+ */
11
+ export interface ProviderConfig {
12
+ /** Markets to include. Filters visible assets and various API calls. */
13
+ markets?: string[]
14
+ }
15
+
16
+ /**
17
+ * Provider-specific configuration for Hyperliquid.
18
+ * @deprecated Use ProviderConfig instead — this alias exists for backwards compatibility.
19
+ */
20
+ export type HyperliquidConfig = ProviderConfig
21
+
22
+ /**
23
+ * Provider-specific configurations keyed by provider name.
24
+ */
25
+ export interface ProviderConfigs {
26
+ [provider: string]: ProviderConfig | undefined
27
+ }
8
28
 
9
29
  /**
10
30
  * Configuration options for creating a Perps SDK client.
@@ -12,9 +32,9 @@ const DEFAULT_API_URL = 'https://li.quest/v1/perps'
12
32
  export interface PerpsConfig {
13
33
  /** Integrator identifier (required) */
14
34
  integrator: string
15
- /** Optional API key for authenticated requests */
16
- apiKey?: string
17
- /** Base API URL. Defaults to https://li.quest/v1/perps */
35
+ /** API key for authenticated requests (get one at https://portal.li.fi/) */
36
+ apiKey: string
37
+ /** Base API URL. Defaults to DEFAULT_API_URL */
18
38
  apiUrl?: string
19
39
  /** Disable version update check in development mode */
20
40
  disableVersionCheck?: boolean
@@ -22,6 +42,8 @@ export interface PerpsConfig {
22
42
  storage?: StorageAdapter
23
43
  /** Optional request interceptor for custom handling */
24
44
  requestInterceptor?: RequestInterceptor
45
+ /** Provider-specific configuration */
46
+ providers?: ProviderConfigs
25
47
  }
26
48
 
27
49
  /**
@@ -30,14 +52,16 @@ export interface PerpsConfig {
30
52
  export interface PerpsBaseConfig {
31
53
  /** Integrator identifier (required) */
32
54
  integrator: string
33
- /** Optional API key for authenticated requests */
34
- apiKey?: string
55
+ /** API key for authenticated requests */
56
+ apiKey: string
35
57
  /** Resolved API URL (always set) */
36
58
  apiUrl: string
37
59
  /** Disable version update check in development mode */
38
60
  disableVersionCheck?: boolean
39
61
  /** Optional request interceptor for custom handling */
40
62
  requestInterceptor?: RequestInterceptor
63
+ /** Provider-specific configuration */
64
+ providers?: ProviderConfigs
41
65
  }
42
66
 
43
67
  /**
@@ -79,20 +103,20 @@ export interface PerpsSDKClient {
79
103
  * ```ts
80
104
  * const client = createPerpsClient({
81
105
  * integrator: 'my-app',
82
- * apiKey: 'optional-api-key',
106
+ * apiKey: 'your-api-key',
83
107
  * })
84
108
  *
85
109
  * // Use with service functions
86
- * const { dexes } = await getDexes(client)
110
+ * const { providers } = await getProviders(client)
87
111
  * ```
88
112
  */
89
113
  export function createPerpsClient(options: PerpsConfig): PerpsSDKClient {
90
114
  if (!options.integrator) {
91
115
  const error = new PerpsError(
92
- PerpsErrorCode.ValidationError,
116
+ PerpsErrorCode.SDKError,
93
117
  'Integrator is required. Please see documentation at https://docs.li.fi'
94
118
  )
95
- error.name = PerpsErrorName.ValidationError
119
+ error.tool = '@lifi/perps-sdk'
96
120
  throw error
97
121
  }
98
122
 
@@ -104,6 +128,7 @@ export function createPerpsClient(options: PerpsConfig): PerpsSDKClient {
104
128
  apiUrl,
105
129
  disableVersionCheck: options.disableVersionCheck,
106
130
  requestInterceptor: options.requestInterceptor,
131
+ providers: options.providers,
107
132
  }
108
133
 
109
134
  const agentManager = new AgentManager(options.storage)
@@ -1,22 +1,27 @@
1
1
  import type {
2
+ ActionStep,
2
3
  Address,
3
- AuthorizationAction,
4
- AuthorizationInput,
5
- AuthorizationsResponse,
4
+ AssetIdentity,
5
+ ExecuteActionResponse,
6
+ ModifyOrderInput,
6
7
  OrderSide,
7
8
  OrderType,
8
- SignedAuthorization,
9
+ SignedActionStep,
9
10
  TimeInForce,
10
11
  TriggerOrderInput,
11
- WithdrawalInput,
12
+ WithdrawalParams,
12
13
  } from '@lifi/perps-types'
13
14
  import type { StorageAdapter } from '../agent/types.js'
15
+ import type { ProviderConfigs } from './createPerpsClient.js'
14
16
 
15
17
  // Re-export the SDK client types from createPerpsClient
16
18
  export type {
19
+ HyperliquidConfig,
17
20
  PerpsBaseConfig,
18
21
  PerpsConfig,
19
22
  PerpsSDKClient,
23
+ ProviderConfig,
24
+ ProviderConfigs,
20
25
  RequestInterceptor,
21
26
  SDKRequestOptions,
22
27
  } from './createPerpsClient.js'
@@ -27,7 +32,10 @@ export type {
27
32
  * - `USER`: User wallet signs each action (requires wallet popup per action)
28
33
  * - `USER_AGENT`: SDK-generated agent signs actions (no popups after initial setup)
29
34
  */
30
- export type SigningMode = 'USER' | 'USER_AGENT'
35
+ export enum SigningMode {
36
+ USER = 'USER',
37
+ USER_AGENT = 'USER_AGENT',
38
+ }
31
39
 
32
40
  /**
33
41
  * Options for PerpsClient constructor.
@@ -35,40 +43,38 @@ export type SigningMode = 'USER' | 'USER_AGENT'
35
43
  export interface PerpsClientOptions {
36
44
  /** Integrator identifier (required) */
37
45
  integrator: string
38
- /** Optional API key for authenticated requests */
39
- apiKey?: string
40
- /** Base API URL. Defaults to https://li.quest/v1/perps */
46
+ /** API key for authenticated requests (get one at https://portal.li.fi/) */
47
+ apiKey: string
48
+ /** Base API URL. Defaults to DEFAULT_API_URL */
41
49
  apiUrl?: string
42
50
  /** Custom storage adapter for agent keys. Defaults to localStorage. */
43
51
  storage?: StorageAdapter
52
+ /** Provider-specific configuration */
53
+ providers?: ProviderConfigs
44
54
  }
45
55
 
46
56
  /**
47
- * Parameters for building authorization payloads.
57
+ * Parameters for checking prerequisites (previously: building authorization payloads).
48
58
  */
49
- export interface BuildAuthorizationParams {
50
- /** DEX to authorize */
51
- dex: string
59
+ export interface CheckPrerequisitesParams {
60
+ /** Provider to check prerequisites for */
61
+ provider: string
52
62
  /** User wallet address */
53
63
  address: Address
54
64
  /** Address of the signer (auto-set in USER_AGENT mode) */
55
65
  signerAddress?: Address
56
- /** Authorizations to create */
57
- authorizations: AuthorizationInput[]
58
66
  }
59
67
 
60
68
  /**
61
69
  * Parameters for placing an order.
62
70
  */
63
71
  export interface PlaceOrderParams {
64
- /** DEX to place order on */
65
- dex: string
72
+ /** Provider to place order on */
73
+ provider: string
66
74
  /** User wallet address */
67
75
  address: Address
68
- /** Client-provided order ID */
69
- clientOrderId?: string
70
- /** Market symbol */
71
- symbol: string
76
+ /** Asset identity */
77
+ asset: AssetIdentity
72
78
  /** Order side */
73
79
  side: OrderSide
74
80
  /** Order type */
@@ -91,24 +97,37 @@ export interface PlaceOrderParams {
91
97
  stopLoss?: TriggerOrderInput
92
98
  }
93
99
 
100
+ /**
101
+ * Parameters for placing trigger-only orders (TP/SL on existing positions).
102
+ * Sends a TRIGGER_ONLY order that skips the main order wire.
103
+ */
104
+ export interface PlaceTriggerOrderParams {
105
+ provider: string
106
+ address: Address
107
+ asset: AssetIdentity
108
+ side: OrderSide
109
+ takeProfit?: TriggerOrderInput
110
+ stopLoss?: TriggerOrderInput
111
+ }
112
+
94
113
  /**
95
114
  * Parameters for building a withdrawal payload.
96
115
  */
97
116
  export interface BuildWithdrawalParams {
98
- /** DEX to withdraw from */
99
- dex: string
117
+ /** Provider to withdraw from */
118
+ provider: string
100
119
  /** User wallet address (account owner) */
101
120
  address: Address
102
121
  /** Withdrawal details */
103
- withdrawal: WithdrawalInput
122
+ withdrawal: WithdrawalParams
104
123
  }
105
124
 
106
125
  /**
107
126
  * Parameters for canceling orders.
108
127
  */
109
128
  export interface CancelOrdersParams {
110
- /** DEX to cancel orders on */
111
- dex: string
129
+ /** Provider to cancel orders on */
130
+ provider: string
112
131
  /** User wallet address */
113
132
  address: Address
114
133
  /** Order IDs to cancel */
@@ -116,47 +135,61 @@ export interface CancelOrdersParams {
116
135
  }
117
136
 
118
137
  /**
119
- * Parameters for getRequiredAuthorizations().
138
+ * Parameters for modifying orders.
139
+ */
140
+ export interface ModifyOrdersParams {
141
+ /** Provider to modify orders on */
142
+ provider: string
143
+ /** User wallet address */
144
+ address: Address
145
+ /** Modifications to apply */
146
+ modifications: ModifyOrderInput[]
147
+ }
148
+
149
+ /**
150
+ * Parameters for checkPrerequisites().
120
151
  */
121
- export interface GetRequiredAuthorizationsParams {
122
- /** DEX to check authorizations for */
123
- dex: string
152
+ export interface GetPrerequisitesParams {
153
+ /** Provider to check prerequisites for */
154
+ provider: string
124
155
  /** User wallet address */
125
156
  address: Address
126
157
  }
127
158
 
128
159
  /**
129
- * Result from getRequiredAuthorizations().
160
+ * Result from checkPrerequisites().
130
161
  */
131
- export interface RequiredAuthorizationsResult {
132
- /** Authorization actions requiring user wallet signature (with typed data for signing) */
133
- userAuthorizations: AuthorizationAction[]
134
- /** Authorization actions the SDK auto-signs with the agent (with typed data) */
135
- agentAuthorizations: AuthorizationAction[]
136
- /** Whether all authorizations are already satisfied (ready to trade) */
162
+ export interface PrerequisitesResult {
163
+ /** Prerequisite steps requiring user wallet signature */
164
+ userPrerequisites: ActionStep[]
165
+ /** Prerequisite steps the SDK auto-signs with the agent */
166
+ agentPrerequisites: ActionStep[]
167
+ /** Whether all prerequisites are already satisfied (ready to trade) */
137
168
  isReady: boolean
138
169
  }
139
170
 
140
171
  /**
141
- * Parameters for executeAuthorizations().
172
+ * Parameters for executePrerequisites().
142
173
  */
143
- export interface ExecuteAuthorizationsParams {
144
- /** DEX to authorize */
145
- dex: string
174
+ export interface ExecutePrerequisitesParams {
175
+ /** Provider to authorize */
176
+ provider: string
146
177
  /** User wallet address */
147
178
  address: Address
148
- /** The result from getRequiredAuthorizations() */
149
- required: RequiredAuthorizationsResult
150
- /** User-signed actions corresponding to required.userAuthorizations */
151
- userSignedActions: SignedAuthorization[]
179
+ /** The result from checkPrerequisites() */
180
+ required: PrerequisitesResult
181
+ /** User-signed actions corresponding to required.userPrerequisites */
182
+ userSignedActions: SignedActionStep[]
152
183
  }
153
184
 
154
185
  /**
155
- * Result from executeAuthorizations().
186
+ * Result from executePrerequisites().
156
187
  */
157
- export interface ExecuteAuthorizationsResult {
158
- /** Results from user-signed authorization submission */
159
- userResults: AuthorizationsResponse
160
- /** Results from agent-signed authorization submission (if any) */
161
- agentResults?: AuthorizationsResponse
188
+ export interface ExecutePrerequisitesResult {
189
+ /** Results from user-signed prerequisite submission */
190
+ userResults: ExecuteActionResponse
191
+ /** Results from agent-signed prerequisite submission (if any) */
192
+ agentResults?: ExecuteActionResponse
193
+ /** Fallback user prerequisites when agent prerequisites fail (e.g. USER_SET_ABSTRACTION when AGENT_SET_ABSTRACTION cannot upgrade from dexAbstraction) */
194
+ fallbackUserPrerequisites?: ActionStep[]
162
195
  }
@@ -1,34 +1,15 @@
1
1
  import { PerpsErrorCode } from '@lifi/perps-types'
2
- import { version } from '../version.js'
3
- import { PerpsErrorName } from './constants.js'
4
2
 
5
3
  export class PerpsError extends Error {
6
4
  code: PerpsErrorCode
7
- override name = PerpsErrorName.PerpsError
5
+ override name = 'PerpsError'
6
+ tool?: string
8
7
 
9
8
  constructor(
10
9
  code: PerpsErrorCode = PerpsErrorCode.DefaultError,
11
10
  message = 'Unknown error occurred'
12
11
  ) {
13
- const errorMessage = `[${PerpsErrorName.PerpsError}] ${message}\nLI.FI Perps SDK version: ${version}`
14
- super(errorMessage)
12
+ super(message)
15
13
  this.code = code
16
- this.name = PerpsErrorName.PerpsError
17
- }
18
-
19
- static fromError(error: unknown, defaultCode?: PerpsErrorCode): PerpsError {
20
- if (error instanceof PerpsError) {
21
- return error
22
- }
23
- if (error instanceof Error) {
24
- return new PerpsError(
25
- defaultCode ?? PerpsErrorCode.DefaultError,
26
- error.message
27
- )
28
- }
29
- return new PerpsError(
30
- defaultCode ?? PerpsErrorCode.DefaultError,
31
- String(error)
32
- )
33
14
  }
34
15
  }
@@ -1,15 +1,4 @@
1
- export enum PerpsErrorName {
2
- PerpsError = 'PerpsError',
3
- HTTPError = 'HTTPError',
4
- ValidationError = 'ValidationError',
5
- ServerError = 'ServerError',
6
- ConfigError = 'ConfigError',
7
- AgentError = 'AgentError',
8
- }
9
-
10
1
  export enum PerpsErrorMessage {
11
- UnknownError = 'Unknown error occurred.',
12
- ConfigNotInitialized = 'SDK not configured. Call createPerpsConfig() first.',
13
2
  AgentNotFound = 'Agent not found. Call setSigningMode() first.',
14
3
  InvalidSigningMode = 'Invalid signing mode for this operation.',
15
4
  }
package/src/index.ts CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  // Types
4
4
  export * from '@lifi/perps-types'
5
+ // Utils
6
+ // biome-ignore lint/correctness/useImportExtensions: package subpath export
7
+ export { HlAbstractionMode } from '@lifi/perps-types/providers/hyperliquid'
5
8
  // Agent
6
9
  export { AgentManager } from './agent/AgentManager.js'
7
10
  export { createMemoryStorage, localStorageAdapter } from './agent/storage.js'
@@ -13,76 +16,96 @@ export type {
13
16
  RequestInterceptor,
14
17
  SDKRequestOptions,
15
18
  } from './client/createPerpsClient.js'
16
- export { createPerpsClient } from './client/createPerpsClient.js'
19
+ export {
20
+ createPerpsClient,
21
+ DEFAULT_API_URL,
22
+ } from './client/createPerpsClient.js'
17
23
  export { PerpsClient } from './client/PerpsClient.js'
18
24
  export type {
19
- BuildAuthorizationParams,
20
25
  BuildWithdrawalParams,
21
26
  CancelOrdersParams,
22
- ExecuteAuthorizationsParams,
23
- ExecuteAuthorizationsResult,
24
- GetRequiredAuthorizationsParams,
27
+ CheckPrerequisitesParams,
28
+ ExecutePrerequisitesParams,
29
+ ExecutePrerequisitesResult,
30
+ GetPrerequisitesParams,
31
+ HyperliquidConfig,
32
+ ModifyOrdersParams,
25
33
  PerpsClientOptions,
26
- PlaceOrderParams,
27
- RequiredAuthorizationsResult,
28
- SigningMode,
34
+ PlaceOrderParams as ClientPlaceOrderParams,
35
+ PlaceTriggerOrderParams as ClientPlaceTriggerOrderParams,
36
+ PrerequisitesResult,
37
+ ProviderConfig,
38
+ ProviderConfigs,
29
39
  } from './client/types.js'
30
- // Dex
31
- export { getDexAuthProvider } from './dex/registry.js'
32
- export type { DexAuthInputs, DexAuthProvider } from './dex/types.js'
33
- export { AgentError } from './errors/AgentError.js'
34
- export { PerpsErrorMessage, PerpsErrorName } from './errors/constants.js'
40
+ export { SigningMode } from './client/types.js'
35
41
  // Errors
36
- export { HTTPError } from './errors/HTTPError.js'
42
+ export { PerpsErrorMessage } from './errors/constants.js'
37
43
  export { PerpsError } from './errors/PerpsError.js'
38
- export { PerpsSDKError } from './errors/PerpsSDKError.js'
39
- export { ServerError } from './errors/ServerError.js'
40
- export {
41
- findErrorType,
42
- getErrorChain,
43
- getRootCause,
44
- getRootCauseMessage,
45
- hasErrorType,
46
- } from './errors/utils/rootCause.js'
47
- export { ValidationError } from './errors/ValidationError.js'
48
44
  // Realtime
49
45
  export { PerpsWsClient } from './realtime/PerpsWsClient.js'
50
46
  export type { EventForSubscription } from './realtime/types.js'
51
- export type { CancelOrderParams } from './services/cancelOrder.js'
52
47
  // Services
53
- export { cancelOrder } from './services/cancelOrder.js'
54
- export type { CreateAuthorizationParams } from './services/createAuthorization.js'
55
- export { createAuthorization } from './services/createAuthorization.js'
56
- export type { CreateOrderParams } from './services/createOrder.js'
57
- export { createOrder } from './services/createOrder.js'
58
- export type { CreateWithdrawalParams } from './services/createWithdrawal.js'
59
- export { createWithdrawal } from './services/createWithdrawal.js'
48
+ export type { CreateActionParams } from './services/createAction.js'
49
+ export { createAction } from './services/createAction.js'
50
+ export type { ExecuteActionParams } from './services/executeAction.js'
51
+ export { executeAction } from './services/executeAction.js'
60
52
  export type { GetAccountParams } from './services/getAccount.js'
61
53
  export { getAccount } from './services/getAccount.js'
62
- export { getDexes } from './services/getDexes.js'
63
- export type { GetHistoryParams } from './services/getHistory.js'
64
- export { getHistory } from './services/getHistory.js'
65
- export type { GetMarketParams } from './services/getMarket.js'
66
- export { getMarket } from './services/getMarket.js'
67
- export type { GetMarketsParams } from './services/getMarkets.js'
68
- export { getMarkets } from './services/getMarkets.js'
54
+ export type { GetActivityParams } from './services/getActivity.js'
55
+ export { getActivity } from './services/getActivity.js'
56
+ export type { GetAssetParams } from './services/getAsset.js'
57
+ export { getAsset } from './services/getAsset.js'
58
+ export type { GetAssetsParams } from './services/getAssets.js'
59
+ export { getAssets } from './services/getAssets.js'
60
+ export type { GetFillsParams } from './services/getFills.js'
61
+ export { getFills } from './services/getFills.js'
69
62
  export type { GetOhlcvParams } from './services/getOhlcv.js'
70
63
  export { getOhlcv } from './services/getOhlcv.js'
71
64
  export type { GetOrderParams } from './services/getOrder.js'
72
65
  export { getOrder } from './services/getOrder.js'
73
66
  export type { GetOrderbookParams } from './services/getOrderbook.js'
74
67
  export { getOrderbook } from './services/getOrderbook.js'
68
+ export type { GetOrdersParams } from './services/getOrders.js'
69
+ export { getOrders } from './services/getOrders.js'
70
+ export type { GetPositionsParams } from './services/getPositions.js'
71
+ export { getPositions } from './services/getPositions.js'
75
72
  export type { GetPricesParams } from './services/getPrices.js'
76
73
  export { getPrices } from './services/getPrices.js'
77
- export type { SubmitAuthorizationParams } from './services/submitAuthorization.js'
78
- export { submitAuthorization } from './services/submitAuthorization.js'
79
- export type { SubmitOrderParams } from './services/submitOrder.js'
80
- export { submitOrder } from './services/submitOrder.js'
81
- export type { SubmitWithdrawalParams } from './services/submitWithdrawal.js'
82
- export { submitWithdrawal } from './services/submitWithdrawal.js'
83
-
84
- // Utils
74
+ export { getProviders } from './services/getProviders.js'
75
+ export type { AccountSummary } from './utils/accountSummary.js'
76
+ export { calculateAccountSummary } from './utils/accountSummary.js'
77
+ export type { ExpectedPnl } from './utils/calculations.js'
78
+ export {
79
+ applySlippage,
80
+ calculateExpectedPnl,
81
+ calculateNotionalValue,
82
+ calculatePositionSize,
83
+ calculateRealizedPnlPercent,
84
+ calculateRequiredMargin,
85
+ calculateRoe,
86
+ calculateUnrealizedPnl,
87
+ estimateFees,
88
+ percentFromPrice,
89
+ priceFromPercent,
90
+ } from './utils/calculations.js'
91
+ export {
92
+ calculateLiquidationPrice,
93
+ calculateMaintenanceMarginRate,
94
+ formatOrderPrice,
95
+ formatOrderSize,
96
+ getMaxPriceDecimals,
97
+ } from './utils/hyperliquid/index.js'
98
+ export {
99
+ classifyFill,
100
+ FillClassification,
101
+ isStopLossOrder,
102
+ isTakeProfitOrder,
103
+ isTpSlOrder,
104
+ } from './utils/orderClassification.js'
105
+ export { stringToFloat } from './utils/parse.js'
85
106
  export { signTypedData } from './utils/signTypedData.js'
107
+ export { fromBaseUnits, fromBaseUnitsNumber } from './utils/units.js'
108
+ export { validateMargin } from './utils/validation.js'
86
109
 
87
110
  // Version
88
111
  export { name, version } from './version.js'
@@ -1,14 +1,17 @@
1
1
  import type { Subscription } from '@lifi/perps-types'
2
2
  import type { PerpsSDKClient } from '../client/createPerpsClient.js'
3
- import { getDexes } from '../services/getDexes.js'
4
- import { getMarkets } from '../services/getMarkets.js'
3
+ import { getProviders } from '../services/getProviders.js'
5
4
  import { HyperliquidWsProvider } from './hyperliquid/HyperliquidWsProvider.js'
6
- import type { EventForSubscription, SubscriptionListener } from './types.js'
5
+ import type {
6
+ EventForSubscription,
7
+ SubscriptionListener,
8
+ WsProvider,
9
+ } from './types.js'
7
10
 
8
11
  export class PerpsWsClient {
9
12
  private readonly client: PerpsSDKClient
10
- private providers = new Map<string, HyperliquidWsProvider>()
11
- private initPromises = new Map<string, Promise<HyperliquidWsProvider>>()
13
+ private providers = new Map<string, WsProvider>()
14
+ private initPromises = new Map<string, Promise<WsProvider>>()
12
15
 
13
16
  constructor(client: PerpsSDKClient) {
14
17
  this.client = client
@@ -18,7 +21,8 @@ export class PerpsWsClient {
18
21
  sub: S,
19
22
  listener: (event: EventForSubscription<S>) => void
20
23
  ): Promise<() => void> {
21
- const provider = await this.getOrCreateProvider(sub.dex)
24
+ const providerKey = sub.dex
25
+ const provider = await this.getOrCreateProvider(providerKey)
22
26
  return provider.subscribe(sub, listener as SubscriptionListener)
23
27
  }
24
28
 
@@ -30,44 +34,56 @@ export class PerpsWsClient {
30
34
  this.initPromises.clear()
31
35
  }
32
36
 
33
- private async getOrCreateProvider(
34
- dex: string
35
- ): Promise<HyperliquidWsProvider> {
36
- const existing = this.providers.get(dex)
37
+ private async getOrCreateProvider(provider: string): Promise<WsProvider> {
38
+ const existing = this.providers.get(provider)
37
39
  if (existing) {
38
40
  return existing
39
41
  }
40
42
 
41
- let initPromise = this.initPromises.get(dex)
43
+ let initPromise = this.initPromises.get(provider)
42
44
  if (!initPromise) {
43
- initPromise = this.initProvider(dex)
44
- this.initPromises.set(dex, initPromise)
45
+ initPromise = this.initProvider(provider)
46
+ this.initPromises.set(provider, initPromise)
45
47
  }
46
48
  return initPromise
47
49
  }
48
50
 
49
- private async initProvider(dex: string): Promise<HyperliquidWsProvider> {
50
- const [{ dexes }, { markets }] = await Promise.all([
51
- getDexes(this.client),
52
- getMarkets(this.client, { dex }),
53
- ])
51
+ private async initProvider(provider: string): Promise<WsProvider> {
52
+ const { providers } = await getProviders(this.client)
54
53
 
55
- const dexInfo = dexes.find((d) => d.key === dex)
56
- if (!dexInfo?.wsUrl) {
57
- throw new Error(`No WebSocket URL found for dex: ${dex}`)
54
+ const providerInfo = providers.find((d) => d.key === provider)
55
+ if (!providerInfo?.wsUrl) {
56
+ throw new Error(`No WebSocket URL found for provider: ${provider}`)
58
57
  }
59
58
 
60
- const assetIdLookup = new Map<string, number>()
61
- for (const m of markets) {
62
- assetIdLookup.set(m.symbol, m.assetId)
63
- }
59
+ const allMarkets = (providerInfo.markets ?? []) as Array<{
60
+ id: string
61
+ }>
62
+ const providerConfig = this.client.config.providers?.[provider]
63
+ const configuredMarkets = providerConfig?.markets
64
+ const filteredMarkets = configuredMarkets
65
+ ? allMarkets.filter((m) => configuredMarkets.includes(m.id))
66
+ : allMarkets
67
+ const subProviders = filteredMarkets
68
+ .map((m) => m.id)
69
+ .filter((id) => id !== provider && id !== 'spot')
64
70
 
65
- const provider = new HyperliquidWsProvider(
66
- dexInfo.wsUrl,
67
- dex,
68
- assetIdLookup
71
+ const wsProvider = this.createWsProvider(
72
+ provider,
73
+ providerInfo.wsUrl,
74
+ subProviders
69
75
  )
70
- this.providers.set(dex, provider)
71
- return provider
76
+ this.providers.set(provider, wsProvider)
77
+ return wsProvider
78
+ }
79
+
80
+ private createWsProvider(
81
+ provider: string,
82
+ wsUrl: string,
83
+ subProviders: string[]
84
+ ): WsProvider {
85
+ // Currently only Hyperliquid has a WS implementation.
86
+ // Future providers can be added here with their own WsProvider classes.
87
+ return new HyperliquidWsProvider(wsUrl, provider, subProviders)
72
88
  }
73
89
  }