@orderly.network/hooks 1.3.2 → 1.4.0-alpha.1

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 (365) hide show
  1. package/esm/configProvider.d.ts.map +1 -1
  2. package/esm/configProvider.js +3 -2
  3. package/esm/configProvider.js.map +1 -1
  4. package/esm/dataProvider.d.ts.map +1 -1
  5. package/esm/dataProvider.js +0 -2
  6. package/esm/dataProvider.js.map +1 -1
  7. package/esm/dev/proxyConfigStore.d.ts +15 -0
  8. package/esm/dev/proxyConfigStore.d.ts.map +1 -0
  9. package/esm/dev/proxyConfigStore.js +41 -0
  10. package/esm/dev/proxyConfigStore.js.map +1 -0
  11. package/esm/index.d.ts +4 -3
  12. package/esm/index.d.ts.map +1 -1
  13. package/esm/index.js +4 -3
  14. package/esm/index.js.map +1 -1
  15. package/esm/orderly/orderlyHooks.d.ts +3 -2
  16. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  17. package/esm/orderly/orderlyHooks.js +3 -2
  18. package/esm/orderly/orderlyHooks.js.map +1 -1
  19. package/esm/orderly/useCollateral.js +2 -2
  20. package/esm/orderly/useCollateral.js.map +1 -1
  21. package/esm/orderly/useMarginRatio.js +1 -1
  22. package/esm/orderly/useMarginRatio.js.map +1 -1
  23. package/esm/orderly/useMaxQty.js +2 -2
  24. package/esm/orderly/useMaxQty.js.map +1 -1
  25. package/esm/orderly/useOrderEntry.d.ts.map +1 -1
  26. package/esm/orderly/useOrderEntry.js +15 -12
  27. package/esm/orderly/useOrderEntry.js.map +1 -1
  28. package/esm/orderly/useOrderEntryNext/index.d.ts +1 -0
  29. package/esm/orderly/useOrderEntryNext/index.d.ts.map +1 -0
  30. package/esm/orderly/useOrderEntryNext/index.js +2 -0
  31. package/esm/orderly/useOrderEntryNext/index.js.map +1 -0
  32. package/esm/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +20 -12
  33. package/esm/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
  34. package/esm/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +102 -26
  35. package/esm/orderly/useOrderStream/useOrderStream.js.map +1 -0
  36. package/esm/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
  37. package/esm/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
  38. package/esm/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
  39. package/esm/orderly/usePositionStream/usePositionStream.js.map +1 -0
  40. package/esm/orderly/usePositionStream/utils.d.ts +8 -0
  41. package/esm/orderly/usePositionStream/utils.d.ts.map +1 -0
  42. package/esm/orderly/usePositionStream/utils.js +34 -0
  43. package/esm/orderly/usePositionStream/utils.js.map +1 -0
  44. package/esm/orderly/usePrivateDataObserver.d.ts.map +1 -1
  45. package/esm/orderly/usePrivateDataObserver.js +30 -43
  46. package/esm/orderly/usePrivateDataObserver.js.map +1 -1
  47. package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
  48. package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
  49. package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
  50. package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
  51. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts +30 -0
  52. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
  53. package/esm/orderly/useTakeProfitAndStopLoss/index.js +23 -0
  54. package/esm/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
  55. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +57 -0
  56. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
  57. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js +210 -0
  58. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
  59. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
  60. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
  61. package/esm/orderly/useTakeProfitAndStopLoss/utils.js +239 -0
  62. package/esm/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
  63. package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
  64. package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
  65. package/esm/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
  66. package/esm/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
  67. package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
  68. package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
  69. package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
  70. package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
  71. package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
  72. package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
  73. package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
  74. package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
  75. package/esm/services/orderCreator/baseAlgoCreator.d.ts +22 -0
  76. package/esm/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
  77. package/esm/services/orderCreator/baseAlgoCreator.js +57 -0
  78. package/esm/services/orderCreator/baseAlgoCreator.js.map +1 -0
  79. package/esm/services/orderCreator/baseCreator.d.ts +14 -0
  80. package/esm/services/orderCreator/baseCreator.d.ts.map +1 -0
  81. package/esm/services/orderCreator/baseCreator.js +92 -0
  82. package/esm/services/orderCreator/baseCreator.js.map +1 -0
  83. package/esm/services/orderCreator/factory.d.ts +7 -0
  84. package/esm/services/orderCreator/factory.d.ts.map +1 -0
  85. package/esm/services/orderCreator/factory.js +45 -0
  86. package/esm/services/orderCreator/factory.js.map +1 -0
  87. package/esm/services/orderCreator/fokCreator.d.ts +4 -0
  88. package/esm/services/orderCreator/fokCreator.d.ts.map +1 -0
  89. package/esm/services/orderCreator/fokCreator.js +5 -0
  90. package/esm/services/orderCreator/fokCreator.js.map +1 -0
  91. package/esm/services/orderCreator/generalCreator.d.ts +8 -0
  92. package/esm/services/orderCreator/generalCreator.d.ts.map +1 -0
  93. package/esm/services/orderCreator/generalCreator.js +15 -0
  94. package/esm/services/orderCreator/generalCreator.js.map +1 -0
  95. package/esm/services/orderCreator/interface.d.ts +23 -0
  96. package/esm/services/orderCreator/interface.d.ts.map +1 -0
  97. package/esm/services/orderCreator/interface.js +3 -0
  98. package/esm/services/orderCreator/interface.js.map +1 -0
  99. package/esm/services/orderCreator/iocCreator.d.ts +4 -0
  100. package/esm/services/orderCreator/iocCreator.d.ts.map +1 -0
  101. package/esm/services/orderCreator/iocCreator.js +5 -0
  102. package/esm/services/orderCreator/iocCreator.js.map +1 -0
  103. package/esm/services/orderCreator/limitOrderCreator.d.ts +8 -0
  104. package/esm/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
  105. package/esm/services/orderCreator/limitOrderCreator.js +69 -0
  106. package/esm/services/orderCreator/limitOrderCreator.js.map +1 -0
  107. package/esm/services/orderCreator/marketOrderCreator.d.ts +24 -0
  108. package/esm/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
  109. package/esm/services/orderCreator/marketOrderCreator.js +18 -0
  110. package/esm/services/orderCreator/marketOrderCreator.js.map +1 -0
  111. package/esm/services/orderCreator/postOnlyCreator.d.ts +4 -0
  112. package/esm/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
  113. package/esm/services/orderCreator/postOnlyCreator.js +5 -0
  114. package/esm/services/orderCreator/postOnlyCreator.js.map +1 -0
  115. package/esm/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
  116. package/esm/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
  117. package/esm/services/orderCreator/stopLimitOrderCreator.js +84 -0
  118. package/esm/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
  119. package/esm/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
  120. package/esm/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
  121. package/esm/services/orderCreator/stopMarketOrderCreator.js +46 -0
  122. package/esm/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
  123. package/esm/services/orderCreator/tpslOrderCreator.d.ts +32 -0
  124. package/esm/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
  125. package/esm/services/orderCreator/tpslOrderCreator.js +88 -0
  126. package/esm/services/orderCreator/tpslOrderCreator.js.map +1 -0
  127. package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
  128. package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
  129. package/esm/services/orderCreator/tpslPositionOrderCreator.js +74 -0
  130. package/esm/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
  131. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
  132. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
  133. package/esm/services/orderMerge/algoOrderMergeHandler.js +38 -0
  134. package/esm/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
  135. package/esm/services/orderMerge/baseMergeHandler.d.ts +22 -0
  136. package/esm/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
  137. package/esm/services/orderMerge/baseMergeHandler.js +160 -0
  138. package/esm/services/orderMerge/baseMergeHandler.js.map +1 -0
  139. package/esm/services/orderMerge/interface.d.ts +8 -0
  140. package/esm/services/orderMerge/interface.d.ts.map +1 -0
  141. package/esm/services/orderMerge/interface.js +3 -0
  142. package/esm/services/orderMerge/interface.js.map +1 -0
  143. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
  144. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
  145. package/esm/services/orderMerge/regularOrderMergeHandler.js +15 -0
  146. package/esm/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
  147. package/esm/usePoster.d.ts +3 -0
  148. package/esm/usePoster.d.ts.map +1 -1
  149. package/esm/usePoster.js +3 -1
  150. package/esm/usePoster.js.map +1 -1
  151. package/esm/utils/createOrder.d.ts +0 -55
  152. package/esm/utils/createOrder.d.ts.map +1 -1
  153. package/esm/utils/createOrder.js +0 -334
  154. package/esm/utils/createOrder.js.map +1 -1
  155. package/esm/utils/fokCreator.d.ts +1 -0
  156. package/esm/utils/fokCreator.d.ts.map +1 -0
  157. package/esm/utils/fokCreator.js +2 -0
  158. package/esm/utils/fokCreator.js.map +1 -0
  159. package/esm/utils/index.d.ts +5 -0
  160. package/esm/utils/index.d.ts.map +1 -0
  161. package/esm/utils/index.js +6 -0
  162. package/esm/utils/index.js.map +1 -0
  163. package/esm/utils/order.d.ts +2 -0
  164. package/esm/utils/order.d.ts.map +1 -0
  165. package/esm/utils/order.js +3 -0
  166. package/esm/utils/order.js.map +1 -0
  167. package/esm/utils/swr.d.ts +3 -1
  168. package/esm/utils/swr.d.ts.map +1 -1
  169. package/esm/utils/swr.js +123 -89
  170. package/esm/utils/swr.js.map +1 -1
  171. package/esm/utils/ws.d.ts +2 -0
  172. package/esm/utils/ws.d.ts.map +1 -0
  173. package/esm/utils/ws.js +9 -0
  174. package/esm/utils/ws.js.map +1 -0
  175. package/esm/version.d.ts +1 -1
  176. package/esm/version.d.ts.map +1 -1
  177. package/esm/version.js +2 -2
  178. package/esm/version.js.map +1 -1
  179. package/lib/configProvider.d.ts.map +1 -1
  180. package/lib/configProvider.js +3 -2
  181. package/lib/configProvider.js.map +1 -1
  182. package/lib/dataProvider.d.ts.map +1 -1
  183. package/lib/dataProvider.js +0 -2
  184. package/lib/dataProvider.js.map +1 -1
  185. package/lib/dev/proxyConfigStore.d.ts +15 -0
  186. package/lib/dev/proxyConfigStore.d.ts.map +1 -0
  187. package/lib/dev/proxyConfigStore.js +51 -0
  188. package/lib/dev/proxyConfigStore.js.map +1 -0
  189. package/lib/index.d.ts +4 -3
  190. package/lib/index.d.ts.map +1 -1
  191. package/lib/index.js +10 -3
  192. package/lib/index.js.map +1 -1
  193. package/lib/orderly/orderlyHooks.d.ts +3 -2
  194. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  195. package/lib/orderly/orderlyHooks.js +6 -2
  196. package/lib/orderly/orderlyHooks.js.map +1 -1
  197. package/lib/orderly/useCollateral.js +2 -2
  198. package/lib/orderly/useCollateral.js.map +1 -1
  199. package/lib/orderly/useMarginRatio.js +1 -1
  200. package/lib/orderly/useMarginRatio.js.map +1 -1
  201. package/lib/orderly/useMaxQty.js +2 -2
  202. package/lib/orderly/useMaxQty.js.map +1 -1
  203. package/lib/orderly/useOrderEntry.d.ts.map +1 -1
  204. package/lib/orderly/useOrderEntry.js +14 -12
  205. package/lib/orderly/useOrderEntry.js.map +1 -1
  206. package/lib/orderly/useOrderEntryNext/index.d.ts +1 -0
  207. package/lib/orderly/useOrderEntryNext/index.d.ts.map +1 -0
  208. package/lib/orderly/useOrderEntryNext/index.js +3 -0
  209. package/lib/orderly/useOrderEntryNext/index.js.map +1 -0
  210. package/lib/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +20 -12
  211. package/lib/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
  212. package/lib/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +100 -25
  213. package/lib/orderly/useOrderStream/useOrderStream.js.map +1 -0
  214. package/lib/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
  215. package/lib/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
  216. package/lib/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
  217. package/lib/orderly/usePositionStream/usePositionStream.js.map +1 -0
  218. package/lib/orderly/usePositionStream/utils.d.ts +8 -0
  219. package/lib/orderly/usePositionStream/utils.d.ts.map +1 -0
  220. package/lib/orderly/usePositionStream/utils.js +55 -0
  221. package/lib/orderly/usePositionStream/utils.js.map +1 -0
  222. package/lib/orderly/usePrivateDataObserver.d.ts.map +1 -1
  223. package/lib/orderly/usePrivateDataObserver.js +28 -41
  224. package/lib/orderly/usePrivateDataObserver.js.map +1 -1
  225. package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
  226. package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
  227. package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
  228. package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
  229. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts +30 -0
  230. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
  231. package/lib/orderly/useTakeProfitAndStopLoss/index.js +33 -0
  232. package/lib/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
  233. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +57 -0
  234. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
  235. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js +217 -0
  236. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
  237. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
  238. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
  239. package/lib/orderly/useTakeProfitAndStopLoss/utils.js +254 -0
  240. package/lib/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
  241. package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
  242. package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
  243. package/lib/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
  244. package/lib/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
  245. package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
  246. package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
  247. package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
  248. package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
  249. package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
  250. package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
  251. package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
  252. package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
  253. package/lib/services/orderCreator/baseAlgoCreator.d.ts +22 -0
  254. package/lib/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
  255. package/lib/services/orderCreator/baseAlgoCreator.js +67 -0
  256. package/lib/services/orderCreator/baseAlgoCreator.js.map +1 -0
  257. package/lib/services/orderCreator/baseCreator.d.ts +14 -0
  258. package/lib/services/orderCreator/baseCreator.d.ts.map +1 -0
  259. package/lib/services/orderCreator/baseCreator.js +102 -0
  260. package/lib/services/orderCreator/baseCreator.js.map +1 -0
  261. package/lib/services/orderCreator/factory.d.ts +7 -0
  262. package/lib/services/orderCreator/factory.d.ts.map +1 -0
  263. package/lib/services/orderCreator/factory.js +54 -0
  264. package/lib/services/orderCreator/factory.js.map +1 -0
  265. package/lib/services/orderCreator/fokCreator.d.ts +4 -0
  266. package/lib/services/orderCreator/fokCreator.d.ts.map +1 -0
  267. package/lib/services/orderCreator/fokCreator.js +15 -0
  268. package/lib/services/orderCreator/fokCreator.js.map +1 -0
  269. package/lib/services/orderCreator/generalCreator.d.ts +8 -0
  270. package/lib/services/orderCreator/generalCreator.d.ts.map +1 -0
  271. package/lib/services/orderCreator/generalCreator.js +25 -0
  272. package/lib/services/orderCreator/generalCreator.js.map +1 -0
  273. package/lib/services/orderCreator/interface.d.ts +23 -0
  274. package/lib/services/orderCreator/interface.d.ts.map +1 -0
  275. package/lib/services/orderCreator/interface.js +6 -0
  276. package/lib/services/orderCreator/interface.js.map +1 -0
  277. package/lib/services/orderCreator/iocCreator.d.ts +4 -0
  278. package/lib/services/orderCreator/iocCreator.d.ts.map +1 -0
  279. package/lib/services/orderCreator/iocCreator.js +15 -0
  280. package/lib/services/orderCreator/iocCreator.js.map +1 -0
  281. package/lib/services/orderCreator/limitOrderCreator.d.ts +8 -0
  282. package/lib/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
  283. package/lib/services/orderCreator/limitOrderCreator.js +79 -0
  284. package/lib/services/orderCreator/limitOrderCreator.js.map +1 -0
  285. package/lib/services/orderCreator/marketOrderCreator.d.ts +24 -0
  286. package/lib/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
  287. package/lib/services/orderCreator/marketOrderCreator.js +28 -0
  288. package/lib/services/orderCreator/marketOrderCreator.js.map +1 -0
  289. package/lib/services/orderCreator/postOnlyCreator.d.ts +4 -0
  290. package/lib/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
  291. package/lib/services/orderCreator/postOnlyCreator.js +15 -0
  292. package/lib/services/orderCreator/postOnlyCreator.js.map +1 -0
  293. package/lib/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
  294. package/lib/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
  295. package/lib/services/orderCreator/stopLimitOrderCreator.js +93 -0
  296. package/lib/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
  297. package/lib/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
  298. package/lib/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
  299. package/lib/services/orderCreator/stopMarketOrderCreator.js +56 -0
  300. package/lib/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
  301. package/lib/services/orderCreator/tpslOrderCreator.d.ts +32 -0
  302. package/lib/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
  303. package/lib/services/orderCreator/tpslOrderCreator.js +94 -0
  304. package/lib/services/orderCreator/tpslOrderCreator.js.map +1 -0
  305. package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
  306. package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
  307. package/lib/services/orderCreator/tpslPositionOrderCreator.js +83 -0
  308. package/lib/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
  309. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
  310. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
  311. package/lib/services/orderMerge/algoOrderMergeHandler.js +48 -0
  312. package/lib/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
  313. package/lib/services/orderMerge/baseMergeHandler.d.ts +22 -0
  314. package/lib/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
  315. package/lib/services/orderMerge/baseMergeHandler.js +170 -0
  316. package/lib/services/orderMerge/baseMergeHandler.js.map +1 -0
  317. package/lib/services/orderMerge/interface.d.ts +8 -0
  318. package/lib/services/orderMerge/interface.d.ts.map +1 -0
  319. package/lib/services/orderMerge/interface.js +6 -0
  320. package/lib/services/orderMerge/interface.js.map +1 -0
  321. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
  322. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
  323. package/lib/services/orderMerge/regularOrderMergeHandler.js +25 -0
  324. package/lib/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
  325. package/lib/usePoster.d.ts +3 -0
  326. package/lib/usePoster.d.ts.map +1 -1
  327. package/lib/usePoster.js +3 -1
  328. package/lib/usePoster.js.map +1 -1
  329. package/lib/utils/createOrder.d.ts +0 -55
  330. package/lib/utils/createOrder.d.ts.map +1 -1
  331. package/lib/utils/createOrder.js +3 -375
  332. package/lib/utils/createOrder.js.map +1 -1
  333. package/lib/utils/fokCreator.d.ts +1 -0
  334. package/lib/utils/fokCreator.d.ts.map +1 -0
  335. package/lib/utils/fokCreator.js +3 -0
  336. package/lib/utils/fokCreator.js.map +1 -0
  337. package/lib/utils/index.d.ts +5 -0
  338. package/lib/utils/index.d.ts.map +1 -0
  339. package/lib/utils/index.js +36 -0
  340. package/lib/utils/index.js.map +1 -0
  341. package/lib/utils/order.d.ts +2 -0
  342. package/lib/utils/order.d.ts.map +1 -0
  343. package/lib/utils/order.js +6 -0
  344. package/lib/utils/order.js.map +1 -0
  345. package/lib/utils/swr.d.ts +3 -1
  346. package/lib/utils/swr.d.ts.map +1 -1
  347. package/lib/utils/swr.js +128 -89
  348. package/lib/utils/swr.js.map +1 -1
  349. package/lib/utils/ws.d.ts +2 -0
  350. package/lib/utils/ws.d.ts.map +1 -0
  351. package/lib/utils/ws.js +19 -0
  352. package/lib/utils/ws.js.map +1 -0
  353. package/lib/version.d.ts +1 -1
  354. package/lib/version.d.ts.map +1 -1
  355. package/lib/version.js +2 -2
  356. package/lib/version.js.map +1 -1
  357. package/package.json +9 -7
  358. package/esm/orderly/useOrderStream.d.ts.map +0 -1
  359. package/esm/orderly/useOrderStream.js.map +0 -1
  360. package/esm/orderly/usePositionStream.d.ts.map +0 -1
  361. package/esm/orderly/usePositionStream.js.map +0 -1
  362. package/lib/orderly/useOrderStream.d.ts.map +0 -1
  363. package/lib/orderly/useOrderStream.js.map +0 -1
  364. package/lib/orderly/usePositionStream.d.ts.map +0 -1
  365. package/lib/orderly/usePositionStream.js.map +0 -1
