@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,72 +0,0 @@
1
- import type { PerpsErrorBody } from '@lifi/perps-types'
2
- import { PerpsErrorCode } from '@lifi/perps-types'
3
- import { PerpsErrorName } from './constants.js'
4
- import { PerpsError } from './PerpsError.js'
5
-
6
- const statusCodeToErrorCode = new Map<number, PerpsErrorCode>([
7
- [400, PerpsErrorCode.ValidationError],
8
- [401, PerpsErrorCode.SignatureInvalid],
9
- [403, PerpsErrorCode.AgentUnauthorized],
10
- [404, PerpsErrorCode.MarketNotFound],
11
- [422, PerpsErrorCode.ValidationError],
12
- [424, PerpsErrorCode.ThirdPartyError],
13
- [429, PerpsErrorCode.ServerError],
14
- [500, PerpsErrorCode.ServerError],
15
- [502, PerpsErrorCode.ServerError],
16
- [503, PerpsErrorCode.ServerError],
17
- [504, PerpsErrorCode.TimeoutError],
18
- ])
19
-
20
- function getErrorCodeFromStatus(status: number): PerpsErrorCode {
21
- return statusCodeToErrorCode.get(status) ?? PerpsErrorCode.ServerError
22
- }
23
-
24
- function createInitialMessage(response: Response): string {
25
- const statusCode =
26
- response.status || response.status === 0 ? response.status : ''
27
- const title = response.statusText || ''
28
- const status = `${statusCode} ${title}`.trim()
29
- const reason = status ? `status code ${status}` : 'an unknown error'
30
- return `Request failed with ${reason}`
31
- }
32
-
33
- export class HTTPError extends PerpsError {
34
- response: Response
35
- status: number
36
- url: string
37
- responseBody?: PerpsErrorBody
38
-
39
- constructor(response: Response, url: string) {
40
- const code = getErrorCodeFromStatus(response.status)
41
- const message = createInitialMessage(response)
42
-
43
- super(code, message)
44
-
45
- this.name = PerpsErrorName.HTTPError
46
- this.response = response
47
- this.status = response.status
48
- this.url = url
49
- }
50
-
51
- async buildAdditionalDetails(): Promise<this> {
52
- try {
53
- this.responseBody = (await this.response.json()) as PerpsErrorBody
54
-
55
- if (this.responseBody) {
56
- // Update code from response body if available
57
- if (this.responseBody.code) {
58
- this.code = this.responseBody.code
59
- }
60
-
61
- // Append server message
62
- if (this.responseBody.message) {
63
- this.message = `${this.message}. ${this.responseBody.message}`
64
- }
65
- }
66
- } catch {
67
- // Response body parsing failed - use defaults
68
- }
69
-
70
- return this
71
- }
72
- }
@@ -1,79 +0,0 @@
1
- import { PerpsErrorCode } from '@lifi/perps-types'
2
- import { version } from '../version.js'
3
- import { PerpsError } from './PerpsError.js'
4
-
5
- const PERPS_SDK_ERROR_NAME = 'PerpsSDKError'
6
-
7
- /**
8
- * Top-level SDK error that wraps all other error types.
9
- * This is the public-facing error type for the SDK.
10
- *
11
- * PerpsSDKError always includes:
12
- * - A consistent error message format with SDK version
13
- * - Access to the root cause error via the `cause` property
14
- * - Stack trace preservation
15
- *
16
- * @example
17
- * ```ts
18
- * try {
19
- * await getDexes(client)
20
- * } catch (error) {
21
- * if (error instanceof PerpsSDKError) {
22
- * console.log(error.message) // [PerpsSDKError] message\nSDK version: X
23
- * console.log(error.cause) // Original error
24
- * console.log(error.code) // Numeric error code
25
- * }
26
- * }
27
- * ```
28
- */
29
- export class PerpsSDKError extends Error {
30
- override name = PERPS_SDK_ERROR_NAME
31
-
32
- /** Numeric error code from PerpsErrorCode enum */
33
- code: PerpsErrorCode
34
-
35
- /** Original cause of the error */
36
- override cause?: Error
37
-
38
- constructor(error: Error, message?: string) {
39
- // Determine the code
40
- const code =
41
- error instanceof PerpsError ? error.code : PerpsErrorCode.DefaultError
42
-
43
- // Build the message
44
- const errorMessage = message ?? error.message
45
- const formattedMessage = `[${PERPS_SDK_ERROR_NAME}] ${errorMessage}\nLI.FI Perps SDK version: ${version}`
46
-
47
- super(formattedMessage)
48
-
49
- this.name = PERPS_SDK_ERROR_NAME
50
- this.code = code
51
- this.cause = error
52
-
53
- // Preserve the original stack trace if available
54
- if (error.stack) {
55
- this.stack = `${this.stack}\nCaused by: ${error.stack}`
56
- }
57
- }
58
-
59
- /**
60
- * Wrap any error in a PerpsSDKError.
61
- *
62
- * @param error - The error to wrap
63
- * @param message - Optional custom message
64
- * @returns PerpsSDKError instance
65
- */
66
- static wrap(error: unknown, message?: string): PerpsSDKError {
67
- if (error instanceof PerpsSDKError) {
68
- return error
69
- }
70
-
71
- if (error instanceof Error) {
72
- return new PerpsSDKError(error, message)
73
- }
74
-
75
- // Convert non-Error to Error
76
- const wrappedError = new Error(String(error))
77
- return new PerpsSDKError(wrappedError, message)
78
- }
79
- }
@@ -1,41 +0,0 @@
1
- import { PerpsErrorCode } from '@lifi/perps-types'
2
- import { version } from '../version.js'
3
- import { PerpsErrorName } from './constants.js'
4
- import { PerpsError } from './PerpsError.js'
5
-
6
- /**
7
- * Error thrown when server-side operations fail (network errors, timeouts, etc.)
8
- */
9
- export class ServerError extends PerpsError {
10
- override name = PerpsErrorName.ServerError
11
-
12
- constructor(message: string, code = PerpsErrorCode.ServerError) {
13
- super(code, message)
14
- this.name = PerpsErrorName.ServerError
15
-
16
- // Override message format
17
- this.message = `[${PerpsErrorName.ServerError}] ${message}\nLI.FI Perps SDK version: ${version}`
18
- }
19
-
20
- /**
21
- * Create a ServerError for a network failure.
22
- *
23
- * @param cause - The original error
24
- */
25
- static networkError(cause?: Error): ServerError {
26
- const message = cause?.message ?? 'Network request failed'
27
- return new ServerError(message)
28
- }
29
-
30
- /**
31
- * Create a ServerError for a timeout.
32
- *
33
- * @param operation - The operation that timed out
34
- */
35
- static timeout(operation: string): ServerError {
36
- return new ServerError(
37
- `${operation} timed out`,
38
- PerpsErrorCode.TimeoutError
39
- )
40
- }
41
- }
@@ -1,38 +0,0 @@
1
- import { PerpsErrorCode } from '@lifi/perps-types'
2
- import { version } from '../version.js'
3
- import { PerpsErrorName } from './constants.js'
4
- import { PerpsError } from './PerpsError.js'
5
-
6
- /**
7
- * Error thrown when validation fails (invalid parameters, missing required fields, etc.)
8
- */
9
- export class ValidationError extends PerpsError {
10
- override name = PerpsErrorName.ValidationError
11
-
12
- constructor(message: string) {
13
- super(PerpsErrorCode.ValidationError, message)
14
- this.name = PerpsErrorName.ValidationError
15
-
16
- // Override message format
17
- this.message = `[${PerpsErrorName.ValidationError}] ${message}\nLI.FI Perps SDK version: ${version}`
18
- }
19
-
20
- /**
21
- * Create a ValidationError from a validation failure.
22
- *
23
- * @param field - The field that failed validation
24
- * @param reason - The reason for validation failure
25
- */
26
- static field(field: string, reason: string): ValidationError {
27
- return new ValidationError(`Invalid ${field}: ${reason}`)
28
- }
29
-
30
- /**
31
- * Create a ValidationError for a missing required field.
32
- *
33
- * @param field - The name of the missing field
34
- */
35
- static required(field: string): ValidationError {
36
- return new ValidationError(`${field} is required`)
37
- }
38
- }
@@ -1,112 +0,0 @@
1
- /**
2
- * Get the root cause of an error by following the cause chain.
3
- *
4
- * @param error - The error to get the root cause of
5
- * @returns The root cause error, or the original error if no cause chain
6
- *
7
- * @example
8
- * ```ts
9
- * const wrapper = new PerpsSDKError(new HTTPError(response, url))
10
- * const root = getRootCause(wrapper) // Returns the HTTPError
11
- * ```
12
- */
13
- export function getRootCause(error: Error): Error {
14
- let current: Error = error
15
- let iterations = 0
16
- const maxIterations = 100 // Prevent infinite loops
17
-
18
- while (current.cause instanceof Error && iterations < maxIterations) {
19
- current = current.cause
20
- iterations++
21
- }
22
-
23
- return current
24
- }
25
-
26
- /**
27
- * Get the message from the root cause of an error.
28
- *
29
- * @param error - The error to get the root cause message from
30
- * @returns The root cause message
31
- *
32
- * @example
33
- * ```ts
34
- * const wrapper = new PerpsSDKError(new HTTPError(response, url))
35
- * const message = getRootCauseMessage(wrapper) // Returns the HTTPError's message
36
- * ```
37
- */
38
- export function getRootCauseMessage(error: Error): string {
39
- return getRootCause(error).message
40
- }
41
-
42
- /**
43
- * Get the full error chain as an array.
44
- *
45
- * @param error - The error to get the chain from
46
- * @returns Array of errors from outermost to root cause
47
- *
48
- * @example
49
- * ```ts
50
- * const chain = getErrorChain(sdkError)
51
- * // [PerpsSDKError, HTTPError, ...]
52
- * ```
53
- */
54
- export function getErrorChain(error: Error): Error[] {
55
- const chain: Error[] = [error]
56
- let current = error
57
- let iterations = 0
58
- const maxIterations = 100
59
-
60
- while (current.cause instanceof Error && iterations < maxIterations) {
61
- chain.push(current.cause)
62
- current = current.cause
63
- iterations++
64
- }
65
-
66
- return chain
67
- }
68
-
69
- /**
70
- * Check if an error chain contains an error of a specific type.
71
- *
72
- * @param error - The error to check
73
- * @param ErrorClass - The error class to look for
74
- * @returns True if the chain contains an error of the specified type
75
- *
76
- * @example
77
- * ```ts
78
- * if (hasErrorType(error, HTTPError)) {
79
- * // Handle HTTP error specifically
80
- * }
81
- * ```
82
- */
83
- export function hasErrorType<T extends Error>(
84
- error: Error,
85
- ErrorClass: new (...args: any[]) => T
86
- ): boolean {
87
- const chain = getErrorChain(error)
88
- return chain.some((e) => e instanceof ErrorClass)
89
- }
90
-
91
- /**
92
- * Find the first error of a specific type in the error chain.
93
- *
94
- * @param error - The error to search
95
- * @param ErrorClass - The error class to find
96
- * @returns The first matching error, or undefined if not found
97
- *
98
- * @example
99
- * ```ts
100
- * const httpError = findErrorType(error, HTTPError)
101
- * if (httpError) {
102
- * console.log(httpError.status)
103
- * }
104
- * ```
105
- */
106
- export function findErrorType<T extends Error>(
107
- error: Error,
108
- ErrorClass: new (...args: any[]) => T
109
- ): T | undefined {
110
- const chain = getErrorChain(error)
111
- return chain.find((e): e is T => e instanceof ErrorClass)
112
- }
@@ -1,75 +0,0 @@
1
- import type { Address, CancelOrderPayloadResponse } from '@lifi/perps-types'
2
- import type {
3
- PerpsSDKClient,
4
- SDKRequestOptions,
5
- } from '../client/createPerpsClient.js'
6
- import { request } from '../utils/request.js'
7
-
8
- export interface CancelOrderParams {
9
- /** DEX to cancel orders on (e.g., 'hyperliquid') */
10
- dex: string
11
- /** Wallet address */
12
- address: Address
13
- /** Address of the signer (for agent mode, this is the agent address) */
14
- signerAddress?: Address
15
- /** Order IDs to cancel */
16
- ids: string[]
17
- }
18
-
19
- /**
20
- * Create cancel order payloads for signing.
21
- * Returns typed data that must be signed by the user or agent.
22
- *
23
- * @param client - The SDK client instance
24
- * @param params - Request parameters
25
- * @param options - Request options (e.g., AbortSignal)
26
- * @returns Cancel actions with typed data for signing
27
- * @throws {HTTPError} On API error responses
28
- * @throws {PerpsError} On network or parsing errors
29
- *
30
- * @example
31
- * ```ts
32
- * const client = createPerpsClient({ integrator: 'my-app' })
33
- * const { actions } = await cancelOrder(client, {
34
- * dex: 'hyperliquid',
35
- * address: '0x1234...',
36
- * ids: ['order1', 'order2']
37
- * })
38
- *
39
- * // Sign with agent key or user wallet
40
- * const signedActions = await Promise.all(
41
- * actions.map(async (a) => ({
42
- * action: a.action,
43
- * typedData: a.typedData,
44
- * signature: await signTypedData(agentPrivateKey, a.typedData)
45
- * }))
46
- * )
47
- *
48
- * // Submit the signed cancellation
49
- * await submitOrder(client, {
50
- * dex: 'hyperliquid',
51
- * address: '0x1234...',
52
- * actions: signedActions
53
- * })
54
- * ```
55
- */
56
- export async function cancelOrder(
57
- client: PerpsSDKClient,
58
- params: CancelOrderParams,
59
- options?: SDKRequestOptions
60
- ): Promise<CancelOrderPayloadResponse> {
61
- return request<CancelOrderPayloadResponse>(
62
- client.config,
63
- `${client.config.apiUrl}/cancelOrder`,
64
- {
65
- method: 'POST',
66
- body: JSON.stringify({
67
- dex: params.dex,
68
- address: params.address,
69
- signerAddress: params.signerAddress,
70
- ids: params.ids,
71
- }),
72
- },
73
- options
74
- )
75
- }
@@ -1,79 +0,0 @@
1
- import type {
2
- Address,
3
- AuthorizationInput,
4
- CreateAuthorizationResponse,
5
- } from '@lifi/perps-types'
6
- import type {
7
- PerpsSDKClient,
8
- SDKRequestOptions,
9
- } from '../client/createPerpsClient.js'
10
- import { request } from '../utils/request.js'
11
-
12
- export interface CreateAuthorizationParams {
13
- /** DEX to authorize (e.g., 'hyperliquid') */
14
- dex: string
15
- /** Wallet address */
16
- address: Address
17
- /** Address of the signer (for agent mode, this is the agent address) */
18
- signerAddress?: Address
19
- /** List of authorizations to create */
20
- authorizations: AuthorizationInput[]
21
- }
22
-
23
- /**
24
- * Create authorization payloads for signing.
25
- * Returns typed data that must be signed by the user or agent.
26
- *
27
- * @param client - The SDK client instance
28
- * @param params - Request parameters
29
- * @param options - Request options (e.g., AbortSignal)
30
- * @returns Authorization actions with typed data for signing
31
- * @throws {HTTPError} On API error responses
32
- * @throws {PerpsError} On network or parsing errors
33
- *
34
- * @remarks
35
- * The example below uses Hyperliquid authorization keys. Use `getDexes()` to discover
36
- * available authorizations for each DEX.
37
- *
38
- * @example
39
- * ```ts
40
- * const client = createPerpsClient({ integrator: 'my-app' })
41
- * const { actions } = await createAuthorization(client, {
42
- * dex: 'hyperliquid',
43
- * address: '0x1234...',
44
- * authorizations: [
45
- * { key: 'ApproveAgent', params: { agentAddress: '0xabcd...' } },
46
- * { key: 'ApproveBuilderFee' }
47
- * ]
48
- * })
49
- *
50
- * // Sign each action's typedData with the user's wallet
51
- * const signedActions = await Promise.all(
52
- * actions.map(async (a) => ({
53
- * action: a.action,
54
- * typedData: a.typedData,
55
- * signature: await walletClient.signTypedData(a.typedData)
56
- * }))
57
- * )
58
- * ```
59
- */
60
- export async function createAuthorization(
61
- client: PerpsSDKClient,
62
- params: CreateAuthorizationParams,
63
- options?: SDKRequestOptions
64
- ): Promise<CreateAuthorizationResponse> {
65
- return request<CreateAuthorizationResponse>(
66
- client.config,
67
- `${client.config.apiUrl}/createAuthorization`,
68
- {
69
- method: 'POST',
70
- body: JSON.stringify({
71
- dex: params.dex,
72
- address: params.address,
73
- signerAddress: params.signerAddress,
74
- authorizations: params.authorizations,
75
- }),
76
- },
77
- options
78
- )
79
- }
@@ -1,116 +0,0 @@
1
- import type {
2
- Address,
3
- CreateOrderResponse,
4
- OrderSide,
5
- OrderType,
6
- TimeInForce,
7
- TriggerOrderInput,
8
- } from '@lifi/perps-types'
9
- import type {
10
- PerpsSDKClient,
11
- SDKRequestOptions,
12
- } from '../client/createPerpsClient.js'
13
- import { request } from '../utils/request.js'
14
-
15
- export interface CreateOrderParams {
16
- /** DEX to place order on (e.g., 'hyperliquid') */
17
- dex: string
18
- /** Wallet address */
19
- address: Address
20
- /** Address of the signer (for agent mode, this is the agent address) */
21
- signerAddress?: Address
22
- /** Client-provided order ID for tracking */
23
- clientOrderId?: string
24
- /** Market symbol (e.g., 'BTC') */
25
- symbol: string
26
- /** Order side */
27
- side: OrderSide
28
- /** Order type */
29
- type: OrderType
30
- /** Order size (in base asset) */
31
- size: string
32
- /** Order price (required for limit orders) */
33
- price: string
34
- /** Leverage for the position */
35
- leverage?: number
36
- /** Whether this order only reduces position */
37
- reduceOnly?: boolean
38
- /** Time in force */
39
- timeInForce?: TimeInForce
40
- /** Expiration time (ISO 8601) */
41
- expiresAt?: string
42
- /** Take profit trigger order */
43
- takeProfit?: TriggerOrderInput
44
- /** Stop loss trigger order */
45
- stopLoss?: TriggerOrderInput
46
- }
47
-
48
- /**
49
- * Create order payloads for signing.
50
- * Returns typed data that must be signed by the user or agent.
51
- *
52
- * @param client - The SDK client instance
53
- * @param params - Request parameters
54
- * @param options - Request options (e.g., AbortSignal)
55
- * @returns Order actions with typed data for signing
56
- * @throws {HTTPError} On API error responses
57
- * @throws {PerpsError} On network or parsing errors
58
- *
59
- * @remarks
60
- * The example below uses Hyperliquid. Replace the `dex` value for other DEXes.
61
- *
62
- * @example
63
- * ```ts
64
- * const client = createPerpsClient({ integrator: 'my-app' })
65
- * const { actions } = await createOrder(client, {
66
- * dex: 'hyperliquid',
67
- * address: '0x1234...',
68
- * symbol: 'BTC',
69
- * side: OrderSide.BUY,
70
- * type: OrderType.LIMIT,
71
- * size: '0.1',
72
- * price: '94000.00',
73
- * leverage: 10
74
- * })
75
- *
76
- * // Sign each action with the user's wallet or agent key
77
- * const signedActions = await Promise.all(
78
- * actions.map(async (a) => ({
79
- * action: a.action,
80
- * typedData: a.typedData,
81
- * signature: await walletClient.signTypedData(a.typedData)
82
- * }))
83
- * )
84
- * ```
85
- */
86
- export async function createOrder(
87
- client: PerpsSDKClient,
88
- params: CreateOrderParams,
89
- options?: SDKRequestOptions
90
- ): Promise<CreateOrderResponse> {
91
- return request<CreateOrderResponse>(
92
- client.config,
93
- `${client.config.apiUrl}/createOrder`,
94
- {
95
- method: 'POST',
96
- body: JSON.stringify({
97
- dex: params.dex,
98
- address: params.address,
99
- signerAddress: params.signerAddress,
100
- clientOrderId: params.clientOrderId,
101
- symbol: params.symbol,
102
- side: params.side,
103
- type: params.type,
104
- size: params.size,
105
- price: params.price,
106
- leverage: params.leverage,
107
- reduceOnly: params.reduceOnly,
108
- timeInForce: params.timeInForce,
109
- expiresAt: params.expiresAt,
110
- takeProfit: params.takeProfit,
111
- stopLoss: params.stopLoss,
112
- }),
113
- },
114
- options
115
- )
116
- }
@@ -1,76 +0,0 @@
1
- import type {
2
- Address,
3
- CreateWithdrawalResponse,
4
- WithdrawalInput,
5
- } from '@lifi/perps-types'
6
- import type {
7
- PerpsSDKClient,
8
- SDKRequestOptions,
9
- } from '../client/createPerpsClient.js'
10
- import { request } from '../utils/request.js'
11
-
12
- export interface CreateWithdrawalParams {
13
- /** DEX to withdraw from (e.g., 'hyperliquid') */
14
- dex: string
15
- /** Wallet address (account owner) */
16
- address: Address
17
- /** Withdrawal details (destination address and amount) */
18
- withdrawal: WithdrawalInput
19
- }
20
-
21
- /**
22
- * Create a withdrawal payload for signing.
23
- * Returns typed data that must be signed by the user's wallet.
24
- *
25
- * Withdrawals are user-signed only — agents cannot initiate withdrawals.
26
- * This is a protocol-level security feature.
27
- *
28
- * @param client - The SDK client instance
29
- * @param params - Request parameters
30
- * @param options - Request options (e.g., AbortSignal)
31
- * @returns Withdrawal action with typed data for signing
32
- * @throws {HTTPError} On API error responses
33
- * @throws {PerpsError} On network or parsing errors
34
- *
35
- * @remarks
36
- * The example below uses Hyperliquid. Withdrawal mechanics vary by DEX.
37
- *
38
- * @example
39
- * ```ts
40
- * const client = createPerpsClient({ integrator: 'my-app' })
41
- * const { action } = await createWithdrawal(client, {
42
- * dex: 'hyperliquid',
43
- * address: '0x1234...',
44
- * withdrawal: {
45
- * destination: '0x1234...',
46
- * amount: '100.0',
47
- * },
48
- * })
49
- *
50
- * // Sign the action's typedData with the user's wallet
51
- * const signedAction = {
52
- * action: action.action,
53
- * typedData: action.typedData,
54
- * signature: await walletClient.signTypedData(action.typedData),
55
- * }
56
- * ```
57
- */
58
- export async function createWithdrawal(
59
- client: PerpsSDKClient,
60
- params: CreateWithdrawalParams,
61
- options?: SDKRequestOptions
62
- ): Promise<CreateWithdrawalResponse> {
63
- return request<CreateWithdrawalResponse>(
64
- client.config,
65
- `${client.config.apiUrl}/createWithdrawal`,
66
- {
67
- method: 'POST',
68
- body: JSON.stringify({
69
- dex: params.dex,
70
- address: params.address,
71
- withdrawal: params.withdrawal,
72
- }),
73
- },
74
- options
75
- )
76
- }