@lifi/perps-sdk 0.1.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +54 -0
  3. package/dist/cjs/agent/AgentManager.d.ts +15 -0
  4. package/dist/cjs/agent/AgentManager.d.ts.map +1 -0
  5. package/dist/cjs/agent/AgentManager.js +80 -0
  6. package/dist/cjs/agent/AgentManager.js.map +1 -0
  7. package/dist/cjs/agent/storage.d.ts +4 -0
  8. package/dist/cjs/agent/storage.d.ts.map +1 -0
  9. package/dist/cjs/agent/storage.js +47 -0
  10. package/dist/cjs/agent/storage.js.map +1 -0
  11. package/dist/cjs/agent/types.d.ts +11 -0
  12. package/dist/cjs/agent/types.d.ts.map +1 -0
  13. package/dist/cjs/agent/types.js +3 -0
  14. package/dist/cjs/agent/types.js.map +1 -0
  15. package/dist/cjs/client/PerpsClient.d.ts +29 -0
  16. package/dist/cjs/client/PerpsClient.d.ts.map +1 -0
  17. package/dist/cjs/client/PerpsClient.js +328 -0
  18. package/dist/cjs/client/PerpsClient.js.map +1 -0
  19. package/dist/cjs/client/createPerpsClient.d.ts +30 -0
  20. package/dist/cjs/client/createPerpsClient.d.ts.map +1 -0
  21. package/dist/cjs/client/createPerpsClient.js +56 -0
  22. package/dist/cjs/client/createPerpsClient.js.map +1 -0
  23. package/dist/cjs/client/types.d.ts +61 -0
  24. package/dist/cjs/client/types.d.ts.map +1 -0
  25. package/dist/cjs/client/types.js +3 -0
  26. package/dist/cjs/client/types.js.map +1 -0
  27. package/dist/cjs/errors/AgentError.d.ts +10 -0
  28. package/dist/cjs/errors/AgentError.d.ts.map +1 -0
  29. package/dist/cjs/errors/AgentError.js +23 -0
  30. package/dist/cjs/errors/AgentError.js.map +1 -0
  31. package/dist/cjs/errors/HTTPError.d.ts +11 -0
  32. package/dist/cjs/errors/HTTPError.d.ts.map +1 -0
  33. package/dist/cjs/errors/HTTPError.js +62 -0
  34. package/dist/cjs/errors/HTTPError.js.map +1 -0
  35. package/dist/cjs/errors/PerpsError.d.ts +9 -0
  36. package/dist/cjs/errors/PerpsError.d.ts.map +1 -0
  37. package/dist/cjs/errors/PerpsError.js +27 -0
  38. package/dist/cjs/errors/PerpsError.js.map +1 -0
  39. package/dist/cjs/errors/PerpsSDKError.d.ts +9 -0
  40. package/dist/cjs/errors/PerpsSDKError.d.ts.map +1 -0
  41. package/dist/cjs/errors/PerpsSDKError.js +36 -0
  42. package/dist/cjs/errors/PerpsSDKError.js.map +1 -0
  43. package/dist/cjs/errors/ServerError.d.ts +10 -0
  44. package/dist/cjs/errors/ServerError.d.ts.map +1 -0
  45. package/dist/cjs/errors/ServerError.js +24 -0
  46. package/dist/cjs/errors/ServerError.js.map +1 -0
  47. package/dist/cjs/errors/ValidationError.d.ts +9 -0
  48. package/dist/cjs/errors/ValidationError.d.ts.map +1 -0
  49. package/dist/cjs/errors/ValidationError.js +23 -0
  50. package/dist/cjs/errors/ValidationError.js.map +1 -0
  51. package/dist/cjs/errors/constants.d.ts +15 -0
  52. package/dist/cjs/errors/constants.d.ts.map +1 -0
  53. package/dist/cjs/errors/constants.js +20 -0
  54. package/dist/cjs/errors/constants.js.map +1 -0
  55. package/dist/cjs/errors/utils/rootCause.d.ts +6 -0
  56. package/dist/cjs/errors/utils/rootCause.d.ts.map +1 -0
  57. package/dist/cjs/errors/utils/rootCause.js +41 -0
  58. package/dist/cjs/errors/utils/rootCause.js.map +1 -0
  59. package/dist/cjs/index.d.ts +46 -0
  60. package/dist/cjs/index.d.ts.map +1 -0
  61. package/dist/cjs/index.js +82 -0
  62. package/dist/cjs/index.js.map +1 -0
  63. package/dist/cjs/package.json +1 -0
  64. package/dist/cjs/services/cancelOrder.d.ts +10 -0
  65. package/dist/cjs/services/cancelOrder.d.ts.map +1 -0
  66. package/dist/cjs/services/cancelOrder.js +16 -0
  67. package/dist/cjs/services/cancelOrder.js.map +1 -0
  68. package/dist/cjs/services/createAuthorization.d.ts +10 -0
  69. package/dist/cjs/services/createAuthorization.d.ts.map +1 -0
  70. package/dist/cjs/services/createAuthorization.js +16 -0
  71. package/dist/cjs/services/createAuthorization.js.map +1 -0
  72. package/dist/cjs/services/createOrder.d.ts +21 -0
  73. package/dist/cjs/services/createOrder.d.ts.map +1 -0
  74. package/dist/cjs/services/createOrder.js +27 -0
  75. package/dist/cjs/services/createOrder.js.map +1 -0
  76. package/dist/cjs/services/getAccount.d.ts +8 -0
  77. package/dist/cjs/services/getAccount.d.ts.map +1 -0
  78. package/dist/cjs/services/getAccount.js +12 -0
  79. package/dist/cjs/services/getAccount.js.map +1 -0
  80. package/dist/cjs/services/getDexes.d.ts +4 -0
  81. package/dist/cjs/services/getDexes.d.ts.map +1 -0
  82. package/dist/cjs/services/getDexes.js +8 -0
  83. package/dist/cjs/services/getDexes.js.map +1 -0
  84. package/dist/cjs/services/getHistory.d.ts +10 -0
  85. package/dist/cjs/services/getHistory.d.ts.map +1 -0
  86. package/dist/cjs/services/getHistory.js +14 -0
  87. package/dist/cjs/services/getHistory.js.map +1 -0
  88. package/dist/cjs/services/getMarket.d.ts +8 -0
  89. package/dist/cjs/services/getMarket.d.ts.map +1 -0
  90. package/dist/cjs/services/getMarket.js +11 -0
  91. package/dist/cjs/services/getMarket.js.map +1 -0
  92. package/dist/cjs/services/getMarkets.d.ts +7 -0
  93. package/dist/cjs/services/getMarkets.d.ts.map +1 -0
  94. package/dist/cjs/services/getMarkets.js +9 -0
  95. package/dist/cjs/services/getMarkets.js.map +1 -0
  96. package/dist/cjs/services/getOhlcv.d.ts +12 -0
  97. package/dist/cjs/services/getOhlcv.d.ts.map +1 -0
  98. package/dist/cjs/services/getOhlcv.js +15 -0
  99. package/dist/cjs/services/getOhlcv.js.map +1 -0
  100. package/dist/cjs/services/getOrder.d.ts +9 -0
  101. package/dist/cjs/services/getOrder.d.ts.map +1 -0
  102. package/dist/cjs/services/getOrder.js +12 -0
  103. package/dist/cjs/services/getOrder.js.map +1 -0
  104. package/dist/cjs/services/getOrderbook.d.ts +9 -0
  105. package/dist/cjs/services/getOrderbook.d.ts.map +1 -0
  106. package/dist/cjs/services/getOrderbook.js +12 -0
  107. package/dist/cjs/services/getOrderbook.js.map +1 -0
  108. package/dist/cjs/services/getPrices.d.ts +8 -0
  109. package/dist/cjs/services/getPrices.d.ts.map +1 -0
  110. package/dist/cjs/services/getPrices.js +12 -0
  111. package/dist/cjs/services/getPrices.js.map +1 -0
  112. package/dist/cjs/services/submitAuthorization.d.ts +10 -0
  113. package/dist/cjs/services/submitAuthorization.d.ts.map +1 -0
  114. package/dist/cjs/services/submitAuthorization.js +16 -0
  115. package/dist/cjs/services/submitAuthorization.js.map +1 -0
  116. package/dist/cjs/services/submitOrder.d.ts +10 -0
  117. package/dist/cjs/services/submitOrder.d.ts.map +1 -0
  118. package/dist/cjs/services/submitOrder.js +16 -0
  119. package/dist/cjs/services/submitOrder.js.map +1 -0
  120. package/dist/cjs/utils/request.d.ts +7 -0
  121. package/dist/cjs/utils/request.d.ts.map +1 -0
  122. package/dist/cjs/utils/request.js +63 -0
  123. package/dist/cjs/utils/request.js.map +1 -0
  124. package/dist/cjs/utils/signTypedData.d.ts +3 -0
  125. package/dist/cjs/utils/signTypedData.d.ts.map +1 -0
  126. package/dist/cjs/utils/signTypedData.js +15 -0
  127. package/dist/cjs/utils/signTypedData.js.map +1 -0
  128. package/dist/cjs/utils/sleep.d.ts +2 -0
  129. package/dist/cjs/utils/sleep.d.ts.map +1 -0
  130. package/dist/cjs/utils/sleep.js +6 -0
  131. package/dist/cjs/utils/sleep.js.map +1 -0
  132. package/dist/cjs/version.d.ts +3 -0
  133. package/dist/cjs/version.d.ts.map +1 -0
  134. package/dist/cjs/version.js +6 -0
  135. package/dist/cjs/version.js.map +1 -0
  136. package/dist/esm/agent/AgentManager.d.ts +45 -0
  137. package/dist/esm/agent/AgentManager.d.ts.map +1 -0
  138. package/dist/esm/agent/AgentManager.js +110 -0
  139. package/dist/esm/agent/AgentManager.js.map +1 -0
  140. package/dist/esm/agent/storage.d.ts +12 -0
  141. package/dist/esm/agent/storage.d.ts.map +1 -0
  142. package/dist/esm/agent/storage.js +54 -0
  143. package/dist/esm/agent/storage.js.map +1 -0
  144. package/dist/esm/agent/types.d.ts +23 -0
  145. package/dist/esm/agent/types.d.ts.map +1 -0
  146. package/dist/esm/agent/types.js +2 -0
  147. package/dist/esm/agent/types.js.map +1 -0
  148. package/dist/esm/client/PerpsClient.d.ts +188 -0
  149. package/dist/esm/client/PerpsClient.d.ts.map +1 -0
  150. package/dist/esm/client/PerpsClient.js +512 -0
  151. package/dist/esm/client/PerpsClient.js.map +1 -0
  152. package/dist/esm/client/createPerpsClient.d.ts +82 -0
  153. package/dist/esm/client/createPerpsClient.d.ts.map +1 -0
  154. package/dist/esm/client/createPerpsClient.js +80 -0
  155. package/dist/esm/client/createPerpsClient.js.map +1 -0
  156. package/dist/esm/client/types.d.ts +131 -0
  157. package/dist/esm/client/types.d.ts.map +1 -0
  158. package/dist/esm/client/types.js +2 -0
  159. package/dist/esm/client/types.js.map +1 -0
  160. package/dist/esm/errors/AgentError.d.ts +25 -0
  161. package/dist/esm/errors/AgentError.d.ts.map +1 -0
  162. package/dist/esm/errors/AgentError.js +35 -0
  163. package/dist/esm/errors/AgentError.js.map +1 -0
  164. package/dist/esm/errors/HTTPError.d.ts +11 -0
  165. package/dist/esm/errors/HTTPError.d.ts.map +1 -0
  166. package/dist/esm/errors/HTTPError.js +61 -0
  167. package/dist/esm/errors/HTTPError.js.map +1 -0
  168. package/dist/esm/errors/PerpsError.d.ts +9 -0
  169. package/dist/esm/errors/PerpsError.d.ts.map +1 -0
  170. package/dist/esm/errors/PerpsError.js +23 -0
  171. package/dist/esm/errors/PerpsError.js.map +1 -0
  172. package/dist/esm/errors/PerpsSDKError.d.ts +40 -0
  173. package/dist/esm/errors/PerpsSDKError.d.ts.map +1 -0
  174. package/dist/esm/errors/PerpsSDKError.js +67 -0
  175. package/dist/esm/errors/PerpsSDKError.js.map +1 -0
  176. package/dist/esm/errors/ServerError.d.ts +23 -0
  177. package/dist/esm/errors/ServerError.d.ts.map +1 -0
  178. package/dist/esm/errors/ServerError.js +34 -0
  179. package/dist/esm/errors/ServerError.js.map +1 -0
  180. package/dist/esm/errors/ValidationError.d.ts +23 -0
  181. package/dist/esm/errors/ValidationError.d.ts.map +1 -0
  182. package/dist/esm/errors/ValidationError.js +34 -0
  183. package/dist/esm/errors/ValidationError.js.map +1 -0
  184. package/dist/esm/errors/constants.d.ts +15 -0
  185. package/dist/esm/errors/constants.d.ts.map +1 -0
  186. package/dist/esm/errors/constants.js +17 -0
  187. package/dist/esm/errors/constants.js.map +1 -0
  188. package/dist/esm/errors/utils/rootCause.d.ts +71 -0
  189. package/dist/esm/errors/utils/rootCause.d.ts.map +1 -0
  190. package/dist/esm/errors/utils/rootCause.js +99 -0
  191. package/dist/esm/errors/utils/rootCause.js.map +1 -0
  192. package/dist/esm/index.d.ts +46 -0
  193. package/dist/esm/index.d.ts.map +1 -0
  194. package/dist/esm/index.js +37 -0
  195. package/dist/esm/index.js.map +1 -0
  196. package/dist/esm/package.json +1 -0
  197. package/dist/esm/services/cancelOrder.d.ts +51 -0
  198. package/dist/esm/services/cancelOrder.d.ts.map +1 -0
  199. package/dist/esm/services/cancelOrder.js +50 -0
  200. package/dist/esm/services/cancelOrder.js.map +1 -0
  201. package/dist/esm/services/createAuthorization.d.ts +47 -0
  202. package/dist/esm/services/createAuthorization.d.ts.map +1 -0
  203. package/dist/esm/services/createAuthorization.js +46 -0
  204. package/dist/esm/services/createAuthorization.js.map +1 -0
  205. package/dist/esm/services/createOrder.d.ts +71 -0
  206. package/dist/esm/services/createOrder.d.ts.map +1 -0
  207. package/dist/esm/services/createOrder.js +59 -0
  208. package/dist/esm/services/createOrder.js.map +1 -0
  209. package/dist/esm/services/getAccount.d.ts +32 -0
  210. package/dist/esm/services/getAccount.d.ts.map +1 -0
  211. package/dist/esm/services/getAccount.js +31 -0
  212. package/dist/esm/services/getAccount.js.map +1 -0
  213. package/dist/esm/services/getDexes.d.ts +20 -0
  214. package/dist/esm/services/getDexes.d.ts.map +1 -0
  215. package/dist/esm/services/getDexes.js +21 -0
  216. package/dist/esm/services/getDexes.js.map +1 -0
  217. package/dist/esm/services/getHistory.d.ts +45 -0
  218. package/dist/esm/services/getHistory.d.ts.map +1 -0
  219. package/dist/esm/services/getHistory.js +42 -0
  220. package/dist/esm/services/getHistory.js.map +1 -0
  221. package/dist/esm/services/getMarket.d.ts +27 -0
  222. package/dist/esm/services/getMarket.d.ts.map +1 -0
  223. package/dist/esm/services/getMarket.js +25 -0
  224. package/dist/esm/services/getMarket.js.map +1 -0
  225. package/dist/esm/services/getMarkets.d.ts +25 -0
  226. package/dist/esm/services/getMarkets.d.ts.map +1 -0
  227. package/dist/esm/services/getMarkets.js +23 -0
  228. package/dist/esm/services/getMarkets.js.map +1 -0
  229. package/dist/esm/services/getOhlcv.d.ts +40 -0
  230. package/dist/esm/services/getOhlcv.d.ts.map +1 -0
  231. package/dist/esm/services/getOhlcv.js +34 -0
  232. package/dist/esm/services/getOhlcv.js.map +1 -0
  233. package/dist/esm/services/getOrder.d.ts +33 -0
  234. package/dist/esm/services/getOrder.d.ts.map +1 -0
  235. package/dist/esm/services/getOrder.js +30 -0
  236. package/dist/esm/services/getOrder.js.map +1 -0
  237. package/dist/esm/services/getOrderbook.d.ts +34 -0
  238. package/dist/esm/services/getOrderbook.d.ts.map +1 -0
  239. package/dist/esm/services/getOrderbook.js +31 -0
  240. package/dist/esm/services/getOrderbook.js.map +1 -0
  241. package/dist/esm/services/getPrices.d.ts +33 -0
  242. package/dist/esm/services/getPrices.d.ts.map +1 -0
  243. package/dist/esm/services/getPrices.js +32 -0
  244. package/dist/esm/services/getPrices.js.map +1 -0
  245. package/dist/esm/services/submitAuthorization.d.ts +42 -0
  246. package/dist/esm/services/submitAuthorization.d.ts.map +1 -0
  247. package/dist/esm/services/submitAuthorization.js +41 -0
  248. package/dist/esm/services/submitAuthorization.js.map +1 -0
  249. package/dist/esm/services/submitOrder.d.ts +44 -0
  250. package/dist/esm/services/submitOrder.d.ts.map +1 -0
  251. package/dist/esm/services/submitOrder.js +43 -0
  252. package/dist/esm/services/submitOrder.js.map +1 -0
  253. package/dist/esm/utils/request.d.ts +26 -0
  254. package/dist/esm/utils/request.d.ts.map +1 -0
  255. package/dist/esm/utils/request.js +82 -0
  256. package/dist/esm/utils/request.js.map +1 -0
  257. package/dist/esm/utils/signTypedData.d.ts +15 -0
  258. package/dist/esm/utils/signTypedData.d.ts.map +1 -0
  259. package/dist/esm/utils/signTypedData.js +25 -0
  260. package/dist/esm/utils/signTypedData.js.map +1 -0
  261. package/dist/esm/utils/sleep.d.ts +2 -0
  262. package/dist/esm/utils/sleep.d.ts.map +1 -0
  263. package/dist/esm/utils/sleep.js +2 -0
  264. package/dist/esm/utils/sleep.js.map +1 -0
  265. package/dist/esm/version.d.ts +3 -0
  266. package/dist/esm/version.d.ts.map +1 -0
  267. package/dist/esm/version.js +3 -0
  268. package/dist/esm/version.js.map +1 -0
  269. package/dist/types/agent/AgentManager.d.ts +45 -0
  270. package/dist/types/agent/AgentManager.d.ts.map +1 -0
  271. package/dist/types/agent/storage.d.ts +12 -0
  272. package/dist/types/agent/storage.d.ts.map +1 -0
  273. package/dist/types/agent/types.d.ts +23 -0
  274. package/dist/types/agent/types.d.ts.map +1 -0
  275. package/dist/types/client/PerpsClient.d.ts +188 -0
  276. package/dist/types/client/PerpsClient.d.ts.map +1 -0
  277. package/dist/types/client/createPerpsClient.d.ts +82 -0
  278. package/dist/types/client/createPerpsClient.d.ts.map +1 -0
  279. package/dist/types/client/types.d.ts +131 -0
  280. package/dist/types/client/types.d.ts.map +1 -0
  281. package/dist/types/errors/AgentError.d.ts +25 -0
  282. package/dist/types/errors/AgentError.d.ts.map +1 -0
  283. package/dist/types/errors/HTTPError.d.ts +11 -0
  284. package/dist/types/errors/HTTPError.d.ts.map +1 -0
  285. package/dist/types/errors/PerpsError.d.ts +9 -0
  286. package/dist/types/errors/PerpsError.d.ts.map +1 -0
  287. package/dist/types/errors/PerpsSDKError.d.ts +40 -0
  288. package/dist/types/errors/PerpsSDKError.d.ts.map +1 -0
  289. package/dist/types/errors/ServerError.d.ts +23 -0
  290. package/dist/types/errors/ServerError.d.ts.map +1 -0
  291. package/dist/types/errors/ValidationError.d.ts +23 -0
  292. package/dist/types/errors/ValidationError.d.ts.map +1 -0
  293. package/dist/types/errors/constants.d.ts +15 -0
  294. package/dist/types/errors/constants.d.ts.map +1 -0
  295. package/dist/types/errors/utils/rootCause.d.ts +71 -0
  296. package/dist/types/errors/utils/rootCause.d.ts.map +1 -0
  297. package/dist/types/index.d.ts +46 -0
  298. package/dist/types/index.d.ts.map +1 -0
  299. package/dist/types/services/cancelOrder.d.ts +51 -0
  300. package/dist/types/services/cancelOrder.d.ts.map +1 -0
  301. package/dist/types/services/createAuthorization.d.ts +47 -0
  302. package/dist/types/services/createAuthorization.d.ts.map +1 -0
  303. package/dist/types/services/createOrder.d.ts +71 -0
  304. package/dist/types/services/createOrder.d.ts.map +1 -0
  305. package/dist/types/services/getAccount.d.ts +32 -0
  306. package/dist/types/services/getAccount.d.ts.map +1 -0
  307. package/dist/types/services/getDexes.d.ts +20 -0
  308. package/dist/types/services/getDexes.d.ts.map +1 -0
  309. package/dist/types/services/getHistory.d.ts +45 -0
  310. package/dist/types/services/getHistory.d.ts.map +1 -0
  311. package/dist/types/services/getMarket.d.ts +27 -0
  312. package/dist/types/services/getMarket.d.ts.map +1 -0
  313. package/dist/types/services/getMarkets.d.ts +25 -0
  314. package/dist/types/services/getMarkets.d.ts.map +1 -0
  315. package/dist/types/services/getOhlcv.d.ts +40 -0
  316. package/dist/types/services/getOhlcv.d.ts.map +1 -0
  317. package/dist/types/services/getOrder.d.ts +33 -0
  318. package/dist/types/services/getOrder.d.ts.map +1 -0
  319. package/dist/types/services/getOrderbook.d.ts +34 -0
  320. package/dist/types/services/getOrderbook.d.ts.map +1 -0
  321. package/dist/types/services/getPrices.d.ts +33 -0
  322. package/dist/types/services/getPrices.d.ts.map +1 -0
  323. package/dist/types/services/submitAuthorization.d.ts +42 -0
  324. package/dist/types/services/submitAuthorization.d.ts.map +1 -0
  325. package/dist/types/services/submitOrder.d.ts +44 -0
  326. package/dist/types/services/submitOrder.d.ts.map +1 -0
  327. package/dist/types/utils/request.d.ts +26 -0
  328. package/dist/types/utils/request.d.ts.map +1 -0
  329. package/dist/types/utils/signTypedData.d.ts +15 -0
  330. package/dist/types/utils/signTypedData.d.ts.map +1 -0
  331. package/dist/types/utils/sleep.d.ts +2 -0
  332. package/dist/types/utils/sleep.d.ts.map +1 -0
  333. package/dist/types/version.d.ts +3 -0
  334. package/dist/types/version.d.ts.map +1 -0
  335. package/package.json +102 -0
  336. package/src/agent/AgentManager.ts +135 -0
  337. package/src/agent/storage.ts +58 -0
  338. package/src/agent/types.ts +24 -0
  339. package/src/client/PerpsClient.ts +654 -0
  340. package/src/client/createPerpsClient.ts +164 -0
  341. package/src/client/types.ts +156 -0
  342. package/src/errors/AgentError.ts +43 -0
  343. package/src/errors/HTTPError.ts +72 -0
  344. package/src/errors/PerpsError.ts +34 -0
  345. package/src/errors/PerpsSDKError.ts +79 -0
  346. package/src/errors/ServerError.ts +41 -0
  347. package/src/errors/ValidationError.ts +38 -0
  348. package/src/errors/constants.ts +15 -0
  349. package/src/errors/utils/rootCause.ts +112 -0
  350. package/src/index.ts +77 -0
  351. package/src/services/cancelOrder.ts +75 -0
  352. package/src/services/createAuthorization.ts +75 -0
  353. package/src/services/createOrder.ts +113 -0
  354. package/src/services/getAccount.ts +47 -0
  355. package/src/services/getDexes.ts +34 -0
  356. package/src/services/getHistory.ts +62 -0
  357. package/src/services/getMarket.ts +41 -0
  358. package/src/services/getMarkets.ts +37 -0
  359. package/src/services/getOhlcv.ts +58 -0
  360. package/src/services/getOrder.ts +48 -0
  361. package/src/services/getOrderbook.ts +49 -0
  362. package/src/services/getPrices.ts +48 -0
  363. package/src/services/submitAuthorization.ts +70 -0
  364. package/src/services/submitOrder.ts +72 -0
  365. package/src/utils/request.ts +121 -0
  366. package/src/utils/signTypedData.ts +31 -0
  367. package/src/utils/sleep.ts +2 -0
  368. package/src/version.ts +2 -0
