@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,42 @@
1
+ import type { Address, AuthorizationsResponse, SignedAuthorization } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface SubmitAuthorizationParams {
4
+ /** DEX to authorize (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Wallet address */
7
+ address: Address;
8
+ /** Address of the signer (for agent mode, this is the agent address) */
9
+ signerAddress?: Address;
10
+ /** Signed authorization actions */
11
+ actions: SignedAuthorization[];
12
+ }
13
+ /**
14
+ * Submit signed authorizations to the DEX.
15
+ *
16
+ * @param client - The SDK client instance
17
+ * @param params - Request parameters
18
+ * @param options - Request options (e.g., AbortSignal)
19
+ * @returns Results for each authorization action
20
+ * @throws {HTTPError} On API error responses
21
+ * @throws {PerpsError} On network or parsing errors
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const client = createPerpsClient({ integrator: 'my-app' })
26
+ * const { results } = await submitAuthorization(client, {
27
+ * dex: 'hyperliquid',
28
+ * address: '0x1234...',
29
+ * actions: signedActions
30
+ * })
31
+ *
32
+ * for (const result of results) {
33
+ * if (result.success) {
34
+ * console.log(`${result.action} authorized`)
35
+ * } else {
36
+ * console.error(`${result.action} failed: ${result.error}`)
37
+ * }
38
+ * }
39
+ * ```
40
+ */
41
+ export declare function submitAuthorization(client: PerpsSDKClient, params: SubmitAuthorizationParams, options?: SDKRequestOptions): Promise<AuthorizationsResponse>;
42
+ //# sourceMappingURL=submitAuthorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitAuthorization.d.ts","sourceRoot":"","sources":["../../../src/services/submitAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mCAAmC;IACnC,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAejC"}
@@ -0,0 +1,44 @@
1
+ import type { Address, SignedOrderAction, SubmitOrderResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface SubmitOrderParams {
4
+ /** DEX to submit order to (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Wallet address */
7
+ address: Address;
8
+ /** Address of the signer (for agent mode, this is the agent address) */
9
+ signerAddress?: Address;
10
+ /** Signed order actions */
11
+ actions: SignedOrderAction[];
12
+ }
13
+ /**
14
+ * Submit signed order actions to the DEX.
15
+ *
16
+ * @param client - The SDK client instance
17
+ * @param params - Request parameters
18
+ * @param options - Request options (e.g., AbortSignal)
19
+ * @returns Results for each order action
20
+ * @throws {HTTPError} On API error responses
21
+ * @throws {PerpsError} On network or parsing errors
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const client = createPerpsClient({ integrator: 'my-app' })
26
+ *
27
+ * // After creating and signing order actions
28
+ * const { results } = await submitOrder(client, {
29
+ * dex: 'hyperliquid',
30
+ * address: '0x1234...',
31
+ * actions: signedActions
32
+ * })
33
+ *
34
+ * for (const result of results) {
35
+ * if (result.success) {
36
+ * console.log(`Order placed: ${result.orderId}`)
37
+ * } else {
38
+ * console.error(`Order failed: ${result.error}`)
39
+ * }
40
+ * }
41
+ * ```
42
+ */
43
+ export declare function submitOrder(client: PerpsSDKClient, params: SubmitOrderParams, options?: SDKRequestOptions): Promise<SubmitOrderResponse>;
44
+ //# sourceMappingURL=submitOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitOrder.d.ts","sourceRoot":"","sources":["../../../src/services/submitOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,2BAA2B;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAe9B"}
@@ -0,0 +1,26 @@
1
+ import type { PerpsBaseConfig, SDKRequestOptions } from '../client/createPerpsClient.js';
2
+ export interface RequestOptions extends RequestInit {
3
+ /** Number of retries on 5xx errors. Default: 1 */
4
+ retries?: number;
5
+ }
6
+ /**
7
+ * Make an HTTP request to the Perps API.
8
+ *
9
+ * @param config - SDK configuration
10
+ * @param url - The full URL to request
11
+ * @param options - Fetch options plus retries
12
+ * @param sdkOptions - SDK-specific options (signal, etc.)
13
+ * @returns Parsed JSON response
14
+ * @throws {HTTPError} On non-2xx responses
15
+ * @throws {PerpsError} On network or parsing errors
16
+ */
17
+ export declare function request<T>(config: PerpsBaseConfig, url: string, options?: RequestOptions, sdkOptions?: SDKRequestOptions): Promise<T>;
18
+ /**
19
+ * Build a URL with query parameters.
20
+ *
21
+ * @param baseUrl - The base URL
22
+ * @param params - Query parameters (undefined values are filtered out)
23
+ * @returns Full URL with query string
24
+ */
25
+ export declare function buildUrl(baseUrl: string, params: Record<string, string | number | boolean | undefined>): string;
26
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAMvC,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,EAC5B,UAAU,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAgEZ;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,MAAM,CAWR"}
@@ -0,0 +1,15 @@
1
+ import type { Hex, PerpsTypedData } from '@lifi/perps-types';
2
+ /**
3
+ * Sign EIP-712 typed data with a private key.
4
+ *
5
+ * @param privateKey - The private key to sign with
6
+ * @param typedData - The typed data to sign
7
+ * @returns The signature as a hex string
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const signature = await signTypedData(agentPrivateKey, typedData)
12
+ * ```
13
+ */
14
+ export declare function signTypedData(privateKey: Hex, typedData: PerpsTypedData): Promise<Hex>;
15
+ //# sourceMappingURL=signTypedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAG5D;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,GAAG,EACf,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,CAYd"}
@@ -0,0 +1,2 @@
1
+ export declare const sleep: (ms: number) => Promise<void>;
2
+ //# sourceMappingURL=sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const name = "@lifi/perps-sdk";
2
+ export declare const version = "0.1.1-alpha.0";
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,oBAAoB,CAAA;AACrC,eAAO,MAAM,OAAO,kBAAkB,CAAA"}
package/package.json ADDED
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "@lifi/perps-sdk",
3
+ "version": "0.1.1-alpha.0",
4
+ "description": "LI.FI Perps SDK for perpetuals trading",
5
+ "homepage": "https://github.com/lifinance/perps-sdk",
6
+ "bugs": {
7
+ "url": "https://github.com/lifinance/perps-sdk/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/lifinance/perps-sdk.git"
12
+ },
13
+ "engines": {
14
+ "node": ">=24"
15
+ },
16
+ "license": "Apache-2.0",
17
+ "author": "LI.FI <dev@li.fi>",
18
+ "type": "module",
19
+ "sideEffects": false,
20
+ "main": "./dist/cjs/index.js",
21
+ "module": "./dist/esm/index.js",
22
+ "types": "./dist/types/index.d.ts",
23
+ "typings": "./dist/types/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/types/index.d.ts",
27
+ "import": "./dist/esm/index.js",
28
+ "default": "./dist/cjs/index.js"
29
+ },
30
+ "./package.json": "./package.json"
31
+ },
32
+ "dependencies": {
33
+ "@lifi/perps-types": "^0.1.1-alpha.0",
34
+ "viem": "^2.21.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^25.2.3",
38
+ "@biomejs/biome": "^2.3.13",
39
+ "@commitlint/cli": "^20.3.1",
40
+ "@commitlint/config-conventional": "^20.3.1",
41
+ "@vitest/coverage-v8": "^2.1.8",
42
+ "husky": "^9.1.7",
43
+ "knip": "^5.82.1",
44
+ "madge": "^8.0.0",
45
+ "msw": "^2.7.0",
46
+ "standard-version": "^9.5.0",
47
+ "typescript": "^5.7.2",
48
+ "vitest": "^2.1.8"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ },
53
+ "files": [
54
+ "dist/**",
55
+ "!dist/**/*.tsbuildinfo",
56
+ "src/**/*.ts",
57
+ "!src/**/*.spec.ts",
58
+ "!src/**/*.test.ts",
59
+ "!src/**/*.mock.ts",
60
+ "!src/**/*.handlers.ts",
61
+ "!src/**/*.tsbuildinfo",
62
+ "!**/__mocks__/**",
63
+ "!*.tmp",
64
+ "!*.env",
65
+ "!tsconfig.json"
66
+ ],
67
+ "keywords": [
68
+ "perps",
69
+ "perpetuals",
70
+ "trading",
71
+ "defi",
72
+ "ethereum",
73
+ "lifi",
74
+ "sdk",
75
+ "viem",
76
+ "hyperliquid"
77
+ ],
78
+ "scripts": {
79
+ "build": "pnpm clean && pnpm build:version && pnpm build:cjs && pnpm build:esm && pnpm build:types && pnpm build:clean",
80
+ "build:cjs": "tsc --project ./tsconfig.json --module commonjs --outDir ./dist/cjs --removeComments --verbatimModuleSyntax false && mkdir -p ./dist/cjs && printf '{\"type\":\"commonjs\"}' > ./dist/cjs/package.json",
81
+ "build:esm": "tsc --project ./tsconfig.json --module es2015 --outDir ./dist/esm && mkdir -p ./dist/esm && printf '{\"type\": \"module\",\"sideEffects\":false}' > ./dist/esm/package.json",
82
+ "build:types": "tsc --project ./tsconfig.json --module esnext --declarationDir ./dist/types --emitDeclarationOnly --declaration --declarationMap",
83
+ "build:clean": "rm -rf tsconfig.tsbuildinfo ./dist/tsconfig.tsbuildinfo",
84
+ "build:version": "node scripts/version.js",
85
+ "clean": "pnpm build:clean && rm -rf dist",
86
+ "check": "biome check",
87
+ "check:write": "biome check --write",
88
+ "check:types": "tsc --noEmit",
89
+ "check:circular-deps": "madge --circular $(find ./src -name '*.ts')",
90
+ "knip:check": "knip --dependencies --files --no-config-hints --exclude binaries",
91
+ "knip:write": "pnpm knip:check --fix",
92
+ "release": "standard-version -a -s",
93
+ "release:alpha": "standard-version -a -s --prerelease alpha --skip.changelog",
94
+ "release:beta": "standard-version -a -s --prerelease beta --skip.changelog",
95
+ "test": "vitest --run",
96
+ "test:cov": "vitest --run --coverage",
97
+ "test:unit": "vitest --run .unit.spec.ts --passWithNoTests",
98
+ "pre-commit": "pnpm check && pnpm check:types && pnpm check:circular-deps && pnpm knip:check",
99
+ "pre-push": "pnpm test:unit",
100
+ "postinstall": "husky"
101
+ }
102
+ }
@@ -0,0 +1,135 @@
1
+ import type { Address, Hex } from '@lifi/perps-types'
2
+ import { PerpsErrorCode } from '@lifi/perps-types'
3
+ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'
4
+ import { PerpsErrorMessage } from '../errors/constants.js'
5
+ import { PerpsError } from '../errors/PerpsError.js'
6
+ import { localStorageAdapter } from './storage.js'
7
+ import type { Agent, StorageAdapter } from './types.js'
8
+
9
+ const STORAGE_PREFIX = 'lifi-perps-agent'
10
+
11
+ /**
12
+ * Manages agent keypairs for USER_AGENT signing mode.
13
+ * Agent keys are stored per user address + DEX combination.
14
+ */
15
+ export class AgentManager {
16
+ private storage: StorageAdapter
17
+ private cache: Map<string, Agent> = new Map()
18
+
19
+ constructor(storage?: StorageAdapter) {
20
+ this.storage = storage ?? localStorageAdapter
21
+ }
22
+
23
+ /**
24
+ * Get the storage key for an agent.
25
+ */
26
+ private storageKey(address: Address, dex: string): string {
27
+ return `${STORAGE_PREFIX}:${address.toLowerCase()}:${dex.toLowerCase()}`
28
+ }
29
+
30
+ /**
31
+ * Get an existing agent for a user + DEX pair.
32
+ *
33
+ * @throws {PerpsError} If agent not found
34
+ */
35
+ async getAgent(address: Address, dex: string): Promise<Agent> {
36
+ const key = this.storageKey(address, dex)
37
+
38
+ // Check cache first
39
+ const cached = this.cache.get(key)
40
+ if (cached) {
41
+ return cached
42
+ }
43
+
44
+ // Check storage
45
+ const stored = await this.storage.get(key)
46
+ if (stored) {
47
+ const agent = JSON.parse(stored) as Agent
48
+ this.cache.set(key, agent)
49
+ return agent
50
+ }
51
+
52
+ throw new PerpsError(
53
+ PerpsErrorCode.AgentUnauthorized,
54
+ PerpsErrorMessage.AgentNotFound
55
+ )
56
+ }
57
+
58
+ /**
59
+ * Get an existing agent or create a new one.
60
+ */
61
+ async getOrCreateAgent(address: Address, dex: string): Promise<Agent> {
62
+ try {
63
+ return await this.getAgent(address, dex)
64
+ } catch {
65
+ // Generate new agent
66
+ const privateKey = generatePrivateKey()
67
+ const account = privateKeyToAccount(privateKey)
68
+
69
+ const agent: Agent = {
70
+ address: account.address,
71
+ privateKey,
72
+ }
73
+
74
+ // Store
75
+ const key = this.storageKey(address, dex)
76
+ await this.storage.set(key, JSON.stringify(agent))
77
+ this.cache.set(key, agent)
78
+
79
+ return agent
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Check if an agent exists for a user + DEX pair.
85
+ */
86
+ async hasAgent(address: Address, dex: string): Promise<boolean> {
87
+ try {
88
+ await this.getAgent(address, dex)
89
+ return true
90
+ } catch {
91
+ return false
92
+ }
93
+ }
94
+
95
+ /**
96
+ * Remove an agent for a user + DEX pair.
97
+ * Call this when the user revokes agent authorization.
98
+ */
99
+ async removeAgent(address: Address, dex: string): Promise<void> {
100
+ const key = this.storageKey(address, dex)
101
+ this.cache.delete(key)
102
+ await this.storage.remove(key)
103
+ }
104
+
105
+ /**
106
+ * Import an existing agent keypair.
107
+ * Useful for restoring from backup or using a specific key.
108
+ */
109
+ async importAgent(
110
+ address: Address,
111
+ dex: string,
112
+ privateKey: Hex
113
+ ): Promise<Agent> {
114
+ const account = privateKeyToAccount(privateKey)
115
+
116
+ const agent: Agent = {
117
+ address: account.address,
118
+ privateKey,
119
+ }
120
+
121
+ const key = this.storageKey(address, dex)
122
+ await this.storage.set(key, JSON.stringify(agent))
123
+ this.cache.set(key, agent)
124
+
125
+ return agent
126
+ }
127
+
128
+ /**
129
+ * Clear all cached agents.
130
+ * Does not remove from storage.
131
+ */
132
+ clearCache(): void {
133
+ this.cache.clear()
134
+ }
135
+ }
@@ -0,0 +1,58 @@
1
+ import type { StorageAdapter } from './types.js'
2
+
3
+ /**
4
+ * localStorage adapter for browser environments.
5
+ * Agent keys are stored as JSON strings with the key pattern:
6
+ * `lifi-perps-agent:{address}:{dex}`
7
+ */
8
+ export const localStorageAdapter: StorageAdapter = {
9
+ get: (key: string): Promise<string | null> => {
10
+ try {
11
+ return Promise.resolve(localStorage.getItem(key))
12
+ } catch {
13
+ // localStorage not available (e.g., SSR)
14
+ return Promise.resolve(null)
15
+ }
16
+ },
17
+
18
+ set: (key: string, value: string): Promise<void> => {
19
+ try {
20
+ localStorage.setItem(key, value)
21
+ } catch {
22
+ // localStorage not available
23
+ }
24
+ return Promise.resolve()
25
+ },
26
+
27
+ remove: (key: string): Promise<void> => {
28
+ try {
29
+ localStorage.removeItem(key)
30
+ } catch {
31
+ // localStorage not available
32
+ }
33
+ return Promise.resolve()
34
+ },
35
+ }
36
+
37
+ /**
38
+ * In-memory storage adapter for testing or server-side use.
39
+ */
40
+ export function createMemoryStorage(): StorageAdapter {
41
+ const store = new Map<string, string>()
42
+
43
+ return {
44
+ get: (key: string): Promise<string | null> => {
45
+ return Promise.resolve(store.get(key) ?? null)
46
+ },
47
+
48
+ set: (key: string, value: string): Promise<void> => {
49
+ store.set(key, value)
50
+ return Promise.resolve()
51
+ },
52
+
53
+ remove: (key: string): Promise<void> => {
54
+ store.delete(key)
55
+ return Promise.resolve()
56
+ },
57
+ }
58
+ }
@@ -0,0 +1,24 @@
1
+ import type { Address, Hex } from '@lifi/perps-types'
2
+
3
+ /**
4
+ * Agent keypair for signing trading actions.
5
+ */
6
+ export interface Agent {
7
+ /** Agent wallet address */
8
+ address: Address
9
+ /** Agent private key */
10
+ privateKey: Hex
11
+ }
12
+
13
+ /**
14
+ * Storage adapter interface for persisting agent keys.
15
+ * Implement this interface to use custom storage (e.g., encrypted storage, database).
16
+ */
17
+ export interface StorageAdapter {
18
+ /** Get a value by key */
19
+ get(key: string): Promise<string | null>
20
+ /** Set a value by key */
21
+ set(key: string, value: string): Promise<void>
22
+ /** Remove a value by key */
23
+ remove(key: string): Promise<void>
24
+ }