@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.
- package/esm/configProvider.d.ts +7 -1
- package/esm/configProvider.d.ts.map +1 -1
- package/esm/configProvider.js +44 -18
- package/esm/configProvider.js.map +1 -0
- package/esm/dataProvider.js +24 -19
- package/esm/dataProvider.js.map +1 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -1
- package/esm/index.js.map +1 -0
- package/esm/middleware/signatureMiddleware.js +9 -8
- package/esm/middleware/signatureMiddleware.js.map +1 -0
- package/esm/orderly/orderbook.service.js +39 -28
- package/esm/orderly/orderbook.service.js.map +1 -0
- package/esm/orderly/orderlyHooks.d.ts +3 -0
- package/esm/orderly/orderlyHooks.d.ts.map +1 -1
- package/esm/orderly/orderlyHooks.js +2 -0
- package/esm/orderly/orderlyHooks.js.map +1 -0
- package/esm/orderly/useAccountInfo.js +3 -1
- package/esm/orderly/useAccountInfo.js.map +1 -0
- package/esm/orderly/useChain.js +16 -9
- package/esm/orderly/useChain.js.map +1 -0
- package/esm/orderly/useChains.d.ts +11 -12
- package/esm/orderly/useChains.d.ts.map +1 -1
- package/esm/orderly/useChains.js +68 -46
- package/esm/orderly/useChains.js.map +1 -0
- package/esm/orderly/useCollateral.d.ts +3 -4
- package/esm/orderly/useCollateral.d.ts.map +1 -1
- package/esm/orderly/useCollateral.js +53 -20
- package/esm/orderly/useCollateral.js.map +1 -0
- package/esm/orderly/useDeposit.js +123 -125
- package/esm/orderly/useDeposit.js.map +1 -0
- package/esm/orderly/useFundingRate.js +14 -13
- package/esm/orderly/useFundingRate.js.map +1 -0
- package/esm/orderly/useFundingRates.js +6 -4
- package/esm/orderly/useFundingRates.js.map +1 -0
- package/esm/orderly/useHoldingStream.js +19 -15
- package/esm/orderly/useHoldingStream.js.map +1 -0
- package/esm/orderly/useIndexPrice.js +7 -5
- package/esm/orderly/useIndexPrice.js.map +1 -0
- package/esm/orderly/useLeverage.js +9 -12
- package/esm/orderly/useLeverage.js.map +1 -0
- package/esm/orderly/useMarginRatio.js +27 -13
- package/esm/orderly/useMarginRatio.js.map +1 -0
- package/esm/orderly/useMarkPrice.js +13 -7
- package/esm/orderly/useMarkPrice.js.map +1 -0
- package/esm/orderly/useMarkPricesStream.d.ts +1 -1
- package/esm/orderly/useMarkPricesStream.d.ts.map +1 -1
- package/esm/orderly/useMarkPricesStream.js +9 -8
- package/esm/orderly/useMarkPricesStream.js.map +1 -0
- package/esm/orderly/useMarketTradeStream.js +33 -18
- package/esm/orderly/useMarketTradeStream.js.map +1 -0
- package/esm/orderly/useMarkets.js +144 -81
- package/esm/orderly/useMarkets.js.map +1 -0
- package/esm/orderly/useMarketsStream.js +23 -28
- package/esm/orderly/useMarketsStream.js.map +1 -0
- package/esm/orderly/useMaxQty.d.ts +6 -0
- package/esm/orderly/useMaxQty.d.ts.map +1 -1
- package/esm/orderly/useMaxQty.js +26 -18
- package/esm/orderly/useMaxQty.js.map +1 -0
- package/esm/orderly/useOpenInterest.js +7 -5
- package/esm/orderly/useOpenInterest.js.map +1 -0
- package/esm/orderly/useOrderEntry.js +182 -160
- package/esm/orderly/useOrderEntry.js.map +1 -0
- package/esm/orderly/useOrderStream.js +85 -66
- package/esm/orderly/useOrderStream.js.map +1 -0
- package/esm/orderly/useOrderbookStream.d.ts +2 -3
- package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
- package/esm/orderly/useOrderbookStream.js +173 -103
- package/esm/orderly/useOrderbookStream.js.map +1 -0
- package/esm/orderly/usePositionStream.js +82 -62
- package/esm/orderly/usePositionStream.js.map +1 -0
- package/esm/orderly/usePrivateDataObserver.js +55 -48
- package/esm/orderly/usePrivateDataObserver.js.map +1 -0
- package/esm/orderly/useSettleSubscription.js +8 -6
- package/esm/orderly/useSettleSubscription.js.map +1 -0
- package/esm/orderly/useSymbolPriceRange.js +14 -8
- package/esm/orderly/useSymbolPriceRange.js.map +1 -0
- package/esm/orderly/useSymbolsInfo.js +7 -5
- package/esm/orderly/useSymbolsInfo.js.map +1 -0
- package/esm/orderly/useTickerStream.d.ts +5 -1
- package/esm/orderly/useTickerStream.d.ts.map +1 -1
- package/esm/orderly/useTickerStream.js +26 -29
- package/esm/orderly/useTickerStream.js.map +1 -0
- package/esm/orderly/useWalletSubscription.js +8 -6
- package/esm/orderly/useWalletSubscription.js.map +1 -0
- package/esm/orderly/useWithdraw.js +19 -11
- package/esm/orderly/useWithdraw.js.map +1 -0
- package/esm/orderlyContext.d.ts +8 -1
- package/esm/orderlyContext.d.ts.map +1 -1
- package/esm/orderlyContext.js +2 -1
- package/esm/orderlyContext.js.map +1 -0
- package/esm/services/dataCenter.js +10 -8
- package/esm/services/dataCenter.js.map +1 -0
- package/esm/services/painter/backgroundPaint.js +11 -14
- package/esm/services/painter/backgroundPaint.js.map +1 -0
- package/esm/services/painter/basePaint.js +5 -1
- package/esm/services/painter/basePaint.js.map +1 -0
- package/esm/services/painter/dataPaint.js +53 -50
- package/esm/services/painter/dataPaint.js.map +1 -0
- package/esm/services/painter/layout.config.js +15 -13
- package/esm/services/painter/layout.config.js.map +1 -0
- package/esm/services/painter/painter.js +14 -13
- package/esm/services/painter/painter.js.map +1 -0
- package/esm/services/painter/resource.js +6 -4
- package/esm/services/painter/resource.js.map +1 -0
- package/esm/statusProvider.js +10 -3
- package/esm/statusProvider.js.map +1 -0
- package/esm/unuse/apiPrefixMiddleware.js +18 -16
- package/esm/unuse/apiPrefixMiddleware.js.map +1 -0
- package/esm/unuse/fn.js +3 -1
- package/esm/unuse/fn.js.map +1 -0
- package/esm/unuse/useBalance.js +6 -4
- package/esm/unuse/useBalance.js.map +1 -0
- package/esm/unuse/useFetures.js +26 -18
- package/esm/unuse/useFetures.js.map +1 -0
- package/esm/unuse/useRunOnce.js +10 -7
- package/esm/unuse/useRunOnce.js.map +1 -0
- package/esm/unuse/useSyncEnd.js +5 -4
- package/esm/unuse/useSyncEnd.js.map +1 -0
- package/esm/unuse/useTokenInfo.js +7 -5
- package/esm/unuse/useTokenInfo.js.map +1 -0
- package/esm/unuse/useUnsettlementPnL.js +7 -3
- package/esm/unuse/useUnsettlementPnL.js.map +1 -0
- package/esm/useAccount.js +18 -21
- package/esm/useAccount.js.map +1 -0
- package/esm/useAccountInstance.js +6 -7
- package/esm/useAccountInstance.js.map +1 -0
- package/esm/useBoolean.js +14 -5
- package/esm/useBoolean.js.map +1 -0
- package/esm/useConfig.js +3 -1
- package/esm/useConfig.js.map +1 -0
- package/esm/useEventEmitter.js +4 -2
- package/esm/useEventEmitter.js.map +1 -0
- package/esm/useLazyQuery.js +6 -7
- package/esm/useLazyQuery.js.map +1 -0
- package/esm/useLocalStorage.js +30 -20
- package/esm/useLocalStorage.js.map +1 -0
- package/esm/useMediaQuery.js +11 -9
- package/esm/useMediaQuery.js.map +1 -0
- package/esm/useMutation.js +26 -37
- package/esm/useMutation.js.map +1 -0
- package/esm/useObserve.js +4 -4
- package/esm/useObserve.js.map +1 -0
- package/esm/useParamsCheck.js +8 -10
- package/esm/useParamsCheck.js.map +1 -0
- package/esm/usePoster.js +56 -45
- package/esm/usePoster.js.map +1 -0
- package/esm/usePreloadData.js +9 -5
- package/esm/usePreloadData.js.map +1 -0
- package/esm/usePrivateInfiniteQuery.js +15 -9
- package/esm/usePrivateInfiniteQuery.js.map +1 -0
- package/esm/usePrivateQuery.js +15 -8
- package/esm/usePrivateQuery.js.map +1 -0
- package/esm/useQuery.js +6 -5
- package/esm/useQuery.js.map +1 -0
- package/esm/useSessionStorage.js +28 -19
- package/esm/useSessionStorage.js.map +1 -0
- package/esm/useWS.js +15 -13
- package/esm/useWS.js.map +1 -0
- package/esm/useWsStatus.js +12 -12
- package/esm/useWsStatus.js.map +1 -0
- package/esm/utils/createGetter.js +8 -8
- package/esm/utils/createGetter.js.map +1 -0
- package/esm/utils/createOrder.d.ts +1 -0
- package/esm/utils/createOrder.d.ts.map +1 -1
- package/esm/utils/createOrder.js +59 -43
- package/esm/utils/createOrder.js.map +1 -0
- package/esm/utils/dev.js +6 -4
- package/esm/utils/dev.js.map +1 -0
- package/esm/utils/fetcher.js +3 -1
- package/esm/utils/fetcher.js.map +1 -0
- package/esm/utils/json.js +3 -2
- package/esm/utils/json.js.map +1 -0
- package/esm/utils/orderEntryHelper.js +92 -63
- package/esm/utils/orderEntryHelper.js.map +1 -0
- package/esm/utils/parseHolding.js +10 -6
- package/esm/utils/parseHolding.js.map +1 -0
- package/esm/utils/swr.js +114 -104
- package/esm/utils/swr.js.map +1 -0
- package/esm/version.d.ts +1 -1
- package/esm/version.js +4 -3
- package/esm/version.js.map +1 -0
- package/esm/walletConnectorContext.js +4 -2
- package/esm/walletConnectorContext.js.map +1 -0
- package/lib/configProvider.d.ts +7 -1
- package/lib/configProvider.d.ts.map +1 -1
- package/lib/configProvider.js +108 -56
- package/lib/configProvider.js.map +1 -0
- package/lib/dataProvider.js +50 -29
- package/lib/dataProvider.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +191 -88
- package/lib/index.js.map +1 -0
- package/lib/middleware/signatureMiddleware.js +22 -15
- package/lib/middleware/signatureMiddleware.js.map +1 -0
- package/lib/orderly/orderbook.service.js +59 -33
- package/lib/orderly/orderbook.service.js.map +1 -0
- package/lib/orderly/orderlyHooks.d.ts +3 -0
- package/lib/orderly/orderlyHooks.d.ts.map +1 -1
- package/lib/orderly/orderlyHooks.js +124 -57
- package/lib/orderly/orderlyHooks.js.map +1 -0
- package/lib/orderly/useAccountInfo.js +14 -6
- package/lib/orderly/useAccountInfo.js.map +1 -0
- package/lib/orderly/useChain.js +30 -17
- package/lib/orderly/useChain.js.map +1 -0
- package/lib/orderly/useChains.d.ts +11 -12
- package/lib/orderly/useChains.d.ts.map +1 -1
- package/lib/orderly/useChains.js +100 -59
- package/lib/orderly/useChains.js.map +1 -0
- package/lib/orderly/useCollateral.d.ts +3 -4
- package/lib/orderly/useCollateral.d.ts.map +1 -1
- package/lib/orderly/useCollateral.js +81 -42
- package/lib/orderly/useCollateral.js.map +1 -0
- package/lib/orderly/useDeposit.js +154 -150
- package/lib/orderly/useDeposit.js.map +1 -0
- package/lib/orderly/useFundingRate.js +29 -22
- package/lib/orderly/useFundingRate.js.map +1 -0
- package/lib/orderly/useFundingRates.js +19 -11
- package/lib/orderly/useFundingRates.js.map +1 -0
- package/lib/orderly/useHoldingStream.js +39 -27
- package/lib/orderly/useHoldingStream.js.map +1 -0
- package/lib/orderly/useIndexPrice.js +24 -14
- package/lib/orderly/useIndexPrice.js.map +1 -0
- package/lib/orderly/useLeverage.js +27 -24
- package/lib/orderly/useLeverage.js.map +1 -0
- package/lib/orderly/useMarginRatio.js +49 -29
- package/lib/orderly/useMarginRatio.js.map +1 -0
- package/lib/orderly/useMarkPrice.js +26 -15
- package/lib/orderly/useMarkPrice.js.map +1 -0
- package/lib/orderly/useMarkPricesStream.d.ts +1 -1
- package/lib/orderly/useMarkPricesStream.d.ts.map +1 -1
- package/lib/orderly/useMarkPricesStream.js +26 -17
- package/lib/orderly/useMarkPricesStream.js.map +1 -0
- package/lib/orderly/useMarketTradeStream.js +47 -26
- package/lib/orderly/useMarketTradeStream.js.map +1 -0
- package/lib/orderly/useMarkets.js +172 -95
- package/lib/orderly/useMarkets.js.map +1 -0
- package/lib/orderly/useMarketsStream.js +44 -41
- package/lib/orderly/useMarketsStream.js.map +1 -0
- package/lib/orderly/useMaxQty.d.ts +6 -0
- package/lib/orderly/useMaxQty.d.ts.map +1 -1
- package/lib/orderly/useMaxQty.js +52 -43
- package/lib/orderly/useMaxQty.js.map +1 -0
- package/lib/orderly/useOpenInterest.js +24 -14
- package/lib/orderly/useOpenInterest.js.map +1 -0
- package/lib/orderly/useOrderEntry.js +238 -210
- package/lib/orderly/useOrderEntry.js.map +1 -0
- package/lib/orderly/useOrderStream.js +111 -84
- package/lib/orderly/useOrderStream.js.map +1 -0
- package/lib/orderly/useOrderbookStream.d.ts +2 -3
- package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
- package/lib/orderly/useOrderbookStream.js +227 -148
- package/lib/orderly/useOrderbookStream.js.map +1 -0
- package/lib/orderly/usePositionStream.js +134 -100
- package/lib/orderly/usePositionStream.js.map +1 -0
- package/lib/orderly/usePrivateDataObserver.js +76 -63
- package/lib/orderly/usePrivateDataObserver.js.map +1 -0
- package/lib/orderly/useSettleSubscription.js +25 -15
- package/lib/orderly/useSettleSubscription.js.map +1 -0
- package/lib/orderly/useSymbolPriceRange.js +29 -23
- package/lib/orderly/useSymbolPriceRange.js.map +1 -0
- package/lib/orderly/useSymbolsInfo.js +23 -15
- package/lib/orderly/useSymbolsInfo.js.map +1 -0
- package/lib/orderly/useTickerStream.d.ts +5 -1
- package/lib/orderly/useTickerStream.d.ts.map +1 -1
- package/lib/orderly/useTickerStream.js +51 -48
- package/lib/orderly/useTickerStream.js.map +1 -0
- package/lib/orderly/useWalletSubscription.js +25 -15
- package/lib/orderly/useWalletSubscription.js.map +1 -0
- package/lib/orderly/useWithdraw.js +36 -22
- package/lib/orderly/useWithdraw.js.map +1 -0
- package/lib/orderlyContext.d.ts +8 -1
- package/lib/orderlyContext.d.ts.map +1 -1
- package/lib/orderlyContext.js +22 -6
- package/lib/orderlyContext.js.map +1 -0
- package/lib/services/dataCenter.js +15 -11
- package/lib/services/dataCenter.js.map +1 -0
- package/lib/services/painter/backgroundPaint.js +21 -18
- package/lib/services/painter/backgroundPaint.js.map +1 -0
- package/lib/services/painter/basePaint.js +14 -4
- package/lib/services/painter/basePaint.js.map +1 -0
- package/lib/services/painter/dataPaint.js +67 -58
- package/lib/services/painter/dataPaint.js.map +1 -0
- package/lib/services/painter/layout.config.js +25 -16
- package/lib/services/painter/layout.config.js.map +1 -0
- package/lib/services/painter/painter.js +27 -20
- package/lib/services/painter/painter.js.map +1 -0
- package/lib/services/painter/resource.js +15 -7
- package/lib/services/painter/resource.js.map +1 -0
- package/lib/statusProvider.js +31 -10
- package/lib/statusProvider.js.map +1 -0
- package/lib/unuse/apiPrefixMiddleware.js +30 -22
- package/lib/unuse/apiPrefixMiddleware.js.map +1 -0
- package/lib/unuse/fn.js +14 -5
- package/lib/unuse/fn.js.map +1 -0
- package/lib/unuse/useBalance.js +23 -13
- package/lib/unuse/useBalance.js.map +1 -0
- package/lib/unuse/useFetures.js +41 -28
- package/lib/unuse/useFetures.js.map +1 -0
- package/lib/unuse/useRunOnce.js +61 -11
- package/lib/unuse/useRunOnce.js.map +1 -0
- package/lib/unuse/useSyncEnd.js +17 -10
- package/lib/unuse/useSyncEnd.js.map +1 -0
- package/lib/unuse/useTokenInfo.js +20 -12
- package/lib/unuse/useTokenInfo.js.map +1 -0
- package/lib/unuse/useUnsettlementPnL.js +21 -11
- package/lib/unuse/useUnsettlementPnL.js.map +1 -0
- package/lib/useAccount.js +32 -29
- package/lib/useAccount.js.map +1 -0
- package/lib/useAccountInstance.js +27 -20
- package/lib/useAccountInstance.js.map +1 -0
- package/lib/useBoolean.js +25 -10
- package/lib/useBoolean.js.map +1 -0
- package/lib/useConfig.js +15 -7
- package/lib/useConfig.js.map +1 -0
- package/lib/useEventEmitter.js +23 -13
- package/lib/useEventEmitter.js.map +1 -0
- package/lib/useLazyQuery.js +25 -23
- package/lib/useLazyQuery.js.map +1 -0
- package/lib/useLocalStorage.js +44 -28
- package/lib/useLocalStorage.js.map +1 -0
- package/lib/useMediaQuery.js +22 -14
- package/lib/useMediaQuery.js.map +1 -0
- package/lib/useMutation.js +47 -52
- package/lib/useMutation.js.map +1 -0
- package/lib/useObserve.js +22 -8
- package/lib/useObserve.js.map +1 -0
- package/lib/useParamsCheck.js +18 -14
- package/lib/useParamsCheck.js.map +1 -0
- package/lib/usePoster.js +80 -74
- package/lib/usePoster.js.map +1 -0
- package/lib/usePreloadData.js +21 -11
- package/lib/usePreloadData.js.map +1 -0
- package/lib/usePrivateInfiniteQuery.js +36 -22
- package/lib/usePrivateInfiniteQuery.js.map +1 -0
- package/lib/usePrivateQuery.js +35 -25
- package/lib/usePrivateQuery.js.map +1 -0
- package/lib/useQuery.js +24 -20
- package/lib/useQuery.js.map +1 -0
- package/lib/useSessionStorage.js +41 -26
- package/lib/useSessionStorage.js.map +1 -0
- package/lib/useWS.js +42 -32
- package/lib/useWS.js.map +1 -0
- package/lib/useWsStatus.js +34 -20
- package/lib/useWsStatus.js.map +1 -0
- package/lib/utils/createGetter.js +19 -14
- package/lib/utils/createGetter.js.map +1 -0
- package/lib/utils/createOrder.d.ts +1 -0
- package/lib/utils/createOrder.d.ts.map +1 -1
- package/lib/utils/createOrder.js +133 -82
- package/lib/utils/createOrder.js.map +1 -0
- package/lib/utils/dev.js +13 -9
- package/lib/utils/dev.js.map +1 -0
- package/lib/utils/fetcher.js +13 -5
- package/lib/utils/fetcher.js.map +1 -0
- package/lib/utils/json.js +12 -5
- package/lib/utils/json.js.map +1 -0
- package/lib/utils/orderEntryHelper.js +125 -82
- package/lib/utils/orderEntryHelper.js.map +1 -0
- package/lib/utils/parseHolding.js +19 -9
- package/lib/utils/parseHolding.js.map +1 -0
- package/lib/utils/swr.js +134 -111
- package/lib/utils/swr.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +13 -4
- package/lib/version.js.map +1 -0
- package/lib/walletConnectorContext.js +23 -7
- package/lib/walletConnectorContext.js.map +1 -0
- package/package.json +17 -9
|
@@ -1,64 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
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
|
|
31
|
+
throw new _types.SDKError("symbol is required");
|
|
25
32
|
}
|
|
26
33
|
if (!symbolOrOrder.side) {
|
|
27
|
-
throw new
|
|
34
|
+
throw new _types.SDKError("Order side is required");
|
|
28
35
|
}
|
|
29
36
|
if (!symbolOrOrder.order_type) {
|
|
30
|
-
throw new
|
|
37
|
+
throw new _types.SDKError("order_type is required");
|
|
31
38
|
}
|
|
32
39
|
}
|
|
33
|
-
const prevOrderData = (0,
|
|
40
|
+
const prevOrderData = (0, _react.useRef)(null);
|
|
34
41
|
// Cache data from the last calculate
|
|
35
|
-
const orderDataCache = (0,
|
|
42
|
+
const orderDataCache = (0, _react.useRef)(null);
|
|
36
43
|
//
|
|
37
|
-
const notSupportData = (0,
|
|
38
|
-
const [errors, setErrors] = (0,
|
|
39
|
-
const ee = (0,
|
|
40
|
-
const fieldDirty = (0,
|
|
41
|
-
const submitted = (0,
|
|
42
|
-
const askAndBid = (0,
|
|
43
|
-
const onOrderbookUpdate = (0,
|
|
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,
|
|
47
|
-
const symbolInfo = (0,
|
|
53
|
+
const { freeCollateral, totalCollateral, positions, accountInfo } = (0, _useCollateral.useCollateral)();
|
|
54
|
+
const symbolInfo = (0, _useSymbolsInfo.useSymbolsInfo)();
|
|
48
55
|
// const tokenInfo = useTokenInfo();
|
|
49
|
-
const symbol = (0,
|
|
56
|
+
const symbol = (0, _react.useMemo)(()=>{
|
|
50
57
|
if (typeof symbolOrOrder === "string") {
|
|
51
58
|
return symbolOrOrder;
|
|
52
59
|
}
|
|
53
60
|
return symbolOrOrder.symbol;
|
|
54
|
-
}, [
|
|
55
|
-
|
|
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
|
-
}, [
|
|
61
|
-
|
|
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
|
-
}, [
|
|
70
|
-
|
|
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
|
-
}, [
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const
|
|
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
|
|
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
|
-
|
|
111
|
-
|
|
131
|
+
if (!key) return null;
|
|
132
|
+
return {
|
|
133
|
+
key,
|
|
134
|
+
value,
|
|
135
|
+
preValue
|
|
136
|
+
};
|
|
112
137
|
};
|
|
113
|
-
const maxQty = (0,
|
|
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,
|
|
159
|
+
const needParse = (0, _react.useMemo)(()=>{
|
|
127
160
|
if (typeof symbolOrOrder === "string") {
|
|
128
161
|
return null;
|
|
129
162
|
}
|
|
130
|
-
return (0,
|
|
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
|
-
}, [
|
|
145
|
-
|
|
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
|
-
|
|
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 ===
|
|
187
|
-
|
|
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
|
|
224
|
+
throw new _types.SDKError("symbol is error");
|
|
193
225
|
}
|
|
194
226
|
if (!values.side) {
|
|
195
|
-
throw new
|
|
227
|
+
throw new _types.SDKError("side is error");
|
|
196
228
|
}
|
|
197
|
-
if (!values ||
|
|
198
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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,
|
|
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
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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
|
|
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,
|
|
297
|
+
const submit = (0, _react.useCallback)(()=>{
|
|
273
298
|
if (!parsedData) {
|
|
274
|
-
throw new
|
|
299
|
+
throw new _types.SDKError("Function is not supported, please use onSubmit()");
|
|
275
300
|
}
|
|
276
301
|
return createOrder(parsedData);
|
|
277
|
-
}, [
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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
|
-
}, [
|
|
318
|
+
}, [
|
|
319
|
+
markPrice
|
|
320
|
+
]);
|
|
283
321
|
// const estLiqPrice = useMemo(() => {}, []);
|
|
284
|
-
const validator = (values)
|
|
285
|
-
const creator =
|
|
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,
|
|
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
|
-
}, [
|
|
368
|
+
}, [
|
|
369
|
+
parsedData,
|
|
370
|
+
markPrice
|
|
371
|
+
]);
|
|
331
372
|
/// validator order info
|
|
332
|
-
(0,
|
|
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,
|
|
388
|
+
(0, _react.useEffect)(()=>{
|
|
351
389
|
if (isNewVersion) {
|
|
352
390
|
if (!optionsValue?.watchOrderbook) {
|
|
353
|
-
throw new
|
|
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
|
-
}, [
|
|
366
|
-
|
|
402
|
+
}, [
|
|
403
|
+
optionsValue?.watchOrderbook
|
|
404
|
+
]);
|
|
405
|
+
(0, _react.useEffect)(()=>{
|
|
367
406
|
askAndBid.current = [];
|
|
368
|
-
}, [
|
|
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
|
|
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 ===
|
|
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
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
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 ===
|
|
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 ===
|
|
456
|
+
if (symbolOrOrder.side === _types.OrderSide.SELL) {
|
|
426
457
|
quantity = -quantity;
|
|
427
458
|
}
|
|
428
|
-
return {
|
|
459
|
+
return {
|
|
460
|
+
price,
|
|
461
|
+
quantity
|
|
462
|
+
};
|
|
429
463
|
};
|
|
430
|
-
const estLiqPrice = (0,
|
|
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
|
-
|
|
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 =
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
550
|
+
|
|
551
|
+
//# sourceMappingURL=useOrderEntry.js.map
|