@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,33 @@
1
+ import type { PricesResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetPricesParams {
4
+ /** DEX to get prices from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Optional list of symbols to filter (e.g., ['BTC', 'ETH']) */
7
+ symbols?: string[];
8
+ }
9
+ /**
10
+ * Get current prices for markets.
11
+ *
12
+ * @param client - The SDK client instance
13
+ * @param params - Request parameters
14
+ * @param options - Request options (e.g., AbortSignal)
15
+ * @returns Map of symbol to price
16
+ * @throws {HTTPError} On API error responses
17
+ * @throws {PerpsError} On network or parsing errors
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const client = createPerpsClient({ integrator: 'my-app' })
22
+ * const { prices } = await getPrices(client, { dex: 'hyperliquid' })
23
+ * console.log(prices) // { BTC: '95000.00', ETH: '3400.00', ... }
24
+ *
25
+ * // Filter by symbols
26
+ * const { prices } = await getPrices(client, {
27
+ * dex: 'hyperliquid',
28
+ * symbols: ['BTC', 'ETH']
29
+ * })
30
+ * ```
31
+ */
32
+ export declare function getPrices(client: PerpsSDKClient, params: GetPricesParams, options?: SDKRequestOptions): Promise<PricesResponse>;
33
+ //# sourceMappingURL=getPrices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPrices.d.ts","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
@@ -0,0 +1,32 @@
1
+ import { buildUrl, request } from '../utils/request.js';
2
+ /**
3
+ * Get current prices for markets.
4
+ *
5
+ * @param client - The SDK client instance
6
+ * @param params - Request parameters
7
+ * @param options - Request options (e.g., AbortSignal)
8
+ * @returns Map of symbol to price
9
+ * @throws {HTTPError} On API error responses
10
+ * @throws {PerpsError} On network or parsing errors
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const client = createPerpsClient({ integrator: 'my-app' })
15
+ * const { prices } = await getPrices(client, { dex: 'hyperliquid' })
16
+ * console.log(prices) // { BTC: '95000.00', ETH: '3400.00', ... }
17
+ *
18
+ * // Filter by symbols
19
+ * const { prices } = await getPrices(client, {
20
+ * dex: 'hyperliquid',
21
+ * symbols: ['BTC', 'ETH']
22
+ * })
23
+ * ```
24
+ */
25
+ export async function getPrices(client, params, options) {
26
+ const url = buildUrl(`${client.config.apiUrl}/prices`, {
27
+ dex: params.dex,
28
+ symbols: params.symbols?.join(','),
29
+ });
30
+ return request(client.config, url, {}, options);
31
+ }
32
+ //# sourceMappingURL=getPrices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPrices.js","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AASvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE;QACrD,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;KACnC,CAAC,CAAA;IACF,OAAO,OAAO,CAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC"}
@@ -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,41 @@
1
+ import { request } from '../utils/request.js';
2
+ /**
3
+ * Submit signed authorizations to the DEX.
4
+ *
5
+ * @param client - The SDK client instance
6
+ * @param params - Request parameters
7
+ * @param options - Request options (e.g., AbortSignal)
8
+ * @returns Results for each authorization action
9
+ * @throws {HTTPError} On API error responses
10
+ * @throws {PerpsError} On network or parsing errors
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const client = createPerpsClient({ integrator: 'my-app' })
15
+ * const { results } = await submitAuthorization(client, {
16
+ * dex: 'hyperliquid',
17
+ * address: '0x1234...',
18
+ * actions: signedActions
19
+ * })
20
+ *
21
+ * for (const result of results) {
22
+ * if (result.success) {
23
+ * console.log(`${result.action} authorized`)
24
+ * } else {
25
+ * console.error(`${result.action} failed: ${result.error}`)
26
+ * }
27
+ * }
28
+ * ```
29
+ */
30
+ export async function submitAuthorization(client, params, options) {
31
+ return request(client.config, `${client.config.apiUrl}/authorization`, {
32
+ method: 'POST',
33
+ body: JSON.stringify({
34
+ dex: params.dex,
35
+ address: params.address,
36
+ signerAddress: params.signerAddress,
37
+ actions: params.actions,
38
+ }),
39
+ }, options);
40
+ }
41
+ //# sourceMappingURL=submitAuthorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitAuthorization.js","sourceRoot":"","sources":["../../../src/services/submitAuthorization.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAa7C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,MAAiC,EACjC,OAA2B;IAE3B,OAAO,OAAO,CACZ,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,gBAAgB,EACvC;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;KACH,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
@@ -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,43 @@
1
+ import { request } from '../utils/request.js';
2
+ /**
3
+ * Submit signed order actions to the DEX.
4
+ *
5
+ * @param client - The SDK client instance
6
+ * @param params - Request parameters
7
+ * @param options - Request options (e.g., AbortSignal)
8
+ * @returns Results for each order action
9
+ * @throws {HTTPError} On API error responses
10
+ * @throws {PerpsError} On network or parsing errors
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const client = createPerpsClient({ integrator: 'my-app' })
15
+ *
16
+ * // After creating and signing order actions
17
+ * const { results } = await submitOrder(client, {
18
+ * dex: 'hyperliquid',
19
+ * address: '0x1234...',
20
+ * actions: signedActions
21
+ * })
22
+ *
23
+ * for (const result of results) {
24
+ * if (result.success) {
25
+ * console.log(`Order placed: ${result.orderId}`)
26
+ * } else {
27
+ * console.error(`Order failed: ${result.error}`)
28
+ * }
29
+ * }
30
+ * ```
31
+ */
32
+ export async function submitOrder(client, params, options) {
33
+ return request(client.config, `${client.config.apiUrl}/order`, {
34
+ method: 'POST',
35
+ body: JSON.stringify({
36
+ dex: params.dex,
37
+ address: params.address,
38
+ signerAddress: params.signerAddress,
39
+ actions: params.actions,
40
+ }),
41
+ }, options);
42
+ }
43
+ //# sourceMappingURL=submitOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitOrder.js","sourceRoot":"","sources":["../../../src/services/submitOrder.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAa7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAsB,EACtB,MAAyB,EACzB,OAA2B;IAE3B,OAAO,OAAO,CACZ,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,QAAQ,EAC/B;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;KACH,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
@@ -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,82 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { HTTPError } from '../errors/HTTPError.js';
3
+ import { PerpsError } from '../errors/PerpsError.js';
4
+ import { version } from '../version.js';
5
+ import { sleep } from './sleep.js';
6
+ const DEFAULT_RETRIES = 1;
7
+ /**
8
+ * Make an HTTP request to the Perps API.
9
+ *
10
+ * @param config - SDK configuration
11
+ * @param url - The full URL to request
12
+ * @param options - Fetch options plus retries
13
+ * @param sdkOptions - SDK-specific options (signal, etc.)
14
+ * @returns Parsed JSON response
15
+ * @throws {HTTPError} On non-2xx responses
16
+ * @throws {PerpsError} On network or parsing errors
17
+ */
18
+ export async function request(config, url, options = {}, sdkOptions) {
19
+ // Wait for API health check to pass before making requests
20
+ if (config.readyPromise) {
21
+ await config.readyPromise;
22
+ }
23
+ const retries = options.retries ?? DEFAULT_RETRIES;
24
+ const headers = {
25
+ 'Content-Type': 'application/json',
26
+ 'x-lifi-integrator': config.integrator,
27
+ 'x-lifi-perps-sdk': version,
28
+ ...options.headers,
29
+ };
30
+ if (config.apiKey) {
31
+ headers['x-lifi-api-key'] = config.apiKey;
32
+ }
33
+ // Merge signal from sdkOptions into options
34
+ let finalOptions = {
35
+ ...options,
36
+ headers,
37
+ signal: sdkOptions?.signal ?? options.signal,
38
+ };
39
+ // Apply request interceptor if configured
40
+ if (config.requestInterceptor) {
41
+ finalOptions = await config.requestInterceptor(url, finalOptions);
42
+ }
43
+ try {
44
+ const response = await fetch(url, finalOptions);
45
+ if (!response.ok) {
46
+ const error = new HTTPError(response, url);
47
+ await error.buildAdditionalDetails();
48
+ // Retry on 5xx errors
49
+ if (retries > 0 && response.status >= 500) {
50
+ await sleep(500);
51
+ return request(config, url, { ...options, retries: retries - 1 }, sdkOptions);
52
+ }
53
+ throw error;
54
+ }
55
+ return (await response.json());
56
+ }
57
+ catch (error) {
58
+ if (error instanceof HTTPError || error instanceof PerpsError) {
59
+ throw error;
60
+ }
61
+ // Network error or other fetch failure
62
+ throw new PerpsError(PerpsErrorCode.ServerError, error instanceof Error ? error.message : 'Request failed');
63
+ }
64
+ }
65
+ /**
66
+ * Build a URL with query parameters.
67
+ *
68
+ * @param baseUrl - The base URL
69
+ * @param params - Query parameters (undefined values are filtered out)
70
+ * @returns Full URL with query string
71
+ */
72
+ export function buildUrl(baseUrl, params) {
73
+ const searchParams = new URLSearchParams();
74
+ for (const [key, value] of Object.entries(params)) {
75
+ if (value !== undefined) {
76
+ searchParams.set(key, String(value));
77
+ }
78
+ }
79
+ const queryString = searchParams.toString();
80
+ return queryString ? `${baseUrl}?${queryString}` : baseUrl;
81
+ }
82
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKlD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAOlC,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAuB,EACvB,GAAW,EACX,UAA0B,EAAE,EAC5B,UAA8B;IAE9B,2DAA2D;IAC3D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,YAAY,CAAA;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAA;IAElD,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,mBAAmB,EAAE,MAAM,CAAC,UAAU;QACtC,kBAAkB,EAAE,OAAO;QAC3B,GAAI,OAAO,CAAC,OAAkC;KAC/C,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IAC3C,CAAC;IAED,4CAA4C;IAC5C,IAAI,YAAY,GAAgB;QAC9B,GAAG,OAAO;QACV,OAAO;QACP,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM;KAC7C,CAAA;IAED,0CAA0C;IAC1C,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,YAAY,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAE/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAA;YAEpC,sBAAsB;YACtB,IAAI,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC1C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,OAAO,OAAO,CACZ,MAAM,EACN,GAAG,EACH,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,EACpC,UAAU,CACX,CAAA;YACH,CAAC;YAED,MAAM,KAAK,CAAA;QACb,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAC9D,MAAM,KAAK,CAAA;QACb,CAAC;QAED,uCAAuC;QACvC,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,WAAW,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAC1D,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,OAAe,EACf,MAA6D;IAE7D,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAA;IAE1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAA;IAC3C,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;AAC5D,CAAC"}
@@ -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,25 @@
1
+ import { privateKeyToAccount } from 'viem/accounts';
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 async function signTypedData(privateKey, typedData) {
15
+ const account = privateKeyToAccount(privateKey);
16
+ // viem's signTypedData expects the typed data in a specific format
17
+ const signature = await account.signTypedData({
18
+ domain: typedData.domain,
19
+ types: typedData.types,
20
+ primaryType: typedData.primaryType,
21
+ message: typedData.message,
22
+ });
23
+ return signature;
24
+ }
25
+ //# sourceMappingURL=signTypedData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../src/utils/signTypedData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAe,EACf,SAAyB;IAEzB,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAE/C,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;QAC5C,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -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,2 @@
1
+ export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
2
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/utils/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,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"}
@@ -0,0 +1,3 @@
1
+ export const name = '@lifi/perps-sdk';
2
+ export const version = '0.1.1-alpha.0';
3
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAA"}
@@ -0,0 +1,45 @@
1
+ import type { Address, Hex } from '@lifi/perps-types';
2
+ import type { Agent, StorageAdapter } from './types.js';
3
+ /**
4
+ * Manages agent keypairs for USER_AGENT signing mode.
5
+ * Agent keys are stored per user address + DEX combination.
6
+ */
7
+ export declare class AgentManager {
8
+ private storage;
9
+ private cache;
10
+ constructor(storage?: StorageAdapter);
11
+ /**
12
+ * Get the storage key for an agent.
13
+ */
14
+ private storageKey;
15
+ /**
16
+ * Get an existing agent for a user + DEX pair.
17
+ *
18
+ * @throws {PerpsError} If agent not found
19
+ */
20
+ getAgent(address: Address, dex: string): Promise<Agent>;
21
+ /**
22
+ * Get an existing agent or create a new one.
23
+ */
24
+ getOrCreateAgent(address: Address, dex: string): Promise<Agent>;
25
+ /**
26
+ * Check if an agent exists for a user + DEX pair.
27
+ */
28
+ hasAgent(address: Address, dex: string): Promise<boolean>;
29
+ /**
30
+ * Remove an agent for a user + DEX pair.
31
+ * Call this when the user revokes agent authorization.
32
+ */
33
+ removeAgent(address: Address, dex: string): Promise<void>;
34
+ /**
35
+ * Import an existing agent keypair.
36
+ * Useful for restoring from backup or using a specific key.
37
+ */
38
+ importAgent(address: Address, dex: string, privateKey: Hex): Promise<Agent>;
39
+ /**
40
+ * Clear all cached agents.
41
+ * Does not remove from storage.
42
+ */
43
+ clearCache(): void;
44
+ }
45
+ //# sourceMappingURL=AgentManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentManager.d.ts","sourceRoot":"","sources":["../../../src/agent/AgentManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAMrD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIvD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAAgC;gBAEjC,OAAO,CAAC,EAAE,cAAc;IAIpC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAuB7D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsBrE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D;;;OAGG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,GAAG,GACd,OAAO,CAAC,KAAK,CAAC;IAejB;;;OAGG;IACH,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,12 @@
1
+ import type { StorageAdapter } from './types.js';
2
+ /**
3
+ * localStorage adapter for browser environments.
4
+ * Agent keys are stored as JSON strings with the key pattern:
5
+ * `lifi-perps-agent:{address}:{dex}`
6
+ */
7
+ export declare const localStorageAdapter: StorageAdapter;
8
+ /**
9
+ * In-memory storage adapter for testing or server-side use.
10
+ */
11
+ export declare function createMemoryStorage(): StorageAdapter;
12
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/agent/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,cA2BjC,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAkBpD"}
@@ -0,0 +1,23 @@
1
+ import type { Address, Hex } from '@lifi/perps-types';
2
+ /**
3
+ * Agent keypair for signing trading actions.
4
+ */
5
+ export interface Agent {
6
+ /** Agent wallet address */
7
+ address: Address;
8
+ /** Agent private key */
9
+ privateKey: Hex;
10
+ }
11
+ /**
12
+ * Storage adapter interface for persisting agent keys.
13
+ * Implement this interface to use custom storage (e.g., encrypted storage, database).
14
+ */
15
+ export interface StorageAdapter {
16
+ /** Get a value by key */
17
+ get(key: string): Promise<string | null>;
18
+ /** Set a value by key */
19
+ set(key: string, value: string): Promise<void>;
20
+ /** Remove a value by key */
21
+ remove(key: string): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,wBAAwB;IACxB,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxC,yBAAyB;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,4BAA4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC"}