@lifi/perps-sdk 0.0.0-preview-64fca0d

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 (675) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/client/PerpsClient.d.ts +63 -0
  3. package/dist/cjs/client/PerpsClient.d.ts.map +1 -0
  4. package/dist/cjs/client/PerpsClient.js +269 -0
  5. package/dist/cjs/client/PerpsClient.js.map +1 -0
  6. package/dist/cjs/client/bindProvider.d.ts +3 -0
  7. package/dist/cjs/client/bindProvider.d.ts.map +1 -0
  8. package/dist/cjs/client/bindProvider.js +9 -0
  9. package/dist/cjs/client/bindProvider.js.map +1 -0
  10. package/dist/cjs/client/createPerpsClient.d.ts +10 -0
  11. package/dist/cjs/client/createPerpsClient.d.ts.map +1 -0
  12. package/dist/cjs/client/createPerpsClient.js +54 -0
  13. package/dist/cjs/client/createPerpsClient.js.map +1 -0
  14. package/dist/cjs/client/requireProvider.d.ts +3 -0
  15. package/dist/cjs/client/requireProvider.d.ts.map +1 -0
  16. package/dist/cjs/client/requireProvider.js +16 -0
  17. package/dist/cjs/client/requireProvider.js.map +1 -0
  18. package/dist/cjs/errors/PerpsError.d.ts +8 -0
  19. package/dist/cjs/errors/PerpsError.d.ts.map +1 -0
  20. package/dist/cjs/errors/PerpsError.js +15 -0
  21. package/dist/cjs/errors/PerpsError.js.map +1 -0
  22. package/dist/cjs/errors/constants.d.ts +5 -0
  23. package/dist/cjs/errors/constants.d.ts.map +1 -0
  24. package/dist/cjs/errors/constants.js +9 -0
  25. package/dist/cjs/errors/constants.js.map +1 -0
  26. package/dist/cjs/index.d.ts +78 -0
  27. package/dist/cjs/index.d.ts.map +1 -0
  28. package/dist/cjs/index.js +168 -0
  29. package/dist/cjs/index.js.map +1 -0
  30. package/dist/cjs/package.json +1 -0
  31. package/dist/cjs/registry/assetRegistry.d.ts +11 -0
  32. package/dist/cjs/registry/assetRegistry.d.ts.map +1 -0
  33. package/dist/cjs/registry/assetRegistry.js +39 -0
  34. package/dist/cjs/registry/assetRegistry.js.map +1 -0
  35. package/dist/cjs/registry/marketRegistry.d.ts +13 -0
  36. package/dist/cjs/registry/marketRegistry.d.ts.map +1 -0
  37. package/dist/cjs/registry/marketRegistry.js +58 -0
  38. package/dist/cjs/registry/marketRegistry.js.map +1 -0
  39. package/dist/cjs/registry/referenceDataRegistry.d.ts +20 -0
  40. package/dist/cjs/registry/referenceDataRegistry.d.ts.map +1 -0
  41. package/dist/cjs/registry/referenceDataRegistry.js +59 -0
  42. package/dist/cjs/registry/referenceDataRegistry.js.map +1 -0
  43. package/dist/cjs/services/createAction.d.ts +13 -0
  44. package/dist/cjs/services/createAction.d.ts.map +1 -0
  45. package/dist/cjs/services/createAction.js +17 -0
  46. package/dist/cjs/services/createAction.js.map +1 -0
  47. package/dist/cjs/services/executeAction.d.ts +13 -0
  48. package/dist/cjs/services/executeAction.d.ts.map +1 -0
  49. package/dist/cjs/services/executeAction.js +18 -0
  50. package/dist/cjs/services/executeAction.js.map +1 -0
  51. package/dist/cjs/services/getAccount.d.ts +10 -0
  52. package/dist/cjs/services/getAccount.d.ts.map +1 -0
  53. package/dist/cjs/services/getAccount.js +8 -0
  54. package/dist/cjs/services/getAccount.js.map +1 -0
  55. package/dist/cjs/services/getActivity.d.ts +15 -0
  56. package/dist/cjs/services/getActivity.d.ts.map +1 -0
  57. package/dist/cjs/services/getActivity.js +15 -0
  58. package/dist/cjs/services/getActivity.js.map +1 -0
  59. package/dist/cjs/services/getAssets.d.ts +8 -0
  60. package/dist/cjs/services/getAssets.d.ts.map +1 -0
  61. package/dist/cjs/services/getAssets.js +11 -0
  62. package/dist/cjs/services/getAssets.js.map +1 -0
  63. package/dist/cjs/services/getFills.d.ts +14 -0
  64. package/dist/cjs/services/getFills.d.ts.map +1 -0
  65. package/dist/cjs/services/getFills.js +14 -0
  66. package/dist/cjs/services/getFills.js.map +1 -0
  67. package/dist/cjs/services/getMarket.d.ts +9 -0
  68. package/dist/cjs/services/getMarket.d.ts.map +1 -0
  69. package/dist/cjs/services/getMarket.js +13 -0
  70. package/dist/cjs/services/getMarket.js.map +1 -0
  71. package/dist/cjs/services/getMarkets.d.ts +9 -0
  72. package/dist/cjs/services/getMarkets.d.ts.map +1 -0
  73. package/dist/cjs/services/getMarkets.js +12 -0
  74. package/dist/cjs/services/getMarkets.js.map +1 -0
  75. package/dist/cjs/services/getMeta.d.ts +5 -0
  76. package/dist/cjs/services/getMeta.d.ts.map +1 -0
  77. package/dist/cjs/services/getMeta.js +8 -0
  78. package/dist/cjs/services/getMeta.js.map +1 -0
  79. package/dist/cjs/services/getOhlcv.d.ts +13 -0
  80. package/dist/cjs/services/getOhlcv.d.ts.map +1 -0
  81. package/dist/cjs/services/getOhlcv.js +16 -0
  82. package/dist/cjs/services/getOhlcv.js.map +1 -0
  83. package/dist/cjs/services/getOrder.d.ts +11 -0
  84. package/dist/cjs/services/getOrder.d.ts.map +1 -0
  85. package/dist/cjs/services/getOrder.js +8 -0
  86. package/dist/cjs/services/getOrder.js.map +1 -0
  87. package/dist/cjs/services/getOrderbook.d.ts +10 -0
  88. package/dist/cjs/services/getOrderbook.d.ts.map +1 -0
  89. package/dist/cjs/services/getOrderbook.js +13 -0
  90. package/dist/cjs/services/getOrderbook.js.map +1 -0
  91. package/dist/cjs/services/getOrders.d.ts +13 -0
  92. package/dist/cjs/services/getOrders.d.ts.map +1 -0
  93. package/dist/cjs/services/getOrders.js +13 -0
  94. package/dist/cjs/services/getOrders.js.map +1 -0
  95. package/dist/cjs/services/getPositions.d.ts +13 -0
  96. package/dist/cjs/services/getPositions.d.ts.map +1 -0
  97. package/dist/cjs/services/getPositions.js +13 -0
  98. package/dist/cjs/services/getPositions.js.map +1 -0
  99. package/dist/cjs/services/getPrices.d.ts +9 -0
  100. package/dist/cjs/services/getPrices.d.ts.map +1 -0
  101. package/dist/cjs/services/getPrices.js +12 -0
  102. package/dist/cjs/services/getPrices.js.map +1 -0
  103. package/dist/cjs/services/getProviders.d.ts +5 -0
  104. package/dist/cjs/services/getProviders.d.ts.map +1 -0
  105. package/dist/cjs/services/getProviders.js +8 -0
  106. package/dist/cjs/services/getProviders.js.map +1 -0
  107. package/dist/cjs/services/getQuote.d.ts +12 -0
  108. package/dist/cjs/services/getQuote.d.ts.map +1 -0
  109. package/dist/cjs/services/getQuote.js +13 -0
  110. package/dist/cjs/services/getQuote.js.map +1 -0
  111. package/dist/cjs/services/getTermsAcceptance.d.ts +6 -0
  112. package/dist/cjs/services/getTermsAcceptance.d.ts.map +1 -0
  113. package/dist/cjs/services/getTermsAcceptance.js +9 -0
  114. package/dist/cjs/services/getTermsAcceptance.js.map +1 -0
  115. package/dist/cjs/services/resolveQuote.d.ts +6 -0
  116. package/dist/cjs/services/resolveQuote.d.ts.map +1 -0
  117. package/dist/cjs/services/resolveQuote.js +36 -0
  118. package/dist/cjs/services/resolveQuote.js.map +1 -0
  119. package/dist/cjs/services/resolveSubscribeQuote.d.ts +6 -0
  120. package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -0
  121. package/dist/cjs/services/resolveSubscribeQuote.js +63 -0
  122. package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -0
  123. package/dist/cjs/storage/parseStoredRecord.d.ts +4 -0
  124. package/dist/cjs/storage/parseStoredRecord.d.ts.map +1 -0
  125. package/dist/cjs/storage/parseStoredRecord.js +26 -0
  126. package/dist/cjs/storage/parseStoredRecord.js.map +1 -0
  127. package/dist/cjs/storage/storage.d.ts +4 -0
  128. package/dist/cjs/storage/storage.d.ts.map +1 -0
  129. package/dist/cjs/storage/storage.js +47 -0
  130. package/dist/cjs/storage/storage.js.map +1 -0
  131. package/dist/cjs/storage/types.d.ts +6 -0
  132. package/dist/cjs/storage/types.d.ts.map +1 -0
  133. package/dist/cjs/storage/types.js +3 -0
  134. package/dist/cjs/storage/types.js.map +1 -0
  135. package/dist/cjs/transport/fetchWithRetry.d.ts +8 -0
  136. package/dist/cjs/transport/fetchWithRetry.d.ts.map +1 -0
  137. package/dist/cjs/transport/fetchWithRetry.js +81 -0
  138. package/dist/cjs/transport/fetchWithRetry.js.map +1 -0
  139. package/dist/cjs/transport/request.d.ts +8 -0
  140. package/dist/cjs/transport/request.d.ts.map +1 -0
  141. package/dist/cjs/transport/request.js +75 -0
  142. package/dist/cjs/transport/request.js.map +1 -0
  143. package/dist/cjs/transport/retryPolicy.d.ts +37 -0
  144. package/dist/cjs/transport/retryPolicy.d.ts.map +1 -0
  145. package/dist/cjs/transport/retryPolicy.js +79 -0
  146. package/dist/cjs/transport/retryPolicy.js.map +1 -0
  147. package/dist/cjs/types/api.d.ts +85 -0
  148. package/dist/cjs/types/api.d.ts.map +1 -0
  149. package/dist/cjs/types/api.js +3 -0
  150. package/dist/cjs/types/api.js.map +1 -0
  151. package/dist/cjs/types/config.d.ts +26 -0
  152. package/dist/cjs/types/config.d.ts.map +1 -0
  153. package/dist/cjs/types/config.js +3 -0
  154. package/dist/cjs/types/config.js.map +1 -0
  155. package/dist/cjs/types/provider.d.ts +84 -0
  156. package/dist/cjs/types/provider.d.ts.map +1 -0
  157. package/dist/cjs/types/provider.js +3 -0
  158. package/dist/cjs/types/provider.js.map +1 -0
  159. package/dist/cjs/utils/accountSummary.d.ts +3 -0
  160. package/dist/cjs/utils/accountSummary.d.ts.map +1 -0
  161. package/dist/cjs/utils/accountSummary.js +25 -0
  162. package/dist/cjs/utils/accountSummary.js.map +1 -0
  163. package/dist/cjs/utils/assertNever.d.ts +2 -0
  164. package/dist/cjs/utils/assertNever.d.ts.map +1 -0
  165. package/dist/cjs/utils/assertNever.js +7 -0
  166. package/dist/cjs/utils/assertNever.js.map +1 -0
  167. package/dist/cjs/utils/calculations.d.ts +51 -0
  168. package/dist/cjs/utils/calculations.d.ts.map +1 -0
  169. package/dist/cjs/utils/calculations.js +149 -0
  170. package/dist/cjs/utils/calculations.js.map +1 -0
  171. package/dist/cjs/utils/depositChain.d.ts +6 -0
  172. package/dist/cjs/utils/depositChain.d.ts.map +1 -0
  173. package/dist/cjs/utils/depositChain.js +13 -0
  174. package/dist/cjs/utils/depositChain.js.map +1 -0
  175. package/dist/cjs/utils/explorer.d.ts +9 -0
  176. package/dist/cjs/utils/explorer.d.ts.map +1 -0
  177. package/dist/cjs/utils/explorer.js +23 -0
  178. package/dist/cjs/utils/explorer.js.map +1 -0
  179. package/dist/cjs/utils/fillClassification.d.ts +3 -0
  180. package/dist/cjs/utils/fillClassification.d.ts.map +1 -0
  181. package/dist/cjs/utils/fillClassification.js +37 -0
  182. package/dist/cjs/utils/fillClassification.js.map +1 -0
  183. package/dist/cjs/utils/format.d.ts +13 -0
  184. package/dist/cjs/utils/format.d.ts.map +1 -0
  185. package/dist/cjs/utils/format.js +117 -0
  186. package/dist/cjs/utils/format.js.map +1 -0
  187. package/dist/cjs/utils/orderClassification.d.ts +10 -0
  188. package/dist/cjs/utils/orderClassification.d.ts.map +1 -0
  189. package/dist/cjs/utils/orderClassification.js +49 -0
  190. package/dist/cjs/utils/orderClassification.js.map +1 -0
  191. package/dist/cjs/utils/orderMath.d.ts +6 -0
  192. package/dist/cjs/utils/orderMath.d.ts.map +1 -0
  193. package/dist/cjs/utils/orderMath.js +71 -0
  194. package/dist/cjs/utils/orderMath.js.map +1 -0
  195. package/dist/cjs/utils/parse.d.ts +2 -0
  196. package/dist/cjs/utils/parse.d.ts.map +1 -0
  197. package/dist/cjs/utils/parse.js +14 -0
  198. package/dist/cjs/utils/parse.js.map +1 -0
  199. package/dist/cjs/utils/positionMath.d.ts +32 -0
  200. package/dist/cjs/utils/positionMath.d.ts.map +1 -0
  201. package/dist/cjs/utils/positionMath.js +52 -0
  202. package/dist/cjs/utils/positionMath.js.map +1 -0
  203. package/dist/cjs/utils/signTypedData.d.ts +5 -0
  204. package/dist/cjs/utils/signTypedData.d.ts.map +1 -0
  205. package/dist/cjs/utils/signTypedData.js +23 -0
  206. package/dist/cjs/utils/signTypedData.js.map +1 -0
  207. package/dist/cjs/utils/sleep.d.ts +2 -0
  208. package/dist/cjs/utils/sleep.d.ts.map +1 -0
  209. package/dist/cjs/utils/sleep.js +6 -0
  210. package/dist/cjs/utils/sleep.js.map +1 -0
  211. package/dist/cjs/utils/units.d.ts +3 -0
  212. package/dist/cjs/utils/units.d.ts.map +1 -0
  213. package/dist/cjs/utils/units.js +18 -0
  214. package/dist/cjs/utils/units.js.map +1 -0
  215. package/dist/cjs/utils/validation.d.ts +2 -0
  216. package/dist/cjs/utils/validation.d.ts.map +1 -0
  217. package/dist/cjs/utils/validation.js +16 -0
  218. package/dist/cjs/utils/validation.js.map +1 -0
  219. package/dist/cjs/version.d.ts +3 -0
  220. package/dist/cjs/version.d.ts.map +1 -0
  221. package/dist/cjs/version.js +6 -0
  222. package/dist/cjs/version.js.map +1 -0
  223. package/dist/cjs/websocket/PerpsWsClient.d.ts +27 -0
  224. package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -0
  225. package/dist/cjs/websocket/PerpsWsClient.js +84 -0
  226. package/dist/cjs/websocket/PerpsWsClient.js.map +1 -0
  227. package/dist/cjs/websocket/ReconnectingWebSocket.d.ts +52 -0
  228. package/dist/cjs/websocket/ReconnectingWebSocket.d.ts.map +1 -0
  229. package/dist/cjs/websocket/ReconnectingWebSocket.js +213 -0
  230. package/dist/cjs/websocket/ReconnectingWebSocket.js.map +1 -0
  231. package/dist/cjs/websocket/WsProviderBase.d.ts +31 -0
  232. package/dist/cjs/websocket/WsProviderBase.d.ts.map +1 -0
  233. package/dist/cjs/websocket/WsProviderBase.js +197 -0
  234. package/dist/cjs/websocket/WsProviderBase.js.map +1 -0
  235. package/dist/cjs/websocket/cachePromise.d.ts +2 -0
  236. package/dist/cjs/websocket/cachePromise.d.ts.map +1 -0
  237. package/dist/cjs/websocket/cachePromise.js +18 -0
  238. package/dist/cjs/websocket/cachePromise.js.map +1 -0
  239. package/dist/cjs/websocket/types.d.ts +15 -0
  240. package/dist/cjs/websocket/types.d.ts.map +1 -0
  241. package/dist/cjs/websocket/types.js +3 -0
  242. package/dist/cjs/websocket/types.js.map +1 -0
  243. package/dist/cjs/websocket/wsLog.d.ts +10 -0
  244. package/dist/cjs/websocket/wsLog.d.ts.map +1 -0
  245. package/dist/cjs/websocket/wsLog.js +31 -0
  246. package/dist/cjs/websocket/wsLog.js.map +1 -0
  247. package/dist/esm/client/PerpsClient.d.ts +285 -0
  248. package/dist/esm/client/PerpsClient.d.ts.map +1 -0
  249. package/dist/esm/client/PerpsClient.js +498 -0
  250. package/dist/esm/client/PerpsClient.js.map +1 -0
  251. package/dist/esm/client/bindProvider.d.ts +13 -0
  252. package/dist/esm/client/bindProvider.d.ts.map +1 -0
  253. package/dist/esm/client/bindProvider.js +16 -0
  254. package/dist/esm/client/bindProvider.js.map +1 -0
  255. package/dist/esm/client/createPerpsClient.d.ts +37 -0
  256. package/dist/esm/client/createPerpsClient.d.ts.map +1 -0
  257. package/dist/esm/client/createPerpsClient.js +76 -0
  258. package/dist/esm/client/createPerpsClient.js.map +1 -0
  259. package/dist/esm/client/requireProvider.d.ts +12 -0
  260. package/dist/esm/client/requireProvider.d.ts.map +1 -0
  261. package/dist/esm/client/requireProvider.js +22 -0
  262. package/dist/esm/client/requireProvider.js.map +1 -0
  263. package/dist/esm/errors/PerpsError.d.ts +16 -0
  264. package/dist/esm/errors/PerpsError.d.ts.map +1 -0
  265. package/dist/esm/errors/PerpsError.js +19 -0
  266. package/dist/esm/errors/PerpsError.js.map +1 -0
  267. package/dist/esm/errors/constants.d.ts +11 -0
  268. package/dist/esm/errors/constants.d.ts.map +1 -0
  269. package/dist/esm/errors/constants.js +12 -0
  270. package/dist/esm/errors/constants.js.map +1 -0
  271. package/dist/esm/index.d.ts +86 -0
  272. package/dist/esm/index.d.ts.map +1 -0
  273. package/dist/esm/index.js +63 -0
  274. package/dist/esm/index.js.map +1 -0
  275. package/dist/esm/package.json +1 -0
  276. package/dist/esm/registry/assetRegistry.d.ts +25 -0
  277. package/dist/esm/registry/assetRegistry.d.ts.map +1 -0
  278. package/dist/esm/registry/assetRegistry.js +48 -0
  279. package/dist/esm/registry/assetRegistry.js.map +1 -0
  280. package/dist/esm/registry/marketRegistry.d.ts +42 -0
  281. package/dist/esm/registry/marketRegistry.d.ts.map +1 -0
  282. package/dist/esm/registry/marketRegistry.js +81 -0
  283. package/dist/esm/registry/marketRegistry.js.map +1 -0
  284. package/dist/esm/registry/referenceDataRegistry.d.ts +44 -0
  285. package/dist/esm/registry/referenceDataRegistry.d.ts.map +1 -0
  286. package/dist/esm/registry/referenceDataRegistry.js +79 -0
  287. package/dist/esm/registry/referenceDataRegistry.js.map +1 -0
  288. package/dist/esm/services/createAction.d.ts +26 -0
  289. package/dist/esm/services/createAction.d.ts.map +1 -0
  290. package/dist/esm/services/createAction.js +22 -0
  291. package/dist/esm/services/createAction.js.map +1 -0
  292. package/dist/esm/services/executeAction.d.ts +26 -0
  293. package/dist/esm/services/executeAction.d.ts.map +1 -0
  294. package/dist/esm/services/executeAction.js +26 -0
  295. package/dist/esm/services/executeAction.js.map +1 -0
  296. package/dist/esm/services/getAccount.d.ts +35 -0
  297. package/dist/esm/services/getAccount.d.ts.map +1 -0
  298. package/dist/esm/services/getAccount.js +25 -0
  299. package/dist/esm/services/getAccount.js.map +1 -0
  300. package/dist/esm/services/getActivity.d.ts +39 -0
  301. package/dist/esm/services/getActivity.d.ts.map +1 -0
  302. package/dist/esm/services/getActivity.js +29 -0
  303. package/dist/esm/services/getActivity.js.map +1 -0
  304. package/dist/esm/services/getAssets.d.ts +27 -0
  305. package/dist/esm/services/getAssets.d.ts.map +1 -0
  306. package/dist/esm/services/getAssets.js +22 -0
  307. package/dist/esm/services/getAssets.js.map +1 -0
  308. package/dist/esm/services/getFills.d.ts +38 -0
  309. package/dist/esm/services/getFills.d.ts.map +1 -0
  310. package/dist/esm/services/getFills.js +28 -0
  311. package/dist/esm/services/getFills.js.map +1 -0
  312. package/dist/esm/services/getMarket.d.ts +34 -0
  313. package/dist/esm/services/getMarket.d.ts.map +1 -0
  314. package/dist/esm/services/getMarket.js +25 -0
  315. package/dist/esm/services/getMarket.js.map +1 -0
  316. package/dist/esm/services/getMarkets.d.ts +28 -0
  317. package/dist/esm/services/getMarkets.d.ts.map +1 -0
  318. package/dist/esm/services/getMarkets.js +22 -0
  319. package/dist/esm/services/getMarkets.js.map +1 -0
  320. package/dist/esm/services/getMeta.d.ts +21 -0
  321. package/dist/esm/services/getMeta.d.ts.map +1 -0
  322. package/dist/esm/services/getMeta.js +21 -0
  323. package/dist/esm/services/getMeta.js.map +1 -0
  324. package/dist/esm/services/getOhlcv.d.ts +36 -0
  325. package/dist/esm/services/getOhlcv.d.ts.map +1 -0
  326. package/dist/esm/services/getOhlcv.js +28 -0
  327. package/dist/esm/services/getOhlcv.js.map +1 -0
  328. package/dist/esm/services/getOrder.d.ts +33 -0
  329. package/dist/esm/services/getOrder.d.ts.map +1 -0
  330. package/dist/esm/services/getOrder.js +22 -0
  331. package/dist/esm/services/getOrder.js.map +1 -0
  332. package/dist/esm/services/getOrderbook.d.ts +24 -0
  333. package/dist/esm/services/getOrderbook.d.ts.map +1 -0
  334. package/dist/esm/services/getOrderbook.js +17 -0
  335. package/dist/esm/services/getOrderbook.js.map +1 -0
  336. package/dist/esm/services/getOrders.d.ts +35 -0
  337. package/dist/esm/services/getOrders.d.ts.map +1 -0
  338. package/dist/esm/services/getOrders.js +26 -0
  339. package/dist/esm/services/getOrders.js.map +1 -0
  340. package/dist/esm/services/getPositions.d.ts +35 -0
  341. package/dist/esm/services/getPositions.d.ts.map +1 -0
  342. package/dist/esm/services/getPositions.js +26 -0
  343. package/dist/esm/services/getPositions.js.map +1 -0
  344. package/dist/esm/services/getPrices.d.ts +21 -0
  345. package/dist/esm/services/getPrices.d.ts.map +1 -0
  346. package/dist/esm/services/getPrices.js +15 -0
  347. package/dist/esm/services/getPrices.js.map +1 -0
  348. package/dist/esm/services/getProviders.d.ts +22 -0
  349. package/dist/esm/services/getProviders.d.ts.map +1 -0
  350. package/dist/esm/services/getProviders.js +22 -0
  351. package/dist/esm/services/getProviders.js.map +1 -0
  352. package/dist/esm/services/getQuote.d.ts +42 -0
  353. package/dist/esm/services/getQuote.d.ts.map +1 -0
  354. package/dist/esm/services/getQuote.js +33 -0
  355. package/dist/esm/services/getQuote.js.map +1 -0
  356. package/dist/esm/services/getTermsAcceptance.d.ts +26 -0
  357. package/dist/esm/services/getTermsAcceptance.d.ts.map +1 -0
  358. package/dist/esm/services/getTermsAcceptance.js +26 -0
  359. package/dist/esm/services/getTermsAcceptance.js.map +1 -0
  360. package/dist/esm/services/resolveQuote.d.ts +26 -0
  361. package/dist/esm/services/resolveQuote.d.ts.map +1 -0
  362. package/dist/esm/services/resolveQuote.js +52 -0
  363. package/dist/esm/services/resolveQuote.js.map +1 -0
  364. package/dist/esm/services/resolveSubscribeQuote.d.ts +31 -0
  365. package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -0
  366. package/dist/esm/services/resolveSubscribeQuote.js +84 -0
  367. package/dist/esm/services/resolveSubscribeQuote.js.map +1 -0
  368. package/dist/esm/storage/parseStoredRecord.d.ts +29 -0
  369. package/dist/esm/storage/parseStoredRecord.d.ts.map +1 -0
  370. package/dist/esm/storage/parseStoredRecord.js +47 -0
  371. package/dist/esm/storage/parseStoredRecord.js.map +1 -0
  372. package/dist/esm/storage/storage.d.ts +15 -0
  373. package/dist/esm/storage/storage.d.ts.map +1 -0
  374. package/dist/esm/storage/storage.js +56 -0
  375. package/dist/esm/storage/storage.js.map +1 -0
  376. package/dist/esm/storage/types.d.ts +14 -0
  377. package/dist/esm/storage/types.d.ts.map +1 -0
  378. package/dist/esm/storage/types.js +2 -0
  379. package/dist/esm/storage/types.js.map +1 -0
  380. package/dist/esm/transport/fetchWithRetry.d.ts +22 -0
  381. package/dist/esm/transport/fetchWithRetry.d.ts.map +1 -0
  382. package/dist/esm/transport/fetchWithRetry.js +87 -0
  383. package/dist/esm/transport/fetchWithRetry.js.map +1 -0
  384. package/dist/esm/transport/request.d.ts +25 -0
  385. package/dist/esm/transport/request.d.ts.map +1 -0
  386. package/dist/esm/transport/request.js +82 -0
  387. package/dist/esm/transport/request.js.map +1 -0
  388. package/dist/esm/transport/retryPolicy.d.ts +106 -0
  389. package/dist/esm/transport/retryPolicy.d.ts.map +1 -0
  390. package/dist/esm/transport/retryPolicy.js +99 -0
  391. package/dist/esm/transport/retryPolicy.js.map +1 -0
  392. package/dist/esm/types/api.d.ts +214 -0
  393. package/dist/esm/types/api.d.ts.map +1 -0
  394. package/dist/esm/types/api.js +2 -0
  395. package/dist/esm/types/api.js.map +1 -0
  396. package/dist/esm/types/config.d.ts +70 -0
  397. package/dist/esm/types/config.d.ts.map +1 -0
  398. package/dist/esm/types/config.js +2 -0
  399. package/dist/esm/types/config.js.map +1 -0
  400. package/dist/esm/types/provider.d.ts +330 -0
  401. package/dist/esm/types/provider.d.ts.map +1 -0
  402. package/dist/esm/types/provider.js +2 -0
  403. package/dist/esm/types/provider.js.map +1 -0
  404. package/dist/esm/utils/accountSummary.d.ts +13 -0
  405. package/dist/esm/utils/accountSummary.d.ts.map +1 -0
  406. package/dist/esm/utils/accountSummary.js +32 -0
  407. package/dist/esm/utils/accountSummary.js.map +1 -0
  408. package/dist/esm/utils/assertNever.d.ts +20 -0
  409. package/dist/esm/utils/assertNever.d.ts.map +1 -0
  410. package/dist/esm/utils/assertNever.js +22 -0
  411. package/dist/esm/utils/assertNever.js.map +1 -0
  412. package/dist/esm/utils/calculations.d.ts +223 -0
  413. package/dist/esm/utils/calculations.d.ts.map +1 -0
  414. package/dist/esm/utils/calculations.js +291 -0
  415. package/dist/esm/utils/calculations.js.map +1 -0
  416. package/dist/esm/utils/depositChain.d.ts +25 -0
  417. package/dist/esm/utils/depositChain.d.ts.map +1 -0
  418. package/dist/esm/utils/depositChain.js +23 -0
  419. package/dist/esm/utils/depositChain.js.map +1 -0
  420. package/dist/esm/utils/explorer.d.ts +33 -0
  421. package/dist/esm/utils/explorer.d.ts.map +1 -0
  422. package/dist/esm/utils/explorer.js +38 -0
  423. package/dist/esm/utils/explorer.js.map +1 -0
  424. package/dist/esm/utils/fillClassification.d.ts +13 -0
  425. package/dist/esm/utils/fillClassification.d.ts.map +1 -0
  426. package/dist/esm/utils/fillClassification.js +44 -0
  427. package/dist/esm/utils/fillClassification.js.map +1 -0
  428. package/dist/esm/utils/format.d.ts +66 -0
  429. package/dist/esm/utils/format.d.ts.map +1 -0
  430. package/dist/esm/utils/format.js +171 -0
  431. package/dist/esm/utils/format.js.map +1 -0
  432. package/dist/esm/utils/orderClassification.d.ts +47 -0
  433. package/dist/esm/utils/orderClassification.d.ts.map +1 -0
  434. package/dist/esm/utils/orderClassification.js +78 -0
  435. package/dist/esm/utils/orderClassification.js.map +1 -0
  436. package/dist/esm/utils/orderMath.d.ts +44 -0
  437. package/dist/esm/utils/orderMath.d.ts.map +1 -0
  438. package/dist/esm/utils/orderMath.js +103 -0
  439. package/dist/esm/utils/orderMath.js.map +1 -0
  440. package/dist/esm/utils/parse.d.ts +22 -0
  441. package/dist/esm/utils/parse.d.ts.map +1 -0
  442. package/dist/esm/utils/parse.js +31 -0
  443. package/dist/esm/utils/parse.js.map +1 -0
  444. package/dist/esm/utils/positionMath.d.ts +107 -0
  445. package/dist/esm/utils/positionMath.d.ts.map +1 -0
  446. package/dist/esm/utils/positionMath.js +119 -0
  447. package/dist/esm/utils/positionMath.js.map +1 -0
  448. package/dist/esm/utils/signTypedData.d.ts +18 -0
  449. package/dist/esm/utils/signTypedData.d.ts.map +1 -0
  450. package/dist/esm/utils/signTypedData.js +32 -0
  451. package/dist/esm/utils/signTypedData.js.map +1 -0
  452. package/dist/esm/utils/sleep.d.ts +7 -0
  453. package/dist/esm/utils/sleep.d.ts.map +1 -0
  454. package/dist/esm/utils/sleep.js +7 -0
  455. package/dist/esm/utils/sleep.js.map +1 -0
  456. package/dist/esm/utils/units.d.ts +27 -0
  457. package/dist/esm/utils/units.d.ts.map +1 -0
  458. package/dist/esm/utils/units.js +38 -0
  459. package/dist/esm/utils/units.js.map +1 -0
  460. package/dist/esm/utils/validation.d.ts +18 -0
  461. package/dist/esm/utils/validation.d.ts.map +1 -0
  462. package/dist/esm/utils/validation.js +29 -0
  463. package/dist/esm/utils/validation.js.map +1 -0
  464. package/dist/esm/version.d.ts +3 -0
  465. package/dist/esm/version.d.ts.map +1 -0
  466. package/dist/esm/version.js +3 -0
  467. package/dist/esm/version.js.map +1 -0
  468. package/dist/esm/websocket/PerpsWsClient.d.ts +100 -0
  469. package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -0
  470. package/dist/esm/websocket/PerpsWsClient.js +121 -0
  471. package/dist/esm/websocket/PerpsWsClient.js.map +1 -0
  472. package/dist/esm/websocket/ReconnectingWebSocket.d.ts +130 -0
  473. package/dist/esm/websocket/ReconnectingWebSocket.d.ts.map +1 -0
  474. package/dist/esm/websocket/ReconnectingWebSocket.js +288 -0
  475. package/dist/esm/websocket/ReconnectingWebSocket.js.map +1 -0
  476. package/dist/esm/websocket/WsProviderBase.d.ts +89 -0
  477. package/dist/esm/websocket/WsProviderBase.d.ts.map +1 -0
  478. package/dist/esm/websocket/WsProviderBase.js +246 -0
  479. package/dist/esm/websocket/WsProviderBase.js.map +1 -0
  480. package/dist/esm/websocket/cachePromise.d.ts +14 -0
  481. package/dist/esm/websocket/cachePromise.d.ts.map +1 -0
  482. package/dist/esm/websocket/cachePromise.js +27 -0
  483. package/dist/esm/websocket/cachePromise.js.map +1 -0
  484. package/dist/esm/websocket/types.d.ts +60 -0
  485. package/dist/esm/websocket/types.d.ts.map +1 -0
  486. package/dist/esm/websocket/types.js +2 -0
  487. package/dist/esm/websocket/types.js.map +1 -0
  488. package/dist/esm/websocket/wsLog.d.ts +50 -0
  489. package/dist/esm/websocket/wsLog.d.ts.map +1 -0
  490. package/dist/esm/websocket/wsLog.js +68 -0
  491. package/dist/esm/websocket/wsLog.js.map +1 -0
  492. package/dist/types/client/PerpsClient.d.ts +285 -0
  493. package/dist/types/client/PerpsClient.d.ts.map +1 -0
  494. package/dist/types/client/bindProvider.d.ts +13 -0
  495. package/dist/types/client/bindProvider.d.ts.map +1 -0
  496. package/dist/types/client/createPerpsClient.d.ts +37 -0
  497. package/dist/types/client/createPerpsClient.d.ts.map +1 -0
  498. package/dist/types/client/requireProvider.d.ts +12 -0
  499. package/dist/types/client/requireProvider.d.ts.map +1 -0
  500. package/dist/types/errors/PerpsError.d.ts +16 -0
  501. package/dist/types/errors/PerpsError.d.ts.map +1 -0
  502. package/dist/types/errors/constants.d.ts +11 -0
  503. package/dist/types/errors/constants.d.ts.map +1 -0
  504. package/dist/types/index.d.ts +86 -0
  505. package/dist/types/index.d.ts.map +1 -0
  506. package/dist/types/registry/assetRegistry.d.ts +25 -0
  507. package/dist/types/registry/assetRegistry.d.ts.map +1 -0
  508. package/dist/types/registry/marketRegistry.d.ts +42 -0
  509. package/dist/types/registry/marketRegistry.d.ts.map +1 -0
  510. package/dist/types/registry/referenceDataRegistry.d.ts +44 -0
  511. package/dist/types/registry/referenceDataRegistry.d.ts.map +1 -0
  512. package/dist/types/services/createAction.d.ts +26 -0
  513. package/dist/types/services/createAction.d.ts.map +1 -0
  514. package/dist/types/services/executeAction.d.ts +26 -0
  515. package/dist/types/services/executeAction.d.ts.map +1 -0
  516. package/dist/types/services/getAccount.d.ts +35 -0
  517. package/dist/types/services/getAccount.d.ts.map +1 -0
  518. package/dist/types/services/getActivity.d.ts +39 -0
  519. package/dist/types/services/getActivity.d.ts.map +1 -0
  520. package/dist/types/services/getAssets.d.ts +27 -0
  521. package/dist/types/services/getAssets.d.ts.map +1 -0
  522. package/dist/types/services/getFills.d.ts +38 -0
  523. package/dist/types/services/getFills.d.ts.map +1 -0
  524. package/dist/types/services/getMarket.d.ts +34 -0
  525. package/dist/types/services/getMarket.d.ts.map +1 -0
  526. package/dist/types/services/getMarkets.d.ts +28 -0
  527. package/dist/types/services/getMarkets.d.ts.map +1 -0
  528. package/dist/types/services/getMeta.d.ts +21 -0
  529. package/dist/types/services/getMeta.d.ts.map +1 -0
  530. package/dist/types/services/getOhlcv.d.ts +36 -0
  531. package/dist/types/services/getOhlcv.d.ts.map +1 -0
  532. package/dist/types/services/getOrder.d.ts +33 -0
  533. package/dist/types/services/getOrder.d.ts.map +1 -0
  534. package/dist/types/services/getOrderbook.d.ts +24 -0
  535. package/dist/types/services/getOrderbook.d.ts.map +1 -0
  536. package/dist/types/services/getOrders.d.ts +35 -0
  537. package/dist/types/services/getOrders.d.ts.map +1 -0
  538. package/dist/types/services/getPositions.d.ts +35 -0
  539. package/dist/types/services/getPositions.d.ts.map +1 -0
  540. package/dist/types/services/getPrices.d.ts +21 -0
  541. package/dist/types/services/getPrices.d.ts.map +1 -0
  542. package/dist/types/services/getProviders.d.ts +22 -0
  543. package/dist/types/services/getProviders.d.ts.map +1 -0
  544. package/dist/types/services/getQuote.d.ts +42 -0
  545. package/dist/types/services/getQuote.d.ts.map +1 -0
  546. package/dist/types/services/getTermsAcceptance.d.ts +26 -0
  547. package/dist/types/services/getTermsAcceptance.d.ts.map +1 -0
  548. package/dist/types/services/resolveQuote.d.ts +26 -0
  549. package/dist/types/services/resolveQuote.d.ts.map +1 -0
  550. package/dist/types/services/resolveSubscribeQuote.d.ts +31 -0
  551. package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -0
  552. package/dist/types/storage/parseStoredRecord.d.ts +29 -0
  553. package/dist/types/storage/parseStoredRecord.d.ts.map +1 -0
  554. package/dist/types/storage/storage.d.ts +15 -0
  555. package/dist/types/storage/storage.d.ts.map +1 -0
  556. package/dist/types/storage/types.d.ts +14 -0
  557. package/dist/types/storage/types.d.ts.map +1 -0
  558. package/dist/types/transport/fetchWithRetry.d.ts +22 -0
  559. package/dist/types/transport/fetchWithRetry.d.ts.map +1 -0
  560. package/dist/types/transport/request.d.ts +25 -0
  561. package/dist/types/transport/request.d.ts.map +1 -0
  562. package/dist/types/transport/retryPolicy.d.ts +106 -0
  563. package/dist/types/transport/retryPolicy.d.ts.map +1 -0
  564. package/dist/types/types/api.d.ts +214 -0
  565. package/dist/types/types/api.d.ts.map +1 -0
  566. package/dist/types/types/config.d.ts +70 -0
  567. package/dist/types/types/config.d.ts.map +1 -0
  568. package/dist/types/types/provider.d.ts +330 -0
  569. package/dist/types/types/provider.d.ts.map +1 -0
  570. package/dist/types/utils/accountSummary.d.ts +13 -0
  571. package/dist/types/utils/accountSummary.d.ts.map +1 -0
  572. package/dist/types/utils/assertNever.d.ts +20 -0
  573. package/dist/types/utils/assertNever.d.ts.map +1 -0
  574. package/dist/types/utils/calculations.d.ts +223 -0
  575. package/dist/types/utils/calculations.d.ts.map +1 -0
  576. package/dist/types/utils/depositChain.d.ts +25 -0
  577. package/dist/types/utils/depositChain.d.ts.map +1 -0
  578. package/dist/types/utils/explorer.d.ts +33 -0
  579. package/dist/types/utils/explorer.d.ts.map +1 -0
  580. package/dist/types/utils/fillClassification.d.ts +13 -0
  581. package/dist/types/utils/fillClassification.d.ts.map +1 -0
  582. package/dist/types/utils/format.d.ts +66 -0
  583. package/dist/types/utils/format.d.ts.map +1 -0
  584. package/dist/types/utils/orderClassification.d.ts +47 -0
  585. package/dist/types/utils/orderClassification.d.ts.map +1 -0
  586. package/dist/types/utils/orderMath.d.ts +44 -0
  587. package/dist/types/utils/orderMath.d.ts.map +1 -0
  588. package/dist/types/utils/parse.d.ts +22 -0
  589. package/dist/types/utils/parse.d.ts.map +1 -0
  590. package/dist/types/utils/positionMath.d.ts +107 -0
  591. package/dist/types/utils/positionMath.d.ts.map +1 -0
  592. package/dist/types/utils/signTypedData.d.ts +18 -0
  593. package/dist/types/utils/signTypedData.d.ts.map +1 -0
  594. package/dist/types/utils/sleep.d.ts +7 -0
  595. package/dist/types/utils/sleep.d.ts.map +1 -0
  596. package/dist/types/utils/units.d.ts +27 -0
  597. package/dist/types/utils/units.d.ts.map +1 -0
  598. package/dist/types/utils/validation.d.ts +18 -0
  599. package/dist/types/utils/validation.d.ts.map +1 -0
  600. package/dist/types/version.d.ts +3 -0
  601. package/dist/types/version.d.ts.map +1 -0
  602. package/dist/types/websocket/PerpsWsClient.d.ts +100 -0
  603. package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -0
  604. package/dist/types/websocket/ReconnectingWebSocket.d.ts +130 -0
  605. package/dist/types/websocket/ReconnectingWebSocket.d.ts.map +1 -0
  606. package/dist/types/websocket/WsProviderBase.d.ts +89 -0
  607. package/dist/types/websocket/WsProviderBase.d.ts.map +1 -0
  608. package/dist/types/websocket/cachePromise.d.ts +14 -0
  609. package/dist/types/websocket/cachePromise.d.ts.map +1 -0
  610. package/dist/types/websocket/types.d.ts +60 -0
  611. package/dist/types/websocket/types.d.ts.map +1 -0
  612. package/dist/types/websocket/wsLog.d.ts +50 -0
  613. package/dist/types/websocket/wsLog.d.ts.map +1 -0
  614. package/package.json +63 -0
  615. package/src/client/PerpsClient.ts +686 -0
  616. package/src/client/bindProvider.ts +24 -0
  617. package/src/client/createPerpsClient.ts +100 -0
  618. package/src/client/requireProvider.ts +29 -0
  619. package/src/errors/PerpsError.ts +23 -0
  620. package/src/errors/constants.ts +10 -0
  621. package/src/index.ts +215 -0
  622. package/src/registry/assetRegistry.ts +62 -0
  623. package/src/registry/marketRegistry.ts +100 -0
  624. package/src/registry/referenceDataRegistry.ts +95 -0
  625. package/src/services/createAction.ts +52 -0
  626. package/src/services/executeAction.ts +56 -0
  627. package/src/services/getAccount.ts +46 -0
  628. package/src/services/getActivity.ts +57 -0
  629. package/src/services/getAssets.ts +38 -0
  630. package/src/services/getFills.ts +55 -0
  631. package/src/services/getMarket.ts +52 -0
  632. package/src/services/getMarkets.ts +40 -0
  633. package/src/services/getMeta.ts +32 -0
  634. package/src/services/getOhlcv.ts +52 -0
  635. package/src/services/getOrder.ts +44 -0
  636. package/src/services/getOrderbook.ts +37 -0
  637. package/src/services/getOrders.ts +51 -0
  638. package/src/services/getPositions.ts +51 -0
  639. package/src/services/getPrices.ts +33 -0
  640. package/src/services/getProviders.ts +33 -0
  641. package/src/services/getQuote.ts +58 -0
  642. package/src/services/getTermsAcceptance.ts +34 -0
  643. package/src/services/resolveQuote.ts +90 -0
  644. package/src/services/resolveSubscribeQuote.ts +107 -0
  645. package/src/storage/parseStoredRecord.ts +55 -0
  646. package/src/storage/storage.ts +60 -0
  647. package/src/storage/types.ts +13 -0
  648. package/src/transport/fetchWithRetry.ts +116 -0
  649. package/src/transport/request.ts +123 -0
  650. package/src/transport/retryPolicy.ts +202 -0
  651. package/src/types/api.ts +239 -0
  652. package/src/types/config.ts +79 -0
  653. package/src/types/provider.ts +429 -0
  654. package/src/utils/accountSummary.ts +46 -0
  655. package/src/utils/assertNever.ts +23 -0
  656. package/src/utils/calculations.ts +407 -0
  657. package/src/utils/depositChain.ts +37 -0
  658. package/src/utils/explorer.ts +51 -0
  659. package/src/utils/fillClassification.ts +51 -0
  660. package/src/utils/format.ts +212 -0
  661. package/src/utils/orderClassification.ts +96 -0
  662. package/src/utils/orderMath.ts +134 -0
  663. package/src/utils/parse.ts +30 -0
  664. package/src/utils/positionMath.ts +149 -0
  665. package/src/utils/signTypedData.ts +41 -0
  666. package/src/utils/sleep.ts +7 -0
  667. package/src/utils/units.ts +39 -0
  668. package/src/utils/validation.ts +38 -0
  669. package/src/version.ts +2 -0
  670. package/src/websocket/PerpsWsClient.ts +204 -0
  671. package/src/websocket/ReconnectingWebSocket.ts +353 -0
  672. package/src/websocket/WsProviderBase.ts +333 -0
  673. package/src/websocket/cachePromise.ts +30 -0
  674. package/src/websocket/types.ts +75 -0
  675. package/src/websocket/wsLog.ts +82 -0
