@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,8 @@
1
+ import { OrderEntity } from "@orderly.network/types";
2
+ import { BaseOrderCreator } from "./baseCreator";
3
+ import { OrderFormEntity, ValuesDepConfig, VerifyResult } from "./interface";
4
+ export declare class GeneralOrderCreator extends BaseOrderCreator<OrderEntity> {
5
+ create(data: OrderEntity): OrderEntity;
6
+ validate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
7
+ }
8
+ //# sourceMappingURL=generalCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generalCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/generalCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7E,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IACpE,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IAOtC,QAAQ,CACN,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,YAAY,CAAC;CAGzB"}
@@ -0,0 +1,15 @@
1
+ import { BaseOrderCreator } from "./baseCreator";
2
+ export class GeneralOrderCreator extends BaseOrderCreator {
3
+ create(data) {
4
+ return {
5
+ ...this.baseOrder(data),
6
+ order_price: data.order_price,
7
+ order_quantity: data.order_quantity
8
+ };
9
+ }
10
+ validate(values, configs) {
11
+ return super.baseValidate(values, configs);
12
+ }
13
+ }
14
+
15
+ //# sourceMappingURL=generalCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/generalCreator.ts"],"sourcesContent":["import { OrderEntity } from \"@orderly.network/types\";\nimport { BaseOrderCreator } from \"./baseCreator\";\nimport { OrderFormEntity, ValuesDepConfig, VerifyResult } from \"./interface\";\n\nexport class GeneralOrderCreator extends BaseOrderCreator<OrderEntity> {\n create(data: OrderEntity): OrderEntity {\n return {\n ...this.baseOrder(data),\n order_price: data.order_price,\n order_quantity: data.order_quantity,\n };\n }\n validate(\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ): Promise<VerifyResult> {\n return super.baseValidate(values, configs);\n }\n}\n"],"names":["BaseOrderCreator","GeneralOrderCreator","create","data","baseOrder","order_price","order_quantity","validate","values","configs","baseValidate"],"rangeMappings":";;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,QAAQ,gBAAgB;AAGjD,OAAO,MAAMC,4BAA4BD;IACvCE,OAAOC,IAAiB,EAAe;QACrC,OAAO;YACL,GAAG,IAAI,CAACC,SAAS,CAACD,KAAK;YACvBE,aAAaF,KAAKE,WAAW;YAC7BC,gBAAgBH,KAAKG,cAAc;QACrC;IACF;IACAC,SACEC,MAAuB,EACvBC,OAAwB,EACD;QACvB,OAAO,KAAK,CAACC,aAAaF,QAAQC;IACpC;AACF"}
@@ -0,0 +1,23 @@
1
+ import { API, OrderEntity } from "@orderly.network/types";
2
+ export type VerifyResult = {
3
+ [P in keyof OrderEntity]?: {
4
+ type: string;
5
+ message: string;
6
+ };
7
+ };
8
+ export type OrderFormEntity = Pick<OrderEntity, "order_price" | "order_quantity" | "total" | "reduce_only">;
9
+ export type ValuesDepConfig = {
10
+ symbol: API.SymbolExt;
11
+ maxQty: number;
12
+ markPrice: number;
13
+ };
14
+ export interface OrderCreator<T> {
15
+ create: (values: T, configs: ValuesDepConfig) => T;
16
+ validate: (values: T, configs: ValuesDepConfig) => Promise<{
17
+ [P in keyof T]?: {
18
+ type: string;
19
+ message: string;
20
+ };
21
+ }>;
22
+ }
23
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG;KACxB,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAC7D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,WAAW,EACX,aAAa,GAAG,gBAAgB,GAAG,OAAO,GAAG,aAAa,CAC3D,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAE5B,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,KAAK,CAAC,CAAC;IACnD,QAAQ,EAAE,CACR,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC;SACV,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;KACnD,CAAC,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/interface.ts"],"sourcesContent":["import { API, OrderEntity } from \"@orderly.network/types\";\n\nexport type VerifyResult = {\n [P in keyof OrderEntity]?: { type: string; message: string };\n};\n\nexport type OrderFormEntity = Pick<\n OrderEntity,\n \"order_price\" | \"order_quantity\" | \"total\" | \"reduce_only\"\n>;\n\nexport type ValuesDepConfig = {\n // token: API.TokenInfo;\n symbol: API.SymbolExt;\n maxQty: number;\n markPrice: number;\n};\n\nexport interface OrderCreator<T> {\n create: (values: T, configs: ValuesDepConfig) => T;\n validate: (\n values: T,\n configs: ValuesDepConfig\n ) => Promise<{\n [P in keyof T]?: { type: string; message: string };\n }>;\n}\n"],"names":[],"rangeMappings":"","mappings":"AAkBA,WAQC"}
@@ -0,0 +1,4 @@
1
+ import { LimitOrderCreator } from "./limitOrderCreator";
2
+ export declare class IOCOrderCreator extends LimitOrderCreator {
3
+ }
4
+ //# sourceMappingURL=iocCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iocCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/iocCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,eAAgB,SAAQ,iBAAiB;CAAG"}
@@ -0,0 +1,5 @@
1
+ import { LimitOrderCreator } from "./limitOrderCreator";
2
+ export class IOCOrderCreator extends LimitOrderCreator {
3
+ }
4
+
5
+ //# sourceMappingURL=iocCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/iocCreator.ts"],"sourcesContent":["import { LimitOrderCreator } from \"./limitOrderCreator\";\n\nexport class IOCOrderCreator extends LimitOrderCreator {}\n"],"names":["LimitOrderCreator","IOCOrderCreator"],"rangeMappings":";;","mappings":"AAAA,SAASA,iBAAiB,QAAQ,sBAAsB;AAExD,OAAO,MAAMC,wBAAwBD;AAAmB"}
@@ -0,0 +1,8 @@
1
+ import { OrderEntity } from "@orderly.network/types";
2
+ import { BaseOrderCreator } from "./baseCreator";
3
+ import { OrderFormEntity, ValuesDepConfig, VerifyResult } from "./interface";
4
+ export declare class LimitOrderCreator extends BaseOrderCreator<OrderEntity> {
5
+ create(values: OrderEntity, config?: ValuesDepConfig): OrderEntity;
6
+ validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
7
+ }
8
+ //# sourceMappingURL=limitOrderCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limitOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/limitOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO7E,qBAAa,iBAAkB,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAClE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW;IAyBlE,QAAQ,CACN,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,YAAY,CAAC;CAyDzB"}
@@ -0,0 +1,69 @@
1
+ import { BaseOrderCreator } from "./baseCreator";
2
+ import { Decimal } from "@orderly.network/utils";
3
+ import { order as orderUntil } from "@orderly.network/perp";
4
+ import { pick } from "ramda";
5
+ const { maxPrice, minPrice, scropePrice } = orderUntil;
6
+ export class LimitOrderCreator extends BaseOrderCreator {
7
+ create(values, config) {
8
+ const order = {
9
+ ...this.baseOrder(values),
10
+ order_price: values.order_price
11
+ };
12
+ this.totalToQuantity(order, config);
13
+ // console.log("create", order);
14
+ return pick([
15
+ "symbol",
16
+ "order_price",
17
+ "order_quantity",
18
+ "visible_quantity",
19
+ "reduce_only",
20
+ "side",
21
+ "order_type"
22
+ ], order);
23
+ // return order;
24
+ }
25
+ validate(values, config) {
26
+ return this.baseValidate(values, config).then((errors)=>{
27
+ // const errors = this.baseValidate(values, config);
28
+ // @ts-ignore
29
+ const { order_price, side } = values;
30
+ if (!order_price) {
31
+ errors.order_price = {
32
+ type: "required",
33
+ message: "price is required"
34
+ };
35
+ } else {
36
+ const price = new Decimal(order_price);
37
+ const { symbol } = config;
38
+ const { price_range, price_scope } = symbol;
39
+ const maxPriceNumber = maxPrice(config.markPrice, price_range);
40
+ const minPriceNumber = minPrice(config.markPrice, price_range);
41
+ const scropePriceNumbere = scropePrice(config.markPrice, price_scope, side);
42
+ const priceRange = side === "BUY" ? {
43
+ min: scropePriceNumbere,
44
+ max: maxPriceNumber
45
+ } : {
46
+ min: minPriceNumber,
47
+ max: scropePriceNumbere
48
+ };
49
+ /// if side is 'buy', only check max price,
50
+ /// if side is 'sell', only check min price,
51
+ if (price.gt(priceRange?.max)) {
52
+ errors.order_price = {
53
+ type: "max",
54
+ message: `Price must be less than ${new Decimal(priceRange.max).todp(symbol.quote_dp)}`
55
+ };
56
+ }
57
+ if (price.lt(priceRange?.min)) {
58
+ errors.order_price = {
59
+ type: "min",
60
+ message: `Price must be greater than ${new Decimal(priceRange.min).todp(symbol.quote_dp)}`
61
+ };
62
+ }
63
+ }
64
+ return errors;
65
+ });
66
+ }
67
+ }
68
+
69
+ //# sourceMappingURL=limitOrderCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/limitOrderCreator.ts"],"sourcesContent":["import { OrderEntity } from \"@orderly.network/types\";\nimport { BaseOrderCreator } from \"./baseCreator\";\nimport { OrderFormEntity, ValuesDepConfig, VerifyResult } from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { order as orderUntil } from \"@orderly.network/perp\";\nimport { pick } from \"ramda\";\n\nconst { maxPrice, minPrice, scropePrice } = orderUntil;\n\nexport class LimitOrderCreator extends BaseOrderCreator<OrderEntity> {\n create(values: OrderEntity, config?: ValuesDepConfig): OrderEntity {\n const order = {\n ...this.baseOrder(values),\n order_price: values.order_price,\n };\n\n this.totalToQuantity(order, config!);\n\n // console.log(\"create\", order);\n\n return pick(\n [\n \"symbol\",\n \"order_price\",\n \"order_quantity\",\n \"visible_quantity\",\n \"reduce_only\",\n \"side\",\n \"order_type\",\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, side } = values;\n\n if (!order_price) {\n errors.order_price = {\n type: \"required\",\n message: \"price is required\",\n };\n } else {\n const price = new Decimal(order_price);\n const { symbol } = config;\n const { price_range, price_scope } = symbol;\n const maxPriceNumber = maxPrice(config.markPrice, price_range);\n const minPriceNumber = minPrice(config.markPrice, price_range);\n const scropePriceNumbere = scropePrice(\n config.markPrice,\n price_scope,\n side\n );\n\n const priceRange =\n side === \"BUY\"\n ? {\n min: scropePriceNumbere,\n max: maxPriceNumber,\n }\n : {\n min: minPriceNumber,\n max: scropePriceNumbere,\n };\n\n /// if side is 'buy', only check max price,\n /// if side is 'sell', only check min price,\n if (price.gt(priceRange?.max)) {\n errors.order_price = {\n type: \"max\",\n message: `Price must be less than ${new Decimal(\n priceRange.max\n ).todp(symbol.quote_dp)}`,\n };\n }\n if (price.lt(priceRange?.min)) {\n errors.order_price = {\n type: \"min\",\n message: `Price must be greater than ${new Decimal(\n priceRange.min\n ).todp(symbol.quote_dp)}`,\n };\n }\n }\n\n return errors;\n });\n }\n}\n"],"names":["BaseOrderCreator","Decimal","order","orderUntil","pick","maxPrice","minPrice","scropePrice","LimitOrderCreator","create","values","config","baseOrder","order_price","totalToQuantity","validate","baseValidate","then","errors","side","type","message","price","symbol","price_range","price_scope","maxPriceNumber","markPrice","minPriceNumber","scropePriceNumbere","priceRange","min","max","gt","todp","quote_dp","lt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,QAAQ,gBAAgB;AAEjD,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,SAASC,UAAU,QAAQ,wBAAwB;AAC5D,SAASC,IAAI,QAAQ,QAAQ;AAE7B,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAGJ;AAE5C,OAAO,MAAMK,0BAA0BR;IACrCS,OAAOC,MAAmB,EAAEC,MAAwB,EAAe;QACjE,MAAMT,QAAQ;YACZ,GAAG,IAAI,CAACU,SAAS,CAACF,OAAO;YACzBG,aAAaH,OAAOG,WAAW;QACjC;QAEA,IAAI,CAACC,eAAe,CAACZ,OAAOS;QAE5B,gCAAgC;QAEhC,OAAOP,KACL;YACE;YACA;YACA;YACA;YACA;YACA;YACA;SACD,EACDF;IAGF,gBAAgB;IAClB;IACAa,SACEL,MAAuB,EACvBC,MAAuB,EACA;QACvB,OAAO,IAAI,CAACK,YAAY,CAACN,QAAQC,QAAQM,IAAI,CAAC,CAACC;YAC7C,oDAAoD;YACpD,aAAa;YACb,MAAM,EAAEL,WAAW,EAAEM,IAAI,EAAE,GAAGT;YAE9B,IAAI,CAACG,aAAa;gBAChBK,OAAOL,WAAW,GAAG;oBACnBO,MAAM;oBACNC,SAAS;gBACX;YACF,OAAO;gBACL,MAAMC,QAAQ,IAAIrB,QAAQY;gBAC1B,MAAM,EAAEU,MAAM,EAAE,GAAGZ;gBACnB,MAAM,EAAEa,WAAW,EAAEC,WAAW,EAAE,GAAGF;gBACrC,MAAMG,iBAAiBrB,SAASM,OAAOgB,SAAS,EAAEH;gBAClD,MAAMI,iBAAiBtB,SAASK,OAAOgB,SAAS,EAAEH;gBAClD,MAAMK,qBAAqBtB,YACzBI,OAAOgB,SAAS,EAChBF,aACAN;gBAGF,MAAMW,aACJX,SAAS,QACL;oBACEY,KAAKF;oBACLG,KAAKN;gBACP,IACA;oBACEK,KAAKH;oBACLI,KAAKH;gBACP;gBAEN,2CAA2C;gBAC3C,4CAA4C;gBAC5C,IAAIP,MAAMW,EAAE,CAACH,YAAYE,MAAM;oBAC7Bd,OAAOL,WAAW,GAAG;wBACnBO,MAAM;wBACNC,SAAS,CAAC,wBAAwB,EAAE,IAAIpB,QACtC6B,WAAWE,GAAG,EACdE,IAAI,CAACX,OAAOY,QAAQ,EAAE,CAAC;oBAC3B;gBACF;gBACA,IAAIb,MAAMc,EAAE,CAACN,YAAYC,MAAM;oBAC7Bb,OAAOL,WAAW,GAAG;wBACnBO,MAAM;wBACNC,SAAS,CAAC,2BAA2B,EAAE,IAAIpB,QACzC6B,WAAWC,GAAG,EACdG,IAAI,CAACX,OAAOY,QAAQ,EAAE,CAAC;oBAC3B;gBACF;YACF;YAEA,OAAOjB;QACT;IACF;AACF"}
@@ -0,0 +1,24 @@
1
+ import { OrderEntity } from "@orderly.network/types";
2
+ import { BaseOrderCreator } from "./baseCreator";
3
+ import { OrderFormEntity, ValuesDepConfig, VerifyResult } from "./interface";
4
+ export declare class MarketOrderCreator extends BaseOrderCreator<OrderEntity> {
5
+ create(values: OrderEntity): {
6
+ symbol: string;
7
+ order_type: import("@orderly.network/types").OrderType;
8
+ algo_type?: import("@orderly.network/types").AlgoOrderRootType | undefined;
9
+ order_type_ext?: import("@orderly.network/types").OrderType | undefined;
10
+ order_price?: string | number | undefined;
11
+ order_quantity?: string | number | undefined;
12
+ order_amount?: number | undefined;
13
+ visible_quantity?: number | undefined;
14
+ reduce_only?: boolean | undefined;
15
+ side: import("@orderly.network/types").OrderSide;
16
+ broker_id?: string | undefined;
17
+ total?: string | number | undefined;
18
+ isStopOrder?: boolean | undefined;
19
+ trigger_price?: string | number | undefined;
20
+ order_tag?: string | undefined;
21
+ };
22
+ validate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
23
+ }
24
+ //# sourceMappingURL=marketOrderCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/marketOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7E,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IACnE,MAAM,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;IAY1B,QAAQ,CACN,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,YAAY,CAAC;CAGzB"}
@@ -0,0 +1,18 @@
1
+ import { BaseOrderCreator } from "./baseCreator";
2
+ export class MarketOrderCreator extends BaseOrderCreator {
3
+ create(values) {
4
+ const data = this.baseOrder(values);
5
+ delete data["order_price"];
6
+ delete data["total"];
7
+ delete data["trigger_price"];
8
+ delete data["isStopOrder"];
9
+ return {
10
+ ...data
11
+ };
12
+ }
13
+ validate(values, configs) {
14
+ return this.baseValidate(values, configs);
15
+ }
16
+ }
17
+
18
+ //# sourceMappingURL=marketOrderCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/marketOrderCreator.ts"],"sourcesContent":["import { OrderEntity } from \"@orderly.network/types\";\nimport { BaseOrderCreator } from \"./baseCreator\";\nimport { OrderFormEntity, ValuesDepConfig, VerifyResult } from \"./interface\";\n\nexport class MarketOrderCreator extends BaseOrderCreator<OrderEntity> {\n create(values: OrderEntity) {\n const data = this.baseOrder(values);\n\n delete data[\"order_price\"];\n delete data[\"total\"];\n delete data[\"trigger_price\"];\n delete data[\"isStopOrder\"];\n\n return {\n ...data,\n };\n }\n validate(\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ): Promise<VerifyResult> {\n return this.baseValidate(values, configs);\n }\n}\n"],"names":["BaseOrderCreator","MarketOrderCreator","create","values","data","baseOrder","validate","configs","baseValidate"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,QAAQ,gBAAgB;AAGjD,OAAO,MAAMC,2BAA2BD;IACtCE,OAAOC,MAAmB,EAAE;QAC1B,MAAMC,OAAO,IAAI,CAACC,SAAS,CAACF;QAE5B,OAAOC,IAAI,CAAC,cAAc;QAC1B,OAAOA,IAAI,CAAC,QAAQ;QACpB,OAAOA,IAAI,CAAC,gBAAgB;QAC5B,OAAOA,IAAI,CAAC,cAAc;QAE1B,OAAO;YACL,GAAGA,IAAI;QACT;IACF;IACAE,SACEH,MAAuB,EACvBI,OAAwB,EACD;QACvB,OAAO,IAAI,CAACC,YAAY,CAACL,QAAQI;IACnC;AACF"}
@@ -0,0 +1,4 @@
1
+ import { LimitOrderCreator } from "./limitOrderCreator";
2
+ export declare class PostOnlyOrderCreator extends LimitOrderCreator {
3
+ }
4
+ //# sourceMappingURL=postOnlyCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postOnlyCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/postOnlyCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,oBAAqB,SAAQ,iBAAiB;CAAG"}
@@ -0,0 +1,5 @@
1
+ import { LimitOrderCreator } from "./limitOrderCreator";
2
+ export class PostOnlyOrderCreator extends LimitOrderCreator {
3
+ }
4
+
5
+ //# sourceMappingURL=postOnlyCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/postOnlyCreator.ts"],"sourcesContent":["import { LimitOrderCreator } from \"./limitOrderCreator\";\n\nexport class PostOnlyOrderCreator extends LimitOrderCreator {}\n"],"names":["LimitOrderCreator","PostOnlyOrderCreator"],"rangeMappings":";;","mappings":"AAAA,SAASA,iBAAiB,QAAQ,sBAAsB;AAExD,OAAO,MAAMC,6BAA6BD;AAAmB"}
@@ -0,0 +1,11 @@
1
+ import { AlgoOrderEntity, AlgoOrderRootType } from "@orderly.network/types";
2
+ import { OrderFormEntity, ValuesDepConfig, VerifyResult } from "./interface";
3
+ import { BaseOrderCreator } from "./baseCreator";
4
+ export declare class StopLimitOrderCreator extends BaseOrderCreator<AlgoOrderEntity> {
5
+ create(values: AlgoOrderEntity & {
6
+ order_quantity: number;
7
+ order_price: number;
8
+ }, config?: ValuesDepConfig): AlgoOrderEntity<AlgoOrderRootType.STOP>;
9
+ validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
10
+ }
11
+ //# sourceMappingURL=stopLimitOrderCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopLimitOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/stopLimitOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMjD,qBAAa,qBAAsB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IAC1E,MAAM,CACJ,MAAM,EAAE,eAAe,GAAG;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,EACD,MAAM,CAAC,EAAE,eAAe,GACvB,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC;IA8B1C,QAAQ,CACN,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,YAAY,CAAC;CAkEzB"}
@@ -0,0 +1,84 @@
1
+ import { AlgoOrderRootType, TriggerPriceType } from "@orderly.network/types";
2
+ import { Decimal } from "@orderly.network/utils";
3
+ import { order as orderUntil } from "@orderly.network/perp";
4
+ import { BaseOrderCreator } from "./baseCreator";
5
+ import { OrderType } from "@orderly.network/types";
6
+ import { pick } from "ramda";
7
+ const { maxPrice, minPrice, scropePrice } = orderUntil;
8
+ export class StopLimitOrderCreator extends BaseOrderCreator {
9
+ create(values, config) {
10
+ this.totalToQuantity(values, config);
11
+ const order = {
12
+ ...this.baseOrder(values),
13
+ trigger_price: values.trigger_price,
14
+ algo_type: AlgoOrderRootType.STOP,
15
+ type: OrderType.LIMIT,
16
+ quantity: values["order_quantity"],
17
+ price: values["order_price"],
18
+ trigger_price_type: TriggerPriceType.MARK_PRICE
19
+ };
20
+ return pick([
21
+ "symbol",
22
+ "trigger_price",
23
+ "algo_type",
24
+ "type",
25
+ "quantity",
26
+ "price",
27
+ "trigger_price_type",
28
+ "side",
29
+ "reduce_only",
30
+ "visible_quantity"
31
+ ], order);
32
+ }
33
+ validate(values, config) {
34
+ return this.baseValidate(values, config).then((errors)=>{
35
+ // const errors = this.baseValidate(values, config);
36
+ // @ts-ignore
37
+ const { order_price, trigger_price, side } = values;
38
+ if (!order_price) {
39
+ errors.order_price = {
40
+ type: "required",
41
+ message: "price is required"
42
+ };
43
+ }
44
+ if (!trigger_price) {
45
+ errors.trigger_price = {
46
+ type: "required",
47
+ message: "Trigger price is required"
48
+ };
49
+ }
50
+ if (trigger_price && order_price) {
51
+ const price = new Decimal(order_price);
52
+ const { symbol } = config;
53
+ const { price_range, price_scope } = symbol;
54
+ const maxPriceNumber = maxPrice(trigger_price, price_range);
55
+ const minPriceNumber = minPrice(trigger_price, price_range);
56
+ const scropePriceNumbere = scropePrice(trigger_price, price_scope, side);
57
+ const priceRange = side === "BUY" ? {
58
+ min: scropePriceNumbere,
59
+ max: maxPriceNumber
60
+ } : {
61
+ min: minPriceNumber,
62
+ max: scropePriceNumbere
63
+ };
64
+ /// if side is 'buy', only check max price,
65
+ /// if side is 'sell', only check min price,
66
+ if (price.gt(priceRange?.max)) {
67
+ errors.order_price = {
68
+ type: "max",
69
+ message: `Price must be less than ${new Decimal(priceRange.max).todp(symbol.quote_dp)}`
70
+ };
71
+ }
72
+ if (price.lt(priceRange?.min)) {
73
+ errors.order_price = {
74
+ type: "min",
75
+ message: `Price must be greater than ${new Decimal(priceRange.min).todp(symbol.quote_dp)}`
76
+ };
77
+ }
78
+ }
79
+ return errors;
80
+ });
81
+ }
82
+ }
83
+
84
+ //# sourceMappingURL=stopLimitOrderCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/stopLimitOrderCreator.ts"],"sourcesContent":["import {\n AlgoOrderEntity,\n AlgoOrderRootType,\n OrderEntity,\n TriggerPriceType,\n} from \"@orderly.network/types\";\nimport { OrderFormEntity, ValuesDepConfig, VerifyResult } from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { order as orderUntil } from \"@orderly.network/perp\";\nimport { BaseOrderCreator } from \"./baseCreator\";\nimport { OrderType } from \"@orderly.network/types\";\nimport { pick } from \"ramda\";\n\nconst { maxPrice, minPrice, scropePrice } = orderUntil;\n\nexport class StopLimitOrderCreator extends BaseOrderCreator<AlgoOrderEntity> {\n create(\n values: AlgoOrderEntity & {\n order_quantity: number;\n order_price: number;\n },\n config?: ValuesDepConfig\n ): AlgoOrderEntity<AlgoOrderRootType.STOP> {\n this.totalToQuantity(values, config!);\n\n const order: AlgoOrderEntity<AlgoOrderRootType.STOP> = {\n ...this.baseOrder(values as unknown as OrderEntity),\n\n trigger_price: values.trigger_price!,\n algo_type: AlgoOrderRootType.STOP,\n type: OrderType.LIMIT,\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 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 (!order_price) {\n errors.order_price = {\n type: \"required\",\n message: \"price is required\",\n };\n }\n\n if (!trigger_price) {\n errors.trigger_price = {\n type: \"required\",\n message: \"Trigger price is required\",\n };\n }\n\n if (trigger_price && order_price) {\n const price = new Decimal(order_price);\n const { symbol } = config;\n const { price_range, price_scope } = symbol;\n const maxPriceNumber = maxPrice(trigger_price, price_range);\n const minPriceNumber = minPrice(trigger_price, price_range);\n const scropePriceNumbere = scropePrice(\n trigger_price,\n price_scope,\n side\n );\n\n const priceRange =\n side === \"BUY\"\n ? {\n min: scropePriceNumbere,\n max: maxPriceNumber,\n }\n : {\n min: minPriceNumber,\n max: scropePriceNumbere,\n };\n\n /// if side is 'buy', only check max price,\n /// if side is 'sell', only check min price,\n if (price.gt(priceRange?.max)) {\n errors.order_price = {\n type: \"max\",\n message: `Price must be less than ${new Decimal(\n priceRange.max\n ).todp(symbol.quote_dp)}`,\n };\n }\n if (price.lt(priceRange?.min)) {\n errors.order_price = {\n type: \"min\",\n message: `Price must be greater than ${new Decimal(\n priceRange.min\n ).todp(symbol.quote_dp)}`,\n };\n }\n }\n\n return errors;\n });\n }\n}\n"],"names":["AlgoOrderRootType","TriggerPriceType","Decimal","order","orderUntil","BaseOrderCreator","OrderType","pick","maxPrice","minPrice","scropePrice","StopLimitOrderCreator","create","values","config","totalToQuantity","baseOrder","trigger_price","algo_type","STOP","type","LIMIT","quantity","price","trigger_price_type","MARK_PRICE","validate","baseValidate","then","errors","order_price","side","message","symbol","price_range","price_scope","maxPriceNumber","minPriceNumber","scropePriceNumbere","priceRange","min","max","gt","todp","quote_dp","lt"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAEEA,iBAAiB,EAEjBC,gBAAgB,QACX,yBAAyB;AAEhC,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,SAASC,UAAU,QAAQ,wBAAwB;AAC5D,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAASC,IAAI,QAAQ,QAAQ;AAE7B,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,WAAW,EAAE,GAAGN;AAE5C,OAAO,MAAMO,8BAA8BN;IACzCO,OACEC,MAGC,EACDC,MAAwB,EACiB;QACzC,IAAI,CAACC,eAAe,CAACF,QAAQC;QAE7B,MAAMX,QAAiD;YACrD,GAAG,IAAI,CAACa,SAAS,CAACH,OAAiC;YAEnDI,eAAeJ,OAAOI,aAAa;YACnCC,WAAWlB,kBAAkBmB,IAAI;YACjCC,MAAMd,UAAUe,KAAK;YACrBC,UAAUT,MAAM,CAAC,iBAAiB;YAClCU,OAAOV,MAAM,CAAC,cAAc;YAC5BW,oBAAoBvB,iBAAiBwB,UAAU;QACjD;QAEA,OAAOlB,KACL;YACE;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD,EACDJ;IAEJ;IACAuB,SACEb,MAAuB,EACvBC,MAAuB,EACA;QACvB,OAAO,IAAI,CAACa,YAAY,CAACd,QAAQC,QAAQc,IAAI,CAAC,CAACC;YAC7C,oDAAoD;YACpD,aAAa;YACb,MAAM,EAAEC,WAAW,EAAEb,aAAa,EAAEc,IAAI,EAAE,GAAGlB;YAE7C,IAAI,CAACiB,aAAa;gBAChBD,OAAOC,WAAW,GAAG;oBACnBV,MAAM;oBACNY,SAAS;gBACX;YACF;YAEA,IAAI,CAACf,eAAe;gBAClBY,OAAOZ,aAAa,GAAG;oBACrBG,MAAM;oBACNY,SAAS;gBACX;YACF;YAEA,IAAIf,iBAAiBa,aAAa;gBAChC,MAAMP,QAAQ,IAAIrB,QAAQ4B;gBAC1B,MAAM,EAAEG,MAAM,EAAE,GAAGnB;gBACnB,MAAM,EAAEoB,WAAW,EAAEC,WAAW,EAAE,GAAGF;gBACrC,MAAMG,iBAAiB5B,SAASS,eAAeiB;gBAC/C,MAAMG,iBAAiB5B,SAASQ,eAAeiB;gBAC/C,MAAMI,qBAAqB5B,YACzBO,eACAkB,aACAJ;gBAGF,MAAMQ,aACJR,SAAS,QACL;oBACES,KAAKF;oBACLG,KAAKL;gBACP,IACA;oBACEI,KAAKH;oBACLI,KAAKH;gBACP;gBAEN,2CAA2C;gBAC3C,4CAA4C;gBAC5C,IAAIf,MAAMmB,EAAE,CAACH,YAAYE,MAAM;oBAC7BZ,OAAOC,WAAW,GAAG;wBACnBV,MAAM;wBACNY,SAAS,CAAC,wBAAwB,EAAE,IAAI9B,QACtCqC,WAAWE,GAAG,EACdE,IAAI,CAACV,OAAOW,QAAQ,EAAE,CAAC;oBAC3B;gBACF;gBACA,IAAIrB,MAAMsB,EAAE,CAACN,YAAYC,MAAM;oBAC7BX,OAAOC,WAAW,GAAG;wBACnBV,MAAM;wBACNY,SAAS,CAAC,2BAA2B,EAAE,IAAI9B,QACzCqC,WAAWC,GAAG,EACdG,IAAI,CAACV,OAAOW,QAAQ,EAAE,CAAC;oBAC3B;gBACF;YACF;YAEA,OAAOf;QACT;IACF;AACF"}
@@ -0,0 +1,30 @@
1
+ import { AlgoOrderEntity, AlgoOrderRootType, OrderType, TriggerPriceType } from "@orderly.network/types";
2
+ import { OrderFormEntity, ValuesDepConfig, VerifyResult } from "./interface";
3
+ import { BaseOrderCreator } from "./baseCreator";
4
+ export declare class StopMarketOrderCreator extends BaseOrderCreator<AlgoOrderEntity> {
5
+ create(values: AlgoOrderEntity & {
6
+ order_quantity: number;
7
+ order_price: number;
8
+ }): Pick<{
9
+ trigger_price: string | number;
10
+ algo_type: AlgoOrderRootType;
11
+ type: OrderType;
12
+ quantity: number;
13
+ trigger_price_type: TriggerPriceType;
14
+ symbol: string;
15
+ order_type: OrderType;
16
+ order_type_ext?: OrderType | undefined;
17
+ order_price?: string | number | undefined;
18
+ order_quantity?: string | number | undefined;
19
+ order_amount?: number | undefined;
20
+ visible_quantity?: number | undefined;
21
+ reduce_only?: boolean | undefined;
22
+ side: import("@orderly.network/types").OrderSide;
23
+ broker_id?: string | undefined;
24
+ total?: string | number | undefined;
25
+ isStopOrder?: boolean | undefined;
26
+ order_tag?: string | undefined;
27
+ }, "symbol" | "type" | "algo_type" | "trigger_price_type" | "side" | "quantity" | "visible_quantity" | "reduce_only" | "trigger_price">;
28
+ validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
29
+ }
30
+ //# sourceMappingURL=stopMarketOrderCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopMarketOrderCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/stopMarketOrderCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EAEjB,SAAS,EACT,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,sBAAuB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IAC3E,MAAM,CACJ,MAAM,EAAE,eAAe,GAAG;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB;;;;;;;;;;;;;;;;;;;;IA+BH,QAAQ,CACN,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,YAAY,CAAC;CAgBzB"}
@@ -0,0 +1,46 @@
1
+ import { AlgoOrderRootType, OrderType, TriggerPriceType } from "@orderly.network/types";
2
+ import { pick } from "ramda";
3
+ import { BaseOrderCreator } from "./baseCreator";
4
+ export class StopMarketOrderCreator extends BaseOrderCreator {
5
+ create(values) {
6
+ const order = {
7
+ ...this.baseOrder(values),
8
+ // order_price: values.order_price,
9
+ trigger_price: values.trigger_price,
10
+ algo_type: AlgoOrderRootType.STOP,
11
+ type: OrderType.MARKET,
12
+ quantity: values["order_quantity"],
13
+ // price: values["order_price"],
14
+ trigger_price_type: TriggerPriceType.MARK_PRICE
15
+ };
16
+ return pick([
17
+ "symbol",
18
+ "trigger_price",
19
+ "algo_type",
20
+ "type",
21
+ "quantity",
22
+ // "price",
23
+ "trigger_price_type",
24
+ "side",
25
+ "reduce_only",
26
+ "visible_quantity"
27
+ ], order);
28
+ // return order;
29
+ }
30
+ validate(values, config) {
31
+ return this.baseValidate(values, config).then((errors)=>{
32
+ // const errors = this.baseValidate(values, config);
33
+ // @ts-ignore
34
+ const { order_price, trigger_price, side } = values;
35
+ if (!trigger_price) {
36
+ errors.trigger_price = {
37
+ type: "required",
38
+ message: "Trigger price is required"
39
+ };
40
+ }
41
+ return errors;
42
+ });
43
+ }
44
+ }
45
+
46
+ //# sourceMappingURL=stopMarketOrderCreator.js.map
@@ -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":["AlgoOrderRootType","OrderType","TriggerPriceType","pick","BaseOrderCreator","StopMarketOrderCreator","create","values","order","baseOrder","trigger_price","algo_type","STOP","type","MARKET","quantity","trigger_price_type","MARK_PRICE","validate","config","baseValidate","then","errors","order_price","side","message"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAEEA,iBAAiB,EAEjBC,SAAS,EACTC,gBAAgB,QACX,yBAAyB;AAGhC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,gBAAgB,QAAQ,gBAAgB;AAEjD,OAAO,MAAMC,+BAA+BD;IAC1CE,OACEC,MAGC,EACD;QACA,MAAMC,QAAQ;YACZ,GAAG,IAAI,CAACC,SAAS,CAACF,OAAiC;YACnD,mCAAmC;YACnCG,eAAeH,OAAOG,aAAa;YACnCC,WAAWX,kBAAkBY,IAAI;YACjCC,MAAMZ,UAAUa,MAAM;YACtBC,UAAUR,MAAM,CAAC,iBAAiB;YAClC,gCAAgC;YAChCS,oBAAoBd,iBAAiBe,UAAU;QACjD;QAEA,OAAOd,KACL;YACE;YACA;YACA;YACA;YACA;YACA,WAAW;YACX;YACA;YACA;YACA;SACD,EACDK;IAGF,gBAAgB;IAClB;IACAU,SACEX,MAAuB,EACvBY,MAAuB,EACA;QACvB,OAAO,IAAI,CAACC,YAAY,CAACb,QAAQY,QAAQE,IAAI,CAAC,CAACC;YAC7C,oDAAoD;YACpD,aAAa;YACb,MAAM,EAAEC,WAAW,EAAEb,aAAa,EAAEc,IAAI,EAAE,GAAGjB;YAE7C,IAAI,CAACG,eAAe;gBAClBY,OAAOZ,aAAa,GAAG;oBACrBG,MAAM;oBACNY,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,88 @@
1
+ import { OrderType } 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 { BaseAlgoOrderCreator } from "./baseAlgoCreator";
7
+ import { Decimal } from "@orderly.network/utils";
8
+ export class TPSLOrderCreator extends BaseAlgoOrderCreator {
9
+ create(values, config) {
10
+ const side = values.side === OrderSide.BUY ? OrderSide.SELL : OrderSide.BUY;
11
+ const child_orders = [];
12
+ if (typeof values.tp_trigger_price !== "undefined") {
13
+ const tp_trigger_price = !!values.sl_trigger_price ? new Decimal(values.tp_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.tp_trigger_price;
14
+ child_orders.push({
15
+ algo_type: AlgoOrderType.TAKE_PROFIT,
16
+ reduce_only: true,
17
+ side,
18
+ type: OrderType.MARKET,
19
+ trigger_price: tp_trigger_price,
20
+ symbol: values.symbol,
21
+ is_activated: !!values.tp_trigger_price
22
+ });
23
+ }
24
+ if (typeof values.sl_trigger_price !== "undefined") {
25
+ const sl_trigger_price = !!values.sl_trigger_price ? new Decimal(values.sl_trigger_price).todp(config.symbol.quote_dp).toNumber() : values.sl_trigger_price;
26
+ child_orders.push({
27
+ algo_type: AlgoOrderType.STOP_LOSS,
28
+ reduce_only: true,
29
+ side,
30
+ type: OrderType.MARKET,
31
+ trigger_price: sl_trigger_price,
32
+ symbol: values.symbol,
33
+ is_activated: !!values.sl_trigger_price
34
+ });
35
+ }
36
+ return {
37
+ algo_type: AlgoOrderRootType.TP_SL,
38
+ trigger_price_type: TriggerPriceType.MARK_PRICE,
39
+ reduce_only: true,
40
+ quantity: values.quantity,
41
+ symbol: values.symbol,
42
+ child_orders
43
+ };
44
+ }
45
+ crateUpdateOrder(values, oldValue, config) {
46
+ const data = this.create(values, config);
47
+ const newData = [];
48
+ const needUpdateQty = values.quantity !== oldValue.quantity;
49
+ data.child_orders.forEach((order)=>{
50
+ // find the old order
51
+ let _order = Object.create(null);
52
+ if (needUpdateQty) {
53
+ _order["quantity"] = data.quantity;
54
+ }
55
+ const oldOrder = oldValue.child_orders?.find((oldOrder)=>oldOrder.algo_type === order.algo_type);
56
+ if (oldOrder) {
57
+ if (!order.is_activated) {
58
+ _order["is_activated"] = false;
59
+ } else if (oldOrder.trigger_price !== order.trigger_price) {
60
+ // _order["order_id"] = Number(oldOrder.algo_order_id);
61
+ _order["trigger_price"] = order.trigger_price;
62
+ }
63
+ if (Object.keys(_order).length > 0) {
64
+ _order["order_id"] = Number(oldOrder.algo_order_id);
65
+ newData.push(_order);
66
+ }
67
+ }
68
+ });
69
+ if (needUpdateQty && newData.length < 2) {
70
+ // if quantity is changed, need to update all child orders
71
+ const missingOrders = oldValue.child_orders.filter((order)=>order.algo_order_id !== newData[0].order_id);
72
+ if (missingOrders.length) {
73
+ newData.push({
74
+ quantity: Number(data.quantity),
75
+ order_id: missingOrders[0].algo_order_id
76
+ });
77
+ }
78
+ }
79
+ return [
80
+ {
81
+ child_orders: newData
82
+ },
83
+ data
84
+ ];
85
+ }
86
+ }
87
+
88
+ //# 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":["OrderType","TriggerPriceType","AlgoOrderType","AlgoOrderRootType","OrderSide","BaseAlgoOrderCreator","Decimal","TPSLOrderCreator","create","values","config","side","BUY","SELL","child_orders","tp_trigger_price","sl_trigger_price","todp","symbol","quote_dp","toNumber","push","algo_type","TAKE_PROFIT","reduce_only","type","MARKET","trigger_price","is_activated","STOP_LOSS","TP_SL","trigger_price_type","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":"AAAA,SAA0BA,SAAS,QAAa,yBAAyB;AACzE,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAAgCC,oBAAoB,QAAQ,oBAAoB;AAEhF,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,MAAMC,yBAAyBF;IAGpCG,OACEC,MAAgD,EAChDC,MAAuB,EACvB;QACA,MAAMC,OACJF,OAAOE,IAAI,KAAMP,UAAUQ,GAAG,GAAGR,UAAUS,IAAI,GAAGT,UAAUQ,GAAG;QAEjE,MAAME,eAAe,EAAE;QAEvB,IAAI,OAAOL,OAAOM,gBAAgB,KAAK,aAAa;YAClD,MAAMA,mBAAmB,CAAC,CAACN,OAAOO,gBAAgB,GAC9C,IAAIV,QAAQG,OAAOM,gBAAgB,EAChCE,IAAI,CAACP,OAAOQ,MAAM,CAACC,QAAQ,EAC3BC,QAAQ,KACXX,OAAOM,gBAAgB;YAE3BD,aAAaO,IAAI,CAAC;gBAChBC,WAAWpB,cAAcqB,WAAW;gBACpCC,aAAa;gBACbb;gBACAc,MAAMzB,UAAU0B,MAAM;gBACtBC,eAAeZ;gBACfG,QAAQT,OAAOS,MAAM;gBACrBU,cAAc,CAAC,CAACnB,OAAOM,gBAAgB;YACzC;QACF;QAEA,IAAI,OAAON,OAAOO,gBAAgB,KAAK,aAAa;YAClD,MAAMA,mBAAmB,CAAC,CAACP,OAAOO,gBAAgB,GAC9C,IAAIV,QAAQG,OAAOO,gBAAgB,EAChCC,IAAI,CAACP,OAAOQ,MAAM,CAACC,QAAQ,EAC3BC,QAAQ,KACXX,OAAOO,gBAAgB;YAC3BF,aAAaO,IAAI,CAAC;gBAChBC,WAAWpB,cAAc2B,SAAS;gBAClCL,aAAa;gBACbb;gBACAc,MAAMzB,UAAU0B,MAAM;gBACtBC,eAAeX;gBACfE,QAAQT,OAAOS,MAAM;gBACrBU,cAAc,CAAC,CAACnB,OAAOO,gBAAgB;YACzC;QACF;QAEA,OAAO;YACLM,WAAWnB,kBAAkB2B,KAAK;YAClCC,oBAAoB9B,iBAAiB+B,UAAU;YAC/CR,aAAa;YACbS,UAAUxB,OAAOwB,QAAQ;YACzBf,QAAQT,OAAOS,MAAM;YACrBJ;QACF;IACF;IAEAoB,iBACEzB,MAAgD,EAChD0B,QAAuB,EACvBzB,MAAuB,EAIvB;QACA,MAAM0B,OAAO,IAAI,CAAC5B,MAAM,CAACC,QAAQC;QACjC,MAAM2B,UAAmC,EAAE;QAE3C,MAAMC,gBAAgB7B,OAAOwB,QAAQ,KAAKE,SAASF,QAAQ;QAE3DG,KAAKtB,YAAY,CAACyB,OAAO,CAAC,CAACC;YACzB,qBAAqB;YACrB,IAAIC,SAASC,OAAOlC,MAAM,CAAC;YAE3B,IAAI8B,eAAe;gBACjBG,MAAM,CAAC,WAAW,GAAGL,KAAKH,QAAQ;YACpC;YAEA,MAAMU,WAAWR,SAASrB,YAAY,EAAE8B,KACtC,CAACD,WAAaA,SAASrB,SAAS,KAAKkB,MAAMlB,SAAS;YAGtD,IAAIqB,UAAU;gBACZ,IAAI,CAACH,MAAMZ,YAAY,EAAE;oBACvBa,MAAM,CAAC,eAAe,GAAG;gBAC3B,OAAO,IAAIE,SAAShB,aAAa,KAAKa,MAAMb,aAAa,EAAE;oBACzD,uDAAuD;oBACvDc,MAAM,CAAC,gBAAgB,GAAGD,MAAMb,aAAa;gBAC/C;gBAEA,IAAIe,OAAOG,IAAI,CAACJ,QAAQK,MAAM,GAAG,GAAG;oBAClCL,MAAM,CAAC,WAAW,GAAGM,OAAOJ,SAASK,aAAa;oBAClDX,QAAQhB,IAAI,CAACoB;gBACf;YACF;QACF;QAEA,IAAIH,iBAAiBD,QAAQS,MAAM,GAAG,GAAG;YACvC,0DAA0D;YAC1D,MAAMG,gBAAgBd,SAASrB,YAAY,CAACoC,MAAM,CAChD,CAACV,QAAUA,MAAMQ,aAAa,KAAKX,OAAO,CAAC,EAAE,CAACc,QAAQ;YAGxD,IAAIF,cAAcH,MAAM,EAAE;gBACxBT,QAAQhB,IAAI,CAAC;oBACXY,UAAUc,OAAOX,KAAKH,QAAQ;oBAC9BkB,UAAUF,aAAa,CAAC,EAAE,CAACD,aAAa;gBAC1C;YACF;QACF;QAEA,OAAO;YACL;gBACElC,cAAcuB;YAChB;YACAD;SACD;IACH;AACF"}