@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,226 @@
1
+ import { OrderSide } from "@orderly.network/types";
2
+ import { AlgoOrderType } from "@orderly.network/types";
3
+ import { Decimal, zero } from "@orderly.network/utils";
4
+ /**
5
+ * offset -> TP/SL price
6
+ */ export function offsetToPrice(inputs) {
7
+ const { qty, offset, entryPrice, orderType, orderSide } = inputs;
8
+ if (!offset) return;
9
+ if (orderSide === OrderSide.BUY) {
10
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
11
+ return new Decimal(entryPrice).add(new Decimal(offset)).toNumber();
12
+ }
13
+ return new Decimal(entryPrice).minus(new Decimal(offset)).toNumber();
14
+ }
15
+ if (orderSide === OrderSide.SELL) {
16
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
17
+ return new Decimal(entryPrice).minus(new Decimal(offset)).toNumber();
18
+ }
19
+ return new Decimal(entryPrice).add(new Decimal(offset)).toNumber();
20
+ }
21
+ }
22
+ export function priceToOffset(inputs, options = {}) {
23
+ const { qty, price, entryPrice, orderType, orderSide } = inputs;
24
+ const { symbol } = options;
25
+ let decimal;
26
+ if (orderSide === OrderSide.BUY) {
27
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
28
+ decimal = new Decimal(price).minus(new Decimal(entryPrice));
29
+ }
30
+ decimal = new Decimal(price).minus(new Decimal(entryPrice));
31
+ }
32
+ if (orderSide === OrderSide.SELL) {
33
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
34
+ decimal = new Decimal(price).minus(new Decimal(entryPrice));
35
+ }
36
+ decimal = new Decimal(entryPrice).minus(new Decimal(price));
37
+ }
38
+ if (symbol) {
39
+ return decimal.abs().todp(symbol.quote_dp, 4).toNumber();
40
+ }
41
+ return decimal.abs().toNumber();
42
+ }
43
+ export function offsetPercentageToPrice(inputs) {
44
+ const { qty, percentage, entryPrice, orderType, orderSide } = inputs;
45
+ if (!percentage) return;
46
+ if (orderSide === OrderSide.BUY) {
47
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
48
+ return new Decimal(1).add(new Decimal(percentage)).mul(new Decimal(entryPrice)).toNumber();
49
+ }
50
+ return new Decimal(1).minus(new Decimal(percentage)).mul(new Decimal(entryPrice)).toNumber();
51
+ }
52
+ if (orderSide === OrderSide.SELL) {
53
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
54
+ return new Decimal(1).minus(new Decimal(percentage)).mul(new Decimal(entryPrice)).toNumber();
55
+ }
56
+ return new Decimal(1).add(new Decimal(percentage)).mul(new Decimal(entryPrice)).toNumber();
57
+ }
58
+ }
59
+ export function priceToOffsetPercentage(inputs) {
60
+ const { qty, price, entryPrice, orderType, orderSide } = inputs;
61
+ if (orderSide === OrderSide.BUY) {
62
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
63
+ return new Decimal(price).div(new Decimal(entryPrice)).minus(1).toNumber();
64
+ }
65
+ return new Decimal(1).minus(new Decimal(price).div(new Decimal(entryPrice))).toNumber();
66
+ }
67
+ if (orderSide === OrderSide.SELL) {
68
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
69
+ return new Decimal(1).minus(new Decimal(price).div(new Decimal(entryPrice))).toNumber();
70
+ }
71
+ return new Decimal(price).div(new Decimal(entryPrice)).minus(1).toNumber();
72
+ }
73
+ }
74
+ /**
75
+ * pnl -> TP/SL price
76
+ */ export function pnlToPrice(inputs) {
77
+ const { qty, pnl, entryPrice, orderType, orderSide } = inputs;
78
+ ;
79
+ if (!pnl) {
80
+ return;
81
+ }
82
+ if (orderSide === OrderSide.BUY) {
83
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
84
+ return new Decimal(entryPrice).plus(new Decimal(pnl).div(new Decimal(qty))).toNumber();
85
+ }
86
+ return new Decimal(entryPrice).add(new Decimal(pnl).div(new Decimal(qty))).toNumber();
87
+ }
88
+ if (orderSide === OrderSide.SELL) {
89
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
90
+ return new Decimal(entryPrice).add(new Decimal(pnl).div(new Decimal(qty))).toNumber();
91
+ }
92
+ return new Decimal(entryPrice).add(new Decimal(pnl).div(new Decimal(qty))).toNumber();
93
+ }
94
+ }
95
+ /**
96
+ * TP/SL price -> pnl
97
+ */ export function priceToPnl(inputs, options = {}) {
98
+ const { qty, price, entryPrice, orderType, orderSide } = inputs;
99
+ const { symbol } = options;
100
+ let decimal = zero;
101
+ if (orderSide === OrderSide.BUY) {
102
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
103
+ decimal = new Decimal(qty).mul(new Decimal(price).minus(new Decimal(entryPrice)));
104
+ }
105
+ decimal = new Decimal(qty).mul(new Decimal(price).minus(new Decimal(entryPrice)));
106
+ }
107
+ if (orderSide === OrderSide.SELL) {
108
+ if (orderType === AlgoOrderType.TAKE_PROFIT) {
109
+ decimal = new Decimal(qty).mul(new Decimal(price).minus(new Decimal(entryPrice)));
110
+ }
111
+ decimal = new Decimal(qty).mul(new Decimal(price).minus(new Decimal(entryPrice)));
112
+ }
113
+ if (symbol) {
114
+ return decimal.todp(symbol.quote_dp, 4).toNumber();
115
+ }
116
+ return decimal.toNumber();
117
+ }
118
+ export function calculateHelper(key, inputs, options = {}) {
119
+ const { symbol } = options;
120
+ // if not need to be computed, return the value directly
121
+ if (key !== "quantity" && key !== "tp_trigger_price" && key !== "sl_trigger_price" && key !== "tp_pnl" && key !== "sl_pnl" && key !== "tp_offset" && key !== "sl_offset" && key !== "tp_offset_percentage" && key !== "sl_offset_percentage") {
122
+ return {
123
+ [key]: inputs.value
124
+ };
125
+ }
126
+ const orderType = key.startsWith("tp_") ? AlgoOrderType.TAKE_PROFIT : AlgoOrderType.STOP_LOSS;
127
+ const keyPrefix = key.slice(0, 3);
128
+ let qty = Number(key === "quantity" ? inputs.value : inputs.qty);
129
+ if (qty === 0) return {
130
+ [`${keyPrefix}trigger_price`]: "",
131
+ // [`${keyPrefix}offset`]: "",
132
+ // [`${keyPrefix}offset_percentage`]: "",
133
+ [`${keyPrefix}pnl`]: "",
134
+ [key]: inputs.value
135
+ };
136
+ let trigger_price, offset, offset_percentage, pnl;
137
+ switch(key){
138
+ case "tp_trigger_price":
139
+ case "sl_trigger_price":
140
+ {
141
+ trigger_price = inputs.value;
142
+ // if trigger price is empty and the key is `*_trigger_price`, reset the offset and pnl
143
+ if (inputs.value === "") {
144
+ return {
145
+ [`${keyPrefix}trigger_price`]: trigger_price,
146
+ [`${keyPrefix}offset`]: "",
147
+ [`${keyPrefix}offset_percentage`]: "",
148
+ [`${keyPrefix}pnl`]: ""
149
+ };
150
+ }
151
+ break;
152
+ }
153
+ case "tp_pnl":
154
+ case "sl_pnl":
155
+ {
156
+ pnl = inputs.value;
157
+ trigger_price = pnlToPrice({
158
+ qty,
159
+ pnl: Number(inputs.value),
160
+ entryPrice: inputs.entryPrice,
161
+ orderSide: inputs.orderSide,
162
+ orderType
163
+ });
164
+ break;
165
+ }
166
+ case "tp_offset":
167
+ case "sl_offset":
168
+ {
169
+ offset = inputs.value;
170
+ trigger_price = offsetToPrice({
171
+ qty,
172
+ offset: Number(inputs.value),
173
+ entryPrice: inputs.entryPrice,
174
+ orderSide: inputs.orderSide,
175
+ orderType: key === "tp_offset" ? AlgoOrderType.TAKE_PROFIT : AlgoOrderType.STOP_LOSS
176
+ });
177
+ break;
178
+ }
179
+ case "tp_offset_percentage":
180
+ case "sl_offset_percentage":
181
+ {
182
+ offset_percentage = inputs.value;
183
+ trigger_price = offsetPercentageToPrice({
184
+ qty,
185
+ percentage: Number(inputs.value),
186
+ entryPrice: inputs.entryPrice,
187
+ orderSide: inputs.orderSide,
188
+ orderType
189
+ });
190
+ break;
191
+ }
192
+ }
193
+ if (!trigger_price) return {
194
+ [`${keyPrefix}trigger_price`]: "",
195
+ [`${keyPrefix}offset`]: "",
196
+ [`${keyPrefix}offset_percentage`]: "",
197
+ [`${keyPrefix}pnl`]: "",
198
+ [key]: inputs.value
199
+ };
200
+ return {
201
+ [`${keyPrefix}trigger_price`]: symbol ? new Decimal(Number(trigger_price)).todp(symbol.quote_dp, 4).toNumber() : trigger_price,
202
+ [`${keyPrefix}offset`]: offset ?? priceToOffset({
203
+ qty,
204
+ price: Number(trigger_price),
205
+ entryPrice: inputs.entryPrice,
206
+ orderSide: inputs.orderSide,
207
+ orderType
208
+ }, options),
209
+ [`${keyPrefix}offset_percentage`]: offset_percentage ?? priceToOffsetPercentage({
210
+ qty,
211
+ price: Number(trigger_price),
212
+ entryPrice: inputs.entryPrice,
213
+ orderSide: inputs.orderSide,
214
+ orderType
215
+ }),
216
+ [`${keyPrefix}pnl`]: pnl ?? priceToPnl({
217
+ qty,
218
+ price: Number(trigger_price),
219
+ entryPrice: inputs.entryPrice,
220
+ orderSide: inputs.orderSide,
221
+ orderType
222
+ }, options)
223
+ };
224
+ }
225
+
226
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/orderly/useTakeProfitAndStopLoss/utils.ts"],"sourcesContent":["import { API, OrderSide, PositionSide } from \"@orderly.network/types\";\nimport { OrderType } from \"@orderly.network/types\";\nimport { AlgoOrderType } from \"@orderly.network/types\";\nimport { Decimal, zero } from \"@orderly.network/utils\";\n\nexport type UpdateOrderKey =\n | \"tp_trigger_price\"\n | \"tp_offset_percentage\"\n | \"tp_pnl\"\n | \"tp_offset\"\n | \"quantity\"\n | \"sl_trigger_price\"\n | \"sl_offset_percentage\"\n | \"sl_pnl\"\n | \"sl_offset\";\n\n/**\n * offset -> TP/SL price\n */\nexport function offsetToPrice(inputs: {\n qty: number;\n offset: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n}) {\n const { qty, offset, entryPrice, orderType, orderSide } = inputs;\n\n if (!offset) return;\n\n if (orderSide === OrderSide.BUY) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(entryPrice).add(new Decimal(offset)).toNumber();\n }\n\n return new Decimal(entryPrice).minus(new Decimal(offset)).toNumber();\n }\n\n if (orderSide === OrderSide.SELL) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(entryPrice).minus(new Decimal(offset)).toNumber();\n }\n\n return new Decimal(entryPrice).add(new Decimal(offset)).toNumber();\n }\n}\n\nexport function priceToOffset(\n inputs: {\n qty: number;\n price: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n },\n options: { symbol?: API.SymbolExt } = {}\n) {\n const { qty, price, entryPrice, orderType, orderSide } = inputs;\n const { symbol } = options;\n let decimal: Decimal;\n\n if (orderSide === OrderSide.BUY) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n decimal = new Decimal(price).minus(new Decimal(entryPrice));\n }\n\n decimal = new Decimal(price).minus(new Decimal(entryPrice));\n }\n\n if (orderSide === OrderSide.SELL) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n decimal = new Decimal(price).minus(new Decimal(entryPrice));\n }\n\n decimal = new Decimal(entryPrice).minus(new Decimal(price));\n }\n\n if (symbol) {\n return decimal!.abs().todp(symbol.quote_dp, 4).toNumber();\n }\n\n return decimal!.abs().toNumber();\n}\n\nexport function offsetPercentageToPrice(inputs: {\n qty: number;\n percentage: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n}) {\n const { qty, percentage, entryPrice, orderType, orderSide } = inputs;\n\n if (!percentage) return;\n\n if (orderSide === OrderSide.BUY) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(1)\n .add(new Decimal(percentage))\n .mul(new Decimal(entryPrice))\n .toNumber();\n }\n\n return new Decimal(1)\n .minus(new Decimal(percentage))\n .mul(new Decimal(entryPrice))\n .toNumber();\n }\n\n if (orderSide === OrderSide.SELL) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(1)\n .minus(new Decimal(percentage))\n .mul(new Decimal(entryPrice))\n .toNumber();\n }\n\n return new Decimal(1)\n .add(new Decimal(percentage))\n .mul(new Decimal(entryPrice))\n .toNumber();\n }\n}\n\nexport function priceToOffsetPercentage(inputs: {\n qty: number;\n price: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n}) {\n const { qty, price, entryPrice, orderType, orderSide } = inputs;\n\n if (orderSide === OrderSide.BUY) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(price)\n .div(new Decimal(entryPrice))\n .minus(1)\n .toNumber();\n }\n\n return new Decimal(1)\n .minus(new Decimal(price).div(new Decimal(entryPrice)))\n .toNumber();\n }\n\n if (orderSide === OrderSide.SELL) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(1)\n .minus(new Decimal(price).div(new Decimal(entryPrice)))\n .toNumber();\n }\n\n return new Decimal(price).div(new Decimal(entryPrice)).minus(1).toNumber();\n }\n}\n\n/**\n * pnl -> TP/SL price\n */\nexport function pnlToPrice(inputs: {\n qty: number;\n pnl: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n}) {\n const { qty, pnl, entryPrice, orderType, orderSide } = inputs;\n\n console.log(\"pnlToPrice\", inputs);\n\n if (!pnl) {\n return;\n }\n\n if (orderSide === OrderSide.BUY) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(entryPrice)\n .plus(new Decimal(pnl).div(new Decimal(qty)))\n .toNumber();\n }\n\n return new Decimal(entryPrice)\n .add(new Decimal(pnl).div(new Decimal(qty)))\n .toNumber();\n }\n if (orderSide === OrderSide.SELL) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n return new Decimal(entryPrice)\n .add(new Decimal(pnl).div(new Decimal(qty)))\n .toNumber();\n }\n\n return new Decimal(entryPrice)\n .add(new Decimal(pnl).div(new Decimal(qty)))\n .toNumber();\n }\n}\n\n/**\n * TP/SL price -> pnl\n */\nexport function priceToPnl(\n inputs: {\n qty: number;\n price: number;\n entryPrice: number;\n orderSide: OrderSide;\n orderType: AlgoOrderType;\n },\n options: { symbol?: API.SymbolExt } = {}\n): number {\n const { qty, price, entryPrice, orderType, orderSide } = inputs;\n const { symbol } = options;\n let decimal = zero;\n\n if (orderSide === OrderSide.BUY) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n decimal = new Decimal(qty).mul(\n new Decimal(price).minus(new Decimal(entryPrice))\n );\n }\n\n decimal = new Decimal(qty).mul(\n new Decimal(price).minus(new Decimal(entryPrice))\n );\n }\n\n if (orderSide === OrderSide.SELL) {\n if (orderType === AlgoOrderType.TAKE_PROFIT) {\n decimal = new Decimal(qty).mul(\n new Decimal(price).minus(new Decimal(entryPrice))\n );\n }\n\n decimal = new Decimal(qty).mul(\n new Decimal(price).minus(new Decimal(entryPrice))\n );\n }\n\n if (symbol) {\n return decimal.todp(symbol.quote_dp, 4).toNumber();\n }\n\n return decimal.toNumber();\n}\n\nexport function calculateHelper(\n key: string,\n inputs: {\n key: string;\n value: string | number;\n entryPrice: number;\n qty: number;\n orderSide: OrderSide;\n },\n options: { symbol?: API.SymbolExt } = {}\n) {\n const { symbol } = options;\n // if not need to be computed, return the value directly\n if (\n key !== \"quantity\" &&\n key !== \"tp_trigger_price\" &&\n key !== \"sl_trigger_price\" &&\n key !== \"tp_pnl\" &&\n key !== \"sl_pnl\" &&\n key !== \"tp_offset\" &&\n key !== \"sl_offset\" &&\n key !== \"tp_offset_percentage\" &&\n key !== \"sl_offset_percentage\"\n ) {\n return {\n [key]: inputs.value,\n };\n }\n\n const orderType = key.startsWith(\"tp_\")\n ? AlgoOrderType.TAKE_PROFIT\n : AlgoOrderType.STOP_LOSS;\n const keyPrefix = key.slice(0, 3);\n\n let qty = Number(key === \"quantity\" ? inputs.value : inputs.qty);\n\n if (qty === 0)\n return {\n [`${keyPrefix}trigger_price`]: \"\",\n // [`${keyPrefix}offset`]: \"\",\n // [`${keyPrefix}offset_percentage`]: \"\",\n [`${keyPrefix}pnl`]: \"\",\n [key]: inputs.value,\n };\n\n let trigger_price, offset, offset_percentage, pnl;\n\n switch (key) {\n case \"tp_trigger_price\":\n case \"sl_trigger_price\": {\n trigger_price = inputs.value;\n // if trigger price is empty and the key is `*_trigger_price`, reset the offset and pnl\n if (inputs.value === \"\") {\n return {\n [`${keyPrefix}trigger_price`]: trigger_price,\n [`${keyPrefix}offset`]: \"\",\n [`${keyPrefix}offset_percentage`]: \"\",\n [`${keyPrefix}pnl`]: \"\",\n };\n }\n break;\n }\n\n case \"tp_pnl\":\n case \"sl_pnl\": {\n pnl = inputs.value;\n trigger_price = pnlToPrice({\n qty,\n pnl: Number(inputs.value),\n entryPrice: inputs.entryPrice,\n orderSide: inputs.orderSide,\n orderType,\n });\n break;\n }\n\n case \"tp_offset\":\n case \"sl_offset\": {\n offset = inputs.value;\n trigger_price = offsetToPrice({\n qty,\n offset: Number(inputs.value),\n entryPrice: inputs.entryPrice,\n orderSide: inputs.orderSide,\n orderType:\n key === \"tp_offset\"\n ? AlgoOrderType.TAKE_PROFIT\n : AlgoOrderType.STOP_LOSS,\n });\n break;\n }\n\n case \"tp_offset_percentage\":\n case \"sl_offset_percentage\": {\n offset_percentage = inputs.value;\n trigger_price = offsetPercentageToPrice({\n qty,\n percentage: Number(inputs.value),\n entryPrice: inputs.entryPrice,\n orderSide: inputs.orderSide,\n orderType,\n });\n break;\n }\n }\n\n if (!trigger_price)\n return {\n [`${keyPrefix}trigger_price`]: \"\",\n [`${keyPrefix}offset`]: \"\",\n [`${keyPrefix}offset_percentage`]: \"\",\n [`${keyPrefix}pnl`]: \"\",\n [key]: inputs.value,\n };\n\n return {\n [`${keyPrefix}trigger_price`]: symbol\n ? new Decimal(Number(trigger_price)).todp(symbol.quote_dp, 4).toNumber()\n : trigger_price,\n [`${keyPrefix}offset`]:\n offset ??\n priceToOffset(\n {\n qty,\n price: Number(trigger_price!),\n entryPrice: inputs.entryPrice,\n orderSide: inputs.orderSide,\n orderType,\n },\n options\n ),\n [`${keyPrefix}offset_percentage`]:\n offset_percentage ??\n priceToOffsetPercentage({\n qty,\n price: Number(trigger_price!),\n entryPrice: inputs.entryPrice,\n orderSide: inputs.orderSide,\n orderType,\n }),\n [`${keyPrefix}pnl`]:\n pnl ??\n priceToPnl(\n {\n qty,\n price: Number(trigger_price!),\n entryPrice: inputs.entryPrice,\n orderSide: inputs.orderSide,\n orderType,\n },\n options\n ),\n };\n}\n"],"names":["OrderSide","AlgoOrderType","Decimal","zero","offsetToPrice","inputs","qty","offset","entryPrice","orderType","orderSide","BUY","TAKE_PROFIT","add","toNumber","minus","SELL","priceToOffset","options","price","symbol","decimal","abs","todp","quote_dp","offsetPercentageToPrice","percentage","mul","priceToOffsetPercentage","div","pnlToPrice","pnl","plus","priceToPnl","calculateHelper","key","value","startsWith","STOP_LOSS","keyPrefix","slice","Number","trigger_price","offset_percentage"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=limitOrderCreator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limitOrderCreator.test.d.ts","sourceRoot":"","sources":["../../../../src/services/orderCreator/__test__/limitOrderCreator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=orderCreator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderCreator.test.d.ts","sourceRoot":"","sources":["../../../../src/services/orderCreator/__test__/orderCreator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stopLimitOrderCreator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopLimitOrderCreator.test.d.ts","sourceRoot":"","sources":["../../../../src/services/orderCreator/__test__/stopLimitOrderCreator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stopMarketOrderCreator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopMarketOrderCreator.test.d.ts","sourceRoot":"","sources":["../../../../src/services/orderCreator/__test__/stopMarketOrderCreator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tpslOrderCreator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tpslOrderCreator.test.d.ts","sourceRoot":"","sources":["../../../../src/services/orderCreator/__test__/tpslOrderCreator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tpslPositionOrderCreator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tpslPositionOrderCreator.test.d.ts","sourceRoot":"","sources":["../../../../src/services/orderCreator/__test__/tpslPositionOrderCreator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { AlgoOrderEntity } from "@orderly.network/types";
2
+ import { OrderCreator, ValuesDepConfig } from "./interface";
3
+ import { AlgoOrderRootType } from "@orderly.network/types";
4
+ export type AlgoOrderUpdateEntity = {
5
+ trigger_price?: number;
6
+ order_id: number;
7
+ quantity?: number;
8
+ is_activated?: boolean;
9
+ };
10
+ export declare abstract class BaseAlgoOrderCreator<T extends AlgoOrderEntity<AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL>> implements OrderCreator<T> {
11
+ abstract create(values: T, config: ValuesDepConfig): T;
12
+ /**
13
+ * base validate
14
+ */
15
+ validate(values: Partial<T>, config: ValuesDepConfig): Promise<{
16
+ [P in keyof T]?: {
17
+ type: string;
18
+ message: string;
19
+ };
20
+ }>;
21
+ }
22
+ //# sourceMappingURL=baseAlgoCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseAlgoCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/baseAlgoCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAa,MAAM,wBAAwB,CAAC;AACpE,OAAO,EACL,YAAY,EAEZ,eAAe,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,8BAAsB,oBAAoB,CACxC,CAAC,SAAS,eAAe,CACvB,iBAAiB,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAC7D,CACD,YAAW,YAAY,CAAC,CAAC,CAAC;IAE1B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,GAAG,CAAC;IAEtD;;OAEG;IACH,QAAQ,CACN,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC;SACR,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;YACf,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB;KACF,CAAC;CAsEH"}
@@ -0,0 +1,57 @@
1
+ import { OrderSide } from "@orderly.network/types";
2
+ export class BaseAlgoOrderCreator {
3
+ /**
4
+ * base validate
5
+ */ validate(values, config) {
6
+ const result = Object.create(null);
7
+ return Promise.resolve().then(()=>{
8
+ const { tp_trigger_price, sl_trigger_price, side } = values;
9
+ const qty = Number(values.quantity);
10
+ const maxQty = config.maxQty;
11
+ if (!isNaN(qty) && qty > maxQty) {
12
+ result.quantity = {
13
+ message: `Quantity must be less than ${config.maxQty}`
14
+ };
15
+ }
16
+ if (Number(tp_trigger_price) < 0) {
17
+ result.tp_trigger_price = {
18
+ message: `TP Price must be greater than 0`
19
+ };
20
+ }
21
+ if (Number(sl_trigger_price) < 0) {
22
+ result.sl_trigger_price = {
23
+ message: `SL Price must be greater than 0`
24
+ };
25
+ }
26
+ // there need use position side to validate
27
+ // so if order's side is buy, then position's side is sell
28
+ if (side === OrderSide.BUY) {
29
+ if (!!sl_trigger_price && Number(sl_trigger_price) >= config.markPrice) {
30
+ result.sl_trigger_price = {
31
+ message: `SL price must be less than ${config.markPrice}`
32
+ };
33
+ }
34
+ if (!!tp_trigger_price && Number(tp_trigger_price) <= config.markPrice) {
35
+ result.tp_trigger_price = {
36
+ message: `TP price must be greater than ${config.markPrice}`
37
+ };
38
+ }
39
+ }
40
+ if (side === OrderSide.SELL) {
41
+ if (!!sl_trigger_price && Number(sl_trigger_price) <= config.markPrice) {
42
+ result.sl_trigger_price = {
43
+ message: `SL price must be greater than ${config.markPrice}`
44
+ };
45
+ }
46
+ if (!!tp_trigger_price && Number(tp_trigger_price) >= config.markPrice) {
47
+ result.tp_trigger_price = {
48
+ message: `TP price must be less than ${config.markPrice}`
49
+ };
50
+ }
51
+ }
52
+ return Object.keys(result).length > 0 ? result : null;
53
+ });
54
+ }
55
+ }
56
+
57
+ //# sourceMappingURL=baseAlgoCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/baseAlgoCreator.ts"],"sourcesContent":["import { AlgoOrderEntity, OrderSide } from \"@orderly.network/types\";\nimport {\n OrderCreator,\n OrderFormEntity,\n ValuesDepConfig,\n VerifyResult,\n} from \"./interface\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\n\nexport type AlgoOrderUpdateEntity = {\n trigger_price?: number;\n order_id: number;\n quantity?: number;\n is_activated?: boolean;\n};\n\nexport abstract class BaseAlgoOrderCreator<\n T extends AlgoOrderEntity<\n AlgoOrderRootType.POSITIONAL_TP_SL | AlgoOrderRootType.TP_SL\n >\n> implements OrderCreator<T>\n{\n abstract create(values: T, config: ValuesDepConfig): T;\n\n /**\n * base validate\n */\n validate(\n values: Partial<T>,\n config: ValuesDepConfig\n ): Promise<{\n [P in keyof T]?: {\n type: string;\n message: string;\n };\n }> {\n const result = Object.create(null);\n return Promise.resolve().then(() => {\n const { tp_trigger_price, sl_trigger_price, side } = values;\n\n const qty = Number(values.quantity);\n const maxQty = config.maxQty;\n if (!isNaN(qty) && qty > maxQty) {\n result.quantity = {\n message: `Quantity must be less than ${config.maxQty}`,\n };\n }\n\n if (Number(tp_trigger_price) < 0) {\n result.tp_trigger_price = {\n message: `TP Price must be greater than 0`,\n };\n }\n\n if (Number(sl_trigger_price) < 0) {\n result.sl_trigger_price = {\n message: `SL Price must be greater than 0`,\n };\n }\n\n // there need use position side to validate\n // so if order's side is buy, then position's side is sell\n if (side === OrderSide.BUY) {\n if (\n !!sl_trigger_price &&\n Number(sl_trigger_price) >= config.markPrice\n ) {\n result.sl_trigger_price = {\n message: `SL price must be less than ${config.markPrice}`,\n };\n }\n\n if (\n !!tp_trigger_price &&\n Number(tp_trigger_price) <= config.markPrice\n ) {\n result.tp_trigger_price = {\n message: `TP price must be greater than ${config.markPrice}`,\n };\n }\n }\n\n if (side === OrderSide.SELL) {\n if (\n !!sl_trigger_price &&\n Number(sl_trigger_price) <= config.markPrice\n ) {\n result.sl_trigger_price = {\n message: `SL price must be greater than ${config.markPrice}`,\n };\n }\n\n if (\n !!tp_trigger_price &&\n Number(tp_trigger_price) >= config.markPrice\n ) {\n result.tp_trigger_price = {\n message: `TP price must be less than ${config.markPrice}`,\n };\n }\n }\n\n return Object.keys(result).length > 0 ? result : null;\n });\n }\n}\n"],"names":["OrderSide","BaseAlgoOrderCreator","validate","values","config","result","Object","create","Promise","resolve","then","tp_trigger_price","sl_trigger_price","side","qty","Number","quantity","maxQty","isNaN","message","BUY","markPrice","SELL","keys","length"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAA0BA,SAAS,QAAQ,yBAAyB;AAgBpE,OAAO,MAAeC;IAQpB;;GAEC,GACDC,SACEC,MAAkB,EAClBC,MAAuB,EAMtB;QACD,MAAMC,SAASC,OAAOC,MAAM,CAAC;QAC7B,OAAOC,QAAQC,OAAO,GAAGC,IAAI,CAAC;YAC5B,MAAM,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,IAAI,EAAE,GAAGV;YAErD,MAAMW,MAAMC,OAAOZ,OAAOa,QAAQ;YAClC,MAAMC,SAASb,OAAOa,MAAM;YAC5B,IAAI,CAACC,MAAMJ,QAAQA,MAAMG,QAAQ;gBAC/BZ,OAAOW,QAAQ,GAAG;oBAChBG,SAAS,CAAC,2BAA2B,EAAEf,OAAOa,MAAM,CAAC,CAAC;gBACxD;YACF;YAEA,IAAIF,OAAOJ,oBAAoB,GAAG;gBAChCN,OAAOM,gBAAgB,GAAG;oBACxBQ,SAAS,CAAC,+BAA+B,CAAC;gBAC5C;YACF;YAEA,IAAIJ,OAAOH,oBAAoB,GAAG;gBAChCP,OAAOO,gBAAgB,GAAG;oBACxBO,SAAS,CAAC,+BAA+B,CAAC;gBAC5C;YACF;YAEA,2CAA2C;YAC3C,0DAA0D;YAC1D,IAAIN,SAASb,UAAUoB,GAAG,EAAE;gBAC1B,IACE,CAAC,CAACR,oBACFG,OAAOH,qBAAqBR,OAAOiB,SAAS,EAC5C;oBACAhB,OAAOO,gBAAgB,GAAG;wBACxBO,SAAS,CAAC,2BAA2B,EAAEf,OAAOiB,SAAS,CAAC,CAAC;oBAC3D;gBACF;gBAEA,IACE,CAAC,CAACV,oBACFI,OAAOJ,qBAAqBP,OAAOiB,SAAS,EAC5C;oBACAhB,OAAOM,gBAAgB,GAAG;wBACxBQ,SAAS,CAAC,8BAA8B,EAAEf,OAAOiB,SAAS,CAAC,CAAC;oBAC9D;gBACF;YACF;YAEA,IAAIR,SAASb,UAAUsB,IAAI,EAAE;gBAC3B,IACE,CAAC,CAACV,oBACFG,OAAOH,qBAAqBR,OAAOiB,SAAS,EAC5C;oBACAhB,OAAOO,gBAAgB,GAAG;wBACxBO,SAAS,CAAC,8BAA8B,EAAEf,OAAOiB,SAAS,CAAC,CAAC;oBAC9D;gBACF;gBAEA,IACE,CAAC,CAACV,oBACFI,OAAOJ,qBAAqBP,OAAOiB,SAAS,EAC5C;oBACAhB,OAAOM,gBAAgB,GAAG;wBACxBQ,SAAS,CAAC,2BAA2B,EAAEf,OAAOiB,SAAS,CAAC,CAAC;oBAC3D;gBACF;YACF;YAEA,OAAOf,OAAOiB,IAAI,CAAClB,QAAQmB,MAAM,GAAG,IAAInB,SAAS;QACnD;IACF;AACF"}
@@ -0,0 +1,14 @@
1
+ import { OrderEntity } from "@orderly.network/types";
2
+ import { OrderCreator, OrderFormEntity, ValuesDepConfig, VerifyResult } from "./interface";
3
+ export declare abstract class BaseOrderCreator<T> implements OrderCreator<T> {
4
+ abstract create(values: T, config?: ValuesDepConfig): T;
5
+ abstract validate(values: T, config: ValuesDepConfig): Promise<VerifyResult>;
6
+ baseOrder(data: OrderEntity): OrderEntity;
7
+ baseValidate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
8
+ totalToQuantity(order: {
9
+ order_quantity?: number | string;
10
+ total?: string | number;
11
+ order_price?: string | number;
12
+ }, config: ValuesDepConfig): OrderEntity;
13
+ }
14
+ //# sourceMappingURL=baseCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/baseCreator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAa,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB,8BAAsB,gBAAgB,CAAC,CAAC,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,CAAC;IAEvD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAE5E,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IA+BzC,YAAY,CACV,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,YAAY,CAAC;IAoFxB,eAAe,CACb,KAAK,EAAE;QACL,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC/B,EACD,MAAM,EAAE,eAAe,GACtB,WAAW;CAaf"}
@@ -0,0 +1,92 @@
1
+ import { OrderType } from "@orderly.network/types";
2
+ import { Decimal } from "@orderly.network/utils";
3
+ import { checkNotional } from "../../utils/createOrder";
4
+ export class BaseOrderCreator {
5
+ baseOrder(data) {
6
+ const order = {
7
+ symbol: data.symbol,
8
+ order_type: data.order_type === OrderType.LIMIT ? !!data.order_type_ext ? data.order_type_ext : data.order_type : data.order_type,
9
+ side: data.side,
10
+ reduce_only: data.reduce_only,
11
+ order_quantity: data.order_quantity,
12
+ total: data.total
13
+ };
14
+ if (data.visible_quantity === 0) {
15
+ order.visible_quantity = data.visible_quantity;
16
+ }
17
+ return order;
18
+ }
19
+ baseValidate(values, configs) {
20
+ const errors = {};
21
+ const { maxQty, symbol } = configs;
22
+ let { order_quantity, total, order_price, reduce_only } = values;
23
+ const { min_notional } = symbol;
24
+ if (!order_quantity) {
25
+ // calculate order_quantity from total
26
+ if (total && order_price) {
27
+ const { quote_dp } = configs.symbol;
28
+ const totalNumber = new Decimal(total);
29
+ const qty = totalNumber.dividedBy(order_price).toFixed(quote_dp);
30
+ order_quantity = qty;
31
+ }
32
+ }
33
+ if (!order_quantity) {
34
+ errors.order_quantity = {
35
+ type: "required",
36
+ message: "quantity is required"
37
+ };
38
+ } else {
39
+ // need to use MaxQty+base_max, base_min to compare
40
+ const { base_min, quote_dp, base_dp } = configs.symbol;
41
+ const qty = new Decimal(order_quantity);
42
+ if (qty.lt(base_min)) {
43
+ errors.order_quantity = {
44
+ type: "min",
45
+ message: `quantity must be greater than ${new Decimal(base_min).todp(base_dp)}`
46
+ };
47
+ // errors.order_quantity = `quantity must be greater than ${base_min}`;
48
+ } else if (qty.gt(maxQty)) {
49
+ errors.order_quantity = {
50
+ type: "max",
51
+ message: `quantity must be less than ${new Decimal(maxQty).todp(base_dp)}`
52
+ };
53
+ }
54
+ }
55
+ if (!!total) {
56
+ const { quote_max, quote_min, quote_dp } = configs.symbol;
57
+ const totalNumber = new Decimal(total);
58
+ if (totalNumber.lt(quote_min)) {
59
+ errors.total = {
60
+ type: "min",
61
+ message: `Quantity must be at least ${new Decimal(quote_min).todp(quote_dp)}`
62
+ };
63
+ } else if (totalNumber.gt(quote_max)) {
64
+ errors.total = {
65
+ type: "max",
66
+ message: `Quantity should be less or equal than ${new Decimal(quote_max).todp(quote_dp)}`
67
+ };
68
+ }
69
+ }
70
+ const notionalHintStr = checkNotional(order_price, order_quantity, min_notional);
71
+ if (notionalHintStr !== undefined && reduce_only !== true) {
72
+ errors.total = {
73
+ type: "min",
74
+ message: notionalHintStr
75
+ };
76
+ }
77
+ return Promise.resolve(errors);
78
+ }
79
+ totalToQuantity(order, config) {
80
+ // if order_quantity is not set but total is set, calculate order_quantity from total
81
+ if (!order.order_quantity && order.total && order.order_price) {
82
+ const { base_dp } = config.symbol;
83
+ const totalNumber = new Decimal(order.total);
84
+ const qty = totalNumber.div(order.order_price).toDecimalPlaces(base_dp);
85
+ order.order_quantity = qty.toNumber();
86
+ delete order.total;
87
+ }
88
+ return order;
89
+ }
90
+ }
91
+
92
+ //# sourceMappingURL=baseCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/baseCreator.ts"],"sourcesContent":["import { OrderEntity, OrderType } from \"@orderly.network/types\";\nimport {\n OrderCreator,\n OrderFormEntity,\n ValuesDepConfig,\n VerifyResult,\n} from \"./interface\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { checkNotional } from \"../../utils/createOrder\";\n\nexport abstract class BaseOrderCreator<T> implements OrderCreator<T> {\n abstract create(values: T, config?: ValuesDepConfig): T;\n\n abstract validate(values: T, config: ValuesDepConfig): Promise<VerifyResult>;\n\n baseOrder(data: OrderEntity): OrderEntity {\n const order: Pick<\n OrderEntity,\n | \"symbol\"\n | \"order_type\"\n | \"side\"\n | \"reduce_only\"\n | \"order_quantity\"\n | \"total\"\n | \"visible_quantity\"\n > = {\n symbol: data.symbol!,\n order_type:\n data.order_type === OrderType.LIMIT\n ? !!data.order_type_ext\n ? data.order_type_ext\n : data.order_type\n : data.order_type,\n side: data.side,\n reduce_only: data.reduce_only!,\n order_quantity: data.order_quantity!,\n total: data.total,\n };\n\n if (data.visible_quantity === 0) {\n order.visible_quantity = data.visible_quantity;\n }\n\n return order as OrderEntity;\n }\n\n baseValidate(\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ): Promise<VerifyResult> {\n const errors: {\n [P in keyof OrderEntity]?: { type: string; message: string };\n } = {};\n\n const { maxQty, symbol } = configs;\n\n let { order_quantity, total, order_price, reduce_only } = values;\n\n const { min_notional } = symbol;\n\n if (!order_quantity) {\n // calculate order_quantity from total\n if (total && order_price) {\n const { quote_dp } = configs.symbol;\n const totalNumber = new Decimal(total);\n const qty = totalNumber.dividedBy(order_price).toFixed(quote_dp);\n order_quantity = qty;\n }\n }\n\n if (!order_quantity) {\n errors.order_quantity = {\n type: \"required\",\n message: \"quantity is required\",\n };\n } else {\n // need to use MaxQty+base_max, base_min to compare\n const { base_min, quote_dp, base_dp } = configs.symbol;\n const qty = new Decimal(order_quantity);\n if (qty.lt(base_min)) {\n errors.order_quantity = {\n type: \"min\",\n message: `quantity must be greater than ${new Decimal(base_min).todp(\n base_dp\n )}`,\n };\n // errors.order_quantity = `quantity must be greater than ${base_min}`;\n } else if (qty.gt(maxQty)) {\n errors.order_quantity = {\n type: \"max\",\n message: `quantity must be less than ${new Decimal(maxQty).todp(\n base_dp\n )}`,\n };\n }\n }\n\n if (!!total) {\n const { quote_max, quote_min, quote_dp } = configs.symbol;\n const totalNumber = new Decimal(total);\n if (totalNumber.lt(quote_min)) {\n errors.total = {\n type: \"min\",\n message: `Quantity must be at least ${new Decimal(quote_min).todp(\n quote_dp\n )}`,\n };\n } else if (totalNumber.gt(quote_max)) {\n errors.total = {\n type: \"max\",\n message: `Quantity should be less or equal than ${new Decimal(\n quote_max\n ).todp(quote_dp)}`,\n };\n }\n }\n\n const notionalHintStr = checkNotional(\n order_price,\n order_quantity,\n min_notional\n );\n\n if (notionalHintStr !== undefined && reduce_only !== true) {\n errors.total = {\n type: \"min\",\n message: notionalHintStr,\n };\n }\n\n return Promise.resolve(errors);\n }\n\n totalToQuantity(\n order: {\n order_quantity?: number | string;\n total?: string | number;\n order_price?: string | number;\n },\n config: ValuesDepConfig\n ): OrderEntity {\n // if order_quantity is not set but total is set, calculate order_quantity from total\n if (!order.order_quantity && order.total && order.order_price) {\n const { base_dp } = config.symbol;\n const totalNumber = new Decimal(order.total);\n const qty = totalNumber.div(order.order_price).toDecimalPlaces(base_dp);\n order.order_quantity = qty.toNumber();\n\n delete order.total;\n }\n\n return order as OrderEntity;\n }\n}\n"],"names":["OrderType","Decimal","checkNotional","BaseOrderCreator","baseOrder","data","order","symbol","order_type","LIMIT","order_type_ext","side","reduce_only","order_quantity","total","visible_quantity","baseValidate","values","configs","errors","maxQty","order_price","min_notional","quote_dp","totalNumber","qty","dividedBy","toFixed","type","message","base_min","base_dp","lt","todp","gt","quote_max","quote_min","notionalHintStr","undefined","Promise","resolve","totalToQuantity","config","div","toDecimalPlaces","toNumber"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { OrderType } from "@orderly.network/types";
2
+ import { OrderCreator } from "./interface";
3
+ import { AlgoOrderRootType } from "@orderly.network/types";
4
+ export declare class OrderFactory {
5
+ static create(type: OrderType | AlgoOrderRootType): OrderCreator<any>;
6
+ }
7
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D,qBAAa,YAAY;IACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC;CAgCtE"}
@@ -0,0 +1,45 @@
1
+ import { OrderType } from "@orderly.network/types";
2
+ import { MarketOrderCreator } from "./marketOrderCreator";
3
+ import { LimitOrderCreator } from "./limitOrderCreator";
4
+ import { StopLimitOrderCreator } from "./stopLimitOrderCreator";
5
+ import { GeneralOrderCreator } from "./generalCreator";
6
+ import { StopMarketOrderCreator } from "./stopMarketOrderCreator";
7
+ import { PostOnlyOrderCreator } from "./postOnlyCreator";
8
+ import { FOKOrderCreator } from "./fokCreator";
9
+ import { IOCOrderCreator } from "./iocCreator";
10
+ import { AlgoOrderRootType } from "@orderly.network/types";
11
+ import { TPSLOrderCreator } from "./tpslOrderCreator";
12
+ import { TPSLPositionOrderCreator } from "./tpslPositionOrderCreator";
13
+ export class OrderFactory {
14
+ static create(type) {
15
+ switch(type){
16
+ case OrderType.LIMIT:
17
+ return new LimitOrderCreator();
18
+ case OrderType.MARKET:
19
+ return new MarketOrderCreator();
20
+ // case OrderType.ASK:
21
+ // return new AskOrderCreator();
22
+ // case OrderType.BID:
23
+ // return new BidOrderCreator();
24
+ case OrderType.IOC:
25
+ return new IOCOrderCreator();
26
+ case OrderType.FOK:
27
+ return new FOKOrderCreator();
28
+ case OrderType.POST_ONLY:
29
+ return new PostOnlyOrderCreator();
30
+ case OrderType.STOP_LIMIT:
31
+ return new StopLimitOrderCreator();
32
+ case OrderType.STOP_MARKET:
33
+ return new StopMarketOrderCreator();
34
+ // algo order
35
+ case AlgoOrderRootType.TP_SL:
36
+ return new TPSLOrderCreator();
37
+ case AlgoOrderRootType.POSITIONAL_TP_SL:
38
+ return new TPSLPositionOrderCreator();
39
+ default:
40
+ return new GeneralOrderCreator();
41
+ }
42
+ }
43
+ }
44
+
45
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/factory.ts"],"sourcesContent":["import { OrderType } from \"@orderly.network/types\";\nimport { MarketOrderCreator } from \"./marketOrderCreator\";\nimport { LimitOrderCreator } from \"./limitOrderCreator\";\nimport { StopLimitOrderCreator } from \"./stopLimitOrderCreator\";\nimport { OrderCreator } from \"./interface\";\nimport { GeneralOrderCreator } from \"./generalCreator\";\nimport { StopMarketOrderCreator } from \"./stopMarketOrderCreator\";\nimport { PostOnlyOrderCreator } from \"./postOnlyCreator\";\nimport { FOKOrderCreator } from \"./fokCreator\";\nimport { IOCOrderCreator } from \"./iocCreator\";\nimport { AlgoOrderRootType } from \"@orderly.network/types\";\n\nimport { TPSLOrderCreator } from \"./tpslOrderCreator\";\nimport { TPSLPositionOrderCreator } from \"./tpslPositionOrderCreator\";\n\nexport class OrderFactory {\n static create(type: OrderType | AlgoOrderRootType): OrderCreator<any> {\n switch (type) {\n case OrderType.LIMIT:\n return new LimitOrderCreator();\n case OrderType.MARKET:\n return new MarketOrderCreator();\n // case OrderType.ASK:\n // return new AskOrderCreator();\n // case OrderType.BID:\n // return new BidOrderCreator();\n case OrderType.IOC:\n return new IOCOrderCreator();\n case OrderType.FOK:\n return new FOKOrderCreator();\n case OrderType.POST_ONLY:\n return new PostOnlyOrderCreator();\n\n case OrderType.STOP_LIMIT:\n return new StopLimitOrderCreator();\n case OrderType.STOP_MARKET:\n return new StopMarketOrderCreator();\n\n // algo order\n case AlgoOrderRootType.TP_SL:\n return new TPSLOrderCreator();\n case AlgoOrderRootType.POSITIONAL_TP_SL:\n return new TPSLPositionOrderCreator();\n\n default:\n return new GeneralOrderCreator();\n }\n }\n}\n"],"names":["OrderType","MarketOrderCreator","LimitOrderCreator","StopLimitOrderCreator","GeneralOrderCreator","StopMarketOrderCreator","PostOnlyOrderCreator","FOKOrderCreator","IOCOrderCreator","AlgoOrderRootType","TPSLOrderCreator","TPSLPositionOrderCreator","OrderFactory","create","type","LIMIT","MARKET","IOC","FOK","POST_ONLY","STOP_LIMIT","STOP_MARKET","TP_SL","POSITIONAL_TP_SL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,SAAS,QAAQ,yBAAyB;AACnD,SAASC,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,qBAAqB,QAAQ,0BAA0B;AAEhE,SAASC,mBAAmB,QAAQ,mBAAmB;AACvD,SAASC,sBAAsB,QAAQ,2BAA2B;AAClE,SAASC,oBAAoB,QAAQ,oBAAoB;AACzD,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3D,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,wBAAwB,QAAQ,6BAA6B;AAEtE,OAAO,MAAMC;IACX,OAAOC,OAAOC,IAAmC,EAAqB;QACpE,OAAQA;YACN,KAAKd,UAAUe,KAAK;gBAClB,OAAO,IAAIb;YACb,KAAKF,UAAUgB,MAAM;gBACnB,OAAO,IAAIf;YACb,wBAAwB;YACxB,oCAAoC;YACpC,wBAAwB;YACxB,oCAAoC;YACpC,KAAKD,UAAUiB,GAAG;gBAChB,OAAO,IAAIT;YACb,KAAKR,UAAUkB,GAAG;gBAChB,OAAO,IAAIX;YACb,KAAKP,UAAUmB,SAAS;gBACtB,OAAO,IAAIb;YAEb,KAAKN,UAAUoB,UAAU;gBACvB,OAAO,IAAIjB;YACb,KAAKH,UAAUqB,WAAW;gBACxB,OAAO,IAAIhB;YAEb,aAAa;YACb,KAAKI,kBAAkBa,KAAK;gBAC1B,OAAO,IAAIZ;YACb,KAAKD,kBAAkBc,gBAAgB;gBACrC,OAAO,IAAIZ;YAEb;gBACE,OAAO,IAAIP;QACf;IACF;AACF"}
@@ -0,0 +1,4 @@
1
+ import { LimitOrderCreator } from "./limitOrderCreator";
2
+ export declare class FOKOrderCreator extends LimitOrderCreator {
3
+ }
4
+ //# sourceMappingURL=fokCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fokCreator.d.ts","sourceRoot":"","sources":["../../../src/services/orderCreator/fokCreator.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 FOKOrderCreator extends LimitOrderCreator {
3
+ }
4
+
5
+ //# sourceMappingURL=fokCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderCreator/fokCreator.ts"],"sourcesContent":["import { LimitOrderCreator } from \"./limitOrderCreator\";\n\nexport class FOKOrderCreator extends LimitOrderCreator {}\n"],"names":["LimitOrderCreator","FOKOrderCreator"],"rangeMappings":";;","mappings":"AAAA,SAASA,iBAAiB,QAAQ,sBAAsB;AAExD,OAAO,MAAMC,wBAAwBD;AAAmB"}