@@ -0,0 +1,498 @@
1
+ import { ActionType, PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsError } from '../errors/PerpsError.js';
3
+ import { createAction } from '../services/createAction.js';
4
+ import { executeAction } from '../services/executeAction.js';
5
+ import { getAccount as fetchAccount } from '../services/getAccount.js';
6
+ import { getProviders } from '../services/getProviders.js';
7
+ import { createPerpsClient } from './createPerpsClient.js';
8
+ import { requireProvider as resolveProvider } from './requireProvider.js';
9
+ /**
10
+ * Look up an action's descriptor in the provider's metadata. Throws if the
11
+ * action isn't declared — defensive: better to fail loudly than to mis-sign.
12
+ */
13
+ function findActionDescriptor(metadata, action) {
14
+ const descriptor = [
15
+ ...metadata.setup,
16
+ ...metadata.options,
17
+ ...metadata.actions,
18
+ ].find((d) => d.type === action);
19
+ if (!descriptor) {
20
+ throw new PerpsError(PerpsErrorCode.SDKError, `Provider '${metadata.key}' does not declare action '${action}'.`);
21
+ }
22
+ return descriptor;
23
+ }
24
+ /**
25
+ * The primary high-level perps API: wraps a {@link PerpsSDKClient} and owns the
26
+ * end-to-end signing pipeline for provider setup, orders, and account-level
27
+ * actions. Construct via `new PerpsClient(options)` or the SDK's higher-level
28
+ * wiring.
29
+ *
30
+ * @public
31
+ */
32
+ export class PerpsClient {
33
+ sdkClient;
34
+ providerMetadataCache = new Map();
35
+ _userWallet;
36
+ constructor(options) {
37
+ this.sdkClient = createPerpsClient({
38
+ integrator: options.integrator,
39
+ apiKey: options.apiKey,
40
+ apiUrl: options.apiUrl,
41
+ providers: options.providers,
42
+ });
43
+ }
44
+ /**
45
+ * Set or update the end-user's wallet. Used whenever an action's descriptor
46
+ * names the user wallet in its `signers` list. Pass undefined to clear.
47
+ *
48
+ * @public
49
+ */
50
+ setUserWallet(userWallet) {
51
+ this._userWallet = userWallet;
52
+ Object.defineProperty(this.sdkClient, 'userWallet', {
53
+ get: () => this._userWallet,
54
+ configurable: true,
55
+ });
56
+ }
57
+ /**
58
+ * The underlying low-level {@link PerpsSDKClient} (config, user wallet,
59
+ * provider registry) backing this instance.
60
+ *
61
+ * @public
62
+ */
63
+ get client() {
64
+ return this.sdkClient;
65
+ }
66
+ async getProviderMetadata(provider) {
67
+ const cached = this.providerMetadataCache.get(provider);
68
+ if (cached) {
69
+ return cached;
70
+ }
71
+ const { providers } = await getProviders(this.sdkClient);
72
+ for (const d of providers) {
73
+ this.providerMetadataCache.set(d.key, d);
74
+ }
75
+ const metadata = this.providerMetadataCache.get(provider);
76
+ if (!metadata) {
77
+ const error = new PerpsError(PerpsErrorCode.SDKError, `Unsupported provider: ${provider}`);
78
+ error.tool = '@lifi/perps-sdk';
79
+ throw error;
80
+ }
81
+ return metadata;
82
+ }
83
+ /**
84
+ * Resolve the registered provider plugin for `provider`, throwing a
85
+ * `PerpsError` when the caller has not registered one via the SDK's
86
+ * `providers` option. The plugin owns signer identity and write-side signing.
87
+ */
88
+ requireProvider(provider) {
89
+ return resolveProvider(this.sdkClient, provider);
90
+ }
91
+ /**
92
+ * Ask the provider plugin for the signer-bearing wire fields of `action` —
93
+ * the on-wire `signerAddress` and any signer-derived params (e.g.
94
+ * Hyperliquid's `agentAddress` for `APPROVE_AGENT`). Forwards the descriptor's
95
+ * `signers` so the plugin can branch on signer role. Returns empty when the
96
+ * plugin signs as the user or with a non-EVM credential. Core constructs no
97
+ * `signerAddress` itself; signer identity is plugin-owned.
98
+ */
99
+ async resolveActionRequest(provider, descriptor, address) {
100
+ const plugin = this.requireProvider(provider);
101
+ if (typeof plugin.resolveActionRequest !== 'function') {
102
+ return {};
103
+ }
104
+ return plugin.resolveActionRequest(descriptor.type, address, descriptor.signers);
105
+ }
106
+ /**
107
+ * Delegate signing of `actions` to the provider plugin. The plugin owns
108
+ * every signing arm and branches on the descriptor's `signers` internally,
109
+ * reading the end-user's wallet from the {@link SignActionsContext} when an
110
+ * arm signs as the user.
111
+ */
112
+ async delegateSignActions(provider, address, descriptor, actions) {
113
+ const plugin = this.requireProvider(provider);
114
+ if (typeof plugin.signActions !== 'function') {
115
+ throw new PerpsError(PerpsErrorCode.SDKError, `Provider '${provider}' does not implement signActions for ` +
116
+ `signingMethod '${descriptor.signingMethod}'.`);
117
+ }
118
+ return plugin.signActions(descriptor.signingMethod, actions, address, this.buildSignActionsContext(descriptor));
119
+ }
120
+ /**
121
+ * Assemble the per-call context the provider plugin needs in order to sign:
122
+ * the end-user's wallet and the descriptor's declared `signers`. Core
123
+ * forwards `signers` as data so the plugin can pick WHO signs; it does not
124
+ * branch on them. Provider-owned session credentials (the Hyperliquid agent
125
+ * keypair, Lighter's API key) are resolved inside the provider's
126
+ * `signActions`, not threaded through here.
127
+ */
128
+ buildSignActionsContext(descriptor) {
129
+ const ctx = { signers: descriptor.signers };
130
+ if (this.sdkClient.userWallet !== undefined) {
131
+ ctx.userWallet = this.sdkClient.userWallet;
132
+ }
133
+ return ctx;
134
+ }
135
+ /**
136
+ * Sign a single provider setup action step by delegating to the provider
137
+ * plugin, which branches on the step's signing scheme internally. Lets
138
+ * consumers collect signed setup actions without embedding per-method
139
+ * signing logic.
140
+ *
141
+ * @throws {PerpsError} When the step's action is not declared by the provider.
142
+ * @public
143
+ */
144
+ async signProviderSetupAction(provider, address, step) {
145
+ const metadata = await this.getProviderMetadata(provider);
146
+ const descriptor = findActionDescriptor(metadata, step.action);
147
+ const [signed] = await this.delegateSignActions(provider, address, descriptor, [step]);
148
+ return signed;
149
+ }
150
+ /**
151
+ * Build (but do not sign or submit) the unsigned action steps for `action`,
152
+ * letting the provider plugin contribute any signer-bearing request fields.
153
+ *
154
+ * @public
155
+ */
156
+ async buildAction(action, params) {
157
+ const metadata = await this.getProviderMetadata(params.provider);
158
+ const descriptor = findActionDescriptor(metadata, action);
159
+ const { signerAddress, params: signerParams } = await this.resolveActionRequest(params.provider, descriptor, params.address);
160
+ return createAction(this.sdkClient, {
161
+ provider: params.provider,
162
+ address: params.address,
163
+ signerAddress,
164
+ action,
165
+ params: {
166
+ ...params.params,
167
+ ...signerParams,
168
+ },
169
+ });
170
+ }
171
+ /**
172
+ * Fetch the user's account state from the backend and attach the
173
+ * SDK-projected `settings` array — one `AccountConfigSetting` per
174
+ * descriptor on `Provider.setup` + `Provider.options`. Callers read
175
+ * `result.settings` directly without re-deriving values from the typed
176
+ * `AccountConfig`.
177
+ *
178
+ * @throws {PerpsError} When the provider plugin is not registered, or the
179
+ * backend account fetch fails.
180
+ * @public
181
+ */
182
+ async getAccount(params) {
183
+ const plugin = this.requireProvider(params.provider);
184
+ const [response, metadata] = await Promise.all([
185
+ fetchAccount(this.sdkClient, params),
186
+ this.getProviderMetadata(params.provider),
187
+ ]);
188
+ const settings = plugin.projectConfig(response.config, metadata.setup, metadata.options);
189
+ return { ...response, settings };
190
+ }
191
+ /**
192
+ * Roll an already-fetched {@link AccountResponse} (plus its positions) up
193
+ * into an {@link AccountSummary}, delegating to the owning provider so the
194
+ * venue-specific collateral and margin semantics are applied correctly.
195
+ */
196
+ getPortfolioSummary(account, positions) {
197
+ return this.requireProvider(account.provider).getPortfolioSummary(account, positions);
198
+ }
199
+ /**
200
+ * Thin existence check for a provider account at `address`. Returns
201
+ * `true` when `getAccount` resolves, `false` when the backend reports
202
+ * `PerpsErrorCode.AccountNotFound`, and re-throws on any other error
203
+ * (transport failures, validation errors, server errors).
204
+ *
205
+ * @throws {PerpsError} On any backend error other than
206
+ * `PerpsErrorCode.AccountNotFound`.
207
+ * @public
208
+ */
209
+ async accountExists(provider, address) {
210
+ try {
211
+ await fetchAccount(this.sdkClient, { provider, address });
212
+ return true;
213
+ }
214
+ catch (err) {
215
+ if (err instanceof PerpsError &&
216
+ err.code === PerpsErrorCode.AccountNotFound) {
217
+ return false;
218
+ }
219
+ throw err;
220
+ }
221
+ }
222
+ /**
223
+ * Return the unsatisfied entries on `Provider.setup` for this account as a
224
+ * flat, self-describing list. Trading is gated on `isReady === true`.
225
+ *
226
+ * `Provider.options` descriptors are NEVER returned here — options are
227
+ * post-setup tunables and never gate trading. Option state is surfaced
228
+ * separately via `getAccount().settings`.
229
+ *
230
+ * @public
231
+ */
232
+ async checkSetup(params) {
233
+ const { provider, address } = params;
234
+ // The backend filters already-satisfied setup actions and returns typed
235
+ // data for those still outstanding; each plugin contributes its own
236
+ // signer-bearing request fields.
237
+ const { actions } = await this.buildProviderSetup({ provider, address });
238
+ return {
239
+ setup: actions,
240
+ isReady: actions.length === 0,
241
+ };
242
+ }
243
+ /**
244
+ * Build the unsigned setup `ActionStep`s still outstanding for an account,
245
+ * ordered by descriptor `sequence`. The backend filters already-satisfied
246
+ * setup; each plugin contributes its own signer-bearing request fields and
247
+ * any local-state params (e.g. Lighter's known pubkey).
248
+ *
249
+ * @public
250
+ */
251
+ async buildProviderSetup(params) {
252
+ const { provider, address } = params;
253
+ const metadata = await this.getProviderMetadata(provider);
254
+ const orderedSetup = [...metadata.setup].sort((a, b) => (a.sequence ?? Number.MAX_SAFE_INTEGER) -
255
+ (b.sequence ?? Number.MAX_SAFE_INTEGER));
256
+ const plugin = this.sdkClient.getProvider(provider);
257
+ const allActions = [];
258
+ for (const descriptor of orderedSetup) {
259
+ const action = descriptor.type;
260
+ const { signerAddress, params: signerParams } = await this.resolveActionRequest(provider, descriptor, address);
261
+ const localParams = plugin?.resolveSetupParams
262
+ ? await plugin.resolveSetupParams(action, address)
263
+ : {};
264
+ const { actions } = await createAction(this.sdkClient, {
265
+ provider,
266
+ address,
267
+ signerAddress,
268
+ action,
269
+ params: {
270
+ ...signerParams,
271
+ ...localParams,
272
+ },
273
+ });
274
+ allActions.push(...actions);
275
+ }
276
+ return { actions: allActions };
277
+ }
278
+ /**
279
+ * Submit the signed setup steps returned by `checkSetup` (and signed by the
280
+ * caller / `signProviderSetupAction`). Routes the batch on the first step's
281
+ * action and lets the plugin contribute that action's `signerAddress`.
282
+ * Throws on any per-step venue rejection.
283
+ *
284
+ * @public
285
+ */
286
+ async executeProviderSetup(params) {
287
+ const { provider, address, setup, signedActions } = params;
288
+ if (signedActions.length === 0) {
289
+ return { results: { results: [] } };
290
+ }
291
+ const action = setup[0]?.action ?? signedActions[0].action;
292
+ const metadata = await this.getProviderMetadata(provider);
293
+ const descriptor = findActionDescriptor(metadata, action);
294
+ const { signerAddress } = await this.resolveActionRequest(provider, descriptor, address);
295
+ const results = await executeAction(this.sdkClient, {
296
+ provider,
297
+ address,
298
+ // The submitting account: the plugin-resolved signer (Hyperliquid's
299
+ // agent) when present, else the end-user's address.
300
+ signerAddress: signerAddress ?? address,
301
+ action,
302
+ actions: signedActions,
303
+ });
304
+ const failure = results.results.find((r) => !r.success);
305
+ if (failure) {
306
+ throw new PerpsError(PerpsErrorCode.ExchangeRejected, failure.error);
307
+ }
308
+ return { results };
309
+ }
310
+ /**
311
+ * Sign and submit one pre-staged setup `ActionStep` end-to-end.
312
+ *
313
+ * The caller is expected to have already obtained the step from a prior
314
+ * {@link checkSetup} call (typically cached by the widget's react-query) —
315
+ * we do NOT refetch. This avoids the double `createAction` round-trip and
316
+ * keeps the nonce that was allocated at staging time committed all the way
317
+ * through submit. If the cached step has gone stale (Lighter's `/nextNonce`
318
+ * advanced underneath us), `executeProviderSetup` will surface a nonce
319
+ * conflict that the caller invalidates on, refetches `checkSetup`, and
320
+ * retries with a fresh step.
321
+ *
322
+ * @throws {PerpsError} When the step's action is not in the provider's
323
+ * `setup` descriptors.
324
+ * @public
325
+ */
326
+ async executeProviderSetupAction(params) {
327
+ const { provider, address, step } = params;
328
+ const metadata = await this.getProviderMetadata(provider);
329
+ const descriptor = metadata.setup.find((d) => d.type === step.action);
330
+ if (!descriptor) {
331
+ throw new PerpsError(PerpsErrorCode.SDKError, `Action '${step.action}' is not in '${provider}'.setup`);
332
+ }
333
+ const signed = await this.signProviderSetupAction(provider, address, step);
334
+ await this.executeProviderSetup({
335
+ provider,
336
+ address,
337
+ setup: [step],
338
+ signedActions: [signed],
339
+ });
340
+ }
341
+ /**
342
+ * Sign and submit a single provider-option change (a `Provider.options`
343
+ * tunable such as Lighter `ACCOUNT_TYPE` or Hyperliquid `ACCOUNT_MODE`)
344
+ * end-to-end, throwing on a venue rejection.
345
+ *
346
+ * Options are dispatched through the same {@link execute} pipeline as
347
+ * trades, but unlike a trade an option change is a single mandatory action:
348
+ * a per-action `success: false` (returned as a 200 OK) means the user's
349
+ * selection was rejected and must surface, not be silently dropped. This
350
+ * wrapper inspects the result and throws a {@link PerpsError} carrying the
351
+ * venue `error`, giving options the same throw contract that setup has via
352
+ * {@link executeProviderSetupAction}. The only structural difference is that
353
+ * an option carries `params` (the selected value) rather than a pre-staged
354
+ * step.
355
+ *
356
+ * `execute` itself is unchanged — it still returns results without throwing,
357
+ * which the trade hooks rely on for partial-fill handling.
358
+ *
359
+ * @throws {PerpsError} `PerpsErrorCode.ExchangeRejected` carrying the venue
360
+ * error when any returned result has `success: false`; also the errors
361
+ * `execute` itself can throw (unregistered provider, no signer, signing
362
+ * failure).
363
+ * @public
364
+ */
365
+ async executeProviderOption(params) {
366
+ const { results } = await this.execute(params);
367
+ const failure = results.find((r) => !r.success);
368
+ if (failure) {
369
+ throw new PerpsError(PerpsErrorCode.ExchangeRejected, failure.error);
370
+ }
371
+ }
372
+ /**
373
+ * Place a market or limit order. Convenience wrapper over {@link execute}
374
+ * with `ActionType.PLACE_ORDER`.
375
+ *
376
+ * @throws {PerpsError} When the provider is unregistered or the action
377
+ * cannot be signed/submitted.
378
+ * @example
379
+ * ```ts
380
+ * await client.placeOrder({
381
+ * provider: 'hyperliquid',
382
+ * address: '0xUser',
383
+ * market: { symbol: 'ETH' },
384
+ * side: 'buy',
385
+ * size: '0.1',
386
+ * })
387
+ * ```
388
+ * @public
389
+ */
390
+ async placeOrder(params) {
391
+ return this.execute({ ...params, action: ActionType.PLACE_ORDER, params });
392
+ }
393
+ /**
394
+ * Place a trigger (take-profit / stop-loss) order. Convenience wrapper over
395
+ * {@link execute} with `ActionType.PLACE_TRIGGER_ORDER`.
396
+ *
397
+ * @throws {PerpsError} When the provider is unregistered or the action
398
+ * cannot be signed/submitted.
399
+ * @public
400
+ */
401
+ async placeTriggerOrder(params) {
402
+ return this.execute({
403
+ ...params,
404
+ action: ActionType.PLACE_TRIGGER_ORDER,
405
+ params,
406
+ });
407
+ }
408
+ /**
409
+ * Cancel one or more open orders. Convenience wrapper over {@link execute}
410
+ * with `ActionType.CANCEL_ORDER`.
411
+ *
412
+ * @throws {PerpsError} When the provider is unregistered or the action
413
+ * cannot be signed/submitted.
414
+ * @public
415
+ */
416
+ async cancelOrders(params) {
417
+ return this.execute({ ...params, action: ActionType.CANCEL_ORDER, params });
418
+ }
419
+ /**
420
+ * Modify one or more open orders. Convenience wrapper over {@link execute}
421
+ * with `ActionType.MODIFY_ORDER`.
422
+ *
423
+ * @throws {PerpsError} When the provider is unregistered or the action
424
+ * cannot be signed/submitted.
425
+ * @public
426
+ */
427
+ async modifyOrders(params) {
428
+ return this.execute({ ...params, action: ActionType.MODIFY_ORDER, params });
429
+ }
430
+ /**
431
+ * Add or remove isolated-position margin. Convenience wrapper over
432
+ * {@link execute} with `ActionType.UPDATE_POSITION_MARGIN`.
433
+ *
434
+ * @throws {PerpsError} When the provider is unregistered or the action
435
+ * cannot be signed/submitted.
436
+ * @public
437
+ */
438
+ async updatePositionMargin(params) {
439
+ return this.execute({
440
+ ...params,
441
+ action: ActionType.UPDATE_POSITION_MARGIN,
442
+ params,
443
+ });
444
+ }
445
+ /**
446
+ * Withdraw funds from the provider account. Convenience wrapper over
447
+ * {@link execute} with `ActionType.WITHDRAWAL`.
448
+ *
449
+ * @throws {PerpsError} When the provider is unregistered or the action
450
+ * cannot be signed/submitted.
451
+ * @public
452
+ */
453
+ async withdraw(params) {
454
+ return this.execute({
455
+ provider: params.provider,
456
+ address: params.address,
457
+ action: ActionType.WITHDRAWAL,
458
+ params: params.withdrawal,
459
+ });
460
+ }
461
+ /**
462
+ * Execute any action through the SDK's signing pipeline: fetch the unsigned
463
+ * steps, delegate signing to the provider plugin (which branches on the
464
+ * descriptor's scheme and signer internally), and submit. Core stays
465
+ * signer-agnostic — the plugin owns WHO signs and HOW.
466
+ *
467
+ * @throws {PerpsError} When the action is not declared by the provider,
468
+ * the plugin cannot sign it, or submission fails.
469
+ * @public
470
+ */
471
+ async execute(params) {
472
+ const { provider, address, action } = params;
473
+ const metadata = await this.getProviderMetadata(provider);
474
+ const descriptor = findActionDescriptor(metadata, action);
475
+ const { signerAddress, params: signerParams } = await this.resolveActionRequest(provider, descriptor, address);
476
+ const { actions } = await createAction(this.sdkClient, {
477
+ provider,
478
+ address,
479
+ signerAddress,
480
+ action,
481
+ params: {
482
+ ...params.params,
483
+ ...signerParams,
484
+ },
485
+ });
486
+ const signedActions = await this.delegateSignActions(provider, address, descriptor, actions);
487
+ return executeAction(this.sdkClient, {
488
+ provider,
489
+ address,
490
+ // The submitting account: the plugin-resolved signer (Hyperliquid's
491
+ // agent) when present, else the end-user's address.
492
+ signerAddress: signerAddress ?? address,
493
+ action,
494
+ actions: signedActions,
495
+ });
496
+ }
497
+ }
498
+ //# 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,13 @@
1
+ import type { PerpsProvider, PerpsProviderPlugin, PerpsSDKClient } from '../types/provider.js';
2
+ /**
3
+ * Inject `client` into a {@link PerpsProviderPlugin} once via its
4
+ * {@link PerpsProviderPlugin.bind} hook, returning the runtime
5
+ * {@link PerpsProvider} — the plugin with its one-shot `bind` member dropped so
6
+ * consumers cannot re-bind a live provider. The read methods are already
7
+ * clientless (`getX(params, options?)`); they resolve their runtime deps from
8
+ * the context the plugin captured during `bind`.
9
+ *
10
+ * @internal
11
+ */
12
+ export declare function bindProvider(plugin: PerpsProviderPlugin, client: PerpsSDKClient): PerpsProvider;
13
+ //# sourceMappingURL=bindProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindProvider.d.ts","sourceRoot":"","sources":["../../../src/client/bindProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,cAAc,GACrB,aAAa,CAIf"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Inject `client` into a {@link PerpsProviderPlugin} once via its
3
+ * {@link PerpsProviderPlugin.bind} hook, returning the runtime
4
+ * {@link PerpsProvider} — the plugin with its one-shot `bind` member dropped so
5
+ * consumers cannot re-bind a live provider. The read methods are already
6
+ * clientless (`getX(params, options?)`); they resolve their runtime deps from
7
+ * the context the plugin captured during `bind`.
8
+ *
9
+ * @internal
10
+ */
11
+ export function bindProvider(plugin, client) {
12
+ plugin.bind(client);
13
+ const { bind: _bind, ...provider } = plugin;
14
+ return provider;
15
+ }
16
+ //# sourceMappingURL=bindProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindProvider.js","sourceRoot":"","sources":["../../../src/client/bindProvider.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA2B,EAC3B,MAAsB;IAEtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAA;IAC3C,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { PerpsConfig } from '../types/api.js';
2
+ import type { ProviderConfigs } from '../types/config.js';
3
+ import type { PerpsProviderPlugin, PerpsSDKClient } from '../types/provider.js';
4
+ /**
5
+ * Default LI.FI perps API base URL used when `PerpsConfig.apiUrl` is omitted.
6
+ *
7
+ * @public
8
+ */
9
+ export declare const DEFAULT_API_URL = "https://develop.li.quest/v1/perps";
10
+ /**
11
+ * Construct the low-level {@link PerpsSDKClient} — config, the optional
12
+ * end-user wallet, and provider registry — shared by the service functions and
13
+ * the higher-level {@link PerpsClient}.
14
+ *
15
+ * @throws {PerpsError} When `options.integrator` is missing.
16
+ * @example
17
+ * ```ts
18
+ * const client = createPerpsClient({
19
+ * integrator: 'my-app',
20
+ * apiKey: 'key',
21
+ * providers: [hyperliquidProvider()],
22
+ * })
23
+ * ```
24
+ * @public
25
+ */
26
+ export declare function createPerpsClient(options: PerpsConfig): PerpsSDKClient;
27
+ /**
28
+ * Split the overloaded `providers` option into its two shapes — the
29
+ * plugin array used by {@link PerpsSDKClient.getProvider}, and the
30
+ * keyed `ProviderConfigs` consumed internally by `PerpsWsClient` for
31
+ * markets filtering.
32
+ */
33
+ export declare function splitProviders(input: PerpsProviderPlugin[] | ProviderConfigs | undefined): {
34
+ providerPlugins: PerpsProviderPlugin[];
35
+ providerConfigs?: ProviderConfigs;
36
+ };
37
+ //# sourceMappingURL=createPerpsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/createPerpsClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,KAAK,EAEV,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAG7B;;;;GAIG;AACH,eAAO,MAAM,eAAe,sCAAsC,CAAA;AAElE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CA4CtE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,mBAAmB,EAAE,GAAG,eAAe,GAAG,SAAS,GACzD;IACD,eAAe,EAAE,mBAAmB,EAAE,CAAA;IACtC,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAQA"}
@@ -0,0 +1,76 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { PerpsError } from '../errors/PerpsError.js';
3
+ import { bindProvider } from './bindProvider.js';
4
+ /**
5
+ * Default LI.FI perps API base URL used when `PerpsConfig.apiUrl` is omitted.
6
+ *
7
+ * @public
8
+ */
9
+ export const DEFAULT_API_URL = 'https://develop.li.quest/v1/perps';
10
+ /**
11
+ * Construct the low-level {@link PerpsSDKClient} — config, the optional
12
+ * end-user wallet, and provider registry — shared by the service functions and
13
+ * the higher-level {@link PerpsClient}.
14
+ *
15
+ * @throws {PerpsError} When `options.integrator` is missing.
16
+ * @example
17
+ * ```ts
18
+ * const client = createPerpsClient({
19
+ * integrator: 'my-app',
20
+ * apiKey: 'key',
21
+ * providers: [hyperliquidProvider()],
22
+ * })
23
+ * ```
24
+ * @public
25
+ */
26
+ export function createPerpsClient(options) {
27
+ if (!options.integrator) {
28
+ const error = new PerpsError(PerpsErrorCode.SDKError, 'Integrator is required. Please see documentation at https://docs.li.fi');
29
+ error.tool = '@lifi/perps-sdk';
30
+ throw error;
31
+ }
32
+ const apiUrl = options.apiUrl ?? DEFAULT_API_URL;
33
+ const { providerPlugins, providerConfigs } = splitProviders(options.providers);
34
+ const config = {
35
+ integrator: options.integrator,
36
+ apiKey: options.apiKey,
37
+ apiUrl,
38
+ disableVersionCheck: options.disableVersionCheck,
39
+ requestInterceptor: options.requestInterceptor,
40
+ providers: providerConfigs,
41
+ retry: options.retry,
42
+ fetch: options.fetch,
43
+ };
44
+ const client = {
45
+ get config() {
46
+ return config;
47
+ },
48
+ get userWallet() {
49
+ return options.userWallet;
50
+ },
51
+ get providers() {
52
+ return boundProviders;
53
+ },
54
+ getProvider(key) {
55
+ return boundProviders.find((p) => p.type === key);
56
+ },
57
+ };
58
+ const boundProviders = providerPlugins.map((plugin) => bindProvider(plugin, client));
59
+ return client;
60
+ }
61
+ /**
62
+ * Split the overloaded `providers` option into its two shapes — the
63
+ * plugin array used by {@link PerpsSDKClient.getProvider}, and the
64
+ * keyed `ProviderConfigs` consumed internally by `PerpsWsClient` for
65
+ * markets filtering.
66
+ */
67
+ export function splitProviders(input) {
68
+ if (input === undefined) {
69
+ return { providerPlugins: [] };
70
+ }
71
+ if (Array.isArray(input)) {
72
+ return { providerPlugins: input };
73
+ }
74
+ return { providerPlugins: [], providerConfigs: input };
75
+ }
76
+ //# sourceMappingURL=createPerpsClient.js.map