@orderly.network/hooks 1.2.0 → 1.3.2

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 (371) hide show
  1. package/esm/configProvider.d.ts +7 -1
  2. package/esm/configProvider.d.ts.map +1 -1
  3. package/esm/configProvider.js +44 -18
  4. package/esm/configProvider.js.map +1 -0
  5. package/esm/dataProvider.js +24 -19
  6. package/esm/dataProvider.js.map +1 -0
  7. package/esm/index.d.ts +1 -0
  8. package/esm/index.d.ts.map +1 -1
  9. package/esm/index.js +4 -1
  10. package/esm/index.js.map +1 -0
  11. package/esm/middleware/signatureMiddleware.js +9 -8
  12. package/esm/middleware/signatureMiddleware.js.map +1 -0
  13. package/esm/orderly/orderbook.service.js +39 -28
  14. package/esm/orderly/orderbook.service.js.map +1 -0
  15. package/esm/orderly/orderlyHooks.d.ts +3 -0
  16. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  17. package/esm/orderly/orderlyHooks.js +2 -0
  18. package/esm/orderly/orderlyHooks.js.map +1 -0
  19. package/esm/orderly/useAccountInfo.js +3 -1
  20. package/esm/orderly/useAccountInfo.js.map +1 -0
  21. package/esm/orderly/useChain.js +16 -9
  22. package/esm/orderly/useChain.js.map +1 -0
  23. package/esm/orderly/useChains.d.ts +11 -12
  24. package/esm/orderly/useChains.d.ts.map +1 -1
  25. package/esm/orderly/useChains.js +68 -46
  26. package/esm/orderly/useChains.js.map +1 -0
  27. package/esm/orderly/useCollateral.d.ts +3 -4
  28. package/esm/orderly/useCollateral.d.ts.map +1 -1
  29. package/esm/orderly/useCollateral.js +53 -20
  30. package/esm/orderly/useCollateral.js.map +1 -0
  31. package/esm/orderly/useDeposit.js +123 -125
  32. package/esm/orderly/useDeposit.js.map +1 -0
  33. package/esm/orderly/useFundingRate.js +14 -13
  34. package/esm/orderly/useFundingRate.js.map +1 -0
  35. package/esm/orderly/useFundingRates.js +6 -4
  36. package/esm/orderly/useFundingRates.js.map +1 -0
  37. package/esm/orderly/useHoldingStream.js +19 -15
  38. package/esm/orderly/useHoldingStream.js.map +1 -0
  39. package/esm/orderly/useIndexPrice.js +7 -5
  40. package/esm/orderly/useIndexPrice.js.map +1 -0
  41. package/esm/orderly/useLeverage.js +9 -12
  42. package/esm/orderly/useLeverage.js.map +1 -0
  43. package/esm/orderly/useMarginRatio.js +27 -13
  44. package/esm/orderly/useMarginRatio.js.map +1 -0
  45. package/esm/orderly/useMarkPrice.js +13 -7
  46. package/esm/orderly/useMarkPrice.js.map +1 -0
  47. package/esm/orderly/useMarkPricesStream.d.ts +1 -1
  48. package/esm/orderly/useMarkPricesStream.d.ts.map +1 -1
  49. package/esm/orderly/useMarkPricesStream.js +9 -8
  50. package/esm/orderly/useMarkPricesStream.js.map +1 -0
  51. package/esm/orderly/useMarketTradeStream.js +33 -18
  52. package/esm/orderly/useMarketTradeStream.js.map +1 -0
  53. package/esm/orderly/useMarkets.js +144 -81
  54. package/esm/orderly/useMarkets.js.map +1 -0
  55. package/esm/orderly/useMarketsStream.js +23 -28
  56. package/esm/orderly/useMarketsStream.js.map +1 -0
  57. package/esm/orderly/useMaxQty.d.ts +6 -0
  58. package/esm/orderly/useMaxQty.d.ts.map +1 -1
  59. package/esm/orderly/useMaxQty.js +26 -18
  60. package/esm/orderly/useMaxQty.js.map +1 -0
  61. package/esm/orderly/useOpenInterest.js +7 -5
  62. package/esm/orderly/useOpenInterest.js.map +1 -0
  63. package/esm/orderly/useOrderEntry.js +182 -160
  64. package/esm/orderly/useOrderEntry.js.map +1 -0
  65. package/esm/orderly/useOrderStream.js +85 -66
  66. package/esm/orderly/useOrderStream.js.map +1 -0
  67. package/esm/orderly/useOrderbookStream.d.ts +2 -3
  68. package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
  69. package/esm/orderly/useOrderbookStream.js +173 -103
  70. package/esm/orderly/useOrderbookStream.js.map +1 -0
  71. package/esm/orderly/usePositionStream.js +82 -62
  72. package/esm/orderly/usePositionStream.js.map +1 -0
  73. package/esm/orderly/usePrivateDataObserver.js +55 -48
  74. package/esm/orderly/usePrivateDataObserver.js.map +1 -0
  75. package/esm/orderly/useSettleSubscription.js +8 -6
  76. package/esm/orderly/useSettleSubscription.js.map +1 -0
  77. package/esm/orderly/useSymbolPriceRange.js +14 -8
  78. package/esm/orderly/useSymbolPriceRange.js.map +1 -0
  79. package/esm/orderly/useSymbolsInfo.js +7 -5
  80. package/esm/orderly/useSymbolsInfo.js.map +1 -0
  81. package/esm/orderly/useTickerStream.d.ts +5 -1
  82. package/esm/orderly/useTickerStream.d.ts.map +1 -1
  83. package/esm/orderly/useTickerStream.js +26 -29
  84. package/esm/orderly/useTickerStream.js.map +1 -0
  85. package/esm/orderly/useWalletSubscription.js +8 -6
  86. package/esm/orderly/useWalletSubscription.js.map +1 -0
  87. package/esm/orderly/useWithdraw.js +19 -11
  88. package/esm/orderly/useWithdraw.js.map +1 -0
  89. package/esm/orderlyContext.d.ts +8 -1
  90. package/esm/orderlyContext.d.ts.map +1 -1
  91. package/esm/orderlyContext.js +2 -1
  92. package/esm/orderlyContext.js.map +1 -0
  93. package/esm/services/dataCenter.js +10 -8
  94. package/esm/services/dataCenter.js.map +1 -0
  95. package/esm/services/painter/backgroundPaint.js +11 -14
  96. package/esm/services/painter/backgroundPaint.js.map +1 -0
  97. package/esm/services/painter/basePaint.js +5 -1
  98. package/esm/services/painter/basePaint.js.map +1 -0
  99. package/esm/services/painter/dataPaint.js +53 -50
  100. package/esm/services/painter/dataPaint.js.map +1 -0
  101. package/esm/services/painter/layout.config.js +15 -13
  102. package/esm/services/painter/layout.config.js.map +1 -0
  103. package/esm/services/painter/painter.js +14 -13
  104. package/esm/services/painter/painter.js.map +1 -0
  105. package/esm/services/painter/resource.js +6 -4
  106. package/esm/services/painter/resource.js.map +1 -0
  107. package/esm/statusProvider.js +10 -3
  108. package/esm/statusProvider.js.map +1 -0
  109. package/esm/unuse/apiPrefixMiddleware.js +18 -16
  110. package/esm/unuse/apiPrefixMiddleware.js.map +1 -0
  111. package/esm/unuse/fn.js +3 -1
  112. package/esm/unuse/fn.js.map +1 -0
  113. package/esm/unuse/useBalance.js +6 -4
  114. package/esm/unuse/useBalance.js.map +1 -0
  115. package/esm/unuse/useFetures.js +26 -18
  116. package/esm/unuse/useFetures.js.map +1 -0
  117. package/esm/unuse/useRunOnce.js +10 -7
  118. package/esm/unuse/useRunOnce.js.map +1 -0
  119. package/esm/unuse/useSyncEnd.js +5 -4
  120. package/esm/unuse/useSyncEnd.js.map +1 -0
  121. package/esm/unuse/useTokenInfo.js +7 -5
  122. package/esm/unuse/useTokenInfo.js.map +1 -0
  123. package/esm/unuse/useUnsettlementPnL.js +7 -3
  124. package/esm/unuse/useUnsettlementPnL.js.map +1 -0
  125. package/esm/useAccount.js +18 -21
  126. package/esm/useAccount.js.map +1 -0
  127. package/esm/useAccountInstance.js +6 -7
  128. package/esm/useAccountInstance.js.map +1 -0
  129. package/esm/useBoolean.js +14 -5
  130. package/esm/useBoolean.js.map +1 -0
  131. package/esm/useConfig.js +3 -1
  132. package/esm/useConfig.js.map +1 -0
  133. package/esm/useEventEmitter.js +4 -2
  134. package/esm/useEventEmitter.js.map +1 -0
  135. package/esm/useLazyQuery.js +6 -7
  136. package/esm/useLazyQuery.js.map +1 -0
  137. package/esm/useLocalStorage.js +30 -20
  138. package/esm/useLocalStorage.js.map +1 -0
  139. package/esm/useMediaQuery.js +11 -9
  140. package/esm/useMediaQuery.js.map +1 -0
  141. package/esm/useMutation.js +26 -37
  142. package/esm/useMutation.js.map +1 -0
  143. package/esm/useObserve.js +4 -4
  144. package/esm/useObserve.js.map +1 -0
  145. package/esm/useParamsCheck.js +8 -10
  146. package/esm/useParamsCheck.js.map +1 -0
  147. package/esm/usePoster.js +56 -45
  148. package/esm/usePoster.js.map +1 -0
  149. package/esm/usePreloadData.js +9 -5
  150. package/esm/usePreloadData.js.map +1 -0
  151. package/esm/usePrivateInfiniteQuery.js +15 -9
  152. package/esm/usePrivateInfiniteQuery.js.map +1 -0
  153. package/esm/usePrivateQuery.js +15 -8
  154. package/esm/usePrivateQuery.js.map +1 -0
  155. package/esm/useQuery.js +6 -5
  156. package/esm/useQuery.js.map +1 -0
  157. package/esm/useSessionStorage.js +28 -19
  158. package/esm/useSessionStorage.js.map +1 -0
  159. package/esm/useWS.js +15 -13
  160. package/esm/useWS.js.map +1 -0
  161. package/esm/useWsStatus.js +12 -12
  162. package/esm/useWsStatus.js.map +1 -0
  163. package/esm/utils/createGetter.js +8 -8
  164. package/esm/utils/createGetter.js.map +1 -0
  165. package/esm/utils/createOrder.d.ts +1 -0
  166. package/esm/utils/createOrder.d.ts.map +1 -1
  167. package/esm/utils/createOrder.js +59 -43
  168. package/esm/utils/createOrder.js.map +1 -0
  169. package/esm/utils/dev.js +6 -4
  170. package/esm/utils/dev.js.map +1 -0
  171. package/esm/utils/fetcher.js +3 -1
  172. package/esm/utils/fetcher.js.map +1 -0
  173. package/esm/utils/json.js +3 -2
  174. package/esm/utils/json.js.map +1 -0
  175. package/esm/utils/orderEntryHelper.js +92 -63
  176. package/esm/utils/orderEntryHelper.js.map +1 -0
  177. package/esm/utils/parseHolding.js +10 -6
  178. package/esm/utils/parseHolding.js.map +1 -0
  179. package/esm/utils/swr.js +114 -104
  180. package/esm/utils/swr.js.map +1 -0
  181. package/esm/version.d.ts +1 -1
  182. package/esm/version.js +4 -3
  183. package/esm/version.js.map +1 -0
  184. package/esm/walletConnectorContext.js +4 -2
  185. package/esm/walletConnectorContext.js.map +1 -0
  186. package/lib/configProvider.d.ts +7 -1
  187. package/lib/configProvider.d.ts.map +1 -1
  188. package/lib/configProvider.js +108 -56
  189. package/lib/configProvider.js.map +1 -0
  190. package/lib/dataProvider.js +50 -29
  191. package/lib/dataProvider.js.map +1 -0
  192. package/lib/index.d.ts +1 -0
  193. package/lib/index.d.ts.map +1 -1
  194. package/lib/index.js +191 -88
  195. package/lib/index.js.map +1 -0
  196. package/lib/middleware/signatureMiddleware.js +22 -15
  197. package/lib/middleware/signatureMiddleware.js.map +1 -0
  198. package/lib/orderly/orderbook.service.js +59 -33
  199. package/lib/orderly/orderbook.service.js.map +1 -0
  200. package/lib/orderly/orderlyHooks.d.ts +3 -0
  201. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  202. package/lib/orderly/orderlyHooks.js +124 -57
  203. package/lib/orderly/orderlyHooks.js.map +1 -0
  204. package/lib/orderly/useAccountInfo.js +14 -6
  205. package/lib/orderly/useAccountInfo.js.map +1 -0
  206. package/lib/orderly/useChain.js +30 -17
  207. package/lib/orderly/useChain.js.map +1 -0
  208. package/lib/orderly/useChains.d.ts +11 -12
  209. package/lib/orderly/useChains.d.ts.map +1 -1
  210. package/lib/orderly/useChains.js +100 -59
  211. package/lib/orderly/useChains.js.map +1 -0
  212. package/lib/orderly/useCollateral.d.ts +3 -4
  213. package/lib/orderly/useCollateral.d.ts.map +1 -1
  214. package/lib/orderly/useCollateral.js +81 -42
  215. package/lib/orderly/useCollateral.js.map +1 -0
  216. package/lib/orderly/useDeposit.js +154 -150
  217. package/lib/orderly/useDeposit.js.map +1 -0
  218. package/lib/orderly/useFundingRate.js +29 -22
  219. package/lib/orderly/useFundingRate.js.map +1 -0
  220. package/lib/orderly/useFundingRates.js +19 -11
  221. package/lib/orderly/useFundingRates.js.map +1 -0
  222. package/lib/orderly/useHoldingStream.js +39 -27
  223. package/lib/orderly/useHoldingStream.js.map +1 -0
  224. package/lib/orderly/useIndexPrice.js +24 -14
  225. package/lib/orderly/useIndexPrice.js.map +1 -0
  226. package/lib/orderly/useLeverage.js +27 -24
  227. package/lib/orderly/useLeverage.js.map +1 -0
  228. package/lib/orderly/useMarginRatio.js +49 -29
  229. package/lib/orderly/useMarginRatio.js.map +1 -0
  230. package/lib/orderly/useMarkPrice.js +26 -15
  231. package/lib/orderly/useMarkPrice.js.map +1 -0
  232. package/lib/orderly/useMarkPricesStream.d.ts +1 -1
  233. package/lib/orderly/useMarkPricesStream.d.ts.map +1 -1
  234. package/lib/orderly/useMarkPricesStream.js +26 -17
  235. package/lib/orderly/useMarkPricesStream.js.map +1 -0
  236. package/lib/orderly/useMarketTradeStream.js +47 -26
  237. package/lib/orderly/useMarketTradeStream.js.map +1 -0
  238. package/lib/orderly/useMarkets.js +172 -95
  239. package/lib/orderly/useMarkets.js.map +1 -0
  240. package/lib/orderly/useMarketsStream.js +44 -41
  241. package/lib/orderly/useMarketsStream.js.map +1 -0
  242. package/lib/orderly/useMaxQty.d.ts +6 -0
  243. package/lib/orderly/useMaxQty.d.ts.map +1 -1
  244. package/lib/orderly/useMaxQty.js +52 -43
  245. package/lib/orderly/useMaxQty.js.map +1 -0
  246. package/lib/orderly/useOpenInterest.js +24 -14
  247. package/lib/orderly/useOpenInterest.js.map +1 -0
  248. package/lib/orderly/useOrderEntry.js +238 -210
  249. package/lib/orderly/useOrderEntry.js.map +1 -0
  250. package/lib/orderly/useOrderStream.js +111 -84
  251. package/lib/orderly/useOrderStream.js.map +1 -0
  252. package/lib/orderly/useOrderbookStream.d.ts +2 -3
  253. package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
  254. package/lib/orderly/useOrderbookStream.js +227 -148
  255. package/lib/orderly/useOrderbookStream.js.map +1 -0
  256. package/lib/orderly/usePositionStream.js +134 -100
  257. package/lib/orderly/usePositionStream.js.map +1 -0
  258. package/lib/orderly/usePrivateDataObserver.js +76 -63
  259. package/lib/orderly/usePrivateDataObserver.js.map +1 -0
  260. package/lib/orderly/useSettleSubscription.js +25 -15
  261. package/lib/orderly/useSettleSubscription.js.map +1 -0
  262. package/lib/orderly/useSymbolPriceRange.js +29 -23
  263. package/lib/orderly/useSymbolPriceRange.js.map +1 -0
  264. package/lib/orderly/useSymbolsInfo.js +23 -15
  265. package/lib/orderly/useSymbolsInfo.js.map +1 -0
  266. package/lib/orderly/useTickerStream.d.ts +5 -1
  267. package/lib/orderly/useTickerStream.d.ts.map +1 -1
  268. package/lib/orderly/useTickerStream.js +51 -48
  269. package/lib/orderly/useTickerStream.js.map +1 -0
  270. package/lib/orderly/useWalletSubscription.js +25 -15
  271. package/lib/orderly/useWalletSubscription.js.map +1 -0
  272. package/lib/orderly/useWithdraw.js +36 -22
  273. package/lib/orderly/useWithdraw.js.map +1 -0
  274. package/lib/orderlyContext.d.ts +8 -1
  275. package/lib/orderlyContext.d.ts.map +1 -1
  276. package/lib/orderlyContext.js +22 -6
  277. package/lib/orderlyContext.js.map +1 -0
  278. package/lib/services/dataCenter.js +15 -11
  279. package/lib/services/dataCenter.js.map +1 -0
  280. package/lib/services/painter/backgroundPaint.js +21 -18
  281. package/lib/services/painter/backgroundPaint.js.map +1 -0
  282. package/lib/services/painter/basePaint.js +14 -4
  283. package/lib/services/painter/basePaint.js.map +1 -0
  284. package/lib/services/painter/dataPaint.js +67 -58
  285. package/lib/services/painter/dataPaint.js.map +1 -0
  286. package/lib/services/painter/layout.config.js +25 -16
  287. package/lib/services/painter/layout.config.js.map +1 -0
  288. package/lib/services/painter/painter.js +27 -20
  289. package/lib/services/painter/painter.js.map +1 -0
  290. package/lib/services/painter/resource.js +15 -7
  291. package/lib/services/painter/resource.js.map +1 -0
  292. package/lib/statusProvider.js +31 -10
  293. package/lib/statusProvider.js.map +1 -0
  294. package/lib/unuse/apiPrefixMiddleware.js +30 -22
  295. package/lib/unuse/apiPrefixMiddleware.js.map +1 -0
  296. package/lib/unuse/fn.js +14 -5
  297. package/lib/unuse/fn.js.map +1 -0
  298. package/lib/unuse/useBalance.js +23 -13
  299. package/lib/unuse/useBalance.js.map +1 -0
  300. package/lib/unuse/useFetures.js +41 -28
  301. package/lib/unuse/useFetures.js.map +1 -0
  302. package/lib/unuse/useRunOnce.js +61 -11
  303. package/lib/unuse/useRunOnce.js.map +1 -0
  304. package/lib/unuse/useSyncEnd.js +17 -10
  305. package/lib/unuse/useSyncEnd.js.map +1 -0
  306. package/lib/unuse/useTokenInfo.js +20 -12
  307. package/lib/unuse/useTokenInfo.js.map +1 -0
  308. package/lib/unuse/useUnsettlementPnL.js +21 -11
  309. package/lib/unuse/useUnsettlementPnL.js.map +1 -0
  310. package/lib/useAccount.js +32 -29
  311. package/lib/useAccount.js.map +1 -0
  312. package/lib/useAccountInstance.js +27 -20
  313. package/lib/useAccountInstance.js.map +1 -0
  314. package/lib/useBoolean.js +25 -10
  315. package/lib/useBoolean.js.map +1 -0
  316. package/lib/useConfig.js +15 -7
  317. package/lib/useConfig.js.map +1 -0
  318. package/lib/useEventEmitter.js +23 -13
  319. package/lib/useEventEmitter.js.map +1 -0
  320. package/lib/useLazyQuery.js +25 -23
  321. package/lib/useLazyQuery.js.map +1 -0
  322. package/lib/useLocalStorage.js +44 -28
  323. package/lib/useLocalStorage.js.map +1 -0
  324. package/lib/useMediaQuery.js +22 -14
  325. package/lib/useMediaQuery.js.map +1 -0
  326. package/lib/useMutation.js +47 -52
  327. package/lib/useMutation.js.map +1 -0
  328. package/lib/useObserve.js +22 -8
  329. package/lib/useObserve.js.map +1 -0
  330. package/lib/useParamsCheck.js +18 -14
  331. package/lib/useParamsCheck.js.map +1 -0
  332. package/lib/usePoster.js +80 -74
  333. package/lib/usePoster.js.map +1 -0
  334. package/lib/usePreloadData.js +21 -11
  335. package/lib/usePreloadData.js.map +1 -0
  336. package/lib/usePrivateInfiniteQuery.js +36 -22
  337. package/lib/usePrivateInfiniteQuery.js.map +1 -0
  338. package/lib/usePrivateQuery.js +35 -25
  339. package/lib/usePrivateQuery.js.map +1 -0
  340. package/lib/useQuery.js +24 -20
  341. package/lib/useQuery.js.map +1 -0
  342. package/lib/useSessionStorage.js +41 -26
  343. package/lib/useSessionStorage.js.map +1 -0
  344. package/lib/useWS.js +42 -32
  345. package/lib/useWS.js.map +1 -0
  346. package/lib/useWsStatus.js +34 -20
  347. package/lib/useWsStatus.js.map +1 -0
  348. package/lib/utils/createGetter.js +19 -14
  349. package/lib/utils/createGetter.js.map +1 -0
  350. package/lib/utils/createOrder.d.ts +1 -0
  351. package/lib/utils/createOrder.d.ts.map +1 -1
  352. package/lib/utils/createOrder.js +133 -82
  353. package/lib/utils/createOrder.js.map +1 -0
  354. package/lib/utils/dev.js +13 -9
  355. package/lib/utils/dev.js.map +1 -0
  356. package/lib/utils/fetcher.js +13 -5
  357. package/lib/utils/fetcher.js.map +1 -0
  358. package/lib/utils/json.js +12 -5
  359. package/lib/utils/json.js.map +1 -0
  360. package/lib/utils/orderEntryHelper.js +125 -82
  361. package/lib/utils/orderEntryHelper.js.map +1 -0
  362. package/lib/utils/parseHolding.js +19 -9
  363. package/lib/utils/parseHolding.js.map +1 -0
  364. package/lib/utils/swr.js +134 -111
  365. package/lib/utils/swr.js.map +1 -0
  366. package/lib/version.d.ts +1 -1
  367. package/lib/version.js +13 -4
  368. package/lib/version.js.map +1 -0
  369. package/lib/walletConnectorContext.js +23 -7
  370. package/lib/walletConnectorContext.js.map +1 -0
  371. package/package.json +17 -9
