@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,512 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsErrorMessage } from '../errors/constants.js';
3
+ import { PerpsError } from '../errors/PerpsError.js';
4
+ import { cancelOrder } from '../services/cancelOrder.js';
5
+ import { createAuthorization } from '../services/createAuthorization.js';
6
+ import { createOrder } from '../services/createOrder.js';
7
+ import { getAccount } from '../services/getAccount.js';
8
+ import { getDexes } from '../services/getDexes.js';
9
+ import { submitAuthorization } from '../services/submitAuthorization.js';
10
+ import { submitOrder } from '../services/submitOrder.js';
11
+ import { signTypedData } from '../utils/signTypedData.js';
12
+ import { createPerpsClient } from './createPerpsClient.js';
13
+ /**
14
+ * Stateful client for managing signing modes and trading operations.
15
+ *
16
+ * The PerpsClient provides two signing modes:
17
+ * - `USER`: User wallet signs each action (wallet popup per action)
18
+ * - `USER_AGENT`: SDK-generated agent signs actions (no popups after setup)
19
+ *
20
+ * In `USER_AGENT` mode, the client:
21
+ * - Generates an agent keypair stored in localStorage (or custom storage)
22
+ * - Auto-injects agent address into authorization requests
23
+ * - Auto-signs trading actions with the agent key
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const perps = new PerpsClient({ integrator: 'my-app' })
28
+ *
29
+ * // Set up agent signing for a user + DEX pair
30
+ * await perps.setSigningMode(userAddress, 'hyperliquid', 'USER_AGENT')
31
+ *
32
+ * // Build authorization (agent address auto-injected)
33
+ * const { actions } = await perps.buildAuthorization({
34
+ * dex: 'hyperliquid',
35
+ * address: userAddress,
36
+ * authorizations: [
37
+ * { key: 'ApproveAgent' },
38
+ * { key: 'ApproveBuilderFee' }
39
+ * ]
40
+ * })
41
+ *
42
+ * // ... sign actions with user wallet ...
43
+ *
44
+ * // Place orders (agent signs automatically)
45
+ * const result = await perps.placeOrder({
46
+ * address: userAddress,
47
+ * dex: 'hyperliquid',
48
+ * symbol: 'BTC',
49
+ * side: 'BUY',
50
+ * type: 'MARKET',
51
+ * size: '0.1',
52
+ * price: '95000.00'
53
+ * })
54
+ * ```
55
+ */
56
+ export class PerpsClient {
57
+ sdkClient;
58
+ signingModes = new Map();
59
+ constructor(options) {
60
+ this.sdkClient = createPerpsClient({
61
+ integrator: options.integrator,
62
+ apiKey: options.apiKey,
63
+ apiUrl: options.apiUrl,
64
+ storage: options.storage,
65
+ healthCheck: options.healthCheck,
66
+ });
67
+ }
68
+ /**
69
+ * Get the underlying SDK client for use with service functions.
70
+ */
71
+ get client() {
72
+ return this.sdkClient;
73
+ }
74
+ /**
75
+ * Promise that resolves when the API health check passes.
76
+ * Await this before making requests if you need to handle readiness explicitly.
77
+ */
78
+ get ready() {
79
+ return this.sdkClient.ready;
80
+ }
81
+ /**
82
+ * Get the storage key for a user + DEX pair.
83
+ */
84
+ modeKey(address, dex) {
85
+ return `${address.toLowerCase()}:${dex.toLowerCase()}`;
86
+ }
87
+ /**
88
+ * Set the signing mode for a user + DEX pair.
89
+ *
90
+ * In `USER_AGENT` mode, generates an agent keypair if one doesn't exist.
91
+ *
92
+ * @param address - User wallet address
93
+ * @param dex - DEX identifier
94
+ * @param mode - Signing mode to set
95
+ */
96
+ async setSigningMode(address, dex, mode) {
97
+ const key = this.modeKey(address, dex);
98
+ this.signingModes.set(key, mode);
99
+ if (mode === 'USER_AGENT') {
100
+ // Generate agent keypair if not exists
101
+ await this.sdkClient.agentManager.getOrCreateAgent(address, dex);
102
+ }
103
+ }
104
+ /**
105
+ * Get the current signing mode for a user + DEX pair.
106
+ * Defaults to `USER` if not set.
107
+ */
108
+ getSigningMode(address, dex) {
109
+ return this.signingModes.get(this.modeKey(address, dex)) ?? 'USER';
110
+ }
111
+ /**
112
+ * Get the agent address for a user + DEX pair.
113
+ *
114
+ * @throws {PerpsError} If in USER mode or agent not found
115
+ */
116
+ async getAgentAddress(address, dex) {
117
+ const agent = await this.sdkClient.agentManager.getAgent(address, dex);
118
+ return agent.address;
119
+ }
120
+ /**
121
+ * Check if an agent exists for a user + DEX pair.
122
+ */
123
+ async hasAgent(address, dex) {
124
+ return this.sdkClient.agentManager.hasAgent(address, dex);
125
+ }
126
+ /**
127
+ * Remove the agent for a user + DEX pair.
128
+ * Also resets signing mode to USER.
129
+ */
130
+ async removeAgent(address, dex) {
131
+ await this.sdkClient.agentManager.removeAgent(address, dex);
132
+ this.signingModes.delete(this.modeKey(address, dex));
133
+ }
134
+ /**
135
+ * Build authorization payloads for signing.
136
+ *
137
+ * In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
138
+ * In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`
139
+ * and `agentAddress` param for `ApproveAgent` authorization.
140
+ *
141
+ * @param params - Authorization parameters
142
+ * @returns Authorization actions with typed data for signing
143
+ */
144
+ async buildAuthorization(params) {
145
+ const mode = this.getSigningMode(params.address, params.dex);
146
+ let { signerAddress, authorizations } = params;
147
+ if (mode === 'USER_AGENT') {
148
+ const agent = await this.sdkClient.agentManager.getAgent(params.address, params.dex);
149
+ signerAddress = signerAddress ?? agent.address;
150
+ // Auto-inject agentAddress for ApproveAgent authorization
151
+ authorizations = authorizations.map((auth) => {
152
+ if (auth.key === 'ApproveAgent' && !auth.params?.agentAddress) {
153
+ return {
154
+ ...auth,
155
+ params: { ...auth.params, agentAddress: agent.address },
156
+ };
157
+ }
158
+ return auth;
159
+ });
160
+ }
161
+ return createAuthorization(this.sdkClient, {
162
+ ...params,
163
+ signerAddress,
164
+ authorizations,
165
+ });
166
+ }
167
+ /**
168
+ * Submit signed authorizations.
169
+ *
170
+ * In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
171
+ * In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`.
172
+ *
173
+ * @param params - Signed authorization parameters
174
+ */
175
+ async submitAuthorizations(params) {
176
+ const mode = this.getSigningMode(params.address, params.dex);
177
+ let { signerAddress } = params;
178
+ if (mode === 'USER_AGENT') {
179
+ const agent = await this.sdkClient.agentManager.getAgent(params.address, params.dex);
180
+ signerAddress = signerAddress ?? agent.address;
181
+ }
182
+ return submitAuthorization(this.sdkClient, { ...params, signerAddress });
183
+ }
184
+ /**
185
+ * Build order payloads for signing.
186
+ *
187
+ * In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
188
+ * In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`.
189
+ *
190
+ * @param params - Order parameters
191
+ * @returns Order actions with typed data for signing
192
+ */
193
+ async buildOrder(params) {
194
+ const mode = this.getSigningMode(params.address, params.dex);
195
+ let signerAddress;
196
+ if (mode === 'USER_AGENT') {
197
+ const agent = await this.sdkClient.agentManager.getAgent(params.address, params.dex);
198
+ signerAddress = agent.address;
199
+ }
200
+ return createOrder(this.sdkClient, {
201
+ dex: params.dex,
202
+ address: params.address,
203
+ signerAddress,
204
+ clientOrderId: params.clientOrderId,
205
+ symbol: params.symbol,
206
+ side: params.side,
207
+ type: params.type,
208
+ size: params.size,
209
+ price: params.price,
210
+ leverage: params.leverage,
211
+ reduceOnly: params.reduceOnly,
212
+ timeInForce: params.timeInForce,
213
+ expiresAt: params.expiresAt,
214
+ takeProfit: params.takeProfit,
215
+ stopLoss: params.stopLoss,
216
+ });
217
+ }
218
+ /**
219
+ * Build cancel order payloads for signing.
220
+ *
221
+ * In `USER` mode, `signerAddress` is omitted (backend defaults to `address`).
222
+ * In `USER_AGENT` mode, auto-injects the agent address as `signerAddress`.
223
+ *
224
+ * @param params - Cancel parameters
225
+ * @returns Cancel actions with typed data for signing
226
+ */
227
+ async buildCancelOrder(params) {
228
+ const mode = this.getSigningMode(params.address, params.dex);
229
+ let signerAddress;
230
+ if (mode === 'USER_AGENT') {
231
+ const agent = await this.sdkClient.agentManager.getAgent(params.address, params.dex);
232
+ signerAddress = agent.address;
233
+ }
234
+ return cancelOrder(this.sdkClient, {
235
+ dex: params.dex,
236
+ address: params.address,
237
+ signerAddress,
238
+ ids: params.ids,
239
+ });
240
+ }
241
+ /**
242
+ * Place an order with automatic agent signing.
243
+ *
244
+ * **Requires USER_AGENT mode.** For USER mode, use `buildOrder()` + `submitSignedOrder()`.
245
+ *
246
+ * @param params - Order parameters
247
+ * @returns Order submission results
248
+ * @throws {PerpsError} If not in USER_AGENT mode
249
+ */
250
+ async placeOrder(params) {
251
+ const mode = this.getSigningMode(params.address, params.dex);
252
+ if (mode !== 'USER_AGENT') {
253
+ throw new PerpsError(PerpsErrorCode.ValidationError, `${PerpsErrorMessage.InvalidSigningMode} placeOrder() requires USER_AGENT mode. Use createOrder() + submitOrder() for USER mode.`);
254
+ }
255
+ const agent = await this.sdkClient.agentManager.getAgent(params.address, params.dex);
256
+ // 1. Create order payloads
257
+ const { actions } = await createOrder(this.sdkClient, {
258
+ dex: params.dex,
259
+ address: params.address,
260
+ signerAddress: agent.address,
261
+ clientOrderId: params.clientOrderId,
262
+ symbol: params.symbol,
263
+ side: params.side,
264
+ type: params.type,
265
+ size: params.size,
266
+ price: params.price,
267
+ leverage: params.leverage,
268
+ reduceOnly: params.reduceOnly,
269
+ timeInForce: params.timeInForce,
270
+ expiresAt: params.expiresAt,
271
+ takeProfit: params.takeProfit,
272
+ stopLoss: params.stopLoss,
273
+ });
274
+ // 2. Sign each action with agent key
275
+ const signedActions = await Promise.all(actions.map(async (a) => ({
276
+ action: a.action,
277
+ typedData: a.typedData,
278
+ signature: await signTypedData(agent.privateKey, a.typedData),
279
+ })));
280
+ // 3. Submit
281
+ return submitOrder(this.sdkClient, {
282
+ dex: params.dex,
283
+ address: params.address,
284
+ signerAddress: agent.address,
285
+ actions: signedActions,
286
+ });
287
+ }
288
+ /**
289
+ * Cancel orders with automatic agent signing.
290
+ *
291
+ * **Requires USER_AGENT mode.** For USER mode, use `buildCancelOrder()` + `submitSignedOrder()`.
292
+ *
293
+ * @param params - Cancel parameters
294
+ * @returns Cancel submission results
295
+ * @throws {PerpsError} If not in USER_AGENT mode
296
+ */
297
+ async cancelOrders(params) {
298
+ const mode = this.getSigningMode(params.address, params.dex);
299
+ if (mode !== 'USER_AGENT') {
300
+ throw new PerpsError(PerpsErrorCode.ValidationError, `${PerpsErrorMessage.InvalidSigningMode} cancelOrders() requires USER_AGENT mode. Use cancelOrder() + submitOrder() for USER mode.`);
301
+ }
302
+ const agent = await this.sdkClient.agentManager.getAgent(params.address, params.dex);
303
+ // 1. Create cancel payloads
304
+ const { actions } = await cancelOrder(this.sdkClient, {
305
+ dex: params.dex,
306
+ address: params.address,
307
+ signerAddress: agent.address,
308
+ ids: params.ids,
309
+ });
310
+ // 2. Sign each action with agent key
311
+ const signedActions = await Promise.all(actions.map(async (a) => ({
312
+ action: a.action,
313
+ typedData: a.typedData,
314
+ signature: await signTypedData(agent.privateKey, a.typedData),
315
+ })));
316
+ // 3. Submit
317
+ return submitOrder(this.sdkClient, {
318
+ dex: params.dex,
319
+ address: params.address,
320
+ signerAddress: agent.address,
321
+ actions: signedActions,
322
+ });
323
+ }
324
+ /**
325
+ * Submit pre-signed order actions.
326
+ *
327
+ * Use this for USER mode when you've already signed the actions with the user's wallet.
328
+ * Auto-injects `signerAddress` if not provided (defaults to `address`).
329
+ *
330
+ * @param params - Signed order parameters
331
+ */
332
+ async submitSignedOrder(params) {
333
+ return submitOrder(this.sdkClient, params);
334
+ }
335
+ /**
336
+ * Determine which authorizations (if any) the user needs to sign before trading.
337
+ *
338
+ * Fetches account state and checks the current signing mode to build
339
+ * a precise list of required authorizations.
340
+ *
341
+ * @param params - Parameters including dex, address, and asset requirements
342
+ * @returns Which authorizations are needed and whether the user is ready to trade
343
+ */
344
+ async getRequiredAuthorizations(params) {
345
+ const { dex, address, requireAbstraction = false } = params;
346
+ const mode = this.getSigningMode(address, dex);
347
+ // Fetch account state and dex config in parallel
348
+ const [account, dexesResponse] = await Promise.all([
349
+ getAccount(this.sdkClient, { dex, address }),
350
+ getDexes(this.sdkClient),
351
+ ]);
352
+ const dexConfig = dexesResponse.dexes.find((d) => d.key === dex);
353
+ const hasBuilderFee = dexConfig?.authorizations.some((a) => a.key === 'ApproveBuilderFee') ??
354
+ false;
355
+ const rawAbstraction = account.config.abstractionStatus;
356
+ const abstractionStatus = rawAbstraction ?? null;
357
+ const agents = account.config.agents;
358
+ const userAuthorizations = [];
359
+ const agentAuthorizations = [];
360
+ if (mode === 'USER') {
361
+ // USER mode: no agent-related authorizations
362
+ if (requireAbstraction && !isAbstractionEnabled(abstractionStatus)) {
363
+ userAuthorizations.push({
364
+ key: 'UserSetAbstraction',
365
+ params: { abstraction: 'unifiedAccount' },
366
+ });
367
+ }
368
+ return {
369
+ userAuthorizations,
370
+ agentAuthorizations,
371
+ agentValid: false,
372
+ abstractionStatus,
373
+ isReady: userAuthorizations.length === 0,
374
+ };
375
+ }
376
+ // USER_AGENT mode: check agent validity
377
+ const agentValid = await this.validateAgent(address, dex, agents);
378
+ if (!agentValid) {
379
+ // Need to approve agent (+ builder fee if configured)
380
+ userAuthorizations.push({ key: 'ApproveAgent' });
381
+ if (hasBuilderFee) {
382
+ userAuthorizations.push({ key: 'ApproveBuilderFee' });
383
+ }
384
+ // Abstraction handling when agent is not yet valid
385
+ if (requireAbstraction && !isAbstractionEnabled(abstractionStatus)) {
386
+ if (abstractionStatus === null) {
387
+ // null → agent can't auto-enable yet (not approved), user must set it
388
+ userAuthorizations.push({
389
+ key: 'UserSetAbstraction',
390
+ params: { abstraction: 'unifiedAccount' },
391
+ });
392
+ }
393
+ else {
394
+ // 'disabled' → user must re-enable
395
+ userAuthorizations.push({
396
+ key: 'UserSetAbstraction',
397
+ params: { abstraction: 'unifiedAccount' },
398
+ });
399
+ }
400
+ }
401
+ }
402
+ else {
403
+ // Agent is valid - check abstraction only
404
+ if (requireAbstraction && !isAbstractionEnabled(abstractionStatus)) {
405
+ if (abstractionStatus === null) {
406
+ // null → agent can auto-enable (no user signature needed)
407
+ agentAuthorizations.push({
408
+ key: 'AgentSetAbstraction',
409
+ params: { abstraction: 'unifiedAccount' },
410
+ });
411
+ }
412
+ else {
413
+ // 'disabled' → user must re-enable
414
+ userAuthorizations.push({
415
+ key: 'UserSetAbstraction',
416
+ params: { abstraction: 'unifiedAccount' },
417
+ });
418
+ }
419
+ }
420
+ }
421
+ const isReady = userAuthorizations.length === 0 && agentAuthorizations.length === 0;
422
+ return {
423
+ userAuthorizations,
424
+ agentAuthorizations,
425
+ agentValid,
426
+ abstractionStatus,
427
+ isReady,
428
+ };
429
+ }
430
+ /**
431
+ * Execute authorizations: submit user-signed actions, then auto-sign and submit
432
+ * any agent authorizations.
433
+ *
434
+ * @param params - User-signed actions and the required authorizations result
435
+ * @returns Combined results from user and agent submissions
436
+ */
437
+ async executeAuthorizations(params) {
438
+ const { dex, address, required, userSignedActions } = params;
439
+ const mode = this.getSigningMode(address, dex);
440
+ // 1. Submit user-signed actions (if any)
441
+ let userResults = { results: [] };
442
+ if (userSignedActions.length > 0) {
443
+ const signerAddress = mode === 'USER_AGENT'
444
+ ? (await this.sdkClient.agentManager.getAgent(address, dex)).address
445
+ : address;
446
+ userResults = await submitAuthorization(this.sdkClient, {
447
+ dex,
448
+ address,
449
+ signerAddress,
450
+ actions: userSignedActions,
451
+ });
452
+ // Check for failures - return early if any user auth failed
453
+ const failed = userResults.results.find((r) => !r.success);
454
+ if (failed) {
455
+ return { userResults };
456
+ }
457
+ }
458
+ // 2. Auto-sign and submit agent authorizations (if any)
459
+ if (required.agentAuthorizations.length > 0 && mode === 'USER_AGENT') {
460
+ const agent = await this.sdkClient.agentManager.getAgent(address, dex);
461
+ // Build typed data for agent authorizations
462
+ const { actions } = await createAuthorization(this.sdkClient, {
463
+ dex,
464
+ address,
465
+ signerAddress: agent.address,
466
+ authorizations: required.agentAuthorizations,
467
+ });
468
+ // Sign with agent key
469
+ const signedAgentActions = await Promise.all(actions.map(async (action) => ({
470
+ action: action.action,
471
+ typedData: action.typedData,
472
+ signature: await signTypedData(agent.privateKey, action.typedData),
473
+ })));
474
+ // Submit agent-signed actions
475
+ const agentResults = await submitAuthorization(this.sdkClient, {
476
+ dex,
477
+ address,
478
+ signerAddress: agent.address,
479
+ actions: signedAgentActions,
480
+ });
481
+ return { userResults, agentResults };
482
+ }
483
+ return { userResults };
484
+ }
485
+ /**
486
+ * Check if the local agent is registered and valid on the backend.
487
+ */
488
+ async validateAgent(address, dex, backendAgents) {
489
+ const hasLocal = await this.sdkClient.agentManager.hasAgent(address, dex);
490
+ if (!hasLocal) {
491
+ return false;
492
+ }
493
+ const agent = await this.sdkClient.agentManager.getAgent(address, dex);
494
+ if (!backendAgents) {
495
+ return false;
496
+ }
497
+ const match = backendAgents.find((a) => a.address.toLowerCase() === agent.address.toLowerCase());
498
+ if (!match) {
499
+ return false;
500
+ }
501
+ return match.validUntil > Date.now();
502
+ }
503
+ }
504
+ /**
505
+ * Check if abstraction is enabled based on the status string.
506
+ * Enabled statuses: 'unifiedAccount', 'portfolioMargin'
507
+ * Not enabled: null (never set), 'disabled'
508
+ */
509
+ function isAbstractionEnabled(status) {
510
+ return status !== null && status !== 'disabled';
511
+ }
512
+ //# sourceMappingURL=PerpsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerpsClient.js","sourceRoot":"","sources":["../../../src/client/PerpsClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { AgentManager } from '../agent/AgentManager.js';
2
+ import type { StorageAdapter } from '../agent/types.js';
3
+ /**
4
+ * Configuration options for creating a Perps SDK client.
5
+ */
6
+ export interface PerpsConfig {
7
+ /** Integrator identifier (required) */
8
+ integrator: string;
9
+ /** Optional API key for authenticated requests */
10
+ apiKey?: string;
11
+ /** Base API URL. Defaults to https://li.quest/v1/perps */
12
+ apiUrl?: string;
13
+ /** Disable version update check in development mode */
14
+ disableVersionCheck?: boolean;
15
+ /** Custom storage adapter for agent keys. Defaults to localStorage. */
16
+ storage?: StorageAdapter;
17
+ /** Optional request interceptor for custom handling */
18
+ requestInterceptor?: RequestInterceptor;
19
+ /** Whether to perform a health check on startup before allowing requests. Default: true */
20
+ healthCheck?: boolean;
21
+ }
22
+ /**
23
+ * Resolved configuration with required fields.
24
+ */
25
+ export interface PerpsBaseConfig {
26
+ /** Integrator identifier (required) */
27
+ integrator: string;
28
+ /** Optional API key for authenticated requests */
29
+ apiKey?: string;
30
+ /** Resolved API URL (always set) */
31
+ apiUrl: string;
32
+ /** Disable version update check in development mode */
33
+ disableVersionCheck?: boolean;
34
+ /** Optional request interceptor for custom handling */
35
+ requestInterceptor?: RequestInterceptor;
36
+ /** Promise that resolves when the API is ready. Requests wait for this. */
37
+ readyPromise?: Promise<void>;
38
+ }
39
+ /**
40
+ * Request interceptor function type.
41
+ * Called before each request is made, allowing modification of fetch options.
42
+ */
43
+ export type RequestInterceptor = (url: string, options: RequestInit) => RequestInit | Promise<RequestInit>;
44
+ /**
45
+ * Options passed to service functions for request control.
46
+ */
47
+ export interface SDKRequestOptions {
48
+ /** AbortSignal to cancel the request */
49
+ signal?: AbortSignal;
50
+ }
51
+ /**
52
+ * The Perps SDK client instance.
53
+ * Holds configuration and agent manager for making API requests.
54
+ */
55
+ export interface PerpsSDKClient {
56
+ /** SDK configuration */
57
+ readonly config: PerpsBaseConfig;
58
+ /** Agent manager for USER_AGENT signing mode */
59
+ readonly agentManager: AgentManager;
60
+ /** Promise that resolves when the API health check passes. */
61
+ readonly ready: Promise<void>;
62
+ }
63
+ /**
64
+ * Create a new Perps SDK client.
65
+ *
66
+ * @param options - Configuration options
67
+ * @returns A new SDK client instance
68
+ * @throws {PerpsError} If integrator is not provided
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const client = createPerpsClient({
73
+ * integrator: 'my-app',
74
+ * apiKey: 'optional-api-key',
75
+ * })
76
+ *
77
+ * // Use with service functions
78
+ * const { dexes } = await getDexes(client)
79
+ * ```
80
+ */
81
+ export declare function createPerpsClient(options: PerpsConfig): PerpsSDKClient;
82
+ //# sourceMappingURL=createPerpsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/createPerpsClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AASvD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uEAAuE;IACvE,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,KACjB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAqCtE"}