@@ -0,0 +1,80 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { AgentManager } from '../agent/AgentManager.js';
3
+ import { PerpsErrorName } from '../errors/constants.js';
4
+ import { PerpsError } from '../errors/PerpsError.js';
5
+ import { sleep } from '../utils/sleep.js';
6
+ const DEFAULT_API_URL = 'https://li.quest/v1/perps';
7
+ const HEALTH_POLL_INTERVAL_MS = 500;
8
+ const HEALTH_MAX_ATTEMPTS = 50;
9
+ /**
10
+ * Create a new Perps SDK client.
11
+ *
12
+ * @param options - Configuration options
13
+ * @returns A new SDK client instance
14
+ * @throws {PerpsError} If integrator is not provided
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const client = createPerpsClient({
19
+ * integrator: 'my-app',
20
+ * apiKey: 'optional-api-key',
21
+ * })
22
+ *
23
+ * // Use with service functions
24
+ * const { dexes } = await getDexes(client)
25
+ * ```
26
+ */
27
+ export function createPerpsClient(options) {
28
+ if (!options.integrator) {
29
+ const error = new PerpsError(PerpsErrorCode.ValidationError, 'Integrator is required. Please see documentation at https://docs.li.fi');
30
+ error.name = PerpsErrorName.ValidationError;
31
+ throw error;
32
+ }
33
+ const apiUrl = options.apiUrl ?? DEFAULT_API_URL;
34
+ const readyPromise = options.healthCheck !== false ? pollHealth(apiUrl) : Promise.resolve();
35
+ const config = {
36
+ integrator: options.integrator,
37
+ apiKey: options.apiKey,
38
+ apiUrl,
39
+ disableVersionCheck: options.disableVersionCheck,
40
+ requestInterceptor: options.requestInterceptor,
41
+ readyPromise,
42
+ };
43
+ const agentManager = new AgentManager(options.storage);
44
+ return {
45
+ get config() {
46
+ return config;
47
+ },
48
+ get agentManager() {
49
+ return agentManager;
50
+ },
51
+ get ready() {
52
+ return readyPromise;
53
+ },
54
+ };
55
+ }
56
+ /**
57
+ * Poll the API health endpoint until it returns a successful response.
58
+ *
59
+ * Derives the health URL from the apiUrl origin (e.g. https://li.quest/health/live).
60
+ * Retries up to {@link HEALTH_MAX_ATTEMPTS} times with {@link HEALTH_POLL_INTERVAL_MS} delays.
61
+ *
62
+ * @throws {PerpsError} If the health endpoint does not respond after all attempts
63
+ */
64
+ async function pollHealth(apiUrl) {
65
+ const healthUrl = `${new URL(apiUrl).origin}/health/live`;
66
+ for (let i = 0; i < HEALTH_MAX_ATTEMPTS; i++) {
67
+ try {
68
+ const response = await fetch(healthUrl);
69
+ if (response.ok) {
70
+ return;
71
+ }
72
+ }
73
+ catch {
74
+ // Server not reachable yet, retry
75
+ }
76
+ await sleep(HEALTH_POLL_INTERVAL_MS);
77
+ }
78
+ throw new PerpsError(PerpsErrorCode.ServerError, 'API health check failed: server did not become ready');
79
+ }
80
+ //# sourceMappingURL=createPerpsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPerpsClient.js","sourceRoot":"","sources":["../../../src/client/createPerpsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,eAAe,GAAG,2BAA2B,CAAA;AACnD,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAsE9B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAoB;IACpD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,UAAU,CAC1B,cAAc,CAAC,eAAe,EAC9B,wEAAwE,CACzE,CAAA;QACD,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC,eAAe,CAAA;QAC3C,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAA;IAEhD,MAAM,YAAY,GAChB,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAExE,MAAM,MAAM,GAAoB;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,YAAY;KACb,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEtD,OAAO;QACL,IAAI,MAAM;YACR,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,YAAY;YACd,OAAO,YAAY,CAAA;QACrB,CAAC;QACD,IAAI,KAAK;YACP,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,UAAU,CAAC,MAAc;IACtC,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,cAAc,CAAA;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAA;YACvC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAM;YACR,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QACD,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,WAAW,EAC1B,sDAAsD,CACvD,CAAA;AACH,CAAC"}
@@ -0,0 +1,131 @@
1
+ import type { Address, AuthorizationInput, AuthorizationsResponse, OrderSide, OrderType, SignedAuthorization, TimeInForce, TriggerOrderInput } from '@lifi/perps-types';
2
+ import type { StorageAdapter } from '../agent/types.js';
3
+ export type { PerpsBaseConfig, PerpsConfig, PerpsSDKClient, RequestInterceptor, SDKRequestOptions, } from './createPerpsClient.js';
4
+ /**
5
+ * Signing mode determines who signs trading actions.
6
+ *
7
+ * - `USER`: User wallet signs each action (requires wallet popup per action)
8
+ * - `USER_AGENT`: SDK-generated agent signs actions (no popups after initial setup)
9
+ */
10
+ export type SigningMode = 'USER' | 'USER_AGENT';
11
+ /**
12
+ * Options for PerpsClient constructor.
13
+ */
14
+ export interface PerpsClientOptions {
15
+ /** Integrator identifier (required) */
16
+ integrator: string;
17
+ /** Optional API key for authenticated requests */
18
+ apiKey?: string;
19
+ /** Base API URL. Defaults to https://li.quest/v1/perps */
20
+ apiUrl?: string;
21
+ /** Custom storage adapter for agent keys. Defaults to localStorage. */
22
+ storage?: StorageAdapter;
23
+ /** Whether to perform a health check on startup before allowing requests. Default: true */
24
+ healthCheck?: boolean;
25
+ }
26
+ /**
27
+ * Parameters for building authorization payloads.
28
+ */
29
+ export interface BuildAuthorizationParams {
30
+ /** DEX to authorize */
31
+ dex: string;
32
+ /** User wallet address */
33
+ address: Address;
34
+ /** Address of the signer (auto-set in USER_AGENT mode) */
35
+ signerAddress?: Address;
36
+ /** Authorizations to create */
37
+ authorizations: AuthorizationInput[];
38
+ }
39
+ /**
40
+ * Parameters for placing an order.
41
+ */
42
+ export interface PlaceOrderParams {
43
+ /** DEX to place order on */
44
+ dex: string;
45
+ /** User wallet address */
46
+ address: Address;
47
+ /** Client-provided order ID */
48
+ clientOrderId?: string;
49
+ /** Market symbol */
50
+ symbol: string;
51
+ /** Order side */
52
+ side: OrderSide;
53
+ /** Order type */
54
+ type: OrderType;
55
+ /** Order size */
56
+ size: string;
57
+ /** Order price */
58
+ price: string;
59
+ /** Leverage */
60
+ leverage?: number;
61
+ /** Reduce only flag */
62
+ reduceOnly?: boolean;
63
+ /** Time in force */
64
+ timeInForce?: TimeInForce;
65
+ /** Expiration time */
66
+ expiresAt?: string;
67
+ /** Take profit trigger */
68
+ takeProfit?: TriggerOrderInput;
69
+ /** Stop loss trigger */
70
+ stopLoss?: TriggerOrderInput;
71
+ }
72
+ /**
73
+ * Parameters for canceling orders.
74
+ */
75
+ export interface CancelOrdersParams {
76
+ /** DEX to cancel orders on */
77
+ dex: string;
78
+ /** User wallet address */
79
+ address: Address;
80
+ /** Order IDs to cancel */
81
+ ids: string[];
82
+ }
83
+ /**
84
+ * Parameters for getRequiredAuthorizations().
85
+ */
86
+ export interface GetRequiredAuthorizationsParams {
87
+ /** DEX to check authorizations for */
88
+ dex: string;
89
+ /** User wallet address */
90
+ address: Address;
91
+ /** Whether to require abstraction (for HIP-3 assets). Default: false */
92
+ requireAbstraction?: boolean;
93
+ }
94
+ /**
95
+ * Result from getRequiredAuthorizations().
96
+ */
97
+ export interface RequiredAuthorizationsResult {
98
+ /** Authorizations requiring user wallet signature (0, 1, or 2 items) */
99
+ userAuthorizations: AuthorizationInput[];
100
+ /** Authorizations the SDK auto-signs with the agent after user auths are submitted */
101
+ agentAuthorizations: AuthorizationInput[];
102
+ /** Whether the local agent is registered and valid on the backend */
103
+ agentValid: boolean;
104
+ /** The raw abstractionStatus from config (null=never set, 'disabled', 'unifiedAccount', 'portfolioMargin') */
105
+ abstractionStatus: string | null;
106
+ /** Whether all authorizations are already satisfied (ready to trade) */
107
+ isReady: boolean;
108
+ }
109
+ /**
110
+ * Parameters for executeAuthorizations().
111
+ */
112
+ export interface ExecuteAuthorizationsParams {
113
+ /** DEX to authorize */
114
+ dex: string;
115
+ /** User wallet address */
116
+ address: Address;
117
+ /** The result from getRequiredAuthorizations() */
118
+ required: RequiredAuthorizationsResult;
119
+ /** User-signed actions corresponding to required.userAuthorizations */
120
+ userSignedActions: SignedAuthorization[];
121
+ }
122
+ /**
123
+ * Result from executeAuthorizations().
124
+ */
125
+ export interface ExecuteAuthorizationsResult {
126
+ /** Results from user-signed authorization submission */
127
+ userResults: AuthorizationsResponse;
128
+ /** Results from agent-signed authorization submission (if any) */
129
+ agentResults?: AuthorizationsResponse;
130
+ }
131
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsErrorName } from './constants.js';
3
+ import { PerpsError } from './PerpsError.js';
4
+ /**
5
+ * Error thrown when agent-related operations fail (agent not found, authorization issues, etc.)
6
+ */
7
+ export declare class AgentError extends PerpsError {
8
+ name: PerpsErrorName;
9
+ constructor(message: string, code?: PerpsErrorCode);
10
+ /**
11
+ * Create an AgentError for a missing agent.
12
+ *
13
+ * @param address - The user address
14
+ * @param dex - The DEX identifier
15
+ */
16
+ static notFound(address: string, dex: string): AgentError;
17
+ /**
18
+ * Create an AgentError for an unauthorized agent.
19
+ *
20
+ * @param address - The agent address
21
+ * @param dex - The DEX identifier
22
+ */
23
+ static unauthorized(address: string, dex: string): AgentError;
24
+ }
25
+ //# sourceMappingURL=AgentError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentError.d.ts","sourceRoot":"","sources":["../../../src/errors/AgentError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IAC/B,IAAI,iBAA4B;gBAE7B,OAAO,EAAE,MAAM,EAAE,IAAI,iBAAmC;IAQpE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU;IAMzD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU;CAK9D"}
@@ -0,0 +1,35 @@
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
+ * Error thrown when agent-related operations fail (agent not found, authorization issues, etc.)
7
+ */
8
+ export class AgentError extends PerpsError {
9
+ name = PerpsErrorName.AgentError;
10
+ constructor(message, code = PerpsErrorCode.AgentUnauthorized) {
11
+ super(code, message);
12
+ this.name = PerpsErrorName.AgentError;
13
+ // Override message format
14
+ this.message = `[${PerpsErrorName.AgentError}] ${message}\nLI.FI Perps SDK version: ${version}`;
15
+ }
16
+ /**
17
+ * Create an AgentError for a missing agent.
18
+ *
19
+ * @param address - The user address
20
+ * @param dex - The DEX identifier
21
+ */
22
+ static notFound(address, dex) {
23
+ return new AgentError(`Agent not found for ${address} on ${dex}. Call setSigningMode() first.`);
24
+ }
25
+ /**
26
+ * Create an AgentError for an unauthorized agent.
27
+ *
28
+ * @param address - The agent address
29
+ * @param dex - The DEX identifier
30
+ */
31
+ static unauthorized(address, dex) {
32
+ return new AgentError(`Agent ${address} is not authorized on ${dex}. Submit authorization first.`);
33
+ }
34
+ }
35
+ //# sourceMappingURL=AgentError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentError.js","sourceRoot":"","sources":["../../../src/errors/AgentError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAC/B,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;IAEzC,YAAY,OAAe,EAAE,IAAI,GAAG,cAAc,CAAC,iBAAiB;QAClE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;QAErC,0BAA0B;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,UAAU,KAAK,OAAO,8BAA8B,OAAO,EAAE,CAAA;IACjG,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAe,EAAE,GAAW;QAC1C,OAAO,IAAI,UAAU,CACnB,uBAAuB,OAAO,OAAO,GAAG,gCAAgC,CACzE,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,GAAW;QAC9C,OAAO,IAAI,UAAU,CACnB,SAAS,OAAO,yBAAyB,GAAG,+BAA+B,CAC5E,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { PerpsErrorBody } from '@lifi/perps-types';
2
+ import { PerpsError } from './PerpsError.js';
3
+ export declare class HTTPError extends PerpsError {
4
+ response: Response;
5
+ status: number;
6
+ url: string;
7
+ responseBody?: PerpsErrorBody;
8
+ constructor(response: Response, url: string);
9
+ buildAdditionalDetails(): Promise<this>;
10
+ }
11
+ //# sourceMappingURL=HTTPError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTTPError.d.ts","sourceRoot":"","sources":["../../../src/errors/HTTPError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AA6B5C,qBAAa,SAAU,SAAQ,UAAU;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,cAAc,CAAA;gBAEjB,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM;IAYrC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB9C"}
@@ -0,0 +1,61 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsErrorName } from './constants.js';
3
+ import { PerpsError } from './PerpsError.js';
4
+ const statusCodeToErrorCode = new Map([
5
+ [400, PerpsErrorCode.ValidationError],
6
+ [401, PerpsErrorCode.SignatureInvalid],
7
+ [403, PerpsErrorCode.AgentUnauthorized],
8
+ [404, PerpsErrorCode.MarketNotFound],
9
+ [422, PerpsErrorCode.ValidationError],
10
+ [424, PerpsErrorCode.ThirdPartyError],
11
+ [429, PerpsErrorCode.ServerError],
12
+ [500, PerpsErrorCode.ServerError],
13
+ [502, PerpsErrorCode.ServerError],
14
+ [503, PerpsErrorCode.ServerError],
15
+ [504, PerpsErrorCode.TimeoutError],
16
+ ]);
17
+ function getErrorCodeFromStatus(status) {
18
+ return statusCodeToErrorCode.get(status) ?? PerpsErrorCode.ServerError;
19
+ }
20
+ function createInitialMessage(response) {
21
+ const statusCode = response.status || response.status === 0 ? response.status : '';
22
+ const title = response.statusText || '';
23
+ const status = `${statusCode} ${title}`.trim();
24
+ const reason = status ? `status code ${status}` : 'an unknown error';
25
+ return `Request failed with ${reason}`;
26
+ }
27
+ export class HTTPError extends PerpsError {
28
+ response;
29
+ status;
30
+ url;
31
+ responseBody;
32
+ constructor(response, url) {
33
+ const code = getErrorCodeFromStatus(response.status);
34
+ const message = createInitialMessage(response);
35
+ super(code, message);
36
+ this.name = PerpsErrorName.HTTPError;
37
+ this.response = response;
38
+ this.status = response.status;
39
+ this.url = url;
40
+ }
41
+ async buildAdditionalDetails() {
42
+ try {
43
+ this.responseBody = (await this.response.json());
44
+ if (this.responseBody) {
45
+ // Update code from response body if available
46
+ if (this.responseBody.code) {
47
+ this.code = this.responseBody.code;
48
+ }
49
+ // Append server message
50
+ if (this.responseBody.message) {
51
+ this.message = `${this.message}. ${this.responseBody.message}`;
52
+ }
53
+ }
54
+ }
55
+ catch {
56
+ // Response body parsing failed - use defaults
57
+ }
58
+ return this;
59
+ }
60
+ }
61
+ //# sourceMappingURL=HTTPError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTTPError.js","sourceRoot":"","sources":["../../../src/errors/HTTPError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsErrorName } from './constants.js';
3
+ export declare class PerpsError extends Error {
4
+ code: PerpsErrorCode;
5
+ name: PerpsErrorName;
6
+ constructor(code?: PerpsErrorCode, message?: string);
7
+ static fromError(error: unknown, defaultCode?: PerpsErrorCode): PerpsError;
8
+ }
9
+ //# sourceMappingURL=PerpsError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerpsError.d.ts","sourceRoot":"","sources":["../../../src/errors/PerpsError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,qBAAa,UAAW,SAAQ,KAAK;IACnC,IAAI,EAAE,cAAc,CAAA;IACX,IAAI,iBAA4B;gBAGvC,IAAI,GAAE,cAA4C,EAClD,OAAO,SAA2B;IAQpC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,cAAc,GAAG,UAAU;CAe3E"}
@@ -0,0 +1,23 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { version } from '../version.js';
3
+ import { PerpsErrorName } from './constants.js';
4
+ export class PerpsError extends Error {
5
+ code;
6
+ name = PerpsErrorName.PerpsError;
7
+ constructor(code = PerpsErrorCode.DefaultError, message = 'Unknown error occurred') {
8
+ const errorMessage = `[${PerpsErrorName.PerpsError}] ${message}\nLI.FI Perps SDK version: ${version}`;
9
+ super(errorMessage);
10
+ this.code = code;
11
+ this.name = PerpsErrorName.PerpsError;
12
+ }
13
+ static fromError(error, defaultCode) {
14
+ if (error instanceof PerpsError) {
15
+ return error;
16
+ }
17
+ if (error instanceof Error) {
18
+ return new PerpsError(defaultCode ?? PerpsErrorCode.DefaultError, error.message);
19
+ }
20
+ return new PerpsError(defaultCode ?? PerpsErrorCode.DefaultError, String(error));
21
+ }
22
+ }
23
+ //# sourceMappingURL=PerpsError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerpsError.js","sourceRoot":"","sources":["../../../src/errors/PerpsError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,IAAI,CAAgB;IACX,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;IAEzC,YACE,OAAuB,cAAc,CAAC,YAAY,EAClD,OAAO,GAAG,wBAAwB;QAElC,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC,UAAU,KAAK,OAAO,8BAA8B,OAAO,EAAE,CAAA;QACrG,KAAK,CAAC,YAAY,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,UAAU,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAc,EAAE,WAA4B;QAC3D,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,UAAU,CACnB,WAAW,IAAI,cAAc,CAAC,YAAY,EAC1C,KAAK,CAAC,OAAO,CACd,CAAA;QACH,CAAC;QACD,OAAO,IAAI,UAAU,CACnB,WAAW,IAAI,cAAc,CAAC,YAAY,EAC1C,MAAM,CAAC,KAAK,CAAC,CACd,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ /**
3
+ * Top-level SDK error that wraps all other error types.
4
+ * This is the public-facing error type for the SDK.
5
+ *
6
+ * PerpsSDKError always includes:
7
+ * - A consistent error message format with SDK version
8
+ * - Access to the root cause error via the `cause` property
9
+ * - Stack trace preservation
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * try {
14
+ * await getDexes(client)
15
+ * } catch (error) {
16
+ * if (error instanceof PerpsSDKError) {
17
+ * console.log(error.message) // [PerpsSDKError] message\nSDK version: X
18
+ * console.log(error.cause) // Original error
19
+ * console.log(error.code) // Numeric error code
20
+ * }
21
+ * }
22
+ * ```
23
+ */
24
+ export declare class PerpsSDKError extends Error {
25
+ name: string;
26
+ /** Numeric error code from PerpsErrorCode enum */
27
+ code: PerpsErrorCode;
28
+ /** Original cause of the error */
29
+ cause?: Error;
30
+ constructor(error: Error, message?: string);
31
+ /**
32
+ * Wrap any error in a PerpsSDKError.
33
+ *
34
+ * @param error - The error to wrap
35
+ * @param message - Optional custom message
36
+ * @returns PerpsSDKError instance
37
+ */
38
+ static wrap(error: unknown, message?: string): PerpsSDKError;
39
+ }
40
+ //# sourceMappingURL=PerpsSDKError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerpsSDKError.d.ts","sourceRoot":"","sources":["../../../src/errors/PerpsSDKError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMlD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAC7B,IAAI,SAAuB;IAEpC,kDAAkD;IAClD,IAAI,EAAE,cAAc,CAAA;IAEpB,kCAAkC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAA;gBAEV,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM;IAqB1C;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa;CAa7D"}
@@ -0,0 +1,67 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { version } from '../version.js';
3
+ import { PerpsError } from './PerpsError.js';
4
+ const PERPS_SDK_ERROR_NAME = 'PerpsSDKError';
5
+ /**
6
+ * Top-level SDK error that wraps all other error types.
7
+ * This is the public-facing error type for the SDK.
8
+ *
9
+ * PerpsSDKError always includes:
10
+ * - A consistent error message format with SDK version
11
+ * - Access to the root cause error via the `cause` property
12
+ * - Stack trace preservation
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * try {
17
+ * await getDexes(client)
18
+ * } catch (error) {
19
+ * if (error instanceof PerpsSDKError) {
20
+ * console.log(error.message) // [PerpsSDKError] message\nSDK version: X
21
+ * console.log(error.cause) // Original error
22
+ * console.log(error.code) // Numeric error code
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export class PerpsSDKError extends Error {
28
+ name = PERPS_SDK_ERROR_NAME;
29
+ /** Numeric error code from PerpsErrorCode enum */
30
+ code;
31
+ /** Original cause of the error */
32
+ cause;
33
+ constructor(error, message) {
34
+ // Determine the code
35
+ const code = error instanceof PerpsError ? error.code : PerpsErrorCode.DefaultError;
36
+ // Build the message
37
+ const errorMessage = message ?? error.message;
38
+ const formattedMessage = `[${PERPS_SDK_ERROR_NAME}] ${errorMessage}\nLI.FI Perps SDK version: ${version}`;
39
+ super(formattedMessage);
40
+ this.name = PERPS_SDK_ERROR_NAME;
41
+ this.code = code;
42
+ this.cause = error;
43
+ // Preserve the original stack trace if available
44
+ if (error.stack) {
45
+ this.stack = `${this.stack}\nCaused by: ${error.stack}`;
46
+ }
47
+ }
48
+ /**
49
+ * Wrap any error in a PerpsSDKError.
50
+ *
51
+ * @param error - The error to wrap
52
+ * @param message - Optional custom message
53
+ * @returns PerpsSDKError instance
54
+ */
55
+ static wrap(error, message) {
56
+ if (error instanceof PerpsSDKError) {
57
+ return error;
58
+ }
59
+ if (error instanceof Error) {
60
+ return new PerpsSDKError(error, message);
61
+ }
62
+ // Convert non-Error to Error
63
+ const wrappedError = new Error(String(error));
64
+ return new PerpsSDKError(wrappedError, message);
65
+ }
66
+ }
67
+ //# sourceMappingURL=PerpsSDKError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerpsSDKError.js","sourceRoot":"","sources":["../../../src/errors/PerpsSDKError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,oBAAoB,GAAG,eAAe,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,GAAG,oBAAoB,CAAA;IAEpC,kDAAkD;IAClD,IAAI,CAAgB;IAEpB,kCAAkC;IACzB,KAAK,CAAQ;IAEtB,YAAY,KAAY,EAAE,OAAgB;QACxC,qBAAqB;QACrB,MAAM,IAAI,GACR,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAA;QAExE,oBAAoB;QACpB,MAAM,YAAY,GAAG,OAAO,IAAI,KAAK,CAAC,OAAO,CAAA;QAC7C,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,KAAK,YAAY,8BAA8B,OAAO,EAAE,CAAA;QAEzG,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAEvB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,iDAAiD;QACjD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAA;QACzD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,KAAc,EAAE,OAAgB;QAC1C,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC1C,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsErrorName } from './constants.js';
3
+ import { PerpsError } from './PerpsError.js';
4
+ /**
5
+ * Error thrown when server-side operations fail (network errors, timeouts, etc.)
6
+ */
7
+ export declare class ServerError extends PerpsError {
8
+ name: PerpsErrorName;
9
+ constructor(message: string, code?: PerpsErrorCode);
10
+ /**
11
+ * Create a ServerError for a network failure.
12
+ *
13
+ * @param cause - The original error
14
+ */
15
+ static networkError(cause?: Error): ServerError;
16
+ /**
17
+ * Create a ServerError for a timeout.
18
+ *
19
+ * @param operation - The operation that timed out
20
+ */
21
+ static timeout(operation: string): ServerError;
22
+ }
23
+ //# sourceMappingURL=ServerError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerError.d.ts","sourceRoot":"","sources":["../../../src/errors/ServerError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IAChC,IAAI,iBAA6B;gBAE9B,OAAO,EAAE,MAAM,EAAE,IAAI,iBAA6B;IAQ9D;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW;IAK/C;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;CAM/C"}
@@ -0,0 +1,34 @@
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
+ * Error thrown when server-side operations fail (network errors, timeouts, etc.)
7
+ */
8
+ export class ServerError extends PerpsError {
9
+ name = PerpsErrorName.ServerError;
10
+ constructor(message, code = PerpsErrorCode.ServerError) {
11
+ super(code, message);
12
+ this.name = PerpsErrorName.ServerError;
13
+ // Override message format
14
+ this.message = `[${PerpsErrorName.ServerError}] ${message}\nLI.FI Perps SDK version: ${version}`;
15
+ }
16
+ /**
17
+ * Create a ServerError for a network failure.
18
+ *
19
+ * @param cause - The original error
20
+ */
21
+ static networkError(cause) {
22
+ const message = cause?.message ?? 'Network request failed';
23
+ return new ServerError(message);
24
+ }
25
+ /**
26
+ * Create a ServerError for a timeout.
27
+ *
28
+ * @param operation - The operation that timed out
29
+ */
30
+ static timeout(operation) {
31
+ return new ServerError(`${operation} timed out`, PerpsErrorCode.TimeoutError);
32
+ }
33
+ }
34
+ //# sourceMappingURL=ServerError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerError.js","sourceRoot":"","sources":["../../../src/errors/ServerError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAChC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAA;IAE1C,YAAY,OAAe,EAAE,IAAI,GAAG,cAAc,CAAC,WAAW;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAA;QAEtC,0BAA0B;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,WAAW,KAAK,OAAO,8BAA8B,OAAO,EAAE,CAAA;IAClG,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,KAAa;QAC/B,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,wBAAwB,CAAA;QAC1D,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,SAAiB;QAC9B,OAAO,IAAI,WAAW,CACpB,GAAG,SAAS,YAAY,EACxB,cAAc,CAAC,YAAY,CAC5B,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { PerpsErrorName } from './constants.js';
2
+ import { PerpsError } from './PerpsError.js';
3
+ /**
4
+ * Error thrown when validation fails (invalid parameters, missing required fields, etc.)
5
+ */
6
+ export declare class ValidationError extends PerpsError {
7
+ name: PerpsErrorName;
8
+ constructor(message: string);
9
+ /**
10
+ * Create a ValidationError from a validation failure.
11
+ *
12
+ * @param field - The field that failed validation
13
+ * @param reason - The reason for validation failure
14
+ */
15
+ static field(field: string, reason: string): ValidationError;
16
+ /**
17
+ * Create a ValidationError for a missing required field.
18
+ *
19
+ * @param field - The name of the missing field
20
+ */
21
+ static required(field: string): ValidationError;
22
+ }
23
+ //# sourceMappingURL=ValidationError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationError.d.ts","sourceRoot":"","sources":["../../../src/errors/ValidationError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IACpC,IAAI,iBAAiC;gBAElC,OAAO,EAAE,MAAM;IAQ3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;IAI5D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;CAGhD"}