@@ -3,19 +3,18 @@ import { useMutation } from "../useMutation";
3
3
  import { usePrivateQuery } from "../usePrivateQuery";
4
4
  import { prop } from "ramda";
5
5
  import { useQuery } from "../useQuery";
6
- export const useLeverage = () => {
6
+ export const useLeverage = ()=>{
7
7
  const { data, mutate } = usePrivateQuery("/v1/client/info");
8
8
  const [update, { isMutating }] = useMutation("/v1/client/leverage");
9
9
  const { data: config } = useQuery("/v1/public/config");
10
- const updateLeverage = useCallback((data) => {
11
- return update(data).then((res) => {
10
+ const updateLeverage = useCallback((data)=>{
11
+ return update(data).then((res)=>{
12
12
  if (res.success) {
13
13
  return mutate();
14
- }
15
- else {
14
+ } else {
16
15
  throw new Error(res.message);
17
16
  }
18
- // return res
17
+ // return res
19
18
  });
20
19
  }, []);
21
20
  return [
@@ -24,11 +23,9 @@ export const useLeverage = () => {
24
23
  update: updateLeverage,
25
24
  isMutating,
26
25
  // config: [1, 2, 3, 4, 5, 10, 15, 20],
27
- config: config
28
- ? config?.available_futures_leverage
29
- ?.split(",")
30
- .map((item) => parseInt(item))
31
- : [],
32
- },
26
+ config: config ? config?.available_futures_leverage?.split(",").map((item)=>parseInt(item)) : []
27
+ }
33
28
  ];
34
29
  };
30
+
31
+ //# sourceMappingURL=useLeverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useLeverage.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useMutation } from \"../useMutation\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport { prop } from \"ramda\";\nimport { useQuery } from \"../useQuery\";\n\nexport const useLeverage = (): any => {\n const { data, mutate } = usePrivateQuery(\"/v1/client/info\");\n const [update, { isMutating }] = useMutation(\"/v1/client/leverage\");\n\n const { data: config } = useQuery(\"/v1/public/config\");\n\n const updateLeverage = useCallback((data: { leverage: number }) => {\n return update(data).then((res: any) => {\n if (res.success) {\n return mutate();\n } else {\n throw new Error(res.message);\n }\n // return res\n });\n }, []);\n\n return [\n prop(\"max_leverage\", data as any),\n {\n update: updateLeverage,\n isMutating,\n // config: [1, 2, 3, 4, 5, 10, 15, 20],\n config: config\n ? (config as any)?.available_futures_leverage\n ?.split(\",\")\n .map((item: string) => parseInt(item))\n : [],\n },\n ];\n};\n"],"names":["useCallback","useMutation","usePrivateQuery","prop","useQuery","useLeverage","data","mutate","update","isMutating","config","updateLeverage","then","res","success","Error","message","available_futures_leverage","split","map","item","parseInt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,WAAW,QAAQ,QAAQ;AACpC,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,cAAc;IACzB,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGL,gBAAgB;IACzC,MAAM,CAACM,QAAQ,EAAEC,UAAU,EAAE,CAAC,GAAGR,YAAY;IAE7C,MAAM,EAAEK,MAAMI,MAAM,EAAE,GAAGN,SAAS;IAElC,MAAMO,iBAAiBX,YAAY,CAACM;QAClC,OAAOE,OAAOF,MAAMM,IAAI,CAAC,CAACC;YACxB,IAAIA,IAAIC,OAAO,EAAE;gBACf,OAAOP;YACT,OAAO;gBACL,MAAM,IAAIQ,MAAMF,IAAIG,OAAO;YAC7B;QACA,aAAa;QACf;IACF,GAAG,EAAE;IAEL,OAAO;QACLb,KAAK,gBAAgBG;QACrB;YACEE,QAAQG;YACRF;YACA,uCAAuC;YACvCC,QAAQA,SACHA,QAAgBO,4BACbC,MAAM,KACPC,IAAI,CAACC,OAAiBC,SAASD,SAClC,EAAE;QACR;KACD;AACH,EAAE"}
@@ -4,38 +4,52 @@ import { usePositionStream } from "./usePositionStream";
4
4
  import { useMarkPricesStream } from "./useMarkPricesStream";
5
5
  import { useCollateral } from "./useCollateral";
6
6
  import { zero } from "@orderly.network/utils";
7
- export const useMarginRatio = () => {
7
+ export const useMarginRatio = ()=>{
8
8
  const [{ rows, aggregated }] = usePositionStream();
9
9
  const { data: markPrices } = useMarkPricesStream();
10
10
  const { totalCollateral } = useCollateral();
11
- const marginRatio = useMemo(() => {
11
+ const marginRatio = useMemo(()=>{
12
12
  if (!rows || !markPrices || !totalCollateral || rows.length === 0) {
13
13
  return 0;
14
14
  }
15
15
  const ratio = account.totalMarginRatio({
16
16
  totalCollateral: totalCollateral,
17
17
  markPrices: markPrices,
18
- positions: rows ?? [],
18
+ positions: rows ?? []
19
19
  });
20
20
  return ratio;
21
- }, [rows, markPrices, totalCollateral]);
22
- const currentLeverage = useMemo(() => {
21
+ }, [
22
+ rows,
23
+ markPrices,
24
+ totalCollateral
25
+ ]);
26
+ const currentLeverage = useMemo(()=>{
23
27
  return account.currentLeverage(marginRatio);
24
- }, [marginRatio]);
28
+ }, [
29
+ marginRatio
30
+ ]);
25
31
  // MMR
26
- const mmr = useMemo(() => {
27
- if (!rows || rows.length <= 0)
28
- return null;
32
+ const mmr = useMemo(()=>{
33
+ if (!rows || rows.length <= 0) return null;
29
34
  let positionsMM = zero;
30
35
  // const positionsNotional = positions.totalNotional(rows);
31
- for (let index = 0; index < rows.length; index++) {
36
+ for(let index = 0; index < rows.length; index++){
32
37
  const item = rows[index];
33
38
  positionsMM = positionsMM.add(item.mm);
34
39
  }
35
40
  return account.MMR({
36
41
  positionsMMR: positionsMM.toNumber(),
37
- positionsNotional: aggregated.notional,
42
+ positionsNotional: aggregated.notional
38
43
  });
39
- }, [rows, aggregated]);
40
- return { marginRatio, currentLeverage, mmr };
44
+ }, [
45
+ rows,
46
+ aggregated
47
+ ]);
48
+ return {
49
+ marginRatio,
50
+ currentLeverage,
51
+ mmr
52
+ };
41
53
  };
54
+
55
+ //# sourceMappingURL=useMarginRatio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMarginRatio.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { usePositionStream } from \"./usePositionStream\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useCollateral } from \"./useCollateral\";\nimport { zero } from \"@orderly.network/utils\";\n\nexport type MarginRatioReturn = {\n // Margin Ratio\n marginRatio: number;\n // Current Leverage\n currentLeverage: number;\n // account margin ratio, if user has no position, return null\n mmr: number | null;\n};\n\nexport const useMarginRatio = (): MarginRatioReturn => {\n const [{ rows, aggregated }] = usePositionStream();\n const { data: markPrices } = useMarkPricesStream();\n\n const { totalCollateral } = useCollateral();\n const marginRatio = useMemo(() => {\n if (!rows || !markPrices || !totalCollateral || rows.length === 0) {\n return 0;\n }\n\n const ratio = account.totalMarginRatio({\n totalCollateral: totalCollateral,\n markPrices: markPrices,\n positions: rows ?? [],\n });\n return ratio;\n }, [rows, markPrices, totalCollateral]);\n\n const currentLeverage = useMemo(() => {\n return account.currentLeverage(marginRatio);\n }, [marginRatio]);\n\n // MMR\n const mmr = useMemo<number | null>(() => {\n if (!rows || rows.length <= 0) return null;\n let positionsMM = zero;\n // const positionsNotional = positions.totalNotional(rows);\n\n for (let index = 0; index < rows.length; index++) {\n const item = rows[index];\n positionsMM = positionsMM.add(item.mm);\n }\n\n return account.MMR({\n positionsMMR: positionsMM.toNumber(),\n positionsNotional: aggregated.notional,\n });\n }, [rows, aggregated]);\n\n return { marginRatio, currentLeverage, mmr };\n};\n"],"names":["useMemo","account","usePositionStream","useMarkPricesStream","useCollateral","zero","useMarginRatio","rows","aggregated","data","markPrices","totalCollateral","marginRatio","length","ratio","totalMarginRatio","positions","currentLeverage","mmr","positionsMM","index","item","add","mm","MMR","positionsMMR","toNumber","positionsNotional","notional"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,OAAO,QAAmB,wBAAwB;AAC3D,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,IAAI,QAAQ,yBAAyB;AAW9C,OAAO,MAAMC,iBAAiB;IAC5B,MAAM,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE,CAAC,GAAGN;IAC/B,MAAM,EAAEO,MAAMC,UAAU,EAAE,GAAGP;IAE7B,MAAM,EAAEQ,eAAe,EAAE,GAAGP;IAC5B,MAAMQ,cAAcZ,QAAQ;QAC1B,IAAI,CAACO,QAAQ,CAACG,cAAc,CAACC,mBAAmBJ,KAAKM,MAAM,KAAK,GAAG;YACjE,OAAO;QACT;QAEA,MAAMC,QAAQb,QAAQc,gBAAgB,CAAC;YACrCJ,iBAAiBA;YACjBD,YAAYA;YACZM,WAAWT,QAAQ,EAAE;QACvB;QACA,OAAOO;IACT,GAAG;QAACP;QAAMG;QAAYC;KAAgB;IAEtC,MAAMM,kBAAkBjB,QAAQ;QAC9B,OAAOC,QAAQgB,eAAe,CAACL;IACjC,GAAG;QAACA;KAAY;IAEhB,MAAM;IACN,MAAMM,MAAMlB,QAAuB;QACjC,IAAI,CAACO,QAAQA,KAAKM,MAAM,IAAI,GAAG,OAAO;QACtC,IAAIM,cAAcd;QAClB,2DAA2D;QAE3D,IAAK,IAAIe,QAAQ,GAAGA,QAAQb,KAAKM,MAAM,EAAEO,QAAS;YAChD,MAAMC,OAAOd,IAAI,CAACa,MAAM;YACxBD,cAAcA,YAAYG,GAAG,CAACD,KAAKE,EAAE;QACvC;QAEA,OAAOtB,QAAQuB,GAAG,CAAC;YACjBC,cAAcN,YAAYO,QAAQ;YAClCC,mBAAmBnB,WAAWoB,QAAQ;QACxC;IACF,GAAG;QAACrB;QAAMC;KAAW;IAErB,OAAO;QAAEI;QAAaK;QAAiBC;IAAI;AAC7C,EAAE"}
@@ -1,19 +1,21 @@
1
1
  import { useEffect, useState } from "react";
2
2
  import { useWS } from "../useWS";
3
3
  // import useSWRSubscription from "swr/subscription";
4
- export const useMarkPrice = (symbol) => {
4
+ export const useMarkPrice = (symbol)=>{
5
5
  const ws = useWS();
6
6
  const [price, setPrice] = useState(0);
7
- useEffect(() => {
7
+ useEffect(()=>{
8
8
  const unsubscribe = ws.subscribe(`${symbol}@markprice`, {
9
- onMessage: (message) => {
9
+ onMessage: (message)=>{
10
10
  setPrice(message.price);
11
- },
11
+ }
12
12
  });
13
- return () => {
13
+ return ()=>{
14
14
  unsubscribe?.();
15
15
  };
16
- }, [symbol]);
16
+ }, [
17
+ symbol
18
+ ]);
17
19
  // return useSWRSubscription(`${symbol}@markprice`, (key, { next }) => {
18
20
  // const unsubscribe = ws.subscribe(`${symbol}@markprice`, {
19
21
  // onMessage: (message: any) => {
@@ -25,5 +27,9 @@ export const useMarkPrice = (symbol) => {
25
27
  // unsubscribe?.();
26
28
  // };
27
29
  // });
28
- return { data: price };
30
+ return {
31
+ data: price
32
+ };
29
33
  };
34
+
35
+ //# sourceMappingURL=useMarkPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMarkPrice.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { useWS } from \"../useWS\";\n// import useSWRSubscription from \"swr/subscription\";\n\nexport const useMarkPrice = (symbol: string) => {\n const ws = useWS();\n const [price, setPrice] = useState(0);\n\n useEffect(() => {\n const unsubscribe = ws.subscribe(`${symbol}@markprice`, {\n onMessage: (message: any) => {\n setPrice(message.price);\n },\n });\n\n return () => {\n unsubscribe?.();\n };\n }, [symbol]);\n\n // return useSWRSubscription(`${symbol}@markprice`, (key, { next }) => {\n // const unsubscribe = ws.subscribe(`${symbol}@markprice`, {\n // onMessage: (message: any) => {\n // next(null, message.price);\n // },\n // });\n\n // return () => {\n // // console.log(\"_____________________ unsubscribe _________ \", symbol);\n // unsubscribe?.();\n // };\n // });\n\n return { data: price };\n};\n"],"names":["useEffect","useState","useWS","useMarkPrice","symbol","ws","price","setPrice","unsubscribe","subscribe","onMessage","message","data"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,KAAK,QAAQ,WAAW;AACjC,qDAAqD;AAErD,OAAO,MAAMC,eAAe,CAACC;IAC3B,MAAMC,KAAKH;IACX,MAAM,CAACI,OAAOC,SAAS,GAAGN,SAAS;IAEnCD,UAAU;QACR,MAAMQ,cAAcH,GAAGI,SAAS,CAAC,CAAC,EAAEL,OAAO,UAAU,CAAC,EAAE;YACtDM,WAAW,CAACC;gBACVJ,SAASI,QAAQL,KAAK;YACxB;QACF;QAEA,OAAO;YACLE;QACF;IACF,GAAG;QAACJ;KAAO;IAEX,wEAAwE;IACxE,8DAA8D;IAC9D,qCAAqC;IACrC,mCAAmC;IACnC,SAAS;IACT,QAAQ;IAER,mBAAmB;IACnB,8EAA8E;IAC9E,uBAAuB;IACvB,OAAO;IACP,MAAM;IAEN,OAAO;QAAEQ,MAAMN;IAAM;AACvB,EAAE"}
@@ -1,2 +1,2 @@
1
- export declare const useMarkPricesStream: () => import("swr/subscription").SWRSubscriptionResponse<any, any>;
1
+ export declare const useMarkPricesStream: () => import("swr/subscription").SWRSubscriptionResponse<Record<string, number>, any>;
2
2
  //# sourceMappingURL=useMarkPricesStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkPricesStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useMarkPricesStream.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,oEA4B/B,CAAC"}
1
+ {"version":3,"file":"useMarkPricesStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useMarkPricesStream.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,uFAkC/B,CAAC"}
@@ -1,14 +1,13 @@
1
1
  import useSWRSubscription from "swr/subscription";
2
2
  import { useWS } from "../useWS";
3
- export const useMarkPricesStream = () => {
3
+ export const useMarkPricesStream = ()=>{
4
4
  const ws = useWS();
5
- return useSWRSubscription("markPrices", (key, { next }) => {
6
- const unsubscribe = ws.subscribe(
7
- // { event: "subscribe", topic: "markprices" },
5
+ return useSWRSubscription("markPrices", (key, { next })=>{
6
+ const unsubscribe = ws.subscribe(// { event: "subscribe", topic: "markprices" },
8
7
  "markprices", {
9
- onMessage: (message) => {
8
+ onMessage: (message)=>{
10
9
  const data = Object.create(null);
11
- for (let index = 0; index < message.length; index++) {
10
+ for(let index = 0; index < message.length; index++){
12
11
  const element = message[index];
13
12
  data[element.symbol] = element.price;
14
13
  }
@@ -17,10 +16,12 @@ export const useMarkPricesStream = () => {
17
16
  // onUnsubscribe: () => {
18
17
  // return "markprices";
19
18
  // },
20
- onError: (error) => { },
19
+ onError: (error)=>{}
21
20
  });
22
- return () => {
21
+ return ()=>{
23
22
  unsubscribe?.();
24
23
  };
25
24
  });
26
25
  };
26
+
27
+ //# sourceMappingURL=useMarkPricesStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMarkPricesStream.ts"],"sourcesContent":["import useSWRSubscription, { SWRSubscriptionOptions } from \"swr/subscription\";\nimport { useWS } from \"../useWS\";\n\nexport const useMarkPricesStream = () => {\n const ws = useWS();\n return useSWRSubscription<Record<string, number>>(\n \"markPrices\",\n (\n key: string,\n { next }: SWRSubscriptionOptions<Record<string, number>, any>\n ) => {\n const unsubscribe = ws.subscribe(\n // { event: \"subscribe\", topic: \"markprices\" },\n \"markprices\",\n {\n onMessage: (message: any) => {\n const data: Record<string, number> = Object.create(null);\n\n for (let index = 0; index < message.length; index++) {\n const element = message[index];\n data[element.symbol] = element.price;\n }\n\n next(null, data);\n },\n // onUnsubscribe: () => {\n // return \"markprices\";\n // },\n onError: (error: any) => {},\n }\n );\n\n return () => {\n unsubscribe?.();\n };\n }\n );\n};\n"],"names":["useSWRSubscription","useWS","useMarkPricesStream","ws","key","next","unsubscribe","subscribe","onMessage","message","data","Object","create","index","length","element","symbol","price","onError","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,wBAAoD,mBAAmB;AAC9E,SAASC,KAAK,QAAQ,WAAW;AAEjC,OAAO,MAAMC,sBAAsB;IACjC,MAAMC,KAAKF;IACX,OAAOD,mBACL,cACA,CACEI,KACA,EAAEC,IAAI,EAAuD;QAE7D,MAAMC,cAAcH,GAAGI,SAAS,CAC9B,+CAA+C;QAC/C,cACA;YACEC,WAAW,CAACC;gBACV,MAAMC,OAA+BC,OAAOC,MAAM,CAAC;gBAEnD,IAAK,IAAIC,QAAQ,GAAGA,QAAQJ,QAAQK,MAAM,EAAED,QAAS;oBACnD,MAAME,UAAUN,OAAO,CAACI,MAAM;oBAC9BH,IAAI,CAACK,QAAQC,MAAM,CAAC,GAAGD,QAAQE,KAAK;gBACtC;gBAEAZ,KAAK,MAAMK;YACb;YACA,yBAAyB;YACzB,yBAAyB;YACzB,KAAK;YACLQ,SAAS,CAACC,SAAgB;QAC5B;QAGF,OAAO;YACLb;QACF;IACF;AAEJ,EAAE"}
@@ -1,6 +1,6 @@
1
1
  import { useWS } from "../useWS";
2
2
  import { useEffect, useState } from "react";
3
- export const useMarketTradeStream = (symbol, options = {}) => {
3
+ export const useMarketTradeStream = (symbol, options = {})=>{
4
4
  if (!symbol) {
5
5
  throw new Error("useTradeStream: symbol is required");
6
6
  }
@@ -8,44 +8,59 @@ export const useMarketTradeStream = (symbol, options = {}) => {
8
8
  const [isLoading, setIsLoading] = useState(false);
9
9
  const { limit = 50 } = options;
10
10
  const ws = useWS();
11
- useEffect(() => {
11
+ useEffect(()=>{
12
12
  setIsLoading(true);
13
- setTrades(() => []);
13
+ setTrades(()=>[]);
14
14
  ws.onceSubscribe({
15
15
  id: `${symbol}@trade`,
16
16
  event: "request",
17
17
  params: {
18
18
  type: "trade",
19
19
  symbol: symbol,
20
- limit,
21
- },
20
+ limit
21
+ }
22
22
  }, {
23
- onMessage: (data) => {
23
+ onMessage: (data)=>{
24
24
  setIsLoading(false);
25
- setTrades(() => data);
26
- },
25
+ setTrades(()=>data);
26
+ }
27
27
  });
28
- }, [symbol]);
29
- useEffect(() => {
28
+ }, [
29
+ symbol
30
+ ]);
31
+ useEffect(()=>{
30
32
  const unsubscript = ws.subscribe({
31
33
  id: `${symbol}@trade`,
32
34
  event: "subscribe",
33
35
  topic: `${symbol}@trade`,
34
- ts: Date.now(),
36
+ ts: Date.now()
35
37
  }, {
36
- onMessage: (data) => {
37
- setTrades((prev) => {
38
- const arr = [{ ...data, ts: Date.now() }, ...prev];
38
+ onMessage: (data)=>{
39
+ setTrades((prev)=>{
40
+ const arr = [
41
+ {
42
+ ...data,
43
+ ts: Date.now()
44
+ },
45
+ ...prev
46
+ ];
39
47
  if (arr.length > limit) {
40
48
  arr.pop();
41
49
  }
42
50
  return arr;
43
51
  });
44
- },
52
+ }
45
53
  });
46
- return () => {
54
+ return ()=>{
47
55
  unsubscript?.();
48
56
  };
49
- }, [symbol]);
50
- return { data: trades, isLoading };
57
+ }, [
58
+ symbol
59
+ ]);
60
+ return {
61
+ data: trades,
62
+ isLoading
63
+ };
51
64
  };
65
+
66
+ //# sourceMappingURL=useMarketTradeStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMarketTradeStream.ts"],"sourcesContent":["import { API } from \"@orderly.network/types\";\nimport { useWS } from \"../useWS\";\nimport { useEffect, useState } from \"react\";\n\nexport interface MarketTradeStreamOptions {\n limit?: number;\n}\n\nexport const useMarketTradeStream = (\n symbol: string,\n options: MarketTradeStreamOptions = {}\n) => {\n if (!symbol) {\n throw new Error(\"useTradeStream: symbol is required\");\n }\n\n const [trades, setTrades] = useState<API.Trade[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n const { limit = 50 } = options;\n\n const ws = useWS();\n\n useEffect(() => {\n setIsLoading(true);\n setTrades(() => []);\n ws.onceSubscribe(\n {\n id: `${symbol}@trade`,\n event: \"request\",\n params: {\n type: \"trade\",\n symbol: symbol,\n limit,\n },\n },\n {\n onMessage: (data: any) => {\n setIsLoading(false);\n setTrades(() => data);\n },\n }\n );\n }, [symbol]);\n\n useEffect(() => {\n const unsubscript = ws.subscribe(\n {\n id: `${symbol}@trade`,\n event: \"subscribe\",\n topic: `${symbol}@trade`,\n ts: Date.now(),\n },\n {\n onMessage: (data: any) => {\n setTrades((prev) => {\n const arr = [{ ...data, ts: Date.now() }, ...prev];\n if (arr.length > limit) {\n arr.pop();\n }\n return arr;\n });\n },\n }\n );\n\n return () => {\n unsubscript?.();\n };\n }, [symbol]);\n\n return { data: trades, isLoading };\n};\n"],"names":["useWS","useEffect","useState","useMarketTradeStream","symbol","options","Error","trades","setTrades","isLoading","setIsLoading","limit","ws","onceSubscribe","id","event","params","type","onMessage","data","unsubscript","subscribe","topic","ts","Date","now","prev","arr","length","pop"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,KAAK,QAAQ,WAAW;AACjC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAM5C,OAAO,MAAMC,uBAAuB,CAClCC,QACAC,UAAoC,CAAC,CAAC;IAEtC,IAAI,CAACD,QAAQ;QACX,MAAM,IAAIE,MAAM;IAClB;IAEA,MAAM,CAACC,QAAQC,UAAU,GAAGN,SAAsB,EAAE;IACpD,MAAM,CAACO,WAAWC,aAAa,GAAGR,SAAkB;IAEpD,MAAM,EAAES,QAAQ,EAAE,EAAE,GAAGN;IAEvB,MAAMO,KAAKZ;IAEXC,UAAU;QACRS,aAAa;QACbF,UAAU,IAAM,EAAE;QAClBI,GAAGC,aAAa,CACd;YACEC,IAAI,CAAC,EAAEV,OAAO,MAAM,CAAC;YACrBW,OAAO;YACPC,QAAQ;gBACNC,MAAM;gBACNb,QAAQA;gBACRO;YACF;QACF,GACA;YACEO,WAAW,CAACC;gBACVT,aAAa;gBACbF,UAAU,IAAMW;YAClB;QACF;IAEJ,GAAG;QAACf;KAAO;IAEXH,UAAU;QACR,MAAMmB,cAAcR,GAAGS,SAAS,CAC9B;YACEP,IAAI,CAAC,EAAEV,OAAO,MAAM,CAAC;YACrBW,OAAO;YACPO,OAAO,CAAC,EAAElB,OAAO,MAAM,CAAC;YACxBmB,IAAIC,KAAKC,GAAG;QACd,GACA;YACEP,WAAW,CAACC;gBACVX,UAAU,CAACkB;oBACT,MAAMC,MAAM;wBAAC;4BAAE,GAAGR,IAAI;4BAAEI,IAAIC,KAAKC,GAAG;wBAAG;2BAAMC;qBAAK;oBAClD,IAAIC,IAAIC,MAAM,GAAGjB,OAAO;wBACtBgB,IAAIE,GAAG;oBACT;oBACA,OAAOF;gBACT;YACF;QACF;QAGF,OAAO;YACLP;QACF;IACF,GAAG;QAAChB;KAAO;IAEX,OAAO;QAAEe,MAAMZ;QAAQE;IAAU;AACnC,EAAE"}