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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/esm/configProvider.d.ts.map +1 -1
  2. package/esm/configProvider.js +3 -2
  3. package/esm/configProvider.js.map +1 -1
  4. package/esm/dataProvider.d.ts.map +1 -1
  5. package/esm/dataProvider.js +0 -2
  6. package/esm/dataProvider.js.map +1 -1
  7. package/esm/dev/proxyConfigStore.d.ts +15 -0
  8. package/esm/dev/proxyConfigStore.d.ts.map +1 -0
  9. package/esm/dev/proxyConfigStore.js +41 -0
  10. package/esm/dev/proxyConfigStore.js.map +1 -0
  11. package/esm/index.d.ts +4 -3
  12. package/esm/index.d.ts.map +1 -1
  13. package/esm/index.js +4 -3
  14. package/esm/index.js.map +1 -1
  15. package/esm/orderly/orderlyHooks.d.ts +3 -2
  16. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  17. package/esm/orderly/orderlyHooks.js +3 -2
  18. package/esm/orderly/orderlyHooks.js.map +1 -1
  19. package/esm/orderly/useCollateral.js +2 -2
  20. package/esm/orderly/useCollateral.js.map +1 -1
  21. package/esm/orderly/useMarginRatio.js +1 -1
  22. package/esm/orderly/useMarginRatio.js.map +1 -1
  23. package/esm/orderly/useMaxQty.js +2 -2
  24. package/esm/orderly/useMaxQty.js.map +1 -1
  25. package/esm/orderly/useOrderEntry.d.ts.map +1 -1
  26. package/esm/orderly/useOrderEntry.js +15 -12
  27. package/esm/orderly/useOrderEntry.js.map +1 -1
  28. package/esm/orderly/useOrderEntryNext/index.d.ts +1 -0
  29. package/esm/orderly/useOrderEntryNext/index.d.ts.map +1 -0
  30. package/esm/orderly/useOrderEntryNext/index.js +2 -0
  31. package/esm/orderly/useOrderEntryNext/index.js.map +1 -0
  32. package/esm/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +20 -12
  33. package/esm/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
  34. package/esm/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +102 -26
  35. package/esm/orderly/useOrderStream/useOrderStream.js.map +1 -0
  36. package/esm/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
  37. package/esm/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
  38. package/esm/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
  39. package/esm/orderly/usePositionStream/usePositionStream.js.map +1 -0
  40. package/esm/orderly/usePositionStream/utils.d.ts +8 -0
  41. package/esm/orderly/usePositionStream/utils.d.ts.map +1 -0
  42. package/esm/orderly/usePositionStream/utils.js +34 -0
  43. package/esm/orderly/usePositionStream/utils.js.map +1 -0
  44. package/esm/orderly/usePrivateDataObserver.d.ts.map +1 -1
  45. package/esm/orderly/usePrivateDataObserver.js +30 -43
  46. package/esm/orderly/usePrivateDataObserver.js.map +1 -1
  47. package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
  48. package/esm/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
  49. package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
  50. package/esm/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
  51. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts +30 -0
  52. package/esm/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
  53. package/esm/orderly/useTakeProfitAndStopLoss/index.js +23 -0
  54. package/esm/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
  55. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +57 -0
  56. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
  57. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js +210 -0
  58. package/esm/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
  59. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
  60. package/esm/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
  61. package/esm/orderly/useTakeProfitAndStopLoss/utils.js +239 -0
  62. package/esm/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
  63. package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
  64. package/esm/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
  65. package/esm/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
  66. package/esm/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
  67. package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
  68. package/esm/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
  69. package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
  70. package/esm/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
  71. package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
  72. package/esm/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
  73. package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
  74. package/esm/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
  75. package/esm/services/orderCreator/baseAlgoCreator.d.ts +22 -0
  76. package/esm/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
  77. package/esm/services/orderCreator/baseAlgoCreator.js +57 -0
  78. package/esm/services/orderCreator/baseAlgoCreator.js.map +1 -0
  79. package/esm/services/orderCreator/baseCreator.d.ts +14 -0
  80. package/esm/services/orderCreator/baseCreator.d.ts.map +1 -0
  81. package/esm/services/orderCreator/baseCreator.js +92 -0
  82. package/esm/services/orderCreator/baseCreator.js.map +1 -0
  83. package/esm/services/orderCreator/factory.d.ts +7 -0
  84. package/esm/services/orderCreator/factory.d.ts.map +1 -0
  85. package/esm/services/orderCreator/factory.js +45 -0
  86. package/esm/services/orderCreator/factory.js.map +1 -0
  87. package/esm/services/orderCreator/fokCreator.d.ts +4 -0
  88. package/esm/services/orderCreator/fokCreator.d.ts.map +1 -0
  89. package/esm/services/orderCreator/fokCreator.js +5 -0
  90. package/esm/services/orderCreator/fokCreator.js.map +1 -0
  91. package/esm/services/orderCreator/generalCreator.d.ts +8 -0
  92. package/esm/services/orderCreator/generalCreator.d.ts.map +1 -0
  93. package/esm/services/orderCreator/generalCreator.js +15 -0
  94. package/esm/services/orderCreator/generalCreator.js.map +1 -0
  95. package/esm/services/orderCreator/interface.d.ts +23 -0
  96. package/esm/services/orderCreator/interface.d.ts.map +1 -0
  97. package/esm/services/orderCreator/interface.js +3 -0
  98. package/esm/services/orderCreator/interface.js.map +1 -0
  99. package/esm/services/orderCreator/iocCreator.d.ts +4 -0
  100. package/esm/services/orderCreator/iocCreator.d.ts.map +1 -0
  101. package/esm/services/orderCreator/iocCreator.js +5 -0
  102. package/esm/services/orderCreator/iocCreator.js.map +1 -0
  103. package/esm/services/orderCreator/limitOrderCreator.d.ts +8 -0
  104. package/esm/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
  105. package/esm/services/orderCreator/limitOrderCreator.js +69 -0
  106. package/esm/services/orderCreator/limitOrderCreator.js.map +1 -0
  107. package/esm/services/orderCreator/marketOrderCreator.d.ts +24 -0
  108. package/esm/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
  109. package/esm/services/orderCreator/marketOrderCreator.js +18 -0
  110. package/esm/services/orderCreator/marketOrderCreator.js.map +1 -0
  111. package/esm/services/orderCreator/postOnlyCreator.d.ts +4 -0
  112. package/esm/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
  113. package/esm/services/orderCreator/postOnlyCreator.js +5 -0
  114. package/esm/services/orderCreator/postOnlyCreator.js.map +1 -0
  115. package/esm/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
  116. package/esm/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
  117. package/esm/services/orderCreator/stopLimitOrderCreator.js +84 -0
  118. package/esm/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
  119. package/esm/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
  120. package/esm/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
  121. package/esm/services/orderCreator/stopMarketOrderCreator.js +46 -0
  122. package/esm/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
  123. package/esm/services/orderCreator/tpslOrderCreator.d.ts +32 -0
  124. package/esm/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
  125. package/esm/services/orderCreator/tpslOrderCreator.js +88 -0
  126. package/esm/services/orderCreator/tpslOrderCreator.js.map +1 -0
  127. package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
  128. package/esm/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
  129. package/esm/services/orderCreator/tpslPositionOrderCreator.js +74 -0
  130. package/esm/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
  131. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
  132. package/esm/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
  133. package/esm/services/orderMerge/algoOrderMergeHandler.js +38 -0
  134. package/esm/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
  135. package/esm/services/orderMerge/baseMergeHandler.d.ts +22 -0
  136. package/esm/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
  137. package/esm/services/orderMerge/baseMergeHandler.js +160 -0
  138. package/esm/services/orderMerge/baseMergeHandler.js.map +1 -0
  139. package/esm/services/orderMerge/interface.d.ts +8 -0
  140. package/esm/services/orderMerge/interface.d.ts.map +1 -0
  141. package/esm/services/orderMerge/interface.js +3 -0
  142. package/esm/services/orderMerge/interface.js.map +1 -0
  143. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
  144. package/esm/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
  145. package/esm/services/orderMerge/regularOrderMergeHandler.js +15 -0
  146. package/esm/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
  147. package/esm/usePoster.d.ts +3 -0
  148. package/esm/usePoster.d.ts.map +1 -1
  149. package/esm/usePoster.js +3 -1
  150. package/esm/usePoster.js.map +1 -1
  151. package/esm/utils/createOrder.d.ts +0 -55
  152. package/esm/utils/createOrder.d.ts.map +1 -1
  153. package/esm/utils/createOrder.js +0 -334
  154. package/esm/utils/createOrder.js.map +1 -1
  155. package/esm/utils/fokCreator.d.ts +1 -0
  156. package/esm/utils/fokCreator.d.ts.map +1 -0
  157. package/esm/utils/fokCreator.js +2 -0
  158. package/esm/utils/fokCreator.js.map +1 -0
  159. package/esm/utils/index.d.ts +5 -0
  160. package/esm/utils/index.d.ts.map +1 -0
  161. package/esm/utils/index.js +6 -0
  162. package/esm/utils/index.js.map +1 -0
  163. package/esm/utils/order.d.ts +2 -0
  164. package/esm/utils/order.d.ts.map +1 -0
  165. package/esm/utils/order.js +3 -0
  166. package/esm/utils/order.js.map +1 -0
  167. package/esm/utils/swr.d.ts +3 -1
  168. package/esm/utils/swr.d.ts.map +1 -1
  169. package/esm/utils/swr.js +123 -89
  170. package/esm/utils/swr.js.map +1 -1
  171. package/esm/utils/ws.d.ts +2 -0
  172. package/esm/utils/ws.d.ts.map +1 -0
  173. package/esm/utils/ws.js +9 -0
  174. package/esm/utils/ws.js.map +1 -0
  175. package/esm/version.d.ts +1 -1
  176. package/esm/version.d.ts.map +1 -1
  177. package/esm/version.js +2 -2
  178. package/esm/version.js.map +1 -1
  179. package/lib/configProvider.d.ts.map +1 -1
  180. package/lib/configProvider.js +3 -2
  181. package/lib/configProvider.js.map +1 -1
  182. package/lib/dataProvider.d.ts.map +1 -1
  183. package/lib/dataProvider.js +0 -2
  184. package/lib/dataProvider.js.map +1 -1
  185. package/lib/dev/proxyConfigStore.d.ts +15 -0
  186. package/lib/dev/proxyConfigStore.d.ts.map +1 -0
  187. package/lib/dev/proxyConfigStore.js +51 -0
  188. package/lib/dev/proxyConfigStore.js.map +1 -0
  189. package/lib/index.d.ts +4 -3
  190. package/lib/index.d.ts.map +1 -1
  191. package/lib/index.js +10 -3
  192. package/lib/index.js.map +1 -1
  193. package/lib/orderly/orderlyHooks.d.ts +3 -2
  194. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  195. package/lib/orderly/orderlyHooks.js +6 -2
  196. package/lib/orderly/orderlyHooks.js.map +1 -1
  197. package/lib/orderly/useCollateral.js +2 -2
  198. package/lib/orderly/useCollateral.js.map +1 -1
  199. package/lib/orderly/useMarginRatio.js +1 -1
  200. package/lib/orderly/useMarginRatio.js.map +1 -1
  201. package/lib/orderly/useMaxQty.js +2 -2
  202. package/lib/orderly/useMaxQty.js.map +1 -1
  203. package/lib/orderly/useOrderEntry.d.ts.map +1 -1
  204. package/lib/orderly/useOrderEntry.js +14 -12
  205. package/lib/orderly/useOrderEntry.js.map +1 -1
  206. package/lib/orderly/useOrderEntryNext/index.d.ts +1 -0
  207. package/lib/orderly/useOrderEntryNext/index.d.ts.map +1 -0
  208. package/lib/orderly/useOrderEntryNext/index.js +3 -0
  209. package/lib/orderly/useOrderEntryNext/index.js.map +1 -0
  210. package/lib/orderly/{useOrderStream.d.ts → useOrderStream/useOrderStream.d.ts} +20 -12
  211. package/lib/orderly/useOrderStream/useOrderStream.d.ts.map +1 -0
  212. package/lib/orderly/{useOrderStream.js → useOrderStream/useOrderStream.js} +100 -25
  213. package/lib/orderly/useOrderStream/useOrderStream.js.map +1 -0
  214. package/lib/orderly/{usePositionStream.d.ts → usePositionStream/usePositionStream.d.ts} +1 -1
  215. package/lib/orderly/usePositionStream/usePositionStream.d.ts.map +1 -0
  216. package/lib/orderly/{usePositionStream.js → usePositionStream/usePositionStream.js} +30 -22
  217. package/lib/orderly/usePositionStream/usePositionStream.js.map +1 -0
  218. package/lib/orderly/usePositionStream/utils.d.ts +8 -0
  219. package/lib/orderly/usePositionStream/utils.d.ts.map +1 -0
  220. package/lib/orderly/usePositionStream/utils.js +55 -0
  221. package/lib/orderly/usePositionStream/utils.js.map +1 -0
  222. package/lib/orderly/usePrivateDataObserver.d.ts.map +1 -1
  223. package/lib/orderly/usePrivateDataObserver.js +28 -41
  224. package/lib/orderly/usePrivateDataObserver.js.map +1 -1
  225. package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts +1 -0
  226. package/lib/orderly/useTakeProfitAndStopLoss/__test__/useTakeProfitAndStopLoss.test.d.ts.map +1 -0
  227. package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts +2 -0
  228. package/lib/orderly/useTakeProfitAndStopLoss/__test__/utils.test.d.ts.map +1 -0
  229. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts +30 -0
  230. package/lib/orderly/useTakeProfitAndStopLoss/index.d.ts.map +1 -0
  231. package/lib/orderly/useTakeProfitAndStopLoss/index.js +33 -0
  232. package/lib/orderly/useTakeProfitAndStopLoss/index.js.map +1 -0
  233. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts +57 -0
  234. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.d.ts.map +1 -0
  235. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js +217 -0
  236. package/lib/orderly/useTakeProfitAndStopLoss/useTPSL.js.map +1 -0
  237. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts +70 -0
  238. package/lib/orderly/useTakeProfitAndStopLoss/utils.d.ts.map +1 -0
  239. package/lib/orderly/useTakeProfitAndStopLoss/utils.js +254 -0
  240. package/lib/orderly/useTakeProfitAndStopLoss/utils.js.map +1 -0
  241. package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts +2 -0
  242. package/lib/services/orderCreator/__test__/limitOrderCreator.test.d.ts.map +1 -0
  243. package/lib/services/orderCreator/__test__/orderCreator.test.d.ts +2 -0
  244. package/lib/services/orderCreator/__test__/orderCreator.test.d.ts.map +1 -0
  245. package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts +2 -0
  246. package/lib/services/orderCreator/__test__/stopLimitOrderCreator.test.d.ts.map +1 -0
  247. package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts +2 -0
  248. package/lib/services/orderCreator/__test__/stopMarketOrderCreator.test.d.ts.map +1 -0
  249. package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts +2 -0
  250. package/lib/services/orderCreator/__test__/tpslOrderCreator.test.d.ts.map +1 -0
  251. package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts +2 -0
  252. package/lib/services/orderCreator/__test__/tpslPositionOrderCreator.test.d.ts.map +1 -0
  253. package/lib/services/orderCreator/baseAlgoCreator.d.ts +22 -0
  254. package/lib/services/orderCreator/baseAlgoCreator.d.ts.map +1 -0
  255. package/lib/services/orderCreator/baseAlgoCreator.js +67 -0
  256. package/lib/services/orderCreator/baseAlgoCreator.js.map +1 -0
  257. package/lib/services/orderCreator/baseCreator.d.ts +14 -0
  258. package/lib/services/orderCreator/baseCreator.d.ts.map +1 -0
  259. package/lib/services/orderCreator/baseCreator.js +102 -0
  260. package/lib/services/orderCreator/baseCreator.js.map +1 -0
  261. package/lib/services/orderCreator/factory.d.ts +7 -0
  262. package/lib/services/orderCreator/factory.d.ts.map +1 -0
  263. package/lib/services/orderCreator/factory.js +54 -0
  264. package/lib/services/orderCreator/factory.js.map +1 -0
  265. package/lib/services/orderCreator/fokCreator.d.ts +4 -0
  266. package/lib/services/orderCreator/fokCreator.d.ts.map +1 -0
  267. package/lib/services/orderCreator/fokCreator.js +15 -0
  268. package/lib/services/orderCreator/fokCreator.js.map +1 -0
  269. package/lib/services/orderCreator/generalCreator.d.ts +8 -0
  270. package/lib/services/orderCreator/generalCreator.d.ts.map +1 -0
  271. package/lib/services/orderCreator/generalCreator.js +25 -0
  272. package/lib/services/orderCreator/generalCreator.js.map +1 -0
  273. package/lib/services/orderCreator/interface.d.ts +23 -0
  274. package/lib/services/orderCreator/interface.d.ts.map +1 -0
  275. package/lib/services/orderCreator/interface.js +6 -0
  276. package/lib/services/orderCreator/interface.js.map +1 -0
  277. package/lib/services/orderCreator/iocCreator.d.ts +4 -0
  278. package/lib/services/orderCreator/iocCreator.d.ts.map +1 -0
  279. package/lib/services/orderCreator/iocCreator.js +15 -0
  280. package/lib/services/orderCreator/iocCreator.js.map +1 -0
  281. package/lib/services/orderCreator/limitOrderCreator.d.ts +8 -0
  282. package/lib/services/orderCreator/limitOrderCreator.d.ts.map +1 -0
  283. package/lib/services/orderCreator/limitOrderCreator.js +79 -0
  284. package/lib/services/orderCreator/limitOrderCreator.js.map +1 -0
  285. package/lib/services/orderCreator/marketOrderCreator.d.ts +24 -0
  286. package/lib/services/orderCreator/marketOrderCreator.d.ts.map +1 -0
  287. package/lib/services/orderCreator/marketOrderCreator.js +28 -0
  288. package/lib/services/orderCreator/marketOrderCreator.js.map +1 -0
  289. package/lib/services/orderCreator/postOnlyCreator.d.ts +4 -0
  290. package/lib/services/orderCreator/postOnlyCreator.d.ts.map +1 -0
  291. package/lib/services/orderCreator/postOnlyCreator.js +15 -0
  292. package/lib/services/orderCreator/postOnlyCreator.js.map +1 -0
  293. package/lib/services/orderCreator/stopLimitOrderCreator.d.ts +11 -0
  294. package/lib/services/orderCreator/stopLimitOrderCreator.d.ts.map +1 -0
  295. package/lib/services/orderCreator/stopLimitOrderCreator.js +93 -0
  296. package/lib/services/orderCreator/stopLimitOrderCreator.js.map +1 -0
  297. package/lib/services/orderCreator/stopMarketOrderCreator.d.ts +30 -0
  298. package/lib/services/orderCreator/stopMarketOrderCreator.d.ts.map +1 -0
  299. package/lib/services/orderCreator/stopMarketOrderCreator.js +56 -0
  300. package/lib/services/orderCreator/stopMarketOrderCreator.js.map +1 -0
  301. package/lib/services/orderCreator/tpslOrderCreator.d.ts +32 -0
  302. package/lib/services/orderCreator/tpslOrderCreator.d.ts.map +1 -0
  303. package/lib/services/orderCreator/tpslOrderCreator.js +94 -0
  304. package/lib/services/orderCreator/tpslOrderCreator.js.map +1 -0
  305. package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts +33 -0
  306. package/lib/services/orderCreator/tpslPositionOrderCreator.d.ts.map +1 -0
  307. package/lib/services/orderCreator/tpslPositionOrderCreator.js +83 -0
  308. package/lib/services/orderCreator/tpslPositionOrderCreator.js.map +1 -0
  309. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts +9 -0
  310. package/lib/services/orderMerge/algoOrderMergeHandler.d.ts.map +1 -0
  311. package/lib/services/orderMerge/algoOrderMergeHandler.js +48 -0
  312. package/lib/services/orderMerge/algoOrderMergeHandler.js.map +1 -0
  313. package/lib/services/orderMerge/baseMergeHandler.d.ts +22 -0
  314. package/lib/services/orderMerge/baseMergeHandler.d.ts.map +1 -0
  315. package/lib/services/orderMerge/baseMergeHandler.js +170 -0
  316. package/lib/services/orderMerge/baseMergeHandler.js.map +1 -0
  317. package/lib/services/orderMerge/interface.d.ts +8 -0
  318. package/lib/services/orderMerge/interface.d.ts.map +1 -0
  319. package/lib/services/orderMerge/interface.js +6 -0
  320. package/lib/services/orderMerge/interface.js.map +1 -0
  321. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts +8 -0
  322. package/lib/services/orderMerge/regularOrderMergeHandler.d.ts.map +1 -0
  323. package/lib/services/orderMerge/regularOrderMergeHandler.js +25 -0
  324. package/lib/services/orderMerge/regularOrderMergeHandler.js.map +1 -0
  325. package/lib/usePoster.d.ts +3 -0
  326. package/lib/usePoster.d.ts.map +1 -1
  327. package/lib/usePoster.js +3 -1
  328. package/lib/usePoster.js.map +1 -1
  329. package/lib/utils/createOrder.d.ts +0 -55
  330. package/lib/utils/createOrder.d.ts.map +1 -1
  331. package/lib/utils/createOrder.js +3 -375
  332. package/lib/utils/createOrder.js.map +1 -1
  333. package/lib/utils/fokCreator.d.ts +1 -0
  334. package/lib/utils/fokCreator.d.ts.map +1 -0
  335. package/lib/utils/fokCreator.js +3 -0
  336. package/lib/utils/fokCreator.js.map +1 -0
  337. package/lib/utils/index.d.ts +5 -0
  338. package/lib/utils/index.d.ts.map +1 -0
  339. package/lib/utils/index.js +36 -0
  340. package/lib/utils/index.js.map +1 -0
  341. package/lib/utils/order.d.ts +2 -0
  342. package/lib/utils/order.d.ts.map +1 -0
  343. package/lib/utils/order.js +6 -0
  344. package/lib/utils/order.js.map +1 -0
  345. package/lib/utils/swr.d.ts +3 -1
  346. package/lib/utils/swr.d.ts.map +1 -1
  347. package/lib/utils/swr.js +128 -89
  348. package/lib/utils/swr.js.map +1 -1
  349. package/lib/utils/ws.d.ts +2 -0
  350. package/lib/utils/ws.d.ts.map +1 -0
  351. package/lib/utils/ws.js +19 -0
  352. package/lib/utils/ws.js.map +1 -0
  353. package/lib/version.d.ts +1 -1
  354. package/lib/version.d.ts.map +1 -1
  355. package/lib/version.js +2 -2
  356. package/lib/version.js.map +1 -1
  357. package/package.json +9 -7
  358. package/esm/orderly/useOrderStream.d.ts.map +0 -1
  359. package/esm/orderly/useOrderStream.js.map +0 -1
  360. package/esm/orderly/usePositionStream.d.ts.map +0 -1
  361. package/esm/orderly/usePositionStream.js.map +0 -1
  362. package/lib/orderly/useOrderStream.d.ts.map +0 -1
  363. package/lib/orderly/useOrderStream.js.map +0 -1
  364. package/lib/orderly/usePositionStream.d.ts.map +0 -1
  365. package/lib/orderly/usePositionStream.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ import { API, WSMessage } from "@orderly.network/types";
