@orderly.network/hooks 1.2.0 → 1.3.2

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 (371) hide show
  1. package/esm/configProvider.d.ts +7 -1
  2. package/esm/configProvider.d.ts.map +1 -1
  3. package/esm/configProvider.js +44 -18
  4. package/esm/configProvider.js.map +1 -0
  5. package/esm/dataProvider.js +24 -19
  6. package/esm/dataProvider.js.map +1 -0
  7. package/esm/index.d.ts +1 -0
  8. package/esm/index.d.ts.map +1 -1
  9. package/esm/index.js +4 -1
  10. package/esm/index.js.map +1 -0
  11. package/esm/middleware/signatureMiddleware.js +9 -8
  12. package/esm/middleware/signatureMiddleware.js.map +1 -0
  13. package/esm/orderly/orderbook.service.js +39 -28
  14. package/esm/orderly/orderbook.service.js.map +1 -0
  15. package/esm/orderly/orderlyHooks.d.ts +3 -0
  16. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  17. package/esm/orderly/orderlyHooks.js +2 -0
  18. package/esm/orderly/orderlyHooks.js.map +1 -0
  19. package/esm/orderly/useAccountInfo.js +3 -1
  20. package/esm/orderly/useAccountInfo.js.map +1 -0
  21. package/esm/orderly/useChain.js +16 -9
  22. package/esm/orderly/useChain.js.map +1 -0
  23. package/esm/orderly/useChains.d.ts +11 -12
  24. package/esm/orderly/useChains.d.ts.map +1 -1
  25. package/esm/orderly/useChains.js +68 -46
  26. package/esm/orderly/useChains.js.map +1 -0
  27. package/esm/orderly/useCollateral.d.ts +3 -4
  28. package/esm/orderly/useCollateral.d.ts.map +1 -1
  29. package/esm/orderly/useCollateral.js +53 -20
  30. package/esm/orderly/useCollateral.js.map +1 -0
  31. package/esm/orderly/useDeposit.js +123 -125
  32. package/esm/orderly/useDeposit.js.map +1 -0
  33. package/esm/orderly/useFundingRate.js +14 -13
  34. package/esm/orderly/useFundingRate.js.map +1 -0
  35. package/esm/orderly/useFundingRates.js +6 -4
  36. package/esm/orderly/useFundingRates.js.map +1 -0
  37. package/esm/orderly/useHoldingStream.js +19 -15
  38. package/esm/orderly/useHoldingStream.js.map +1 -0
  39. package/esm/orderly/useIndexPrice.js +7 -5
  40. package/esm/orderly/useIndexPrice.js.map +1 -0
  41. package/esm/orderly/useLeverage.js +9 -12
  42. package/esm/orderly/useLeverage.js.map +1 -0
  43. package/esm/orderly/useMarginRatio.js +27 -13
  44. package/esm/orderly/useMarginRatio.js.map +1 -0
  45. package/esm/orderly/useMarkPrice.js +13 -7
  46. package/esm/orderly/useMarkPrice.js.map +1 -0
  47. package/esm/orderly/useMarkPricesStream.d.ts +1 -1
  48. package/esm/orderly/useMarkPricesStream.d.ts.map +1 -1
  49. package/esm/orderly/useMarkPricesStream.js +9 -8
  50. package/esm/orderly/useMarkPricesStream.js.map +1 -0
  51. package/esm/orderly/useMarketTradeStream.js +33 -18
  52. package/esm/orderly/useMarketTradeStream.js.map +1 -0
  53. package/esm/orderly/useMarkets.js +144 -81
  54. package/esm/orderly/useMarkets.js.map +1 -0
  55. package/esm/orderly/useMarketsStream.js +23 -28
  56. package/esm/orderly/useMarketsStream.js.map +1 -0
  57. package/esm/orderly/useMaxQty.d.ts +6 -0
  58. package/esm/orderly/useMaxQty.d.ts.map +1 -1
  59. package/esm/orderly/useMaxQty.js +26 -18
  60. package/esm/orderly/useMaxQty.js.map +1 -0
  61. package/esm/orderly/useOpenInterest.js +7 -5
  62. package/esm/orderly/useOpenInterest.js.map +1 -0
  63. package/esm/orderly/useOrderEntry.js +182 -160
  64. package/esm/orderly/useOrderEntry.js.map +1 -0
  65. package/esm/orderly/useOrderStream.js +85 -66
  66. package/esm/orderly/useOrderStream.js.map +1 -0
  67. package/esm/orderly/useOrderbookStream.d.ts +2 -3
  68. package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
  69. package/esm/orderly/useOrderbookStream.js +173 -103
  70. package/esm/orderly/useOrderbookStream.js.map +1 -0
  71. package/esm/orderly/usePositionStream.js +82 -62
  72. package/esm/orderly/usePositionStream.js.map +1 -0
  73. package/esm/orderly/usePrivateDataObserver.js +55 -48
  74. package/esm/orderly/usePrivateDataObserver.js.map +1 -0
  75. package/esm/orderly/useSettleSubscription.js +8 -6
  76. package/esm/orderly/useSettleSubscription.js.map +1 -0
  77. package/esm/orderly/useSymbolPriceRange.js +14 -8
  78. package/esm/orderly/useSymbolPriceRange.js.map +1 -0
  79. package/esm/orderly/useSymbolsInfo.js +7 -5
  80. package/esm/orderly/useSymbolsInfo.js.map +1 -0
  81. package/esm/orderly/useTickerStream.d.ts +5 -1
  82. package/esm/orderly/useTickerStream.d.ts.map +1 -1
  83. package/esm/orderly/useTickerStream.js +26 -29
  84. package/esm/orderly/useTickerStream.js.map +1 -0
  85. package/esm/orderly/useWalletSubscription.js +8 -6
  86. package/esm/orderly/useWalletSubscription.js.map +1 -0
  87. package/esm/orderly/useWithdraw.js +19 -11
  88. package/esm/orderly/useWithdraw.js.map +1 -0
  89. package/esm/orderlyContext.d.ts +8 -1
  90. package/esm/orderlyContext.d.ts.map +1 -1
  91. package/esm/orderlyContext.js +2 -1
  92. package/esm/orderlyContext.js.map +1 -0
  93. package/esm/services/dataCenter.js +10 -8
  94. package/esm/services/dataCenter.js.map +1 -0
  95. package/esm/services/painter/backgroundPaint.js +11 -14
  96. package/esm/services/painter/backgroundPaint.js.map +1 -0
  97. package/esm/services/painter/basePaint.js +5 -1
  98. package/esm/services/painter/basePaint.js.map +1 -0
  99. package/esm/services/painter/dataPaint.js +53 -50
  100. package/esm/services/painter/dataPaint.js.map +1 -0
  101. package/esm/services/painter/layout.config.js +15 -13
  102. package/esm/services/painter/layout.config.js.map +1 -0
  103. package/esm/services/painter/painter.js +14 -13
  104. package/esm/services/painter/painter.js.map +1 -0
  105. package/esm/services/painter/resource.js +6 -4
  106. package/esm/services/painter/resource.js.map +1 -0
  107. package/esm/statusProvider.js +10 -3
  108. package/esm/statusProvider.js.map +1 -0
  109. package/esm/unuse/apiPrefixMiddleware.js +18 -16
  110. package/esm/unuse/apiPrefixMiddleware.js.map +1 -0
  111. package/esm/unuse/fn.js +3 -1
  112. package/esm/unuse/fn.js.map +1 -0
  113. package/esm/unuse/useBalance.js +6 -4
  114. package/esm/unuse/useBalance.js.map +1 -0
  115. package/esm/unuse/useFetures.js +26 -18
  116. package/esm/unuse/useFetures.js.map +1 -0
  117. package/esm/unuse/useRunOnce.js +10 -7
  118. package/esm/unuse/useRunOnce.js.map +1 -0
  119. package/esm/unuse/useSyncEnd.js +5 -4
  120. package/esm/unuse/useSyncEnd.js.map +1 -0
  121. package/esm/unuse/useTokenInfo.js +7 -5
  122. package/esm/unuse/useTokenInfo.js.map +1 -0
  123. package/esm/unuse/useUnsettlementPnL.js +7 -3
  124. package/esm/unuse/useUnsettlementPnL.js.map +1 -0
  125. package/esm/useAccount.js +18 -21
  126. package/esm/useAccount.js.map +1 -0
  127. package/esm/useAccountInstance.js +6 -7
  128. package/esm/useAccountInstance.js.map +1 -0
  129. package/esm/useBoolean.js +14 -5
  130. package/esm/useBoolean.js.map +1 -0
  131. package/esm/useConfig.js +3 -1
  132. package/esm/useConfig.js.map +1 -0
  133. package/esm/useEventEmitter.js +4 -2
  134. package/esm/useEventEmitter.js.map +1 -0
  135. package/esm/useLazyQuery.js +6 -7
  136. package/esm/useLazyQuery.js.map +1 -0
  137. package/esm/useLocalStorage.js +30 -20
  138. package/esm/useLocalStorage.js.map +1 -0
  139. package/esm/useMediaQuery.js +11 -9
  140. package/esm/useMediaQuery.js.map +1 -0
  141. package/esm/useMutation.js +26 -37
  142. package/esm/useMutation.js.map +1 -0
  143. package/esm/useObserve.js +4 -4
  144. package/esm/useObserve.js.map +1 -0
  145. package/esm/useParamsCheck.js +8 -10
  146. package/esm/useParamsCheck.js.map +1 -0
  147. package/esm/usePoster.js +56 -45
  148. package/esm/usePoster.js.map +1 -0
  149. package/esm/usePreloadData.js +9 -5
  150. package/esm/usePreloadData.js.map +1 -0
  151. package/esm/usePrivateInfiniteQuery.js +15 -9
  152. package/esm/usePrivateInfiniteQuery.js.map +1 -0
  153. package/esm/usePrivateQuery.js +15 -8
  154. package/esm/usePrivateQuery.js.map +1 -0
  155. package/esm/useQuery.js +6 -5
  156. package/esm/useQuery.js.map +1 -0
  157. package/esm/useSessionStorage.js +28 -19
  158. package/esm/useSessionStorage.js.map +1 -0
  159. package/esm/useWS.js +15 -13
  160. package/esm/useWS.js.map +1 -0
  161. package/esm/useWsStatus.js +12 -12
  162. package/esm/useWsStatus.js.map +1 -0
  163. package/esm/utils/createGetter.js +8 -8
  164. package/esm/utils/createGetter.js.map +1 -0
  165. package/esm/utils/createOrder.d.ts +1 -0
  166. package/esm/utils/createOrder.d.ts.map +1 -1
  167. package/esm/utils/createOrder.js +59 -43
  168. package/esm/utils/createOrder.js.map +1 -0
  169. package/esm/utils/dev.js +6 -4
  170. package/esm/utils/dev.js.map +1 -0
  171. package/esm/utils/fetcher.js +3 -1
  172. package/esm/utils/fetcher.js.map +1 -0
  173. package/esm/utils/json.js +3 -2
  174. package/esm/utils/json.js.map +1 -0
  175. package/esm/utils/orderEntryHelper.js +92 -63
  176. package/esm/utils/orderEntryHelper.js.map +1 -0
  177. package/esm/utils/parseHolding.js +10 -6
  178. package/esm/utils/parseHolding.js.map +1 -0
  179. package/esm/utils/swr.js +114 -104
  180. package/esm/utils/swr.js.map +1 -0
  181. package/esm/version.d.ts +1 -1
  182. package/esm/version.js +4 -3
  183. package/esm/version.js.map +1 -0
  184. package/esm/walletConnectorContext.js +4 -2
  185. package/esm/walletConnectorContext.js.map +1 -0
  186. package/lib/configProvider.d.ts +7 -1
  187. package/lib/configProvider.d.ts.map +1 -1
  188. package/lib/configProvider.js +108 -56
  189. package/lib/configProvider.js.map +1 -0
  190. package/lib/dataProvider.js +50 -29
  191. package/lib/dataProvider.js.map +1 -0
  192. package/lib/index.d.ts +1 -0
  193. package/lib/index.d.ts.map +1 -1
  194. package/lib/index.js +191 -88
  195. package/lib/index.js.map +1 -0
  196. package/lib/middleware/signatureMiddleware.js +22 -15
  197. package/lib/middleware/signatureMiddleware.js.map +1 -0
  198. package/lib/orderly/orderbook.service.js +59 -33
  199. package/lib/orderly/orderbook.service.js.map +1 -0
  200. package/lib/orderly/orderlyHooks.d.ts +3 -0
  201. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  202. package/lib/orderly/orderlyHooks.js +124 -57
  203. package/lib/orderly/orderlyHooks.js.map +1 -0
  204. package/lib/orderly/useAccountInfo.js +14 -6
  205. package/lib/orderly/useAccountInfo.js.map +1 -0
  206. package/lib/orderly/useChain.js +30 -17
  207. package/lib/orderly/useChain.js.map +1 -0
  208. package/lib/orderly/useChains.d.ts +11 -12
  209. package/lib/orderly/useChains.d.ts.map +1 -1
  210. package/lib/orderly/useChains.js +100 -59
  211. package/lib/orderly/useChains.js.map +1 -0
  212. package/lib/orderly/useCollateral.d.ts +3 -4
  213. package/lib/orderly/useCollateral.d.ts.map +1 -1
  214. package/lib/orderly/useCollateral.js +81 -42
  215. package/lib/orderly/useCollateral.js.map +1 -0
  216. package/lib/orderly/useDeposit.js +154 -150
  217. package/lib/orderly/useDeposit.js.map +1 -0
  218. package/lib/orderly/useFundingRate.js +29 -22
  219. package/lib/orderly/useFundingRate.js.map +1 -0
  220. package/lib/orderly/useFundingRates.js +19 -11
  221. package/lib/orderly/useFundingRates.js.map +1 -0
  222. package/lib/orderly/useHoldingStream.js +39 -27
  223. package/lib/orderly/useHoldingStream.js.map +1 -0
  224. package/lib/orderly/useIndexPrice.js +24 -14
  225. package/lib/orderly/useIndexPrice.js.map +1 -0
  226. package/lib/orderly/useLeverage.js +27 -24
  227. package/lib/orderly/useLeverage.js.map +1 -0
  228. package/lib/orderly/useMarginRatio.js +49 -29
  229. package/lib/orderly/useMarginRatio.js.map +1 -0
  230. package/lib/orderly/useMarkPrice.js +26 -15
  231. package/lib/orderly/useMarkPrice.js.map +1 -0
  232. package/lib/orderly/useMarkPricesStream.d.ts +1 -1
  233. package/lib/orderly/useMarkPricesStream.d.ts.map +1 -1
  234. package/lib/orderly/useMarkPricesStream.js +26 -17
  235. package/lib/orderly/useMarkPricesStream.js.map +1 -0
  236. package/lib/orderly/useMarketTradeStream.js +47 -26
  237. package/lib/orderly/useMarketTradeStream.js.map +1 -0
  238. package/lib/orderly/useMarkets.js +172 -95
  239. package/lib/orderly/useMarkets.js.map +1 -0
  240. package/lib/orderly/useMarketsStream.js +44 -41
  241. package/lib/orderly/useMarketsStream.js.map +1 -0
  242. package/lib/orderly/useMaxQty.d.ts +6 -0
  243. package/lib/orderly/useMaxQty.d.ts.map +1 -1
  244. package/lib/orderly/useMaxQty.js +52 -43
  245. package/lib/orderly/useMaxQty.js.map +1 -0
  246. package/lib/orderly/useOpenInterest.js +24 -14
  247. package/lib/orderly/useOpenInterest.js.map +1 -0
  248. package/lib/orderly/useOrderEntry.js +238 -210
  249. package/lib/orderly/useOrderEntry.js.map +1 -0
  250. package/lib/orderly/useOrderStream.js +111 -84
  251. package/lib/orderly/useOrderStream.js.map +1 -0
  252. package/lib/orderly/useOrderbookStream.d.ts +2 -3
  253. package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
  254. package/lib/orderly/useOrderbookStream.js +227 -148
  255. package/lib/orderly/useOrderbookStream.js.map +1 -0
  256. package/lib/orderly/usePositionStream.js +134 -100
  257. package/lib/orderly/usePositionStream.js.map +1 -0
  258. package/lib/orderly/usePrivateDataObserver.js +76 -63
  259. package/lib/orderly/usePrivateDataObserver.js.map +1 -0
  260. package/lib/orderly/useSettleSubscription.js +25 -15
  261. package/lib/orderly/useSettleSubscription.js.map +1 -0
  262. package/lib/orderly/useSymbolPriceRange.js +29 -23
  263. package/lib/orderly/useSymbolPriceRange.js.map +1 -0
  264. package/lib/orderly/useSymbolsInfo.js +23 -15
  265. package/lib/orderly/useSymbolsInfo.js.map +1 -0
  266. package/lib/orderly/useTickerStream.d.ts +5 -1
  267. package/lib/orderly/useTickerStream.d.ts.map +1 -1
  268. package/lib/orderly/useTickerStream.js +51 -48
  269. package/lib/orderly/useTickerStream.js.map +1 -0
  270. package/lib/orderly/useWalletSubscription.js +25 -15
  271. package/lib/orderly/useWalletSubscription.js.map +1 -0
  272. package/lib/orderly/useWithdraw.js +36 -22
  273. package/lib/orderly/useWithdraw.js.map +1 -0
  274. package/lib/orderlyContext.d.ts +8 -1
  275. package/lib/orderlyContext.d.ts.map +1 -1
  276. package/lib/orderlyContext.js +22 -6
  277. package/lib/orderlyContext.js.map +1 -0
  278. package/lib/services/dataCenter.js +15 -11
  279. package/lib/services/dataCenter.js.map +1 -0
  280. package/lib/services/painter/backgroundPaint.js +21 -18
  281. package/lib/services/painter/backgroundPaint.js.map +1 -0
  282. package/lib/services/painter/basePaint.js +14 -4
  283. package/lib/services/painter/basePaint.js.map +1 -0
  284. package/lib/services/painter/dataPaint.js +67 -58
  285. package/lib/services/painter/dataPaint.js.map +1 -0
  286. package/lib/services/painter/layout.config.js +25 -16
  287. package/lib/services/painter/layout.config.js.map +1 -0
  288. package/lib/services/painter/painter.js +27 -20
  289. package/lib/services/painter/painter.js.map +1 -0
  290. package/lib/services/painter/resource.js +15 -7
  291. package/lib/services/painter/resource.js.map +1 -0
  292. package/lib/statusProvider.js +31 -10
  293. package/lib/statusProvider.js.map +1 -0
  294. package/lib/unuse/apiPrefixMiddleware.js +30 -22
  295. package/lib/unuse/apiPrefixMiddleware.js.map +1 -0
  296. package/lib/unuse/fn.js +14 -5
  297. package/lib/unuse/fn.js.map +1 -0
  298. package/lib/unuse/useBalance.js +23 -13
  299. package/lib/unuse/useBalance.js.map +1 -0
  300. package/lib/unuse/useFetures.js +41 -28
  301. package/lib/unuse/useFetures.js.map +1 -0
  302. package/lib/unuse/useRunOnce.js +61 -11
  303. package/lib/unuse/useRunOnce.js.map +1 -0
  304. package/lib/unuse/useSyncEnd.js +17 -10
  305. package/lib/unuse/useSyncEnd.js.map +1 -0
  306. package/lib/unuse/useTokenInfo.js +20 -12
  307. package/lib/unuse/useTokenInfo.js.map +1 -0
  308. package/lib/unuse/useUnsettlementPnL.js +21 -11
  309. package/lib/unuse/useUnsettlementPnL.js.map +1 -0
  310. package/lib/useAccount.js +32 -29
  311. package/lib/useAccount.js.map +1 -0
  312. package/lib/useAccountInstance.js +27 -20
  313. package/lib/useAccountInstance.js.map +1 -0
  314. package/lib/useBoolean.js +25 -10
  315. package/lib/useBoolean.js.map +1 -0
  316. package/lib/useConfig.js +15 -7
  317. package/lib/useConfig.js.map +1 -0
  318. package/lib/useEventEmitter.js +23 -13
  319. package/lib/useEventEmitter.js.map +1 -0
  320. package/lib/useLazyQuery.js +25 -23
  321. package/lib/useLazyQuery.js.map +1 -0
  322. package/lib/useLocalStorage.js +44 -28
  323. package/lib/useLocalStorage.js.map +1 -0
  324. package/lib/useMediaQuery.js +22 -14
  325. package/lib/useMediaQuery.js.map +1 -0
  326. package/lib/useMutation.js +47 -52
  327. package/lib/useMutation.js.map +1 -0
  328. package/lib/useObserve.js +22 -8
  329. package/lib/useObserve.js.map +1 -0
  330. package/lib/useParamsCheck.js +18 -14
  331. package/lib/useParamsCheck.js.map +1 -0
  332. package/lib/usePoster.js +80 -74
  333. package/lib/usePoster.js.map +1 -0
  334. package/lib/usePreloadData.js +21 -11
  335. package/lib/usePreloadData.js.map +1 -0
  336. package/lib/usePrivateInfiniteQuery.js +36 -22
  337. package/lib/usePrivateInfiniteQuery.js.map +1 -0
  338. package/lib/usePrivateQuery.js +35 -25
  339. package/lib/usePrivateQuery.js.map +1 -0
  340. package/lib/useQuery.js +24 -20
  341. package/lib/useQuery.js.map +1 -0
  342. package/lib/useSessionStorage.js +41 -26
  343. package/lib/useSessionStorage.js.map +1 -0
  344. package/lib/useWS.js +42 -32
  345. package/lib/useWS.js.map +1 -0
  346. package/lib/useWsStatus.js +34 -20
  347. package/lib/useWsStatus.js.map +1 -0
  348. package/lib/utils/createGetter.js +19 -14
  349. package/lib/utils/createGetter.js.map +1 -0
  350. package/lib/utils/createOrder.d.ts +1 -0
  351. package/lib/utils/createOrder.d.ts.map +1 -1
  352. package/lib/utils/createOrder.js +133 -82
  353. package/lib/utils/createOrder.js.map +1 -0
  354. package/lib/utils/dev.js +13 -9
  355. package/lib/utils/dev.js.map +1 -0
  356. package/lib/utils/fetcher.js +13 -5
  357. package/lib/utils/fetcher.js.map +1 -0
  358. package/lib/utils/json.js +12 -5
  359. package/lib/utils/json.js.map +1 -0
  360. package/lib/utils/orderEntryHelper.js +125 -82
  361. package/lib/utils/orderEntryHelper.js.map +1 -0
  362. package/lib/utils/parseHolding.js +19 -9
  363. package/lib/utils/parseHolding.js.map +1 -0
  364. package/lib/utils/swr.js +134 -111
  365. package/lib/utils/swr.js.map +1 -0
  366. package/lib/version.d.ts +1 -1
  367. package/lib/version.js +13 -4
  368. package/lib/version.js.map +1 -0
  369. package/lib/walletConnectorContext.js +23 -7
  370. package/lib/walletConnectorContext.js.map +1 -0
  371. package/package.json +17 -9
