@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,12 +3,12 @@ import { useMarketsStream } from "./useMarketsStream";
3
3
  import { OrderlyContext } from "../orderlyContext";
4
4
  import { useSymbolsInfo } from "./useSymbolsInfo";
5
5
  export var MarketsType;
6
- (function (MarketsType) {
6
+ (function(MarketsType) {
7
7
  MarketsType[MarketsType["FAVORITES"] = 0] = "FAVORITES";
8
8
  MarketsType[MarketsType["RECENT"] = 1] = "RECENT";
9
9
  MarketsType[MarketsType["ALL"] = 2] = "ALL";
10
10
  })(MarketsType || (MarketsType = {}));
11
- export const useMarkets = (type) => {
11
+ export const useMarkets = (type)=>{
12
12
  const marketsKey = "markets";
13
13
  const { data } = useMarketsStream();
14
14
  const { configStore } = useContext(OrderlyContext);
@@ -18,51 +18,86 @@ export const useMarkets = (type) => {
18
18
  const jsonStr = localStorage.getItem(marketsKey);
19
19
  if (jsonStr) {
20
20
  configStore.set(marketsKey, JSON.parse(jsonStr));
21
- }
22
- else {
23
- const defaultTab = { name: "Popular", id: 1 };
21
+ } else {
22
+ const defaultTab = {
23
+ name: "Popular",
24
+ id: 1
25
+ };
24
26
  configStore.set(marketsKey, {
25
27
  recent: [],
26
28
  favorites: [
27
- { name: "PERP_ETH_USDC", tabs: [{ ...defaultTab }] },
28
- { name: "PERP_BTC_USDC", tabs: [{ ...defaultTab }] },
29
+ {
30
+ name: "PERP_ETH_USDC",
31
+ tabs: [
32
+ {
33
+ ...defaultTab
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ name: "PERP_BTC_USDC",
39
+ tabs: [
40
+ {
41
+ ...defaultTab
42
+ }
43
+ ]
44
+ }
29
45
  ],
30
- favoriteTabs: [{ ...defaultTab }],
31
- lastSelectFavoriteTab: { ...defaultTab }
46
+ favoriteTabs: [
47
+ {
48
+ ...defaultTab
49
+ }
50
+ ],
51
+ lastSelectFavoriteTab: {
52
+ ...defaultTab
53
+ }
32
54
  });
33
55
  }
34
56
  }
35
- const getFavoriteTabs = useMemo(() => {
57
+ const getFavoriteTabs = useMemo(()=>{
36
58
  // @ts-ignore
37
59
  const tabs = configStore.get(marketsKey)["favoriteTabs"];
38
- return (tabs || [{ name: "Popular", id: 1 }]);
60
+ return tabs || [
61
+ {
62
+ name: "Popular",
63
+ id: 1
64
+ }
65
+ ];
39
66
  }, []);
40
- const getFavorites = useMemo(() => {
67
+ const getFavorites = useMemo(()=>{
41
68
  // @ts-ignore
42
- const curData = (configStore.get(marketsKey)["favorites"] || []);
69
+ const curData = configStore.get(marketsKey)["favorites"] || [];
43
70
  const tabs = getFavoriteTabs;
44
71
  const result = [];
45
- for (let index = 0; index < curData.length; index++) {
72
+ for(let index = 0; index < curData.length; index++){
46
73
  const favData = curData[index];
47
- var favTabs = favData.tabs.filter((tab) => tabs.findIndex((item) => tab.id === item.id) !== -1);
74
+ var favTabs = favData.tabs.filter((tab)=>tabs.findIndex((item)=>tab.id === item.id) !== -1);
48
75
  if (favTabs.length > 0) {
49
- result.push({ ...favData, tabs: favTabs });
76
+ result.push({
77
+ ...favData,
78
+ tabs: favTabs
79
+ });
50
80
  }
51
81
  }
52
- configStore.set(marketsKey, { ...configStore.getOr(marketsKey, {}), favorites: result });
82
+ configStore.set(marketsKey, {
83
+ ...configStore.getOr(marketsKey, {}),
84
+ favorites: result
85
+ });
53
86
  // localStorage.setItem(marketsKey, JSON.stringify(configStore.get(marketsKey)));
54
87
  return result;
55
- }, [configStore]);
56
- const getRecent = useMemo(() => {
88
+ }, [
89
+ configStore
90
+ ]);
91
+ const getRecent = useMemo(()=>{
57
92
  // @ts-ignore
58
93
  const curData = configStore.get(marketsKey)["recent"];
59
- return (curData || []).filter((e) => e);
94
+ return (curData || []).filter((e)=>e);
60
95
  }, []);
61
96
  const [favoriteTabs, setFavoriteTabs] = useState(getFavoriteTabs);
62
97
  const [favorites, setFavorites] = useState(getFavorites);
63
98
  const [recent, setRecent] = useState(getRecent);
64
- const updateFavoriteTabs = (tab, operator) => {
65
- const saveTabs = (tabs) => {
99
+ const updateFavoriteTabs = (tab, operator)=>{
100
+ const saveTabs = (tabs)=>{
66
101
  setFavoriteTabs(tabs);
67
102
  configStore.set(marketsKey, {
68
103
  ...configStore.getOr(marketsKey, {}),
@@ -73,78 +108,95 @@ export const useMarkets = (type) => {
73
108
  saveTabs(tab);
74
109
  return;
75
110
  }
76
- var tabs = [...favoriteTabs];
77
- const index = tabs.findIndex((item) => item.id === tab.id);
111
+ var tabs = [
112
+ ...favoriteTabs
113
+ ];
114
+ const index = tabs.findIndex((item)=>item.id === tab.id);
78
115
  if (operator?.add) {
79
116
  tabs.push(tab);
80
- }
81
- else if (operator?.update) {
117
+ } else if (operator?.update) {
82
118
  if (index !== -1) {
83
119
  tabs[index] = tab;
84
120
  }
85
- }
86
- else if (operator?.delete) {
121
+ } else if (operator?.delete) {
87
122
  if (index !== -1) {
88
123
  tabs.splice(index, 1);
89
124
  }
90
125
  }
91
126
  saveTabs(tabs);
92
127
  };
93
- const setRecentData = (symbol) => {
94
- const curData = [...recent];
95
- const index = curData.findIndex((item) => item.name == symbol.symbol);
128
+ const setRecentData = (symbol)=>{
129
+ const curData = [
130
+ ...recent
131
+ ];
132
+ const index = curData.findIndex((item)=>item.name == symbol.symbol);
96
133
  if (index !== -1) {
97
134
  curData.splice(index, 1);
98
135
  }
99
- curData.unshift({ name: symbol.symbol });
136
+ curData.unshift({
137
+ name: symbol.symbol
138
+ });
100
139
  configStore.set(marketsKey, {
101
140
  ...configStore.getOr(marketsKey, {}),
102
141
  "recent": curData
103
142
  });
104
143
  setRecent(curData);
105
144
  };
106
- const setFavoritesData = (symbol, tab, remove = false) => {
107
- const curData = [...favorites];
108
- const index = curData.findIndex((item) => item.name == symbol.symbol);
109
- if (index === -1) { // can not find
145
+ const setFavoritesData = (symbol, tab, remove = false)=>{
146
+ const curData = [
147
+ ...favorites
148
+ ];
149
+ const index = curData.findIndex((item)=>item.name == symbol.symbol);
150
+ if (index === -1) {
110
151
  if (Array.isArray(tab)) {
111
152
  if (tab.length > 0) {
112
- curData.unshift({ name: symbol.symbol, tabs: tab });
153
+ curData.unshift({
154
+ name: symbol.symbol,
155
+ tabs: tab
156
+ });
113
157
  }
114
- }
115
- else {
158
+ } else {
116
159
  if (!remove) {
117
160
  // insert
118
- curData.unshift({ name: symbol.symbol, tabs: [tab] });
161
+ curData.unshift({
162
+ name: symbol.symbol,
163
+ tabs: [
164
+ tab
165
+ ]
166
+ });
119
167
  }
120
168
  }
121
- }
122
- else {
169
+ } else {
123
170
  const favorite = curData[index];
124
171
  if (Array.isArray(tab)) {
125
172
  if (tab.length === 0) {
126
173
  // remove
127
174
  curData.splice(index, 1);
128
- }
129
- else {
175
+ } else {
130
176
  // overrides
131
- curData[index] = { ...favorite, tabs: tab };
177
+ curData[index] = {
178
+ ...favorite,
179
+ tabs: tab
180
+ };
132
181
  }
133
- }
134
- else {
182
+ } else {
135
183
  if (remove) {
136
- const tabs = favorite.tabs.filter((tab) => tab.id != tab.id);
137
- if (tabs.length === 0) { // del favorite
184
+ const tabs = favorite.tabs.filter((tab)=>tab.id != tab.id);
185
+ if (tabs.length === 0) {
138
186
  curData.splice(index, 1);
187
+ } else {
188
+ curData[index] = {
189
+ ...favorite,
190
+ tabs
191
+ };
139
192
  }
140
- else {
141
- curData[index] = { ...favorite, tabs };
142
- }
143
- }
144
- else { // insert
193
+ } else {
145
194
  const tabs = favorite.tabs;
146
195
  tabs.push(tab);
147
- curData[index] = { ...favorite, tabs };
196
+ curData[index] = {
197
+ ...favorite,
198
+ tabs
199
+ };
148
200
  }
149
201
  }
150
202
  }
@@ -152,25 +204,27 @@ export const useMarkets = (type) => {
152
204
  ...configStore.getOr(marketsKey, {}),
153
205
  "favorites": curData
154
206
  });
155
- setFavorites(() => curData);
207
+ setFavorites(()=>curData);
156
208
  };
157
- const getData = (type) => {
209
+ const getData = (type)=>{
158
210
  // get data
159
- const localData = type === MarketsType.FAVORITES ? [...favorites] : [...recent];
211
+ const localData = type === 0 ? [
212
+ ...favorites
213
+ ] : [
214
+ ...recent
215
+ ];
160
216
  // filter
161
- const keys = localData.map((item) => item.name);
162
- const filter = type == MarketsType.ALL ?
163
- data :
164
- data?.filter((item) => keys.includes(item.symbol));
165
- const favoritesData = [...favorites];
166
- const favoriteKeys = favoritesData.map((item) => item.name);
217
+ const keys = localData.map((item)=>item.name);
218
+ const filter = type == 2 ? data : data?.filter((item)=>keys.includes(item.symbol));
219
+ const favoritesData = [
220
+ ...favorites
221
+ ];
222
+ const favoriteKeys = favoritesData.map((item)=>item.name);
167
223
  if (filter) {
168
- for (let index = 0; index < filter.length; index++) {
224
+ for(let index = 0; index < filter.length; index++){
169
225
  const element = filter[index];
170
- const isFavorite = type == MarketsType.FAVORITES ?
171
- true :
172
- (favoriteKeys.includes(element.symbol));
173
- const fIndex = favoritesData.findIndex((item) => item.name === element.symbol);
226
+ const isFavorite = type == 0 ? true : favoriteKeys.includes(element.symbol);
227
+ const fIndex = favoritesData.findIndex((item)=>item.name === element.symbol);
174
228
  const tabs = fIndex === -1 ? [] : favoritesData[fIndex].tabs;
175
229
  let imr = undefined;
176
230
  if (publicInfo) {
@@ -187,18 +241,20 @@ export const useMarkets = (type) => {
187
241
  }
188
242
  return filter;
189
243
  };
190
- const addToHistory = (symbol) => {
244
+ const addToHistory = (symbol)=>{
191
245
  setRecentData(symbol);
192
246
  };
193
- const updateSymbolFavoriteState = (symbol, tab, del = false) => {
247
+ const updateSymbolFavoriteState = (symbol, tab, del = false)=>{
194
248
  setFavoritesData(symbol, tab, del);
195
249
  };
196
250
  const markets = getData(type);
197
- const pinToTop = (symbol) => {
198
- const index = favorites.findIndex((item) => item.name === symbol.symbol);
251
+ const pinToTop = (symbol)=>{
252
+ const index = favorites.findIndex((item)=>item.name === symbol.symbol);
199
253
  if (index !== -1) {
200
254
  const element = favorites[index];
201
- const list = [...favorites];
255
+ const list = [
256
+ ...favorites
257
+ ];
202
258
  list.splice(index, 1);
203
259
  list.unshift(element);
204
260
  configStore.set(marketsKey, {
@@ -208,15 +264,20 @@ export const useMarkets = (type) => {
208
264
  setFavorites(list);
209
265
  }
210
266
  };
211
- const tabs = useMemo(() => {
267
+ const tabs = useMemo(()=>{
212
268
  return favoriteTabs;
213
- }, [favoriteTabs]);
214
- const getLastSelFavTab = () => {
269
+ }, [
270
+ favoriteTabs
271
+ ]);
272
+ const getLastSelFavTab = ()=>{
215
273
  // @ts-ignore
216
274
  const curData = configStore.get(marketsKey)["lastSelectedFavoriteTab"];
217
- return (curData || { name: "Popular", id: 1 });
275
+ return curData || {
276
+ name: "Popular",
277
+ id: 1
278
+ };
218
279
  };
219
- const updateSelectedFavoriteTab = (tab) => {
280
+ const updateSelectedFavoriteTab = (tab)=>{
220
281
  configStore.set(marketsKey, {
221
282
  ...configStore.getOr(marketsKey, {}),
222
283
  lastSelectedFavoriteTab: tab
@@ -234,7 +295,9 @@ export const useMarkets = (type) => {
234
295
  updateSymbolFavoriteState,
235
296
  pinToTop,
236
297
  getLastSelFavTab,
237
- updateSelectedFavoriteTab,
238
- },
298
+ updateSelectedFavoriteTab
299
+ }
239
300
  ];
240
301
  };
302
+
303
+ //# sourceMappingURL=useMarkets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMarkets.ts"],"sourcesContent":["import { useCallback, useContext, useMemo, useState } from \"react\";\nimport { useMarketsStream } from \"./useMarketsStream\";\nimport { useConfig } from \"../useConfig\";\nimport { OrderlyContext } from \"../orderlyContext\";\nimport { API } from \"@orderly.network/types\";\nimport { useQuery } from \"../useQuery\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\n\nexport enum MarketsType {\n FAVORITES,\n RECENT,\n ALL,\n}\n\n\n/*\n{\n markets: {\n recent: [\n { \"name\": `${symbol.name}` },\n { \"name\": `${symbol.name}` },\n ],\n favorites: [\n { \"name\": `${symbol.name}`, \"tabs\": [{ \"name\": \"Popular\", \"id\": 1 }] },\n ],\n favoriteTabs: [\n { \"name\": \"Popular\", \"id\": 1 },\n ],\n \"lastSelectFavoriteTab\": { \"name\": \"Popular\", \"id\": 1 }\n \n }\n}\n*/\n\n\nexport interface FavoriteTab {\n name: string;\n id: number;\n}\n\nexport interface Favorite {\n name: string;\n tabs: FavoriteTab[];\n}\n\nexport interface Recent {\n name: string;\n}\n\nexport const useMarkets = (type: MarketsType) => {\n\n const marketsKey = \"markets\";\n\n const { data } = useMarketsStream();\n const { configStore } = useContext(OrderlyContext);\n\n // {\"PERP_ETH_USDC\": {}, ...}\n const publicInfo = useSymbolsInfo();\n\n if (!configStore.get(marketsKey)) {\n const jsonStr = localStorage.getItem(marketsKey);\n if (jsonStr) {\n configStore.set(marketsKey, JSON.parse(jsonStr));\n } else {\n const defaultTab = { name: \"Popular\", id: 1 };\n configStore.set(marketsKey, {\n recent: [],\n favorites: [\n { name: \"PERP_ETH_USDC\", tabs: [{ ...defaultTab }] },\n { name: \"PERP_BTC_USDC\", tabs: [{ ...defaultTab }] },\n ],\n favoriteTabs: [{ ...defaultTab }],\n lastSelectFavoriteTab: { ...defaultTab }\n });\n }\n }\n\n const getFavoriteTabs = useMemo(() => {\n // @ts-ignore\n const tabs = configStore.get(marketsKey)[\"favoriteTabs\"];\n return (tabs || [{ name: \"Popular\", id: 1 }]) as FavoriteTab[];\n }, []);\n\n const getFavorites = useMemo(() => {\n // @ts-ignore\n const curData = (configStore.get(marketsKey,)[\"favorites\"] || []) as Favorite[];\n const tabs = getFavoriteTabs;\n const result = [];\n for (let index = 0; index < curData.length; index++) {\n const favData = curData[index];\n var favTabs = favData.tabs.filter((tab) => tabs.findIndex((item) => tab.id === item.id) !== -1);\n if (favTabs.length > 0) {\n result.push({ ...favData, tabs: favTabs })\n }\n\n }\n configStore.set(marketsKey, { ...configStore.getOr(marketsKey, {}), favorites: result });\n // localStorage.setItem(marketsKey, JSON.stringify(configStore.get(marketsKey)));\n\n return result;\n }, [configStore]);\n\n const getRecent = useMemo(() => {\n // @ts-ignore\n const curData = configStore.get(marketsKey)[\"recent\"];\n return ((curData || []) as Recent[]).filter((e) => e);\n }, []);\n\n const [favoriteTabs, setFavoriteTabs] = useState(getFavoriteTabs);\n const [favorites, setFavorites] = useState(getFavorites);\n const [recent, setRecent] = useState(getRecent);\n\n const updateFavoriteTabs = (tab: FavoriteTab | FavoriteTab[], operator?: {\n add?: boolean,\n update?: boolean,\n delete?: boolean,\n }) => {\n\n const saveTabs = (tabs: FavoriteTab[]) => {\n setFavoriteTabs(tabs);\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favoriteTabs\": tabs\n });\n };\n\n if (Array.isArray(tab)) {\n saveTabs(tab);\n return;\n }\n\n var tabs = [...favoriteTabs];\n const index = tabs.findIndex((item) => item.id === tab.id);\n if (operator?.add) {\n tabs.push(tab);\n } else if (operator?.update) {\n if (index !== -1) {\n tabs[index] = tab;\n }\n } else if (operator?.delete) {\n if (index !== -1) {\n tabs.splice(index, 1);\n\n }\n }\n saveTabs(tabs);\n };\n\n const setRecentData = (symbol: API.MarketInfoExt) => {\n const curData = [...recent];\n const index = curData.findIndex((item) => item.name == symbol.symbol);\n if (index !== -1) {\n curData.splice(index, 1);\n }\n curData.unshift({ name: symbol.symbol });\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"recent\": curData\n });\n setRecent(curData);\n };\n\n\n\n const setFavoritesData = (symbol: API.MarketInfoExt, tab: FavoriteTab | FavoriteTab[], remove: boolean = false) => {\n\n const curData = [...favorites];\n const index = curData.findIndex((item) => item.name == symbol.symbol);\n\n if (index === -1) { // can not find\n if (Array.isArray(tab)) {\n if (tab.length > 0) {\n curData.unshift({ name: symbol.symbol, tabs: tab });\n }\n } else {\n if (!remove) {\n // insert\n curData.unshift({ name: symbol.symbol, tabs: [tab] });\n }\n }\n\n } else {\n const favorite = curData[index];\n if (Array.isArray(tab)) {\n if (tab.length === 0) {\n // remove\n curData.splice(index, 1);\n } else {\n // overrides\n curData[index] = { ...favorite, tabs: tab };\n }\n } else {\n if (remove) {\n const tabs = favorite.tabs.filter((tab) => tab.id != tab.id);\n if (tabs.length === 0) { // del favorite\n curData.splice(index, 1);\n } else {\n curData[index] = { ...favorite, tabs };\n }\n } else { // insert\n const tabs = favorite.tabs;\n tabs.push(tab);\n curData[index] = { ...favorite, tabs };\n }\n }\n }\n\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favorites\": curData\n });\n setFavorites(() => curData);\n };\n\n const getData = (type: MarketsType) => {\n\n\n // get data\n const localData = type === MarketsType.FAVORITES ? [...favorites] : [...recent];\n // filter\n const keys = localData.map((item) => item.name);\n const filter = type == MarketsType.ALL ?\n data :\n data?.filter((item) => keys.includes(item.symbol));\n\n const favoritesData = [...favorites];\n const favoriteKeys = favoritesData.map((item) => item.name);\n if (filter) {\n for (let index = 0; index < filter.length; index++) {\n const element = filter[index];\n const isFavorite = type == MarketsType.FAVORITES ?\n true :\n (favoriteKeys.includes(element.symbol));\n\n const fIndex = favoritesData.findIndex((item) => item.name === element.symbol);\n const tabs = fIndex === -1 ? [] : favoritesData[fIndex].tabs;\n\n let imr = undefined;\n if (publicInfo) {\n imr= publicInfo?.[element.symbol](\"base_imr\");\n }\n \n filter[index] = {\n ...filter[index],\n // @ts-ignore\n isFavorite,\n tabs,\n leverage: imr ? 1 / imr : undefined\n };\n }\n }\n\n return filter;\n\n };\n\n const addToHistory = (symbol: API.MarketInfoExt) => {\n setRecentData(symbol);\n };\n\n const updateSymbolFavoriteState = (symbol: API.MarketInfoExt, tab: FavoriteTab | FavoriteTab[], del: boolean = false) => {\n setFavoritesData(symbol, tab, del);\n };\n\n const markets = getData(type);\n\n const pinToTop = (symbol: API.MarketInfoExt) => {\n const index = favorites.findIndex((item) => item.name === symbol.symbol);\n if (index !== -1) {\n const element = favorites[index];\n const list = [...favorites];\n list.splice(index, 1);\n list.unshift(element);\n\n\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n \"favorites\": list\n });\n setFavorites(list);\n }\n };\n\n\n const tabs = useMemo(() => {\n return favoriteTabs;\n }, [favoriteTabs]);\n\n\n const getLastSelFavTab = () => {\n // @ts-ignore\n const curData = configStore.get(marketsKey)[\"lastSelectedFavoriteTab\"];\n return (curData || { name: \"Popular\", id: 1 }) as FavoriteTab;\n };\n\n const updateSelectedFavoriteTab = (tab: FavoriteTab) => {\n configStore.set(marketsKey, {\n ...configStore.getOr(marketsKey, {}),\n lastSelectedFavoriteTab: tab\n });\n };\n\n return [\n markets || [],\n {\n favoriteTabs: tabs,\n favorites,\n recent,\n addToHistory,\n // updateFavoriteTabs(\"tab\", operator: {add/update/delete})\n updateFavoriteTabs,\n updateSymbolFavoriteState,\n pinToTop,\n getLastSelFavTab,\n updateSelectedFavoriteTab,\n },\n ] as const;\n}"],"names":["useContext","useMemo","useState","useMarketsStream","OrderlyContext","useSymbolsInfo","MarketsType","useMarkets","type","marketsKey","data","configStore","publicInfo","get","jsonStr","localStorage","getItem","set","JSON","parse","defaultTab","name","id","recent","favorites","tabs","favoriteTabs","lastSelectFavoriteTab","getFavoriteTabs","getFavorites","curData","result","index","length","favData","favTabs","filter","tab","findIndex","item","push","getOr","getRecent","e","setFavoriteTabs","setFavorites","setRecent","updateFavoriteTabs","operator","saveTabs","Array","isArray","add","update","delete","splice","setRecentData","symbol","unshift","setFavoritesData","remove","favorite","getData","localData","keys","map","includes","favoritesData","favoriteKeys","element","isFavorite","fIndex","imr","undefined","leverage","addToHistory","updateSymbolFavoriteState","del","markets","pinToTop","list","getLastSelFavTab","updateSelectedFavoriteTab","lastSelectedFavoriteTab"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -3,56 +3,51 @@ import { useQuery } from "../useQuery";
3
3
  import { useWS } from "../useWS";
4
4
  import useSWRSubscription from "swr/subscription";
5
5
  import { Decimal } from "@orderly.network/utils";
6
- export const useMarketsStream = () => {
6
+ export const useMarketsStream = ()=>{
7
7
  // get listing of all markets from /public/info
8
8
  const ws = useWS();
9
9
  const { data: futures } = useQuery(`/v1/public/futures`, {
10
- revalidateOnFocus: false,
10
+ revalidateOnFocus: false
11
11
  });
12
- const { data: tickers } = useSWRSubscription("tickers", (_, { next }) => {
13
- const unsubscribe = ws.subscribe(
14
- // { event: "subscribe", topic: "markprices" },
12
+ const { data: tickers } = useSWRSubscription("tickers", (_, { next })=>{
13
+ const unsubscribe = ws.subscribe(// { event: "subscribe", topic: "markprices" },
15
14
  "tickers", {
16
- onMessage: (message) => {
15
+ onMessage: (message)=>{
17
16
  // window.debugPrint(message);
18
17
  next(null, message);
19
- },
20
- // onUnsubscribe: () => {
21
- // return "markprices";
22
- // },
23
- // onError: (error: any) => {
24
- //
25
- // },
18
+ }
26
19
  });
27
- return () => {
20
+ return ()=>{
28
21
  unsubscribe?.();
29
22
  };
30
23
  });
31
- const value = useMemo(() => {
32
- if (!futures)
33
- return null;
34
- if (!tickers)
35
- return futures;
36
- return futures.map((item) => {
37
- const ticker = tickers.find((t) => t.symbol === item.symbol);
24
+ const value = useMemo(()=>{
25
+ if (!futures) return null;
26
+ if (!tickers) return futures;
27
+ return futures.map((item)=>{
28
+ const ticker = tickers.find((t)=>t.symbol === item.symbol);
38
29
  if (ticker) {
39
30
  const data = {
40
31
  ...item,
41
32
  ["24h_close"]: ticker.close,
42
33
  ["24h_open"]: ticker.open,
43
34
  ["24h_volumn"]: ticker.volume,
44
- change: 0,
35
+ change: 0
45
36
  };
46
37
  if (ticker.close !== undefined && ticker.open !== undefined) {
47
- data["change"] = new Decimal(ticker.close)
48
- .minus(ticker.open)
49
- .div(ticker.open)
50
- .toNumber();
38
+ data["change"] = new Decimal(ticker.close).minus(ticker.open).div(ticker.open).toNumber();
51
39
  }
52
40
  return data;
53
41
  }
54
42
  return item;
55
43
  });
56
- }, [futures, tickers]);
57
- return { data: value };
44
+ }, [
45
+ futures,
46
+ tickers
47
+ ]);
48
+ return {
49
+ data: value
50
+ };
58
51
  };
52
+
53
+ //# sourceMappingURL=useMarketsStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMarketsStream.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useQuery } from \"../useQuery\";\nimport { useWS } from \"../useWS\";\nimport useSWRSubscription from \"swr/subscription\";\nimport { WSMessage } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const useMarketsStream = () => {\n // get listing of all markets from /public/info\n const ws = useWS();\n const { data: futures } = useQuery<WSMessage.Ticker[]>(`/v1/public/futures`, {\n revalidateOnFocus: false,\n });\n\n const { data: tickers } = useSWRSubscription(\"tickers\", (_, { next }) => {\n const unsubscribe = ws.subscribe(\n // { event: \"subscribe\", topic: \"markprices\" },\n \"tickers\",\n {\n onMessage: (message: any) => {\n // window.debugPrint(message);\n next(null, message);\n },\n // onUnsubscribe: () => {\n // return \"markprices\";\n // },\n // onError: (error: any) => {\n //\n // },\n }\n );\n\n return () => {\n unsubscribe?.();\n };\n });\n\n const value = useMemo(() => {\n if (!futures) return null;\n if (!tickers) return futures;\n\n return futures.map((item) => {\n const ticker = tickers.find(\n (t: WSMessage.Ticker) => t.symbol === item.symbol\n );\n if (ticker) {\n const data = {\n ...item,\n [\"24h_close\"]: ticker.close,\n [\"24h_open\"]: ticker.open,\n [\"24h_volumn\"]: ticker.volume,\n change: 0,\n };\n\n if (ticker.close !== undefined && ticker.open !== undefined) {\n data[\"change\"] = new Decimal(ticker.close)\n .minus(ticker.open)\n .div(ticker.open)\n .toNumber();\n }\n\n return data;\n }\n return item;\n });\n }, [futures, tickers]);\n\n return { data: value };\n};\n"],"names":["useMemo","useQuery","useWS","useSWRSubscription","Decimal","useMarketsStream","ws","data","futures","revalidateOnFocus","tickers","_","next","unsubscribe","subscribe","onMessage","message","value","map","item","ticker","find","t","symbol","close","open","volume","change","undefined","minus","div","toNumber"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,KAAK,QAAQ,WAAW;AACjC,OAAOC,wBAAwB,mBAAmB;AAElD,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,MAAMC,mBAAmB;IAC9B,+CAA+C;IAC/C,MAAMC,KAAKJ;IACX,MAAM,EAAEK,MAAMC,OAAO,EAAE,GAAGP,SAA6B,CAAC,kBAAkB,CAAC,EAAE;QAC3EQ,mBAAmB;IACrB;IAEA,MAAM,EAAEF,MAAMG,OAAO,EAAE,GAAGP,mBAAmB,WAAW,CAACQ,GAAG,EAAEC,IAAI,EAAE;QAClE,MAAMC,cAAcP,GAAGQ,SAAS,CAC9B,+CAA+C;QAC/C,WACA;YACEC,WAAW,CAACC;gBACV,8BAA8B;gBAC9BJ,KAAK,MAAMI;YACb;QAOF;QAGF,OAAO;YACLH;QACF;IACF;IAEA,MAAMI,QAAQjB,QAAQ;QACpB,IAAI,CAACQ,SAAS,OAAO;QACrB,IAAI,CAACE,SAAS,OAAOF;QAErB,OAAOA,QAAQU,GAAG,CAAC,CAACC;YAClB,MAAMC,SAASV,QAAQW,IAAI,CACzB,CAACC,IAAwBA,EAAEC,MAAM,KAAKJ,KAAKI,MAAM;YAEnD,IAAIH,QAAQ;gBACV,MAAMb,OAAO;oBACX,GAAGY,IAAI;oBACP,CAAC,YAAY,EAAEC,OAAOI,KAAK;oBAC3B,CAAC,WAAW,EAAEJ,OAAOK,IAAI;oBACzB,CAAC,aAAa,EAAEL,OAAOM,MAAM;oBAC7BC,QAAQ;gBACV;gBAEA,IAAIP,OAAOI,KAAK,KAAKI,aAAaR,OAAOK,IAAI,KAAKG,WAAW;oBAC3DrB,IAAI,CAAC,SAAS,GAAG,IAAIH,QAAQgB,OAAOI,KAAK,EACtCK,KAAK,CAACT,OAAOK,IAAI,EACjBK,GAAG,CAACV,OAAOK,IAAI,EACfM,QAAQ;gBACb;gBAEA,OAAOxB;YACT;YACA,OAAOY;QACT;IACF,GAAG;QAACX;QAASE;KAAQ;IAErB,OAAO;QAAEH,MAAMU;IAAM;AACvB,EAAE"}
@@ -1,3 +1,9 @@
1
1
  import { OrderSide } from "@orderly.network/types";
2
+ /**
3
+ * @param symbol
4
+ * @param side
5
+ * @param reduceOnly
6
+ * @returns the maximum quantity available for trading in USD
7
+ */
2
8
  export declare const useMaxQty: (symbol: string, side: OrderSide, reduceOnly?: boolean) => number;
3
9
  //# sourceMappingURL=useMaxQty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMaxQty.d.ts","sourceRoot":"","sources":["../../src/orderly/useMaxQty.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAe1E,eAAO,MAAM,SAAS,WACZ,MAAM,QACR,SAAS,eACH,OAAO,WA2HpB,CAAC"}
1
+ {"version":3,"file":"useMaxQty.d.ts","sourceRoot":"","sources":["../../src/orderly/useMaxQty.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAe1E;;;;;GAKG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,QACR,SAAS,eACH,OAAO,WA2HpB,CAAC"}
@@ -8,56 +8,62 @@ import { usePrivateQuery } from "../usePrivateQuery";
8
8
  import { usePositionStream } from "./usePositionStream";
9
9
  import { pathOr } from "ramda";
10
10
  import { useOrderStream } from "./useOrderStream";
11
- const positionsPath = pathOr([], [0, "rows"]);
12
- export const useMaxQty = (symbol, side, reduceOnly = false) => {
11
+ const positionsPath = pathOr([], [
12
+ 0,
13
+ "rows"
14
+ ]);
15
+ /**
16
+ * @param symbol
17
+ * @param side
18
+ * @param reduceOnly
19
+ * @returns the maximum quantity available for trading in USD
20
+ */ export const useMaxQty = (symbol, side, reduceOnly = false)=>{
13
21
  const positionsData = usePositionStream();
14
22
  // const [orders] = useOrderStream({ status: OrderStatus.NEW });
15
23
  const { data: accountInfo } = usePrivateQuery("/v1/client/info");
16
24
  const symbolInfo = useSymbolsInfo();
17
25
  const { totalCollateral } = useCollateral();
18
26
  const { data: markPrices } = useMarkPricesStream();
19
- const [orders] = useOrderStream({ status: OrderStatus.NEW });
20
- const maxQty = useMemo(() => {
21
- if (!symbol)
22
- return 0;
27
+ const [orders] = useOrderStream({
28
+ status: OrderStatus.NEW
29
+ });
30
+ const maxQty = useMemo(()=>{
31
+ if (!symbol) return 0;
23
32
  const positions = positionsPath(positionsData);
24
33
  const positionQty = account.getQtyFromPositions(positions, symbol);
25
34
  if (reduceOnly) {
26
35
  if (positionQty > 0) {
27
36
  if (side === OrderSide.BUY) {
28
37
  return 0;
29
- }
30
- else {
38
+ } else {
31
39
  return Math.abs(positionQty);
32
40
  }
33
41
  }
34
42
  if (positionQty < 0) {
35
43
  if (side === OrderSide.BUY) {
36
44
  return Math.abs(positionQty);
37
- }
38
- else {
45
+ } else {
39
46
  return 0;
40
47
  }
41
48
  }
42
49
  return 0;
43
50
  }
44
- if (!markPrices || !markPrices[symbol] || !orders || !accountInfo)
45
- return 0;
51
+ if (!markPrices || !markPrices[symbol] || !orders || !accountInfo) return 0;
46
52
  const getSymbolInfo = symbolInfo[symbol];
47
- const filterAlgoOrders = orders.filter((item) => item.algo_order_id === undefined);
53
+ const filterAlgoOrders = orders.filter((item)=>item.algo_order_id === undefined);
48
54
  // current symbol buy order quantity
49
55
  const buyOrdersQty = account.getQtyFromOrdersBySide(filterAlgoOrders, symbol, OrderSide.BUY);
50
56
  // current symbol sell order quantity
51
57
  const sellOrdersQty = account.getQtyFromOrdersBySide(filterAlgoOrders, symbol, OrderSide.SELL);
52
- const otherPositions = positions.filter((item) => item.symbol !== symbol);
53
- const otherOrders = filterAlgoOrders.filter((item) => item.symbol !== symbol);
58
+ const otherPositions = positions.filter((item)=>item.symbol !== symbol);
59
+ const otherOrders = filterAlgoOrders.filter((item)=>item.symbol !== symbol);
54
60
  const otherIMs = account.otherIMs({
55
61
  orders: otherOrders,
56
62
  positions: otherPositions,
57
63
  symbolInfo,
58
64
  markPrices,
59
65
  IMR_Factors: accountInfo.imr_factor,
60
- maxLeverage: accountInfo.max_leverage,
66
+ maxLeverage: accountInfo.max_leverage
61
67
  });
62
68
  return account.maxQty(side, {
63
69
  markPrice: markPrices[symbol],
@@ -71,7 +77,7 @@ export const useMaxQty = (symbol, side, reduceOnly = false) => {
71
77
  positionQty,
72
78
  buyOrdersQty,
73
79
  sellOrdersQty,
74
- IMR_Factor: accountInfo.imr_factor[symbol],
80
+ IMR_Factor: accountInfo.imr_factor[symbol]
75
81
  });
76
82
  }, [
77
83
  orders,
@@ -82,7 +88,7 @@ export const useMaxQty = (symbol, side, reduceOnly = false) => {
82
88
  symbol,
83
89
  side,
84
90
  totalCollateral,
85
- reduceOnly,
91
+ reduceOnly
86
92
  ]);
87
93
  // debugPrint({
88
94
  // maxQty,
@@ -99,3 +105,5 @@ export const useMaxQty = (symbol, side, reduceOnly = false) => {
99
105
  // console.log("maxQty", maxQty);
100
106
  return Math.max(maxQty, 0);
101
107
  };
108
+
109
+ //# sourceMappingURL=useMaxQty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useMaxQty.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { type API, OrderSide, OrderStatus } from \"@orderly.network/types\";\n\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\n\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { account } from \"@orderly.network/perp\";\nimport { useCollateral } from \"./useCollateral\";\n\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport { usePositionStream } from \"./usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { useOrderStream } from \"./useOrderStream\";\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\n\n/**\n * @param symbol\n * @param side\n * @param reduceOnly\n * @returns the maximum quantity available for trading in USD\n */\nexport const useMaxQty = (\n symbol: string,\n side: OrderSide,\n reduceOnly: boolean = false\n) => {\n const positionsData = usePositionStream();\n\n // const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { totalCollateral } = useCollateral();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const maxQty = useMemo(() => {\n if (!symbol) return 0;\n\n const positions = positionsPath(positionsData);\n\n const positionQty = account.getQtyFromPositions(positions, symbol);\n\n if (reduceOnly) {\n if (positionQty > 0) {\n if (side === OrderSide.BUY) {\n return 0;\n } else {\n return Math.abs(positionQty);\n }\n }\n\n if (positionQty < 0) {\n if (side === OrderSide.BUY) {\n return Math.abs(positionQty);\n } else {\n return 0;\n }\n }\n\n return 0;\n }\n\n if (!markPrices || !markPrices[symbol] || !orders || !accountInfo) return 0;\n\n const getSymbolInfo = symbolInfo[symbol];\n\n const filterAlgoOrders = orders.filter(\n (item) => item.algo_order_id === undefined\n );\n\n // current symbol buy order quantity\n const buyOrdersQty = account.getQtyFromOrdersBySide(\n filterAlgoOrders,\n symbol,\n OrderSide.BUY\n );\n // current symbol sell order quantity\n const sellOrdersQty = account.getQtyFromOrdersBySide(\n filterAlgoOrders,\n symbol,\n OrderSide.SELL\n );\n\n const otherPositions = positions.filter(\n (item: API.Position) => item.symbol !== symbol\n );\n\n const otherOrders = filterAlgoOrders.filter(\n (item: API.Order) => item.symbol !== symbol\n );\n\n const otherIMs = account.otherIMs({\n orders: otherOrders,\n positions: otherPositions,\n symbolInfo,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n });\n\n return account.maxQty(side, {\n markPrice: markPrices[symbol],\n symbol,\n baseMaxQty: getSymbolInfo(\"base_max\"),\n totalCollateral,\n maxLeverage: accountInfo.max_leverage,\n takerFeeRate: accountInfo.futures_taker_fee_rate,\n baseIMR: getSymbolInfo(\"base_imr\"),\n otherIMs,\n positionQty,\n buyOrdersQty,\n sellOrdersQty,\n IMR_Factor: accountInfo.imr_factor[symbol],\n });\n }, [\n orders,\n positionsData,\n markPrices,\n accountInfo,\n symbolInfo,\n symbol,\n side,\n totalCollateral,\n reduceOnly,\n ]);\n\n // debugPrint({\n // maxQty,\n // totalCollateral,\n // side,\n // // reduceOnly,\n // orders: orders?.map((o) => o.quantity),\n // // positionsData,\n // // markPrices,\n // // accountInfo,\n // // symbolInfo,\n // // symbol,\n // });\n // console.log(\"maxQty\", maxQty);\n\n return Math.max(maxQty, 0) as number;\n};\n"],"names":["useMemo","OrderSide","OrderStatus","useSymbolsInfo","useMarkPricesStream","account","useCollateral","usePrivateQuery","usePositionStream","pathOr","useOrderStream","positionsPath","useMaxQty","symbol","side","reduceOnly","positionsData","data","accountInfo","symbolInfo","totalCollateral","markPrices","orders","status","NEW","maxQty","positions","positionQty","getQtyFromPositions","BUY","Math","abs","getSymbolInfo","filterAlgoOrders","filter","item","algo_order_id","undefined","buyOrdersQty","getQtyFromOrdersBySide","sellOrdersQty","SELL","otherPositions","otherOrders","otherIMs","IMR_Factors","imr_factor","maxLeverage","max_leverage","markPrice","baseMaxQty","takerFeeRate","futures_taker_fee_rate","baseIMR","IMR_Factor","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,15 +1,17 @@
1
1
  import { useWS } from "../useWS";
2
2
  import useSWRSubscription from "swr/subscription";
3
- export const useOpenInterest = (symbol) => {
3
+ export const useOpenInterest = (symbol)=>{
4
4
  const ws = useWS();
5
- return useSWRSubscription(`${symbol}@openinterest`, (key, { next }) => {
5
+ return useSWRSubscription(`${symbol}@openinterest`, (key, { next })=>{
6
6
  const unsubscribe = ws.subscribe(`${symbol}@openinterest`, {
7
- onMessage: (message) => {
7
+ onMessage: (message)=>{
8
8
  next(null, message.openInterest);
9
- },
9
+ }
10
10
  });
11
- return () => {
11
+ return ()=>{
12
12
  unsubscribe?.();
13
13
  };
14
14
  });
15
15
  };
16
+
17
+ //# sourceMappingURL=useOpenInterest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useOpenInterest.ts"],"sourcesContent":["import { useWS } from \"../useWS\";\nimport useSWRSubscription from \"swr/subscription\";\n\nexport const useOpenInterest = (symbol: string) => {\n const ws = useWS();\n return useSWRSubscription(`${symbol}@openinterest`, (key, { next }) => {\n const unsubscribe = ws.subscribe(`${symbol}@openinterest`, {\n onMessage: (message: any) => {\n next(null, message.openInterest);\n },\n });\n\n return () => {\n unsubscribe?.();\n };\n });\n};\n"],"names":["useWS","useSWRSubscription","useOpenInterest","symbol","ws","key","next","unsubscribe","subscribe","onMessage","message","openInterest"],"rangeMappings":";;;;;;;;;;;;;;","mappings":"AAAA,SAASA,KAAK,QAAQ,WAAW;AACjC,OAAOC,wBAAwB,mBAAmB;AAElD,OAAO,MAAMC,kBAAkB,CAACC;IAC9B,MAAMC,KAAKJ;IACX,OAAOC,mBAAmB,CAAC,EAAEE,OAAO,aAAa,CAAC,EAAE,CAACE,KAAK,EAAEC,IAAI,EAAE;QAChE,MAAMC,cAAcH,GAAGI,SAAS,CAAC,CAAC,EAAEL,OAAO,aAAa,CAAC,EAAE;YACzDM,WAAW,CAACC;gBACVJ,KAAK,MAAMI,QAAQC,YAAY;YACjC;QACF;QAEA,OAAO;YACLJ;QACF;IACF;AACF,EAAE"}