@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,58 @@
1
+ import type { OhlcvInterval, OhlcvResponse } from '@lifi/perps-types'
2
+ import type {
3
+ PerpsSDKClient,
4
+ SDKRequestOptions,
5
+ } from '../client/createPerpsClient.js'
6
+ import { buildUrl, request } from '../utils/request.js'
7
+
8
+ export interface GetOhlcvParams {
9
+ /** DEX to get OHLCV from (e.g., 'hyperliquid') */
10
+ dex: string
11
+ /** Market symbol (e.g., 'BTC') */
12
+ symbol: string
13
+ /** Candle interval */
14
+ interval: OhlcvInterval
15
+ /** Start time (Unix timestamp in milliseconds) */
16
+ startTime?: number
17
+ /** End time (Unix timestamp in milliseconds) */
18
+ endTime?: number
19
+ /** Maximum number of candles to return */
20
+ limit?: number
21
+ }
22
+
23
+ /**
24
+ * Get OHLCV (candlestick) data for a market.
25
+ *
26
+ * @param client - The SDK client instance
27
+ * @param params - Request parameters
28
+ * @param options - Request options (e.g., AbortSignal)
29
+ * @returns OHLCV candle data
30
+ * @throws {HTTPError} On API error responses
31
+ * @throws {PerpsError} On network or parsing errors
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const client = createPerpsClient({ integrator: 'my-app' })
36
+ * const { candles } = await getOhlcv(client, {
37
+ * dex: 'hyperliquid',
38
+ * symbol: 'BTC',
39
+ * interval: '1h',
40
+ * limit: 100
41
+ * })
42
+ * console.log(candles) // [{ t: 1704067200000, o: '94000', h: '95000', ... }]
43
+ * ```
44
+ */
45
+ export async function getOhlcv(
46
+ client: PerpsSDKClient,
47
+ params: GetOhlcvParams,
48
+ options?: SDKRequestOptions
49
+ ): Promise<OhlcvResponse> {
50
+ const url = buildUrl(`${client.config.apiUrl}/ohlcv/${params.symbol}`, {
51
+ dex: params.dex,
52
+ interval: params.interval,
53
+ startTime: params.startTime,
54
+ endTime: params.endTime,
55
+ limit: params.limit,
56
+ })
57
+ return request<OhlcvResponse>(client.config, url, {}, options)
58
+ }
@@ -0,0 +1,48 @@
1
+ import type { Address, Order } from '@lifi/perps-types'
2
+ import type {
3
+ PerpsSDKClient,
4
+ SDKRequestOptions,
5
+ } from '../client/createPerpsClient.js'
6
+ import { buildUrl, request } from '../utils/request.js'
7
+
8
+ export interface GetOrderParams {
9
+ /** DEX to get order from (e.g., 'hyperliquid') */
10
+ dex: string
11
+ /** Wallet address */
12
+ address: Address
13
+ /** Order ID */
14
+ id: string
15
+ }
16
+
17
+ /**
18
+ * Get a specific order by ID.
19
+ *
20
+ * @param client - The SDK client instance
21
+ * @param params - Request parameters
22
+ * @param options - Request options (e.g., AbortSignal)
23
+ * @returns Order details
24
+ * @throws {HTTPError} On API error responses (e.g., 404 if order not found)
25
+ * @throws {PerpsError} On network or parsing errors
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const client = createPerpsClient({ integrator: 'my-app' })
30
+ * const order = await getOrder(client, {
31
+ * dex: 'hyperliquid',
32
+ * address: '0x1234...',
33
+ * id: '123456'
34
+ * })
35
+ * console.log(order) // { orderId: '123456', status: 'FILLED', ... }
36
+ * ```
37
+ */
38
+ export async function getOrder(
39
+ client: PerpsSDKClient,
40
+ params: GetOrderParams,
41
+ options?: SDKRequestOptions
42
+ ): Promise<Order> {
43
+ const url = buildUrl(`${client.config.apiUrl}/order/${params.id}`, {
44
+ dex: params.dex,
45
+ address: params.address,
46
+ })
47
+ return request<Order>(client.config, url, {}, options)
48
+ }
@@ -0,0 +1,49 @@
1
+ import type { OrderbookResponse } from '@lifi/perps-types'
2
+ import type {
3
+ PerpsSDKClient,
4
+ SDKRequestOptions,
5
+ } from '../client/createPerpsClient.js'
6
+ import { buildUrl, request } from '../utils/request.js'
7
+
8
+ export interface GetOrderbookParams {
9
+ /** DEX to get orderbook from (e.g., 'hyperliquid') */
10
+ dex: string
11
+ /** Market symbol (e.g., 'BTC') */
12
+ symbol: string
13
+ /** Number of levels to return (default varies by DEX) */
14
+ depth?: number
15
+ }
16
+
17
+ /**
18
+ * Get orderbook for a market.
19
+ *
20
+ * @param client - The SDK client instance
21
+ * @param params - Request parameters
22
+ * @param options - Request options (e.g., AbortSignal)
23
+ * @returns Orderbook with bids and asks
24
+ * @throws {HTTPError} On API error responses
25
+ * @throws {PerpsError} On network or parsing errors
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const client = createPerpsClient({ integrator: 'my-app' })
30
+ * const { bids, asks } = await getOrderbook(client, {
31
+ * dex: 'hyperliquid',
32
+ * symbol: 'BTC',
33
+ * depth: 20
34
+ * })
35
+ * console.log(bids[0]) // { price: '94999.50', size: '1.5' }
36
+ * console.log(asks[0]) // { price: '95000.50', size: '2.0' }
37
+ * ```
38
+ */
39
+ export async function getOrderbook(
40
+ client: PerpsSDKClient,
41
+ params: GetOrderbookParams,
42
+ options?: SDKRequestOptions
43
+ ): Promise<OrderbookResponse> {
44
+ const url = buildUrl(`${client.config.apiUrl}/orderbook/${params.symbol}`, {
45
+ dex: params.dex,
46
+ depth: params.depth,
47
+ })
48
+ return request<OrderbookResponse>(client.config, url, {}, options)
49
+ }
@@ -0,0 +1,48 @@
1
+ import type { PricesResponse } from '@lifi/perps-types'
2
+ import type {
3
+ PerpsSDKClient,
4
+ SDKRequestOptions,
5
+ } from '../client/createPerpsClient.js'
6
+ import { buildUrl, request } from '../utils/request.js'
7
+
8
+ export interface GetPricesParams {
9
+ /** DEX to get prices from (e.g., 'hyperliquid') */
10
+ dex: string
11
+ /** Optional list of symbols to filter (e.g., ['BTC', 'ETH']) */
12
+ symbols?: string[]
13
+ }
14
+
15
+ /**
16
+ * Get current prices for markets.
17
+ *
18
+ * @param client - The SDK client instance
19
+ * @param params - Request parameters
20
+ * @param options - Request options (e.g., AbortSignal)
21
+ * @returns Map of symbol to price
22
+ * @throws {HTTPError} On API error responses
23
+ * @throws {PerpsError} On network or parsing errors
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const client = createPerpsClient({ integrator: 'my-app' })
28
+ * const { prices } = await getPrices(client, { dex: 'hyperliquid' })
29
+ * console.log(prices) // { BTC: '95000.00', ETH: '3400.00', ... }
30
+ *
31
+ * // Filter by symbols
32
+ * const { prices } = await getPrices(client, {
33
+ * dex: 'hyperliquid',
34
+ * symbols: ['BTC', 'ETH']
35
+ * })
36
+ * ```
37
+ */
38
+ export async function getPrices(
39
+ client: PerpsSDKClient,
40
+ params: GetPricesParams,
41
+ options?: SDKRequestOptions
42
+ ): Promise<PricesResponse> {
43
+ const url = buildUrl(`${client.config.apiUrl}/prices`, {
44
+ dex: params.dex,
45
+ symbols: params.symbols?.join(','),
46
+ })
47
+ return request<PricesResponse>(client.config, url, {}, options)
48
+ }
@@ -0,0 +1,70 @@
1
+ import type {
2
+ Address,
3
+ AuthorizationsResponse,
4
+ SignedAuthorization,
5
+ } from '@lifi/perps-types'
6
+ import type {
7
+ PerpsSDKClient,
8
+ SDKRequestOptions,
9
+ } from '../client/createPerpsClient.js'
10
+ import { request } from '../utils/request.js'
11
+
12
+ export interface SubmitAuthorizationParams {
13
+ /** DEX to authorize (e.g., 'hyperliquid') */
14
+ dex: string
15
+ /** Wallet address */
16
+ address: Address
17
+ /** Address of the signer (for agent mode, this is the agent address) */
18
+ signerAddress?: Address
19
+ /** Signed authorization actions */
20
+ actions: SignedAuthorization[]
21
+ }
22
+
23
+ /**
24
+ * Submit signed authorizations to the DEX.
25
+ *
26
+ * @param client - The SDK client instance
27
+ * @param params - Request parameters
28
+ * @param options - Request options (e.g., AbortSignal)
29
+ * @returns Results for each authorization action
30
+ * @throws {HTTPError} On API error responses
31
+ * @throws {PerpsError} On network or parsing errors
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const client = createPerpsClient({ integrator: 'my-app' })
36
+ * const { results } = await submitAuthorization(client, {
37
+ * dex: 'hyperliquid',
38
+ * address: '0x1234...',
39
+ * actions: signedActions
40
+ * })
41
+ *
42
+ * for (const result of results) {
43
+ * if (result.success) {
44
+ * console.log(`${result.action} authorized`)
45
+ * } else {
46
+ * console.error(`${result.action} failed: ${result.error}`)
47
+ * }
48
+ * }
49
+ * ```
50
+ */
51
+ export async function submitAuthorization(
52
+ client: PerpsSDKClient,
53
+ params: SubmitAuthorizationParams,
54
+ options?: SDKRequestOptions
55
+ ): Promise<AuthorizationsResponse> {
56
+ return request<AuthorizationsResponse>(
57
+ client.config,
58
+ `${client.config.apiUrl}/authorization`,
59
+ {
60
+ method: 'POST',
61
+ body: JSON.stringify({
62
+ dex: params.dex,
63
+ address: params.address,
64
+ signerAddress: params.signerAddress,
65
+ actions: params.actions,
66
+ }),
67
+ },
68
+ options
69
+ )
70
+ }
@@ -0,0 +1,72 @@
1
+ import type {
2
+ Address,
3
+ SignedOrderAction,
4
+ SubmitOrderResponse,
5
+ } from '@lifi/perps-types'
6
+ import type {
7
+ PerpsSDKClient,
8
+ SDKRequestOptions,
9
+ } from '../client/createPerpsClient.js'
10
+ import { request } from '../utils/request.js'
11
+
12
+ export interface SubmitOrderParams {
13
+ /** DEX to submit order to (e.g., 'hyperliquid') */
14
+ dex: string
15
+ /** Wallet address */
16
+ address: Address
17
+ /** Address of the signer (for agent mode, this is the agent address) */
18
+ signerAddress?: Address
19
+ /** Signed order actions */
20
+ actions: SignedOrderAction[]
21
+ }
22
+
23
+ /**
24
+ * Submit signed order actions to the DEX.
25
+ *
26
+ * @param client - The SDK client instance
27
+ * @param params - Request parameters
28
+ * @param options - Request options (e.g., AbortSignal)
29
+ * @returns Results for each order action
30
+ * @throws {HTTPError} On API error responses
31
+ * @throws {PerpsError} On network or parsing errors
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const client = createPerpsClient({ integrator: 'my-app' })
36
+ *
37
+ * // After creating and signing order actions
38
+ * const { results } = await submitOrder(client, {
39
+ * dex: 'hyperliquid',
40
+ * address: '0x1234...',
41
+ * actions: signedActions
42
+ * })
43
+ *
44
+ * for (const result of results) {
45
+ * if (result.success) {
46
+ * console.log(`Order placed: ${result.orderId}`)
47
+ * } else {
48
+ * console.error(`Order failed: ${result.error}`)
49
+ * }
50
+ * }
51
+ * ```
52
+ */
53
+ export async function submitOrder(
54
+ client: PerpsSDKClient,
55
+ params: SubmitOrderParams,
56
+ options?: SDKRequestOptions
57
+ ): Promise<SubmitOrderResponse> {
58
+ return request<SubmitOrderResponse>(
59
+ client.config,
60
+ `${client.config.apiUrl}/order`,
61
+ {
62
+ method: 'POST',
63
+ body: JSON.stringify({
64
+ dex: params.dex,
65
+ address: params.address,
66
+ signerAddress: params.signerAddress,
67
+ actions: params.actions,
68
+ }),
69
+ },
70
+ options
71
+ )
72
+ }
@@ -0,0 +1,121 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types'
2
+ import type {
3
+ PerpsBaseConfig,
4
+ SDKRequestOptions,
5
+ } from '../client/createPerpsClient.js'
6
+ import { HTTPError } from '../errors/HTTPError.js'
7
+ import { PerpsError } from '../errors/PerpsError.js'
8
+ import { version } from '../version.js'
9
+ import { sleep } from './sleep.js'
10
+
11
+ export interface RequestOptions extends RequestInit {
12
+ /** Number of retries on 5xx errors. Default: 1 */
13
+ retries?: number
14
+ }
15
+
16
+ const DEFAULT_RETRIES = 1
17
+
18
+ /**
19
+ * Make an HTTP request to the Perps API.
20
+ *
21
+ * @param config - SDK configuration
22
+ * @param url - The full URL to request
23
+ * @param options - Fetch options plus retries
24
+ * @param sdkOptions - SDK-specific options (signal, etc.)
25
+ * @returns Parsed JSON response
26
+ * @throws {HTTPError} On non-2xx responses
27
+ * @throws {PerpsError} On network or parsing errors
28
+ */
29
+ export async function request<T>(
30
+ config: PerpsBaseConfig,
31
+ url: string,
32
+ options: RequestOptions = {},
33
+ sdkOptions?: SDKRequestOptions
34
+ ): Promise<T> {
35
+ // Wait for API health check to pass before making requests
36
+ if (config.readyPromise) {
37
+ await config.readyPromise
38
+ }
39
+
40
+ const retries = options.retries ?? DEFAULT_RETRIES
41
+
42
+ const headers: Record<string, string> = {
43
+ 'Content-Type': 'application/json',
44
+ 'x-lifi-integrator': config.integrator,
45
+ 'x-lifi-perps-sdk': version,
46
+ ...(options.headers as Record<string, string>),
47
+ }
48
+
49
+ if (config.apiKey) {
50
+ headers['x-lifi-api-key'] = config.apiKey
51
+ }
52
+
53
+ // Merge signal from sdkOptions into options
54
+ let finalOptions: RequestInit = {
55
+ ...options,
56
+ headers,
57
+ signal: sdkOptions?.signal ?? options.signal,
58
+ }
59
+
60
+ // Apply request interceptor if configured
61
+ if (config.requestInterceptor) {
62
+ finalOptions = await config.requestInterceptor(url, finalOptions)
63
+ }
64
+
65
+ try {
66
+ const response = await fetch(url, finalOptions)
67
+
68
+ if (!response.ok) {
69
+ const error = new HTTPError(response, url)
70
+ await error.buildAdditionalDetails()
71
+
72
+ // Retry on 5xx errors
73
+ if (retries > 0 && response.status >= 500) {
74
+ await sleep(500)
75
+ return request<T>(
76
+ config,
77
+ url,
78
+ { ...options, retries: retries - 1 },
79
+ sdkOptions
80
+ )
81
+ }
82
+
83
+ throw error
84
+ }
85
+
86
+ return (await response.json()) as T
87
+ } catch (error) {
88
+ if (error instanceof HTTPError || error instanceof PerpsError) {
89
+ throw error
90
+ }
91
+
92
+ // Network error or other fetch failure
93
+ throw new PerpsError(
94
+ PerpsErrorCode.ServerError,
95
+ error instanceof Error ? error.message : 'Request failed'
96
+ )
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Build a URL with query parameters.
102
+ *
103
+ * @param baseUrl - The base URL
104
+ * @param params - Query parameters (undefined values are filtered out)
105
+ * @returns Full URL with query string
106
+ */
107
+ export function buildUrl(
108
+ baseUrl: string,
109
+ params: Record<string, string | number | boolean | undefined>
110
+ ): string {
111
+ const searchParams = new URLSearchParams()
112
+
113
+ for (const [key, value] of Object.entries(params)) {
114
+ if (value !== undefined) {
115
+ searchParams.set(key, String(value))
116
+ }
117
+ }
118
+
119
+ const queryString = searchParams.toString()
120
+ return queryString ? `${baseUrl}?${queryString}` : baseUrl
121
+ }
@@ -0,0 +1,31 @@
1
+ import type { Hex, PerpsTypedData } from '@lifi/perps-types'
2
+ import { privateKeyToAccount } from 'viem/accounts'
3
+
4
+ /**
5
+ * Sign EIP-712 typed data with a private key.
6
+ *
7
+ * @param privateKey - The private key to sign with
8
+ * @param typedData - The typed data to sign
9
+ * @returns The signature as a hex string
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const signature = await signTypedData(agentPrivateKey, typedData)
14
+ * ```
15
+ */
16
+ export async function signTypedData(
17
+ privateKey: Hex,
18
+ typedData: PerpsTypedData
19
+ ): Promise<Hex> {
20
+ const account = privateKeyToAccount(privateKey)
21
+
22
+ // viem's signTypedData expects the typed data in a specific format
23
+ const signature = await account.signTypedData({
24
+ domain: typedData.domain,
25
+ types: typedData.types,
26
+ primaryType: typedData.primaryType,
27
+ message: typedData.message,
28
+ })
29
+
30
+ return signature
31
+ }
@@ -0,0 +1,2 @@
1
+ export const sleep = (ms: number): Promise<void> =>
2
+ new Promise((resolve) => setTimeout(resolve, ms))
package/src/version.ts ADDED
@@ -0,0 +1,2 @@
1
+ export const name = '@lifi/perps-sdk'
2
+ export const version = '0.1.1-alpha.0'