@@ -1,64 +1,75 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useOrderEntry = void 0;
4
- const react_1 = require("react");
5
- const types_1 = require("@orderly.network/types");
6
- const useSymbolsInfo_1 = require("./useSymbolsInfo");
7
- const utils_1 = require("@orderly.network/utils");
8
- const useMutation_1 = require("../useMutation");
9
- const ramda_1 = require("ramda");
10
- const orderEntryHelper_1 = require("../utils/orderEntryHelper");
11
- const useCollateral_1 = require("./useCollateral");
12
- const useMaxQty_1 = require("./useMaxQty");
13
- const createOrder_1 = require("../utils/createOrder");
14
- const useMarkPrice_1 = require("./useMarkPrice");
15
- const perp_1 = require("@orderly.network/perp");
16
- const useEventEmitter_1 = require("../useEventEmitter");
17
- const use_debounce_1 = require("use-debounce");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useOrderEntry", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return useOrderEntry;
9
+ }
10
+ });
11
+ const _react = require("react");
12
+ const _types = require("@orderly.network/types");
13
+ const _useSymbolsInfo = require("./useSymbolsInfo");
14
+ const _utils = require("@orderly.network/utils");
15
+ const _useMutation = require("../useMutation");
16
+ const _ramda = require("ramda");
17
+ const _orderEntryHelper = require("../utils/orderEntryHelper");
18
+ const _useCollateral = require("./useCollateral");
19
+ const _useMaxQty = require("./useMaxQty");
20
+ const _createOrder = require("../utils/createOrder");
21
+ const _useMarkPrice = require("./useMarkPrice");
22
+ const _perp = require("@orderly.network/perp");
23
+ const _useEventEmitter = require("../useEventEmitter");
24
+ const _usedebounce = require("use-debounce");
18
25
  function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
