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

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 (351) hide show
  1. package/esm/dataProvider.d.ts.map +1 -1
  2. package/esm/dataProvider.js +0 -2
  3. package/esm/dataProvider.js.map +1 -1
  4. package/esm/index.d.ts +4 -3
  5. package/esm/index.d.ts.map +1 -1
  6. package/esm/index.js +4 -3
  7. package/esm/index.js.map +1 -1
  8. package/esm/orderly/orderlyHooks.d.ts +3 -2
  9. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  10. package/esm/orderly/orderlyHooks.js +3 -2
  11. package/esm/orderly/orderlyHooks.js.map +1 -1
  12. package/esm/orderly/useCollateral.js +2 -2
  13. package/esm/orderly/useCollateral.js.map +1 -1
  14. package/esm/orderly/useMarginRatio.js +1 -1
  15. package/esm/orderly/useMarginRatio.js.map +1 -1
  16. package/esm/orderly/useMaxQty.js +2 -2
  17. package/esm/orderly/useMaxQty.js.map +1 -1
  18. package/esm/orderly/useOrderEntry.d.ts.map +1 -1
  19. package/esm/orderly/useOrderEntry.js +15 -12
  20. package/esm/orderly/useOrderEntry.js.map +1 -1
  21. package/esm/orderly/useOrderEntryNext/index.d.ts +1 -0
  22. package/esm/orderly/useOrderEntryNext/index.d.ts.map +1 -0
  23. package/esm/orderly/useOrderEntryNext/index.js +2 -0
  24. package/esm/orderly/useOrderEntryNext/index.js.map +1 -0
  25. package/esm/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +19 -12
  26. package/esm/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
  27. package/esm/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +91 -26
  28. package/esm/orderly/useOrderStream/useOrderStream.js.map +1 -0
  29. package/esm/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
  30. package/esm/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
  31. package/esm/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
  32. package/esm/orderly/usePositionStream/usePositionStream.js.map +1 -0
  33. package/esm/orderly/usePositionStream/utils.d.ts +8 -0
  34. package/esm/orderly/usePositionStream/utils.d.ts.map +1 -0
  35. package/esm/orderly/usePositionStream/utils.js +34 -0
  36. package/esm/orderly/usePositionStream/utils.js.map +1 -0
  37. package/esm/orderly/usePrivateDataObserver.d.ts.map +1 -1
  38. package/esm/orderly/usePrivateDataObserver.js +30 -43
  39. package/esm/orderly/usePrivateDataObserver.js.map +1 -1
  40. package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
  41. package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
  42. package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
  43. package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
  44. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts +32 -0
  45. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
  46. package/esm/orderly/useTakeProfitAndStopLoss/index.js +23 -0
  47. package/esm/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
  48. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +59 -0
  49. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
  50. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js +211 -0
  51. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
  52. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
  53. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
  54. package/esm/orderly/useTakeProfitAndStopLoss/utils.js +226 -0
  55. package/esm/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
  56. package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
  57. package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
  58. package/esm/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
  59. package/esm/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
  60. package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
  61. package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
  62. package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
  63. package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
  64. package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
  65. package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
  66. package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
  67. package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
  68. package/esm/services/orderCreator/baseAlgoCreator.d.ts +22 -0
  69. package/esm/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
  70. package/esm/services/orderCreator/baseAlgoCreator.js +57 -0
  71. package/esm/services/orderCreator/baseAlgoCreator.js.map +1 -0
  72. package/esm/services/orderCreator/baseCreator.d.ts +14 -0
  73. package/esm/services/orderCreator/baseCreator.d.ts.map +1 -0
  74. package/esm/services/orderCreator/baseCreator.js +92 -0
  75. package/esm/services/orderCreator/baseCreator.js.map +1 -0
  76. package/esm/services/orderCreator/factory.d.ts +7 -0
  77. package/esm/services/orderCreator/factory.d.ts.map +1 -0
  78. package/esm/services/orderCreator/factory.js +45 -0
  79. package/esm/services/orderCreator/factory.js.map +1 -0
  80. package/esm/services/orderCreator/fokCreator.d.ts +4 -0
  81. package/esm/services/orderCreator/fokCreator.d.ts.map +1 -0
  82. package/esm/services/orderCreator/fokCreator.js +5 -0
  83. package/esm/services/orderCreator/fokCreator.js.map +1 -0
  84. package/esm/services/orderCreator/generalCreator.d.ts +8 -0
  85. package/esm/services/orderCreator/generalCreator.d.ts.map +1 -0
  86. package/esm/services/orderCreator/generalCreator.js +15 -0
  87. package/esm/services/orderCreator/generalCreator.js.map +1 -0
  88. package/esm/services/orderCreator/interface.d.ts +23 -0
  89. package/esm/services/orderCreator/interface.d.ts.map +1 -0
  90. package/esm/services/orderCreator/interface.js +3 -0
  91. package/esm/services/orderCreator/interface.js.map +1 -0
  92. package/esm/services/orderCreator/iocCreator.d.ts +4 -0
  93. package/esm/services/orderCreator/iocCreator.d.ts.map +1 -0
  94. package/esm/services/orderCreator/iocCreator.js +5 -0
  95. package/esm/services/orderCreator/iocCreator.js.map +1 -0
  96. package/esm/services/orderCreator/limitOrderCreator.d.ts +8 -0
  97. package/esm/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
  98. package/esm/services/orderCreator/limitOrderCreator.js +69 -0
  99. package/esm/services/orderCreator/limitOrderCreator.js.map +1 -0
  100. package/esm/services/orderCreator/marketOrderCreator.d.ts +24 -0
  101. package/esm/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
  102. package/esm/services/orderCreator/marketOrderCreator.js +18 -0
  103. package/esm/services/orderCreator/marketOrderCreator.js.map +1 -0
  104. package/esm/services/orderCreator/postOnlyCreator.d.ts +4 -0
  105. package/esm/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
  106. package/esm/services/orderCreator/postOnlyCreator.js +5 -0
  107. package/esm/services/orderCreator/postOnlyCreator.js.map +1 -0
  108. package/esm/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
  109. package/esm/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
  110. package/esm/services/orderCreator/stopLimitOrderCreator.js +84 -0
  111. package/esm/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
  112. package/esm/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
  113. package/esm/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
  114. package/esm/services/orderCreator/stopMarketOrderCreator.js +46 -0
  115. package/esm/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
  116. package/esm/services/orderCreator/tpslOrderCreator.d.ts +32 -0
  117. package/esm/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
  118. package/esm/services/orderCreator/tpslOrderCreator.js +88 -0
  119. package/esm/services/orderCreator/tpslOrderCreator.js.map +1 -0
  120. package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
  121. package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
  122. package/esm/services/orderCreator/tpslPositionOrderCreator.js +74 -0
  123. package/esm/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
  124. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
  125. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
  126. package/esm/services/orderMerge/algoOrderMergeHandler.js +38 -0
  127. package/esm/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
  128. package/esm/services/orderMerge/baseMergeHandler.d.ts +22 -0
  129. package/esm/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
  130. package/esm/services/orderMerge/baseMergeHandler.js +160 -0
  131. package/esm/services/orderMerge/baseMergeHandler.js.map +1 -0
  132. package/esm/services/orderMerge/interface.d.ts +8 -0
  133. package/esm/services/orderMerge/interface.d.ts.map +1 -0
  134. package/esm/services/orderMerge/interface.js +3 -0
  135. package/esm/services/orderMerge/interface.js.map +1 -0
  136. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
  137. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
  138. package/esm/services/orderMerge/regularOrderMergeHandler.js +15 -0
  139. package/esm/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
  140. package/esm/usePoster.d.ts +3 -0
  141. package/esm/usePoster.d.ts.map +1 -1
  142. package/esm/usePoster.js +3 -1
  143. package/esm/usePoster.js.map +1 -1
  144. package/esm/utils/createOrder.d.ts +0 -55
  145. package/esm/utils/createOrder.d.ts.map +1 -1
  146. package/esm/utils/createOrder.js +0 -334
  147. package/esm/utils/createOrder.js.map +1 -1
  148. package/esm/utils/fokCreator.d.ts +1 -0
  149. package/esm/utils/fokCreator.d.ts.map +1 -0
  150. package/esm/utils/fokCreator.js +2 -0
  151. package/esm/utils/fokCreator.js.map +1 -0
  152. package/esm/utils/index.d.ts +5 -0
  153. package/esm/utils/index.d.ts.map +1 -0
  154. package/esm/utils/index.js +6 -0
  155. package/esm/utils/index.js.map +1 -0
  156. package/esm/utils/order.d.ts +2 -0
  157. package/esm/utils/order.d.ts.map +1 -0
  158. package/esm/utils/order.js +3 -0
  159. package/esm/utils/order.js.map +1 -0
  160. package/esm/utils/swr.d.ts +3 -1
  161. package/esm/utils/swr.d.ts.map +1 -1
  162. package/esm/utils/swr.js +123 -89
  163. package/esm/utils/swr.js.map +1 -1
  164. package/esm/utils/ws.d.ts +2 -0
  165. package/esm/utils/ws.d.ts.map +1 -0
  166. package/esm/utils/ws.js +9 -0
  167. package/esm/utils/ws.js.map +1 -0
  168. package/esm/version.d.ts +1 -1
  169. package/esm/version.d.ts.map +1 -1
  170. package/esm/version.js +2 -2
  171. package/esm/version.js.map +1 -1
  172. package/lib/dataProvider.d.ts.map +1 -1
  173. package/lib/dataProvider.js +0 -2
  174. package/lib/dataProvider.js.map +1 -1
  175. package/lib/index.d.ts +4 -3
  176. package/lib/index.d.ts.map +1 -1
  177. package/lib/index.js +10 -3
  178. package/lib/index.js.map +1 -1
  179. package/lib/orderly/orderlyHooks.d.ts +3 -2
  180. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  181. package/lib/orderly/orderlyHooks.js +6 -2
  182. package/lib/orderly/orderlyHooks.js.map +1 -1
  183. package/lib/orderly/useCollateral.js +2 -2
  184. package/lib/orderly/useCollateral.js.map +1 -1
  185. package/lib/orderly/useMarginRatio.js +1 -1
  186. package/lib/orderly/useMarginRatio.js.map +1 -1
  187. package/lib/orderly/useMaxQty.js +2 -2
  188. package/lib/orderly/useMaxQty.js.map +1 -1
  189. package/lib/orderly/useOrderEntry.d.ts.map +1 -1
  190. package/lib/orderly/useOrderEntry.js +14 -12
  191. package/lib/orderly/useOrderEntry.js.map +1 -1
  192. package/lib/orderly/useOrderEntryNext/index.d.ts +1 -0
  193. package/lib/orderly/useOrderEntryNext/index.d.ts.map +1 -0
  194. package/lib/orderly/useOrderEntryNext/index.js +3 -0
  195. package/lib/orderly/useOrderEntryNext/index.js.map +1 -0
  196. package/lib/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +19 -12
  197. package/lib/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
  198. package/lib/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +89 -25
  199. package/lib/orderly/useOrderStream/useOrderStream.js.map +1 -0
  200. package/lib/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
  201. package/lib/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
  202. package/lib/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
  203. package/lib/orderly/usePositionStream/usePositionStream.js.map +1 -0
  204. package/lib/orderly/usePositionStream/utils.d.ts +8 -0
  205. package/lib/orderly/usePositionStream/utils.d.ts.map +1 -0
  206. package/lib/orderly/usePositionStream/utils.js +55 -0
  207. package/lib/orderly/usePositionStream/utils.js.map +1 -0
  208. package/lib/orderly/usePrivateDataObserver.d.ts.map +1 -1
  209. package/lib/orderly/usePrivateDataObserver.js +28 -41
  210. package/lib/orderly/usePrivateDataObserver.js.map +1 -1
  211. package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
  212. package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
  213. package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
  214. package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
  215. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts +32 -0
  216. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
  217. package/lib/orderly/useTakeProfitAndStopLoss/index.js +33 -0
  218. package/lib/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
  219. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +59 -0
  220. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
  221. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js +218 -0
  222. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
  223. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
  224. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
  225. package/lib/orderly/useTakeProfitAndStopLoss/utils.js +252 -0
  226. package/lib/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
  227. package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
  228. package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
  229. package/lib/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
  230. package/lib/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
  231. package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
  232. package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
  233. package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
  234. package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
  235. package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
  236. package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
  237. package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
  238. package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
  239. package/lib/services/orderCreator/baseAlgoCreator.d.ts +22 -0
  240. package/lib/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
  241. package/lib/services/orderCreator/baseAlgoCreator.js +67 -0
  242. package/lib/services/orderCreator/baseAlgoCreator.js.map +1 -0
  243. package/lib/services/orderCreator/baseCreator.d.ts +14 -0
  244. package/lib/services/orderCreator/baseCreator.d.ts.map +1 -0
  245. package/lib/services/orderCreator/baseCreator.js +102 -0
  246. package/lib/services/orderCreator/baseCreator.js.map +1 -0
  247. package/lib/services/orderCreator/factory.d.ts +7 -0
  248. package/lib/services/orderCreator/factory.d.ts.map +1 -0
  249. package/lib/services/orderCreator/factory.js +54 -0
  250. package/lib/services/orderCreator/factory.js.map +1 -0
  251. package/lib/services/orderCreator/fokCreator.d.ts +4 -0
  252. package/lib/services/orderCreator/fokCreator.d.ts.map +1 -0
  253. package/lib/services/orderCreator/fokCreator.js +15 -0
  254. package/lib/services/orderCreator/fokCreator.js.map +1 -0
  255. package/lib/services/orderCreator/generalCreator.d.ts +8 -0
  256. package/lib/services/orderCreator/generalCreator.d.ts.map +1 -0
  257. package/lib/services/orderCreator/generalCreator.js +25 -0
  258. package/lib/services/orderCreator/generalCreator.js.map +1 -0
  259. package/lib/services/orderCreator/interface.d.ts +23 -0
  260. package/lib/services/orderCreator/interface.d.ts.map +1 -0
  261. package/lib/services/orderCreator/interface.js +6 -0
  262. package/lib/services/orderCreator/interface.js.map +1 -0
  263. package/lib/services/orderCreator/iocCreator.d.ts +4 -0
  264. package/lib/services/orderCreator/iocCreator.d.ts.map +1 -0
  265. package/lib/services/orderCreator/iocCreator.js +15 -0
  266. package/lib/services/orderCreator/iocCreator.js.map +1 -0
  267. package/lib/services/orderCreator/limitOrderCreator.d.ts +8 -0
  268. package/lib/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
  269. package/lib/services/orderCreator/limitOrderCreator.js +79 -0
  270. package/lib/services/orderCreator/limitOrderCreator.js.map +1 -0
  271. package/lib/services/orderCreator/marketOrderCreator.d.ts +24 -0
  272. package/lib/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
  273. package/lib/services/orderCreator/marketOrderCreator.js +28 -0
  274. package/lib/services/orderCreator/marketOrderCreator.js.map +1 -0
  275. package/lib/services/orderCreator/postOnlyCreator.d.ts +4 -0
  276. package/lib/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
  277. package/lib/services/orderCreator/postOnlyCreator.js +15 -0
  278. package/lib/services/orderCreator/postOnlyCreator.js.map +1 -0
  279. package/lib/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
  280. package/lib/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
  281. package/lib/services/orderCreator/stopLimitOrderCreator.js +93 -0
  282. package/lib/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
  283. package/lib/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
  284. package/lib/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
  285. package/lib/services/orderCreator/stopMarketOrderCreator.js +56 -0
  286. package/lib/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
  287. package/lib/services/orderCreator/tpslOrderCreator.d.ts +32 -0
  288. package/lib/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
  289. package/lib/services/orderCreator/tpslOrderCreator.js +94 -0
  290. package/lib/services/orderCreator/tpslOrderCreator.js.map +1 -0
  291. package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
  292. package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
  293. package/lib/services/orderCreator/tpslPositionOrderCreator.js +83 -0
  294. package/lib/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
  295. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
  296. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
  297. package/lib/services/orderMerge/algoOrderMergeHandler.js +48 -0
  298. package/lib/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
  299. package/lib/services/orderMerge/baseMergeHandler.d.ts +22 -0
  300. package/lib/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
  301. package/lib/services/orderMerge/baseMergeHandler.js +170 -0
  302. package/lib/services/orderMerge/baseMergeHandler.js.map +1 -0
  303. package/lib/services/orderMerge/interface.d.ts +8 -0
  304. package/lib/services/orderMerge/interface.d.ts.map +1 -0
  305. package/lib/services/orderMerge/interface.js +6 -0
  306. package/lib/services/orderMerge/interface.js.map +1 -0
  307. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
  308. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
  309. package/lib/services/orderMerge/regularOrderMergeHandler.js +25 -0
  310. package/lib/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
  311. package/lib/usePoster.d.ts +3 -0
  312. package/lib/usePoster.d.ts.map +1 -1
  313. package/lib/usePoster.js +3 -1
  314. package/lib/usePoster.js.map +1 -1
  315. package/lib/utils/createOrder.d.ts +0 -55
  316. package/lib/utils/createOrder.d.ts.map +1 -1
  317. package/lib/utils/createOrder.js +3 -375
  318. package/lib/utils/createOrder.js.map +1 -1
  319. package/lib/utils/fokCreator.d.ts +1 -0
  320. package/lib/utils/fokCreator.d.ts.map +1 -0
  321. package/lib/utils/fokCreator.js +3 -0
  322. package/lib/utils/fokCreator.js.map +1 -0
  323. package/lib/utils/index.d.ts +5 -0
  324. package/lib/utils/index.d.ts.map +1 -0
  325. package/lib/utils/index.js +36 -0
  326. package/lib/utils/index.js.map +1 -0
  327. package/lib/utils/order.d.ts +2 -0
  328. package/lib/utils/order.d.ts.map +1 -0
  329. package/lib/utils/order.js +6 -0
  330. package/lib/utils/order.js.map +1 -0
  331. package/lib/utils/swr.d.ts +3 -1
  332. package/lib/utils/swr.d.ts.map +1 -1
  333. package/lib/utils/swr.js +128 -89
  334. package/lib/utils/swr.js.map +1 -1
  335. package/lib/utils/ws.d.ts +2 -0
  336. package/lib/utils/ws.d.ts.map +1 -0
  337. package/lib/utils/ws.js +19 -0
  338. package/lib/utils/ws.js.map +1 -0
  339. package/lib/version.d.ts +1 -1
  340. package/lib/version.d.ts.map +1 -1
  341. package/lib/version.js +2 -2
  342. package/lib/version.js.map +1 -1
  343. package/package.json +9 -7
  344. package/esm/orderly/useOrderStream.d.ts.map +0 -1
  345. package/esm/orderly/useOrderStream.js.map +0 -1
  346. package/esm/orderly/usePositionStream.d.ts.map +0 -1
  347. package/esm/orderly/usePositionStream.js.map +0 -1
  348. package/lib/orderly/useOrderStream.d.ts.map +0 -1
  349. package/lib/orderly/useOrderStream.js.map +0 -1
  350. package/lib/orderly/usePositionStream.d.ts.map +0 -1
  351. package/lib/orderly/usePositionStream.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/stopMarketOrderCreator.ts"],"sourcesContent":["import {\n AlgoOrderEntity,\n AlgoOrderRootType,\n OrderEntity,\n OrderType,\n TriggerPriceType,\n} from \"@orderly.network/types\";\nimport { OrderFormEntity, ValuesDepConfig, VerifyResult } from \"./interface\";\n\nimport { pick } from \"ramda\";\nimport { BaseOrderCreator } from \"./baseCreator\";\n\nexport class StopMarketOrderCreator extends BaseOrderCreator<AlgoOrderEntity> {\n create(\n values: AlgoOrderEntity & {\n order_quantity: number;\n order_price: number;\n }\n ) {\n const order = {\n ...this.baseOrder(values as unknown as OrderEntity),\n // order_price: values.order_price,\n trigger_price: values.trigger_price!,\n algo_type: AlgoOrderRootType.STOP,\n type: OrderType.MARKET,\n quantity: values[\"order_quantity\"]!,\n // price: values[\"order_price\"],\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n };\n\n return pick(\n [\n \"symbol\",\n \"trigger_price\",\n \"algo_type\",\n \"type\",\n \"quantity\",\n // \"price\",\n \"trigger_price_type\",\n \"side\",\n \"reduce_only\",\n \"visible_quantity\",\n ],\n order\n );\n\n // return order;\n }\n validate(\n values: OrderFormEntity,\n config: ValuesDepConfig\n ): Promise<VerifyResult> {\n return this.baseValidate(values, config).then((errors) => {\n // const errors = this.baseValidate(values, config);\n // @ts-ignore\n const { order_price, trigger_price, side } = values;\n\n if (!trigger_price) {\n errors.trigger_price = {\n type: \"required\",\n message: \"Trigger price is required\",\n };\n }\n\n return errors;\n });\n }\n}\n"],"names":["StopMarketOrderCreator","BaseOrderCreator","create","values","order","baseOrder","trigger_price","algo_type","AlgoOrderRootType","STOP","type","OrderType","MARKET","quantity","trigger_price_type","TriggerPriceType","MARK_PRICE","pick","validate","config","baseValidate","then","errors","order_price","side","message"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAYaA;;;eAAAA;;;uBANN;uBAGc;6BACY;AAE1B,MAAMA,+BAA+BC,6BAAgB;IAC1DC,OACEC,MAGC,EACD;QACA,MAAMC,QAAQ;YACZ,GAAG,IAAI,CAACC,SAAS,CAACF,OAAiC;YACnD,mCAAmC;YACnCG,eAAeH,OAAOG,aAAa;YACnCC,WAAWC,wBAAiB,CAACC,IAAI;YACjCC,MAAMC,gBAAS,CAACC,MAAM;YACtBC,UAAUV,MAAM,CAAC,iBAAiB;YAClC,gCAAgC;YAChCW,oBAAoBC,uBAAgB,CAACC,UAAU;QACjD;QAEA,OAAOC,IAAAA,WAAI,EACT;YACE;YACA;YACA;YACA;YACA;YACA,WAAW;YACX;YACA;YACA;YACA;SACD,EACDb;IAGF,gBAAgB;IAClB;IACAc,SACEf,MAAuB,EACvBgB,MAAuB,EACA;QACvB,OAAO,IAAI,CAACC,YAAY,CAACjB,QAAQgB,QAAQE,IAAI,CAAC,CAACC;YAC7C,oDAAoD;YACpD,aAAa;YACb,MAAM,EAAEC,WAAW,EAAEjB,aAAa,EAAEkB,IAAI,EAAE,GAAGrB;YAE7C,IAAI,CAACG,eAAe;gBAClBgB,OAAOhB,aAAa,GAAG;oBACrBI,MAAM;oBACNe,SAAS;gBACX;YACF;YAEA,OAAOH;QACT;IACF;AACF"}
@@ -0,0 +1,32 @@
1
+ import { AlgoOrderEntity, OrderType, API } from "@orderly.network/types";
2
+ import { TriggerPriceType } from "@orderly.network/types";
3
+ import { AlgoOrderType } from "@orderly.network/types";
4
+ import { AlgoOrderRootType } from "@orderly.network/types";
5
+ import { OrderSide } from "@orderly.network/types";
6
+ import { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from "./baseAlgoCreator";
7
+ import { ValuesDepConfig } from "./interface";
8
+ export declare class TPSLOrderCreator extends BaseAlgoOrderCreator<AlgoOrderEntity<AlgoOrderRootType.TP_SL>> {
9
+ create(values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>, config: ValuesDepConfig): {
10
+ algo_type: AlgoOrderRootType;
11
+ trigger_price_type: TriggerPriceType;
12
+ reduce_only: boolean;
13
+ quantity: string | number;
14
+ symbol: string;
15
+ child_orders: {
16
+ algo_type: AlgoOrderType;
17
+ reduce_only: boolean;
18
+ side: OrderSide;
19
+ type: OrderType;
20
+ trigger_price: string | number;
21
+ symbol: string;
22
+ is_activated: boolean;
23
+ }[];
24
+ };
25
+ crateUpdateOrder(values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>, oldValue: API.AlgoOrder, config: ValuesDepConfig): [
26
+ {
27
+ child_orders: AlgoOrderUpdateEntity[];
28
+ },
29
+ AlgoOrderEntity<AlgoOrderRootType.TP_SL>
30
+ ];
31
+ }
32
+ //# sourceMappingURL=tpslOrderCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tpslOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/tpslOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAa,gBAAiB,SAAQ,oBAAoB,CACxD,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CACzC;IACC,MAAM,CACJ,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAChD,MAAM,EAAE,eAAe;;;;;;;;;;;;;;;;IAoDzB,gBAAgB,CACd,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAChD,QAAQ,EAAE,GAAG,CAAC,SAAS,EACvB,MAAM,EAAE,eAAe,GACtB;QACD;YAAE,YAAY,EAAE,qBAAqB,EAAE,CAAA;SAAE;QACzC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC;KACzC;CAsDF"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TPSLOrderCreator", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TPSLOrderCreator;
9
+ }
10
+ });
11
+ const _types = require("@orderly.network/types");
12
+ const _baseAlgoCreator = require("./baseAlgoCreator");
13
+ const _utils = require("@orderly.network/utils");
14
+ class TPSLOrderCreator extends _baseAlgoCreator.BaseAlgoOrderCreator {
15
+ create(values, config) {
16
+ const side = values.side === _types.OrderSide.BUY ? _types.OrderSide.SELL : _types.OrderSide.BUY;
17
+ const child_orders = [];
18
+ if (typeof values.tp_trigger_price !== "undefined") {
19
+ const tp_trigger_price = !!values.sl_trigger_price ? new _utils.Decimal(values.tp_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.tp_trigger_price;
20
+ child_orders.push({
21
+ algo_type: _types.AlgoOrderType.TAKE_PROFIT,
22
+ reduce_only: true,
23
+ side,
24
+ type: _types.OrderType.MARKET,
25
+ trigger_price: tp_trigger_price,
26
+ symbol: values.symbol,
27
+ is_activated: !!values.tp_trigger_price
28
+ });
29
+ }
30
+ if (typeof values.sl_trigger_price !== "undefined") {
31
+ const sl_trigger_price = !!values.sl_trigger_price ? new _utils.Decimal(values.sl_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.sl_trigger_price;
32
+ child_orders.push({
33
+ algo_type: _types.AlgoOrderType.STOP_LOSS,
34
+ reduce_only: true,
35
+ side,
36
+ type: _types.OrderType.MARKET,
37
+ trigger_price: sl_trigger_price,
38
+ symbol: values.symbol,
39
+ is_activated: !!values.sl_trigger_price
40
+ });
41
+ }
42
+ return {
43
+ algo_type: _types.AlgoOrderRootType.TP_SL,
44
+ trigger_price_type: _types.TriggerPriceType.MARK_PRICE,
45
+ reduce_only: true,
46
+ quantity: values.quantity,
47
+ symbol: values.symbol,
48
+ child_orders
49
+ };
50
+ }
51
+ crateUpdateOrder(values, oldValue, config) {
52
+ const data = this.create(values, config);
53
+ const newData = [];
54
+ const needUpdateQty = values.quantity !== oldValue.quantity;
55
+ data.child_orders.forEach((order)=>{
56
+ // find the old order
57
+ let _order = Object.create(null);
58
+ if (needUpdateQty) {
59
+ _order["quantity"] = data.quantity;
60
+ }
61
+ const oldOrder = oldValue.child_orders?.find((oldOrder)=>oldOrder.algo_type === order.algo_type);
62
+ if (oldOrder) {
63
+ if (!order.is_activated) {
64
+ _order["is_activated"] = false;
65
+ } else if (oldOrder.trigger_price !== order.trigger_price) {
66
+ // _order["order_id"] = Number(oldOrder.algo_order_id);
67
+ _order["trigger_price"] = order.trigger_price;
68
+ }
69
+ if (Object.keys(_order).length > 0) {
70
+ _order["order_id"] = Number(oldOrder.algo_order_id);
71
+ newData.push(_order);
72
+ }
73
+ }
74
+ });
75
+ if (needUpdateQty && newData.length < 2) {
76
+ // if quantity is changed, need to update all child orders
77
+ const missingOrders = oldValue.child_orders.filter((order)=>order.algo_order_id !== newData[0].order_id);
78
+ if (missingOrders.length) {
79
+ newData.push({
80
+ quantity: Number(data.quantity),
81
+ order_id: missingOrders[0].algo_order_id
82
+ });
83
+ }
84
+ }
85
+ return [
86
+ {
87
+ child_orders: newData
88
+ },
89
+ data
90
+ ];
91
+ }
92
+ }
93
+
94
+ //# sourceMappingURL=tpslOrderCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/tpslOrderCreator.ts"],"sourcesContent":["import { AlgoOrderEntity, OrderType, API } from \"@orderly.network/types\";\nimport { TriggerPriceType } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from \"./baseAlgoCreator\";\nimport { ValuesDepConfig } from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport class TPSLOrderCreator extends BaseAlgoOrderCreator<\n AlgoOrderEntity<AlgoOrderRootType.TP_SL>\n> {\n create(\n values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n config: ValuesDepConfig\n ) {\n const side =\n values.side! === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;\n\n const child_orders = [];\n\n if (typeof values.tp_trigger_price !== \"undefined\") {\n const tp_trigger_price = !!values.sl_trigger_price\n ? new Decimal(values.tp_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.tp_trigger_price;\n\n child_orders.push({\n algo_type: AlgoOrderType.TAKE_PROFIT,\n reduce_only: true,\n side,\n type: OrderType.MARKET,\n trigger_price: tp_trigger_price,\n symbol: values.symbol,\n is_activated: !!values.tp_trigger_price,\n });\n }\n\n if (typeof values.sl_trigger_price !== \"undefined\") {\n const sl_trigger_price = !!values.sl_trigger_price\n ? new Decimal(values.sl_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.sl_trigger_price;\n child_orders.push({\n algo_type: AlgoOrderType.STOP_LOSS,\n reduce_only: true,\n side,\n type: OrderType.MARKET,\n trigger_price: sl_trigger_price,\n symbol: values.symbol,\n is_activated: !!values.sl_trigger_price,\n });\n }\n\n return {\n algo_type: AlgoOrderRootType.TP_SL,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n reduce_only: true,\n quantity: values.quantity,\n symbol: values.symbol,\n child_orders,\n };\n }\n\n crateUpdateOrder(\n values: AlgoOrderEntity<AlgoOrderRootType.TP_SL>,\n oldValue: API.AlgoOrder,\n config: ValuesDepConfig\n ): [\n { child_orders: AlgoOrderUpdateEntity[] },\n AlgoOrderEntity<AlgoOrderRootType.TP_SL>\n ] {\n const data = this.create(values, config);\n const newData: AlgoOrderUpdateEntity[] = [];\n\n const needUpdateQty = values.quantity !== oldValue.quantity;\n\n data.child_orders.forEach((order) => {\n // find the old order\n let _order = Object.create(null);\n\n if (needUpdateQty) {\n _order[\"quantity\"] = data.quantity;\n }\n\n const oldOrder = oldValue.child_orders?.find(\n (oldOrder) => oldOrder.algo_type === order.algo_type\n );\n\n if (oldOrder) {\n if (!order.is_activated) {\n _order[\"is_activated\"] = false;\n } else if (oldOrder.trigger_price !== order.trigger_price) {\n // _order[\"order_id\"] = Number(oldOrder.algo_order_id);\n _order[\"trigger_price\"] = order.trigger_price as number;\n }\n\n if (Object.keys(_order).length > 0) {\n _order[\"order_id\"] = Number(oldOrder.algo_order_id);\n newData.push(_order);\n }\n }\n });\n\n if (needUpdateQty && newData.length < 2) {\n // if quantity is changed, need to update all child orders\n const missingOrders = oldValue.child_orders.filter(\n (order) => order.algo_order_id !== newData[0].order_id\n );\n\n if (missingOrders.length) {\n newData.push({\n quantity: Number(data.quantity),\n order_id: missingOrders[0].algo_order_id,\n });\n }\n }\n\n return [\n {\n child_orders: newData,\n },\n data,\n ];\n }\n}\n"],"names":["TPSLOrderCreator","BaseAlgoOrderCreator","create","values","config","side","OrderSide","BUY","SELL","child_orders","tp_trigger_price","sl_trigger_price","Decimal","todp","symbol","quote_dp","toNumber","push","algo_type","AlgoOrderType","TAKE_PROFIT","reduce_only","type","OrderType","MARKET","trigger_price","is_activated","STOP_LOSS","AlgoOrderRootType","TP_SL","trigger_price_type","TriggerPriceType","MARK_PRICE","quantity","crateUpdateOrder","oldValue","data","newData","needUpdateQty","forEach","order","_order","Object","oldOrder","find","keys","length","Number","algo_order_id","missingOrders","filter","order_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { AlgoOrderEntity, AlgoOrderType, OrderType, TriggerPriceType, AlgoOrderRootType } from "@orderly.network/types";
2
+ import { OrderSide } from "@orderly.network/types";
3
+ import { API } from "@orderly.network/types";
4
+ import { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from "./baseAlgoCreator";
5
+ import { ValuesDepConfig } from "./interface";
6
+ export declare class TPSLPositionOrderCreator extends BaseAlgoOrderCreator<AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>> {
7
+ create(values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>, config: ValuesDepConfig): {
8
+ algo_type: AlgoOrderRootType;
9
+ trigger_price_type: TriggerPriceType;
10
+ symbol: string;
11
+ child_orders: {
12
+ algo_type: AlgoOrderType;
13
+ reduce_only: boolean;
14
+ side: OrderSide;
15
+ type: OrderType;
16
+ trigger_price: string | number;
17
+ trigger_price_type: TriggerPriceType;
18
+ symbol: string;
19
+ is_activated: boolean;
20
+ }[];
21
+ };
22
+ crateUpdateOrder(values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>,
23
+ /**
24
+ * The old value of the order
25
+ */
26
+ oldValue: API.AlgoOrder, config: ValuesDepConfig): [
27
+ {
28
+ child_orders: AlgoOrderUpdateEntity[];
29
+ },
30
+ AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>
31
+ ];
32
+ }
33
+ //# sourceMappingURL=tpslPositionOrderCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tpslPositionOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/tpslPositionOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAa,wBAAyB,SAAQ,oBAAoB,CAChE,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CACpD;IACC,MAAM,CACJ,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAC3D,MAAM,EAAE,eAAe;;;;;;;;;;;;;;;IAqDzB,gBAAgB,CACd,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAC3D;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,SAAS,EACvB,MAAM,EAAE,eAAe,GACtB;QACD;YAAE,YAAY,EAAE,qBAAqB,EAAE,CAAA;SAAE;QACzC,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;KACpD;CAoCF"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TPSLPositionOrderCreator", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TPSLPositionOrderCreator;
9
+ }
10
+ });
11
+ const _types = require("@orderly.network/types");
12
+ const _baseAlgoCreator = require("./baseAlgoCreator");
13
+ const _utils = require("@orderly.network/utils");
14
+ class TPSLPositionOrderCreator extends _baseAlgoCreator.BaseAlgoOrderCreator {
15
+ create(values, config) {
16
+ const side = values.side === _types.OrderSide.BUY ? _types.OrderSide.SELL : _types.OrderSide.BUY;
17
+ const child_orders = [];
18
+ if (typeof values.tp_trigger_price !== "undefined") {
19
+ const tp_trigger_price = !!values.tp_trigger_price ? new _utils.Decimal(values.tp_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.tp_trigger_price;
20
+ child_orders.push({
21
+ algo_type: _types.AlgoOrderType.TAKE_PROFIT,
22
+ reduce_only: true,
23
+ side,
24
+ type: _types.OrderType.CLOSE_POSITION,
25
+ trigger_price: tp_trigger_price,
26
+ trigger_price_type: _types.TriggerPriceType.MARK_PRICE,
27
+ symbol: values.symbol,
28
+ is_activated: !!values.tp_trigger_price
29
+ });
30
+ }
31
+ if (typeof values.sl_trigger_price !== "undefined") {
32
+ const sl_trigger_price = !!values.sl_trigger_price ? new _utils.Decimal(values.sl_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.sl_trigger_price;
33
+ child_orders.push({
34
+ algo_type: _types.AlgoOrderType.STOP_LOSS,
35
+ reduce_only: true,
36
+ side,
37
+ type: _types.OrderType.CLOSE_POSITION,
38
+ trigger_price: sl_trigger_price,
39
+ trigger_price_type: _types.TriggerPriceType.MARK_PRICE,
40
+ symbol: values.symbol,
41
+ is_activated: !!values.sl_trigger_price
42
+ });
43
+ }
44
+ return {
45
+ algo_type: _types.AlgoOrderRootType.POSITIONAL_TP_SL,
46
+ trigger_price_type: _types.TriggerPriceType.MARK_PRICE,
47
+ // reduce_only: true,
48
+ symbol: values.symbol,
49
+ child_orders
50
+ };
51
+ }
52
+ crateUpdateOrder(values, /**
53
+ * The old value of the order
54
+ */ oldValue, config) {
55
+ const data = this.create(values, config);
56
+ const newData = [];
57
+ data.child_orders.forEach((order)=>{
58
+ // find the old order
59
+ const oldOrder = oldValue.child_orders?.find((oldOrder)=>oldOrder.algo_type === order.algo_type);
60
+ if (oldOrder) {
61
+ if (!order.is_activated) {
62
+ newData.push({
63
+ is_activated: false,
64
+ order_id: Number(oldOrder.algo_order_id)
65
+ });
66
+ } else if (oldOrder.trigger_price !== order.trigger_price) {
67
+ newData.push({
68
+ trigger_price: order.trigger_price,
69
+ order_id: Number(oldOrder.algo_order_id)
70
+ });
71
+ }
72
+ }
73
+ });
74
+ return [
75
+ {
76
+ child_orders: newData
77
+ },
78
+ data
79
+ ];
80
+ }
81
+ }
82
+
83
+ //# sourceMappingURL=tpslPositionOrderCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/tpslPositionOrderCreator.ts"],"sourcesContent":["import {\n AlgoOrderEntity,\n AlgoOrderType,\n OrderType,\n TriggerPriceType,\n AlgoOrderRootType,\n} from \"@orderly.network/types\";\nimport { OrderSide } from \"@orderly.network/types\";\nimport { API } from \"@orderly.network/types\";\nimport { AlgoOrderUpdateEntity, BaseAlgoOrderCreator } from \"./baseAlgoCreator\";\nimport { ValuesDepConfig } from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport class TPSLPositionOrderCreator extends BaseAlgoOrderCreator<\n AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>\n> {\n create(\n values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>,\n config: ValuesDepConfig\n ) {\n const side =\n values.side! === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;\n\n const child_orders = [];\n\n if (typeof values.tp_trigger_price !== \"undefined\") {\n const tp_trigger_price = !!values.tp_trigger_price\n ? new Decimal(values.tp_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.tp_trigger_price;\n\n child_orders.push({\n algo_type: AlgoOrderType.TAKE_PROFIT,\n reduce_only: true,\n side,\n type: OrderType.CLOSE_POSITION,\n trigger_price: tp_trigger_price,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n symbol: values.symbol,\n is_activated: !!values.tp_trigger_price,\n });\n }\n\n if (typeof values.sl_trigger_price !== \"undefined\") {\n const sl_trigger_price = !!values.sl_trigger_price\n ? new Decimal(values.sl_trigger_price)\n .todp(config.symbol.quote_dp)\n .toNumber()\n : values.sl_trigger_price;\n child_orders.push({\n algo_type: AlgoOrderType.STOP_LOSS,\n reduce_only: true,\n side,\n type: OrderType.CLOSE_POSITION,\n trigger_price: sl_trigger_price,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n symbol: values.symbol,\n is_activated: !!values.sl_trigger_price,\n });\n }\n\n return {\n algo_type: AlgoOrderRootType.POSITIONAL_TP_SL,\n trigger_price_type: TriggerPriceType.MARK_PRICE,\n // reduce_only: true,\n symbol: values.symbol,\n child_orders,\n };\n }\n\n crateUpdateOrder(\n values: AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>,\n /**\n * The old value of the order\n */\n oldValue: API.AlgoOrder,\n config: ValuesDepConfig\n ): [\n { child_orders: AlgoOrderUpdateEntity[] },\n AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL>\n ] {\n const data = this.create(values, config);\n const newData: {\n trigger_price?: number;\n order_id: number;\n is_activated?: boolean;\n }[] = [];\n data.child_orders.forEach((order) => {\n // find the old order\n\n const oldOrder = oldValue.child_orders?.find(\n (oldOrder) => oldOrder.algo_type === order.algo_type\n );\n\n if (oldOrder) {\n if (!order.is_activated) {\n newData.push({\n is_activated: false,\n order_id: Number(oldOrder.algo_order_id),\n });\n } else if (oldOrder.trigger_price !== order.trigger_price) {\n newData.push({\n trigger_price: order.trigger_price as number,\n order_id: Number(oldOrder.algo_order_id),\n });\n }\n }\n });\n\n return [\n {\n child_orders: newData,\n },\n data,\n ];\n }\n}\n"],"names":["TPSLPositionOrderCreator","BaseAlgoOrderCreator","create","values","config","side","OrderSide","BUY","SELL","child_orders","tp_trigger_price","Decimal","todp","symbol","quote_dp","toNumber","push","algo_type","AlgoOrderType","TAKE_PROFIT","reduce_only","type","OrderType","CLOSE_POSITION","trigger_price","trigger_price_type","TriggerPriceType","MARK_PRICE","is_activated","sl_trigger_price","STOP_LOSS","AlgoOrderRootType","POSITIONAL_TP_SL","crateUpdateOrder","oldValue","data","newData","forEach","order","oldOrder","find","order_id","Number","algo_order_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAaaA;;;eAAAA;;;uBAPN;iCAGqD;uBAEpC;AAEjB,MAAMA,iCAAiCC,qCAAoB;IAGhEC,OACEC,MAA2D,EAC3DC,MAAuB,EACvB;QACA,MAAMC,OACJF,OAAOE,IAAI,KAAMC,gBAAS,CAACC,GAAG,GAAGD,gBAAS,CAACE,IAAI,GAAGF,gBAAS,CAACC,GAAG;QAEjE,MAAME,eAAe,EAAE;QAEvB,IAAI,OAAON,OAAOO,gBAAgB,KAAK,aAAa;YAClD,MAAMA,mBAAmB,CAAC,CAACP,OAAOO,gBAAgB,GAC9C,IAAIC,cAAO,CAACR,OAAOO,gBAAgB,EAChCE,IAAI,CAACR,OAAOS,MAAM,CAACC,QAAQ,EAC3BC,QAAQ,KACXZ,OAAOO,gBAAgB;YAE3BD,aAAaO,IAAI,CAAC;gBAChBC,WAAWC,oBAAa,CAACC,WAAW;gBACpCC,aAAa;gBACbf;gBACAgB,MAAMC,gBAAS,CAACC,cAAc;gBAC9BC,eAAed;gBACfe,oBAAoBC,uBAAgB,CAACC,UAAU;gBAC/Cd,QAAQV,OAAOU,MAAM;gBACrBe,cAAc,CAAC,CAACzB,OAAOO,gBAAgB;YACzC;QACF;QAEA,IAAI,OAAOP,OAAO0B,gBAAgB,KAAK,aAAa;YAClD,MAAMA,mBAAmB,CAAC,CAAC1B,OAAO0B,gBAAgB,GAC9C,IAAIlB,cAAO,CAACR,OAAO0B,gBAAgB,EAChCjB,IAAI,CAACR,OAAOS,MAAM,CAACC,QAAQ,EAC3BC,QAAQ,KACXZ,OAAO0B,gBAAgB;YAC3BpB,aAAaO,IAAI,CAAC;gBAChBC,WAAWC,oBAAa,CAACY,SAAS;gBAClCV,aAAa;gBACbf;gBACAgB,MAAMC,gBAAS,CAACC,cAAc;gBAC9BC,eAAeK;gBACfJ,oBAAoBC,uBAAgB,CAACC,UAAU;gBAC/Cd,QAAQV,OAAOU,MAAM;gBACrBe,cAAc,CAAC,CAACzB,OAAO0B,gBAAgB;YACzC;QACF;QAEA,OAAO;YACLZ,WAAWc,wBAAiB,CAACC,gBAAgB;YAC7CP,oBAAoBC,uBAAgB,CAACC,UAAU;YAC/C,qBAAqB;YACrBd,QAAQV,OAAOU,MAAM;YACrBJ;QACF;IACF;IAEAwB,iBACE9B,MAA2D,EAC3D;;KAEC,GACD+B,QAAuB,EACvB9B,MAAuB,EAIvB;QACA,MAAM+B,OAAO,IAAI,CAACjC,MAAM,CAACC,QAAQC;QACjC,MAAMgC,UAIA,EAAE;QACRD,KAAK1B,YAAY,CAAC4B,OAAO,CAAC,CAACC;YACzB,qBAAqB;YAErB,MAAMC,WAAWL,SAASzB,YAAY,EAAE+B,KACtC,CAACD,WAAaA,SAAStB,SAAS,KAAKqB,MAAMrB,SAAS;YAGtD,IAAIsB,UAAU;gBACZ,IAAI,CAACD,MAAMV,YAAY,EAAE;oBACvBQ,QAAQpB,IAAI,CAAC;wBACXY,cAAc;wBACda,UAAUC,OAAOH,SAASI,aAAa;oBACzC;gBACF,OAAO,IAAIJ,SAASf,aAAa,KAAKc,MAAMd,aAAa,EAAE;oBACzDY,QAAQpB,IAAI,CAAC;wBACXQ,eAAec,MAAMd,aAAa;wBAClCiB,UAAUC,OAAOH,SAASI,aAAa;oBACzC;gBACF;YACF;QACF;QAEA,OAAO;YACL;gBACElC,cAAc2B;YAChB;YACAD;SACD;IACH;AACF"}
@@ -0,0 +1,9 @@
1
+ import { API, WSMessage } from "@orderly.network/types";
2
+ import { BaseMergeHandler } from "./baseMergeHandler";
3
+ export declare class AlgoOrderMergeHandler extends BaseMergeHandler<WSMessage.AlgoOrder[], API.AlgoOrder> {
4
+ get orderId(): number;
5
+ get status(): string;
6
+ pre(message: WSMessage.AlgoOrder[], prevData?: API.OrderResponse[]): API.AlgoOrder;
7
+ static groupOrders(orders: WSMessage.AlgoOrder[]): API.AlgoOrder;
8
+ }
9
+ //# sourceMappingURL=algoOrderMergeHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algoOrderMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/algoOrderMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,qBAAsB,SAAQ,gBAAgB,CACzD,SAAS,CAAC,SAAS,EAAE,EACrB,GAAG,CAAC,SAAS,CACd;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAeD,GAAG,CACD,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAC7B,GAAG,CAAC,SAAS;IAIhB,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS;CAsBjE"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "AlgoOrderMergeHandler", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return AlgoOrderMergeHandler;
9
+ }
10
+ });
11
+ const _baseMergeHandler = require("./baseMergeHandler");
12
+ const _ws = require("../../utils/ws");
13
+ class AlgoOrderMergeHandler extends _baseMergeHandler.BaseMergeHandler {
14
+ get orderId() {
15
+ return this.data.algo_order_id;
16
+ }
17
+ get status() {
18
+ return this.data.root_algo_status;
19
+ }
20
+ // merge(
21
+ // key: string,
22
+ // message: WSMessage.AlgoOrder[],
23
+ // prevData: API.OrderResponse[]
24
+ // ): API.OrderResponse[] | undefined {
25
+ // switch (this.status) {
26
+ // case "TRIGGER": {
27
+ // }
28
+ // default:
29
+ // return super.merge(key, message, prevData);
30
+ // }
31
+ // }
32
+ pre(message, prevData) {
33
+ return AlgoOrderMergeHandler.groupOrders(message);
34
+ }
35
+ static groupOrders(orders) {
36
+ const rootOrderIndex = orders.findIndex((order)=>order.parentAlgoOrderId === 0 && order.algoOrderId === order.rootAlgoOrderId);
37
+ if (rootOrderIndex === -1) {
38
+ throw new Error("Root order not found");
39
+ }
40
+ const rootOrder_ = (0, _ws.object2underscore)(orders[rootOrderIndex]);
41
+ rootOrder_.child_orders = orders.filter((_, index)=>index !== rootOrderIndex).map((order)=>{
42
+ return (0, _ws.object2underscore)(order);
43
+ });
44
+ return rootOrder_;
45
+ }
46
+ }
47
+
48
+ //# sourceMappingURL=algoOrderMergeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderMerge/algoOrderMergeHandler.ts"],"sourcesContent":["import { API, WSMessage } from \"@orderly.network/types\";\nimport { BaseMergeHandler } from \"./baseMergeHandler\";\nimport { object2underscore } from \"../../utils/ws\";\n\nexport class AlgoOrderMergeHandler extends BaseMergeHandler<\n WSMessage.AlgoOrder[],\n API.AlgoOrder\n> {\n get orderId(): number {\n return this.data.algo_order_id;\n }\n\n get status(): string {\n return this.data.root_algo_status;\n }\n\n // merge(\n // key: string,\n // message: WSMessage.AlgoOrder[],\n // prevData: API.OrderResponse[]\n // ): API.OrderResponse[] | undefined {\n // switch (this.status) {\n // case \"TRIGGER\": {\n // }\n // default:\n // return super.merge(key, message, prevData);\n // }\n // }\n\n pre(\n message: WSMessage.AlgoOrder[],\n prevData?: API.OrderResponse[]\n ): API.AlgoOrder {\n return AlgoOrderMergeHandler.groupOrders(message);\n }\n\n static groupOrders(orders: WSMessage.AlgoOrder[]): API.AlgoOrder {\n const rootOrderIndex = orders.findIndex(\n (order) =>\n order.parentAlgoOrderId === 0 &&\n order.algoOrderId === order.rootAlgoOrderId\n );\n if (rootOrderIndex === -1) {\n throw new Error(\"Root order not found\");\n }\n\n const rootOrder_ = object2underscore(\n orders[rootOrderIndex]\n ) as unknown as API.AlgoOrder;\n\n rootOrder_.child_orders = orders\n .filter((_, index) => index !== rootOrderIndex)\n .map((order) => {\n return object2underscore(order) as unknown as API.AlgoOrder;\n });\n\n return rootOrder_;\n }\n}\n"],"names":["AlgoOrderMergeHandler","BaseMergeHandler","orderId","data","algo_order_id","status","root_algo_status","pre","message","prevData","groupOrders","orders","rootOrderIndex","findIndex","order","parentAlgoOrderId","algoOrderId","rootAlgoOrderId","Error","rootOrder_","object2underscore","child_orders","filter","_","index","map"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAIaA;;;eAAAA;;;kCAHoB;oBACC;AAE3B,MAAMA,8BAA8BC,kCAAgB;IAIzD,IAAIC,UAAkB;QACpB,OAAO,IAAI,CAACC,IAAI,CAACC,aAAa;IAChC;IAEA,IAAIC,SAAiB;QACnB,OAAO,IAAI,CAACF,IAAI,CAACG,gBAAgB;IACnC;IAEA,WAAW;IACX,mBAAmB;IACnB,sCAAsC;IACtC,oCAAoC;IACpC,yCAAyC;IACzC,6BAA6B;IAC7B,0BAA0B;IAC1B,UAAU;IACV,iBAAiB;IACjB,sDAAsD;IACtD,QAAQ;IACR,MAAM;IAENC,IACEC,OAA8B,EAC9BC,QAA8B,EACf;QACf,OAAOT,sBAAsBU,WAAW,CAACF;IAC3C;IAEA,OAAOE,YAAYC,MAA6B,EAAiB;QAC/D,MAAMC,iBAAiBD,OAAOE,SAAS,CACrC,CAACC,QACCA,MAAMC,iBAAiB,KAAK,KAC5BD,MAAME,WAAW,KAAKF,MAAMG,eAAe;QAE/C,IAAIL,mBAAmB,CAAC,GAAG;YACzB,MAAM,IAAIM,MAAM;QAClB;QAEA,MAAMC,aAAaC,IAAAA,qBAAiB,EAClCT,MAAM,CAACC,eAAe;QAGxBO,WAAWE,YAAY,GAAGV,OACvBW,MAAM,CAAC,CAACC,GAAGC,QAAUA,UAAUZ,gBAC/Ba,GAAG,CAAC,CAACX;YACJ,OAAOM,IAAAA,qBAAiB,EAACN;QAC3B;QAEF,OAAOK;IACT;AACF"}
@@ -0,0 +1,22 @@
1
+ import { WSMessage, API } from "@orderly.network/types";
2
+ import { IOrderMergeHandler } from "./interface";
3
+ export declare abstract class BaseMergeHandler<T extends WSMessage.AlgoOrder[] | WSMessage.Order, D extends API.AlgoOrder | API.Order> implements IOrderMergeHandler<T, D> {
4
+ private message;
5
+ data: D;
6
+ constructor(message: T);
7
+ abstract get status(): string;
8
+ abstract get orderId(): number;
9
+ abstract pre(message: T, prevData?: API.OrderResponse[]): D;
10
+ /**
11
+ * format the order data;
12
+ */
13
+ formatOrder(message: T): D;
14
+ merge(key: string, message: T, prevData: API.OrderResponse[]): API.OrderResponse[];
15
+ insert(orders?: API.OrderResponse[] | undefined): API.OrderResponse[];
16
+ insetOrUpdate(orders: API.OrderResponse[]): API.OrderResponse[];
17
+ update(prevData: API.OrderResponse[]): API.OrderResponse[];
18
+ remove(prevData: API.OrderResponse[]): API.OrderResponse[];
19
+ findOrderIndex(orders: API.OrderResponse[]): number[] | undefined;
20
+ orderIsExisting(orders: API.OrderResponse[]): boolean;
21
+ }
22
+ //# sourceMappingURL=baseMergeHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/baseMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,8BAAsB,gBAAgB,CACpC,CAAC,SAAS,SAAS,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,KAAK,EACjD,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CACnC,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGvB,OAAO,CAAC,OAAO;IAD3B,IAAI,EAAE,CAAC,CAAC;gBACY,OAAO,EAAE,CAAC;IAG9B,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC;IAC9B,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC;IAE3D;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC;IAc1B,KAAK,CACH,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAC5B,GAAG,CAAC,aAAa,EAAE;IA0EtB,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC,aAAa,EAAE;IAgBrE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE;IAO/D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE;IAqB1D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE;IAiB1D,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS;IA+BjE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,OAAO;CAItD"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "BaseMergeHandler", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return BaseMergeHandler;
9
+ }
10
+ });
11
+ const _ramda = require("ramda");
12
+ class BaseMergeHandler {
13
+ message;
14
+ data;
15
+ constructor(message){
16
+ this.message = message;
17
+ this.data = this.formatOrder(message);
18
+ }
19
+ /**
20
+ * format the order data;
21
+ */ formatOrder(message) {
22
+ const data = this.pre(message);
23
+ if (!data.created_time) {
24
+ data.created_time = data.timestamp;
25
+ }
26
+ if (data.type && data.type.endsWith("_ORDER")) {
27
+ data.type = data.type.replace("_ORDER", "");
28
+ }
29
+ return data;
30
+ }
31
+ merge(key, message, prevData) {
32
+ switch(this.status){
33
+ case "NEW":
34
+ {
35
+ if (key.startsWith("orders:CANCELLED") || key.startsWith("orders:FILLED") || key.startsWith("orders:REJECTED")) {
36
+ return prevData;
37
+ }
38
+ return this.insetOrUpdate(prevData);
39
+ }
40
+ case "CANCELLED":
41
+ {
42
+ if (key.startsWith("orders:FILLED") || key.startsWith("orders:REJECTED")) {
43
+ return prevData;
44
+ }
45
+ if (key.startsWith("orders:NEW") || key.startsWith("orders:INCOMPLETE")) {
46
+ return this.remove(prevData);
47
+ }
48
+ if (key.startsWith("orders:CANCELLED")) {
49
+ return this.insert(prevData);
50
+ }
51
+ return this.update(prevData);
52
+ }
53
+ case "REPLACED":
54
+ return this.update(prevData);
55
+ case "FILLED":
56
+ {
57
+ if (this.orderIsExisting(prevData)) {
58
+ // for new list, remove the order if it exists
59
+ if (key.startsWith("orders:INCOMPLETE") || key.startsWith("orders:NEW")) {
60
+ // if fullfilled, remove from the list
61
+ if ("total_executed_quantity" in this.data && this.data.total_executed_quantity === this.data.quantity) {
62
+ return this.remove(prevData);
63
+ }
64
+ // update
65
+ return this.update(prevData);
66
+ }
67
+ } else {
68
+ // for filled list, insert the order if it doesn't exist
69
+ if (key.startsWith("orders:CANCELLED") || key.startsWith("orders:INCOMPLETE") || key.startsWith("orders:NEW")) {
70
+ return prevData;
71
+ }
72
+ // if filled/history list:
73
+ return this.insert(prevData);
74
+ }
75
+ }
76
+ default:
77
+ return prevData || [];
78
+ }
79
+ }
80
+ insert(orders) {
81
+ const index = (0, _ramda.lensIndex)(0);
82
+ return (0, _ramda.over)(//@ts-ignore
83
+ index, (item)=>({
84
+ meta: {
85
+ ...item.meta,
86
+ total: item.meta.total + 1
87
+ },
88
+ rows: [
89
+ this.data,
90
+ ...item.rows
91
+ ]
92
+ }), orders);
93
+ }
94
+ insetOrUpdate(orders) {
95
+ if (this.orderIsExisting(orders)) {
96
+ return this.update(orders);
97
+ }
98
+ return this.insert(orders);
99
+ }
100
+ update(prevData) {
101
+ const idx = this.findOrderIndex(prevData);
102
+ if (!Array.isArray(idx)) {
103
+ return prevData || [];
104
+ }
105
+ const [index, index2] = idx;
106
+ return prevData.map((item, i)=>{
107
+ return {
108
+ meta: {
109
+ ...item.meta
110
+ },
111
+ rows: item.rows.map((order, j)=>{
112
+ if (index === i && index2 === j) {
113
+ return {
114
+ ...order,
115
+ ...this.data
116
+ };
117
+ }
118
+ return order;
119
+ })
120
+ };
121
+ });
122
+ }
123
+ remove(prevData) {
124
+ const idx = this.findOrderIndex(prevData);
125
+ if (!Array.isArray(idx)) {
126
+ return prevData;
127
+ }
128
+ const [index, index2] = idx;
129
+ return prevData.map((item, i)=>{
130
+ return {
131
+ meta: {
132
+ ...item.meta,
133
+ total: item.meta.total - 1
134
+ },
135
+ rows: index === i ? item.rows.filter((_, i)=>i !== index2) : item.rows
136
+ };
137
+ });
138
+ }
139
+ findOrderIndex(orders) {
140
+ let index = 0;
141
+ let index2;
142
+ for(; index < orders.length; index++){
143
+ // index = idx;
144
+ const item = orders[index];
145
+ for(let idx2 = 0; idx2 < item.rows.length; idx2++){
146
+ const element = item.rows[idx2];
147
+ if (element.algo_order_id === this.orderId || element.order_id === this.orderId) {
148
+ index2 = idx2;
149
+ break;
150
+ }
151
+ }
152
+ if (typeof index2 !== "undefined") {
153
+ break;
154
+ }
155
+ }
156
+ if (typeof index2 === "undefined") {
157
+ return;
158
+ }
159
+ return [
160
+ index,
161
+ index2
162
+ ];
163
+ }
164
+ orderIsExisting(orders) {
165
+ const index = this.findOrderIndex(orders);
166
+ return Array.isArray(index);
167
+ }
168
+ }
169
+
170
+ //# sourceMappingURL=baseMergeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderMerge/baseMergeHandler.ts"],"sourcesContent":["import { WSMessage, API } from \"@orderly.network/types\";\nimport { IOrderMergeHandler } from \"./interface\";\nimport { lensIndex, over } from \"ramda\";\n\nexport abstract class BaseMergeHandler<\n T extends WSMessage.AlgoOrder[] | WSMessage.Order,\n D extends API.AlgoOrder | API.Order\n> implements IOrderMergeHandler<T, D>\n{\n data: D;\n constructor(private message: T) {\n this.data = this.formatOrder(message);\n }\n abstract get status(): string;\n abstract get orderId(): number;\n abstract pre(message: T, prevData?: API.OrderResponse[]): D;\n\n /**\n * format the order data;\n */\n formatOrder(message: T): D {\n const data = this.pre(message);\n\n if (!data.created_time) {\n data.created_time = (data as any).timestamp;\n }\n\n if (data.type && data.type.endsWith(\"_ORDER\")) {\n data.type = data.type.replace(\"_ORDER\", \"\");\n }\n\n return data;\n }\n\n merge(\n key: string,\n message: T,\n prevData: API.OrderResponse[]\n ): API.OrderResponse[] {\n switch (this.status) {\n case \"NEW\": {\n if (\n key.startsWith(\"orders:CANCELLED\") ||\n key.startsWith(\"orders:FILLED\") ||\n key.startsWith(\"orders:REJECTED\")\n ) {\n return prevData;\n }\n return this.insetOrUpdate(prevData);\n }\n case \"CANCELLED\": {\n if (\n key.startsWith(\"orders:FILLED\") ||\n key.startsWith(\"orders:REJECTED\")\n ) {\n return prevData;\n }\n if (\n key.startsWith(\"orders:NEW\") ||\n key.startsWith(\"orders:INCOMPLETE\")\n ) {\n return this.remove(prevData);\n }\n\n if (key.startsWith(\"orders:CANCELLED\")) {\n return this.insert(prevData);\n }\n\n return this.update(prevData);\n }\n\n case \"REPLACED\":\n return this.update(prevData);\n\n case \"FILLED\": {\n if (this.orderIsExisting(prevData)) {\n // for new list, remove the order if it exists\n if (\n key.startsWith(\"orders:INCOMPLETE\") ||\n key.startsWith(\"orders:NEW\")\n ) {\n // if fullfilled, remove from the list\n if (\n \"total_executed_quantity\" in this.data &&\n this.data.total_executed_quantity === this.data.quantity\n ) {\n return this.remove(prevData);\n }\n\n // update\n return this.update(prevData);\n }\n } else {\n // for filled list, insert the order if it doesn't exist\n\n if (\n key.startsWith(\"orders:CANCELLED\") ||\n key.startsWith(\"orders:INCOMPLETE\") ||\n key.startsWith(\"orders:NEW\")\n ) {\n return prevData;\n }\n // if filled/history list:\n return this.insert(prevData);\n }\n }\n\n default:\n return prevData || [];\n }\n }\n\n insert(orders?: API.OrderResponse[] | undefined): API.OrderResponse[] {\n const index = lensIndex<API.OrderResponse>(0);\n return over(\n //@ts-ignore\n index,\n (item: any) => ({\n meta: {\n ...item.meta,\n total: item.meta.total + 1,\n },\n rows: [this.data, ...item.rows],\n }),\n orders\n ) as API.OrderResponse[];\n }\n\n insetOrUpdate(orders: API.OrderResponse[]): API.OrderResponse[] {\n if (this.orderIsExisting(orders)) {\n return this.update(orders);\n }\n return this.insert(orders);\n }\n\n update(prevData: API.OrderResponse[]): API.OrderResponse[] {\n const idx = this.findOrderIndex(prevData);\n if (!Array.isArray(idx)) {\n return prevData || [];\n }\n\n const [index, index2] = idx;\n\n return prevData.map((item, i) => {\n return {\n meta: { ...item.meta },\n rows: item.rows.map((order, j) => {\n if (index === i && index2 === j) {\n return { ...order, ...this.data };\n }\n return order;\n }),\n };\n });\n }\n\n remove(prevData: API.OrderResponse[]): API.OrderResponse[] {\n const idx = this.findOrderIndex(prevData);\n if (!Array.isArray(idx)) {\n return prevData;\n }\n\n const [index, index2] = idx;\n\n return prevData.map((item, i) => {\n return {\n meta: { ...item.meta, total: item.meta.total - 1 },\n rows:\n index === i ? item.rows.filter((_, i) => i !== index2) : item.rows,\n };\n });\n }\n\n findOrderIndex(orders: API.OrderResponse[]): number[] | undefined {\n let index: number = 0;\n let index2: number | undefined;\n\n for (; index < orders.length; index++) {\n // index = idx;\n const item = orders[index];\n\n for (let idx2 = 0; idx2 < item.rows.length; idx2++) {\n const element = item.rows[idx2];\n if (\n (element as API.AlgoOrder).algo_order_id === this.orderId ||\n (element as API.Order).order_id === this.orderId\n ) {\n index2 = idx2;\n\n break;\n }\n }\n if (typeof index2 !== \"undefined\") {\n break;\n }\n }\n\n if (typeof index2 === \"undefined\") {\n return;\n }\n\n return [index, index2];\n }\n\n orderIsExisting(orders: API.OrderResponse[]): boolean {\n const index = this.findOrderIndex(orders);\n return Array.isArray(index);\n }\n}\n"],"names":["BaseMergeHandler","data","constructor","message","formatOrder","pre","created_time","timestamp","type","endsWith","replace","merge","key","prevData","status","startsWith","insetOrUpdate","remove","insert","update","orderIsExisting","total_executed_quantity","quantity","orders","index","lensIndex","over","item","meta","total","rows","idx","findOrderIndex","Array","isArray","index2","map","i","order","j","filter","_","length","idx2","element","algo_order_id","orderId","order_id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { API } from "@orderly.network/types";
2
+ export interface IOrderMergeHandler<T, D> {
3
+ merge(key: string, updatedOrder: T, prevData: API.OrderResponse[]): API.OrderResponse[];
4
+ insert(prevData: API.OrderResponse[]): API.OrderResponse[];
5
+ update(prevData: API.OrderResponse[]): API.OrderResponse[];
6
+ remove(prevData: API.OrderResponse[]): API.OrderResponse[];
7
+ }
8
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAa,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC;IACtC,KAAK,CACH,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAC5B,GAAG,CAAC,aAAa,EAAE,CAAC;IACvB,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3D,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;CAC5D"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderMerge/interface.ts"],"names":[],"rangeMappings":"","mappings":""}
@@ -0,0 +1,8 @@
1
+ import { API, WSMessage } from "@orderly.network/types";
2
+ import { BaseMergeHandler } from "./baseMergeHandler";
3
+ export declare class RegularOrderMergeHandler extends BaseMergeHandler<WSMessage.Order, API.Order> {
4
+ get orderId(): number;
5
+ get status(): string;
6
+ pre(message: WSMessage.Order, prevData?: API.OrderResponse[] | undefined): API.Order;
7
+ }
8
+ //# sourceMappingURL=regularOrderMergeHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regularOrderMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/regularOrderMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,wBAAyB,SAAQ,gBAAgB,CAC5D,SAAS,CAAC,KAAK,EACf,GAAG,CAAC,KAAK,CACV;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,GAAG,CACD,OAAO,EAAE,SAAS,CAAC,KAAK,EACxB,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,SAAS,GACzC,GAAG,CAAC,KAAK;CAGb"}