@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
@@ -1 +1 @@
1
- {"version":3,"file":"dataProvider.d.ts","sourceRoot":"","sources":["../src/dataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;AAE7E,UAAU,sBAAsB;IAK9B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACnE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,iBAAiB,iDAE7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,8BAAsC,CAAC;AAExE,eAAO,MAAM,kBAAkB,iBAAkB,iBAAiB,mDAqCjE,CAAC"}
1
+ {"version":3,"file":"dataProvider.d.ts","sourceRoot":"","sources":["../src/dataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAI7E,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;AAE7E,UAAU,sBAAsB;IAK9B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IACnE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,iBAAiB,iDAE7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,8BAAsC,CAAC;AAExE,eAAO,MAAM,kBAAkB,iBAAkB,iBAAiB,mDAmCjE,CAAC"}
@@ -24,11 +24,9 @@ export const DataCenterProvider = ({ children })=>{
24
24
  return /*#__PURE__*/ _jsx(DataCenterContext.Provider, {
25
25
  value: {
26
26
  regesterKeyHandler: (key, fun)=>{
27
- ;
28
27
  getKeyHandlerMapRef.current.set(key, fun);
29
28
  },
30
29
  unregisterKeyHandler: (key)=>{
31
- ;
32
30
  getKeyHandlerMapRef.current.delete(key);
33
31
  }
34
32
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dataProvider.tsx"],"sourcesContent":["import { PropsWithChildren, createContext, useContext, useRef } from \"react\";\nimport { usePrivateDataObserver } from \"./orderly/usePrivateDataObserver\";\nimport { usePreLoadData } from \"./usePreloadData\";\n\nexport type getKeyFunction = (index: number, prevData: any) => string | null;\n\ninterface DataCenterContextState {\n // orders\n // positions\n // balances\n //\n regesterKeyHandler: (key: string, handler: getKeyFunction) => void;\n unregisterKeyHandler: (key: string) => void;\n}\n\nexport const DataCenterContext = createContext<DataCenterContextState>(\n {} as any\n);\n\nexport const useDataCenterContext = () => useContext(DataCenterContext);\n\nexport const DataCenterProvider = ({ children }: PropsWithChildren) => {\n /**\n * preload the required data for the app\n * hidden view while the required data is not ready\n */\n const { error, done } = usePreLoadData();\n\n const getKeyHandlerMapRef = useRef<Map<string, getKeyFunction>>(new Map());\n\n usePrivateDataObserver({\n getKeysMap(type) {\n return getKeyHandlerMapRef.current;\n },\n });\n\n if (error) {\n return <div>Data load failed</div>;\n }\n\n if (!done) return null;\n\n return (\n <DataCenterContext.Provider\n value={{\n regesterKeyHandler: (key, fun) => {\n console.log(\"regesterKeyHandler\", key);\n getKeyHandlerMapRef.current.set(key, fun);\n },\n unregisterKeyHandler: (key) => {\n console.log(\"unregisterKeyHandler\", key);\n getKeyHandlerMapRef.current.delete(key);\n },\n }}\n >\n {children}\n </DataCenterContext.Provider>\n );\n};\n"],"names":["createContext","useContext","useRef","usePrivateDataObserver","usePreLoadData","DataCenterContext","useDataCenterContext","DataCenterProvider","children","error","done","getKeyHandlerMapRef","Map","getKeysMap","type","current","div","Provider","value","regesterKeyHandler","key","fun","set","unregisterKeyHandler","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAA4BA,aAAa,EAAEC,UAAU,EAAEC,MAAM,QAAQ,QAAQ;AAC7E,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E,SAASC,cAAc,QAAQ,mBAAmB;AAalD,OAAO,MAAMC,kCAAoBL,cAC/B,CAAC,GACD;AAEF,OAAO,MAAMM,uBAAuB,IAAML,WAAWI,mBAAmB;AAExE,OAAO,MAAME,qBAAqB,CAAC,EAAEC,QAAQ,EAAqB;IAChE;;;GAGC,GACD,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGN;IAExB,MAAMO,sBAAsBT,OAAoC,IAAIU;IAEpET,uBAAuB;QACrBU,YAAWC,IAAI;YACb,OAAOH,oBAAoBI,OAAO;QACpC;IACF;IAEA,IAAIN,OAAO;QACT,qBAAO,KAACO;sBAAI;;IACd;IAEA,IAAI,CAACN,MAAM,OAAO;IAElB,qBACE,KAACL,kBAAkBY,QAAQ;QACzBC,OAAO;YACLC,oBAAoB,CAACC,KAAKC;;gBAExBV,oBAAoBI,OAAO,CAACO,GAAG,CAACF,KAAKC;YACvC;YACAE,sBAAsB,CAACH;;gBAErBT,oBAAoBI,OAAO,CAACS,MAAM,CAACJ;YACrC;QACF;kBAECZ;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../src/dataProvider.tsx"],"sourcesContent":["import { PropsWithChildren, createContext, useContext, useRef } from \"react\";\nimport { usePrivateDataObserver } from \"./orderly/usePrivateDataObserver\";\nimport { usePreLoadData } from \"./usePreloadData\";\n\nexport type getKeyFunction = (index: number, prevData: any) => string | null;\n\ninterface DataCenterContextState {\n // orders\n // positions\n // balances\n //\n regesterKeyHandler: (key: string, handler: getKeyFunction) => void;\n unregisterKeyHandler: (key: string) => void;\n}\n\nexport const DataCenterContext = createContext<DataCenterContextState>(\n {} as any\n);\n\nexport const useDataCenterContext = () => useContext(DataCenterContext);\n\nexport const DataCenterProvider = ({ children }: PropsWithChildren) => {\n /**\n * preload the required data for the app\n * hidden view while the required data is not ready\n */\n const { error, done } = usePreLoadData();\n\n const getKeyHandlerMapRef = useRef<Map<string, getKeyFunction>>(new Map());\n\n usePrivateDataObserver({\n getKeysMap(type) {\n return getKeyHandlerMapRef.current;\n },\n });\n\n if (error) {\n return <div>Data load failed</div>;\n }\n\n if (!done) return null;\n\n return (\n <DataCenterContext.Provider\n value={{\n regesterKeyHandler: (key, fun) => {\n getKeyHandlerMapRef.current.set(key, fun);\n },\n unregisterKeyHandler: (key) => {\n getKeyHandlerMapRef.current.delete(key);\n },\n }}\n >\n {children}\n </DataCenterContext.Provider>\n );\n};\n"],"names":["createContext","useContext","useRef","usePrivateDataObserver","usePreLoadData","DataCenterContext","useDataCenterContext","DataCenterProvider","children","error","done","getKeyHandlerMapRef","Map","getKeysMap","type","current","div","Provider","value","regesterKeyHandler","key","fun","set","unregisterKeyHandler","delete"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAA4BA,aAAa,EAAEC,UAAU,EAAEC,MAAM,QAAQ,QAAQ;AAC7E,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E,SAASC,cAAc,QAAQ,mBAAmB;AAalD,OAAO,MAAMC,kCAAoBL,cAC/B,CAAC,GACD;AAEF,OAAO,MAAMM,uBAAuB,IAAML,WAAWI,mBAAmB;AAExE,OAAO,MAAME,qBAAqB,CAAC,EAAEC,QAAQ,EAAqB;IAChE;;;GAGC,GACD,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGN;IAExB,MAAMO,sBAAsBT,OAAoC,IAAIU;IAEpET,uBAAuB;QACrBU,YAAWC,IAAI;YACb,OAAOH,oBAAoBI,OAAO;QACpC;IACF;IAEA,IAAIN,OAAO;QACT,qBAAO,KAACO;sBAAI;;IACd;IAEA,IAAI,CAACN,MAAM,OAAO;IAElB,qBACE,KAACL,kBAAkBY,QAAQ;QACzBC,OAAO;YACLC,oBAAoB,CAACC,KAAKC;gBACxBV,oBAAoBI,OAAO,CAACO,GAAG,CAACF,KAAKC;YACvC;YACAE,sBAAsB,CAACH;gBACrBT,oBAAoBI,OAAO,CAACS,MAAM,CAACJ;YACrC;QACF;kBAECZ;;AAGP,EAAE"}
package/esm/index.d.ts CHANGED
@@ -22,8 +22,8 @@ export type { ConfigProviderProps } from "./configProvider";
22
22
  export { OrderlyConfigProvider } from "./configProvider";
23
23
  export { WalletConnectorContext, useWalletConnector, } from "./walletConnectorContext";
24
24
  export * from "./orderly/orderlyHooks";
25
- import useSWR, { type SWRConfiguration, SWRConfig } from "swr";
26
- export { useSWR, SWRConfig, type SWRConfiguration };
25
+ import useSWR, { type SWRConfiguration, SWRConfig, useSWRConfig, unstable_serialize } from "swr";
26
+ export { useSWR, SWRConfig, useSWRConfig, type SWRConfiguration, unstable_serialize, };
27
27
  export * from "use-debounce";
28
28
  export { useMediaQuery } from "./useMediaQuery";
29
29
  export { usePoster } from "./usePoster";
@@ -31,6 +31,7 @@ export { DefaultLayoutConfig } from "./services/painter/layout.config";
31
31
  export type { PosterLayoutConfig, DrawOptions, } from "./services/painter/basePaint";
32
32
  export * from "./orderly/orderlyHooks";
33
33
  export { cleanStringStyle } from "./utils/orderEntryHelper";
34
- export { OrderFactory, checkNotional } from "./utils/createOrder";
34
+ export { checkNotional } from "./utils/createOrder";
35
+ export * as utils from "./utils";
35
36
  export type { WalletAdapter } from "@orderly.network/core";
36
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,MAAM,EAAE,EAAE,KAAK,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAEpD,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,MAAM,EAAE,EACb,KAAK,gBAAgB,EACrB,SAAS,EACT,YAAY,EACZ,kBAAkB,EACnB,MAAM,KAAK,CAAC;AAEb,OAAO,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,CAAC;AAEF,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
package/esm/index.js CHANGED
@@ -22,14 +22,15 @@ export { useWsStatus, WsNetworkStatus } from "./useWsStatus";
22
22
  export { OrderlyConfigProvider } from "./configProvider";
23
23
  export { WalletConnectorContext, useWalletConnector } from "./walletConnectorContext";
24
24
  export * from "./orderly/orderlyHooks";
25
- import useSWR, { SWRConfig } from "swr";
26
- export { useSWR, SWRConfig };
25
+ import useSWR, { SWRConfig, useSWRConfig, unstable_serialize } from "swr";
26
+ export { useSWR, SWRConfig, useSWRConfig, unstable_serialize };
27
27
  export * from "use-debounce";
28
28
  export { useMediaQuery } from "./useMediaQuery";
29
29
  export { usePoster } from "./usePoster";
30
30
  export { DefaultLayoutConfig } from "./services/painter/layout.config";
31
31
  export * from "./orderly/orderlyHooks";
32
32
  export { cleanStringStyle } from "./utils/orderEntryHelper";
33
- export { OrderFactory, checkNotional } from "./utils/createOrder";
33
+ export { checkNotional } from "./utils/createOrder";
34
+ export * as utils from "./utils";
34
35
 
35
36
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// import \"./utils/dev\";\n\nexport { default as version } from \"./version\";\n\nexport { useQuery } from \"./useQuery\";\nexport { useLazyQuery } from \"./useLazyQuery\";\nexport { useMutation } from \"./useMutation\";\nexport { usePrivateQuery } from \"./usePrivateQuery\";\nexport { usePrivateInfiniteQuery } from \"./usePrivateInfiniteQuery\";\nexport { useBoolean } from \"./useBoolean\";\n\nexport { useAccount } from \"./useAccount\";\nexport { useAccountInstance } from \"./useAccountInstance\";\n\nexport { usePreLoadData } from \"./usePreloadData\";\n\nexport { useEventEmitter } from \"./useEventEmitter\";\n\nexport { useSessionStorage } from \"./useSessionStorage\";\nexport { useLocalStorage } from \"./useLocalStorage\";\n\nexport { parseJSON } from \"./utils/json\";\n\nexport { default as useConstant } from \"use-constant\";\nexport { useWS } from \"./useWS\";\nexport { useConfig } from \"./useConfig\";\n\nexport * from \"./orderlyContext\";\nexport * from \"./statusProvider\";\nexport { useWsStatus, WsNetworkStatus } from \"./useWsStatus\";\nexport type { ConfigProviderProps } from \"./configProvider\";\nexport { OrderlyConfigProvider } from \"./configProvider\";\n\nexport {\n WalletConnectorContext,\n useWalletConnector,\n} from \"./walletConnectorContext\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nimport useSWR, { type SWRConfiguration, SWRConfig } from \"swr\";\n\nexport { useSWR, SWRConfig, type SWRConfiguration };\n\nexport * from \"use-debounce\";\n\nexport { useMediaQuery } from \"./useMediaQuery\";\n\nexport { usePoster } from \"./usePoster\";\nexport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nexport type {\n PosterLayoutConfig,\n DrawOptions,\n} from \"./services/painter/basePaint\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nexport { cleanStringStyle } from \"./utils/orderEntryHelper\";\nexport { OrderFactory, checkNotional } from \"./utils/createOrder\";\n\nexport type { WalletAdapter } from \"@orderly.network/core\";\n"],"names":["default","version","useQuery","useLazyQuery","useMutation","usePrivateQuery","usePrivateInfiniteQuery","useBoolean","useAccount","useAccountInstance","usePreLoadData","useEventEmitter","useSessionStorage","useLocalStorage","parseJSON","useConstant","useWS","useConfig","useWsStatus","WsNetworkStatus","OrderlyConfigProvider","WalletConnectorContext","useWalletConnector","useSWR","SWRConfig","useMediaQuery","usePoster","DefaultLayoutConfig","cleanStringStyle","OrderFactory","checkNotional"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,wBAAwB;AAExB,SAASA,WAAWC,OAAO,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,kBAAkB,QAAQ,uBAAuB;AAE1D,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASd,WAAWe,WAAW,QAAQ,eAAe;AACtD,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,SAAS,QAAQ,cAAc;AAExC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,SAASC,WAAW,EAAEC,eAAe,QAAQ,gBAAgB;AAE7D,SAASC,qBAAqB,QAAQ,mBAAmB;AAEzD,SACEC,sBAAsB,EACtBC,kBAAkB,QACb,2BAA2B;AAElC,cAAc,yBAAyB;AAEvC,OAAOC,UAAiCC,SAAS,QAAQ,MAAM;AAE/D,SAASD,MAAM,EAAEC,SAAS,GAA0B;AAEpD,cAAc,eAAe;AAE7B,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,mCAAmC;AAMvE,cAAc,yBAAyB;AAEvC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SAASC,YAAY,EAAEC,aAAa,QAAQ,sBAAsB"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// import \"./utils/dev\";\n\nexport { default as version } from \"./version\";\n\nexport { useQuery } from \"./useQuery\";\nexport { useLazyQuery } from \"./useLazyQuery\";\nexport { useMutation } from \"./useMutation\";\nexport { usePrivateQuery } from \"./usePrivateQuery\";\nexport { usePrivateInfiniteQuery } from \"./usePrivateInfiniteQuery\";\nexport { useBoolean } from \"./useBoolean\";\n\nexport { useAccount } from \"./useAccount\";\nexport { useAccountInstance } from \"./useAccountInstance\";\n\nexport { usePreLoadData } from \"./usePreloadData\";\n\nexport { useEventEmitter } from \"./useEventEmitter\";\n\nexport { useSessionStorage } from \"./useSessionStorage\";\nexport { useLocalStorage } from \"./useLocalStorage\";\n\nexport { parseJSON } from \"./utils/json\";\n\nexport { default as useConstant } from \"use-constant\";\nexport { useWS } from \"./useWS\";\nexport { useConfig } from \"./useConfig\";\n\nexport * from \"./orderlyContext\";\nexport * from \"./statusProvider\";\nexport { useWsStatus, WsNetworkStatus } from \"./useWsStatus\";\nexport type { ConfigProviderProps } from \"./configProvider\";\nexport { OrderlyConfigProvider } from \"./configProvider\";\n\nexport {\n WalletConnectorContext,\n useWalletConnector,\n} from \"./walletConnectorContext\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nimport useSWR, {\n type SWRConfiguration,\n SWRConfig,\n useSWRConfig,\n unstable_serialize,\n} from \"swr\";\n\nexport {\n useSWR,\n SWRConfig,\n useSWRConfig,\n type SWRConfiguration,\n unstable_serialize,\n};\n\nexport * from \"use-debounce\";\n\nexport { useMediaQuery } from \"./useMediaQuery\";\n\nexport { usePoster } from \"./usePoster\";\nexport { DefaultLayoutConfig } from \"./services/painter/layout.config\";\nexport type {\n PosterLayoutConfig,\n DrawOptions,\n} from \"./services/painter/basePaint\";\n\nexport * from \"./orderly/orderlyHooks\";\n\nexport { cleanStringStyle } from \"./utils/orderEntryHelper\";\nexport { checkNotional } from \"./utils/createOrder\";\n\nexport * as utils from \"./utils\";\n\nexport type { WalletAdapter } from \"@orderly.network/core\";\n"],"names":["default","version","useQuery","useLazyQuery","useMutation","usePrivateQuery","usePrivateInfiniteQuery","useBoolean","useAccount","useAccountInstance","usePreLoadData","useEventEmitter","useSessionStorage","useLocalStorage","parseJSON","useConstant","useWS","useConfig","useWsStatus","WsNetworkStatus","OrderlyConfigProvider","WalletConnectorContext","useWalletConnector","useSWR","SWRConfig","useSWRConfig","unstable_serialize","useMediaQuery","usePoster","DefaultLayoutConfig","cleanStringStyle","checkNotional","utils"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,wBAAwB;AAExB,SAASA,WAAWC,OAAO,QAAQ,YAAY;AAE/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,kBAAkB,QAAQ,uBAAuB;AAE1D,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,SAASC,SAAS,QAAQ,eAAe;AAEzC,SAASd,WAAWe,WAAW,QAAQ,eAAe;AACtD,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,SAAS,QAAQ,cAAc;AAExC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,SAASC,WAAW,EAAEC,eAAe,QAAQ,gBAAgB;AAE7D,SAASC,qBAAqB,QAAQ,mBAAmB;AAEzD,SACEC,sBAAsB,EACtBC,kBAAkB,QACb,2BAA2B;AAElC,cAAc,yBAAyB;AAEvC,OAAOC,UAELC,SAAS,EACTC,YAAY,EACZC,kBAAkB,QACb,MAAM;AAEb,SACEH,MAAM,EACNC,SAAS,EACTC,YAAY,EAEZC,kBAAkB,GAClB;AAEF,cAAc,eAAe;AAE7B,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,mCAAmC;AAMvE,cAAc,yBAAyB;AAEvC,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,KAAKC,KAAK,MAAM,UAAU"}
@@ -13,8 +13,8 @@ export { useIndexPrice } from "./useIndexPrice";
13
13
  export { useLeverage } from "./useLeverage";
14
14
  export { useTickerStream } from "./useTickerStream";
15
15
  export { useFundingRate } from "./useFundingRate";
16
- export { usePositionStream } from "./usePositionStream";
17
- export { useOrderStream } from "./useOrderStream";
16
+ export { usePositionStream } from "./usePositionStream/usePositionStream";
17
+ export { useOrderStream } from "./useOrderStream/useOrderStream";
18
18
  export { useMarketTradeStream } from "./useMarketTradeStream";
19
19
  export { useCollateral } from "./useCollateral";
20
20
  export type { CollateralOutputs } from "./useCollateral";
@@ -30,4 +30,5 @@ export { useWalletSubscription } from "./useWalletSubscription";
30
30
  export { useSettleSubscription } from "./useSettleSubscription";
31
31
  export { usePrivateDataObserver } from "./usePrivateDataObserver";
32
32
  export { useSymbolPriceRange } from "./useSymbolPriceRange";
33
+ export { useStopOrder, type ComputedAlgoOrder, } from "./useTakeProfitAndStopLoss";
33
34
  //# sourceMappingURL=orderlyHooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderlyHooks.d.ts","sourceRoot":"","sources":["../../src/orderly/orderlyHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"orderlyHooks.d.ts","sourceRoot":"","sources":["../../src/orderly/orderlyHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EACV,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC"}
@@ -10,8 +10,8 @@ export { useIndexPrice } from "./useIndexPrice";
10
10
  export { useLeverage } from "./useLeverage";
11
11
  export { useTickerStream } from "./useTickerStream";
12
12
  export { useFundingRate } from "./useFundingRate";
13
- export { usePositionStream } from "./usePositionStream";
14
- export { useOrderStream } from "./useOrderStream";
13
+ export { usePositionStream } from "./usePositionStream/usePositionStream";
14
+ export { useOrderStream } from "./useOrderStream/useOrderStream";
15
15
  export { useMarketTradeStream } from "./useMarketTradeStream";
16
16
  export { useCollateral } from "./useCollateral";
17
17
  export { useMaxQty } from "./useMaxQty";
@@ -25,5 +25,6 @@ export { useWalletSubscription } from "./useWalletSubscription";
25
25
  export { useSettleSubscription } from "./useSettleSubscription";
26
26
  export { usePrivateDataObserver } from "./usePrivateDataObserver";
27
27
  export { useSymbolPriceRange } from "./useSymbolPriceRange";
28
+ export { useStopOrder } from "./useTakeProfitAndStopLoss";
28
29
 
29
30
  //# sourceMappingURL=orderlyHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/orderlyHooks.ts"],"sourcesContent":["export { useOrderbookStream } from \"./useOrderbookStream\";\nexport type {\n OrderbookData,\n OrderBookItem,\n OrderbookOptions,\n} from \"./useOrderbookStream\";\nexport { useOrderEntry } from \"./useOrderEntry\";\nexport type { UseOrderEntryMetaState, OrderParams } from \"./useOrderEntry\";\nexport { useSymbolsInfo } from \"./useSymbolsInfo\";\nexport { useAccountInfo } from \"./useAccountInfo\";\n\nexport { useMarketsStream } from \"./useMarketsStream\";\nexport { useMarkets, MarketsType } from \"./useMarkets\";\nexport type { FavoriteTab, Favorite, Recent } from \"./useMarkets\";\nexport { useMarkPricesStream } from \"./useMarkPricesStream\";\nexport { useMarkPrice } from \"./useMarkPrice\";\nexport { useIndexPrice } from \"./useIndexPrice\";\nexport { useLeverage } from \"./useLeverage\";\n\nexport { useTickerStream } from \"./useTickerStream\";\nexport { useFundingRate } from \"./useFundingRate\";\nexport { usePositionStream } from \"./usePositionStream\";\nexport { useOrderStream } from \"./useOrderStream\";\nexport { useMarketTradeStream } from \"./useMarketTradeStream\";\n\nexport { useCollateral } from \"./useCollateral\";\nexport type { CollateralOutputs } from \"./useCollateral\";\nexport { useMaxQty } from \"./useMaxQty\";\nexport { useMarginRatio } from \"./useMarginRatio\";\n\nexport { useChains } from \"./useChains\";\nexport type {\n UseChainsOptions,\n Chain,\n Chains,\n UseChainsReturnObject,\n} from \"./useChains\";\nexport { useChain } from \"./useChain\";\nexport { useWithdraw } from \"./useWithdraw\";\nexport { useDeposit } from \"./useDeposit\";\n\nexport { useHoldingStream } from \"./useHoldingStream\";\nexport { useWalletSubscription } from \"./useWalletSubscription\";\nexport { useSettleSubscription } from \"./useSettleSubscription\";\nexport { usePrivateDataObserver } from \"./usePrivateDataObserver\";\n\nexport { useSymbolPriceRange } from \"./useSymbolPriceRange\";\n"],"names":["useOrderbookStream","useOrderEntry","useSymbolsInfo","useAccountInfo","useMarketsStream","useMarkets","MarketsType","useMarkPricesStream","useMarkPrice","useIndexPrice","useLeverage","useTickerStream","useFundingRate","usePositionStream","useOrderStream","useMarketTradeStream","useCollateral","useMaxQty","useMarginRatio","useChains","useChain","useWithdraw","useDeposit","useHoldingStream","useWalletSubscription","useSettleSubscription","usePrivateDataObserver","useSymbolPriceRange"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,kBAAkB,QAAQ,uBAAuB;AAM1D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,UAAU,EAAEC,WAAW,QAAQ,eAAe;AAEvD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,oBAAoB,QAAQ,yBAAyB;AAE9D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,SAAS,QAAQ,cAAc;AAOxC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,sBAAsB,QAAQ,2BAA2B;AAElE,SAASC,mBAAmB,QAAQ,wBAAwB"}
1
+ {"version":3,"sources":["../../src/orderly/orderlyHooks.ts"],"sourcesContent":["export { useOrderbookStream } from \"./useOrderbookStream\";\nexport type {\n OrderbookData,\n OrderBookItem,\n OrderbookOptions,\n} from \"./useOrderbookStream\";\nexport { useOrderEntry } from \"./useOrderEntry\";\nexport type { UseOrderEntryMetaState, OrderParams } from \"./useOrderEntry\";\nexport { useSymbolsInfo } from \"./useSymbolsInfo\";\nexport { useAccountInfo } from \"./useAccountInfo\";\n\nexport { useMarketsStream } from \"./useMarketsStream\";\nexport { useMarkets, MarketsType } from \"./useMarkets\";\nexport type { FavoriteTab, Favorite, Recent } from \"./useMarkets\";\nexport { useMarkPricesStream } from \"./useMarkPricesStream\";\nexport { useMarkPrice } from \"./useMarkPrice\";\nexport { useIndexPrice } from \"./useIndexPrice\";\nexport { useLeverage } from \"./useLeverage\";\n\nexport { useTickerStream } from \"./useTickerStream\";\nexport { useFundingRate } from \"./useFundingRate\";\nexport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nexport { useOrderStream } from \"./useOrderStream/useOrderStream\";\nexport { useMarketTradeStream } from \"./useMarketTradeStream\";\n\nexport { useCollateral } from \"./useCollateral\";\nexport type { CollateralOutputs } from \"./useCollateral\";\nexport { useMaxQty } from \"./useMaxQty\";\nexport { useMarginRatio } from \"./useMarginRatio\";\n\nexport { useChains } from \"./useChains\";\nexport type {\n UseChainsOptions,\n Chain,\n Chains,\n UseChainsReturnObject,\n} from \"./useChains\";\nexport { useChain } from \"./useChain\";\nexport { useWithdraw } from \"./useWithdraw\";\nexport { useDeposit } from \"./useDeposit\";\n\nexport { useHoldingStream } from \"./useHoldingStream\";\nexport { useWalletSubscription } from \"./useWalletSubscription\";\nexport { useSettleSubscription } from \"./useSettleSubscription\";\nexport { usePrivateDataObserver } from \"./usePrivateDataObserver\";\n\nexport { useSymbolPriceRange } from \"./useSymbolPriceRange\";\n\nexport {\n useStopOrder,\n type ComputedAlgoOrder,\n} from \"./useTakeProfitAndStopLoss\";\n"],"names":["useOrderbookStream","useOrderEntry","useSymbolsInfo","useAccountInfo","useMarketsStream","useMarkets","MarketsType","useMarkPricesStream","useMarkPrice","useIndexPrice","useLeverage","useTickerStream","useFundingRate","usePositionStream","useOrderStream","useMarketTradeStream","useCollateral","useMaxQty","useMarginRatio","useChains","useChain","useWithdraw","useDeposit","useHoldingStream","useWalletSubscription","useSettleSubscription","usePrivateDataObserver","useSymbolPriceRange","useStopOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,kBAAkB,QAAQ,uBAAuB;AAM1D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,UAAU,EAAEC,WAAW,QAAQ,eAAe;AAEvD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,oBAAoB,QAAQ,yBAAyB;AAE9D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,SAAS,QAAQ,cAAc;AAOxC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,UAAU,QAAQ,eAAe;AAE1C,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,qBAAqB,QAAQ,0BAA0B;AAChE,SAASC,sBAAsB,QAAQ,2BAA2B;AAElE,SAASC,mBAAmB,QAAQ,wBAAwB;AAE5D,SACEC,YAAY,QAEP,6BAA6B"}
@@ -1,6 +1,6 @@
1
1
  import { useMemo } from "react";
2
2
  import { usePrivateQuery } from "../usePrivateQuery";
3
- import { pathOr_unsettledPnLPathOr, usePositionStream } from "./usePositionStream";
3
+ import { pathOr_unsettledPnLPathOr, usePositionStream } from "./usePositionStream/usePositionStream";
4
4
  import { pathOr } from "ramda";
5
5
  import { account } from "@orderly.network/perp";
6
6
  import { OrderStatus } from "@orderly.network/types";
@@ -8,7 +8,7 @@ import { useSymbolsInfo } from "./useSymbolsInfo";
8
8
  import { zero } from "@orderly.network/utils";
9
9
  import { useMarkPricesStream } from "./useMarkPricesStream";
10
10
  import { useHoldingStream } from "./useHoldingStream";
11
- import { useOrderStream } from "./useOrderStream";
11
+ import { useOrderStream } from "./useOrderStream/useOrderStream";
12
12
  const positionsPath = pathOr([], [
13
13
  0,
14
14
  "rows"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/useCollateral.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport {\n pathOr_unsettledPnLPathOr,\n usePositionStream,\n} from \"./usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { account } from \"@orderly.network/perp\";\nimport { type API, OrderStatus } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { zero } from \"@orderly.network/utils\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useHoldingStream } from \"./useHoldingStream\";\nimport { useOrderStream } from \"./useOrderStream\";\n\nexport type CollateralOutputs = {\n totalCollateral: number;\n freeCollateral: number;\n totalValue: number;\n availableBalance: number;\n unsettledPnL: number;\n\n positions: API.Position[];\n accountInfo?: API.AccountInfo;\n};\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\nconst totalCollateralPath = pathOr(0, [0, \"totalCollateral\"]);\n\nexport const useCollateral = (\n options: {\n /** decimal precision */\n dp: number;\n } = { dp: 6 }\n): CollateralOutputs => {\n const { dp } = options;\n const positions = usePositionStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const { usdc } = useHoldingStream();\n\n const filterAlgoOrders =\n orders?.filter((item) => item.algo_order_id === undefined) ?? [];\n\n // const { data: holding } = usePrivateQuery<API.Holding[]>(\n // \"/v1/client/holding\",\n // {\n // formatter: (data) => {\n // return data.holding;\n // },\n // }\n // );\n\n const [totalCollateral, totalValue] = useMemo(() => {\n return [\n pathOr(zero, [0, \"totalCollateral\"], positions),\n pathOr(zero, [0, \"totalValue\"], positions),\n ];\n }, [positions, markPrices]);\n\n const totalInitialMarginWithOrders = useMemo(() => {\n if (!accountInfo || !symbolInfo || !markPrices) {\n return 0;\n }\n\n return account.totalInitialMarginWithOrders({\n positions: positionsPath(positions),\n orders: filterAlgoOrders,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n symbolInfo,\n });\n }, [positions, filterAlgoOrders, markPrices, accountInfo, symbolInfo]);\n\n const freeCollateral = useMemo(() => {\n return account.freeCollateral({\n totalCollateral,\n totalInitialMarginWithOrders,\n });\n }, [totalCollateral, totalInitialMarginWithOrders]);\n\n const availableBalance = useMemo(() => {\n return account.availableBalance({\n USDCHolding: usdc?.holding ?? 0,\n unsettlementPnL: pathOr_unsettledPnLPathOr(positions),\n });\n }, [usdc?.holding, pathOr_unsettledPnLPathOr(positions)]);\n\n return {\n totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),\n freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),\n totalValue: totalValue.toDecimalPlaces(dp).toNumber(),\n availableBalance,\n unsettledPnL: pathOr_unsettledPnLPathOr(positions),\n\n accountInfo,\n\n // @hidden\n positions: positionsPath(positions),\n };\n};\n"],"names":["useMemo","usePrivateQuery","pathOr_unsettledPnLPathOr","usePositionStream","pathOr","account","OrderStatus","useSymbolsInfo","zero","useMarkPricesStream","useHoldingStream","useOrderStream","positionsPath","totalCollateralPath","useCollateral","options","dp","positions","orders","status","NEW","data","accountInfo","symbolInfo","markPrices","usdc","filterAlgoOrders","filter","item","algo_order_id","undefined","totalCollateral","totalValue","totalInitialMarginWithOrders","IMR_Factors","imr_factor","maxLeverage","max_leverage","freeCollateral","availableBalance","USDCHolding","holding","unsettlementPnL","toDecimalPlaces","toNumber","unsettledPnL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SACEC,yBAAyB,EACzBC,iBAAiB,QACZ,sBAAsB;AAC7B,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAAmBC,WAAW,QAAQ,yBAAyB;AAC/D,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,cAAc,QAAQ,mBAAmB;AAalD,MAAMC,gBAAgBR,OAAO,EAAE,EAAE;IAAC;IAAG;CAAO;AAC5C,MAAMS,sBAAsBT,OAAO,GAAG;IAAC;IAAG;CAAkB;AAE5D,OAAO,MAAMU,gBAAgB,CAC3BC,UAGI;IAAEC,IAAI;AAAE,CAAC;IAEb,MAAM,EAAEA,EAAE,EAAE,GAAGD;IACf,MAAME,YAAYd;IAElB,MAAM,CAACe,OAAO,GAAGP,eAAe;QAAEQ,QAAQb,YAAYc,GAAG;IAAC;IAE1D,MAAM,EAAEC,MAAMC,WAAW,EAAE,GACzBrB,gBAAiC;IAEnC,MAAMsB,aAAahB;IAEnB,MAAM,EAAEc,MAAMG,UAAU,EAAE,GAAGf;IAE7B,MAAM,EAAEgB,IAAI,EAAE,GAAGf;IAEjB,MAAMgB,mBACJR,QAAQS,OAAO,CAACC,OAASA,KAAKC,aAAa,KAAKC,cAAc,EAAE;IAElE,4DAA4D;IAC5D,0BAA0B;IAC1B,MAAM;IACN,6BAA6B;IAC7B,6BAA6B;IAC7B,SAAS;IACT,MAAM;IACN,KAAK;IAEL,MAAM,CAACC,iBAAiBC,WAAW,GAAGhC,QAAQ;QAC5C,OAAO;YACLI,OAAOI,MAAM;gBAAC;gBAAG;aAAkB,EAAES;YACrCb,OAAOI,MAAM;gBAAC;gBAAG;aAAa,EAAES;SACjC;IACH,GAAG;QAACA;QAAWO;KAAW;IAE1B,MAAMS,+BAA+BjC,QAAQ;QAC3C,IAAI,CAACsB,eAAe,CAACC,cAAc,CAACC,YAAY;YAC9C,OAAO;QACT;QAEA,OAAOnB,QAAQ4B,4BAA4B,CAAC;YAC1ChB,WAAWL,cAAcK;YACzBC,QAAQQ;YACRF;YACAU,aAAaZ,YAAYa,UAAU;YACnCC,aAAad,YAAYe,YAAY;YACrCd;QACF;IACF,GAAG;QAACN;QAAWS;QAAkBF;QAAYF;QAAaC;KAAW;IAErE,MAAMe,iBAAiBtC,QAAQ;QAC7B,OAAOK,QAAQiC,cAAc,CAAC;YAC5BP;YACAE;QACF;IACF,GAAG;QAACF;QAAiBE;KAA6B;IAElD,MAAMM,mBAAmBvC,QAAQ;QAC/B,OAAOK,QAAQkC,gBAAgB,CAAC;YAC9BC,aAAaf,MAAMgB,WAAW;YAC9BC,iBAAiBxC,0BAA0Be;QAC7C;IACF,GAAG;QAACQ,MAAMgB;QAASvC,0BAA0Be;KAAW;IAExD,OAAO;QACLc,iBAAiBA,gBAAgBY,eAAe,CAAC3B,IAAI4B,QAAQ;QAC7DN,gBAAgBA,eAAeK,eAAe,CAAC3B,IAAI4B,QAAQ;QAC3DZ,YAAYA,WAAWW,eAAe,CAAC3B,IAAI4B,QAAQ;QACnDL;QACAM,cAAc3C,0BAA0Be;QAExCK;QAEA,UAAU;QACVL,WAAWL,cAAcK;IAC3B;AACF,EAAE"}
1
+ {"version":3,"sources":["../../src/orderly/useCollateral.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport {\n pathOr_unsettledPnLPathOr,\n usePositionStream,\n} from \"./usePositionStream/usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { account } from \"@orderly.network/perp\";\nimport { type API, OrderStatus } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { zero } from \"@orderly.network/utils\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useHoldingStream } from \"./useHoldingStream\";\nimport { useOrderStream } from \"./useOrderStream/useOrderStream\";\n\nexport type CollateralOutputs = {\n totalCollateral: number;\n freeCollateral: number;\n totalValue: number;\n availableBalance: number;\n unsettledPnL: number;\n\n positions: API.Position[];\n accountInfo?: API.AccountInfo;\n};\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\nconst totalCollateralPath = pathOr(0, [0, \"totalCollateral\"]);\n\nexport const useCollateral = (\n options: {\n /** decimal precision */\n dp: number;\n } = { dp: 6 }\n): CollateralOutputs => {\n const { dp } = options;\n const positions = usePositionStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const { usdc } = useHoldingStream();\n\n const filterAlgoOrders =\n orders?.filter((item) => item.algo_order_id === undefined) ?? [];\n\n // const { data: holding } = usePrivateQuery<API.Holding[]>(\n // \"/v1/client/holding\",\n // {\n // formatter: (data) => {\n // return data.holding;\n // },\n // }\n // );\n\n const [totalCollateral, totalValue] = useMemo(() => {\n return [\n pathOr(zero, [0, \"totalCollateral\"], positions),\n pathOr(zero, [0, \"totalValue\"], positions),\n ];\n }, [positions, markPrices]);\n\n const totalInitialMarginWithOrders = useMemo(() => {\n if (!accountInfo || !symbolInfo || !markPrices) {\n return 0;\n }\n\n return account.totalInitialMarginWithOrders({\n positions: positionsPath(positions),\n orders: filterAlgoOrders,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n symbolInfo,\n });\n }, [positions, filterAlgoOrders, markPrices, accountInfo, symbolInfo]);\n\n const freeCollateral = useMemo(() => {\n return account.freeCollateral({\n totalCollateral,\n totalInitialMarginWithOrders,\n });\n }, [totalCollateral, totalInitialMarginWithOrders]);\n\n const availableBalance = useMemo(() => {\n return account.availableBalance({\n USDCHolding: usdc?.holding ?? 0,\n unsettlementPnL: pathOr_unsettledPnLPathOr(positions),\n });\n }, [usdc?.holding, pathOr_unsettledPnLPathOr(positions)]);\n\n return {\n totalCollateral: totalCollateral.toDecimalPlaces(dp).toNumber(),\n freeCollateral: freeCollateral.toDecimalPlaces(dp).toNumber(),\n totalValue: totalValue.toDecimalPlaces(dp).toNumber(),\n availableBalance,\n unsettledPnL: pathOr_unsettledPnLPathOr(positions),\n\n accountInfo,\n\n // @hidden\n positions: positionsPath(positions),\n };\n};\n"],"names":["useMemo","usePrivateQuery","pathOr_unsettledPnLPathOr","usePositionStream","pathOr","account","OrderStatus","useSymbolsInfo","zero","useMarkPricesStream","useHoldingStream","useOrderStream","positionsPath","totalCollateralPath","useCollateral","options","dp","positions","orders","status","NEW","data","accountInfo","symbolInfo","markPrices","usdc","filterAlgoOrders","filter","item","algo_order_id","undefined","totalCollateral","totalValue","totalInitialMarginWithOrders","IMR_Factors","imr_factor","maxLeverage","max_leverage","freeCollateral","availableBalance","USDCHolding","holding","unsettlementPnL","toDecimalPlaces","toNumber","unsettledPnL"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SACEC,yBAAyB,EACzBC,iBAAiB,QACZ,wCAAwC;AAC/C,SAASC,MAAM,QAAQ,QAAQ;AAC/B,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAAmBC,WAAW,QAAQ,yBAAyB;AAC/D,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAASC,cAAc,QAAQ,kCAAkC;AAajE,MAAMC,gBAAgBR,OAAO,EAAE,EAAE;IAAC;IAAG;CAAO;AAC5C,MAAMS,sBAAsBT,OAAO,GAAG;IAAC;IAAG;CAAkB;AAE5D,OAAO,MAAMU,gBAAgB,CAC3BC,UAGI;IAAEC,IAAI;AAAE,CAAC;IAEb,MAAM,EAAEA,EAAE,EAAE,GAAGD;IACf,MAAME,YAAYd;IAElB,MAAM,CAACe,OAAO,GAAGP,eAAe;QAAEQ,QAAQb,YAAYc,GAAG;IAAC;IAE1D,MAAM,EAAEC,MAAMC,WAAW,EAAE,GACzBrB,gBAAiC;IAEnC,MAAMsB,aAAahB;IAEnB,MAAM,EAAEc,MAAMG,UAAU,EAAE,GAAGf;IAE7B,MAAM,EAAEgB,IAAI,EAAE,GAAGf;IAEjB,MAAMgB,mBACJR,QAAQS,OAAO,CAACC,OAASA,KAAKC,aAAa,KAAKC,cAAc,EAAE;IAElE,4DAA4D;IAC5D,0BAA0B;IAC1B,MAAM;IACN,6BAA6B;IAC7B,6BAA6B;IAC7B,SAAS;IACT,MAAM;IACN,KAAK;IAEL,MAAM,CAACC,iBAAiBC,WAAW,GAAGhC,QAAQ;QAC5C,OAAO;YACLI,OAAOI,MAAM;gBAAC;gBAAG;aAAkB,EAAES;YACrCb,OAAOI,MAAM;gBAAC;gBAAG;aAAa,EAAES;SACjC;IACH,GAAG;QAACA;QAAWO;KAAW;IAE1B,MAAMS,+BAA+BjC,QAAQ;QAC3C,IAAI,CAACsB,eAAe,CAACC,cAAc,CAACC,YAAY;YAC9C,OAAO;QACT;QAEA,OAAOnB,QAAQ4B,4BAA4B,CAAC;YAC1ChB,WAAWL,cAAcK;YACzBC,QAAQQ;YACRF;YACAU,aAAaZ,YAAYa,UAAU;YACnCC,aAAad,YAAYe,YAAY;YACrCd;QACF;IACF,GAAG;QAACN;QAAWS;QAAkBF;QAAYF;QAAaC;KAAW;IAErE,MAAMe,iBAAiBtC,QAAQ;QAC7B,OAAOK,QAAQiC,cAAc,CAAC;YAC5BP;YACAE;QACF;IACF,GAAG;QAACF;QAAiBE;KAA6B;IAElD,MAAMM,mBAAmBvC,QAAQ;QAC/B,OAAOK,QAAQkC,gBAAgB,CAAC;YAC9BC,aAAaf,MAAMgB,WAAW;YAC9BC,iBAAiBxC,0BAA0Be;QAC7C;IACF,GAAG;QAACQ,MAAMgB;QAASvC,0BAA0Be;KAAW;IAExD,OAAO;QACLc,iBAAiBA,gBAAgBY,eAAe,CAAC3B,IAAI4B,QAAQ;QAC7DN,gBAAgBA,eAAeK,eAAe,CAAC3B,IAAI4B,QAAQ;QAC3DZ,YAAYA,WAAWW,eAAe,CAAC3B,IAAI4B,QAAQ;QACnDL;QACAM,cAAc3C,0BAA0Be;QAExCK;QAEA,UAAU;QACVL,WAAWL,cAAcK;IAC3B;AACF,EAAE"}
@@ -1,6 +1,6 @@
1
1
  import { useMemo } from "react";
2
2
  import { account } from "@orderly.network/perp";
3
- import { usePositionStream } from "./usePositionStream";
3
+ import { usePositionStream } from "./usePositionStream/usePositionStream";
4
4
  import { useMarkPricesStream } from "./useMarkPricesStream";
5
5
  import { useCollateral } from "./useCollateral";
6
6
  import { zero } from "@orderly.network/utils";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/useMarginRatio.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { usePositionStream } from \"./usePositionStream\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useCollateral } from \"./useCollateral\";\nimport { zero } from \"@orderly.network/utils\";\n\nexport type MarginRatioReturn = {\n // Margin Ratio\n marginRatio: number;\n // Current Leverage\n currentLeverage: number;\n // account margin ratio, if user has no position, return null\n mmr: number | null;\n};\n\nexport const useMarginRatio = (): MarginRatioReturn => {\n const [{ rows, aggregated }] = usePositionStream();\n const { data: markPrices } = useMarkPricesStream();\n\n const { totalCollateral } = useCollateral();\n const marginRatio = useMemo(() => {\n if (!rows || !markPrices || !totalCollateral || rows.length === 0) {\n return 0;\n }\n\n const ratio = account.totalMarginRatio({\n totalCollateral: totalCollateral,\n markPrices: markPrices,\n positions: rows ?? [],\n });\n return ratio;\n }, [rows, markPrices, totalCollateral]);\n\n const currentLeverage = useMemo(() => {\n return account.currentLeverage(marginRatio);\n }, [marginRatio]);\n\n // MMR\n const mmr = useMemo<number | null>(() => {\n if (!rows || rows.length <= 0) return null;\n let positionsMM = zero;\n // const positionsNotional = positions.totalNotional(rows);\n\n for (let index = 0; index < rows.length; index++) {\n const item = rows[index];\n positionsMM = positionsMM.add(item.mm);\n }\n\n return account.MMR({\n positionsMMR: positionsMM.toNumber(),\n positionsNotional: aggregated.notional,\n });\n }, [rows, aggregated]);\n\n return { marginRatio, currentLeverage, mmr };\n};\n"],"names":["useMemo","account","usePositionStream","useMarkPricesStream","useCollateral","zero","useMarginRatio","rows","aggregated","data","markPrices","totalCollateral","marginRatio","length","ratio","totalMarginRatio","positions","currentLeverage","mmr","positionsMM","index","item","add","mm","MMR","positionsMMR","toNumber","positionsNotional","notional"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,OAAO,QAAmB,wBAAwB;AAC3D,SAASC,iBAAiB,QAAQ,sBAAsB;AACxD,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,IAAI,QAAQ,yBAAyB;AAW9C,OAAO,MAAMC,iBAAiB;IAC5B,MAAM,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE,CAAC,GAAGN;IAC/B,MAAM,EAAEO,MAAMC,UAAU,EAAE,GAAGP;IAE7B,MAAM,EAAEQ,eAAe,EAAE,GAAGP;IAC5B,MAAMQ,cAAcZ,QAAQ;QAC1B,IAAI,CAACO,QAAQ,CAACG,cAAc,CAACC,mBAAmBJ,KAAKM,MAAM,KAAK,GAAG;YACjE,OAAO;QACT;QAEA,MAAMC,QAAQb,QAAQc,gBAAgB,CAAC;YACrCJ,iBAAiBA;YACjBD,YAAYA;YACZM,WAAWT,QAAQ,EAAE;QACvB;QACA,OAAOO;IACT,GAAG;QAACP;QAAMG;QAAYC;KAAgB;IAEtC,MAAMM,kBAAkBjB,QAAQ;QAC9B,OAAOC,QAAQgB,eAAe,CAACL;IACjC,GAAG;QAACA;KAAY;IAEhB,MAAM;IACN,MAAMM,MAAMlB,QAAuB;QACjC,IAAI,CAACO,QAAQA,KAAKM,MAAM,IAAI,GAAG,OAAO;QACtC,IAAIM,cAAcd;QAClB,2DAA2D;QAE3D,IAAK,IAAIe,QAAQ,GAAGA,QAAQb,KAAKM,MAAM,EAAEO,QAAS;YAChD,MAAMC,OAAOd,IAAI,CAACa,MAAM;YACxBD,cAAcA,YAAYG,GAAG,CAACD,KAAKE,EAAE;QACvC;QAEA,OAAOtB,QAAQuB,GAAG,CAAC;YACjBC,cAAcN,YAAYO,QAAQ;YAClCC,mBAAmBnB,WAAWoB,QAAQ;QACxC;IACF,GAAG;QAACrB;QAAMC;KAAW;IAErB,OAAO;QAAEI;QAAaK;QAAiBC;IAAI;AAC7C,EAAE"}
1
+ {"version":3,"sources":["../../src/orderly/useMarginRatio.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useCollateral } from \"./useCollateral\";\nimport { zero } from \"@orderly.network/utils\";\n\nexport type MarginRatioReturn = {\n // Margin Ratio\n marginRatio: number;\n // Current Leverage\n currentLeverage: number;\n // account margin ratio, if user has no position, return null\n mmr: number | null;\n};\n\nexport const useMarginRatio = (): MarginRatioReturn => {\n const [{ rows, aggregated }] = usePositionStream();\n const { data: markPrices } = useMarkPricesStream();\n\n const { totalCollateral } = useCollateral();\n const marginRatio = useMemo(() => {\n if (!rows || !markPrices || !totalCollateral || rows.length === 0) {\n return 0;\n }\n\n const ratio = account.totalMarginRatio({\n totalCollateral: totalCollateral,\n markPrices: markPrices,\n positions: rows ?? [],\n });\n return ratio;\n }, [rows, markPrices, totalCollateral]);\n\n const currentLeverage = useMemo(() => {\n return account.currentLeverage(marginRatio);\n }, [marginRatio]);\n\n // MMR\n const mmr = useMemo<number | null>(() => {\n if (!rows || rows.length <= 0) return null;\n let positionsMM = zero;\n // const positionsNotional = positions.totalNotional(rows);\n\n for (let index = 0; index < rows.length; index++) {\n const item = rows[index];\n positionsMM = positionsMM.add(item.mm);\n }\n\n return account.MMR({\n positionsMMR: positionsMM.toNumber(),\n positionsNotional: aggregated.notional,\n });\n }, [rows, aggregated]);\n\n return { marginRatio, currentLeverage, mmr };\n};\n"],"names":["useMemo","account","usePositionStream","useMarkPricesStream","useCollateral","zero","useMarginRatio","rows","aggregated","data","markPrices","totalCollateral","marginRatio","length","ratio","totalMarginRatio","positions","currentLeverage","mmr","positionsMM","index","item","add","mm","MMR","positionsMMR","toNumber","positionsNotional","notional"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,OAAO,QAAmB,wBAAwB;AAC3D,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,IAAI,QAAQ,yBAAyB;AAW9C,OAAO,MAAMC,iBAAiB;IAC5B,MAAM,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAE,CAAC,GAAGN;IAC/B,MAAM,EAAEO,MAAMC,UAAU,EAAE,GAAGP;IAE7B,MAAM,EAAEQ,eAAe,EAAE,GAAGP;IAC5B,MAAMQ,cAAcZ,QAAQ;QAC1B,IAAI,CAACO,QAAQ,CAACG,cAAc,CAACC,mBAAmBJ,KAAKM,MAAM,KAAK,GAAG;YACjE,OAAO;QACT;QAEA,MAAMC,QAAQb,QAAQc,gBAAgB,CAAC;YACrCJ,iBAAiBA;YACjBD,YAAYA;YACZM,WAAWT,QAAQ,EAAE;QACvB;QACA,OAAOO;IACT,GAAG;QAACP;QAAMG;QAAYC;KAAgB;IAEtC,MAAMM,kBAAkBjB,QAAQ;QAC9B,OAAOC,QAAQgB,eAAe,CAACL;IACjC,GAAG;QAACA;KAAY;IAEhB,MAAM;IACN,MAAMM,MAAMlB,QAAuB;QACjC,IAAI,CAACO,QAAQA,KAAKM,MAAM,IAAI,GAAG,OAAO;QACtC,IAAIM,cAAcd;QAClB,2DAA2D;QAE3D,IAAK,IAAIe,QAAQ,GAAGA,QAAQb,KAAKM,MAAM,EAAEO,QAAS;YAChD,MAAMC,OAAOd,IAAI,CAACa,MAAM;YACxBD,cAAcA,YAAYG,GAAG,CAACD,KAAKE,EAAE;QACvC;QAEA,OAAOtB,QAAQuB,GAAG,CAAC;YACjBC,cAAcN,YAAYO,QAAQ;YAClCC,mBAAmBnB,WAAWoB,QAAQ;QACxC;IACF,GAAG;QAACrB;QAAMC;KAAW;IAErB,OAAO;QAAEI;QAAaK;QAAiBC;IAAI;AAC7C,EAAE"}
@@ -5,9 +5,9 @@ import { useMarkPricesStream } from "./useMarkPricesStream";
5
5
  import { account } from "@orderly.network/perp";
6
6
  import { useCollateral } from "./useCollateral";
7
7
  import { usePrivateQuery } from "../usePrivateQuery";
8
- import { usePositionStream } from "./usePositionStream";
8
+ import { usePositionStream } from "./usePositionStream/usePositionStream";
9
9
  import { pathOr } from "ramda";
10
- import { useOrderStream } from "./useOrderStream";
10
+ import { useOrderStream } from "./useOrderStream/useOrderStream";
11
11
  const positionsPath = pathOr([], [
12
12
  0,
13
13
  "rows"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/useMaxQty.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { type API, OrderSide, OrderStatus } from \"@orderly.network/types\";\n\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\n\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { account } from \"@orderly.network/perp\";\nimport { useCollateral } from \"./useCollateral\";\n\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport { usePositionStream } from \"./usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { useOrderStream } from \"./useOrderStream\";\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\n\n/**\n * @param symbol\n * @param side\n * @param reduceOnly\n * @returns the maximum quantity available for trading in USD\n */\nexport const useMaxQty = (\n symbol: string,\n side: OrderSide,\n reduceOnly: boolean = false\n) => {\n const positionsData = usePositionStream();\n\n // const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { totalCollateral } = useCollateral();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const maxQty = useMemo(() => {\n if (!symbol) return 0;\n\n const positions = positionsPath(positionsData);\n\n const positionQty = account.getQtyFromPositions(positions, symbol);\n\n if (reduceOnly) {\n if (positionQty > 0) {\n if (side === OrderSide.BUY) {\n return 0;\n } else {\n return Math.abs(positionQty);\n }\n }\n\n if (positionQty < 0) {\n if (side === OrderSide.BUY) {\n return Math.abs(positionQty);\n } else {\n return 0;\n }\n }\n\n return 0;\n }\n\n if (!markPrices || !markPrices[symbol] || !orders || !accountInfo) return 0;\n\n const getSymbolInfo = symbolInfo[symbol];\n\n const filterAlgoOrders = orders.filter(\n (item) => item.algo_order_id === undefined\n );\n\n // current symbol buy order quantity\n const buyOrdersQty = account.getQtyFromOrdersBySide(\n filterAlgoOrders,\n symbol,\n OrderSide.BUY\n );\n // current symbol sell order quantity\n const sellOrdersQty = account.getQtyFromOrdersBySide(\n filterAlgoOrders,\n symbol,\n OrderSide.SELL\n );\n\n const otherPositions = positions.filter(\n (item: API.Position) => item.symbol !== symbol\n );\n\n const otherOrders = filterAlgoOrders.filter(\n (item: API.Order) => item.symbol !== symbol\n );\n\n const otherIMs = account.otherIMs({\n orders: otherOrders,\n positions: otherPositions,\n symbolInfo,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n });\n\n return account.maxQty(side, {\n markPrice: markPrices[symbol],\n symbol,\n baseMaxQty: getSymbolInfo(\"base_max\"),\n totalCollateral,\n maxLeverage: accountInfo.max_leverage,\n takerFeeRate: accountInfo.futures_taker_fee_rate,\n baseIMR: getSymbolInfo(\"base_imr\"),\n otherIMs,\n positionQty,\n buyOrdersQty,\n sellOrdersQty,\n IMR_Factor: accountInfo.imr_factor[symbol],\n });\n }, [\n orders,\n positionsData,\n markPrices,\n accountInfo,\n symbolInfo,\n symbol,\n side,\n totalCollateral,\n reduceOnly,\n ]);\n\n // debugPrint({\n // maxQty,\n // totalCollateral,\n // side,\n // // reduceOnly,\n // orders: orders?.map((o) => o.quantity),\n // // positionsData,\n // // markPrices,\n // // accountInfo,\n // // symbolInfo,\n // // symbol,\n // });\n // console.log(\"maxQty\", maxQty);\n\n return Math.max(maxQty, 0) as number;\n};\n"],"names":["useMemo","OrderSide","OrderStatus","useSymbolsInfo","useMarkPricesStream","account","useCollateral","usePrivateQuery","usePositionStream","pathOr","useOrderStream","positionsPath","useMaxQty","symbol","side","reduceOnly","positionsData","data","accountInfo","symbolInfo","totalCollateral","markPrices","orders","status","NEW","maxQty","positions","positionQty","getQtyFromPositions","BUY","Math","abs","getSymbolInfo","filterAlgoOrders","filter","item","algo_order_id","undefined","buyOrdersQty","getQtyFromOrdersBySide","sellOrdersQty","SELL","otherPositions","otherOrders","otherIMs","IMR_Factors","imr_factor","maxLeverage","max_leverage","markPrice","baseMaxQty","takerFeeRate","futures_taker_fee_rate","baseIMR","IMR_Factor","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/orderly/useMaxQty.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { type API, OrderSide, OrderStatus } from \"@orderly.network/types\";\n\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\n\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { account } from \"@orderly.network/perp\";\nimport { useCollateral } from \"./useCollateral\";\n\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport { usePositionStream } from \"./usePositionStream/usePositionStream\";\nimport { pathOr } from \"ramda\";\nimport { useOrderStream } from \"./useOrderStream/useOrderStream\";\n\nconst positionsPath = pathOr([], [0, \"rows\"]);\n\n/**\n * @param symbol\n * @param side\n * @param reduceOnly\n * @returns the maximum quantity available for trading in USD\n */\nexport const useMaxQty = (\n symbol: string,\n side: OrderSide,\n reduceOnly: boolean = false\n) => {\n const positionsData = usePositionStream();\n\n // const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const symbolInfo = useSymbolsInfo();\n\n const { totalCollateral } = useCollateral();\n\n const { data: markPrices } = useMarkPricesStream();\n\n const [orders] = useOrderStream({ status: OrderStatus.NEW });\n\n const maxQty = useMemo(() => {\n if (!symbol) return 0;\n\n const positions = positionsPath(positionsData);\n\n const positionQty = account.getQtyFromPositions(positions, symbol);\n\n if (reduceOnly) {\n if (positionQty > 0) {\n if (side === OrderSide.BUY) {\n return 0;\n } else {\n return Math.abs(positionQty);\n }\n }\n\n if (positionQty < 0) {\n if (side === OrderSide.BUY) {\n return Math.abs(positionQty);\n } else {\n return 0;\n }\n }\n\n return 0;\n }\n\n if (!markPrices || !markPrices[symbol] || !orders || !accountInfo) return 0;\n\n const getSymbolInfo = symbolInfo[symbol];\n\n const filterAlgoOrders = orders.filter(\n (item) => item.algo_order_id === undefined\n );\n\n // current symbol buy order quantity\n const buyOrdersQty = account.getQtyFromOrdersBySide(\n filterAlgoOrders,\n symbol,\n OrderSide.BUY\n );\n // current symbol sell order quantity\n const sellOrdersQty = account.getQtyFromOrdersBySide(\n filterAlgoOrders,\n symbol,\n OrderSide.SELL\n );\n\n const otherPositions = positions.filter(\n (item: API.Position) => item.symbol !== symbol\n );\n\n const otherOrders = filterAlgoOrders.filter(\n (item: API.Order) => item.symbol !== symbol\n );\n\n const otherIMs = account.otherIMs({\n orders: otherOrders,\n positions: otherPositions,\n symbolInfo,\n markPrices,\n IMR_Factors: accountInfo.imr_factor,\n maxLeverage: accountInfo.max_leverage,\n });\n\n return account.maxQty(side, {\n markPrice: markPrices[symbol],\n symbol,\n baseMaxQty: getSymbolInfo(\"base_max\"),\n totalCollateral,\n maxLeverage: accountInfo.max_leverage,\n takerFeeRate: accountInfo.futures_taker_fee_rate,\n baseIMR: getSymbolInfo(\"base_imr\"),\n otherIMs,\n positionQty,\n buyOrdersQty,\n sellOrdersQty,\n IMR_Factor: accountInfo.imr_factor[symbol],\n });\n }, [\n orders,\n positionsData,\n markPrices,\n accountInfo,\n symbolInfo,\n symbol,\n side,\n totalCollateral,\n reduceOnly,\n ]);\n\n // debugPrint({\n // maxQty,\n // totalCollateral,\n // side,\n // // reduceOnly,\n // orders: orders?.map((o) => o.quantity),\n // // positionsData,\n // // markPrices,\n // // accountInfo,\n // // symbolInfo,\n // // symbol,\n // });\n // console.log(\"maxQty\", maxQty);\n\n return Math.max(maxQty, 0) as number;\n};\n"],"names":["useMemo","OrderSide","OrderStatus","useSymbolsInfo","useMarkPricesStream","account","useCollateral","usePrivateQuery","usePositionStream","pathOr","useOrderStream","positionsPath","useMaxQty","symbol","side","reduceOnly","positionsData","data","accountInfo","symbolInfo","totalCollateral","markPrices","orders","status","NEW","maxQty","positions","positionQty","getQtyFromPositions","BUY","Math","abs","getSymbolInfo","filterAlgoOrders","filter","item","algo_order_id","undefined","buyOrdersQty","getQtyFromOrdersBySide","sellOrdersQty","SELL","otherPositions","otherOrders","otherIMs","IMR_Factors","imr_factor","maxLeverage","max_leverage","markPrice","baseMaxQty","takerFeeRate","futures_taker_fee_rate","baseIMR","IMR_Factor","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOrderEntry.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderEntry.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,WAAW,EACX,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAkBhC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,WAAW,KACd;SAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EACF;SAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;KAAE,GAChE,IAAI,GACJ,SAAS,CAAC;IACd,KAAK,EAAE;SAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,OAAO;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAEnC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,EAAE;QACN,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAC5B,KAAK,EAAE,MAAM,WAAW,EACxB,KAAK,EAAE,GAAG,KACP,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;KAGlD,CAAC;IAEF,SAAS,EAAE,sBAAsB,CAAC;IAClC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAChC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC,CACpD,GACC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,mBAAmB,CAAC;AACvB;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAAC"}
1
+ {"version":3,"file":"useOrderEntry.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderEntry.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,WAAW,EACX,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAoBhC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,CACT,IAAI,EAAE,WAAW,KACd;SAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EACF;SAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE;KAAE,GAChE,IAAI,GACJ,SAAS,CAAC;IACd,KAAK,EAAE;SAAG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE,OAAO;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAEnC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,EAAE;QACN,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAC5B,KAAK,EAAE,MAAM,WAAW,EACxB,KAAK,EAAE,GAAG,KACP,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1B,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;KAGlD,CAAC;IAEF,SAAS,EAAE,sBAAsB,CAAC;IAClC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAChC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC,CACpD,GACC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,mBAAmB,CAAC;AACvB;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAAC"}
@@ -3,15 +3,16 @@ import { OrderSide, OrderType, SDKError } from "@orderly.network/types";
3
3
  import { useSymbolsInfo } from "./useSymbolsInfo";
4
4
  import { Decimal, getPrecisionByNumber } from "@orderly.network/utils";
5
5
  import { useMutation } from "../useMutation";
6
- import { compose, head, includes, omit, pick } from "ramda";
6
+ import { compose, head, omit, pick } from "ramda";
7
7
  import { baseInputHandle, getCalculateHandler, orderEntityFormatHandle } from "../utils/orderEntryHelper";
8
8
  import { useCollateral } from "./useCollateral";
9
9
  import { useMaxQty } from "./useMaxQty";
10
- import { OrderFactory, availableOrderTypes } from "../utils/createOrder";
10
+ // import { availableOrderTypes } from "../utils/createOrder";
11
11
  import { useMarkPrice } from "./useMarkPrice";
12
12
  import { order as orderUtils } from "@orderly.network/perp";
13
13
  import { useEventEmitter } from "../useEventEmitter";
14
14
  import { useDebouncedCallback } from "use-debounce";
15
+ import { OrderFactory } from "../services/orderCreator/factory";
15
16
  export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
16
17
  // if symbolOrOrder is string, then it's deprecated
17
18
  let isNewVersion = false;
@@ -206,8 +207,8 @@ export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options)
206
207
  quoteDP,
207
208
  baseDP
208
209
  ]);
209
- const isStopOrder = parsedData?.order_type === OrderType.STOP_LIMIT || parsedData?.order_type === OrderType.STOP_MARKET;
210
- const [doCreateOrder, { isMutating }] = useMutation(isStopOrder ? "/v1/algo/order" : "/v1/order");
210
+ const isAlgoOrder = parsedData?.order_type === OrderType.STOP_LIMIT || parsedData?.order_type === OrderType.STOP_MARKET || parsedData?.order_type === OrderType.CLOSE_POSITION;
211
+ const [doCreateOrder, { isMutating }] = useMutation(isAlgoOrder ? "/v1/algo/order" : "/v1/order");
211
212
  // const maxQty = 3;
212
213
  const createOrder = (values)=>{
213
214
  if (!values.symbol) {
@@ -216,10 +217,11 @@ export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options)
216
217
  if (!values.side) {
217
218
  throw new SDKError("side is error");
218
219
  }
219
- if (!values || typeof values.order_type === "undefined" || !includes(values.order_type, availableOrderTypes)) {
220
+ if (!values || typeof values.order_type === "undefined") {
220
221
  throw new SDKError("order_type is error");
221
222
  }
222
- const orderCreator = OrderFactory.create(values.order_type_ext ? values.order_type_ext : values.order_type);
223
+ const orderCreator = OrderFactory.create(// @ts-ignore
224
+ values.order_type_ext ? values.order_type_ext : values.order_type);
223
225
  if (!orderCreator) {
224
226
  return Promise.reject(new SDKError("orderCreator is null"));
225
227
  }
@@ -256,12 +258,12 @@ export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options)
256
258
  // resolve(res);
257
259
  if (res.success) {
258
260
  // TODO: remove when the WS service is fixed
259
- if (Array.isArray(res.data.rows)) {
260
- ee.emit("algoOrder:cache", {
261
- ...res.data.rows[0],
262
- trigger_price: data.trigger_price
263
- });
264
- }
261
+ // if (Array.isArray(res.data.rows)) {
262
+ // ee.emit("algoOrder:cache", {
263
+ // ...res.data.rows[0],
264
+ // trigger_price: data.trigger_price,
265
+ // });
266
+ // }
265
267
  resolve(res.data);
266
268
  } else {
267
269
  reject(res);
@@ -310,6 +312,7 @@ export function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options)
310
312
  ]);
311
313
  // const estLiqPrice = useMemo(() => {}, []);
312
314
  const validator = (values)=>{
315
+ // @ts-ignore
313
316
  const creator = OrderFactory.create(values.order_type);
314
317
  return creator?.validate(values, {
315
318
  symbol: symbolInfo[symbol](),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/orderly/useOrderEntry.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { \n API,\n OrderEntity,\n OrderSide,\n OrderType,\n SDKError,\n} from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { Decimal, getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { useMutation } from \"../useMutation\";\nimport { compose, head, includes, omit, pick } from \"ramda\";\nimport {\n baseInputHandle,\n getCalculateHandler,\n orderEntityFormatHandle,\n} from \"../utils/orderEntryHelper\";\nimport { useCollateral } from \"./useCollateral\";\nimport { useMaxQty } from \"./useMaxQty\";\nimport { OrderFactory, availableOrderTypes } from \"../utils/createOrder\";\nimport { useMarkPrice } from \"./useMarkPrice\";\nimport { order as orderUtils } from \"@orderly.network/perp\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { useDebouncedCallback } from \"use-debounce\";\n\nexport type UseOrderEntryOptions = {\n commify?: boolean;\n // Whether to observe the orderbook, if it is a limit order, the orderbook will automatically calculate the est. liq. price when it is updated.\n watchOrderbook?: boolean;\n validate?: (\n data: OrderEntity\n ) => { [P in keyof OrderEntity]?: string } | null | undefined;\n};\n\nexport type UseOrderEntryMetaState = {\n errors:\n | { [P in keyof OrderEntity]?: { type: string; message: string } }\n | null\n | undefined;\n dirty: { [P in keyof OrderEntity]?: boolean } | null | undefined;\n submitted: boolean;\n};\n\nexport type UseOrderEntryReturn = {\n // Maximum open position\n maxQty: number;\n freeCollateral: number;\n markPrice: number;\n estLiqPrice?: number | null;\n estLeverage?: number | null;\n //@Deprecated\n onSubmit: (order: OrderEntity) => Promise<any>;\n submit: () => Promise<OrderEntity>;\n // order: data,\n submitting: boolean;\n formattedOrder: Partial<OrderEntity>;\n helper: {\n calculate: (\n values: Partial<OrderEntity>,\n field: keyof OrderEntity,\n value: any\n ) => Partial<OrderEntity>;\n validator: (values: Partial<OrderEntity>) => any;\n // clearErrors: () => void;\n // setValues: (values: Partial<OrderEntity>) => void;\n };\n // formState: any;\n metaState: UseOrderEntryMetaState;\n symbolConfig: API.SymbolExt;\n};\n\nexport type OrderParams = Required<\n Pick<OrderEntity, \"side\" | \"order_type\" | \"symbol\">\n> &\n Partial<Omit<OrderEntity, \"side\" | \"symbol\" | \"order_type\">>;\n\n/**\n * Create Order\n * @example\n * ```tsx\n * import { useOrderEntry } from \"@orderly.network/hooks\";\n * import {OrderSide, OrderType} from '@orderly.network/types';\n *\n * const { formattedOrder, onSubmit, helper } = useOrderEntry({\n * symbol: \"PERP_ETH_USDC\",\n * side: OrderSide.BUY,\n * order_type: OrderType.LIMIT,\n * order_price: 10000,\n * order_quantity: 1,\n * },{\n * // **Note:** it's required\n * watchOrderbook: true,\n * });\n * ```\n */\nexport function useOrderEntry(\n order: OrderParams,\n options?: UseOrderEntryOptions\n): UseOrderEntryReturn;\n/**\n * @deprecated\n */\nexport function useOrderEntry(\n symbol: string,\n side: OrderSide,\n reduceOnly: boolean\n): UseOrderEntryReturn;\nexport function useOrderEntry(\n symbolOrOrder: string | OrderParams,\n sideOrOptions?: OrderSide | UseOrderEntryOptions,\n reduceOnly?: boolean,\n options?: UseOrderEntryOptions\n): UseOrderEntryReturn {\n // if symbolOrOrder is string, then it's deprecated\n let isNewVersion = false;\n if (typeof symbolOrOrder === \"object\") {\n isNewVersion = true;\n\n if (!symbolOrOrder.symbol) {\n throw new SDKError(\"symbol is required\");\n }\n\n if (!symbolOrOrder.side) {\n throw new SDKError(\"Order side is required\");\n }\n\n if (!symbolOrOrder.order_type) {\n throw new SDKError(\"order_type is required\");\n }\n }\n\n const prevOrderData = useRef<Partial<OrderEntity> | null>(null);\n // Cache data from the last calculate\n const orderDataCache = useRef<Partial<OrderEntity> | null>(null);\n //\n const notSupportData = useRef<Partial<OrderEntity>>({});\n\n const [errors, setErrors] = useState<any>(null);\n\n const ee = useEventEmitter();\n\n const fieldDirty = useRef<{ [K in keyof OrderEntity]?: boolean }>({});\n const submitted = useRef<boolean>(false);\n const askAndBid = useRef<number[]>([]); // 0: ask0, 1: bid0\n\n const onOrderbookUpdate = useDebouncedCallback((data: number[]) => {\n askAndBid.current = data;\n }, 200);\n\n const { freeCollateral, totalCollateral, positions, accountInfo } =\n useCollateral();\n\n const symbolInfo = useSymbolsInfo();\n // const tokenInfo = useTokenInfo();\n\n const symbol = useMemo(() => {\n if (typeof symbolOrOrder === \"string\") {\n return symbolOrOrder;\n }\n return symbolOrOrder.symbol!;\n }, [symbolOrOrder]);\n\n const optionsValue = useMemo(() => {\n if (typeof sideOrOptions === \"object\") {\n return sideOrOptions;\n }\n\n return options;\n }, [sideOrOptions]);\n\n const isReduceOnly = useMemo<boolean>(() => {\n if (typeof reduceOnly === \"boolean\") {\n return reduceOnly;\n }\n\n if (typeof symbolOrOrder === \"object\") {\n return !!symbolOrOrder.reduce_only;\n }\n\n return false;\n }, [symbolOrOrder, reduceOnly]);\n\n const sideValue = useMemo(() => {\n if (typeof symbolOrOrder === \"object\") {\n return symbolOrOrder.side;\n }\n\n // if (typeof sideOrOptions === \"string\") {\n return sideOrOptions as OrderSide;\n // }\n }, [symbolOrOrder, sideOrOptions]);\n\n const baseDP = useMemo(\n () => getPrecisionByNumber(symbolInfo[symbol](\"base_tick\", 0)),\n [symbolInfo]\n );\n const quoteDP = useMemo(() => {\n return getPrecisionByNumber(symbolInfo[symbol](\"quote_tick\", 0));\n }, [symbolInfo]);\n\n const baseIMR = useMemo(\n () => symbolInfo[symbol](\"base_imr\", 0),\n [symbolInfo]\n );\n const baseMMR = useMemo(\n () => symbolInfo[symbol](\"base_mmr\", 0),\n [symbolInfo]\n );\n\n const { data: markPrice } = useMarkPrice(symbol);\n // const markPrice = 1;\n\n const diffOrderEntry = (\n prev: Partial<OrderParams>,\n current: Partial<OrderParams>\n ): { key: keyof OrderParams; value: any; preValue: any } | null => {\n if (!prev) return null;\n let key, value, preValue;\n const keys = Object.keys(current) as (keyof OrderParams)[];\n\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n\n let preveValue = prev[k];\n let currentValue = current[k];\n\n if (\n typeof preveValue === \"undefined\" &&\n typeof currentValue === \"undefined\"\n )\n continue;\n\n // if (k === \"order_quantity\") {\n // preveValue = Number(preveValue);\n // currentValue = Number(currentValue);\n // }\n\n if (preveValue !== currentValue) {\n key = k;\n value = currentValue;\n preValue = preveValue;\n break;\n }\n }\n\n if (!key) return null;\n\n return { key, value, preValue };\n };\n\n const maxQty = useMaxQty(symbol, sideValue, isReduceOnly);\n\n const parseString2Number = (\n order: OrderParams & Record<string, any>,\n key: keyof OrderParams,\n dp?: number,\n ) => {\n if (typeof order[key] !== \"string\") return;\n // fix: delete the comma then remove the forward one of the string\n // first find the difference between current value and previous value\n\n if (order[key] && (order[key] as string).startsWith(\".\")) {\n (order[key] as string) = `0${order[key]}`;\n }\n\n // order[`${key}_origin`] = order[key];\n (order[key] as string) = (order[key] as string).replace(/,/g, \"\");\n\n // format input by decimal precision\n if (dp && (order[key] as string).length > 0) {\n const hasPoint = `${order[key]}`.includes(\".\");\n const endOfPoint = `${order[key]}`.endsWith(\".\");\n const decimalPart = `${order[key]}`.split(\".\");\n if (hasPoint && !endOfPoint) {\n (order[key] as string) = `${decimalPart[0]}.${decimalPart[1].slice(0,quoteDP)}`;\n }\n }\n };\n\n // just for performance optimization\n const needParse = useMemo(() => {\n if (typeof symbolOrOrder === \"string\") {\n return null;\n }\n return pick([\n \"order_price\",\n \"side\",\n \"order_quantity\",\n \"visible_quantity\",\n \"order_type\",\n \"order_type_ext\",\n \"symbol\",\n \"total\",\n \"reduce_only\",\n \"trigger_price\",\n ])(\n //@ts-ignore\n symbolOrOrder\n );\n }, [symbolOrOrder]);\n\n const parsedData = useMemo<OrderParams | null>(() => {\n if (typeof symbolOrOrder === \"string\") {\n return null;\n }\n // clean comma\n\n if (typeof symbolOrOrder.order_quantity === \"string\") {\n parseString2Number(symbolOrOrder, \"order_quantity\");\n } else if (typeof symbolOrOrder.order_quantity === \"number\") {\n symbolOrOrder.order_quantity = new Decimal(symbolOrOrder.order_quantity)\n .toDecimalPlaces(baseDP)\n .toString();\n }\n\n if (typeof symbolOrOrder.order_price === \"string\") {\n parseString2Number(symbolOrOrder, \"order_price\", quoteDP);\n }\n\n if (typeof symbolOrOrder.total === \"string\") {\n parseString2Number(symbolOrOrder, \"total\", quoteDP);\n }\n\n if (typeof symbolOrOrder.trigger_price === \"string\") {\n parseString2Number(symbolOrOrder, \"trigger_price\", quoteDP);\n }\n\n // if (typeof symbolOrOrder.trigger_price === \"string\") {\n // symbolOrOrder.trigger_price = symbolOrOrder.trigger_price.replace(\n // /,/g,\n // \"\"\n // );\n // }\n\n return symbolOrOrder;\n }, [\n needParse?.order_price,\n needParse?.order_quantity,\n needParse?.total,\n needParse?.trigger_price,\n needParse?.order_type,\n needParse?.order_type_ext,\n needParse?.symbol,\n needParse?.reduce_only,\n needParse?.side,\n needParse?.visible_quantity,\n quoteDP,\n baseDP,\n ]);\n\n const isStopOrder =\n parsedData?.order_type === OrderType.STOP_LIMIT ||\n parsedData?.order_type === OrderType.STOP_MARKET;\n\n const [doCreateOrder, { isMutating }] = useMutation<OrderEntity, any>(\n isStopOrder ? \"/v1/algo/order\" : \"/v1/order\"\n );\n\n // const maxQty = 3;\n\n const createOrder = (values: Partial<OrderEntity>): Promise<OrderEntity> => {\n if (!values.symbol) {\n throw new SDKError(\"symbol is error\");\n }\n\n if (!values.side) {\n throw new SDKError(\"side is error\");\n }\n\n if (\n !values ||\n typeof values.order_type === \"undefined\" ||\n !includes(values.order_type, availableOrderTypes)\n ) {\n throw new SDKError(\"order_type is error\");\n }\n\n const orderCreator = OrderFactory.create(\n values.order_type_ext ? values.order_type_ext : values.order_type\n );\n\n if (!orderCreator) {\n return Promise.reject(new SDKError(\"orderCreator is null\"));\n }\n\n \n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(values, {\n symbol: symbolInfo[symbol](),\n // token: tokenInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n })\n .then((errors) => {\n submitted.current = true;\n\n if (\n errors.order_price ||\n errors.order_quantity ||\n errors.trigger_price ||\n errors.total\n ) {\n setErrors(errors);\n reject(\n errors.order_price?.message || errors.order_quantity?.message\n );\n // throw new SDKError(\n // errors.order_price?.message ||\n // errors.order_quantity?.message ||\n // \"order validation error\"\n // );\n } else {\n const data = orderCreator.create(values as OrderEntity, {\n symbol: symbolInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n });\n\n // console.log(\"------------------\", values, data);\n\n return doCreateOrder(\n omit([\"order_type_ext\"], {\n // ...values,\n // ...omit([\"order_price\"], values),\n ...data,\n })\n ).then((res) => {\n // resolve(res);\n if (res.success) {\n // TODO: remove when the WS service is fixed\n\n if (Array.isArray(res.data.rows)) {\n ee.emit(\"algoOrder:cache\", {\n ...res.data.rows[0],\n trigger_price: data.trigger_price,\n });\n }\n\n resolve(res.data);\n } else {\n reject(res);\n }\n }, reject);\n }\n });\n });\n };\n\n /**\n * submit form,validate values\n * @param values\n * @returns\n */\n const onSubmit = (values: OrderEntity) => {\n if (typeof reduceOnly === \"boolean\" && reduceOnly && !values.reduce_only) {\n return Promise.reject(\n new SDKError(\n \"The reduceOny parameter of hook does not match your order data\"\n )\n );\n }\n return createOrder({\n ...values,\n symbol,\n });\n };\n\n const submit = useCallback(() => {\n if (!parsedData) {\n throw new SDKError(\"Function is not supported, please use onSubmit()\");\n }\n return createOrder(parsedData);\n }, [parsedData]);\n\n const calculate = useCallback(\n (\n values: Partial<OrderEntity>,\n field: keyof OrderEntity,\n value: any\n ): Partial<OrderEntity> => {\n const fieldHandler = getCalculateHandler(field);\n const newValues = compose(\n head,\n orderEntityFormatHandle(baseDP, quoteDP),\n fieldHandler,\n baseInputHandle\n )([values, field, value, markPrice, { baseDP, quoteDP }]);\n\n return newValues as Partial<OrderEntity>;\n },\n [markPrice]\n );\n\n // const estLiqPrice = useMemo(() => {}, []);\n\n const validator = (values: any) => {\n const creator = OrderFactory.create(values.order_type);\n\n return creator?.validate(values, {\n symbol: symbolInfo[symbol](),\n // token: tokenInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n });\n };\n\n const formattedOrder = useMemo<Partial<OrderEntity>>(() => {\n if (!parsedData) {\n return notSupportData.current;\n }\n // prevOrderData.current = symbolOrOrder;\n\n if (!prevOrderData.current) {\n // prevOrderData.current = {\n // ...symbolOrOrder,\n // total: \"\",\n // };\n\n prevOrderData.current = parsedData;\n orderDataCache.current = {\n ...parsedData,\n total: \"\",\n };\n\n return orderDataCache.current as Partial<OrderEntity>;\n }\n\n // diff order entry\n const item = diffOrderEntry(prevOrderData.current, parsedData);\n\n // console.log(prevOrderData.current, symbolOrOrder, item);\n // console.log(item);\n\n if (!item) {\n return orderDataCache.current as Partial<OrderEntity>;\n }\n\n // set field dirty\n if (typeof parsedData.order_price !== \"undefined\") {\n fieldDirty.current.order_price = true;\n }\n if (typeof parsedData.order_quantity !== \"undefined\") {\n fieldDirty.current.order_quantity = true;\n }\n\n const values = calculate(parsedData, item.key, item.value);\n\n values.isStopOrder = values.order_type?.startsWith(\"STOP\") || false;\n\n values.total = values.total || \"\";\n\n prevOrderData.current = parsedData;\n orderDataCache.current = values;\n\n return values;\n }, [parsedData, markPrice]);\n\n /// validator order info\n useEffect(() => {\n if (!markPrice || symbolInfo.isNil) return;\n // validate order data;\n validator(formattedOrder)\n ?.then((err) => {\n setErrors(err);\n })\n .catch((err) => {});\n }, [\n formattedOrder.broker_id,\n formattedOrder.order_quantity,\n formattedOrder.total,\n formattedOrder.trigger_price,\n formattedOrder.order_type,\n markPrice,\n ]);\n\n //====== update orderbook ask0/bid0 ======\n useEffect(() => {\n if (isNewVersion) {\n if (!optionsValue?.watchOrderbook) {\n throw new SDKError(\n \"In order to calculate the estimated liquidation price, the `options.watchOrderbook` parameter must be set to true.\"\n );\n }\n } else {\n if (!optionsValue?.watchOrderbook) {\n return;\n }\n }\n\n ee.on(\"orderbook:update\", onOrderbookUpdate);\n\n return () => {\n ee.off(\"orderbook:update\", onOrderbookUpdate);\n };\n }, [optionsValue?.watchOrderbook]);\n\n useEffect(() => {\n askAndBid.current = [];\n }, [parsedData?.symbol]);\n\n //====== end ======\n\n const getPriceAndQty = (\n symbolOrOrder: OrderEntity\n ): { quantity: number; price: number } | null => {\n let quantity = Number(symbolOrOrder.order_quantity);\n const orderPrice = Number(symbolOrOrder.order_price);\n\n if (isNaN(quantity) || quantity <= 0) {\n return null;\n }\n\n if (!!options?.watchOrderbook && askAndBid.current.length === 0) {\n throw new SDKError(\n \"Please check if you are using the `useOrderbookStream` hook or if the orderBook has data.\"\n );\n }\n\n if (\n (symbolOrOrder.order_type === OrderType.LIMIT ||\n symbolOrOrder.order_type === OrderType.STOP_LIMIT) &&\n isNaN(orderPrice)\n )\n return null;\n\n /**\n * price\n * if order_type = market order,\n order side = long, then order_price_i = ask0\n order side = short, then order_price_i = bid0\n if order_type = limit order\n order side = long\n limit_price >= ask0, then order_price_i = ask0\n limit_price < ask0, then order_price_i = limit_price\n order side = short\n limit_price <= bid0, then order_price_i = bid0\n limit_price > ask0, then order_price_i = ask0\n */\n let price: number | undefined;\n\n if (\n symbolOrOrder.order_type === OrderType.MARKET ||\n symbolOrOrder.order_type === OrderType.STOP_MARKET\n ) {\n if (symbolOrOrder.side === OrderSide.BUY) {\n price = askAndBid.current[0];\n } else {\n price = askAndBid.current[1];\n }\n } else {\n // LIMIT order\n if (symbolOrOrder.side === OrderSide.BUY) {\n if (orderPrice >= askAndBid.current[0]) {\n price = askAndBid.current[0];\n } else {\n price = orderPrice;\n }\n } else {\n if (orderPrice <= askAndBid.current[1]) {\n price = askAndBid.current[1];\n } else {\n price = orderPrice;\n }\n }\n }\n\n if (symbolOrOrder.side === OrderSide.SELL) {\n quantity = -quantity;\n }\n\n return { price, quantity };\n };\n\n const estLiqPrice = useMemo(() => {\n if (!accountInfo || !parsedData || !markPrice) return null;\n\n const result = getPriceAndQty(formattedOrder as OrderEntity);\n if (result === null) return null;\n const { price, quantity } = result;\n if (!price || !quantity) return null;\n\n const orderFee = orderUtils.orderFee({\n qty: quantity,\n price,\n futuresTakeFeeRate: Number(accountInfo[\"futures_taker_fee_rate\"]) / 10000,\n });\n\n const liqPrice = orderUtils.estLiqPrice({\n markPrice,\n baseIMR,\n baseMMR,\n totalCollateral,\n positions,\n IMR_Factor: accountInfo[\"imr_factor\"][symbol],\n orderFee,\n newOrder: {\n qty: quantity,\n price,\n symbol: parsedData.symbol!,\n },\n });\n\n // console.log(\"********\", liqPrice, markPrice, totalCollateral, result);\n\n if (liqPrice <= 0) return null;\n\n return liqPrice;\n }, [\n markPrice,\n baseIMR,\n baseMMR,\n totalCollateral,\n formattedOrder?.order_price,\n formattedOrder?.order_quantity,\n formattedOrder?.total,\n formattedOrder?.trigger_price,\n accountInfo,\n ]);\n\n const estLeverage = useMemo(() => {\n if (!accountInfo || !parsedData) return null;\n const result = getPriceAndQty(formattedOrder as OrderEntity);\n if (result === null || !result.price || !result.quantity) return null;\n\n const leverage = orderUtils.estLeverage({\n totalCollateral,\n positions,\n newOrder: {\n symbol: parsedData.symbol,\n qty: result.quantity,\n price: result.price,\n },\n });\n\n return leverage;\n }, [\n baseIMR,\n baseMMR,\n totalCollateral,\n positions,\n formattedOrder?.order_price,\n formattedOrder?.order_quantity,\n formattedOrder?.total,\n formattedOrder?.trigger_price,\n ]);\n\n return {\n maxQty,\n freeCollateral,\n markPrice,\n onSubmit,\n submit,\n submitting: isMutating,\n formattedOrder,\n // errors,\n estLiqPrice,\n estLeverage,\n helper: {\n calculate,\n validator,\n // clearErrors,\n },\n metaState: {\n dirty: fieldDirty.current,\n submitted: submitted.current,\n errors,\n },\n symbolConfig: symbolInfo[symbol](),\n };\n}\n"],"names":["useCallback","useEffect","useMemo","useRef","useState","OrderSide","OrderType","SDKError","useSymbolsInfo","Decimal","getPrecisionByNumber","useMutation","compose","head","includes","omit","pick","baseInputHandle","getCalculateHandler","orderEntityFormatHandle","useCollateral","useMaxQty","OrderFactory","availableOrderTypes","useMarkPrice","order","orderUtils","useEventEmitter","useDebouncedCallback","useOrderEntry","symbolOrOrder","sideOrOptions","reduceOnly","options","isNewVersion","symbol","side","order_type","prevOrderData","orderDataCache","notSupportData","errors","setErrors","ee","fieldDirty","submitted","askAndBid","onOrderbookUpdate","data","current","freeCollateral","totalCollateral","positions","accountInfo","symbolInfo","optionsValue","isReduceOnly","reduce_only","sideValue","baseDP","quoteDP","baseIMR","baseMMR","markPrice","diffOrderEntry","prev","key","value","preValue","keys","Object","i","length","k","preveValue","currentValue","maxQty","parseString2Number","dp","startsWith","replace","hasPoint","endOfPoint","endsWith","decimalPart","split","slice","needParse","parsedData","order_quantity","toDecimalPlaces","toString","order_price","total","trigger_price","order_type_ext","visible_quantity","isStopOrder","STOP_LIMIT","STOP_MARKET","doCreateOrder","isMutating","createOrder","values","orderCreator","create","Promise","reject","resolve","validate","then","message","res","success","Array","isArray","rows","emit","onSubmit","submit","calculate","field","fieldHandler","newValues","validator","creator","formattedOrder","item","isNil","err","catch","broker_id","watchOrderbook","on","off","getPriceAndQty","quantity","Number","orderPrice","isNaN","LIMIT","price","MARKET","BUY","SELL","estLiqPrice","result","orderFee","qty","futuresTakeFeeRate","liqPrice","IMR_Factor","newOrder","estLeverage","leverage","submitting","helper","metaState","dirty","symbolConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/orderly/useOrderEntry.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { \n API,\n OrderEntity,\n OrderSide,\n OrderType,\n SDKError,\n} from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { Decimal, getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { useMutation } from \"../useMutation\";\nimport { compose, head, includes, omit, pick } from \"ramda\";\nimport {\n baseInputHandle,\n getCalculateHandler,\n orderEntityFormatHandle,\n} from \"../utils/orderEntryHelper\";\nimport { useCollateral } from \"./useCollateral\";\nimport { useMaxQty } from \"./useMaxQty\";\n// import { availableOrderTypes } from \"../utils/createOrder\";\nimport { useMarkPrice } from \"./useMarkPrice\";\nimport { order as orderUtils } from \"@orderly.network/perp\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { OrderFactory } from \"../services/orderCreator/factory\";\n// import { VerifyResult } from \"../utils/createOrder\";\n\nexport type UseOrderEntryOptions = {\n commify?: boolean;\n // Whether to observe the orderbook, if it is a limit order, the orderbook will automatically calculate the est. liq. price when it is updated.\n watchOrderbook?: boolean;\n validate?: (\n data: OrderEntity\n ) => { [P in keyof OrderEntity]?: string } | null | undefined;\n};\n\nexport type UseOrderEntryMetaState = {\n errors:\n | { [P in keyof OrderEntity]?: { type: string; message: string } }\n | null\n | undefined;\n dirty: { [P in keyof OrderEntity]?: boolean } | null | undefined;\n submitted: boolean;\n};\n\nexport type UseOrderEntryReturn = {\n // Maximum open position\n maxQty: number;\n freeCollateral: number;\n markPrice: number;\n estLiqPrice?: number | null;\n estLeverage?: number | null;\n //@Deprecated\n onSubmit: (order: OrderEntity) => Promise<any>;\n submit: () => Promise<OrderEntity>;\n // order: data,\n submitting: boolean;\n formattedOrder: Partial<OrderEntity>;\n helper: {\n calculate: (\n values: Partial<OrderEntity>,\n field: keyof OrderEntity,\n value: any\n ) => Partial<OrderEntity>;\n validator: (values: Partial<OrderEntity>) => any;\n // clearErrors: () => void;\n // setValues: (values: Partial<OrderEntity>) => void;\n };\n // formState: any;\n metaState: UseOrderEntryMetaState;\n symbolConfig: API.SymbolExt;\n};\n\nexport type OrderParams = Required<\n Pick<OrderEntity, \"side\" | \"order_type\" | \"symbol\">\n> &\n Partial<Omit<OrderEntity, \"side\" | \"symbol\" | \"order_type\">>;\n\n/**\n * Create Order\n * @example\n * ```tsx\n * import { useOrderEntry } from \"@orderly.network/hooks\";\n * import {OrderSide, OrderType} from '@orderly.network/types';\n *\n * const { formattedOrder, onSubmit, helper } = useOrderEntry({\n * symbol: \"PERP_ETH_USDC\",\n * side: OrderSide.BUY,\n * order_type: OrderType.LIMIT,\n * order_price: 10000,\n * order_quantity: 1,\n * },{\n * // **Note:** it's required\n * watchOrderbook: true,\n * });\n * ```\n */\nexport function useOrderEntry(\n order: OrderParams,\n options?: UseOrderEntryOptions\n): UseOrderEntryReturn;\n/**\n * @deprecated\n */\nexport function useOrderEntry(\n symbol: string,\n side: OrderSide,\n reduceOnly: boolean\n): UseOrderEntryReturn;\nexport function useOrderEntry(\n symbolOrOrder: string | OrderParams,\n sideOrOptions?: OrderSide | UseOrderEntryOptions,\n reduceOnly?: boolean,\n options?: UseOrderEntryOptions\n): UseOrderEntryReturn {\n // if symbolOrOrder is string, then it's deprecated\n let isNewVersion = false;\n if (typeof symbolOrOrder === \"object\") {\n isNewVersion = true;\n\n if (!symbolOrOrder.symbol) {\n throw new SDKError(\"symbol is required\");\n }\n\n if (!symbolOrOrder.side) {\n throw new SDKError(\"Order side is required\");\n }\n\n if (!symbolOrOrder.order_type) {\n throw new SDKError(\"order_type is required\");\n }\n }\n\n const prevOrderData = useRef<Partial<OrderEntity> | null>(null);\n // Cache data from the last calculate\n const orderDataCache = useRef<Partial<OrderEntity> | null>(null);\n //\n const notSupportData = useRef<Partial<OrderEntity>>({});\n\n const [errors, setErrors] = useState<any>(null);\n\n const ee = useEventEmitter();\n\n const fieldDirty = useRef<{ [K in keyof OrderEntity]?: boolean }>({});\n const submitted = useRef<boolean>(false);\n const askAndBid = useRef<number[]>([]); // 0: ask0, 1: bid0\n\n const onOrderbookUpdate = useDebouncedCallback((data: number[]) => {\n askAndBid.current = data;\n }, 200);\n\n const { freeCollateral, totalCollateral, positions, accountInfo } =\n useCollateral();\n\n const symbolInfo = useSymbolsInfo();\n // const tokenInfo = useTokenInfo();\n\n const symbol = useMemo(() => {\n if (typeof symbolOrOrder === \"string\") {\n return symbolOrOrder;\n }\n return symbolOrOrder.symbol!;\n }, [symbolOrOrder]);\n\n const optionsValue = useMemo(() => {\n if (typeof sideOrOptions === \"object\") {\n return sideOrOptions;\n }\n\n return options;\n }, [sideOrOptions]);\n\n const isReduceOnly = useMemo<boolean>(() => {\n if (typeof reduceOnly === \"boolean\") {\n return reduceOnly;\n }\n\n if (typeof symbolOrOrder === \"object\") {\n return !!symbolOrOrder.reduce_only;\n }\n\n return false;\n }, [symbolOrOrder, reduceOnly]);\n\n const sideValue = useMemo(() => {\n if (typeof symbolOrOrder === \"object\") {\n return symbolOrOrder.side;\n }\n\n // if (typeof sideOrOptions === \"string\") {\n return sideOrOptions as OrderSide;\n // }\n }, [symbolOrOrder, sideOrOptions]);\n\n const baseDP = useMemo(\n () => getPrecisionByNumber(symbolInfo[symbol](\"base_tick\", 0)),\n [symbolInfo]\n );\n const quoteDP = useMemo(() => {\n return getPrecisionByNumber(symbolInfo[symbol](\"quote_tick\", 0));\n }, [symbolInfo]);\n\n const baseIMR = useMemo(\n () => symbolInfo[symbol](\"base_imr\", 0),\n [symbolInfo]\n );\n const baseMMR = useMemo(\n () => symbolInfo[symbol](\"base_mmr\", 0),\n [symbolInfo]\n );\n\n const { data: markPrice } = useMarkPrice(symbol);\n // const markPrice = 1;\n\n const diffOrderEntry = (\n prev: Partial<OrderParams>,\n current: Partial<OrderParams>\n ): { key: keyof OrderParams; value: any; preValue: any } | null => {\n if (!prev) return null;\n let key, value, preValue;\n const keys = Object.keys(current) as (keyof OrderParams)[];\n\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n\n let preveValue = prev[k];\n let currentValue = current[k];\n\n if (\n typeof preveValue === \"undefined\" &&\n typeof currentValue === \"undefined\"\n )\n continue;\n\n // if (k === \"order_quantity\") {\n // preveValue = Number(preveValue);\n // currentValue = Number(currentValue);\n // }\n\n if (preveValue !== currentValue) {\n key = k;\n value = currentValue;\n preValue = preveValue;\n break;\n }\n }\n\n if (!key) return null;\n\n return { key, value, preValue };\n };\n\n const maxQty = useMaxQty(symbol, sideValue, isReduceOnly);\n\n const parseString2Number = (\n order: OrderParams & Record<string, any>,\n key: keyof OrderParams,\n dp?: number,\n ) => {\n if (typeof order[key] !== \"string\") return;\n // fix: delete the comma then remove the forward one of the string\n // first find the difference between current value and previous value\n\n if (order[key] && (order[key] as string).startsWith(\".\")) {\n (order[key] as string) = `0${order[key]}`;\n }\n\n // order[`${key}_origin`] = order[key];\n (order[key] as string) = (order[key] as string).replace(/,/g, \"\");\n\n // format input by decimal precision\n if (dp && (order[key] as string).length > 0) {\n const hasPoint = `${order[key]}`.includes(\".\");\n const endOfPoint = `${order[key]}`.endsWith(\".\");\n const decimalPart = `${order[key]}`.split(\".\");\n if (hasPoint && !endOfPoint) {\n (order[key] as string) = `${decimalPart[0]}.${decimalPart[1].slice(0,quoteDP)}`;\n }\n }\n };\n\n // just for performance optimization\n const needParse = useMemo(() => {\n if (typeof symbolOrOrder === \"string\") {\n return null;\n }\n return pick([\n \"order_price\",\n \"side\",\n \"order_quantity\",\n \"visible_quantity\",\n \"order_type\",\n \"order_type_ext\",\n \"symbol\",\n \"total\",\n \"reduce_only\",\n \"trigger_price\",\n ])(\n //@ts-ignore\n symbolOrOrder\n );\n }, [symbolOrOrder]);\n\n const parsedData = useMemo<OrderParams | null>(() => {\n if (typeof symbolOrOrder === \"string\") {\n return null;\n }\n // clean comma\n\n if (typeof symbolOrOrder.order_quantity === \"string\") {\n parseString2Number(symbolOrOrder, \"order_quantity\");\n } else if (typeof symbolOrOrder.order_quantity === \"number\") {\n symbolOrOrder.order_quantity = new Decimal(symbolOrOrder.order_quantity)\n .toDecimalPlaces(baseDP)\n .toString();\n }\n\n if (typeof symbolOrOrder.order_price === \"string\") {\n parseString2Number(symbolOrOrder, \"order_price\", quoteDP);\n }\n\n if (typeof symbolOrOrder.total === \"string\") {\n parseString2Number(symbolOrOrder, \"total\", quoteDP);\n }\n\n if (typeof symbolOrOrder.trigger_price === \"string\") {\n parseString2Number(symbolOrOrder, \"trigger_price\", quoteDP);\n }\n\n // if (typeof symbolOrOrder.trigger_price === \"string\") {\n // symbolOrOrder.trigger_price = symbolOrOrder.trigger_price.replace(\n // /,/g,\n // \"\"\n // );\n // }\n\n return symbolOrOrder;\n }, [\n needParse?.order_price,\n needParse?.order_quantity,\n needParse?.total,\n needParse?.trigger_price,\n needParse?.order_type,\n needParse?.order_type_ext,\n needParse?.symbol,\n needParse?.reduce_only,\n needParse?.side,\n needParse?.visible_quantity,\n quoteDP,\n baseDP,\n ]);\n\n const isAlgoOrder =\n parsedData?.order_type === OrderType.STOP_LIMIT ||\n parsedData?.order_type === OrderType.STOP_MARKET ||\n parsedData?.order_type === OrderType.CLOSE_POSITION;\n\n const [doCreateOrder, { isMutating }] = useMutation<OrderEntity, any>(\n isAlgoOrder ? \"/v1/algo/order\" : \"/v1/order\"\n );\n\n // const maxQty = 3;\n\n const createOrder = (values: Partial<OrderEntity>): Promise<OrderEntity> => {\n if (!values.symbol) {\n throw new SDKError(\"symbol is error\");\n }\n\n if (!values.side) {\n throw new SDKError(\"side is error\");\n }\n\n if (!values || typeof values.order_type === \"undefined\") {\n throw new SDKError(\"order_type is error\");\n }\n\n const orderCreator = OrderFactory.create(\n // @ts-ignore\n values.order_type_ext ? values.order_type_ext : values.order_type\n );\n\n if (!orderCreator) {\n return Promise.reject(new SDKError(\"orderCreator is null\"));\n }\n\n \n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(values, {\n symbol: symbolInfo[symbol](),\n // token: tokenInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n })\n .then((errors: any) => {\n submitted.current = true;\n\n if (\n errors.order_price ||\n errors.order_quantity ||\n errors.trigger_price ||\n errors.total\n ) {\n setErrors(errors);\n reject(\n errors.order_price?.message || errors.order_quantity?.message\n );\n // throw new SDKError(\n // errors.order_price?.message ||\n // errors.order_quantity?.message ||\n // \"order validation error\"\n // );\n } else {\n const data = orderCreator.create(values as OrderEntity, {\n symbol: symbolInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n });\n\n // console.log(\"------------------\", values, data);\n\n return doCreateOrder(\n omit([\"order_type_ext\"], {\n // ...values,\n // ...omit([\"order_price\"], values),\n ...data,\n })\n ).then((res) => {\n // resolve(res);\n if (res.success) {\n // TODO: remove when the WS service is fixed\n\n // if (Array.isArray(res.data.rows)) {\n // ee.emit(\"algoOrder:cache\", {\n // ...res.data.rows[0],\n // trigger_price: data.trigger_price,\n // });\n // }\n\n resolve(res.data);\n } else {\n reject(res);\n }\n }, reject);\n }\n });\n });\n };\n\n /**\n * submit form,validate values\n * @param values\n * @returns\n */\n const onSubmit = (values: OrderEntity) => {\n if (typeof reduceOnly === \"boolean\" && reduceOnly && !values.reduce_only) {\n return Promise.reject(\n new SDKError(\n \"The reduceOny parameter of hook does not match your order data\"\n )\n );\n }\n return createOrder({\n ...values,\n symbol,\n });\n };\n\n const submit = useCallback(() => {\n if (!parsedData) {\n throw new SDKError(\"Function is not supported, please use onSubmit()\");\n }\n return createOrder(parsedData);\n }, [parsedData]);\n\n const calculate = useCallback(\n (\n values: Partial<OrderEntity>,\n field: keyof OrderEntity,\n value: any\n ): Partial<OrderEntity> => {\n const fieldHandler = getCalculateHandler(field);\n const newValues = compose(\n head,\n orderEntityFormatHandle(baseDP, quoteDP),\n fieldHandler,\n baseInputHandle\n )([values, field, value, markPrice, { baseDP, quoteDP }]);\n\n return newValues as Partial<OrderEntity>;\n },\n [markPrice]\n );\n\n // const estLiqPrice = useMemo(() => {}, []);\n\n const validator = (values: any) => {\n // @ts-ignore\n const creator = OrderFactory.create(values.order_type);\n\n return creator?.validate(values, {\n symbol: symbolInfo[symbol](),\n // token: tokenInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n });\n };\n\n const formattedOrder = useMemo<Partial<OrderEntity>>(() => {\n if (!parsedData) {\n return notSupportData.current;\n }\n // prevOrderData.current = symbolOrOrder;\n\n if (!prevOrderData.current) {\n // prevOrderData.current = {\n // ...symbolOrOrder,\n // total: \"\",\n // };\n\n prevOrderData.current = parsedData;\n orderDataCache.current = {\n ...parsedData,\n total: \"\",\n };\n\n return orderDataCache.current as Partial<OrderEntity>;\n }\n\n // diff order entry\n const item = diffOrderEntry(prevOrderData.current, parsedData);\n\n // console.log(prevOrderData.current, symbolOrOrder, item);\n // console.log(item);\n\n if (!item) {\n return orderDataCache.current as Partial<OrderEntity>;\n }\n\n // set field dirty\n if (typeof parsedData.order_price !== \"undefined\") {\n fieldDirty.current.order_price = true;\n }\n if (typeof parsedData.order_quantity !== \"undefined\") {\n fieldDirty.current.order_quantity = true;\n }\n\n const values = calculate(parsedData, item.key, item.value);\n\n values.isStopOrder = values.order_type?.startsWith(\"STOP\") || false;\n\n values.total = values.total || \"\";\n\n prevOrderData.current = parsedData;\n orderDataCache.current = values;\n\n return values;\n }, [parsedData, markPrice]);\n\n /// validator order info\n useEffect(() => {\n if (!markPrice || symbolInfo.isNil) return;\n // validate order data;\n validator(formattedOrder)\n ?.then((err) => {\n setErrors(err);\n })\n .catch((err) => {});\n }, [\n formattedOrder.broker_id,\n formattedOrder.order_quantity,\n formattedOrder.total,\n formattedOrder.trigger_price,\n formattedOrder.order_type,\n markPrice,\n ]);\n\n //====== update orderbook ask0/bid0 ======\n useEffect(() => {\n if (isNewVersion) {\n if (!optionsValue?.watchOrderbook) {\n throw new SDKError(\n \"In order to calculate the estimated liquidation price, the `options.watchOrderbook` parameter must be set to true.\"\n );\n }\n } else {\n if (!optionsValue?.watchOrderbook) {\n return;\n }\n }\n\n ee.on(\"orderbook:update\", onOrderbookUpdate);\n\n return () => {\n ee.off(\"orderbook:update\", onOrderbookUpdate);\n };\n }, [optionsValue?.watchOrderbook]);\n\n useEffect(() => {\n askAndBid.current = [];\n }, [parsedData?.symbol]);\n\n //====== end ======\n\n const getPriceAndQty = (\n symbolOrOrder: OrderEntity\n ): { quantity: number; price: number } | null => {\n let quantity = Number(symbolOrOrder.order_quantity);\n const orderPrice = Number(symbolOrOrder.order_price);\n\n if (isNaN(quantity) || quantity <= 0) {\n return null;\n }\n\n if (!!options?.watchOrderbook && askAndBid.current.length === 0) {\n throw new SDKError(\n \"Please check if you are using the `useOrderbookStream` hook or if the orderBook has data.\"\n );\n }\n\n if (\n (symbolOrOrder.order_type === OrderType.LIMIT ||\n symbolOrOrder.order_type === OrderType.STOP_LIMIT) &&\n isNaN(orderPrice)\n )\n return null;\n\n /**\n * price\n * if order_type = market order,\n order side = long, then order_price_i = ask0\n order side = short, then order_price_i = bid0\n if order_type = limit order\n order side = long\n limit_price >= ask0, then order_price_i = ask0\n limit_price < ask0, then order_price_i = limit_price\n order side = short\n limit_price <= bid0, then order_price_i = bid0\n limit_price > ask0, then order_price_i = ask0\n */\n let price: number | undefined;\n\n if (\n symbolOrOrder.order_type === OrderType.MARKET ||\n symbolOrOrder.order_type === OrderType.STOP_MARKET\n ) {\n if (symbolOrOrder.side === OrderSide.BUY) {\n price = askAndBid.current[0];\n } else {\n price = askAndBid.current[1];\n }\n } else {\n // LIMIT order\n if (symbolOrOrder.side === OrderSide.BUY) {\n if (orderPrice >= askAndBid.current[0]) {\n price = askAndBid.current[0];\n } else {\n price = orderPrice;\n }\n } else {\n if (orderPrice <= askAndBid.current[1]) {\n price = askAndBid.current[1];\n } else {\n price = orderPrice;\n }\n }\n }\n\n if (symbolOrOrder.side === OrderSide.SELL) {\n quantity = -quantity;\n }\n\n return { price, quantity };\n };\n\n const estLiqPrice = useMemo(() => {\n if (!accountInfo || !parsedData || !markPrice) return null;\n\n const result = getPriceAndQty(formattedOrder as OrderEntity);\n if (result === null) return null;\n const { price, quantity } = result;\n if (!price || !quantity) return null;\n\n const orderFee = orderUtils.orderFee({\n qty: quantity,\n price,\n futuresTakeFeeRate: Number(accountInfo[\"futures_taker_fee_rate\"]) / 10000,\n });\n\n const liqPrice = orderUtils.estLiqPrice({\n markPrice,\n baseIMR,\n baseMMR,\n totalCollateral,\n positions,\n IMR_Factor: accountInfo[\"imr_factor\"][symbol],\n orderFee,\n newOrder: {\n qty: quantity,\n price,\n symbol: parsedData.symbol!,\n },\n });\n\n // console.log(\"********\", liqPrice, markPrice, totalCollateral, result);\n\n if (liqPrice <= 0) return null;\n\n return liqPrice;\n }, [\n markPrice,\n baseIMR,\n baseMMR,\n totalCollateral,\n formattedOrder?.order_price,\n formattedOrder?.order_quantity,\n formattedOrder?.total,\n formattedOrder?.trigger_price,\n accountInfo,\n ]);\n\n const estLeverage = useMemo(() => {\n if (!accountInfo || !parsedData) return null;\n const result = getPriceAndQty(formattedOrder as OrderEntity);\n if (result === null || !result.price || !result.quantity) return null;\n\n const leverage = orderUtils.estLeverage({\n totalCollateral,\n positions,\n newOrder: {\n symbol: parsedData.symbol,\n qty: result.quantity,\n price: result.price,\n },\n });\n\n return leverage;\n }, [\n baseIMR,\n baseMMR,\n totalCollateral,\n positions,\n formattedOrder?.order_price,\n formattedOrder?.order_quantity,\n formattedOrder?.total,\n formattedOrder?.trigger_price,\n ]);\n\n return {\n maxQty,\n freeCollateral,\n markPrice,\n onSubmit,\n submit,\n submitting: isMutating,\n formattedOrder,\n // errors,\n estLiqPrice,\n estLeverage,\n helper: {\n calculate,\n validator,\n // clearErrors,\n },\n metaState: {\n dirty: fieldDirty.current,\n submitted: submitted.current,\n errors,\n },\n symbolConfig: symbolInfo[symbol](),\n };\n}\n"],"names":["useCallback","useEffect","useMemo","useRef","useState","OrderSide","OrderType","SDKError","useSymbolsInfo","Decimal","getPrecisionByNumber","useMutation","compose","head","omit","pick","baseInputHandle","getCalculateHandler","orderEntityFormatHandle","useCollateral","useMaxQty","useMarkPrice","order","orderUtils","useEventEmitter","useDebouncedCallback","OrderFactory","useOrderEntry","symbolOrOrder","sideOrOptions","reduceOnly","options","isNewVersion","symbol","side","order_type","prevOrderData","orderDataCache","notSupportData","errors","setErrors","ee","fieldDirty","submitted","askAndBid","onOrderbookUpdate","data","current","freeCollateral","totalCollateral","positions","accountInfo","symbolInfo","optionsValue","isReduceOnly","reduce_only","sideValue","baseDP","quoteDP","baseIMR","baseMMR","markPrice","diffOrderEntry","prev","key","value","preValue","keys","Object","i","length","k","preveValue","currentValue","maxQty","parseString2Number","dp","startsWith","replace","hasPoint","includes","endOfPoint","endsWith","decimalPart","split","slice","needParse","parsedData","order_quantity","toDecimalPlaces","toString","order_price","total","trigger_price","order_type_ext","visible_quantity","isAlgoOrder","STOP_LIMIT","STOP_MARKET","CLOSE_POSITION","doCreateOrder","isMutating","createOrder","values","orderCreator","create","Promise","reject","resolve","validate","then","message","res","success","onSubmit","submit","calculate","field","fieldHandler","newValues","validator","creator","formattedOrder","item","isStopOrder","isNil","err","catch","broker_id","watchOrderbook","on","off","getPriceAndQty","quantity","Number","orderPrice","isNaN","LIMIT","price","MARKET","BUY","SELL","estLiqPrice","result","orderFee","qty","futuresTakeFeeRate","liqPrice","IMR_Factor","newOrder","estLeverage","leverage","submitting","helper","metaState","dirty","symbolConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map