19
26
  // if symbolOrOrder is string, then it's deprecated
20
27
  let isNewVersion = false;
21
28
  if (typeof symbolOrOrder === "object") {
22
29
  isNewVersion = true;
23
30
  if (!symbolOrOrder.symbol) {
24
- throw new types_1.SDKError("symbol is required");
31
+ throw new _types.SDKError("symbol is required");
25
32
  }
26
33
  if (!symbolOrOrder.side) {
27
- throw new types_1.SDKError("Order side is required");
34
+ throw new _types.SDKError("Order side is required");
28
35
  }
29
36
  if (!symbolOrOrder.order_type) {
30
- throw new types_1.SDKError("order_type is required");
37
+ throw new _types.SDKError("order_type is required");
31
38
  }
32
39
  }
33
- const prevOrderData = (0, react_1.useRef)(null);
40
+ const prevOrderData = (0, _react.useRef)(null);
34
41
  // Cache data from the last calculate
35
- const orderDataCache = (0, react_1.useRef)(null);
42
+ const orderDataCache = (0, _react.useRef)(null);
36
43
  //
37
- const notSupportData = (0, react_1.useRef)({});
38
- const [errors, setErrors] = (0, react_1.useState)(null);
39
- const ee = (0, useEventEmitter_1.useEventEmitter)();
40
- const fieldDirty = (0, react_1.useRef)({});
41
- const submitted = (0, react_1.useRef)(false);
42
- const askAndBid = (0, react_1.useRef)([]); // 0: ask0, 1: bid0
43
- const onOrderbookUpdate = (0, use_debounce_1.useDebouncedCallback)((data) => {
44
+ const notSupportData = (0, _react.useRef)({});
45
+ const [errors, setErrors] = (0, _react.useState)(null);
46
+ const ee = (0, _useEventEmitter.useEventEmitter)();
47
+ const fieldDirty = (0, _react.useRef)({});
48
+ const submitted = (0, _react.useRef)(false);
49
+ const askAndBid = (0, _react.useRef)([]); // 0: ask0, 1: bid0
50
+ const onOrderbookUpdate = (0, _usedebounce.useDebouncedCallback)((data)=>{
44
51
  askAndBid.current = data;
45
52
  }, 200);
46
- const { freeCollateral, totalCollateral, positions, accountInfo } = (0, useCollateral_1.useCollateral)();
47
- const symbolInfo = (0, useSymbolsInfo_1.useSymbolsInfo)();
53
+ const { freeCollateral, totalCollateral, positions, accountInfo } = (0, _useCollateral.useCollateral)();
54
+ const symbolInfo = (0, _useSymbolsInfo.useSymbolsInfo)();
48
55
  // const tokenInfo = useTokenInfo();
49
- const symbol = (0, react_1.useMemo)(() => {
56
+ const symbol = (0, _react.useMemo)(()=>{
50
57
  if (typeof symbolOrOrder === "string") {
51
58
  return symbolOrOrder;
52
59
  }
53
60
  return symbolOrOrder.symbol;
54
- }, [symbolOrOrder]);
55
- const optionsValue = (0, react_1.useMemo)(() => {
61
+ }, [
62
+ symbolOrOrder
63
+ ]);
64
+ const optionsValue = (0, _react.useMemo)(()=>{
56
65
  if (typeof sideOrOptions === "object") {
57
66
  return sideOrOptions;
58
67
  }
59
68
  return options;
60
- }, [sideOrOptions]);
61
- const isReduceOnly = (0, react_1.useMemo)(() => {
69
+ }, [
70
+ sideOrOptions
71
+ ]);
72
+ const isReduceOnly = (0, _react.useMemo)(()=>{
62
73
  if (typeof reduceOnly === "boolean") {
63
74
  return reduceOnly;
64
75
  }
@@ -66,35 +77,46 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
66
77
  return !!symbolOrOrder.reduce_only;
67
78
  }
68
79
  return false;
69
- }, [symbolOrOrder, reduceOnly]);
70
- const sideValue = (0, react_1.useMemo)(() => {
80
+ }, [
81
+ symbolOrOrder,
82
+ reduceOnly
83
+ ]);
84
+ const sideValue = (0, _react.useMemo)(()=>{
71
85
  if (typeof symbolOrOrder === "object") {
72
86
  return symbolOrOrder.side;
73
87
  }
74
88
  // if (typeof sideOrOptions === "string") {
75
89
  return sideOrOptions;
76
- // }
77
- }, [symbolOrOrder, sideOrOptions]);
78
- const baseDP = (0, react_1.useMemo)(() => (0, utils_1.getPrecisionByNumber)(symbolInfo[symbol]("base_tick", 0)), [symbolInfo]);
79
- const quoteDP = (0, react_1.useMemo)(() => {
80
- return (0, utils_1.getPrecisionByNumber)(symbolInfo[symbol]("quote_tick", 0));
81
- }, [symbolInfo]);
82
- const baseIMR = (0, react_1.useMemo)(() => symbolInfo[symbol]("base_imr", 0), [symbolInfo]);
83
- const baseMMR = (0, react_1.useMemo)(() => symbolInfo[symbol]("base_mmr", 0), [symbolInfo]);
84
- const { data: markPrice } = (0, useMarkPrice_1.useMarkPrice)(symbol);
90
+ // }
91
+ }, [
92
+ symbolOrOrder,
93
+ sideOrOptions
94
+ ]);
95
+ const baseDP = (0, _react.useMemo)(()=>(0, _utils.getPrecisionByNumber)(symbolInfo[symbol]("base_tick", 0)), [
96
+ symbolInfo
97
+ ]);
98
+ const quoteDP = (0, _react.useMemo)(()=>{
99
+ return (0, _utils.getPrecisionByNumber)(symbolInfo[symbol]("quote_tick", 0));
100
+ }, [
101
+ symbolInfo
102
+ ]);
103
+ const baseIMR = (0, _react.useMemo)(()=>symbolInfo[symbol]("base_imr", 0), [
104
+ symbolInfo
105
+ ]);
106
+ const baseMMR = (0, _react.useMemo)(()=>symbolInfo[symbol]("base_mmr", 0), [
107
+ symbolInfo
108
+ ]);
109
+ const { data: markPrice } = (0, _useMarkPrice.useMarkPrice)(symbol);
85
110
  // const markPrice = 1;
86
- const diffOrderEntry = (prev, current) => {
87
- if (!prev)
88
- return null;
111
+ const diffOrderEntry = (prev, current)=>{
112
+ if (!prev) return null;
89
113
  let key, value, preValue;
90
114
  const keys = Object.keys(current);
91
- for (let i = 0; i < keys.length; i++) {
115
+ for(let i = 0; i < keys.length; i++){
92
116
  const k = keys[i];
93
117
  let preveValue = prev[k];
94
118
  let currentValue = current[k];
95
- if (typeof preveValue === "undefined" &&
96
- typeof currentValue === "undefined")
97
- continue;
119
+ if (typeof preveValue === "undefined" && typeof currentValue === "undefined") continue;
98
120
  // if (k === "order_quantity") {
99
121
  // preveValue = Number(preveValue);
100
122
  // currentValue = Number(currentValue);
@@ -106,14 +128,16 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
106
128
  break;
107
129
  }
108
130
  }
109
- if (!key)
110
- return null;
111
- return { key, value, preValue };
131
+ if (!key) return null;
132
+ return {
133
+ key,
134
+ value,
135
+ preValue
136
+ };
112
137
  };
113
- const maxQty = (0, useMaxQty_1.useMaxQty)(symbol, sideValue, isReduceOnly);
114
- const parseString2Number = (order, key) => {
115
- if (typeof order[key] !== "string")
116
- return;
138
+ const maxQty = (0, _useMaxQty.useMaxQty)(symbol, sideValue, isReduceOnly);
139
+ const parseString2Number = (order, key, dp)=>{
140
+ if (typeof order[key] !== "string") return;
117
141
  // fix: delete the comma then remove the forward one of the string
118
142
  // first find the difference between current value and previous value
119
143
  if (order[key] && order[key].startsWith(".")) {
@@ -121,13 +145,22 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
121
145
  }
122
146
  // order[`${key}_origin`] = order[key];
123
147
  order[key] = order[key].replace(/,/g, "");
148
+ // format input by decimal precision
149
+ if (dp && order[key].length > 0) {
150
+ const hasPoint = `${order[key]}`.includes(".");
151
+ const endOfPoint = `${order[key]}`.endsWith(".");
152
+ const decimalPart = `${order[key]}`.split(".");
153
+ if (hasPoint && !endOfPoint) {
154
+ order[key] = `${decimalPart[0]}.${decimalPart[1].slice(0, quoteDP)}`;
155
+ }
156
+ }
124
157
  };
125
158
  // just for performance optimization
126
- const needParse = (0, react_1.useMemo)(() => {
159
+ const needParse = (0, _react.useMemo)(()=>{
127
160
  if (typeof symbolOrOrder === "string") {
128
161
  return null;
129
162
  }
130
- return (0, ramda_1.pick)([
163
+ return (0, _ramda.pick)([
131
164
  "order_price",
132
165
  "side",
133
166
  "order_quantity",
@@ -137,32 +170,30 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
137
170
  "symbol",
138
171
  "total",
139
172
  "reduce_only",
140
- "trigger_price",
141
- ])(
142
- //@ts-ignore
173
+ "trigger_price"
174
+ ])(//@ts-ignore
143
175
  symbolOrOrder);
144
- }, [symbolOrOrder]);
145
- const parsedData = (0, react_1.useMemo)(() => {
176
+ }, [
177
+ symbolOrOrder
178
+ ]);
179
+ const parsedData = (0, _react.useMemo)(()=>{
146
180
  if (typeof symbolOrOrder === "string") {
147
181
  return null;
148
182
  }
149
183
  // clean comma
150
184
  if (typeof symbolOrOrder.order_quantity === "string") {
151
185
  parseString2Number(symbolOrOrder, "order_quantity");
152
- }
153
- else if (typeof symbolOrOrder.order_quantity === "number") {
154
- symbolOrOrder.order_quantity = new utils_1.Decimal(symbolOrOrder.order_quantity)
155
- .toDecimalPlaces(baseDP)
156
- .toString();
186
+ } else if (typeof symbolOrOrder.order_quantity === "number") {
187
+ symbolOrOrder.order_quantity = new _utils.Decimal(symbolOrOrder.order_quantity).toDecimalPlaces(baseDP).toString();
157
188
  }
158
189
  if (typeof symbolOrOrder.order_price === "string") {
159
- parseString2Number(symbolOrOrder, "order_price");
190
+ parseString2Number(symbolOrOrder, "order_price", quoteDP);
160
191
  }
161
192
  if (typeof symbolOrOrder.total === "string") {
162
- parseString2Number(symbolOrOrder, "total");
193
+ parseString2Number(symbolOrOrder, "total", quoteDP);
163
194
  }
164
195
  if (typeof symbolOrOrder.trigger_price === "string") {
165
- parseString2Number(symbolOrOrder, "trigger_price");
196
+ parseString2Number(symbolOrOrder, "trigger_price", quoteDP);
166
197
  }
167
198
  // if (typeof symbolOrOrder.trigger_price === "string") {
168
199
  // symbolOrOrder.trigger_price = symbolOrOrder.trigger_price.replace(
@@ -182,72 +213,67 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
182
213
  needParse?.reduce_only,
183
214
  needParse?.side,
184
215
  needParse?.visible_quantity,
216
+ quoteDP,
217
+ baseDP
185
218
  ]);
186
- const isStopOrder = parsedData?.order_type === types_1.OrderType.STOP_LIMIT ||
187
- parsedData?.order_type === types_1.OrderType.STOP_MARKET;
188
- const [doCreateOrder, { isMutating }] = (0, useMutation_1.useMutation)(isStopOrder ? "/v1/algo/order" : "/v1/order");
219
+ const isStopOrder = parsedData?.order_type === _types.OrderType.STOP_LIMIT || parsedData?.order_type === _types.OrderType.STOP_MARKET;
220
+ const [doCreateOrder, { isMutating }] = (0, _useMutation.useMutation)(isStopOrder ? "/v1/algo/order" : "/v1/order");
189
221
  // const maxQty = 3;
190
- const createOrder = (values) => {
222
+ const createOrder = (values)=>{
191
223
  if (!values.symbol) {
192
- throw new types_1.SDKError("symbol is error");
224
+ throw new _types.SDKError("symbol is error");
193
225
  }
194
226
  if (!values.side) {
195
- throw new types_1.SDKError("side is error");
227
+ throw new _types.SDKError("side is error");
196
228
  }
197
- if (!values ||
198
- typeof values.order_type === "undefined" ||
199
- !(0, ramda_1.includes)(values.order_type, createOrder_1.availableOrderTypes)) {
200
- throw new types_1.SDKError("order_type is error");
229
+ if (!values || typeof values.order_type === "undefined" || !(0, _ramda.includes)(values.order_type, _createOrder.availableOrderTypes)) {
230
+ throw new _types.SDKError("order_type is error");
201
231
  }
202
- const orderCreator = createOrder_1.OrderFactory.create(values.order_type_ext ? values.order_type_ext : values.order_type);
232
+ const orderCreator = _createOrder.OrderFactory.create(values.order_type_ext ? values.order_type_ext : values.order_type);
203
233
  if (!orderCreator) {
204
- return Promise.reject(new types_1.SDKError("orderCreator is null"));
234
+ return Promise.reject(new _types.SDKError("orderCreator is null"));
205
235
  }
206
- return new Promise((resolve, reject) => {
207
- return orderCreator
208
- .validate(values, {
236
+ return new Promise((resolve, reject)=>{
237
+ return orderCreator.validate(values, {
209
238
  symbol: symbolInfo[symbol](),
210
239
  // token: tokenInfo[symbol](),
211
240
  maxQty,
212
- markPrice: markPrice,
213
- })
214
- .then((errors) => {
241
+ markPrice: markPrice
242
+ }).then((errors)=>{
215
243
  submitted.current = true;
216
- if (errors.order_price ||
217
- errors.order_quantity ||
218
- errors.trigger_price) {
244
+ if (errors.order_price || errors.order_quantity || errors.trigger_price || errors.total) {
219
245
  setErrors(errors);
220
246
  reject(errors.order_price?.message || errors.order_quantity?.message);
221
- // throw new SDKError(
222
- // errors.order_price?.message ||
223
- // errors.order_quantity?.message ||
224
- // "order validation error"
225
- // );
226
- }
227
- else {
247
+ // throw new SDKError(
248
+ // errors.order_price?.message ||
249
+ // errors.order_quantity?.message ||
250
+ // "order validation error"
251
+ // );
252
+ } else {
228
253
  const data = orderCreator.create(values, {
229
254
  symbol: symbolInfo[symbol](),
230
255
  maxQty,
231
- markPrice: markPrice,
256
+ markPrice: markPrice
232
257
  });
233
258
  // console.log("------------------", values, data);
234
- return doCreateOrder((0, ramda_1.omit)(["order_type_ext"], {
259
+ return doCreateOrder((0, _ramda.omit)([
260
+ "order_type_ext"
261
+ ], {
235
262
  // ...values,
236
263
  // ...omit(["order_price"], values),
237
- ...data,
238
- })).then((res) => {
264
+ ...data
265
+ })).then((res)=>{
239
266
  // resolve(res);
240
267
  if (res.success) {
241
268
  // TODO: remove when the WS service is fixed
242
269
  if (Array.isArray(res.data.rows)) {
243
270
  ee.emit("algoOrder:cache", {
244
271
  ...res.data.rows[0],
245
- trigger_price: data.trigger_price,
272
+ trigger_price: data.trigger_price
246
273
  });
247
274
  }
248
275
  resolve(res.data);
249
- }
250
- else {
276
+ } else {
251
277
  reject(res);
252
278
  }
253
279
  }, reject);
@@ -256,41 +282,53 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
256
282
  });
257
283
  };
258
284
  /**
259
- * submit form,validate values
260
- * @param values
261
- * @returns
262
- */
263
- const onSubmit = (values) => {
285
+ * submit form,validate values
286
+ * @param values
287
+ * @returns
288
+ */ const onSubmit = (values)=>{
264
289
  if (typeof reduceOnly === "boolean" && reduceOnly && !values.reduce_only) {
265
- return Promise.reject(new types_1.SDKError("The reduceOny parameter of hook does not match your order data"));
290
+ return Promise.reject(new _types.SDKError("The reduceOny parameter of hook does not match your order data"));
266
291
  }
267
292
  return createOrder({
268
293
  ...values,
269
- symbol,
294
+ symbol
270
295
  });
271
296
  };
272
- const submit = (0, react_1.useCallback)(() => {
297
+ const submit = (0, _react.useCallback)(()=>{
273
298
  if (!parsedData) {
274
- throw new types_1.SDKError("Function is not supported, please use onSubmit()");
299
+ throw new _types.SDKError("Function is not supported, please use onSubmit()");
275
300
  }
276
301
  return createOrder(parsedData);
277
- }, [parsedData]);
278
- const calculate = (0, react_1.useCallback)((values, field, value) => {
279
- const fieldHandler = (0, orderEntryHelper_1.getCalculateHandler)(field);
280
- const newValues = (0, ramda_1.compose)(ramda_1.head, (0, orderEntryHelper_1.orderEntityFormatHandle)(baseDP, quoteDP), fieldHandler, orderEntryHelper_1.baseInputHandle)([values, field, value, markPrice, { baseDP, quoteDP }]);
302
+ }, [
303
+ parsedData
304
+ ]);
305
+ const calculate = (0, _react.useCallback)((values, field, value)=>{
306
+ const fieldHandler = (0, _orderEntryHelper.getCalculateHandler)(field);
307
+ const newValues = (0, _ramda.compose)(_ramda.head, (0, _orderEntryHelper.orderEntityFormatHandle)(baseDP, quoteDP), fieldHandler, _orderEntryHelper.baseInputHandle)([
308
+ values,
309
+ field,
310
+ value,
311
+ markPrice,
312
+ {
313
+ baseDP,
314
+ quoteDP
315
+ }
316
+ ]);
281
317
  return newValues;
282
- }, [markPrice]);
318
+ }, [
319
+ markPrice
320
+ ]);
283
321
  // const estLiqPrice = useMemo(() => {}, []);
284
- const validator = (values) => {
285
- const creator = createOrder_1.OrderFactory.create(values.order_type);
322
+ const validator = (values)=>{
323
+ const creator = _createOrder.OrderFactory.create(values.order_type);
286
324
  return creator?.validate(values, {
287
325
  symbol: symbolInfo[symbol](),
288
326
  // token: tokenInfo[symbol](),
289
327
  maxQty,
290
- markPrice: markPrice,
328
+ markPrice: markPrice
291
329
  });
292
330
  };
293
- const formattedOrder = (0, react_1.useMemo)(() => {
331
+ const formattedOrder = (0, _react.useMemo)(()=>{
294
332
  if (!parsedData) {
295
333
  return notSupportData.current;
296
334
  }
@@ -303,7 +341,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
303
341
  prevOrderData.current = parsedData;
304
342
  orderDataCache.current = {
305
343
  ...parsedData,
306
- total: "",
344
+ total: ""
307
345
  };
308
346
  return orderDataCache.current;
309
347
  }
@@ -327,121 +365,114 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
327
365
  prevOrderData.current = parsedData;
328
366
  orderDataCache.current = values;
329
367
  return values;
330
- }, [parsedData, markPrice]);
368
+ }, [
369
+ parsedData,
370
+ markPrice
371
+ ]);
331
372
  /// validator order info
332
- (0, react_1.useEffect)(() => {
333
- if (!markPrice || symbolInfo.isNil)
334
- return;
373
+ (0, _react.useEffect)(()=>{
374
+ if (!markPrice || symbolInfo.isNil) return;
335
375
  // validate order data;
336
- validator(formattedOrder)
337
- ?.then((err) => {
376
+ validator(formattedOrder)?.then((err)=>{
338
377
  setErrors(err);
339
- })
340
- .catch((err) => { });
378
+ }).catch((err)=>{});
341
379
  }, [
342
380
  formattedOrder.broker_id,
343
381
  formattedOrder.order_quantity,
344
382
  formattedOrder.total,
345
383
  formattedOrder.trigger_price,
346
384
  formattedOrder.order_type,
347
- markPrice,
385
+ markPrice
348
386
  ]);
349
387
  //====== update orderbook ask0/bid0 ======
350
- (0, react_1.useEffect)(() => {
388
+ (0, _react.useEffect)(()=>{
351
389
  if (isNewVersion) {
352
390
  if (!optionsValue?.watchOrderbook) {
353
- throw new types_1.SDKError("In order to calculate the estimated liquidation price, the `options.watchOrderbook` parameter must be set to true.");
391
+ throw new _types.SDKError("In order to calculate the estimated liquidation price, the `options.watchOrderbook` parameter must be set to true.");
354
392
  }
355
- }
356
- else {
393
+ } else {
357
394
  if (!optionsValue?.watchOrderbook) {
358
395
  return;
359
396
  }
360
397
  }
361
398
  ee.on("orderbook:update", onOrderbookUpdate);
362
- return () => {
399
+ return ()=>{
363
400
  ee.off("orderbook:update", onOrderbookUpdate);
364
401
  };
365
- }, [optionsValue?.watchOrderbook]);
366
- (0, react_1.useEffect)(() => {
402
+ }, [
403
+ optionsValue?.watchOrderbook
404
+ ]);
405
+ (0, _react.useEffect)(()=>{
367
406
  askAndBid.current = [];
368
- }, [parsedData?.symbol]);
407
+ }, [
408
+ parsedData?.symbol
409
+ ]);
369
410
  //====== end ======
370
- const getPriceAndQty = (symbolOrOrder) => {
411
+ const getPriceAndQty = (symbolOrOrder)=>{
371
412
  let quantity = Number(symbolOrOrder.order_quantity);
372
413
  const orderPrice = Number(symbolOrOrder.order_price);
373
414
  if (isNaN(quantity) || quantity <= 0) {
374
415
  return null;
375
416
  }
376
417
  if (!!options?.watchOrderbook && askAndBid.current.length === 0) {
377
- throw new types_1.SDKError("Please check if you are using the `useOrderbookStream` hook or if the orderBook has data.");
418
+ throw new _types.SDKError("Please check if you are using the `useOrderbookStream` hook or if the orderBook has data.");
378
419
  }
379
- if ((symbolOrOrder.order_type === types_1.OrderType.LIMIT ||
380
- symbolOrOrder.order_type === types_1.OrderType.STOP_LIMIT) &&
381
- isNaN(orderPrice))
382
- return null;
420
+ if ((symbolOrOrder.order_type === _types.OrderType.LIMIT || symbolOrOrder.order_type === _types.OrderType.STOP_LIMIT) && isNaN(orderPrice)) return null;
383
421
  /**
384
- * price
385
- * if order_type = market order,
386
- order side = long, then order_price_i = ask0
387
- order side = short, then order_price_i = bid0
388
- if order_type = limit order
389
- order side = long
390
- limit_price >= ask0, then order_price_i = ask0
391
- limit_price < ask0, then order_price_i = limit_price
392
- order side = short
393
- limit_price <= bid0, then order_price_i = bid0
394
- limit_price > ask0, then order_price_i = ask0
395
- */
396
- let price;
397
- if (symbolOrOrder.order_type === types_1.OrderType.MARKET ||
398
- symbolOrOrder.order_type === types_1.OrderType.STOP_MARKET) {
399
- if (symbolOrOrder.side === types_1.OrderSide.BUY) {
422
+ * price
423
+ * if order_type = market order,
424
+ order side = long, then order_price_i = ask0
425
+ order side = short, then order_price_i = bid0
426
+ if order_type = limit order
427
+ order side = long
428
+ limit_price >= ask0, then order_price_i = ask0
429
+ limit_price < ask0, then order_price_i = limit_price
430
+ order side = short
431
+ limit_price <= bid0, then order_price_i = bid0
432
+ limit_price > ask0, then order_price_i = ask0
433
+ */ let price;
434
+ if (symbolOrOrder.order_type === _types.OrderType.MARKET || symbolOrOrder.order_type === _types.OrderType.STOP_MARKET) {
435
+ if (symbolOrOrder.side === _types.OrderSide.BUY) {
400
436
  price = askAndBid.current[0];
401
- }
402
- else {
437
+ } else {
403
438
  price = askAndBid.current[1];
404
439
  }
405
- }
406
- else {
440
+ } else {
407
441
  // LIMIT order
408
- if (symbolOrOrder.side === types_1.OrderSide.BUY) {
442
+ if (symbolOrOrder.side === _types.OrderSide.BUY) {
409
443
  if (orderPrice >= askAndBid.current[0]) {
410
444
  price = askAndBid.current[0];
411
- }
412
- else {
445
+ } else {
413
446
  price = orderPrice;
414
447
  }
415
- }
416
- else {
448
+ } else {
417
449
  if (orderPrice <= askAndBid.current[1]) {
418
450
  price = askAndBid.current[1];
419
- }
420
- else {
451
+ } else {
421
452
  price = orderPrice;
422
453
  }
423
454
  }
424
455
  }
425
- if (symbolOrOrder.side === types_1.OrderSide.SELL) {
456
+ if (symbolOrOrder.side === _types.OrderSide.SELL) {
426
457
  quantity = -quantity;
427
458
  }
428
- return { price, quantity };
459
+ return {
460
+ price,
461
+ quantity
462
+ };
429
463
  };
430
- const estLiqPrice = (0, react_1.useMemo)(() => {
431
- if (!accountInfo || !parsedData || !markPrice)
432
- return null;
464
+ const estLiqPrice = (0, _react.useMemo)(()=>{
465
+ if (!accountInfo || !parsedData || !markPrice) return null;
433
466
  const result = getPriceAndQty(formattedOrder);
434
- if (result === null)
435
- return null;
467
+ if (result === null) return null;
436
468
  const { price, quantity } = result;
437
- if (!price || !quantity)
438
- return null;
439
- const orderFee = perp_1.order.orderFee({
469
+ if (!price || !quantity) return null;
470
+ const orderFee = _perp.order.orderFee({
440
471
  qty: quantity,
441
472
  price,
442
- futuresTakeFeeRate: Number(accountInfo["futures_taker_fee_rate"]) / 10000,
473
+ futuresTakeFeeRate: Number(accountInfo["futures_taker_fee_rate"]) / 10000
443
474
  });
444
- const liqPrice = perp_1.order.estLiqPrice({
475
+ const liqPrice = _perp.order.estLiqPrice({
445
476
  markPrice,
446
477
  baseIMR,
447
478
  baseMMR,
@@ -452,12 +483,11 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
452
483
  newOrder: {
453
484
  qty: quantity,
454
485
  price,
455
- symbol: parsedData.symbol,
456
- },
486
+ symbol: parsedData.symbol
487
+ }
457
488
  });
458
489
  // console.log("********", liqPrice, markPrice, totalCollateral, result);
459
- if (liqPrice <= 0)
460
- return null;
490
+ if (liqPrice <= 0) return null;
461
491
  return liqPrice;
462
492
  }, [
463
493
  markPrice,
@@ -468,22 +498,20 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
468
498
  formattedOrder?.order_quantity,
469
499
  formattedOrder?.total,
470
500
  formattedOrder?.trigger_price,
471
- accountInfo,
501
+ accountInfo
472
502
  ]);
473
- const estLeverage = (0, react_1.useMemo)(() => {
474
- if (!accountInfo || !parsedData)
475
- return null;
503
+ const estLeverage = (0, _react.useMemo)(()=>{
504
+ if (!accountInfo || !parsedData) return null;
476
505
  const result = getPriceAndQty(formattedOrder);
477
- if (result === null || !result.price || !result.quantity)
478
- return null;
479
- const leverage = perp_1.order.estLeverage({
506
+ if (result === null || !result.price || !result.quantity) return null;
507
+ const leverage = _perp.order.estLeverage({
480
508
  totalCollateral,
481
509
  positions,
482
510
  newOrder: {
483
511
  symbol: parsedData.symbol,
484
512
  qty: result.quantity,
485
- price: result.price,
486
- },
513
+ price: result.price
514
+ }
487
515
  });
488
516
  return leverage;
489
517
  }, [
@@ -494,7 +522,7 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
494
522
  formattedOrder?.order_price,
495
523
  formattedOrder?.order_quantity,
496
524
  formattedOrder?.total,
497
- formattedOrder?.trigger_price,
525
+ formattedOrder?.trigger_price
498
526
  ]);
499
527
  return {
500
528
  maxQty,
@@ -509,15 +537,15 @@ function useOrderEntry(symbolOrOrder, sideOrOptions, reduceOnly, options) {
509
537
  estLeverage,
510
538
  helper: {
511
539
  calculate,
512
- validator,
513
- // clearErrors,
540
+ validator
514
541
  },
515
542
  metaState: {
516
543
  dirty: fieldDirty.current,
517
544
  submitted: submitted.current,
518
- errors,
545
+ errors
519
546
  },
520
- symbolConfig: symbolInfo[symbol](),
547
+ symbolConfig: symbolInfo[symbol]()
521
548
  };
522
549
  }
523
- exports.useOrderEntry = useOrderEntry;
550
+
551
+ //# sourceMappingURL=useOrderEntry.js.map