@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,71 @@
1
+ /**
2
+ * Get the root cause of an error by following the cause chain.
3
+ *
4
+ * @param error - The error to get the root cause of
5
+ * @returns The root cause error, or the original error if no cause chain
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const wrapper = new PerpsSDKError(new HTTPError(response, url))
10
+ * const root = getRootCause(wrapper) // Returns the HTTPError
11
+ * ```
12
+ */
13
+ export declare function getRootCause(error: Error): Error;
14
+ /**
15
+ * Get the message from the root cause of an error.
16
+ *
17
+ * @param error - The error to get the root cause message from
18
+ * @returns The root cause message
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const wrapper = new PerpsSDKError(new HTTPError(response, url))
23
+ * const message = getRootCauseMessage(wrapper) // Returns the HTTPError's message
24
+ * ```
25
+ */
26
+ export declare function getRootCauseMessage(error: Error): string;
27
+ /**
28
+ * Get the full error chain as an array.
29
+ *
30
+ * @param error - The error to get the chain from
31
+ * @returns Array of errors from outermost to root cause
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const chain = getErrorChain(sdkError)
36
+ * // [PerpsSDKError, HTTPError, ...]
37
+ * ```
38
+ */
39
+ export declare function getErrorChain(error: Error): Error[];
40
+ /**
41
+ * Check if an error chain contains an error of a specific type.
42
+ *
43
+ * @param error - The error to check
44
+ * @param ErrorClass - The error class to look for
45
+ * @returns True if the chain contains an error of the specified type
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * if (hasErrorType(error, HTTPError)) {
50
+ * // Handle HTTP error specifically
51
+ * }
52
+ * ```
53
+ */
54
+ export declare function hasErrorType<T extends Error>(error: Error, ErrorClass: new (...args: any[]) => T): boolean;
55
+ /**
56
+ * Find the first error of a specific type in the error chain.
57
+ *
58
+ * @param error - The error to search
59
+ * @param ErrorClass - The error class to find
60
+ * @returns The first matching error, or undefined if not found
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * const httpError = findErrorType(error, HTTPError)
65
+ * if (httpError) {
66
+ * console.log(httpError.status)
67
+ * }
68
+ * ```
69
+ */
70
+ export declare function findErrorType<T extends Error>(error: Error, ErrorClass: new (...args: any[]) => T): T | undefined;
71
+ //# sourceMappingURL=rootCause.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rootCause.d.ts","sourceRoot":"","sources":["../../../../src/errors/utils/rootCause.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAWhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,CAanD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,KAAK,EAC1C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACpC,OAAO,CAGT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,KAAK,EAC3C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACpC,CAAC,GAAG,SAAS,CAGf"}
@@ -0,0 +1,46 @@
1
+ export * from '@lifi/perps-types';
2
+ export { AgentManager } from './agent/AgentManager.js';
3
+ export { createMemoryStorage, localStorageAdapter } from './agent/storage.js';
4
+ export type { Agent, StorageAdapter } from './agent/types.js';
5
+ export type { PerpsBaseConfig, PerpsConfig, PerpsSDKClient, RequestInterceptor, SDKRequestOptions, } from './client/createPerpsClient.js';
6
+ export { createPerpsClient } from './client/createPerpsClient.js';
7
+ export { PerpsClient } from './client/PerpsClient.js';
8
+ export type { BuildAuthorizationParams, CancelOrdersParams, ExecuteAuthorizationsParams, ExecuteAuthorizationsResult, GetRequiredAuthorizationsParams, PerpsClientOptions, PlaceOrderParams, RequiredAuthorizationsResult, SigningMode, } from './client/types.js';
9
+ export { AgentError } from './errors/AgentError.js';
10
+ export { PerpsErrorMessage, PerpsErrorName } from './errors/constants.js';
11
+ export { HTTPError } from './errors/HTTPError.js';
12
+ export { PerpsError } from './errors/PerpsError.js';
13
+ export { PerpsSDKError } from './errors/PerpsSDKError.js';
14
+ export { ServerError } from './errors/ServerError.js';
15
+ export { findErrorType, getErrorChain, getRootCause, getRootCauseMessage, hasErrorType, } from './errors/utils/rootCause.js';
16
+ export { ValidationError } from './errors/ValidationError.js';
17
+ export type { CancelOrderParams } from './services/cancelOrder.js';
18
+ export { cancelOrder } from './services/cancelOrder.js';
19
+ export type { CreateAuthorizationParams } from './services/createAuthorization.js';
20
+ export { createAuthorization } from './services/createAuthorization.js';
21
+ export type { CreateOrderParams } from './services/createOrder.js';
22
+ export { createOrder } from './services/createOrder.js';
23
+ export type { GetAccountParams } from './services/getAccount.js';
24
+ export { getAccount } from './services/getAccount.js';
25
+ export { getDexes } from './services/getDexes.js';
26
+ export type { GetHistoryParams } from './services/getHistory.js';
27
+ export { getHistory } from './services/getHistory.js';
28
+ export type { GetMarketParams } from './services/getMarket.js';
29
+ export { getMarket } from './services/getMarket.js';
30
+ export type { GetMarketsParams } from './services/getMarkets.js';
31
+ export { getMarkets } from './services/getMarkets.js';
32
+ export type { GetOhlcvParams } from './services/getOhlcv.js';
33
+ export { getOhlcv } from './services/getOhlcv.js';
34
+ export type { GetOrderParams } from './services/getOrder.js';
35
+ export { getOrder } from './services/getOrder.js';
36
+ export type { GetOrderbookParams } from './services/getOrderbook.js';
37
+ export { getOrderbook } from './services/getOrderbook.js';
38
+ export type { GetPricesParams } from './services/getPrices.js';
39
+ export { getPrices } from './services/getPrices.js';
40
+ export type { SubmitAuthorizationParams } from './services/submitAuthorization.js';
41
+ export { submitAuthorization } from './services/submitAuthorization.js';
42
+ export type { SubmitOrderParams } from './services/submitOrder.js';
43
+ export { submitOrder } from './services/submitOrder.js';
44
+ export { signTypedData } from './utils/signTypedData.js';
45
+ export { name, version } from './version.js';
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7E,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC7D,YAAY,EACV,eAAe,EACf,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,YAAY,EACV,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAGxD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,51 @@
1
+ import type { Address, CancelOrderPayloadResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface CancelOrderParams {
4
+ /** DEX to cancel orders on (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
+ /** Order IDs to cancel */
11
+ ids: string[];
12
+ }
13
+ /**
14
+ * Create cancel order payloads for signing.
15
+ * Returns typed data that must be signed by the user or agent.
16
+ *
17
+ * @param client - The SDK client instance
18
+ * @param params - Request parameters
19
+ * @param options - Request options (e.g., AbortSignal)
20
+ * @returns Cancel actions with typed data for signing
21
+ * @throws {HTTPError} On API error responses
22
+ * @throws {PerpsError} On network or parsing errors
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const client = createPerpsClient({ integrator: 'my-app' })
27
+ * const { actions } = await cancelOrder(client, {
28
+ * dex: 'hyperliquid',
29
+ * address: '0x1234...',
30
+ * ids: ['order1', 'order2']
31
+ * })
32
+ *
33
+ * // Sign with agent key or user wallet
34
+ * const signedActions = await Promise.all(
35
+ * actions.map(async (a) => ({
36
+ * action: a.action,
37
+ * typedData: a.typedData,
38
+ * signature: await signTypedData(agentPrivateKey, a.typedData)
39
+ * }))
40
+ * )
41
+ *
42
+ * // Submit the signed cancellation
43
+ * await submitOrder(client, {
44
+ * dex: 'hyperliquid',
45
+ * address: '0x1234...',
46
+ * actions: signedActions
47
+ * })
48
+ * ```
49
+ */
50
+ export declare function cancelOrder(client: PerpsSDKClient, params: CancelOrderParams, options?: SDKRequestOptions): Promise<CancelOrderPayloadResponse>;
51
+ //# sourceMappingURL=cancelOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancelOrder.d.ts","sourceRoot":"","sources":["../../../src/services/cancelOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,0BAA0B;IAC1B,GAAG,EAAE,MAAM,EAAE,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,0BAA0B,CAAC,CAerC"}
@@ -0,0 +1,47 @@
1
+ import type { Address, AuthorizationInput, CreateAuthorizationResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface CreateAuthorizationParams {
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
+ /** List of authorizations to create */
11
+ authorizations: AuthorizationInput[];
12
+ }
13
+ /**
14
+ * Create authorization payloads for signing.
15
+ * Returns typed data that must be signed by the user or agent.
16
+ *
17
+ * @param client - The SDK client instance
18
+ * @param params - Request parameters
19
+ * @param options - Request options (e.g., AbortSignal)
20
+ * @returns Authorization actions with typed data for signing
21
+ * @throws {HTTPError} On API error responses
22
+ * @throws {PerpsError} On network or parsing errors
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const client = createPerpsClient({ integrator: 'my-app' })
27
+ * const { actions } = await createAuthorization(client, {
28
+ * dex: 'hyperliquid',
29
+ * address: '0x1234...',
30
+ * authorizations: [
31
+ * { key: 'ApproveAgent', params: { agentAddress: '0xabcd...' } },
32
+ * { key: 'ApproveBuilderFee' }
33
+ * ]
34
+ * })
35
+ *
36
+ * // Sign each action's typedData with the user's wallet
37
+ * const signedActions = await Promise.all(
38
+ * actions.map(async (a) => ({
39
+ * action: a.action,
40
+ * typedData: a.typedData,
41
+ * signature: await walletClient.signTypedData(a.typedData)
42
+ * }))
43
+ * )
44
+ * ```
45
+ */
46
+ export declare function createAuthorization(client: PerpsSDKClient, params: CreateAuthorizationParams, options?: SDKRequestOptions): Promise<CreateAuthorizationResponse>;
47
+ //# sourceMappingURL=createAuthorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAuthorization.d.ts","sourceRoot":"","sources":["../../../src/services/createAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,2BAA2B,EAC5B,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,uCAAuC;IACvC,cAAc,EAAE,kBAAkB,EAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CAetC"}
@@ -0,0 +1,71 @@
1
+ import type { Address, CreateOrderResponse, OrderSide, OrderType, TimeInForce, TriggerOrderInput } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface CreateOrderParams {
4
+ /** DEX to place order on (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
+ /** Client-provided order ID for tracking */
11
+ clientOrderId?: string;
12
+ /** Market symbol (e.g., 'BTC') */
13
+ symbol: string;
14
+ /** Order side */
15
+ side: OrderSide;
16
+ /** Order type */
17
+ type: OrderType;
18
+ /** Order size (in base asset) */
19
+ size: string;
20
+ /** Order price (required for limit orders) */
21
+ price: string;
22
+ /** Leverage for the position */
23
+ leverage?: number;
24
+ /** Whether this order only reduces position */
25
+ reduceOnly?: boolean;
26
+ /** Time in force */
27
+ timeInForce?: TimeInForce;
28
+ /** Expiration time (ISO 8601) */
29
+ expiresAt?: string;
30
+ /** Take profit trigger order */
31
+ takeProfit?: TriggerOrderInput;
32
+ /** Stop loss trigger order */
33
+ stopLoss?: TriggerOrderInput;
34
+ }
35
+ /**
36
+ * Create order payloads for signing.
37
+ * Returns typed data that must be signed by the user or agent.
38
+ *
39
+ * @param client - The SDK client instance
40
+ * @param params - Request parameters
41
+ * @param options - Request options (e.g., AbortSignal)
42
+ * @returns Order actions with typed data for signing
43
+ * @throws {HTTPError} On API error responses
44
+ * @throws {PerpsError} On network or parsing errors
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const client = createPerpsClient({ integrator: 'my-app' })
49
+ * const { actions } = await createOrder(client, {
50
+ * dex: 'hyperliquid',
51
+ * address: '0x1234...',
52
+ * symbol: 'BTC',
53
+ * side: OrderSide.BUY,
54
+ * type: OrderType.LIMIT,
55
+ * size: '0.1',
56
+ * price: '94000.00',
57
+ * leverage: 10
58
+ * })
59
+ *
60
+ * // Sign each action with the user's wallet or agent key
61
+ * const signedActions = await Promise.all(
62
+ * actions.map(async (a) => ({
63
+ * action: a.action,
64
+ * typedData: a.typedData,
65
+ * signature: await walletClient.signTypedData(a.typedData)
66
+ * }))
67
+ * )
68
+ * ```
69
+ */
70
+ export declare function createOrder(client: PerpsSDKClient, params: CreateOrderParams, options?: SDKRequestOptions): Promise<CreateOrderResponse>;
71
+ //# sourceMappingURL=createOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOrder.d.ts","sourceRoot":"","sources":["../../../src/services/createOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,WAAW,EACX,iBAAiB,EAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,iBAAiB;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,oBAAoB;IACpB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CA0B9B"}
@@ -0,0 +1,32 @@
1
+ import type { AccountResponse, Address } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetAccountParams {
4
+ /** DEX to get account from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Wallet address */
7
+ address: Address;
8
+ }
9
+ /**
10
+ * Get account information including balances, positions, and open orders.
11
+ *
12
+ * @param client - The SDK client instance
13
+ * @param params - Request parameters
14
+ * @param options - Request options (e.g., AbortSignal)
15
+ * @returns Account details
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 account = await getAccount(client, {
23
+ * dex: 'hyperliquid',
24
+ * address: '0x1234...'
25
+ * })
26
+ * console.log(account.balances) // [{ currency: 'USDC', amount: '10000.00' }]
27
+ * console.log(account.positions) // [{ symbol: 'BTC', side: 'LONG', ... }]
28
+ * console.log(account.openOrders) // [{ id: '123', symbol: 'BTC', ... }]
29
+ * ```
30
+ */
31
+ export declare function getAccount(client: PerpsSDKClient, params: GetAccountParams, options?: SDKRequestOptions): Promise<AccountResponse>;
32
+ //# sourceMappingURL=getAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAM1B"}
@@ -0,0 +1,20 @@
1
+ import type { DexesResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ /**
4
+ * Get all available DEXes.
5
+ *
6
+ * @param client - The SDK client instance
7
+ * @param options - Request options (e.g., AbortSignal)
8
+ * @returns List of supported DEXes with their authorization requirements
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 { dexes } = await getDexes(client)
16
+ * console.log(dexes) // [{ key: 'hyperliquid', name: 'Hyperliquid', ... }]
17
+ * ```
18
+ */
19
+ export declare function getDexes(client: PerpsSDKClient, options?: SDKRequestOptions): Promise<DexesResponse>;
20
+ //# sourceMappingURL=getDexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDexes.d.ts","sourceRoot":"","sources":["../../../src/services/getDexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAOxB"}
@@ -0,0 +1,45 @@
1
+ import type { Address, HistoryResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetHistoryParams {
4
+ /** DEX to get history from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Wallet address */
7
+ address: Address;
8
+ /** Maximum number of items to return */
9
+ limit?: number;
10
+ /** Cursor for pagination */
11
+ cursor?: string;
12
+ }
13
+ /**
14
+ * Get order history for an account.
15
+ *
16
+ * @param client - The SDK client instance
17
+ * @param params - Request parameters
18
+ * @param options - Request options (e.g., AbortSignal)
19
+ * @returns Order history with pagination
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 { items, pagination } = await getHistory(client, {
27
+ * dex: 'hyperliquid',
28
+ * address: '0x1234...',
29
+ * limit: 50
30
+ * })
31
+ *
32
+ * console.log(items) // [{ id: '123', symbol: 'BTC', status: 'FILLED', ... }]
33
+ *
34
+ * // Fetch next page
35
+ * if (pagination.hasMore) {
36
+ * const nextPage = await getHistory(client, {
37
+ * dex: 'hyperliquid',
38
+ * address: '0x1234...',
39
+ * cursor: pagination.cursor
40
+ * })
41
+ * }
42
+ * ```
43
+ */
44
+ export declare function getHistory(client: PerpsSDKClient, params: GetHistoryParams, options?: SDKRequestOptions): Promise<HistoryResponse>;
45
+ //# sourceMappingURL=getHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHistory.d.ts","sourceRoot":"","sources":["../../../src/services/getHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAQ1B"}
@@ -0,0 +1,27 @@
1
+ import type { Market } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetMarketParams {
4
+ /** DEX to get market from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Market symbol (e.g., 'BTC') */
7
+ symbol: string;
8
+ }
9
+ /**
10
+ * Get a specific market by symbol.
11
+ *
12
+ * @param client - The SDK client instance
13
+ * @param params - Request parameters
14
+ * @param options - Request options (e.g., AbortSignal)
15
+ * @returns Market details
16
+ * @throws {HTTPError} On API error responses (e.g., 404 if market not found)
17
+ * @throws {PerpsError} On network or parsing errors
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const client = createPerpsClient({ integrator: 'my-app' })
22
+ * const market = await getMarket(client, { dex: 'hyperliquid', symbol: 'BTC' })
23
+ * console.log(market) // { symbol: 'BTC', markPrice: '95000.00', ... }
24
+ * ```
25
+ */
26
+ export declare function getMarket(client: PerpsSDKClient, params: GetMarketParams, options?: SDKRequestOptions): Promise<Market>;
27
+ //# sourceMappingURL=getMarket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMarket.d.ts","sourceRoot":"","sources":["../../../src/services/getMarket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAKjB"}
@@ -0,0 +1,25 @@
1
+ import type { MarketsResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetMarketsParams {
4
+ /** DEX to get markets from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ }
7
+ /**
8
+ * Get all available markets for a DEX.
9
+ *
10
+ * @param client - The SDK client instance
11
+ * @param params - Request parameters
12
+ * @param options - Request options (e.g., AbortSignal)
13
+ * @returns List of available markets
14
+ * @throws {HTTPError} On API error responses
15
+ * @throws {PerpsError} On network or parsing errors
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const client = createPerpsClient({ integrator: 'my-app' })
20
+ * const { markets } = await getMarkets(client, { dex: 'hyperliquid' })
21
+ * console.log(markets) // [{ symbol: 'BTC', name: 'Bitcoin', ... }]
22
+ * ```
23
+ */
24
+ export declare function getMarkets(client: PerpsSDKClient, params: GetMarketsParams, options?: SDKRequestOptions): Promise<MarketsResponse>;
25
+ //# sourceMappingURL=getMarkets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMarkets.d.ts","sourceRoot":"","sources":["../../../src/services/getMarkets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAG1B"}
@@ -0,0 +1,40 @@
1
+ import type { OhlcvInterval, OhlcvResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetOhlcvParams {
4
+ /** DEX to get OHLCV from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Market symbol (e.g., 'BTC') */
7
+ symbol: string;
8
+ /** Candle interval */
9
+ interval: OhlcvInterval;
10
+ /** Start time (Unix timestamp in milliseconds) */
11
+ startTime?: number;
12
+ /** End time (Unix timestamp in milliseconds) */
13
+ endTime?: number;
14
+ /** Maximum number of candles to return */
15
+ limit?: number;
16
+ }
17
+ /**
18
+ * Get OHLCV (candlestick) data 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 OHLCV candle data
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 { candles } = await getOhlcv(client, {
31
+ * dex: 'hyperliquid',
32
+ * symbol: 'BTC',
33
+ * interval: '1h',
34
+ * limit: 100
35
+ * })
36
+ * console.log(candles) // [{ t: 1704067200000, o: '94000', h: '95000', ... }]
37
+ * ```
38
+ */
39
+ export declare function getOhlcv(client: PerpsSDKClient, params: GetOhlcvParams, options?: SDKRequestOptions): Promise<OhlcvResponse>;
40
+ //# sourceMappingURL=getOhlcv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOhlcv.d.ts","sourceRoot":"","sources":["../../../src/services/getOhlcv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,QAAQ,EAAE,aAAa,CAAA;IACvB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CASxB"}
@@ -0,0 +1,33 @@
1
+ import type { Address, Order } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetOrderParams {
4
+ /** DEX to get order from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Wallet address */
7
+ address: Address;
8
+ /** Order ID */
9
+ id: string;
10
+ }
11
+ /**
12
+ * Get a specific order by ID.
13
+ *
14
+ * @param client - The SDK client instance
15
+ * @param params - Request parameters
16
+ * @param options - Request options (e.g., AbortSignal)
17
+ * @returns Order details
18
+ * @throws {HTTPError} On API error responses (e.g., 404 if order not found)
19
+ * @throws {PerpsError} On network or parsing errors
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const client = createPerpsClient({ integrator: 'my-app' })
24
+ * const order = await getOrder(client, {
25
+ * dex: 'hyperliquid',
26
+ * address: '0x1234...',
27
+ * id: '123456'
28
+ * })
29
+ * console.log(order) // { orderId: '123456', status: 'FILLED', ... }
30
+ * ```
31
+ */
32
+ export declare function getOrder(client: PerpsSDKClient, params: GetOrderParams, options?: SDKRequestOptions): Promise<Order>;
33
+ //# sourceMappingURL=getOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe;IACf,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAMhB"}
@@ -0,0 +1,34 @@
1
+ import type { OrderbookResponse } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient, SDKRequestOptions } from '../client/createPerpsClient.js';
3
+ export interface GetOrderbookParams {
4
+ /** DEX to get orderbook from (e.g., 'hyperliquid') */
5
+ dex: string;
6
+ /** Market symbol (e.g., 'BTC') */
7
+ symbol: string;
8
+ /** Number of levels to return (default varies by DEX) */
9
+ depth?: number;
10
+ }
11
+ /**
12
+ * Get orderbook for a market.
13
+ *
14
+ * @param client - The SDK client instance
15
+ * @param params - Request parameters
16
+ * @param options - Request options (e.g., AbortSignal)
17
+ * @returns Orderbook with bids and asks
18
+ * @throws {HTTPError} On API error responses
19
+ * @throws {PerpsError} On network or parsing errors
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const client = createPerpsClient({ integrator: 'my-app' })
24
+ * const { bids, asks } = await getOrderbook(client, {
25
+ * dex: 'hyperliquid',
26
+ * symbol: 'BTC',
27
+ * depth: 20
28
+ * })
29
+ * console.log(bids[0]) // { price: '94999.50', size: '1.5' }
30
+ * console.log(asks[0]) // { price: '95000.50', size: '2.0' }
31
+ * ```
32
+ */
33
+ export declare function getOrderbook(client: PerpsSDKClient, params: GetOrderbookParams, options?: SDKRequestOptions): Promise<OrderbookResponse>;
34
+ //# sourceMappingURL=getOrderbook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getOrderbook.d.ts","sourceRoot":"","sources":["../../../src/services/getOrderbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,gCAAgC,CAAA;AAGvC,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAM5B"}
@@ -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"}