@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
@@ -9,57 +9,56 @@ import { pathOr, propOr } from "ramda";
9
9
  import { parseHolding } from "../utils/parseHolding";
10
10
  import { zero } from "@orderly.network/utils";
11
11
  import { useMarketsStream } from "./useMarketsStream";
12
- export const usePositionStream = (
13
- /**
14
- * If symbol is passed, only the position of that symbol will be returned.
15
- */
16
- symbol, options) => {
12
+ export const usePositionStream = (/**
13
+ * If symbol is passed, only the position of that symbol will be returned.
14
+ */ symbol, options)=>{
17
15
  const symbolInfo = useSymbolsInfo();
18
16
  const { data: accountInfo } = usePrivateQuery("/v1/client/info");
19
17
  const { data: holding } = usePrivateQuery("/v1/client/holding", {
20
- formatter: (data) => {
18
+ formatter: (data)=>{
21
19
  return data.holding;
22
- },
20
+ }
23
21
  });
24
22
  const fundingRates = useFundingRates();
25
- const { data, error, mutate: refreshPositions, } = usePrivateQuery(`/v1/positions`, {
23
+ const { data, error, mutate: refreshPositions } = usePrivateQuery(`/v1/positions`, {
26
24
  // revalidateOnFocus: false,
27
25
  // revalidateOnReconnect: false,
28
26
  // dedupingInterval: 200,
29
27
  // keepPreviousData: false,
30
28
  // revalidateIfStale: true,
31
29
  ...options,
32
- formatter: (data) => data,
33
- onError: (err) => { },
30
+ formatter: (data)=>data,
31
+ onError: (err)=>{}
34
32
  });
35
33
  const { data: markPrices } = useMarkPricesStream();
36
34
  const [priceMode, setPriceMode] = useState(options?.calcMode || "markPrice");
37
- useEffect(() => {
35
+ useEffect(()=>{
38
36
  if (options?.calcMode && priceMode !== options?.calcMode) {
39
37
  setPriceMode(options?.calcMode);
40
38
  }
41
- }, [options?.calcMode]);
39
+ }, [
40
+ options?.calcMode
41
+ ]);
42
42
  const { data: tickers } = useMarketsStream();
43
43
  // console.log("mark prices", markPrices);
44
44
  // console.log("tickers", tickers);
45
- const tickerPrices = useMemo(() => {
45
+ const tickerPrices = useMemo(()=>{
46
46
  const data = Object.create(null);
47
- tickers?.forEach((item) => {
47
+ tickers?.forEach((item)=>{
48
48
  // @ts-ignore
49
49
  data[item.symbol] = item["24h_close"];
50
50
  });
51
51
  return data;
52
- }, [tickers]);
53
- const formatedPositions = useMemo(() => {
54
- if (!data?.rows || symbolInfo.isNil || !accountInfo)
55
- return null;
56
- const filteredData = typeof symbol === "undefined" || symbol === ""
57
- ? data.rows
58
- : data.rows.filter((item) => {
59
- return item.symbol === symbol;
60
- });
52
+ }, [
53
+ tickers
54
+ ]);
55
+ const formatedPositions = useMemo(()=>{
56
+ if (!data?.rows || symbolInfo.isNil || !accountInfo) return null;
57
+ const filteredData = typeof symbol === "undefined" || symbol === "" ? data.rows : data.rows.filter((item)=>{
58
+ return item.symbol === symbol;
59
+ });
61
60
  let unrealPnL_total = zero, notional_total = zero, unsettlementPnL_total = zero;
62
- const formatted = filteredData.map((item) => {
61
+ const formatted = filteredData.map((item)=>{
63
62
  // const price = (markPrices as any)[item.symbol] ?? item.mark_price;
64
63
  const unRealizedPrice = propOr(item.mark_price, item.symbol, priceMode === "markPrice" ? markPrices : tickerPrices);
65
64
  const price = propOr(item.mark_price, item.symbol, markPrices);
@@ -69,7 +68,7 @@ symbol, options) => {
69
68
  const unrealPnl = positions.unrealizedPnL({
70
69
  qty: item.position_qty,
71
70
  openPrice: item?.average_open_price,
72
- markPrice: unRealizedPrice,
71
+ markPrice: unRealizedPrice
73
72
  });
74
73
  const imr = account.IMR({
75
74
  maxLeverage: accountInfo.max_leverage,
@@ -77,20 +76,20 @@ symbol, options) => {
77
76
  IMR_Factor: accountInfo.imr_factor[item.symbol],
78
77
  positionNotional: notional,
79
78
  ordersNotional: 0,
80
- IMR_factor_power: 4 / 5,
79
+ IMR_factor_power: 4 / 5
81
80
  });
82
81
  const unrealPnlROI = positions.unrealizedPnLROI({
83
82
  positionQty: item.position_qty,
84
83
  openPrice: item.average_open_price,
85
84
  IMR: imr,
86
- unrealizedPnL: unrealPnl,
85
+ unrealizedPnL: unrealPnl
87
86
  });
88
87
  const unsettlementPnL = positions.unsettlementPnL({
89
88
  positionQty: item.position_qty,
90
89
  markPrice: price,
91
90
  costPosition: item.cost_position,
92
91
  sumUnitaryFunding: fundingRates[item.symbol]?.("sum_unitary_funding", 0),
93
- lastSumUnitaryFunding: item.last_sum_unitary_funding,
92
+ lastSumUnitaryFunding: item.last_sum_unitary_funding
94
93
  });
95
94
  unrealPnL_total = unrealPnL_total.add(unrealPnl);
96
95
  notional_total = notional_total.add(notional);
@@ -102,7 +101,7 @@ symbol, options) => {
102
101
  notional,
103
102
  unsettlement_pnl: unsettlementPnL,
104
103
  unrealized_pnl: unrealPnl,
105
- unrealized_pnl_ROI: unrealPnlROI,
104
+ unrealized_pnl_ROI: unrealPnlROI
106
105
  };
107
106
  });
108
107
  return [
@@ -110,8 +109,8 @@ symbol, options) => {
110
109
  {
111
110
  unrealPnL: unrealPnL_total.toNumber(),
112
111
  notional: notional_total.toNumber(),
113
- unsettledPnL: unsettlementPnL_total.toNumber(),
114
- },
112
+ unsettledPnL: unsettlementPnL_total.toNumber()
113
+ }
115
114
  ];
116
115
  }, [
117
116
  data?.rows,
@@ -121,57 +120,71 @@ symbol, options) => {
121
120
  priceMode,
122
121
  tickerPrices,
123
122
  symbol,
124
- holding,
123
+ holding
125
124
  ]);
126
125
  // const showSymbol = useCallback((symbol: string) => {
127
126
  // setVisibleSymbol(symbol);
128
127
  // }, []);
129
- const [totalCollateral, totalValue, totalUnrealizedROI] = useMemo(() => {
128
+ const [totalCollateral, totalValue, totalUnrealizedROI] = useMemo(()=>{
130
129
  if (!holding || !markPrices) {
131
- return [zero, zero, 0];
130
+ return [
131
+ zero,
132
+ zero,
133
+ 0
134
+ ];
132
135
  }
133
- const unsettlemnedPnL = pathOr(0, [1, "unsettledPnL"])(formatedPositions);
134
- const unrealizedPnL = pathOr(0, [1, "unrealPnL"])(formatedPositions);
136
+ const unsettlemnedPnL = pathOr(0, [
137
+ 1,
138
+ "unsettledPnL"
139
+ ])(formatedPositions);
140
+ const unrealizedPnL = pathOr(0, [
141
+ 1,
142
+ "unrealPnL"
143
+ ])(formatedPositions);
135
144
  const [USDC_holding, nonUSDC] = parseHolding(holding, markPrices);
136
145
  const totalCollateral = account.totalCollateral({
137
146
  USDCHolding: USDC_holding,
138
147
  nonUSDCHolding: nonUSDC,
139
- unsettlementPnL: unsettlemnedPnL,
148
+ unsettlementPnL: unsettlemnedPnL
140
149
  });
141
150
  const totalValue = account.totalValue({
142
151
  totalUnsettlementPnL: unsettlemnedPnL,
143
152
  USDCHolding: USDC_holding,
144
- nonUSDCHolding: nonUSDC,
153
+ nonUSDCHolding: nonUSDC
145
154
  });
146
155
  const totalUnrealizedROI = account.totalUnrealizedROI({
147
156
  totalUnrealizedPnL: unrealizedPnL,
148
- totalValue: totalValue.toNumber(),
157
+ totalValue: totalValue.toNumber()
149
158
  });
150
- return [totalCollateral, totalValue, totalUnrealizedROI];
151
- }, [holding, formatedPositions, markPrices]);
152
- const positionsRows = useMemo(() => {
153
- if (!formatedPositions)
154
- return null;
155
- if (!symbolInfo || !accountInfo)
156
- return formatedPositions[0];
159
+ return [
160
+ totalCollateral,
161
+ totalValue,
162
+ totalUnrealizedROI
163
+ ];
164
+ }, [
165
+ holding,
166
+ formatedPositions,
167
+ markPrices
168
+ ]);
169
+ const positionsRows = useMemo(()=>{
170
+ if (!formatedPositions) return null;
171
+ if (!symbolInfo || !accountInfo) return formatedPositions[0];
157
172
  const total = totalCollateral.toNumber();
158
- let rows = formatedPositions[0]
159
- .filter((item) => item.position_qty !== 0)
160
- .map((item) => {
173
+ let rows = formatedPositions[0].filter((item)=>item.position_qty !== 0).map((item)=>{
161
174
  const info = symbolInfo?.[item.symbol];
162
175
  const MMR = positions.MMR({
163
176
  baseMMR: info("base_mmr"),
164
177
  baseIMR: info("base_imr"),
165
178
  IMRFactor: accountInfo.imr_factor[item.symbol],
166
179
  positionNotional: item.notional,
167
- IMR_factor_power: 4 / 5,
180
+ IMR_factor_power: 4 / 5
168
181
  });
169
182
  return {
170
183
  ...item,
171
184
  mm: positions.maintenanceMargin({
172
185
  positionQty: item.position_qty,
173
186
  markPrice: item.mark_price,
174
- MMR,
187
+ MMR
175
188
  }),
176
189
  // est_liq_price: positions.liqPrice({
177
190
  // markPrice: item.mark_price,
@@ -179,25 +192,30 @@ symbol, options) => {
179
192
  // positionQty: item.position_qty,
180
193
  // MMR,
181
194
  // }),
182
- mmr: MMR,
195
+ mmr: MMR
183
196
  };
184
197
  });
185
198
  // calculate est_liq_price
186
- rows = rows.map((item) => {
199
+ rows = rows.map((item)=>{
187
200
  const est_liq_price = positions.liqPrice({
188
201
  markPrice: item.mark_price,
189
202
  totalCollateral: total,
190
203
  positionQty: item.position_qty,
191
204
  positions: rows,
192
- MMR: item.mmr,
205
+ MMR: item.mmr
193
206
  });
194
207
  return {
195
208
  ...item,
196
- est_liq_price,
209
+ est_liq_price
197
210
  };
198
211
  });
199
212
  return rows;
200
- }, [formatedPositions, symbolInfo, accountInfo, totalCollateral]);
213
+ }, [
214
+ formatedPositions,
215
+ symbolInfo,
216
+ accountInfo,
217
+ totalCollateral
218
+ ]);
201
219
  // useEffect(() => {
202
220
  // ee.on("positions:changed", () => {
203
221
  // updatePositions();
@@ -208,12 +226,12 @@ symbol, options) => {
208
226
  {
209
227
  rows: positionsRows,
210
228
  aggregated: {
211
- ...(formatedPositions?.[1] ?? {}),
212
- unrealPnlROI: totalUnrealizedROI,
229
+ ...formatedPositions?.[1] ?? {},
230
+ unrealPnlROI: totalUnrealizedROI
213
231
  },
214
232
  totalCollateral,
215
233
  totalValue,
216
- totalUnrealizedROI,
234
+ totalUnrealizedROI
217
235
  },
218
236
  positionInfoGetter,
219
237
  {
@@ -222,12 +240,14 @@ symbol, options) => {
222
240
  // showSymbol,
223
241
  error,
224
242
  // loadMore: () => {},
225
- refresh: refreshPositions,
226
- },
243
+ refresh: refreshPositions
244
+ }
227
245
  ];
228
246
  };
229
247
  export const pathOr_unsettledPnLPathOr = pathOr(0, [
230
248
  0,
231
249
  "aggregated",
232
- "unsettledPnL",
250
+ "unsettledPnL"
233
251
  ]);
252
+
253
+ //# sourceMappingURL=usePositionStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/usePositionStream.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState, useRef } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { type SWRConfiguration } from \"swr\";\nimport useSWRSubscription from \"swr/subscription\";\nimport { createGetter } from \"../utils/createGetter\";\nimport { useFundingRates } from \"./useFundingRates\";\nimport { type API, OrderEntity } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { pathOr, propOr } from \"ramda\";\nimport { parseHolding } from \"../utils/parseHolding\";\nimport { Decimal, zero } from \"@orderly.network/utils\";\nimport { useWS } from \"../useWS\";\nimport { useMarketsStream } from \"./useMarketsStream\";\n\ntype PriceMode = \"markPrice\" | \"lastPrice\";\n\nexport interface PositionReturn {\n data: any[];\n loading: boolean;\n close: (\n order: Pick<OrderEntity, \"order_type\" | \"order_price\" | \"side\">\n ) => void;\n}\n\nexport const usePositionStream = (\n /**\n * If symbol is passed, only the position of that symbol will be returned.\n */\n symbol?: string,\n options?: SWRConfiguration & { calcMode?: PriceMode }\n) => {\n const symbolInfo = useSymbolsInfo();\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const { data: holding } = usePrivateQuery<API.Holding[]>(\n \"/v1/client/holding\",\n {\n formatter: (data) => {\n return data.holding;\n },\n }\n );\n\n const fundingRates = useFundingRates();\n\n const {\n data,\n error,\n mutate: refreshPositions,\n } = usePrivateQuery<API.PositionInfo>(`/v1/positions`, {\n // revalidateOnFocus: false,\n // revalidateOnReconnect: false,\n // dedupingInterval: 200,\n // keepPreviousData: false,\n // revalidateIfStale: true,\n ...options,\n\n formatter: (data) => data,\n onError: (err) => {},\n });\n\n const { data: markPrices } = useMarkPricesStream();\n\n const [priceMode, setPriceMode] = useState(options?.calcMode || \"markPrice\");\n\n useEffect(() => {\n if (options?.calcMode && priceMode !== options?.calcMode) {\n setPriceMode(options?.calcMode);\n }\n }, [options?.calcMode]);\n\n const { data: tickers } = useMarketsStream();\n // console.log(\"mark prices\", markPrices);\n // console.log(\"tickers\", tickers);\n\n const tickerPrices = useMemo(() => {\n const data: Record<string, number> = Object.create(null);\n tickers?.forEach((item) => {\n // @ts-ignore\n data[item.symbol] = item[\"24h_close\"];\n });\n return data;\n }, [tickers]);\n\n const formatedPositions = useMemo<[API.PositionExt[], any] | null>(() => {\n if (!data?.rows || symbolInfo.isNil || !accountInfo) return null;\n\n const filteredData =\n typeof symbol === \"undefined\" || symbol === \"\"\n ? data.rows\n : data.rows.filter((item) => {\n return item.symbol === symbol;\n });\n\n let unrealPnL_total = zero,\n notional_total = zero,\n unsettlementPnL_total = zero;\n\n const formatted = filteredData.map((item: API.Position) => {\n // const price = (markPrices as any)[item.symbol] ?? item.mark_price;\n const unRealizedPrice = propOr(\n item.mark_price,\n item.symbol,\n priceMode === \"markPrice\" ? markPrices : tickerPrices\n ) as unknown as number;\n\n const price = propOr(\n item.mark_price,\n item.symbol,\n markPrices\n ) as unknown as number;\n\n const info = symbolInfo[item.symbol];\n //\n\n const notional = positions.notional(item.position_qty, price);\n\n const unrealPnl = positions.unrealizedPnL({\n qty: item.position_qty,\n openPrice: item?.average_open_price,\n markPrice: unRealizedPrice,\n });\n\n const imr = account.IMR({\n maxLeverage: accountInfo.max_leverage,\n baseIMR: info(\"base_imr\"),\n IMR_Factor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: notional,\n ordersNotional: 0,\n IMR_factor_power: 4 / 5,\n });\n\n const unrealPnlROI = positions.unrealizedPnLROI({\n positionQty: item.position_qty,\n openPrice: item.average_open_price,\n IMR: imr,\n unrealizedPnL: unrealPnl,\n });\n\n const unsettlementPnL = positions.unsettlementPnL({\n positionQty: item.position_qty,\n markPrice: price,\n costPosition: item.cost_position,\n sumUnitaryFunding: fundingRates[item.symbol]?.(\n \"sum_unitary_funding\",\n 0\n ),\n lastSumUnitaryFunding: item.last_sum_unitary_funding,\n });\n\n unrealPnL_total = unrealPnL_total.add(unrealPnl);\n notional_total = notional_total.add(notional);\n unsettlementPnL_total = unsettlementPnL_total.add(unsettlementPnL);\n\n return {\n ...item,\n mark_price: price,\n mm: 0,\n notional,\n unsettlement_pnl: unsettlementPnL,\n unrealized_pnl: unrealPnl,\n unrealized_pnl_ROI: unrealPnlROI,\n };\n });\n\n return [\n formatted,\n {\n unrealPnL: unrealPnL_total.toNumber(),\n notional: notional_total.toNumber(),\n unsettledPnL: unsettlementPnL_total.toNumber(),\n },\n ];\n }, [\n data?.rows,\n symbolInfo,\n accountInfo,\n markPrices,\n priceMode,\n tickerPrices,\n symbol,\n holding,\n ]);\n\n // const showSymbol = useCallback((symbol: string) => {\n // setVisibleSymbol(symbol);\n // }, []);\n\n const [totalCollateral, totalValue, totalUnrealizedROI] = useMemo<\n [Decimal, Decimal, number]\n >(() => {\n if (!holding || !markPrices) {\n return [zero, zero, 0];\n }\n const unsettlemnedPnL = pathOr(0, [1, \"unsettledPnL\"])(formatedPositions);\n const unrealizedPnL = pathOr(0, [1, \"unrealPnL\"])(formatedPositions);\n\n const [USDC_holding, nonUSDC] = parseHolding(holding, markPrices);\n\n const totalCollateral = account.totalCollateral({\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n unsettlementPnL: unsettlemnedPnL,\n });\n\n const totalValue = account.totalValue({\n totalUnsettlementPnL: unsettlemnedPnL,\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n });\n\n const totalUnrealizedROI = account.totalUnrealizedROI({\n totalUnrealizedPnL: unrealizedPnL,\n totalValue: totalValue.toNumber(),\n });\n\n return [totalCollateral, totalValue, totalUnrealizedROI];\n }, [holding, formatedPositions, markPrices]);\n\n const positionsRows = useMemo(() => {\n if (!formatedPositions) return null;\n\n if (!symbolInfo || !accountInfo) return formatedPositions[0];\n\n const total = totalCollateral.toNumber();\n\n let rows = formatedPositions[0]\n .filter((item) => item.position_qty !== 0)\n .map((item) => {\n const info = symbolInfo?.[item.symbol];\n\n const MMR = positions.MMR({\n baseMMR: info(\"base_mmr\"),\n baseIMR: info(\"base_imr\"),\n IMRFactor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: item.notional,\n IMR_factor_power: 4 / 5,\n });\n\n return {\n ...item,\n mm: positions.maintenanceMargin({\n positionQty: item.position_qty,\n markPrice: item.mark_price,\n MMR,\n }),\n // est_liq_price: positions.liqPrice({\n // markPrice: item.mark_price,\n // totalCollateral: total,\n // positionQty: item.position_qty,\n // MMR,\n // }),\n mmr: MMR,\n };\n });\n\n // calculate est_liq_price\n rows = rows.map((item) => {\n const est_liq_price = positions.liqPrice({\n markPrice: item.mark_price,\n totalCollateral: total,\n positionQty: item.position_qty,\n positions: rows,\n MMR: item.mmr,\n });\n return {\n ...item,\n est_liq_price,\n };\n });\n\n return rows;\n }, [formatedPositions, symbolInfo, accountInfo, totalCollateral]);\n\n // useEffect(() => {\n // ee.on(\"positions:changed\", () => {\n // updatePositions();\n // });\n // }, []);\n\n const positionInfoGetter = createGetter<\n Omit<API.PositionInfo, \"rows\">,\n keyof Omit<API.PositionInfo, \"rows\">\n >(data as any, 1);\n\n return [\n {\n rows: positionsRows,\n aggregated: {\n ...(formatedPositions?.[1] ?? {}),\n unrealPnlROI: totalUnrealizedROI,\n },\n totalCollateral,\n totalValue,\n totalUnrealizedROI,\n },\n positionInfoGetter,\n {\n // close: onClosePosition,\n loading: false,\n // showSymbol,\n error,\n // loadMore: () => {},\n refresh: refreshPositions,\n },\n ] as const;\n};\n\nexport const pathOr_unsettledPnLPathOr = pathOr(0, [\n 0,\n \"aggregated\",\n \"unsettledPnL\",\n]);\n"],"names":["useEffect","useMemo","useState","usePrivateQuery","account","positions","createGetter","useFundingRates","useSymbolsInfo","useMarkPricesStream","pathOr","propOr","parseHolding","zero","useMarketsStream","usePositionStream","symbol","options","symbolInfo","data","accountInfo","holding","formatter","fundingRates","error","mutate","refreshPositions","onError","err","markPrices","priceMode","setPriceMode","calcMode","tickers","tickerPrices","Object","create","forEach","item","formatedPositions","rows","isNil","filteredData","filter","unrealPnL_total","notional_total","unsettlementPnL_total","formatted","map","unRealizedPrice","mark_price","price","info","notional","position_qty","unrealPnl","unrealizedPnL","qty","openPrice","average_open_price","markPrice","imr","IMR","maxLeverage","max_leverage","baseIMR","IMR_Factor","imr_factor","positionNotional","ordersNotional","IMR_factor_power","unrealPnlROI","unrealizedPnLROI","positionQty","unsettlementPnL","costPosition","cost_position","sumUnitaryFunding","lastSumUnitaryFunding","last_sum_unitary_funding","add","mm","unsettlement_pnl","unrealized_pnl","unrealized_pnl_ROI","unrealPnL","toNumber","unsettledPnL","totalCollateral","totalValue","totalUnrealizedROI","unsettlemnedPnL","USDC_holding","nonUSDC","USDCHolding","nonUSDCHolding","totalUnsettlementPnL","totalUnrealizedPnL","positionsRows","total","MMR","baseMMR","IMRFactor","maintenanceMargin","mmr","est_liq_price","liqPrice","positionInfoGetter","aggregated","loading","refresh","pathOr_unsettledPnLPathOr"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAAsBA,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAgB,QAAQ;AAC1E,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,OAAO,EAAEC,SAAS,QAAQ,wBAAwB;AAG3D,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,MAAM,EAAEC,MAAM,QAAQ,QAAQ;AACvC,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAAkBC,IAAI,QAAQ,yBAAyB;AAEvD,SAASC,gBAAgB,QAAQ,qBAAqB;AAYtD,OAAO,MAAMC,oBAAoB,CAC/B;;GAEC,GACDC,QACAC;IAEA,MAAMC,aAAaV;IACnB,MAAM,EAAEW,MAAMC,WAAW,EAAE,GACzBjB,gBAAiC;IAEnC,MAAM,EAAEgB,MAAME,OAAO,EAAE,GAAGlB,gBACxB,sBACA;QACEmB,WAAW,CAACH;YACV,OAAOA,KAAKE,OAAO;QACrB;IACF;IAGF,MAAME,eAAehB;IAErB,MAAM,EACJY,IAAI,EACJK,KAAK,EACLC,QAAQC,gBAAgB,EACzB,GAAGvB,gBAAkC,CAAC,aAAa,CAAC,EAAE;QACrD,4BAA4B;QAC5B,gCAAgC;QAChC,yBAAyB;QACzB,2BAA2B;QAC3B,2BAA2B;QAC3B,GAAGc,OAAO;QAEVK,WAAW,CAACH,OAASA;QACrBQ,SAAS,CAACC,OAAS;IACrB;IAEA,MAAM,EAAET,MAAMU,UAAU,EAAE,GAAGpB;IAE7B,MAAM,CAACqB,WAAWC,aAAa,GAAG7B,SAASe,SAASe,YAAY;IAEhEhC,UAAU;QACR,IAAIiB,SAASe,YAAYF,cAAcb,SAASe,UAAU;YACxDD,aAAad,SAASe;QACxB;IACF,GAAG;QAACf,SAASe;KAAS;IAEtB,MAAM,EAAEb,MAAMc,OAAO,EAAE,GAAGnB;IAC1B,0CAA0C;IAC1C,mCAAmC;IAEnC,MAAMoB,eAAejC,QAAQ;QAC3B,MAAMkB,OAA+BgB,OAAOC,MAAM,CAAC;QACnDH,SAASI,QAAQ,CAACC;YAChB,aAAa;YACbnB,IAAI,CAACmB,KAAKtB,MAAM,CAAC,GAAGsB,IAAI,CAAC,YAAY;QACvC;QACA,OAAOnB;IACT,GAAG;QAACc;KAAQ;IAEZ,MAAMM,oBAAoBtC,QAAyC;QACjE,IAAI,CAACkB,MAAMqB,QAAQtB,WAAWuB,KAAK,IAAI,CAACrB,aAAa,OAAO;QAE5D,MAAMsB,eACJ,OAAO1B,WAAW,eAAeA,WAAW,KACxCG,KAAKqB,IAAI,GACTrB,KAAKqB,IAAI,CAACG,MAAM,CAAC,CAACL;YAChB,OAAOA,KAAKtB,MAAM,KAAKA;QACzB;QAEN,IAAI4B,kBAAkB/B,MACpBgC,iBAAiBhC,MACjBiC,wBAAwBjC;QAE1B,MAAMkC,YAAYL,aAAaM,GAAG,CAAC,CAACV;YAClC,qEAAqE;YACrE,MAAMW,kBAAkBtC,OACtB2B,KAAKY,UAAU,EACfZ,KAAKtB,MAAM,EACXc,cAAc,cAAcD,aAAaK;YAG3C,MAAMiB,QAAQxC,OACZ2B,KAAKY,UAAU,EACfZ,KAAKtB,MAAM,EACXa;YAGF,MAAMuB,OAAOlC,UAAU,CAACoB,KAAKtB,MAAM,CAAC;YACpC,EAAE;YAEF,MAAMqC,WAAWhD,UAAUgD,QAAQ,CAACf,KAAKgB,YAAY,EAAEH;YAEvD,MAAMI,YAAYlD,UAAUmD,aAAa,CAAC;gBACxCC,KAAKnB,KAAKgB,YAAY;gBACtBI,WAAWpB,MAAMqB;gBACjBC,WAAWX;YACb;YAEA,MAAMY,MAAMzD,QAAQ0D,GAAG,CAAC;gBACtBC,aAAa3C,YAAY4C,YAAY;gBACrCC,SAASb,KAAK;gBACdc,YAAY9C,YAAY+C,UAAU,CAAC7B,KAAKtB,MAAM,CAAC;gBAC/CoD,kBAAkBf;gBAClBgB,gBAAgB;gBAChBC,kBAAkB,IAAI;YACxB;YAEA,MAAMC,eAAelE,UAAUmE,gBAAgB,CAAC;gBAC9CC,aAAanC,KAAKgB,YAAY;gBAC9BI,WAAWpB,KAAKqB,kBAAkB;gBAClCG,KAAKD;gBACLL,eAAeD;YACjB;YAEA,MAAMmB,kBAAkBrE,UAAUqE,eAAe,CAAC;gBAChDD,aAAanC,KAAKgB,YAAY;gBAC9BM,WAAWT;gBACXwB,cAAcrC,KAAKsC,aAAa;gBAChCC,mBAAmBtD,YAAY,CAACe,KAAKtB,MAAM,CAAC,GAC1C,uBACA;gBAEF8D,uBAAuBxC,KAAKyC,wBAAwB;YACtD;YAEAnC,kBAAkBA,gBAAgBoC,GAAG,CAACzB;YACtCV,iBAAiBA,eAAemC,GAAG,CAAC3B;YACpCP,wBAAwBA,sBAAsBkC,GAAG,CAACN;YAElD,OAAO;gBACL,GAAGpC,IAAI;gBACPY,YAAYC;gBACZ8B,IAAI;gBACJ5B;gBACA6B,kBAAkBR;gBAClBS,gBAAgB5B;gBAChB6B,oBAAoBb;YACtB;QACF;QAEA,OAAO;YACLxB;YACA;gBACEsC,WAAWzC,gBAAgB0C,QAAQ;gBACnCjC,UAAUR,eAAeyC,QAAQ;gBACjCC,cAAczC,sBAAsBwC,QAAQ;YAC9C;SACD;IACH,GAAG;QACDnE,MAAMqB;QACNtB;QACAE;QACAS;QACAC;QACAI;QACAlB;QACAK;KACD;IAED,uDAAuD;IACvD,8BAA8B;IAC9B,UAAU;IAEV,MAAM,CAACmE,iBAAiBC,YAAYC,mBAAmB,GAAGzF,QAExD;QACA,IAAI,CAACoB,WAAW,CAACQ,YAAY;YAC3B,OAAO;gBAAChB;gBAAMA;gBAAM;aAAE;QACxB;QACA,MAAM8E,kBAAkBjF,OAAO,GAAG;YAAC;YAAG;SAAe,EAAE6B;QACvD,MAAMiB,gBAAgB9C,OAAO,GAAG;YAAC;YAAG;SAAY,EAAE6B;QAElD,MAAM,CAACqD,cAAcC,QAAQ,GAAGjF,aAAaS,SAASQ;QAEtD,MAAM2D,kBAAkBpF,QAAQoF,eAAe,CAAC;YAC9CM,aAAaF;YACbG,gBAAgBF;YAChBnB,iBAAiBiB;QACnB;QAEA,MAAMF,aAAarF,QAAQqF,UAAU,CAAC;YACpCO,sBAAsBL;YACtBG,aAAaF;YACbG,gBAAgBF;QAClB;QAEA,MAAMH,qBAAqBtF,QAAQsF,kBAAkB,CAAC;YACpDO,oBAAoBzC;YACpBiC,YAAYA,WAAWH,QAAQ;QACjC;QAEA,OAAO;YAACE;YAAiBC;YAAYC;SAAmB;IAC1D,GAAG;QAACrE;QAASkB;QAAmBV;KAAW;IAE3C,MAAMqE,gBAAgBjG,QAAQ;QAC5B,IAAI,CAACsC,mBAAmB,OAAO;QAE/B,IAAI,CAACrB,cAAc,CAACE,aAAa,OAAOmB,iBAAiB,CAAC,EAAE;QAE5D,MAAM4D,QAAQX,gBAAgBF,QAAQ;QAEtC,IAAI9C,OAAOD,iBAAiB,CAAC,EAAE,CAC5BI,MAAM,CAAC,CAACL,OAASA,KAAKgB,YAAY,KAAK,GACvCN,GAAG,CAAC,CAACV;YACJ,MAAMc,OAAOlC,YAAY,CAACoB,KAAKtB,MAAM,CAAC;YAEtC,MAAMoF,MAAM/F,UAAU+F,GAAG,CAAC;gBACxBC,SAASjD,KAAK;gBACda,SAASb,KAAK;gBACdkD,WAAWlF,YAAY+C,UAAU,CAAC7B,KAAKtB,MAAM,CAAC;gBAC9CoD,kBAAkB9B,KAAKe,QAAQ;gBAC/BiB,kBAAkB,IAAI;YACxB;YAEA,OAAO;gBACL,GAAGhC,IAAI;gBACP2C,IAAI5E,UAAUkG,iBAAiB,CAAC;oBAC9B9B,aAAanC,KAAKgB,YAAY;oBAC9BM,WAAWtB,KAAKY,UAAU;oBAC1BkD;gBACF;gBACA,sCAAsC;gBACtC,gCAAgC;gBAChC,4BAA4B;gBAC5B,oCAAoC;gBACpC,SAAS;gBACT,MAAM;gBACNI,KAAKJ;YACP;QACF;QAEF,0BAA0B;QAC1B5D,OAAOA,KAAKQ,GAAG,CAAC,CAACV;YACf,MAAMmE,gBAAgBpG,UAAUqG,QAAQ,CAAC;gBACvC9C,WAAWtB,KAAKY,UAAU;gBAC1BsC,iBAAiBW;gBACjB1B,aAAanC,KAAKgB,YAAY;gBAC9BjD,WAAWmC;gBACX4D,KAAK9D,KAAKkE,GAAG;YACf;YACA,OAAO;gBACL,GAAGlE,IAAI;gBACPmE;YACF;QACF;QAEA,OAAOjE;IACT,GAAG;QAACD;QAAmBrB;QAAYE;QAAaoE;KAAgB;IAEhE,oBAAoB;IACpB,uCAAuC;IACvC,yBAAyB;IACzB,QAAQ;IACR,UAAU;IAEV,MAAMmB,qBAAqBrG,aAGzBa,MAAa;IAEf,OAAO;QACL;YACEqB,MAAM0D;YACNU,YAAY;gBACV,GAAIrE,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;gBAChCgC,cAAcmB;YAChB;YACAF;YACAC;YACAC;QACF;QACAiB;QACA;YACE,0BAA0B;YAC1BE,SAAS;YACT,cAAc;YACdrF;YACA,sBAAsB;YACtBsF,SAASpF;QACX;KACD;AACH,EAAE;AAEF,OAAO,MAAMqF,4BAA4BrG,OAAO,GAAG;IACjD;IACA;IACA;CACD,EAAE"}
@@ -5,37 +5,37 @@ import { useAccount } from "../useAccount";
5
5
  import { unstable_serialize } from "swr/infinite";
6
6
  import { useEventEmitter } from "../useEventEmitter";
7
7
  import { updateOrdersHandler } from "../utils/swr";
8
- export const usePrivateDataObserver = (options) => {
8
+ export const usePrivateDataObserver = (options)=>{
9
9
  const ws = useWS();
10
10
  // const { mutate } = useSWRConfig();
11
11
  const ee = useEventEmitter();
12
12
  const { state } = useAccount();
13
13
  // TODO: remove this when the WS service provides the correct data
14
14
  const algoOrderCacheQuneue = useRef([]);
15
- const updateOrders = (data, isAlgoOrder) => {
15
+ const updateOrders = (data, isAlgoOrder)=>{
16
16
  const map = options.getKeysMap("orders");
17
17
  // console.log("$$$$$$$$$$$$", data, algoOrderCacheQuneue.current);
18
18
  if (isAlgoOrder) {
19
19
  /// TODO: remove this when the WS service provides the correct data
20
20
  if (algoOrderCacheQuneue.current.length) {
21
- const index = algoOrderCacheQuneue.current.findIndex((item) => item.order_id === data.algoOrderId);
21
+ const index = algoOrderCacheQuneue.current.findIndex((item)=>item.order_id === data.algoOrderId);
22
22
  if (index > -1) {
23
23
  data = {
24
24
  ...data,
25
- ...algoOrderCacheQuneue.current[index],
25
+ ...algoOrderCacheQuneue.current[index]
26
26
  };
27
27
  algoOrderCacheQuneue.current.splice(index, 1);
28
28
  }
29
29
  }
30
30
  }
31
- map.forEach((getKey, key) => {
32
- mutate(unstable_serialize((index, prevData) => [
33
- getKey(index, prevData),
34
- state.accountId,
35
- ]), (prevData) => {
31
+ map.forEach((getKey, key)=>{
32
+ mutate(unstable_serialize((index, prevData)=>[
33
+ getKey(index, prevData),
34
+ state.accountId
35
+ ]), (prevData)=>{
36
36
  return updateOrdersHandler(key, data, prevData);
37
37
  }, {
38
- revalidate: false,
38
+ revalidate: false
39
39
  });
40
40
  });
41
41
  // emit events;
@@ -45,59 +45,62 @@ export const usePrivateDataObserver = (options) => {
45
45
  // });
46
46
  ee.emit("orders:changed", {
47
47
  ...data,
48
- status: data.status || data.algoStatus,
48
+ status: data.status || data.algoStatus
49
49
  });
50
50
  };
51
51
  // orders
52
- useEffect(() => {
53
- if (!state.accountId)
54
- return;
52
+ useEffect(()=>{
53
+ if (!state.accountId) return;
55
54
  const unsubscribe = ws.privateSubscribe("executionreport", {
56
- onMessage: (data) => {
55
+ onMessage: (data)=>{
57
56
  updateOrders(data, false);
58
- },
57
+ }
59
58
  });
60
- return () => unsubscribe?.();
61
- }, [state.accountId]);
59
+ return ()=>unsubscribe?.();
60
+ }, [
61
+ state.accountId
62
+ ]);
62
63
  // algo orders
63
- useEffect(() => {
64
- if (!state.accountId)
65
- return;
64
+ useEffect(()=>{
65
+ if (!state.accountId) return;
66
66
  const unsubscribe = ws.privateSubscribe("algoexecutionreport", {
67
- onMessage: (data) => {
68
- setTimeout(() => {
67
+ onMessage: (data)=>{
68
+ setTimeout(()=>{
69
69
  if (Array.isArray(data)) {
70
- data.forEach((item) => {
70
+ data.forEach((item)=>{
71
71
  updateOrders(item, true);
72
- // ee.emit("orders:changed", { ...item, status: item.algoStatus });
72
+ // ee.emit("orders:changed", { ...item, status: item.algoStatus });
73
73
  });
74
- }
75
- else {
74
+ } else {
76
75
  updateOrders(data, true);
77
- // ee.emit("orders:changed", { ...data, status: data.algoStatus });
76
+ // ee.emit("orders:changed", { ...data, status: data.algoStatus });
78
77
  }
79
78
  }, 100);
80
- },
79
+ }
81
80
  });
82
- return () => unsubscribe?.();
83
- }, [state.accountId]);
81
+ return ()=>unsubscribe?.();
82
+ }, [
83
+ state.accountId
84
+ ]);
84
85
  // positions
85
- useEffect(() => {
86
- if (!state.accountId)
87
- return;
88
- const key = ["/v1/positions", state.accountId];
86
+ useEffect(()=>{
87
+ if (!state.accountId) return;
88
+ const key = [
89
+ "/v1/positions",
90
+ state.accountId
91
+ ];
89
92
  const unsubscribe = ws.privateSubscribe("position", {
90
- onMessage: (data) => {
93
+ onMessage: (data)=>{
91
94
  const { positions: nextPostions } = data;
92
95
  // console.log("ws----- positions data-----", data);
93
96
  // updatePositions();
94
- mutate(key, (prevPositions) => {
97
+ mutate(key, (prevPositions)=>{
95
98
  // return nextPostions;
96
99
  if (!!prevPositions) {
97
100
  return {
98
101
  ...prevPositions,
99
- rows: prevPositions.rows.map((row) => {
100
- const item = nextPostions.find((item) => item.symbol === row.symbol);
102
+ rows: prevPositions.rows.map((row)=>{
103
+ const item = nextPostions.find((item)=>item.symbol === row.symbol);
101
104
  if (item) {
102
105
  return {
103
106
  symbol: item.symbol,
@@ -117,30 +120,34 @@ export const usePrivateDataObserver = (options) => {
117
120
  IMR_withdraw_orders: item.imrwithOrders,
118
121
  MMR_with_orders: item.mmrwithOrders,
119
122
  pnl_24_h: item.pnl24H,
120
- fee_24_h: item.fee24H,
123
+ fee_24_h: item.fee24H
121
124
  };
122
125
  }
123
126
  return row;
124
- }),
127
+ })
125
128
  };
126
129
  }
127
130
  }, {
128
- revalidate: false,
131
+ revalidate: false
129
132
  });
130
- },
133
+ }
131
134
  });
132
- return () => {
135
+ return ()=>{
133
136
  unsubscribe?.();
134
137
  };
135
- }, [state.accountId]);
138
+ }, [
139
+ state.accountId
140
+ ]);
136
141
  // cache algo orders
137
- useEffect(() => {
138
- const handler = (data) => {
142
+ useEffect(()=>{
143
+ const handler = (data)=>{
139
144
  algoOrderCacheQuneue.current.push(data);
140
145
  };
141
146
  ee.on("algoOrder:cache", handler);
142
- return () => {
147
+ return ()=>{
143
148
  ee.off("algoOrder:cache", handler);
144
149
  };
145
150
  }, []);
146
151
  };
152
+
153
+ //# sourceMappingURL=usePrivateDataObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/usePrivateDataObserver.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useWS } from \"../useWS\";\nimport { mutate } from \"swr\";\nimport { WSMessage, API } from \"@orderly.network/types\";\nimport { useAccount } from \"../useAccount\";\nimport { unstable_serialize } from \"swr/infinite\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { getKeyFunction } from \"../dataProvider\";\nimport { parseJSON } from \"../utils/json\";\nimport { updateOrdersHandler } from \"../utils/swr\";\n\nexport const usePrivateDataObserver = (options: {\n // onUpdateOrders: (data: any) => void;\n getKeysMap: (type: string) => Map<string, getKeyFunction>;\n}) => {\n const ws = useWS();\n // const { mutate } = useSWRConfig();\n const ee = useEventEmitter();\n const { state } = useAccount();\n\n // TODO: remove this when the WS service provides the correct data\n const algoOrderCacheQuneue = useRef<API.AlgoOrder[]>([]);\n\n const updateOrders = (\n data: WSMessage.AlgoOrder | WSMessage.Order,\n isAlgoOrder: boolean\n ) => {\n const map = options.getKeysMap(\"orders\");\n\n // console.log(\"$$$$$$$$$$$$\", data, algoOrderCacheQuneue.current);\n\n if (isAlgoOrder) {\n /// TODO: remove this when the WS service provides the correct data\n if (algoOrderCacheQuneue.current.length) {\n const index = algoOrderCacheQuneue.current.findIndex(\n (item: any) =>\n item.order_id === (data as WSMessage.AlgoOrder).algoOrderId\n );\n\n if (index > -1) {\n data = {\n ...data,\n ...algoOrderCacheQuneue.current[index],\n };\n algoOrderCacheQuneue.current.splice(index, 1);\n }\n }\n }\n\n map.forEach((getKey, key) => {\n mutate(\n unstable_serialize((index, prevData) => [\n getKey(index, prevData),\n state.accountId,\n ]),\n (prevData?: any[]) => {\n return updateOrdersHandler(key, data, prevData);\n },\n {\n revalidate: false,\n }\n );\n });\n\n // emit events;\n // ee.emit(\"orders:changed\", {\n // ...data,\n // status: data.status || (data as WSMessage.AlgoOrder).algoStatus,\n // });\n\n ee.emit(\"orders:changed\", {\n ...data,\n status: data.status || (data as WSMessage.AlgoOrder).algoStatus,\n });\n };\n\n // orders\n useEffect(() => {\n if (!state.accountId) return;\n const unsubscribe = ws.privateSubscribe(\"executionreport\", {\n onMessage: (data: any) => {\n updateOrders(data, false);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId]);\n\n // algo orders\n useEffect(() => {\n if (!state.accountId) return;\n const unsubscribe = ws.privateSubscribe(\"algoexecutionreport\", {\n onMessage: (data: any) => {\n setTimeout(() => {\n if (Array.isArray(data)) {\n data.forEach((item) => {\n updateOrders(item, true);\n\n // ee.emit(\"orders:changed\", { ...item, status: item.algoStatus });\n });\n } else {\n updateOrders(data, true);\n // ee.emit(\"orders:changed\", { ...data, status: data.algoStatus });\n }\n }, 100);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId]);\n\n // positions\n useEffect(() => {\n if (!state.accountId) return;\n const key = [\"/v1/positions\", state.accountId];\n const unsubscribe = ws.privateSubscribe(\"position\", {\n onMessage: (data: { positions: WSMessage.Position[] }) => {\n const { positions: nextPostions } = data;\n\n // console.log(\"ws----- positions data-----\", data);\n\n // updatePositions();\n\n mutate(\n key,\n (prevPositions: any) => {\n // return nextPostions;\n if (!!prevPositions) {\n return {\n ...prevPositions,\n rows: prevPositions.rows.map((row: any) => {\n const item = nextPostions.find(\n (item) => item.symbol === row.symbol\n );\n if (item) {\n return {\n symbol: item.symbol,\n position_qty: item.positionQty,\n cost_position: item.costPosition,\n last_sum_unitary_funding: item.lastSumUnitaryFunding,\n pending_long_qty: item.pendingLongQty,\n pending_short_qty: item.pendingShortQty,\n settle_price: item.settlePrice,\n average_open_price: item.averageOpenPrice,\n unsettled_pnl: item.unsettledPnl,\n mark_price: item.markPrice,\n est_liq_price: item.estLiqPrice,\n timestamp: Date.now(),\n imr: item.imr,\n mmr: item.mmr,\n IMR_withdraw_orders: item.imrwithOrders,\n MMR_with_orders: item.mmrwithOrders,\n pnl_24_h: item.pnl24H,\n fee_24_h: item.fee24H,\n };\n }\n\n return row;\n }),\n };\n }\n },\n {\n revalidate: false,\n }\n );\n },\n });\n return () => {\n unsubscribe?.();\n };\n }, [state.accountId]);\n\n // cache algo orders\n useEffect(() => {\n const handler = (data: API.AlgoOrder) => {\n algoOrderCacheQuneue.current.push(data);\n };\n\n ee.on(\"algoOrder:cache\", handler);\n\n return () => {\n ee.off(\"algoOrder:cache\", handler);\n };\n }, []);\n};\n"],"names":["useEffect","useRef","useWS","mutate","useAccount","unstable_serialize","useEventEmitter","updateOrdersHandler","usePrivateDataObserver","options","ws","ee","state","algoOrderCacheQuneue","updateOrders","data","isAlgoOrder","map","getKeysMap","current","length","index","findIndex","item","order_id","algoOrderId","splice","forEach","getKey","key","prevData","accountId","revalidate","emit","status","algoStatus","unsubscribe","privateSubscribe","onMessage","setTimeout","Array","isArray","positions","nextPostions","prevPositions","rows","row","find","symbol","position_qty","positionQty","cost_position","costPosition","last_sum_unitary_funding","lastSumUnitaryFunding","pending_long_qty","pendingLongQty","pending_short_qty","pendingShortQty","settle_price","settlePrice","average_open_price","averageOpenPrice","unsettled_pnl","unsettledPnl","mark_price","markPrice","est_liq_price","estLiqPrice","timestamp","Date","now","imr","mmr","IMR_withdraw_orders","imrwithOrders","MMR_with_orders","mmrwithOrders","pnl_24_h","pnl24H","fee_24_h","fee24H","handler","push","on","off"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,20 +1,22 @@
1
1
  import useSWRSubscription from "swr/subscription";
2
2
  import { useWS } from "../useWS";
3
- export const useSettleSubscription = (options) => {
3
+ export const useSettleSubscription = (options)=>{
4
4
  const ws = useWS();
5
- return useSWRSubscription("settle", (_, { next }) => {
5
+ return useSWRSubscription("settle", (_, { next })=>{
6
6
  const unsubscribe = ws.privateSubscribe({
7
7
  id: "settle",
8
8
  event: "subscribe",
9
9
  topic: "settle",
10
- ts: Date.now(),
10
+ ts: Date.now()
11
11
  }, {
12
- onMessage: (data) => {
12
+ onMessage: (data)=>{
13
13
  //
14
14
  options?.onMessage?.(data);
15
15
  next(data);
16
- },
16
+ }
17
17
  });
18
- return () => unsubscribe();
18
+ return ()=>unsubscribe();
19
19
  });
20
20
  };
21
+
22
+ //# sourceMappingURL=useSettleSubscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useSettleSubscription.ts"],"sourcesContent":["import useSWRSubscription from \"swr/subscription\";\nimport { useWS } from \"../useWS\";\n\nexport const useSettleSubscription = (options?: {\n onMessage?: (data: any) => void;\n}) => {\n const ws = useWS();\n\n return useSWRSubscription(\"settle\", (_, { next }) => {\n const unsubscribe = ws.privateSubscribe(\n {\n id: \"settle\",\n event: \"subscribe\",\n topic: \"settle\",\n ts: Date.now(),\n },\n {\n onMessage: (data: any) => {\n //\n options?.onMessage?.(data);\n next(data);\n },\n }\n );\n\n return () => unsubscribe();\n });\n};\n"],"names":["useSWRSubscription","useWS","useSettleSubscription","options","ws","_","next","unsubscribe","privateSubscribe","id","event","topic","ts","Date","now","onMessage","data"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,wBAAwB,mBAAmB;AAClD,SAASC,KAAK,QAAQ,WAAW;AAEjC,OAAO,MAAMC,wBAAwB,CAACC;IAGpC,MAAMC,KAAKH;IAEX,OAAOD,mBAAmB,UAAU,CAACK,GAAG,EAAEC,IAAI,EAAE;QAC9C,MAAMC,cAAcH,GAAGI,gBAAgB,CACrC;YACEC,IAAI;YACJC,OAAO;YACPC,OAAO;YACPC,IAAIC,KAAKC,GAAG;QACd,GACA;YACEC,WAAW,CAACC;gBACV,EAAE;gBACFb,SAASY,YAAYC;gBACrBV,KAAKU;YACP;QACF;QAGF,OAAO,IAAMT;IACf;AACF,EAAE"}
@@ -8,8 +8,7 @@ import { useMemo } from "react";
8
8
  * @param symbol - The symbol to get the price range for
9
9
  * @param price - Optional parameter to set the price
10
10
  * @returns PriceRange | undefined - Returns the PriceRange representing the price range or undefined
11
- */
12
- export const useSymbolPriceRange = (symbol, side, price) => {
11
+ */ export const useSymbolPriceRange = (symbol, side, price)=>{
13
12
  const config = useSymbolsInfo();
14
13
  const priceRange = config?.[symbol]("price_range");
15
14
  const priceScrope = config?.[symbol]("price_scope");
@@ -17,7 +16,7 @@ export const useSymbolPriceRange = (symbol, side, price) => {
17
16
  const markPrice = price || prices?.[symbol];
18
17
  /// max mark_price_i * (1+price_range)
19
18
  /// min mark_price_i * (1-price_range)
20
- const range = useMemo(() => {
19
+ const range = useMemo(()=>{
21
20
  if (config === undefined || markPrice === undefined) {
22
21
  return undefined;
23
22
  }
@@ -26,14 +25,21 @@ export const useSymbolPriceRange = (symbol, side, price) => {
26
25
  }
27
26
  if (side === "BUY") {
28
27
  return {
29
- max: new Decimal(markPrice).mul((1 + priceRange)).toNumber(),
30
- min: new Decimal(markPrice).mul((1 - priceScrope)).toNumber(),
28
+ max: new Decimal(markPrice).mul(1 + priceRange).toNumber(),
29
+ min: new Decimal(markPrice).mul(1 - priceScrope).toNumber()
31
30
  };
32
31
  }
33
32
  return {
34
- max: new Decimal(markPrice).mul((1 + priceScrope)).toNumber(),
35
- min: new Decimal(markPrice).mul((1 - priceRange)).toNumber(),
33
+ max: new Decimal(markPrice).mul(1 + priceScrope).toNumber(),
34
+ min: new Decimal(markPrice).mul(1 - priceRange).toNumber()
36
35
  };
37
- }, [symbol, side, priceRange, markPrice]);
36
+ }, [
37
+ symbol,
38
+ side,
39
+ priceRange,
40
+ markPrice
41
+ ]);
38
42
  return range;
39
43
  };
44
+
45
+ //# sourceMappingURL=useSymbolPriceRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/useSymbolPriceRange.ts"],"sourcesContent":["import { Decimal } from \"@orderly.network/utils\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useEffect, useMemo, useState } from \"react\";\n\n// Define the PriceRange type to represent a range of prices\nexport type PriceRange = {\n min: number,\n max: number,\n};\n\n/**\n * Get the price range for the specified symbol with an optional price\n *\n * @param symbol - The symbol to get the price range for\n * @param price - Optional parameter to set the price\n * @returns PriceRange | undefined - Returns the PriceRange representing the price range or undefined\n */\nexport const useSymbolPriceRange = (symbol: string, side: \"BUY\" | \"SELL\", price?: number): PriceRange | undefined => {\n const config = useSymbolsInfo();\n const priceRange = config?.[symbol](\"price_range\");\n const priceScrope = config?.[symbol](\"price_scope\");\n const { data: prices } = useMarkPricesStream();\n const markPrice = price || prices?.[symbol];\n\n /// max mark_price_i * (1+price_range)\n /// min mark_price_i * (1-price_range)\n\n const range = useMemo(() => {\n if (config === undefined || markPrice === undefined) {\n return undefined;\n }\n\n if (priceRange === undefined || Number.isNaN(markPrice)) {\n return undefined;\n }\n\n if (side === \"BUY\") {\n return {\n max: new Decimal(markPrice).mul((1 + priceRange)).toNumber(),\n min: new Decimal(markPrice).mul((1 - priceScrope)).toNumber(),\n };\n }\n\n return {\n max: new Decimal(markPrice).mul((1 + priceScrope)).toNumber(),\n min: new Decimal(markPrice).mul((1 - priceRange)).toNumber(),\n };\n }, [symbol, side, priceRange, markPrice]);\n\n return range;\n}"],"names":["Decimal","useSymbolsInfo","useMarkPricesStream","useMemo","useSymbolPriceRange","symbol","side","price","config","priceRange","priceScrope","data","prices","markPrice","range","undefined","Number","isNaN","max","mul","toNumber","min"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,yBAAyB;AACjD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAAoBC,OAAO,QAAkB,QAAQ;AAQrD;;;;;;CAMC,GACD,OAAO,MAAMC,sBAAsB,CAACC,QAAgBC,MAAsBC;IACtE,MAAMC,SAASP;IACf,MAAMQ,aAAaD,QAAQ,CAACH,OAAO,CAAC;IACpC,MAAMK,cAAcF,QAAQ,CAACH,OAAO,CAAC;IACrC,MAAM,EAAEM,MAAMC,MAAM,EAAE,GAAGV;IACzB,MAAMW,YAAYN,SAASK,QAAQ,CAACP,OAAO;IAE3C,sCAAsC;IACtC,sCAAsC;IAEtC,MAAMS,QAAQX,QAAQ;QAClB,IAAIK,WAAWO,aAAaF,cAAcE,WAAW;YACjD,OAAOA;QACX;QAEA,IAAIN,eAAeM,aAAaC,OAAOC,KAAK,CAACJ,YAAY;YACrD,OAAOE;QACX;QAEA,IAAIT,SAAS,OAAO;YAChB,OAAO;gBACHY,KAAK,IAAIlB,QAAQa,WAAWM,GAAG,CAAE,IAAIV,YAAaW,QAAQ;gBAC1DC,KAAK,IAAIrB,QAAQa,WAAWM,GAAG,CAAE,IAAIT,aAAcU,QAAQ;YAC/D;QACJ;QAEA,OAAO;YACHF,KAAK,IAAIlB,QAAQa,WAAWM,GAAG,CAAE,IAAIT,aAAcU,QAAQ;YAC3DC,KAAK,IAAIrB,QAAQa,WAAWM,GAAG,CAAE,IAAIV,YAAaW,QAAQ;QAC9D;IACJ,GAAG;QAACf;QAAQC;QAAMG;QAAYI;KAAU;IAExC,OAAOC;AACX,EAAC"}