2
+ import { BaseMergeHandler } from "./baseMergeHandler";
3
+ export declare class RegularOrderMergeHandler extends BaseMergeHandler<WSMessage.Order, API.Order> {
4
+ get orderId(): number;
5
+ get status(): string;
6
+ pre(message: WSMessage.Order, prevData?: API.OrderResponse[] | undefined): API.Order;
7
+ }
8
+ //# sourceMappingURL=regularOrderMergeHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regularOrderMergeHandler.d.ts","sourceRoot":"","sources":["../../../src/services/orderMerge/regularOrderMergeHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,wBAAyB,SAAQ,gBAAgB,CAC5D,SAAS,CAAC,KAAK,EACf,GAAG,CAAC,KAAK,CACV;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,GAAG,CACD,OAAO,EAAE,SAAS,CAAC,KAAK,EACxB,QAAQ,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,SAAS,GACzC,GAAG,CAAC,KAAK;CAGb"}
@@ -0,0 +1,15 @@
1
+ import { BaseMergeHandler } from "./baseMergeHandler";
2
+ import { object2underscore } from "../../utils/ws";
3
+ export class RegularOrderMergeHandler extends BaseMergeHandler {
4
+ get orderId() {
5
+ return this.data.order_id;
6
+ }
7
+ get status() {
8
+ return this.data.status;
9
+ }
10
+ pre(message, prevData) {
11
+ return object2underscore(message);
12
+ }
13
+ }
14
+
15
+ //# sourceMappingURL=regularOrderMergeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/orderMerge/regularOrderMergeHandler.ts"],"sourcesContent":["import { API, WSMessage } from \"@orderly.network/types\";\nimport { BaseMergeHandler } from \"./baseMergeHandler\";\nimport { object2underscore } from \"../../utils/ws\";\n\nexport class RegularOrderMergeHandler extends BaseMergeHandler<\n WSMessage.Order,\n API.Order\n> {\n get orderId(): number {\n return this.data.order_id;\n }\n get status(): string {\n return this.data.status;\n }\n pre(\n message: WSMessage.Order,\n prevData?: API.OrderResponse[] | undefined\n ): API.Order {\n return object2underscore(message) as unknown as API.Order;\n }\n}\n"],"names":["BaseMergeHandler","object2underscore","RegularOrderMergeHandler","orderId","data","order_id","status","pre","message","prevData"],"rangeMappings":";;;;;;;;;;;;","mappings":"AACA,SAASA,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,iBAAiB,QAAQ,iBAAiB;AAEnD,OAAO,MAAMC,iCAAiCF;IAI5C,IAAIG,UAAkB;QACpB,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ;IAC3B;IACA,IAAIC,SAAiB;QACnB,OAAO,IAAI,CAACF,IAAI,CAACE,MAAM;IACzB;IACAC,IACEC,OAAwB,EACxBC,QAA0C,EAC/B;QACX,OAAOR,kBAAkBO;IAC3B;AACF"}
@@ -18,6 +18,9 @@ export declare const usePoster: (data: DrawOptions, options?: {
18
18
  ratio?: number;
19
19
  }) => {
20
20
  readonly error: Error | null;
21
+ /**
22
+ * The ref to the canvas element, you should pass this ref to the canvas element
23
+ */
21
24
  readonly ref: (ref: HTMLCanvasElement | null) => void;
22
25
  /**
23
26
  * Converts the poster to a data URL
@@ -1 +1 @@
1
- {"version":3,"file":"usePoster.d.ts","sourceRoot":"","sources":["../src/usePoster.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAIhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,SAId,WAAW,YACP;IACR;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;wBA6DiB,iBAAiB,GAAG,IAAI;IAkDxC;;OAEG;gCA3EqB,MAAM,mBAAmB,MAAM;IA6EvD;;OAEG;6BApEK,MAAM,mBAAmB,MAAM,KAAG,QAAQ,IAAI,GAAG,IAAI,CAAC;IAsE9D;;OAEG;kCAjDQ,MAAM,SAAQ,MAAM,mBAAiC,MAAM;IAmDtE;;OAEG;;;CAIN,CAAC"}
1
+ {"version":3,"file":"usePoster.d.ts","sourceRoot":"","sources":["../src/usePoster.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAIhE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,SAId,WAAW,YACP;IACR;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;IA8GC;;OAEG;wBAnDa,iBAAiB,GAAG,IAAI;IAqDxC;;OAEG;gCA9EqB,MAAM,mBAAmB,MAAM;IAgFvD;;OAEG;6BAvEK,MAAM,mBAAmB,MAAM,KAAG,QAAQ,IAAI,GAAG,IAAI,CAAC;IAyE9D;;OAEG;kCApDQ,MAAM,SAAQ,MAAM,mBAAiC,MAAM;IAsDtE;;OAEG;;;CAIN,CAAC"}
package/esm/usePoster.js CHANGED
@@ -114,7 +114,9 @@ import { SDKError } from "@orderly.network/types";
114
114
  ]);
115
115
  return {
116
116
  error,
117
- ref,
117
+ /**
118
+ * The ref to the canvas element, you should pass this ref to the canvas element
119
+ */ ref,
118
120
  /**
119
121
  * Converts the poster to a data URL
120
122
  */ toDataURL,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/usePoster.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { mergeDeepRight } from \"ramda\";\nimport { PosterPainter } from \"./services/painter/painter\";\nimport { type DrawOptions } from \"./services/painter/basePaint\";\nimport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nimport { SDKError } from \"@orderly.network/types\";\n\n/**\n * Generates a poster image based on position information. You can set the size, background color, font color, font size, and content position of the poster.\n * @example\n * ```tsx\n * const { ref, toDataURL, toBlob, download, copy } = usePoster({\n * backgroundColor: \"#0b8c70\",\n * backgroundImg: \"/images/poster_bg.png\",\n * color: \"rgba(255, 255, 255, 0.98)\",\n * profitColor: \"rgb(0,181,159)\",\n * ...\n * });\n */\nexport const usePoster = (\n /**\n * The options to draw the poster\n */\n data: DrawOptions,\n options?: {\n /**\n * The ratio of the poster\n */\n ratio?: number;\n }\n) => {\n const [error, setError] = useState<Error | null>(null);\n const [canCopy, setCanCopy] = useState<boolean>(\n () => typeof navigator.clipboard !== \"undefined\"\n );\n\n const painterRef = useRef<PosterPainter | null>(null);\n\n const [target, setTarget] = useState<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n // Create the painter instance\n if (target && !painterRef.current) {\n painterRef.current = new PosterPainter(target, {\n ratio: 1,\n ...options,\n });\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [target]);\n\n useEffect(() => {\n if (painterRef.current) {\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [data]);\n\n const toDataURL = (type?: string, encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n return target.toDataURL(type, encoderOptions);\n };\n\n /**\n * Converts the poster to a blob\n */\n const toBlob = useCallback(\n (type?: string, encoderOptions?: number): Promise<Blob | null> => {\n return new Promise<Blob | null>((resolve) => {\n if (!target) {\n resolve(null);\n return;\n }\n target.toBlob(resolve, type, encoderOptions);\n });\n },\n [target]\n );\n\n const ref = (ref: HTMLCanvasElement | null) => {\n if (!ref) return;\n if (ref.tagName.toUpperCase() !== \"CANVAS\") {\n // throw new Error(\"The ref must be a canvas element\");\n setError(new SDKError(\"The ref must be a canvas element\"));\n return;\n }\n setTarget(ref);\n };\n\n const download = useCallback(\n (filename: string, type: string = \"image/png\", encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n const img = new Image();\n img.src = target.toDataURL(type, encoderOptions);\n const link = document.createElement(\"a\");\n link.href = img.src;\n link.download = filename;\n link.click();\n },\n [target]\n );\n\n const copy = useCallback(() => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n // copy image to clipboard\n return new Promise<void>((resolve, reject) => {\n if (!navigator.clipboard) {\n reject(new SDKError(\"Clipboard API is not supported\"));\n return;\n }\n target.toBlob((blob) => {\n if (!blob) {\n reject(new SDKError(\"Failed to create blob\"));\n return;\n }\n return navigator.clipboard\n .write([new ClipboardItem({ [blob.type]: blob })])\n .then(resolve, reject);\n });\n });\n }, [target]);\n\n return {\n error,\n ref,\n /**\n * Converts the poster to a data URL\n */\n toDataURL,\n /**\n * Converts the poster to a blob\n */\n toBlob,\n /**\n * Downloads the poster as an image\n */\n download,\n /**\n * Browser if supports copy image to clipboard\n */\n canCopy,\n copy,\n } as const;\n};\n"],"names":["useCallback","useEffect","useRef","useState","mergeDeepRight","PosterPainter","DefaultLayoutConfig","SDKError","usePoster","data","options","error","setError","canCopy","setCanCopy","navigator","clipboard","painterRef","target","setTarget","current","ratio","draw","layout","fontFamily","toDataURL","type","encoderOptions","toBlob","Promise","resolve","ref","tagName","toUpperCase","download","filename","img","Image","src","link","document","createElement","href","click","copy","reject","blob","write","ClipboardItem","then"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/usePoster.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { mergeDeepRight } from \"ramda\";\nimport { PosterPainter } from \"./services/painter/painter\";\nimport { type DrawOptions } from \"./services/painter/basePaint\";\nimport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nimport { SDKError } from \"@orderly.network/types\";\n\n/**\n * Generates a poster image based on position information. You can set the size, background color, font color, font size, and content position of the poster.\n * @example\n * ```tsx\n * const { ref, toDataURL, toBlob, download, copy } = usePoster({\n * backgroundColor: \"#0b8c70\",\n * backgroundImg: \"/images/poster_bg.png\",\n * color: \"rgba(255, 255, 255, 0.98)\",\n * profitColor: \"rgb(0,181,159)\",\n * ...\n * });\n */\nexport const usePoster = (\n /**\n * The options to draw the poster\n */\n data: DrawOptions,\n options?: {\n /**\n * The ratio of the poster\n */\n ratio?: number;\n }\n) => {\n const [error, setError] = useState<Error | null>(null);\n const [canCopy, setCanCopy] = useState<boolean>(\n () => typeof navigator.clipboard !== \"undefined\"\n );\n\n const painterRef = useRef<PosterPainter | null>(null);\n\n const [target, setTarget] = useState<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n // Create the painter instance\n if (target && !painterRef.current) {\n painterRef.current = new PosterPainter(target, {\n ratio: 1,\n ...options,\n });\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [target]);\n\n useEffect(() => {\n if (painterRef.current) {\n painterRef.current.draw(\n mergeDeepRight<Partial<DrawOptions>, DrawOptions>(\n { layout: DefaultLayoutConfig, fontFamily: \"Manrope\" },\n data\n )\n );\n }\n }, [data]);\n\n const toDataURL = (type?: string, encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n return target.toDataURL(type, encoderOptions);\n };\n\n /**\n * Converts the poster to a blob\n */\n const toBlob = useCallback(\n (type?: string, encoderOptions?: number): Promise<Blob | null> => {\n return new Promise<Blob | null>((resolve) => {\n if (!target) {\n resolve(null);\n return;\n }\n target.toBlob(resolve, type, encoderOptions);\n });\n },\n [target]\n );\n\n const ref = (ref: HTMLCanvasElement | null) => {\n if (!ref) return;\n if (ref.tagName.toUpperCase() !== \"CANVAS\") {\n // throw new Error(\"The ref must be a canvas element\");\n setError(new SDKError(\"The ref must be a canvas element\"));\n return;\n }\n setTarget(ref);\n };\n\n const download = useCallback(\n (filename: string, type: string = \"image/png\", encoderOptions?: number) => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n const img = new Image();\n img.src = target.toDataURL(type, encoderOptions);\n const link = document.createElement(\"a\");\n link.href = img.src;\n link.download = filename;\n link.click();\n },\n [target]\n );\n\n const copy = useCallback(() => {\n if (!target) {\n throw new SDKError(\"The ref must be a canvas element\");\n }\n // copy image to clipboard\n return new Promise<void>((resolve, reject) => {\n if (!navigator.clipboard) {\n reject(new SDKError(\"Clipboard API is not supported\"));\n return;\n }\n target.toBlob((blob) => {\n if (!blob) {\n reject(new SDKError(\"Failed to create blob\"));\n return;\n }\n return navigator.clipboard\n .write([new ClipboardItem({ [blob.type]: blob })])\n .then(resolve, reject);\n });\n });\n }, [target]);\n\n return {\n error,\n /**\n * The ref to the canvas element, you should pass this ref to the canvas element\n */\n ref,\n /**\n * Converts the poster to a data URL\n */\n toDataURL,\n /**\n * Converts the poster to a blob\n */\n toBlob,\n /**\n * Downloads the poster as an image\n */\n download,\n /**\n * Browser if supports copy image to clipboard\n */\n canCopy,\n copy,\n } as const;\n};\n"],"names":["useCallback","useEffect","useRef","useState","mergeDeepRight","PosterPainter","DefaultLayoutConfig","SDKError","usePoster","data","options","error","setError","canCopy","setCanCopy","navigator","clipboard","painterRef","target","setTarget","current","ratio","draw","layout","fontFamily","toDataURL","type","encoderOptions","toBlob","Promise","resolve","ref","tagName","toUpperCase","download","filename","img","Image","src","link","document","createElement","href","click","copy","reject","blob","write","ClipboardItem","then"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,57 +1,2 @@
1
- import { OrderType, type 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">;
9
- type ValuesDepConfig = {
10
- symbol: API.SymbolExt;
11
- maxQty: number;
12
- markPrice: number;
13
- };
14
- export interface OrderCreator {
15
- create: (values: OrderEntity, configs: ValuesDepConfig) => OrderEntity;
16
- validate: (values: OrderFormEntity, configs: ValuesDepConfig) => Promise<VerifyResult>;
17
- }
18
- export declare abstract class BaseOrderCreator implements OrderCreator {
19
- abstract create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;
20
- abstract validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
21
- baseOrder(data: OrderEntity): OrderEntity;
22
- baseValidate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
23
- fixOrderQuantity(order: Partial<OrderEntity>, config: ValuesDepConfig): OrderEntity;
24
- }
25
1
  export declare function checkNotional(price?: string | number, qty?: string | number, minNotional?: number): string | undefined;
26
- export declare class LimitOrderCreator extends BaseOrderCreator {
27
- create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;
28
- validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
29
- }
30
- export declare class MarketOrderCreator extends BaseOrderCreator {
31
- create(values: OrderEntity): OrderEntity;
32
- validate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
33
- }
34
- export declare class PostOnlyOrderCreator extends LimitOrderCreator {
35
- }
36
- export declare class FOKOrderCreator extends LimitOrderCreator {
37
- }
38
- export declare class IOCOrderCreator extends LimitOrderCreator {
39
- }
40
- export declare class StopLimitOrderCreator extends LimitOrderCreator {
41
- create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;
42
- validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
43
- }
44
- export declare class StopMarketOrderCreator extends LimitOrderCreator {
45
- create(values: OrderEntity, _: ValuesDepConfig): OrderEntity;
46
- validate(values: OrderFormEntity, config: ValuesDepConfig): Promise<VerifyResult>;
47
- }
48
- export declare class GeneralOrderCreator extends BaseOrderCreator {
49
- create(data: OrderEntity): OrderEntity;
50
- validate(values: OrderFormEntity, configs: ValuesDepConfig): Promise<VerifyResult>;
51
- }
52
- export declare const availableOrderTypes: OrderType[];
53
- export declare class OrderFactory {
54
- static create(type: OrderType): OrderCreator | null;
55
- }
56
- export {};
57
2
  //# sourceMappingURL=createOrder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOrder.d.ts","sourceRoot":"","sources":["../../src/utils/createOrder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createOrder.d.ts","sourceRoot":"","sources":["../../src/utils/createOrder.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAiBpB"}
@@ -1,95 +1,4 @@
1
- import { OrderType } from "@orderly.network/types";
2
1
  import { Decimal } from "@orderly.network/utils";
3
- import { order } from "@orderly.network/perp";
4
- const { maxPrice, minPrice, scropePrice } = order;
5
- export class BaseOrderCreator {
6
- baseOrder(data) {
7
- const order = {
8
- symbol: data.symbol,
9
- order_type: data.order_type === OrderType.LIMIT ? !!data.order_type_ext ? data.order_type_ext : data.order_type : data.order_type,
10
- side: data.side,
11
- reduce_only: data.reduce_only,
12
- order_quantity: data.order_quantity,
13
- total: data.total
14
- };
15
- if (data.visible_quantity === 0) {
16
- order.visible_quantity = data.visible_quantity;
17
- }
18
- return order;
19
- }
20
- baseValidate(values, configs) {
21
- const errors = {};
22
- const { maxQty, symbol } = configs;
23
- // @ts-ignore
24
- let { order_quantity, total, order_price, reduce_only } = values;
25
- const { min_notional } = symbol;
26
- if (!order_quantity) {
27
- // calculate order_quantity from total
28
- if (total && order_price) {
29
- const { quote_dp } = configs.symbol;
30
- const totalNumber = new Decimal(total);
31
- const qty = totalNumber.dividedBy(order_price).toFixed(quote_dp);
32
- order_quantity = qty;
33
- }
34
- }
35
- if (!order_quantity) {
36
- errors.order_quantity = {
37
- type: "required",
38
- message: "quantity is required"
39
- };
40
- } else {
41
- // need to use MaxQty+base_max, base_min to compare
42
- const { base_min, quote_dp, base_dp } = configs.symbol;
43
- const qty = new Decimal(order_quantity);
44
- if (qty.lt(base_min)) {
45
- errors.order_quantity = {
46
- type: "min",
47
- message: `quantity must be greater than ${new Decimal(base_min).todp(base_dp)}`
48
- };
49
- // errors.order_quantity = `quantity must be greater than ${base_min}`;
50
- } else if (qty.gt(maxQty)) {
51
- errors.order_quantity = {
52
- type: "max",
53
- message: `quantity must be less than ${new Decimal(maxQty).todp(base_dp)}`
54
- };
55
- }
56
- }
57
- if (!!total) {
58
- const { quote_max, quote_min, quote_dp } = configs.symbol;
59
- const totalNumber = new Decimal(total);
60
- if (totalNumber.lt(quote_min)) {
61
- errors.total = {
62
- type: "min",
63
- message: `Quantity must be at least ${new Decimal(quote_min).todp(quote_dp)}`
64
- };
65
- } else if (totalNumber.gt(quote_max)) {
66
- errors.total = {
67
- type: "max",
68
- message: `Quantity should be less or equal than ${new Decimal(quote_max).todp(quote_dp)}`
69
- };
70
- }
71
- }
72
- const notionalHintStr = checkNotional(order_price, order_quantity, min_notional);
73
- if (notionalHintStr !== undefined && reduce_only !== true) {
74
- errors.total = {
75
- type: "min",
76
- message: notionalHintStr
77
- };
78
- }
79
- return Promise.resolve(errors);
80
- }
81
- fixOrderQuantity(order, config) {
82
- // if order_quantity is not set but total is set, calculate order_quantity from total
83
- if (!order.order_quantity && order.total && order.order_price) {
84
- const { base_dp } = config.symbol;
85
- const totalNumber = new Decimal(order.total);
86
- const qty = totalNumber.div(order.order_price).toDecimalPlaces(base_dp);
87
- order.order_quantity = qty.toNumber();
88
- delete order.total;
89
- }
90
- return order;
91
- }
92
- }
93
2
  export function checkNotional(price, qty, minNotional) {
94
3
  if (price !== undefined && qty !== undefined && minNotional !== undefined) {
95
4
  try {
@@ -103,248 +12,5 @@ export function checkNotional(price, qty, minNotional) {
103
12
  }
104
13
  return undefined;
105
14
  }
106
- export class LimitOrderCreator extends BaseOrderCreator {
107
- create(values, config) {
108
- const order = {
109
- ...this.baseOrder(values),
110
- order_price: values.order_price
111
- };
112
- this.fixOrderQuantity(order, config);
113
- delete order['total'];
114
- delete order['trigger_price'];
115
- delete order['isStopOrder'];
116
- const { quote_dp } = config.symbol;
117
- if (values.order_price) {
118
- order["order_price"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);
119
- }
120
- return order;
121
- }
122
- validate(values, config) {
123
- return this.baseValidate(values, config).then((errors)=>{
124
- // const errors = this.baseValidate(values, config);
125
- // @ts-ignore
126
- const { order_price, side } = values;
127
- if (!order_price) {
128
- errors.order_price = {
129
- type: "required",
130
- message: "price is required"
131
- };
132
- } else {
133
- const price = new Decimal(order_price);
134
- const { symbol } = config;
135
- const { price_range, price_scope } = symbol;
136
- const maxPriceNumber = maxPrice(config.markPrice, price_range);
137
- const minPriceNumber = minPrice(config.markPrice, price_range);
138
- const scropePriceNumbere = scropePrice(config.markPrice, price_scope, side);
139
- const priceRange = side === "BUY" ? {
140
- min: scropePriceNumbere,
141
- max: maxPriceNumber
142
- } : {
143
- min: minPriceNumber,
144
- max: scropePriceNumbere
145
- };
146
- /// if side is 'buy', only check max price,
147
- /// if side is 'sell', only check min price,
148
- if (price.gt(priceRange?.max)) {
149
- errors.order_price = {
150
- type: "max",
151
- message: `Price must be less than ${new Decimal(priceRange.max).todp(symbol.quote_dp)}`
152
- };
153
- }
154
- if (price.lt(priceRange?.min)) {
155
- errors.order_price = {
156
- type: "min",
157
- message: `Price must be greater than ${new Decimal(priceRange.min).todp(symbol.quote_dp)}`
158
- };
159
- }
160
- }
161
- return errors;
162
- });
163
- }
164
- }
165
- export class MarketOrderCreator extends BaseOrderCreator {
166
- create(values) {
167
- const data = this.baseOrder(values);
168
- delete data["order_price"];
169
- delete data['total'];
170
- delete data['trigger_price'];
171
- delete data['isStopOrder'];
172
- return {
173
- ...data
174
- };
175
- }
176
- validate(values, configs) {
177
- return this.baseValidate(values, configs);
178
- }
179
- }
180
- export class PostOnlyOrderCreator extends LimitOrderCreator {
181
- }
182
- export class FOKOrderCreator extends LimitOrderCreator {
183
- }
184
- export class IOCOrderCreator extends LimitOrderCreator {
185
- }
186
- export class StopLimitOrderCreator extends LimitOrderCreator {
187
- create(values, config) {
188
- const order = {
189
- ...this.baseOrder(values),
190
- order_price: values.order_price,
191
- trigger_price: values.trigger_price,
192
- algo_type: "STOP",
193
- type: "LIMIT",
194
- quantity: values["order_quantity"],
195
- price: values["order_price"],
196
- trigger_price_type: "MARK_PRICE"
197
- };
198
- this.fixOrderQuantity(order, config);
199
- delete order["order_quantity"];
200
- delete order["order_price"];
201
- // @ts-ignore
202
- delete order["order_type"];
203
- // @ts-ignore
204
- delete order["isStopOrder"];
205
- delete order['total'];
206
- const { quote_dp } = config.symbol;
207
- if (values.order_price) {
208
- order["order_price"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);
209
- }
210
- if (values.trigger_price) {
211
- order["trigger_price"] = new Decimal(Number.parseFloat(values.trigger_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);
212
- }
213
- return order;
214
- }
215
- validate(values, config) {
216
- return this.baseValidate(values, config).then((errors)=>{
217
- // const errors = this.baseValidate(values, config);
218
- // @ts-ignore
219
- const { order_price, trigger_price, side } = values;
220
- if (!order_price) {
221
- errors.order_price = {
222
- type: "required",
223
- message: "price is required"
224
- };
225
- }
226
- if (!trigger_price) {
227
- errors.trigger_price = {
228
- type: "required",
229
- message: "Trigger price is required"
230
- };
231
- }
232
- if (trigger_price && order_price) {
233
- const price = new Decimal(order_price);
234
- const { symbol } = config;
235
- const { price_range, price_scope } = symbol;
236
- const maxPriceNumber = maxPrice(trigger_price, price_range);
237
- const minPriceNumber = minPrice(trigger_price, price_range);
238
- const scropePriceNumbere = scropePrice(trigger_price, price_scope, side);
239
- const priceRange = side === "BUY" ? {
240
- min: scropePriceNumbere,
241
- max: maxPriceNumber
242
- } : {
243
- min: minPriceNumber,
244
- max: scropePriceNumbere
245
- };
246
- /// if side is 'buy', only check max price,
247
- /// if side is 'sell', only check min price,
248
- if (price.gt(priceRange?.max)) {
249
- errors.order_price = {
250
- type: "max",
251
- message: `Price must be less than ${new Decimal(priceRange.max).todp(symbol.quote_dp)}`
252
- };
253
- }
254
- if (price.lt(priceRange?.min)) {
255
- errors.order_price = {
256
- type: "min",
257
- message: `Price must be greater than ${new Decimal(priceRange.min).todp(symbol.quote_dp)}`
258
- };
259
- }
260
- }
261
- return errors;
262
- });
263
- }
264
- }
265
- export class StopMarketOrderCreator extends LimitOrderCreator {
266
- create(values, _) {
267
- const result = {
268
- ...this.baseOrder(values),
269
- // order_price: values.order_price,
270
- trigger_price: values.trigger_price,
271
- algo_type: "STOP",
272
- type: "MARKET",
273
- quantity: values["order_quantity"],
274
- // price: values["order_price"],
275
- trigger_price_type: "MARK_PRICE"
276
- };
277
- delete result["order_quantity"];
278
- delete result["order_price"];
279
- // @ts-ignore
280
- delete result["order_type"];
281
- // @ts-ignore
282
- delete result["isStopOrder"];
283
- delete result['total'];
284
- ;
285
- return result;
286
- }
287
- validate(values, config) {
288
- return this.baseValidate(values, config).then((errors)=>{
289
- // const errors = this.baseValidate(values, config);
290
- // @ts-ignore
291
- const { order_price, trigger_price, side } = values;
292
- if (!trigger_price) {
293
- errors.trigger_price = {
294
- type: "required",
295
- message: "Trigger price is required"
296
- };
297
- }
298
- return errors;
299
- });
300
- }
301
- }
302
- export class GeneralOrderCreator extends BaseOrderCreator {
303
- create(data) {
304
- return {
305
- ...this.baseOrder(data),
306
- order_price: data.order_price,
307
- order_quantity: data.order_quantity
308
- };
309
- }
310
- validate(values, configs) {
311
- return super.baseValidate(values, configs);
312
- }
313
- }
314
- export const availableOrderTypes = [
315
- OrderType.LIMIT,
316
- OrderType.MARKET,
317
- OrderType.IOC,
318
- OrderType.FOK,
319
- OrderType.POST_ONLY,
320
- OrderType.STOP_LIMIT,
321
- OrderType.STOP_MARKET
322
- ];
323
- export class OrderFactory {
324
- static create(type) {
325
- switch(type){
326
- case OrderType.LIMIT:
327
- return new LimitOrderCreator();
328
- case OrderType.MARKET:
329
- return new MarketOrderCreator();
330
- // case OrderType.ASK:
331
- // return new AskOrderCreator();
332
- // case OrderType.BID:
333
- // return new BidOrderCreator();
334
- case OrderType.IOC:
335
- return new IOCOrderCreator();
336
- case OrderType.FOK:
337
- return new FOKOrderCreator();
338
- case OrderType.POST_ONLY:
339
- return new PostOnlyOrderCreator();
340
- case OrderType.STOP_LIMIT:
341
- return new StopLimitOrderCreator();
342
- case OrderType.STOP_MARKET:
343
- return new StopMarketOrderCreator();
344
- default:
345
- return new GeneralOrderCreator();
346
- }
347
- }
348
- }
349
15
 
350
16
  //# sourceMappingURL=createOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/createOrder.ts"],"sourcesContent":["import { OrderType, type API, OrderEntity } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { order } from \"@orderly.network/perp\";\nimport { OrderSide } from \"@orderly.network/types\";\n\nexport type VerifyResult = {\n [P in keyof OrderEntity]?: { type: string; message: string };\n};\nexport type OrderFormEntity = Pick<\n OrderEntity,\n \"order_price\" | \"order_quantity\" | \"total\"\n>;\n\ntype ValuesDepConfig = {\n // token: API.TokenInfo;\n symbol: API.SymbolExt;\n maxQty: number;\n markPrice: number;\n};\n\nexport interface OrderCreator {\n create: (values: OrderEntity, configs: ValuesDepConfig) => OrderEntity;\n validate: (\n values: OrderFormEntity,\n configs: ValuesDepConfig\n ) => Promise<VerifyResult>;\n}\n\nconst { maxPrice, minPrice, scropePrice } = order;\n\nexport abstract class BaseOrderCreator implements OrderCreator {\n abstract create(values: OrderEntity, config: ValuesDepConfig): OrderEntity;\n abstract validate(\n values: OrderFormEntity,\n config: ValuesDepConfig\n ): Promise<VerifyResult>;\n\n baseOrder(data: OrderEntity): OrderEntity {\n const order: Partial<OrderEntity> = {\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 // @ts-ignore\n let { order_quantity, total, order_price, reduce_only } = values;\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(order_price, order_quantity, min_notional);\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 fixOrderQuantity(\n order: Partial<OrderEntity>,\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\nexport function checkNotional(price?: string | number, qty?: string | number, minNotional?: number): string | undefined {\n\n \n \n if (price !== undefined && qty !== undefined && minNotional !== undefined) {\n \n try {\n const calcNotional = new Decimal(price).mul(new Decimal(qty)).toNumber();\n const notional = Number.parseFloat(`${minNotional}`);\n \n const str = calcNotional < notional ? `The order value should be greater or equal to ${minNotional} USDC` : undefined;\n return str;\n } catch (e) {\n return undefined;\n }\n }\n\n return undefined;\n}\n\nexport class LimitOrderCreator extends BaseOrderCreator {\n create(values: OrderEntity, config: ValuesDepConfig): OrderEntity {\n const order = {\n ...this.baseOrder(values),\n order_price: values.order_price,\n };\n\n this.fixOrderQuantity(order, config);\n\n delete order['total'];\n delete order['trigger_price'];\n delete order['isStopOrder'];\n\n const { quote_dp } = config.symbol;\n if (values.order_price) {\n order[\"order_price\"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);\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 = side === \"BUY\" ? {\n min: scropePriceNumbere,\n max: maxPriceNumber,\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\n return errors;\n });\n }\n}\n\nexport class MarketOrderCreator extends BaseOrderCreator {\n create(values: OrderEntity): 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\nexport class PostOnlyOrderCreator extends LimitOrderCreator { }\n\nexport class FOKOrderCreator extends LimitOrderCreator { }\nexport class IOCOrderCreator extends LimitOrderCreator { }\n\nexport class StopLimitOrderCreator extends LimitOrderCreator {\n create(values: OrderEntity, config: ValuesDepConfig): OrderEntity {\n const order = {\n ...this.baseOrder(values),\n order_price: values.order_price,\n trigger_price: values.trigger_price,\n algo_type: \"STOP\",\n type: \"LIMIT\",\n quantity: values[\"order_quantity\"],\n price: values[\"order_price\"],\n trigger_price_type: \"MARK_PRICE\",\n };\n this.fixOrderQuantity(order, config);\n delete order[\"order_quantity\"];\n delete order[\"order_price\"];\n // @ts-ignore\n delete order[\"order_type\"];\n // @ts-ignore\n delete order[\"isStopOrder\"];\n delete order['total'];\n\n const { quote_dp } = config.symbol;\n if (values.order_price) {\n order[\"order_price\"] = new Decimal(Number.parseFloat(values.order_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);\n }\n \n if (values.trigger_price) {\n order[\"trigger_price\"] = new Decimal(Number.parseFloat(values.trigger_price.toString())).toFixed(quote_dp, Decimal.ROUND_DOWN);\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 (!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 = side === \"BUY\" ? {\n min: scropePriceNumbere,\n max: maxPriceNumber,\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}\nexport class StopMarketOrderCreator extends LimitOrderCreator {\n create(values: OrderEntity, _: ValuesDepConfig): OrderEntity {\n const result = {\n ...this.baseOrder(values),\n // order_price: values.order_price,\n trigger_price: values.trigger_price,\n algo_type: \"STOP\",\n type: \"MARKET\",\n quantity: values[\"order_quantity\"],\n // price: values[\"order_price\"],\n trigger_price_type: \"MARK_PRICE\",\n };\n delete result[\"order_quantity\"];\n delete result[\"order_price\"];\n // @ts-ignore\n delete result[\"order_type\"];\n // @ts-ignore\n delete result[\"isStopOrder\"];\n delete result['total'];\n\n console.log(\"result is\", result);\n return result;\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\nexport class GeneralOrderCreator extends BaseOrderCreator {\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\nexport const availableOrderTypes = [\n OrderType.LIMIT,\n OrderType.MARKET,\n OrderType.IOC,\n OrderType.FOK,\n OrderType.POST_ONLY,\n OrderType.STOP_LIMIT,\n OrderType.STOP_MARKET,\n];\n\nexport class OrderFactory {\n static create(type: OrderType): OrderCreator | null {\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 default:\n return new GeneralOrderCreator();\n }\n }\n}\n"],"names":["OrderType","Decimal","order","maxPrice","minPrice","scropePrice","BaseOrderCreator","baseOrder","data","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","checkNotional","undefined","Promise","resolve","fixOrderQuantity","config","div","toDecimalPlaces","toNumber","price","minNotional","calcNotional","mul","notional","Number","parseFloat","str","e","LimitOrderCreator","create","toString","ROUND_DOWN","validate","then","price_range","price_scope","maxPriceNumber","markPrice","minPriceNumber","scropePriceNumbere","priceRange","min","max","MarketOrderCreator","PostOnlyOrderCreator","FOKOrderCreator","IOCOrderCreator","StopLimitOrderCreator","trigger_price","algo_type","quantity","trigger_price_type","StopMarketOrderCreator","_","result","GeneralOrderCreator","availableOrderTypes","MARKET","IOC","FOK","POST_ONLY","STOP_LIMIT","STOP_MARKET","OrderFactory"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/createOrder.ts"],"sourcesContent":["import { Decimal } from \"@orderly.network/utils\";\n\nexport function checkNotional(\n price?: string | number,\n qty?: string | number,\n minNotional?: number\n): string | undefined {\n if (price !== undefined && qty !== undefined && minNotional !== undefined) {\n try {\n const calcNotional = new Decimal(price).mul(new Decimal(qty)).toNumber();\n const notional = Number.parseFloat(`${minNotional}`);\n\n const str =\n calcNotional < notional\n ? `The order value should be greater or equal to ${minNotional} USDC`\n : undefined;\n return str;\n } catch (e) {\n return undefined;\n }\n }\n\n return undefined;\n}\n"],"names":["Decimal","checkNotional","price","qty","minNotional","undefined","calcNotional","mul","toNumber","notional","Number","parseFloat","str","e"],"rangeMappings":";;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,SAASC,cACdC,KAAuB,EACvBC,GAAqB,EACrBC,WAAoB;IAEpB,IAAIF,UAAUG,aAAaF,QAAQE,aAAaD,gBAAgBC,WAAW;QACzE,IAAI;YACF,MAAMC,eAAe,IAAIN,QAAQE,OAAOK,GAAG,CAAC,IAAIP,QAAQG,MAAMK,QAAQ;YACtE,MAAMC,WAAWC,OAAOC,UAAU,CAAC,CAAC,EAAEP,YAAY,CAAC;YAEnD,MAAMQ,MACJN,eAAeG,WACX,CAAC,8CAA8C,EAAEL,YAAY,KAAK,CAAC,GACnEC;YACN,OAAOO;QACT,EAAE,OAAOC,GAAG;YACV,OAAOR;QACT;IACF;IAEA,OAAOA;AACT"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=fokCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fokCreator.d.ts","sourceRoot":"","sources":["../../src/utils/fokCreator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=fokCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/fokCreator.ts"],"names":[],"rangeMappings":"","mappings":""}
@@ -0,0 +1,5 @@
1
+ export { findTPSLFromOrder, findTPSLFromOrders, findPositionTPSLFromOrders, } from "../orderly/usePositionStream/utils";
2
+ export { cleanStringStyle } from "./orderEntryHelper";
3
+ export { getPositionBySymbol } from "./swr";
4
+ export { priceToPnl } from "../orderly/useTakeProfitAndStopLoss/utils";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { findTPSLFromOrder, findTPSLFromOrders, findPositionTPSLFromOrders } from "../orderly/usePositionStream/utils";
2
+ export { cleanStringStyle } from "./orderEntryHelper";
3
+ export { getPositionBySymbol } from "./swr";
4
+ export { priceToPnl } from "../orderly/useTakeProfitAndStopLoss/utils";
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export {\n findTPSLFromOrder,\n findTPSLFromOrders,\n findPositionTPSLFromOrders,\n} from \"../orderly/usePositionStream/utils\";\n\nexport { cleanStringStyle } from \"./orderEntryHelper\";\n\nexport { getPositionBySymbol } from \"./swr\";\n\nexport { priceToPnl } from \"../orderly/useTakeProfitAndStopLoss/utils\";\n"],"names":["findTPSLFromOrder","findTPSLFromOrders","findPositionTPSLFromOrders","cleanStringStyle","getPositionBySymbol","priceToPnl"],"rangeMappings":";;;","mappings":"AAAA,SACEA,iBAAiB,EACjBC,kBAAkB,EAClBC,0BAA0B,QACrB,qCAAqC;AAE5C,SAASC,gBAAgB,QAAQ,qBAAqB;AAEtD,SAASC,mBAAmB,QAAQ,QAAQ;AAE5C,SAASC,UAAU,QAAQ,4CAA4C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/utils/order.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/order.ts"],"sourcesContent":["import { API } from \"@orderly.network/types\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,WAA6C"}