@@ -1,17 +1,21 @@
1
- import { OrderSide, OrderEntity, OrderStatus } from "@orderly.network/types";
2
- export interface UserOrdersReturn {
3
- data: any[];
4
- loading: boolean;
5
- update: (order: any) => void;
6
- cancel: (order: any) => void;
7
- }
8
- type Params = {
1
+ import { OrderSide, OrderEntity, OrderStatus, API, AlgoOrderRootType } from "@orderly.network/types";
2
+ type CombineOrderType = AlgoOrderRootType | "ALL";
3
+ export declare const useOrderStream: (params: {
9
4
  symbol?: string;
10
5
  status?: OrderStatus;
11
6
  size?: number;
12
7
  side?: OrderSide;
13
- };
14
- export declare const useOrderStream: (params: Params, options?: {
8
+ /**
9
+ * Include the order type
10
+ * @default ["ALL"]
11
+ */
12
+ includes?: CombineOrderType[];
13
+ /**
14
+ * Exclude the order type
15
+ * @default []
16
+ */
17
+ excludes?: CombineOrderType[];
18
+ }, options?: {
15
19
  /**
16
20
  * Keep the state update alive
17
21
  */
@@ -21,15 +25,19 @@ export declare const useOrderStream: (params: Params, options?: {
21
25
  */
22
26
  stopOnUnmount?: boolean;
23
27
  }) => readonly [any[] | null, {
24
- readonly total: any;
28
+ readonly total: number;
25
29
  readonly isLoading: boolean;
26
30
  readonly refresh: import("swr/_internal").KeyedMutator<any[]>;
27
31
  readonly loadMore: () => void;
28
- readonly cancelAllOrders: () => void;
32
+ readonly cancelAllOrders: () => Promise<[any, any]>;
33
+ readonly cancelAllTPSLOrders: () => Promise<any[]>;
34
+ readonly cancelAlgoOrdersByTypes: (types: AlgoOrderRootType[]) => Promise<any[]>;
29
35
  readonly updateOrder: (orderId: string, order: OrderEntity) => Promise<any>;
30
36
  readonly cancelOrder: (orderId: number, symbol?: string) => Promise<any>;
31
37
  readonly updateAlgoOrder: (orderId: string, order: OrderEntity) => Promise<any>;
32
38
  readonly cancelAlgoOrder: (orderId: number, symbol?: string) => Promise<any>;
39
+ readonly cancelTPSLChildOrder: (orderId: number, rootAlgoOrderId: number) => Promise<any>;
40
+ readonly updateTPSLOrder: (orderId: number, childOrders: API.AlgoOrder["child_orders"]) => Promise<any>;
33
41
  readonly errors: {
34
42
  readonly cancelOrder: unknown;
35
43
  readonly updateOrder: unknown;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrderStream.d.ts","sourceRoot":"","sources":["../../../src/orderly/useOrderStream/useOrderStream.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,GAAG,EACH,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAYhC,KAAK,gBAAgB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAElD,eAAO,MAAM,cAAc,WAIjB;IACN,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,YACS;IACR;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;;;;;;;8CAmIuC,iBAAiB,EAAE;oCAuDjB,MAAM,SAAS,WAAW;oCAoD1B,MAAM,WAAW,MAAM;wCA7CnB,MAAM,SAAS,WAAW;wCAoD1B,MAAM,WAAW,MAAM;6CAazD,MAAM,mBAAmB,MAAM,KAAG,QAAQ,GAAG,CAAC;wCAmB7C,MAAM,eACF,IAAI,SAAS,CAAC,cAAc,CAAC;;;;;;;;;;;;;EA2C/C,CAAC"}
@@ -8,15 +8,14 @@ Object.defineProperty(exports, "useOrderStream", {
8
8
  return useOrderStream;
9
9
  }
10
10
  });
11
- const _usePrivateInfiniteQuery = require("../usePrivateInfiniteQuery");
11
+ const _usePrivateInfiniteQuery = require("../../usePrivateInfiniteQuery");
12
12
  const _react = require("react");
13
13
  const _types = require("@orderly.network/types");
14
- const _useMarkPricesStream = require("./useMarkPricesStream");
15
- const _useMutation = require("../useMutation");
16
- const _version = /*#__PURE__*/ _interop_require_default(require("../version"));
17
- const _dataProvider = require("../dataProvider");
18
- const _swr = require("../utils/swr");
19
- const _useEventEmitter = require("../useEventEmitter");
14
+ const _useMarkPricesStream = require("../useMarkPricesStream");
15
+ const _useMutation = require("../../useMutation");
16
+ const _version = /*#__PURE__*/ _interop_require_default(require("../../version"));
17
+ const _dataProvider = require("../../dataProvider");
18
+ const _swr = require("../../utils/swr");
20
19
  function _interop_require_default(obj) {
21
20
  return obj && obj.__esModule ? obj : {
22
21
  default: obj
@@ -25,13 +24,16 @@ function _interop_require_default(obj) {
25
24
  const useOrderStream = (/**
26
25
  * Orders query params
27
26
  */ params, options)=>{
28
- const { status, symbol, side, size = 100 } = params;
27
+ const { status, symbol, side, size = 100, includes = [
28
+ "ALL"
29
+ ], excludes = [] } = params;
29
30
  const { data: markPrices = {} } = (0, _useMarkPricesStream.useMarkPricesStream)();
30
- const ee = (0, _useEventEmitter.useEventEmitter)();
31
31
  const { regesterKeyHandler, unregisterKeyHandler } = (0, _dataProvider.useDataCenterContext)();
32
32
  const [doCancelOrder, { error: cancelOrderError, isMutating: cancelMutating }] = (0, _useMutation.useMutation)("/v1/order", "DELETE");
33
+ const [doCancelAllOrders] = (0, _useMutation.useMutation)("/v1/orders", "DELETE");
33
34
  const [doUpdateOrder, { error: updateOrderError, isMutating: updateMutating }] = (0, _useMutation.useMutation)("/v1/order", "PUT");
34
35
  const [doCanceAlgolOrder, { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating }] = (0, _useMutation.useMutation)("/v1/algo/order", "DELETE");
36
+ const [doCancelAllAlgoOrders] = (0, _useMutation.useMutation)("/v1/algo/orders", "DELETE");
35
37
  const [doUpdateAlgoOrder, { error: updateAlgoOrderError, isMutating: updateAlgoMutating }] = (0, _useMutation.useMutation)("/v1/algo/order", "PUT");
36
38
  (0, _react.useEffect)(()=>{
37
39
  const formatKey = (value)=>value ? `:${value}` : "";
@@ -70,9 +72,25 @@ const useOrderStream = (/**
70
72
  if (!ordersResponse.data) {
71
73
  return null;
72
74
  }
73
- return ordersResponse.data?.map((item)=>item.rows)?.flat();
75
+ let orders = ordersResponse.data?.map((item)=>item.rows)?.flat();
76
+ // return ordersResponse.data?.map((item) => item.rows)?.flat();
77
+ if (includes.includes("ALL") && excludes.length === 0) {
78
+ return orders;
79
+ }
80
+ if (includes.includes("ALL") && excludes.length > 0) {
81
+ return orders?.filter((item)=>!excludes.includes(item.algo_type));
82
+ }
83
+ if (includes.length > 0 && excludes.length === 0) {
84
+ return orders?.filter((item)=>includes.includes(item.algo_type));
85
+ }
86
+ if (includes.length > 0 && excludes.length > 0) {
87
+ return orders?.filter((item)=>includes.includes(item.algo_type) && !excludes.includes(item.algo_type));
88
+ }
89
+ return orders;
74
90
  }, [
75
- ordersResponse.data
91
+ ordersResponse.data,
92
+ includes,
93
+ excludes
76
94
  ]);
77
95
  // console.log(ordersResponse.data);
78
96
  const orders = (0, _react.useMemo)(()=>{
@@ -83,10 +101,17 @@ const useOrderStream = (/**
83
101
  return flattenOrders;
84
102
  }
85
103
  return flattenOrders.map((item)=>{
86
- return {
104
+ const order = {
87
105
  ...item,
88
106
  mark_price: markPrices[item.symbol] ?? 0
89
107
  };
108
+ ///TODO: remove this when BE provides the correct data
109
+ // console.log("------------->>>>>>>>", order);
110
+ if (order.algo_type === _types.AlgoOrderRootType.POSITIONAL_TP_SL || order.algo_type === _types.AlgoOrderRootType.TP_SL) {
111
+ order.quantity = order.child_orders[0].quantity;
112
+ }
113
+ ///-----------------todo end----------------
114
+ return order;
90
115
  });
91
116
  }, [
92
117
  flattenOrders,
@@ -94,13 +119,43 @@ const useOrderStream = (/**
94
119
  status
95
120
  ]);
96
121
  const total = (0, _react.useMemo)(()=>{
97
- return ordersResponse.data?.[0]?.meta?.total || 0;
122
+ return orders?.length || 0;
123
+ // return ordersResponse.data?.[0]?.meta?.total || 0;
98
124
  }, [
99
- ordersResponse.data?.[0]?.meta?.total
125
+ orders?.length
100
126
  ]);
127
+ const cancelAlgoOrdersByTypes = (types)=>{
128
+ if (!types) {
129
+ throw new _types.SDKError("types is required");
130
+ }
131
+ if (!Array.isArray(types)) {
132
+ throw new _types.SDKError("types should be an array");
133
+ }
134
+ // TODO: order type check
135
+ return Promise.all(types.map((type)=>{
136
+ return doCancelAllAlgoOrders(null, {
137
+ algo_type: type
138
+ });
139
+ }));
140
+ };
101
141
  /**
102
142
  * cancel all orders
103
- */ const cancelAllOrders = (0, _react.useCallback)(()=>{}, [
143
+ */ const cancelAllOrders = (0, _react.useCallback)(()=>{
144
+ return Promise.all([
145
+ doCancelAllOrders(null),
146
+ doCancelAllAlgoOrders(null, {
147
+ algo_type: "STOP"
148
+ })
149
+ ]);
150
+ }, [
151
+ ordersResponse.data
152
+ ]);
153
+ const cancelAllTPSLOrders = (0, _react.useCallback)(()=>{
154
+ return cancelAlgoOrdersByTypes([
155
+ _types.AlgoOrderRootType.POSITIONAL_TP_SL,
156
+ _types.AlgoOrderRootType.TP_SL
157
+ ]);
158
+ }, [
104
159
  ordersResponse.data
105
160
  ]);
106
161
  const _updateOrder = (0, _react.useCallback)((orderId, order, type)=>{
@@ -127,16 +182,7 @@ const useOrderStream = (/**
127
182
  /**
128
183
  * update algo order
129
184
  */ const updateAlgoOrder = (0, _react.useCallback)((orderId, order)=>{
130
- return _updateOrder(orderId, order, "algoOrder").then((res)=>{
131
- // TODO: remove this when the WS service provides the correct data
132
- ee.emit("algoOrder:cache", {
133
- // ...res.data.rows[0],
134
- ...order,
135
- order_id: Number(orderId)
136
- });
137
- //------------fix end----------------
138
- return res;
139
- });
185
+ return _updateOrder(orderId, order, "algoOrder");
140
186
  }, []);
141
187
  const _cancelOrder = (0, _react.useCallback)((orderId, type, symbol)=>{
142
188
  switch(type){
@@ -186,6 +232,31 @@ const useOrderStream = (/**
186
232
  const loadMore = ()=>{
187
233
  ordersResponse.setSize(ordersResponse.size + 1);
188
234
  };
235
+ // const cancelTPSLOrder = useCallback((orderId:number, symbol:string)=>{
236
+ // return
237
+ // });
238
+ const cancelTPSLChildOrder = (0, _react.useCallback)((orderId, rootAlgoOrderId)=>{
239
+ return doUpdateAlgoOrder({
240
+ order_id: rootAlgoOrderId,
241
+ child_orders: [
242
+ {
243
+ order_id: orderId,
244
+ is_activated: false
245
+ }
246
+ ]
247
+ });
248
+ }, []);
249
+ const updateTPSLOrder = (0, _react.useCallback)((/**
250
+ * the root algo order id
251
+ */ orderId, childOrders)=>{
252
+ if (!Array.isArray(childOrders)) {
253
+ throw new _types.SDKError("children orders is required");
254
+ }
255
+ return doUpdateAlgoOrder({
256
+ order_id: orderId,
257
+ child_orders: childOrders
258
+ });
259
+ }, []);
189
260
  return [
190
261
  orders,
191
262
  {
@@ -194,10 +265,14 @@ const useOrderStream = (/**
194
265
  refresh: ordersResponse.mutate,
195
266
  loadMore,
196
267
  cancelAllOrders,
268
+ cancelAllTPSLOrders,
269
+ cancelAlgoOrdersByTypes,
197
270
  updateOrder,
198
271
  cancelOrder,
199
272
  updateAlgoOrder,
200
273
  cancelAlgoOrder,
274
+ cancelTPSLChildOrder,
275
+ updateTPSLOrder,
201
276
  errors: {
202
277
  cancelOrder: cancelOrderError,
203
278
  updateOrder: updateOrderError,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/orderly/useOrderStream/useOrderStream.ts"],"sourcesContent":["import { usePrivateInfiniteQuery } from \"../../usePrivateInfiniteQuery\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport {\n OrderSide,\n OrderEntity,\n OrderStatus,\n API,\n AlgoOrderRootType,\n} from \"@orderly.network/types\";\nimport { useMarkPricesStream } from \"../useMarkPricesStream\";\nimport { useMutation } from \"../../useMutation\";\nimport version from \"../../version\";\nimport { useDataCenterContext } from \"../../dataProvider\";\nimport { generateKeyFun } from \"../../utils/swr\";\nimport { useEventEmitter } from \"../../useEventEmitter\";\nimport { SDKError } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\n\ntype CreateOrderType = \"normalOrder\" | \"algoOrder\";\n\ntype CombineOrderType = AlgoOrderRootType | \"ALL\";\n\nexport const useOrderStream = (\n /**\n * Orders query params\n */\n params: {\n symbol?: string;\n status?: OrderStatus;\n size?: number;\n side?: OrderSide;\n /**\n * Include the order type\n * @default [\"ALL\"]\n */\n includes?: CombineOrderType[];\n /**\n * Exclude the order type\n * @default []\n */\n excludes?: CombineOrderType[];\n },\n options?: {\n /**\n * Keep the state update alive\n */\n keeplive?: boolean;\n /**\n * Stop the state update when the component unmount\n */\n stopOnUnmount?: boolean;\n }\n) => {\n const {\n status,\n symbol,\n side,\n size = 100,\n includes = [\"ALL\"],\n excludes = [],\n } = params;\n\n const { data: markPrices = {} } = useMarkPricesStream();\n\n const { regesterKeyHandler, unregisterKeyHandler } = useDataCenterContext();\n const [\n doCancelOrder,\n { error: cancelOrderError, isMutating: cancelMutating },\n ] = useMutation(\"/v1/order\", \"DELETE\");\n\n const [doCancelAllOrders] = useMutation(\"/v1/orders\", \"DELETE\");\n\n const [\n doUpdateOrder,\n { error: updateOrderError, isMutating: updateMutating },\n ] = useMutation(\"/v1/order\", \"PUT\");\n\n const [\n doCanceAlgolOrder,\n { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [doCancelAllAlgoOrders] = useMutation(\"/v1/algo/orders\", \"DELETE\");\n\n const [\n doUpdateAlgoOrder,\n { error: updateAlgoOrderError, isMutating: updateAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"PUT\");\n\n useEffect(() => {\n const formatKey = (value?: string) => (value ? `:${value}` : \"\");\n const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(\n side\n )}`;\n regesterKeyHandler?.(key, generateKeyFun({ status, symbol, side, size }));\n\n return () => {\n if (!options?.stopOnUnmount) return;\n\n unregisterKeyHandler(key);\n };\n }, [status, symbol, side, options?.keeplive]);\n\n const ordersResponse = usePrivateInfiniteQuery(\n generateKeyFun({ status, symbol, side, size }),\n {\n initialSize: 1,\n // revalidateFirstPage: false,\n // onError: (err) => {\n // console.error(\"fetch failed::::\", err);\n // },\n formatter: (data) => data,\n revalidateOnFocus: false,\n }\n );\n\n const flattenOrders = useMemo(() => {\n if (!ordersResponse.data) {\n return null;\n }\n let orders = ordersResponse.data?.map((item) => item.rows)?.flat();\n\n // return ordersResponse.data?.map((item) => item.rows)?.flat();\n\n if (includes.includes(\"ALL\") && excludes.length === 0) {\n return orders;\n }\n\n if (includes.includes(\"ALL\") && excludes.length > 0) {\n return orders?.filter((item) => !excludes.includes(item.algo_type));\n }\n\n if (includes.length > 0 && excludes.length === 0) {\n return orders?.filter((item) => includes.includes(item.algo_type));\n }\n\n if (includes.length > 0 && excludes.length > 0) {\n return orders?.filter(\n (item) =>\n includes.includes(item.algo_type) &&\n !excludes.includes(item.algo_type)\n );\n }\n\n return orders;\n }, [ordersResponse.data, includes, excludes]);\n\n // console.log(ordersResponse.data);\n\n const orders = useMemo(() => {\n if (!flattenOrders) {\n return null;\n }\n\n if (status !== OrderStatus.NEW && status !== OrderStatus.INCOMPLETE) {\n return flattenOrders;\n }\n return flattenOrders.map((item) => {\n const order = {\n ...item,\n mark_price: (markPrices as any)[item.symbol] ?? 0,\n };\n\n ///TODO: remove this when BE provides the correct data\n // console.log(\"------------->>>>>>>>\", order);\n if (\n order.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL ||\n order.algo_type === AlgoOrderRootType.TP_SL\n ) {\n order.quantity = order.child_orders[0].quantity;\n }\n ///-----------------todo end----------------\n\n return order;\n });\n }, [flattenOrders, markPrices, status]);\n\n const total = useMemo(() => {\n return orders?.length || 0;\n // return ordersResponse.data?.[0]?.meta?.total || 0;\n }, [orders?.length]);\n\n const cancelAlgoOrdersByTypes = (types: AlgoOrderRootType[]) => {\n if (!types) {\n throw new SDKError(\"types is required\");\n }\n\n if (!Array.isArray(types)) {\n throw new SDKError(\"types should be an array\");\n }\n\n // TODO: order type check\n\n return Promise.all(\n types.map((type) => {\n return doCancelAllAlgoOrders(null, { algo_type: type });\n })\n );\n };\n\n /**\n * cancel all orders\n */\n const cancelAllOrders = useCallback(() => {\n return Promise.all([\n doCancelAllOrders(null),\n doCancelAllAlgoOrders(null, { algo_type: \"STOP\" }),\n ]);\n }, [ordersResponse.data]);\n\n const cancelAllTPSLOrders = useCallback(() => {\n return cancelAlgoOrdersByTypes([\n AlgoOrderRootType.POSITIONAL_TP_SL,\n AlgoOrderRootType.TP_SL,\n ]);\n }, [ordersResponse.data]);\n\n const _updateOrder = useCallback(\n (orderId: string, order: OrderEntity, type: CreateOrderType) => {\n switch (type) {\n case \"algoOrder\":\n return doUpdateAlgoOrder({\n order_id: orderId,\n price: order[\"order_price\"],\n quantity: order[\"order_quantity\"],\n trigger_price: order[\"trigger_price\"],\n });\n default:\n return doUpdateOrder({ ...order, order_id: orderId });\n }\n },\n []\n );\n\n /**\n * update order\n */\n const updateOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"normalOrder\");\n }, []);\n\n /**\n * update algo order\n */\n const updateAlgoOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"algoOrder\");\n }, []);\n\n const _cancelOrder = useCallback(\n (orderId: number, type: CreateOrderType, symbol?: string) => {\n switch (type) {\n case \"algoOrder\":\n return doCanceAlgolOrder(null, {\n // @ts-ignore\n order_id: orderId,\n symbol,\n source: `SDK${version}`,\n }).then((res: any) => {\n if (res.success) {\n ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n default:\n return doCancelOrder(null, {\n order_id: orderId,\n symbol,\n source: `SDK_${version}`,\n }).then((res: any) => {\n if (res.success) {\n // return ordersResponse.mutate().then(() => {\n // return res;\n // });\n //Optimistic Updates\n // ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n }\n },\n []\n );\n /**\n * calcel order\n */\n const cancelOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"normalOrder\", symbol);\n }, []);\n\n /**\n * calcel algo order\n */\n const cancelAlgoOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"algoOrder\", symbol);\n }, []);\n\n const loadMore = () => {\n ordersResponse.setSize(ordersResponse.size + 1);\n };\n\n // const cancelTPSLOrder = useCallback((orderId:number, symbol:string)=>{\n // return\n // });\n\n const cancelTPSLChildOrder = useCallback(\n (orderId: number, rootAlgoOrderId: number): Promise<any> => {\n return doUpdateAlgoOrder({\n order_id: rootAlgoOrderId,\n child_orders: [\n {\n order_id: orderId,\n is_activated: false,\n },\n ],\n });\n },\n []\n );\n\n const updateTPSLOrder = useCallback(\n (\n /**\n * the root algo order id\n */\n orderId: number,\n childOrders: API.AlgoOrder[\"child_orders\"]\n ) => {\n if (!Array.isArray(childOrders)) {\n throw new SDKError(\"children orders is required\");\n }\n return doUpdateAlgoOrder({\n order_id: orderId,\n child_orders: childOrders,\n });\n },\n []\n );\n\n return [\n orders,\n {\n total,\n isLoading: ordersResponse.isLoading,\n refresh: ordersResponse.mutate,\n loadMore,\n cancelAllOrders,\n cancelAllTPSLOrders,\n cancelAlgoOrdersByTypes,\n updateOrder,\n cancelOrder,\n updateAlgoOrder,\n cancelAlgoOrder,\n cancelTPSLChildOrder,\n updateTPSLOrder,\n errors: {\n cancelOrder: cancelOrderError,\n updateOrder: updateOrderError,\n cancelAlgoOrder: cancelAlgoOrderError,\n updateAlgoOrder: updateAlgoOrderError,\n },\n submitting: {\n cancelOrder: cancelMutating,\n updateOrder: updateMutating,\n cancelAlgoOrder: cancelAlgoMutating,\n updateAlglOrder: updateAlgoMutating,\n },\n },\n ] as const;\n};\n"],"names":["useOrderStream","params","options","status","symbol","side","size","includes","excludes","data","markPrices","useMarkPricesStream","regesterKeyHandler","unregisterKeyHandler","useDataCenterContext","doCancelOrder","error","cancelOrderError","isMutating","cancelMutating","useMutation","doCancelAllOrders","doUpdateOrder","updateOrderError","updateMutating","doCanceAlgolOrder","cancelAlgoOrderError","cancelAlgoMutating","doCancelAllAlgoOrders","doUpdateAlgoOrder","updateAlgoOrderError","updateAlgoMutating","useEffect","formatKey","value","key","generateKeyFun","stopOnUnmount","keeplive","ordersResponse","usePrivateInfiniteQuery","initialSize","formatter","revalidateOnFocus","flattenOrders","useMemo","orders","map","item","rows","flat","length","filter","algo_type","OrderStatus","NEW","INCOMPLETE","order","mark_price","AlgoOrderRootType","POSITIONAL_TP_SL","TP_SL","quantity","child_orders","total","cancelAlgoOrdersByTypes","types","SDKError","Array","isArray","Promise","all","type","cancelAllOrders","useCallback","cancelAllTPSLOrders","_updateOrder","orderId","order_id","price","trigger_price","updateOrder","updateAlgoOrder","_cancelOrder","source","version","then","res","success","mutate","Error","message","cancelOrder","cancelAlgoOrder","loadMore","setSize","cancelTPSLChildOrder","rootAlgoOrderId","is_activated","updateTPSLOrder","childOrders","isLoading","refresh","errors","submitting","updateAlglOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAsBaA;;;eAAAA;;;yCAtB2B;uBACQ;uBAOzC;qCAC6B;6BACR;gEACR;8BACiB;qBACN;;;;;;AASxB,MAAMA,iBAAiB,CAC5B;;GAEC,GACDC,QAgBAC;IAWA,MAAM,EACJC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,OAAO,GAAG,EACVC,WAAW;QAAC;KAAM,EAClBC,WAAW,EAAE,EACd,GAAGP;IAEJ,MAAM,EAAEQ,MAAMC,aAAa,CAAC,CAAC,EAAE,GAAGC,IAAAA,wCAAmB;IAErD,MAAM,EAAEC,kBAAkB,EAAEC,oBAAoB,EAAE,GAAGC,IAAAA,kCAAoB;IACzE,MAAM,CACJC,eACA,EAAEC,OAAOC,gBAAgB,EAAEC,YAAYC,cAAc,EAAE,CACxD,GAAGC,IAAAA,wBAAW,EAAC,aAAa;IAE7B,MAAM,CAACC,kBAAkB,GAAGD,IAAAA,wBAAW,EAAC,cAAc;IAEtD,MAAM,CACJE,eACA,EAAEN,OAAOO,gBAAgB,EAAEL,YAAYM,cAAc,EAAE,CACxD,GAAGJ,IAAAA,wBAAW,EAAC,aAAa;IAE7B,MAAM,CACJK,mBACA,EAAET,OAAOU,oBAAoB,EAAER,YAAYS,kBAAkB,EAAE,CAChE,GAAGP,IAAAA,wBAAW,EAAC,kBAAkB;IAElC,MAAM,CAACQ,sBAAsB,GAAGR,IAAAA,wBAAW,EAAC,mBAAmB;IAE/D,MAAM,CACJS,mBACA,EAAEb,OAAOc,oBAAoB,EAAEZ,YAAYa,kBAAkB,EAAE,CAChE,GAAGX,IAAAA,wBAAW,EAAC,kBAAkB;IAElCY,IAAAA,gBAAS,EAAC;QACR,MAAMC,YAAY,CAACC,QAAoBA,QAAQ,CAAC,CAAC,EAAEA,MAAM,CAAC,GAAG;QAC7D,MAAMC,MAAM,CAAC,MAAM,EAAEF,UAAU9B,QAAQ,EAAE8B,UAAU7B,QAAQ,EAAE6B,UAC3D5B,MACA,CAAC;QACHO,qBAAqBuB,KAAKC,IAAAA,mBAAc,EAAC;YAAEjC;YAAQC;YAAQC;YAAMC;QAAK;QAEtE,OAAO;YACL,IAAI,CAACJ,SAASmC,eAAe;YAE7BxB,qBAAqBsB;QACvB;IACF,GAAG;QAAChC;QAAQC;QAAQC;QAAMH,SAASoC;KAAS;IAE5C,MAAMC,iBAAiBC,IAAAA,gDAAuB,EAC5CJ,IAAAA,mBAAc,EAAC;QAAEjC;QAAQC;QAAQC;QAAMC;IAAK,IAC5C;QACEmC,aAAa;QACb,8BAA8B;QAC9B,sBAAsB;QACtB,4CAA4C;QAC5C,KAAK;QACLC,WAAW,CAACjC,OAASA;QACrBkC,mBAAmB;IACrB;IAGF,MAAMC,gBAAgBC,IAAAA,cAAO,EAAC;QAC5B,IAAI,CAACN,eAAe9B,IAAI,EAAE;YACxB,OAAO;QACT;QACA,IAAIqC,SAASP,eAAe9B,IAAI,EAAEsC,IAAI,CAACC,OAASA,KAAKC,IAAI,GAAGC;QAE5D,gEAAgE;QAEhE,IAAI3C,SAASA,QAAQ,CAAC,UAAUC,SAAS2C,MAAM,KAAK,GAAG;YACrD,OAAOL;QACT;QAEA,IAAIvC,SAASA,QAAQ,CAAC,UAAUC,SAAS2C,MAAM,GAAG,GAAG;YACnD,OAAOL,QAAQM,OAAO,CAACJ,OAAS,CAACxC,SAASD,QAAQ,CAACyC,KAAKK,SAAS;QACnE;QAEA,IAAI9C,SAAS4C,MAAM,GAAG,KAAK3C,SAAS2C,MAAM,KAAK,GAAG;YAChD,OAAOL,QAAQM,OAAO,CAACJ,OAASzC,SAASA,QAAQ,CAACyC,KAAKK,SAAS;QAClE;QAEA,IAAI9C,SAAS4C,MAAM,GAAG,KAAK3C,SAAS2C,MAAM,GAAG,GAAG;YAC9C,OAAOL,QAAQM,OACb,CAACJ,OACCzC,SAASA,QAAQ,CAACyC,KAAKK,SAAS,KAChC,CAAC7C,SAASD,QAAQ,CAACyC,KAAKK,SAAS;QAEvC;QAEA,OAAOP;IACT,GAAG;QAACP,eAAe9B,IAAI;QAAEF;QAAUC;KAAS;IAE5C,oCAAoC;IAEpC,MAAMsC,SAASD,IAAAA,cAAO,EAAC;QACrB,IAAI,CAACD,eAAe;YAClB,OAAO;QACT;QAEA,IAAIzC,WAAWmD,kBAAW,CAACC,GAAG,IAAIpD,WAAWmD,kBAAW,CAACE,UAAU,EAAE;YACnE,OAAOZ;QACT;QACA,OAAOA,cAAcG,GAAG,CAAC,CAACC;YACxB,MAAMS,QAAQ;gBACZ,GAAGT,IAAI;gBACPU,YAAY,AAAChD,UAAkB,CAACsC,KAAK5C,MAAM,CAAC,IAAI;YAClD;YAEA,sDAAsD;YACtD,+CAA+C;YAC/C,IACEqD,MAAMJ,SAAS,KAAKM,wBAAiB,CAACC,gBAAgB,IACtDH,MAAMJ,SAAS,KAAKM,wBAAiB,CAACE,KAAK,EAC3C;gBACAJ,MAAMK,QAAQ,GAAGL,MAAMM,YAAY,CAAC,EAAE,CAACD,QAAQ;YACjD;YACA,4CAA4C;YAE5C,OAAOL;QACT;IACF,GAAG;QAACb;QAAelC;QAAYP;KAAO;IAEtC,MAAM6D,QAAQnB,IAAAA,cAAO,EAAC;QACpB,OAAOC,QAAQK,UAAU;IACzB,qDAAqD;IACvD,GAAG;QAACL,QAAQK;KAAO;IAEnB,MAAMc,0BAA0B,CAACC;QAC/B,IAAI,CAACA,OAAO;YACV,MAAM,IAAIC,eAAQ,CAAC;QACrB;QAEA,IAAI,CAACC,MAAMC,OAAO,CAACH,QAAQ;YACzB,MAAM,IAAIC,eAAQ,CAAC;QACrB;QAEA,yBAAyB;QAEzB,OAAOG,QAAQC,GAAG,CAChBL,MAAMnB,GAAG,CAAC,CAACyB;YACT,OAAO5C,sBAAsB,MAAM;gBAAEyB,WAAWmB;YAAK;QACvD;IAEJ;IAEA;;GAEC,GACD,MAAMC,kBAAkBC,IAAAA,kBAAW,EAAC;QAClC,OAAOJ,QAAQC,GAAG,CAAC;YACjBlD,kBAAkB;YAClBO,sBAAsB,MAAM;gBAAEyB,WAAW;YAAO;SACjD;IACH,GAAG;QAACd,eAAe9B,IAAI;KAAC;IAExB,MAAMkE,sBAAsBD,IAAAA,kBAAW,EAAC;QACtC,OAAOT,wBAAwB;YAC7BN,wBAAiB,CAACC,gBAAgB;YAClCD,wBAAiB,CAACE,KAAK;SACxB;IACH,GAAG;QAACtB,eAAe9B,IAAI;KAAC;IAExB,MAAMmE,eAAeF,IAAAA,kBAAW,EAC9B,CAACG,SAAiBpB,OAAoBe;QACpC,OAAQA;YACN,KAAK;gBACH,OAAO3C,kBAAkB;oBACvBiD,UAAUD;oBACVE,OAAOtB,KAAK,CAAC,cAAc;oBAC3BK,UAAUL,KAAK,CAAC,iBAAiB;oBACjCuB,eAAevB,KAAK,CAAC,gBAAgB;gBACvC;YACF;gBACE,OAAOnC,cAAc;oBAAE,GAAGmC,KAAK;oBAAEqB,UAAUD;gBAAQ;QACvD;IACF,GACA,EAAE;IAGJ;;GAEC,GACD,MAAMI,cAAcP,IAAAA,kBAAW,EAAC,CAACG,SAAiBpB;QAChD,OAAOmB,aAAaC,SAASpB,OAAO;IACtC,GAAG,EAAE;IAEL;;GAEC,GACD,MAAMyB,kBAAkBR,IAAAA,kBAAW,EAAC,CAACG,SAAiBpB;QACpD,OAAOmB,aAAaC,SAASpB,OAAO;IACtC,GAAG,EAAE;IAEL,MAAM0B,eAAeT,IAAAA,kBAAW,EAC9B,CAACG,SAAiBL,MAAuBpE;QACvC,OAAQoE;YACN,KAAK;gBACH,OAAO/C,kBAAkB,MAAM;oBAC7B,aAAa;oBACbqD,UAAUD;oBACVzE;oBACAgF,QAAQ,CAAC,GAAG,EAAEC,gBAAO,CAAC,CAAC;gBACzB,GAAGC,IAAI,CAAC,CAACC;oBACP,IAAIA,IAAIC,OAAO,EAAE;wBACfjD,eAAekD,MAAM;wBACrB,OAAOF;oBACT,OAAO;wBACL,MAAM,IAAIG,MAAMH,IAAII,OAAO;oBAC7B;gBACF;YACF;gBACE,OAAO5E,cAAc,MAAM;oBACzB+D,UAAUD;oBACVzE;oBACAgF,QAAQ,CAAC,IAAI,EAAEC,gBAAO,CAAC,CAAC;gBAC1B,GAAGC,IAAI,CAAC,CAACC;oBACP,IAAIA,IAAIC,OAAO,EAAE;wBACf,8CAA8C;wBAC9C,gBAAgB;wBAChB,MAAM;wBACN,oBAAoB;wBACpB,2BAA2B;wBAC3B,OAAOD;oBACT,OAAO;wBACL,MAAM,IAAIG,MAAMH,IAAII,OAAO;oBAC7B;gBACF;QACJ;IACF,GACA,EAAE;IAEJ;;GAEC,GACD,MAAMC,cAAclB,IAAAA,kBAAW,EAAC,CAACG,SAAiBzE;QAChD,OAAO+E,aAAaN,SAAS,eAAezE;IAC9C,GAAG,EAAE;IAEL;;GAEC,GACD,MAAMyF,kBAAkBnB,IAAAA,kBAAW,EAAC,CAACG,SAAiBzE;QACpD,OAAO+E,aAAaN,SAAS,aAAazE;IAC5C,GAAG,EAAE;IAEL,MAAM0F,WAAW;QACfvD,eAAewD,OAAO,CAACxD,eAAejC,IAAI,GAAG;IAC/C;IAEA,yEAAyE;IACzE,WAAW;IACX,MAAM;IAEN,MAAM0F,uBAAuBtB,IAAAA,kBAAW,EACtC,CAACG,SAAiBoB;QAChB,OAAOpE,kBAAkB;YACvBiD,UAAUmB;YACVlC,cAAc;gBACZ;oBACEe,UAAUD;oBACVqB,cAAc;gBAChB;aACD;QACH;IACF,GACA,EAAE;IAGJ,MAAMC,kBAAkBzB,IAAAA,kBAAW,EACjC,CACE;;OAEC,GACDG,SACAuB;QAEA,IAAI,CAAChC,MAAMC,OAAO,CAAC+B,cAAc;YAC/B,MAAM,IAAIjC,eAAQ,CAAC;QACrB;QACA,OAAOtC,kBAAkB;YACvBiD,UAAUD;YACVd,cAAcqC;QAChB;IACF,GACA,EAAE;IAGJ,OAAO;QACLtD;QACA;YACEkB;YACAqC,WAAW9D,eAAe8D,SAAS;YACnCC,SAAS/D,eAAekD,MAAM;YAC9BK;YACArB;YACAE;YACAV;YACAgB;YACAW;YACAV;YACAW;YACAG;YACAG;YACAI,QAAQ;gBACNX,aAAa3E;gBACbgE,aAAa1D;gBACbsE,iBAAiBnE;gBACjBwD,iBAAiBpD;YACnB;YACA0E,YAAY;gBACVZ,aAAazE;gBACb8D,aAAazD;gBACbqE,iBAAiBlE;gBACjB8E,iBAAiB1E;YACnB;QACF;KACD;AACH"}
@@ -10,7 +10,7 @@ export interface PositionReturn {
10
10
  export declare const usePositionStream: (symbol?: string, options?: SWRConfiguration & {
11
11
  calcMode?: PriceMode;
12
12
  }) => readonly [{
13
- readonly rows: API.PositionExt[] | null;
13
+ readonly rows: API.PositionTPSLExt[] | null;
14
14
  readonly aggregated: any;
15
15
  readonly totalCollateral: Decimal;
16
16
  readonly totalValue: Decimal;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePositionStream.d.ts","sourceRoot":"","sources":["../../../src/orderly/usePositionStream/usePositionStream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAG5C,OAAO,EACL,KAAK,GAAG,EACR,WAAW,EAIZ,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,OAAO,EAAQ,MAAM,wBAAwB,CAAC;AASvD,KAAK,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,CACL,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,KAC5D,IAAI,CAAC;CACX;AAED,eAAO,MAAM,iBAAiB,YAInB,MAAM,YACL,gBAAgB,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;EAiStD,CAAC;AAEF,eAAO,MAAM,yBAAyB,sBAIpC,CAAC"}
@@ -17,16 +17,19 @@ _export(exports, {
17
17
  }
18
18
  });
19
19
  const _react = require("react");
20
- const _usePrivateQuery = require("../usePrivateQuery");
20
+ const _usePrivateQuery = require("../../usePrivateQuery");
21
21
  const _perp = require("@orderly.network/perp");
22
- const _createGetter = require("../utils/createGetter");
23
- const _useFundingRates = require("./useFundingRates");
24
- const _useSymbolsInfo = require("./useSymbolsInfo");
25
- const _useMarkPricesStream = require("./useMarkPricesStream");
22
+ const _createGetter = require("../../utils/createGetter");
23
+ const _useFundingRates = require("../useFundingRates");
24
+ const _types = require("@orderly.network/types");
25
+ const _useSymbolsInfo = require("../useSymbolsInfo");
26
+ const _useMarkPricesStream = require("../useMarkPricesStream");
26
27
  const _ramda = require("ramda");
27
- const _parseHolding = require("../utils/parseHolding");
28
+ const _parseHolding = require("../../utils/parseHolding");
28
29
  const _utils = require("@orderly.network/utils");
29
- const _useMarketsStream = require("./useMarketsStream");
30
+ const _useMarketsStream = require("../useMarketsStream");
31
+ const _orderlyHooks = require("../orderlyHooks");
32
+ const _utils1 = require("./utils");
30
33
  const usePositionStream = (/**
31
34
  * If symbol is passed, only the position of that symbol will be returned.
32
35
  */ symbol, options)=>{
@@ -49,6 +52,16 @@ const usePositionStream = (/**
49
52
  onError: (err)=>{}
50
53
  });
51
54
  const { data: markPrices } = (0, _useMarkPricesStream.useMarkPricesStream)();
55
+ // get TP/SL orders;
56
+ const [tpslOrders] = (0, _orderlyHooks.useOrderStream)({
57
+ status: _types.OrderStatus.INCOMPLETE,
58
+ includes: [
59
+ _types.AlgoOrderRootType.POSITIONAL_TP_SL,
60
+ _types.AlgoOrderRootType.TP_SL
61
+ ]
62
+ });
63
+ //
64
+ // console.log("---------------");
52
65
  const [priceMode, setPriceMode] = (0, _react.useState)(options?.calcMode || "markPrice");
53
66
  (0, _react.useEffect)(()=>{
54
67
  if (options?.calcMode && priceMode !== options?.calcMode) {
@@ -58,8 +71,6 @@ const usePositionStream = (/**
58
71
  options?.calcMode
59
72
  ]);
60
73
  const { data: tickers } = (0, _useMarketsStream.useMarketsStream)();
61
- // console.log("mark prices", markPrices);
62
- // console.log("tickers", tickers);
63
74
  const tickerPrices = (0, _react.useMemo)(()=>{
64
75
  const data = Object.create(null);
65
76
  tickers?.forEach((item)=>{
@@ -190,6 +201,8 @@ const usePositionStream = (/**
190
201
  const total = totalCollateral.toNumber();
191
202
  let rows = formatedPositions[0].filter((item)=>item.position_qty !== 0).map((item)=>{
192
203
  const info = symbolInfo?.[item.symbol];
204
+ const related_order = Array.isArray(tpslOrders) ? (0, _utils1.findPositionTPSLFromOrders)(tpslOrders, item.symbol) : undefined;
205
+ const tp_sl_pricer = !!related_order ? (0, _utils1.findTPSLFromOrder)(related_order) : undefined;
193
206
  const MMR = _perp.positions.MMR({
194
207
  baseMMR: info("base_mmr"),
195
208
  baseIMR: info("base_imr"),
@@ -204,13 +217,12 @@ const usePositionStream = (/**
204
217
  markPrice: item.mark_price,
205
218
  MMR
206
219
  }),
207
- // est_liq_price: positions.liqPrice({
208
- // markPrice: item.mark_price,
209
- // totalCollateral: total,
210
- // positionQty: item.position_qty,
211
- // MMR,
212
- // }),
213
- mmr: MMR
220
+ tp_trigger_price: tp_sl_pricer?.tp_trigger_price,
221
+ sl_trigger_price: tp_sl_pricer?.sl_trigger_price,
222
+ mmr: MMR,
223
+ // has_position_tp_sl:
224
+ // !tp_sl_pricer?.sl_trigger_price && !tp_sl_pricer?.tp_trigger_price,
225
+ algo_order: related_order
214
226
  };
215
227
  });
216
228
  // calculate est_liq_price
@@ -232,13 +244,9 @@ const usePositionStream = (/**
232
244
  formatedPositions,
233
245
  symbolInfo,
234
246
  accountInfo,
235
- totalCollateral
247
+ totalCollateral,
248
+ tpslOrders
236
249
  ]);
237
- // useEffect(() => {
238
- // ee.on("positions:changed", () => {
239
- // updatePositions();
240
- // });
241
- // }, []);
242
250
  const positionInfoGetter = (0, _createGetter.createGetter)(data, 1);
243
251
  return [
244
252
  {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/orderly/usePositionStream/usePositionStream.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { usePrivateQuery } from \"../../usePrivateQuery\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { type SWRConfiguration } from \"swr\";\nimport { createGetter } from \"../../utils/createGetter\";\nimport { useFundingRates } from \"../useFundingRates\";\nimport {\n type API,\n OrderEntity,\n AlgoOrderType,\n AlgoOrderRootType,\n OrderStatus,\n} 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 { useMarketsStream } from \"../useMarketsStream\";\nimport { useOrderStream } from \"../orderlyHooks\";\nimport {\n findPositionTPSLFromOrders,\n findTPSLFromOrder,\n findTPSLFromOrders,\n} from \"./utils\";\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 // get TP/SL orders;\n\n const [tpslOrders] = useOrderStream({\n status: OrderStatus.INCOMPLETE,\n includes: [AlgoOrderRootType.POSITIONAL_TP_SL, AlgoOrderRootType.TP_SL],\n });\n //\n\n // console.log(\"---------------\");\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\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<API.PositionTPSLExt[] | null>(() => {\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 related_order = Array.isArray(tpslOrders)\n ? findPositionTPSLFromOrders(tpslOrders, item.symbol)\n : undefined;\n\n const tp_sl_pricer = !!related_order\n ? findTPSLFromOrder(related_order)\n : undefined;\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 tp_trigger_price: tp_sl_pricer?.tp_trigger_price,\n sl_trigger_price: tp_sl_pricer?.sl_trigger_price,\n\n mmr: MMR,\n\n // has_position_tp_sl:\n // !tp_sl_pricer?.sl_trigger_price && !tp_sl_pricer?.tp_trigger_price,\n algo_order: related_order,\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, tpslOrders]);\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":["pathOr_unsettledPnLPathOr","usePositionStream","symbol","options","symbolInfo","useSymbolsInfo","data","accountInfo","usePrivateQuery","holding","formatter","fundingRates","useFundingRates","error","mutate","refreshPositions","onError","err","markPrices","useMarkPricesStream","tpslOrders","useOrderStream","status","OrderStatus","INCOMPLETE","includes","AlgoOrderRootType","POSITIONAL_TP_SL","TP_SL","priceMode","setPriceMode","useState","calcMode","useEffect","tickers","useMarketsStream","tickerPrices","useMemo","Object","create","forEach","item","formatedPositions","rows","isNil","filteredData","filter","unrealPnL_total","zero","notional_total","unsettlementPnL_total","formatted","map","unRealizedPrice","propOr","mark_price","price","info","notional","positions","position_qty","unrealPnl","unrealizedPnL","qty","openPrice","average_open_price","markPrice","imr","account","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","pathOr","USDC_holding","nonUSDC","parseHolding","USDCHolding","nonUSDCHolding","totalUnsettlementPnL","totalUnrealizedPnL","positionsRows","total","related_order","Array","isArray","findPositionTPSLFromOrders","undefined","tp_sl_pricer","findTPSLFromOrder","MMR","baseMMR","IMRFactor","maintenanceMargin","tp_trigger_price","sl_trigger_price","mmr","algo_order","est_liq_price","liqPrice","positionInfoGetter","createGetter","aggregated","loading","refresh"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { API, AlgoOrderEntity } from "@orderly.network/types";
2
+ export declare const findTPSLFromOrders: (orders: API.AlgoOrder[], symbol: string) => Partial<AlgoOrderEntity> | undefined;
3
+ export declare const findTPSLFromOrder: (order: API.AlgoOrder) => {
4
+ tp_trigger_price?: number | undefined;
5
+ sl_trigger_price?: number | undefined;
6
+ };
7
+ export declare const findPositionTPSLFromOrders: (orders: API.AlgoOrder[], symbol: string) => API.AlgoOrder | undefined;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/orderly/usePositionStream/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,kBAAkB,WACrB,IAAI,SAAS,EAAE,UACf,MAAM,KACb,QAAQ,eAAe,CAAC,GAAG,SAO7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UACrB,IAAI,SAAS;;;CA6BrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAC7B,IAAI,SAAS,EAAE,UACf,MAAM,KACb,IAAI,SAAS,GAAG,SAalB,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ findPositionTPSLFromOrders: function() {
13
+ return findPositionTPSLFromOrders;
14
+ },
15
+ findTPSLFromOrder: function() {
16
+ return findTPSLFromOrder;
17
+ },
18
+ findTPSLFromOrders: function() {
19
+ return findTPSLFromOrders;
20
+ }
21
+ });
22
+ const _types = require("@orderly.network/types");
23
+ const findTPSLFromOrders = (orders, symbol)=>{
24
+ const order = findPositionTPSLFromOrders(orders, symbol);
25
+ // console.log("!!!!!", order);
26
+ if (!order) return;
27
+ return findTPSLFromOrder(order);
28
+ };
29
+ const findTPSLFromOrder = (order)=>{
30
+ let tp_trigger_price;
31
+ let sl_trigger_price;
32
+ const tpOrder = order.child_orders.find((order)=>order.algo_type === _types.AlgoOrderType.TAKE_PROFIT);
33
+ const slOrder = order.child_orders.find((order)=>order.algo_type === _types.AlgoOrderType.STOP_LOSS);
34
+ if (tpOrder) {
35
+ tp_trigger_price = tpOrder.trigger_price;
36
+ // take_profit_qty = tpOrder.quantity ;
37
+ }
38
+ if (slOrder) {
39
+ sl_trigger_price = slOrder.trigger_price;
40
+ // stop_loss_qty = slOrder.quantity;
41
+ }
42
+ return {
43
+ tp_trigger_price,
44
+ sl_trigger_price
45
+ };
46
+ };
47
+ const findPositionTPSLFromOrders = (orders, symbol)=>{
48
+ return orders?.find((order)=>{
49
+ // console.log(order.symbol, symbol, order.algo_type);
50
+ return order.symbol === symbol && order.algo_type === _types.AlgoOrderRootType.POSITIONAL_TP_SL && (order.root_algo_status === _types.OrderStatus.NEW || order.root_algo_status === _types.OrderStatus.REPLACED || order.root_algo_status === _types.OrderStatus.PARTIAL_FILLED);
51
+ });
52
+ // return order;
53
+ };
54
+
55
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/orderly/usePositionStream/utils.ts"],"sourcesContent":["import {\n API,\n AlgoOrderEntity,\n AlgoOrderType,\n AlgoOrderRootType,\n OrderStatus,\n} from \"@orderly.network/types\";\n\nexport const findTPSLFromOrders = (\n orders: API.AlgoOrder[],\n symbol: string\n): Partial<AlgoOrderEntity> | undefined => {\n const order = findPositionTPSLFromOrders(orders, symbol);\n\n // console.log(\"!!!!!\", order);\n\n if (!order) return;\n return findTPSLFromOrder(order);\n};\n\nexport const findTPSLFromOrder = (\n order: API.AlgoOrder\n): {\n tp_trigger_price?: number;\n sl_trigger_price?: number;\n} => {\n let tp_trigger_price;\n\n let sl_trigger_price;\n\n const tpOrder = order.child_orders.find(\n (order: any) => order.algo_type === AlgoOrderType.TAKE_PROFIT\n );\n const slOrder = order.child_orders.find(\n (order: any) => order.algo_type === AlgoOrderType.STOP_LOSS\n );\n\n if (tpOrder) {\n tp_trigger_price = tpOrder.trigger_price;\n // take_profit_qty = tpOrder.quantity ;\n }\n if (slOrder) {\n sl_trigger_price = slOrder.trigger_price;\n // stop_loss_qty = slOrder.quantity;\n }\n\n return {\n tp_trigger_price,\n sl_trigger_price,\n };\n};\n\nexport const findPositionTPSLFromOrders = (\n orders: API.AlgoOrder[],\n symbol: string\n): API.AlgoOrder | undefined => {\n return orders?.find((order) => {\n // console.log(order.symbol, symbol, order.algo_type);\n return (\n order.symbol === symbol &&\n order.algo_type === AlgoOrderRootType.POSITIONAL_TP_SL &&\n (order.root_algo_status === OrderStatus.NEW ||\n order.root_algo_status === OrderStatus.REPLACED ||\n order.root_algo_status === OrderStatus.PARTIAL_FILLED)\n );\n });\n\n // return order;\n};\n"],"names":["findPositionTPSLFromOrders","findTPSLFromOrder","findTPSLFromOrders","orders","symbol","order","tp_trigger_price","sl_trigger_price","tpOrder","child_orders","find","algo_type","AlgoOrderType","TAKE_PROFIT","slOrder","STOP_LOSS","trigger_price","AlgoOrderRootType","POSITIONAL_TP_SL","root_algo_status","OrderStatus","NEW","REPLACED","PARTIAL_FILLED"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAoDaA,0BAA0B;eAA1BA;;IAhCAC,iBAAiB;eAAjBA;;IAZAC,kBAAkB;eAAlBA;;;uBAFN;AAEA,MAAMA,qBAAqB,CAChCC,QACAC;IAEA,MAAMC,QAAQL,2BAA2BG,QAAQC;IAEjD,+BAA+B;IAE/B,IAAI,CAACC,OAAO;IACZ,OAAOJ,kBAAkBI;AAC3B;AAEO,MAAMJ,oBAAoB,CAC/BI;IAKA,IAAIC;IAEJ,IAAIC;IAEJ,MAAMC,UAAUH,MAAMI,YAAY,CAACC,IAAI,CACrC,CAACL,QAAeA,MAAMM,SAAS,KAAKC,oBAAa,CAACC,WAAW;IAE/D,MAAMC,UAAUT,MAAMI,YAAY,CAACC,IAAI,CACrC,CAACL,QAAeA,MAAMM,SAAS,KAAKC,oBAAa,CAACG,SAAS;IAG7D,IAAIP,SAAS;QACXF,mBAAmBE,QAAQQ,aAAa;IACxC,wCAAwC;IAC1C;IACA,IAAIF,SAAS;QACXP,mBAAmBO,QAAQE,aAAa;IACxC,oCAAoC;IACtC;IAEA,OAAO;QACLV;QACAC;IACF;AACF;AAEO,MAAMP,6BAA6B,CACxCG,QACAC;IAEA,OAAOD,QAAQO,KAAK,CAACL;QACnB,sDAAsD;QACtD,OACEA,MAAMD,MAAM,KAAKA,UACjBC,MAAMM,SAAS,KAAKM,wBAAiB,CAACC,gBAAgB,IACrDb,CAAAA,MAAMc,gBAAgB,KAAKC,kBAAW,CAACC,GAAG,IACzChB,MAAMc,gBAAgB,KAAKC,kBAAW,CAACE,QAAQ,IAC/CjB,MAAMc,gBAAgB,KAAKC,kBAAW,CAACG,cAAc,AAAD;IAE1D;AAEA,gBAAgB;AAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePrivateDataObserver.d.ts","sourceRoot":"","sources":["../../src/orderly/usePrivateDataObserver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,eAAO,MAAM,sBAAsB;uBAEd,MAAM,KAAK,IAAI,MAAM,EAAE,cAAc,CAAC;UA4K1D,CAAC"}
1
+ {"version":3,"file":"usePrivateDataObserver.d.ts","sourceRoot":"","sources":["../../src/orderly/usePrivateDataObserver.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,eAAO,MAAM,sBAAsB;uBAEd,MAAM,KAAK,IAAI,MAAM,EAAE,cAAc,CAAC;UAgK1D,CAAC"}