@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
|
@@ -4,25 +4,21 @@ const needNumberOnlyFields = [
|
|
|
4
4
|
"order_quantity",
|
|
5
5
|
"order_price",
|
|
6
6
|
"trigger_price",
|
|
7
|
-
"total"
|
|
7
|
+
"total"
|
|
8
8
|
];
|
|
9
9
|
/// only save number
|
|
10
|
-
export const cleanStringStyle = (str)
|
|
10
|
+
export const cleanStringStyle = (str)=>{
|
|
11
11
|
if (typeof str !== "string") {
|
|
12
12
|
str = str.toString();
|
|
13
13
|
}
|
|
14
14
|
str = str.replace(/,/g, "");
|
|
15
15
|
// clear extra character expect number and .
|
|
16
|
-
str = str
|
|
17
|
-
.replace(/[^\d.]/g, "")
|
|
18
|
-
.replace(".", "$#$")
|
|
19
|
-
.replace(/\./g, "")
|
|
20
|
-
.replace("$#$", ".");
|
|
16
|
+
str = str.replace(/[^\d.]/g, "").replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
|
|
21
17
|
return str;
|
|
22
18
|
};
|
|
23
19
|
export function baseInputHandle(inputs) {
|
|
24
20
|
let [values, input, value, markPrice, config] = inputs;
|
|
25
|
-
needNumberOnlyFields.forEach((field)
|
|
21
|
+
needNumberOnlyFields.forEach((field)=>{
|
|
26
22
|
if (typeof values[field] !== "undefined") {
|
|
27
23
|
// @ts-ignore
|
|
28
24
|
values[field] = cleanStringStyle(values[field]);
|
|
@@ -34,14 +30,14 @@ export function baseInputHandle(inputs) {
|
|
|
34
30
|
return [
|
|
35
31
|
{
|
|
36
32
|
...values,
|
|
37
|
-
[input]: value
|
|
33
|
+
[input]: value
|
|
38
34
|
},
|
|
39
35
|
input,
|
|
40
36
|
value,
|
|
41
37
|
markPrice,
|
|
42
|
-
config
|
|
38
|
+
config
|
|
43
39
|
];
|
|
44
|
-
|
|
40
|
+
// return [values, input, value, markPrice];
|
|
45
41
|
}
|
|
46
42
|
export function orderTypeHandle(inputs) {
|
|
47
43
|
const [values, input, value, markPrice, config] = inputs;
|
|
@@ -50,15 +46,20 @@ export function orderTypeHandle(inputs) {
|
|
|
50
46
|
values.total = "";
|
|
51
47
|
}
|
|
52
48
|
}
|
|
53
|
-
return [
|
|
49
|
+
return [
|
|
50
|
+
values,
|
|
51
|
+
input,
|
|
52
|
+
value,
|
|
53
|
+
markPrice,
|
|
54
|
+
config
|
|
55
|
+
];
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
56
58
|
* digital precision processing
|
|
57
59
|
* @param inputs
|
|
58
60
|
* @returns
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
return function (inputs) {
|
|
61
|
+
*/ export function orderEntityFormatHandle(baseTick, quoteTick) {
|
|
62
|
+
return function(inputs) {
|
|
62
63
|
const [values, input, value, markPrice, config] = inputs;
|
|
63
64
|
// TODO: formatting only deals with the thousandths and so on
|
|
64
65
|
// if (!!values.order_quantity) {
|
|
@@ -81,18 +82,32 @@ export function orderEntityFormatHandle(baseTick, quoteTick) {
|
|
|
81
82
|
// values.total = new Decimal(values.total).toFixed(quoteTick);
|
|
82
83
|
// }
|
|
83
84
|
// }
|
|
84
|
-
return [
|
|
85
|
+
return [
|
|
86
|
+
values,
|
|
87
|
+
input,
|
|
88
|
+
value,
|
|
89
|
+
markPrice,
|
|
90
|
+
config
|
|
91
|
+
];
|
|
85
92
|
};
|
|
86
93
|
}
|
|
87
94
|
/**
|
|
88
95
|
* price input handle
|
|
89
96
|
* @param inputs
|
|
90
97
|
* @returns
|
|
91
|
-
*/
|
|
92
|
-
function priceInputHandle(inputs) {
|
|
98
|
+
*/ function priceInputHandle(inputs) {
|
|
93
99
|
const [values, input, value, markPrice, config] = inputs;
|
|
94
100
|
if (value === "") {
|
|
95
|
-
return [
|
|
101
|
+
return [
|
|
102
|
+
{
|
|
103
|
+
...values,
|
|
104
|
+
total: ""
|
|
105
|
+
},
|
|
106
|
+
input,
|
|
107
|
+
value,
|
|
108
|
+
markPrice,
|
|
109
|
+
config
|
|
110
|
+
];
|
|
96
111
|
}
|
|
97
112
|
// when entering the price, total also needs to be linked
|
|
98
113
|
const price = new Decimal(value);
|
|
@@ -102,21 +117,23 @@ function priceInputHandle(inputs) {
|
|
|
102
117
|
}
|
|
103
118
|
price.toDecimalPlaces(Math.min(priceDP, config.quoteDP));
|
|
104
119
|
if (!values.order_quantity && !values.total) {
|
|
105
|
-
return [
|
|
120
|
+
return [
|
|
121
|
+
values,
|
|
122
|
+
input,
|
|
123
|
+
value,
|
|
124
|
+
markPrice,
|
|
125
|
+
config
|
|
126
|
+
];
|
|
106
127
|
}
|
|
107
128
|
const newValue = {
|
|
108
|
-
...values
|
|
129
|
+
...values
|
|
109
130
|
};
|
|
110
131
|
if (values.order_quantity) {
|
|
111
132
|
// total = price.mul(values.order_quantity);
|
|
112
133
|
newValue.total = price.mul(values.order_quantity).todp(2).toString();
|
|
113
|
-
}
|
|
114
|
-
else if (values.total) {
|
|
134
|
+
} else if (values.total) {
|
|
115
135
|
// total = new Decimal(values.total);
|
|
116
|
-
newValue.order_quantity = new Decimal(values.total)
|
|
117
|
-
.div(price)
|
|
118
|
-
.todp(config.baseDP)
|
|
119
|
-
.toString();
|
|
136
|
+
newValue.order_quantity = new Decimal(values.total).div(price).todp(config.baseDP).toString();
|
|
120
137
|
}
|
|
121
138
|
// const quantityDP = total.dp();
|
|
122
139
|
return [
|
|
@@ -128,18 +145,26 @@ function priceInputHandle(inputs) {
|
|
|
128
145
|
input,
|
|
129
146
|
value,
|
|
130
147
|
markPrice,
|
|
131
|
-
config
|
|
148
|
+
config
|
|
132
149
|
];
|
|
133
150
|
}
|
|
134
151
|
/**
|
|
135
152
|
* quantity input handle
|
|
136
153
|
* @param inputs
|
|
137
154
|
* @returns
|
|
138
|
-
*/
|
|
139
|
-
function quantityInputHandle(inputs) {
|
|
155
|
+
*/ function quantityInputHandle(inputs) {
|
|
140
156
|
const [values, input, value, markPrice, config] = inputs;
|
|
141
157
|
if (value === "") {
|
|
142
|
-
return [
|
|
158
|
+
return [
|
|
159
|
+
{
|
|
160
|
+
...values,
|
|
161
|
+
total: ""
|
|
162
|
+
},
|
|
163
|
+
input,
|
|
164
|
+
value,
|
|
165
|
+
markPrice,
|
|
166
|
+
config
|
|
167
|
+
];
|
|
143
168
|
}
|
|
144
169
|
let quantity = new Decimal(value);
|
|
145
170
|
const quantityDP = quantity.dp();
|
|
@@ -150,19 +175,16 @@ function quantityInputHandle(inputs) {
|
|
|
150
175
|
}
|
|
151
176
|
// if(values.order_type === OrderType.MARKET) {
|
|
152
177
|
// }
|
|
153
|
-
if (values.order_type === OrderType.MARKET ||
|
|
154
|
-
values.order_type === OrderType.STOP_MARKET) {
|
|
178
|
+
if (values.order_type === OrderType.MARKET || values.order_type === OrderType.STOP_MARKET) {
|
|
155
179
|
const price = markPrice;
|
|
156
180
|
values.total = quantity.mul(price).todp(2).toString();
|
|
157
181
|
}
|
|
158
|
-
if (values.order_type === OrderType.LIMIT ||
|
|
159
|
-
values.order_type === OrderType.STOP_LIMIT) {
|
|
182
|
+
if (values.order_type === OrderType.LIMIT || values.order_type === OrderType.STOP_LIMIT) {
|
|
160
183
|
if (values.order_price) {
|
|
161
184
|
const price = Number(values.order_price);
|
|
162
185
|
const total = quantity.mul(price);
|
|
163
186
|
values.total = total.todp(2).toString();
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
187
|
+
} else {
|
|
166
188
|
values.total = "";
|
|
167
189
|
}
|
|
168
190
|
}
|
|
@@ -170,29 +192,34 @@ function quantityInputHandle(inputs) {
|
|
|
170
192
|
// total.todp(Math.min(config.quoteDP, totalDP));
|
|
171
193
|
return [
|
|
172
194
|
{
|
|
173
|
-
...values
|
|
174
|
-
// total: total.todp(2).toNumber(),
|
|
195
|
+
...values
|
|
175
196
|
},
|
|
176
197
|
input,
|
|
177
198
|
value,
|
|
178
199
|
markPrice,
|
|
179
|
-
config
|
|
200
|
+
config
|
|
180
201
|
];
|
|
181
202
|
}
|
|
182
203
|
/**
|
|
183
204
|
* total input handle
|
|
184
205
|
* @param inputs
|
|
185
206
|
* @returns
|
|
186
|
-
*/
|
|
187
|
-
function totalInputHandle(inputs) {
|
|
207
|
+
*/ function totalInputHandle(inputs) {
|
|
188
208
|
const [values, input, value, markPrice, config] = inputs;
|
|
189
209
|
if (value === "") {
|
|
190
|
-
return [
|
|
210
|
+
return [
|
|
211
|
+
{
|
|
212
|
+
...values,
|
|
213
|
+
order_quantity: ""
|
|
214
|
+
},
|
|
215
|
+
input,
|
|
216
|
+
value,
|
|
217
|
+
markPrice,
|
|
218
|
+
config
|
|
219
|
+
];
|
|
191
220
|
}
|
|
192
221
|
let price = markPrice;
|
|
193
|
-
if ((values.order_type === OrderType.LIMIT ||
|
|
194
|
-
values.order_type === OrderType.STOP_LIMIT) &&
|
|
195
|
-
!!values.order_price) {
|
|
222
|
+
if ((values.order_type === OrderType.LIMIT || values.order_type === OrderType.STOP_LIMIT) && !!values.order_price) {
|
|
196
223
|
price = Number(values.order_price);
|
|
197
224
|
}
|
|
198
225
|
let total = new Decimal(value);
|
|
@@ -205,38 +232,40 @@ function totalInputHandle(inputs) {
|
|
|
205
232
|
return [
|
|
206
233
|
{
|
|
207
234
|
...values,
|
|
208
|
-
order_quantity: quantity
|
|
209
|
-
.toDecimalPlaces(Math.min(config.baseDP, quantity.dp()))
|
|
210
|
-
.toString(),
|
|
235
|
+
order_quantity: quantity.toDecimalPlaces(Math.min(config.baseDP, quantity.dp())).toString()
|
|
211
236
|
},
|
|
212
237
|
input,
|
|
213
238
|
value,
|
|
214
239
|
markPrice,
|
|
215
|
-
config
|
|
240
|
+
config
|
|
216
241
|
];
|
|
217
242
|
}
|
|
218
243
|
/**
|
|
219
244
|
* other input handle
|
|
220
245
|
* @param inputs
|
|
221
246
|
* @returns
|
|
222
|
-
*/
|
|
223
|
-
function otherInputHandle(inputs) {
|
|
247
|
+
*/ function otherInputHandle(inputs) {
|
|
224
248
|
return inputs;
|
|
225
249
|
}
|
|
226
|
-
export const getCalculateHandler = (fieldName)
|
|
227
|
-
switch
|
|
250
|
+
export const getCalculateHandler = (fieldName)=>{
|
|
251
|
+
switch(fieldName){
|
|
228
252
|
case "order_type":
|
|
229
253
|
return orderTypeHandle;
|
|
230
|
-
case "order_quantity":
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
254
|
+
case "order_quantity":
|
|
255
|
+
{
|
|
256
|
+
return quantityInputHandle;
|
|
257
|
+
}
|
|
258
|
+
case "order_price":
|
|
259
|
+
{
|
|
260
|
+
return priceInputHandle;
|
|
261
|
+
}
|
|
262
|
+
case "total":
|
|
263
|
+
{
|
|
264
|
+
return totalInputHandle;
|
|
265
|
+
}
|
|
239
266
|
default:
|
|
240
267
|
return otherInputHandle;
|
|
241
268
|
}
|
|
242
269
|
};
|
|
270
|
+
|
|
271
|
+
//# sourceMappingURL=orderEntryHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/orderEntryHelper.ts"],"sourcesContent":["import { OrderEntity, OrderType } from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport type OrderEntityKey = keyof OrderEntity & string;\n\n// index 3: markPrice\ntype orderEntryInputs = [\n Partial<OrderEntity>,\n // to update field\n keyof OrderEntity,\n any,\n number,\n {\n baseDP: number;\n quoteDP: number;\n }\n];\n\ntype orderEntryInputHandle = (inputs: orderEntryInputs) => orderEntryInputs;\n\nconst needNumberOnlyFields: (keyof OrderEntity)[] = [\n \"order_quantity\",\n \"order_price\",\n \"trigger_price\",\n \"total\",\n];\n\n/// only save number\nexport const cleanStringStyle = (str: string | number): string => {\n if (typeof str !== \"string\") {\n str = str.toString();\n }\n str = str.replace(/,/g, \"\");\n // clear extra character expect number and .\n str = str\n .replace(/[^\\d.]/g, \"\")\n .replace(\".\", \"$#$\")\n .replace(/\\./g, \"\")\n .replace(\"$#$\", \".\");\n\n return str;\n};\n\nexport function baseInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n let [values, input, value, markPrice, config] = inputs;\n\n needNumberOnlyFields.forEach((field) => {\n if (typeof values[field] !== \"undefined\") {\n // @ts-ignore\n values[field] = cleanStringStyle(values[field] as string);\n }\n });\n\n if (needNumberOnlyFields.includes(input)) {\n value = cleanStringStyle(value);\n }\n\n return [\n {\n ...values,\n [input]: value,\n },\n input,\n value,\n markPrice,\n config,\n ];\n\n // return [values, input, value, markPrice];\n}\n\nexport function orderTypeHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === OrderType.LIMIT || value === OrderType.STOP_LIMIT) {\n if (values.order_price === \"\") {\n values.total = \"\";\n }\n }\n\n return [values, input, value, markPrice, config];\n}\n\n/**\n * digital precision processing\n * @param inputs\n * @returns\n */\nexport function orderEntityFormatHandle(baseTick: number, quoteTick: number) {\n return function (inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n // TODO: formatting only deals with the thousandths and so on\n // if (!!values.order_quantity) {\n //\n // const d = new Decimal(values.order_quantity);\n // const dp = d.dp();\n // if (dp > quoteTick) {\n // values.order_quantity = d.toDecimalPlaces(baseTick).toNumber();\n // }\n // }\n\n // if (!!values.order_price && values.order_type === OrderType.LIMIT) {\n // const sd = new Decimal(values.order_price).sd(false);\n // if (sd > quoteTick) {\n // values.order_price = new Decimal(values.order_price).toFixed(quoteTick);\n // }\n // }\n\n // if (!!values.total) {\n // const sd = new Decimal(values.total).sd(false);\n // if (sd > quoteTick) {\n // values.total = new Decimal(values.total).toFixed(quoteTick);\n // }\n // }\n\n return [values, input, value, markPrice, config];\n };\n}\n\n/**\n * price input handle\n * @param inputs\n * @returns\n */\nfunction priceInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === \"\") {\n return [{ ...values, total: \"\" }, input, value, markPrice, config];\n }\n\n // when entering the price, total also needs to be linked\n const price = new Decimal(value);\n const priceDP = price.dp();\n\n if (priceDP > config.quoteDP) {\n values.order_price = price.toDecimalPlaces(config.quoteDP).toString();\n }\n\n price.toDecimalPlaces(Math.min(priceDP, config.quoteDP));\n\n if (!values.order_quantity && !values.total) {\n return [values, input, value, markPrice, config];\n }\n\n const newValue = {\n ...values,\n };\n\n if (values.order_quantity) {\n // total = price.mul(values.order_quantity);\n newValue.total = price.mul(values.order_quantity).todp(2).toString();\n } else if (values.total) {\n // total = new Decimal(values.total);\n newValue.order_quantity = new Decimal(values.total)\n .div(price)\n .todp(config.baseDP)\n .toString();\n }\n\n // const quantityDP = total.dp();\n return [\n // {\n // ...values,\n // total: total.todp(2).toString(),\n // },\n newValue,\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * quantity input handle\n * @param inputs\n * @returns\n */\nfunction quantityInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n\n if (value === \"\") {\n return [{ ...values, total: \"\" }, input, value, markPrice, config];\n }\n\n let quantity = new Decimal(value);\n const quantityDP = quantity.dp();\n\n // check the length for precision and recalculate\n if (quantityDP > config.baseDP) {\n quantity = quantity.toDecimalPlaces(config.baseDP);\n values.order_quantity = quantity.toNumber();\n }\n\n // if(values.order_type === OrderType.MARKET) {\n\n // }\n\n if (\n values.order_type === OrderType.MARKET ||\n values.order_type === OrderType.STOP_MARKET\n ) {\n const price = markPrice;\n values.total = quantity.mul(price).todp(2).toString();\n }\n\n if (\n values.order_type === OrderType.LIMIT ||\n values.order_type === OrderType.STOP_LIMIT\n ) {\n if (values.order_price) {\n const price = Number(values.order_price);\n const total = quantity.mul(price);\n values.total = total.todp(2).toString();\n } else {\n values.total = \"\";\n }\n }\n\n // const totalDP = total.dp();\n // total.todp(Math.min(config.quoteDP, totalDP));\n\n return [\n {\n ...values,\n // total: total.todp(2).toNumber(),\n },\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * total input handle\n * @param inputs\n * @returns\n */\nfunction totalInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n const [values, input, value, markPrice, config] = inputs;\n if (value === \"\") {\n return [{ ...values, order_quantity: \"\" }, input, value, markPrice, config];\n }\n\n let price = markPrice;\n\n if (\n (values.order_type === OrderType.LIMIT ||\n values.order_type === OrderType.STOP_LIMIT) &&\n !!values.order_price\n ) {\n price = Number(values.order_price);\n }\n let total = new Decimal(value);\n const totalDP = total.dp();\n\n if (totalDP > config.quoteDP) {\n total = total.toDecimalPlaces(config.quoteDP);\n values.total = total.toString();\n }\n\n const quantity = total.div(price);\n\n return [\n {\n ...values,\n order_quantity: quantity\n .toDecimalPlaces(Math.min(config.baseDP, quantity.dp()))\n .toString(),\n },\n input,\n value,\n markPrice,\n config,\n ];\n}\n\n/**\n * other input handle\n * @param inputs\n * @returns\n */\nfunction otherInputHandle(inputs: orderEntryInputs): orderEntryInputs {\n return inputs;\n}\n\nexport const getCalculateHandler = (\n fieldName: string\n): orderEntryInputHandle => {\n switch (fieldName) {\n case \"order_type\":\n return orderTypeHandle;\n case \"order_quantity\": {\n return quantityInputHandle;\n }\n case \"order_price\": {\n return priceInputHandle;\n }\n case \"total\": {\n return totalInputHandle;\n }\n default:\n return otherInputHandle;\n }\n};\n"],"names":["OrderType","Decimal","needNumberOnlyFields","cleanStringStyle","str","toString","replace","baseInputHandle","inputs","values","input","value","markPrice","config","forEach","field","includes","orderTypeHandle","LIMIT","STOP_LIMIT","order_price","total","orderEntityFormatHandle","baseTick","quoteTick","priceInputHandle","price","priceDP","dp","quoteDP","toDecimalPlaces","Math","min","order_quantity","newValue","mul","todp","div","baseDP","quantityInputHandle","quantity","quantityDP","toNumber","order_type","MARKET","STOP_MARKET","Number","totalInputHandle","totalDP","otherInputHandle","getCalculateHandler","fieldName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
export const parseHolding = (holding, markPrices)
|
|
1
|
+
export const parseHolding = (holding, markPrices)=>{
|
|
2
2
|
// if (!holding || !markPrices) {
|
|
3
3
|
// return [zero, zero];
|
|
4
4
|
// }
|
|
5
5
|
const nonUSDC = [];
|
|
6
6
|
let USDC_holding = 0;
|
|
7
|
-
holding.forEach((item)
|
|
7
|
+
holding.forEach((item)=>{
|
|
8
8
|
if (item.token === "USDC") {
|
|
9
9
|
USDC_holding = item.holding;
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
10
|
+
} else {
|
|
12
11
|
nonUSDC.push({
|
|
13
12
|
holding: item.holding,
|
|
14
13
|
markPrice: markPrices[item.token] ?? 0,
|
|
15
14
|
// markPrice: 0,
|
|
16
|
-
discount: 0
|
|
15
|
+
discount: 0
|
|
17
16
|
});
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
|
-
return [
|
|
19
|
+
return [
|
|
20
|
+
USDC_holding,
|
|
21
|
+
nonUSDC
|
|
22
|
+
];
|
|
21
23
|
};
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=parseHolding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/parseHolding.ts"],"sourcesContent":["import { API } from \"@orderly.network/types\";\n\ntype NonUSDCHolding = {\n holding: number;\n markPrice: number;\n // margin replacement rate, default 0\n discount: number;\n};\n\nexport const parseHolding = (\n holding: API.Holding[],\n markPrices: Record<string, number>\n): [number, NonUSDCHolding[]] => {\n // if (!holding || !markPrices) {\n // return [zero, zero];\n // }\n const nonUSDC: NonUSDCHolding[] = [];\n\n let USDC_holding = 0;\n\n holding.forEach((item) => {\n if (item.token === \"USDC\") {\n USDC_holding = item.holding;\n } else {\n nonUSDC.push({\n holding: item.holding,\n markPrice: markPrices[item.token] ?? 0,\n // markPrice: 0,\n discount: 0,\n });\n }\n });\n\n return [USDC_holding, nonUSDC];\n};\n"],"names":["parseHolding","holding","markPrices","nonUSDC","USDC_holding","forEach","item","token","push","markPrice","discount"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":"AASA,OAAO,MAAMA,eAAe,CAC1BC,SACAC;IAEA,iCAAiC;IACjC,2BAA2B;IAC3B,MAAM;IACN,MAAMC,UAA4B,EAAE;IAEpC,IAAIC,eAAe;IAEnBH,QAAQI,OAAO,CAAC,CAACC;QACf,IAAIA,KAAKC,KAAK,KAAK,QAAQ;YACzBH,eAAeE,KAAKL,OAAO;QAC7B,OAAO;YACLE,QAAQK,IAAI,CAAC;gBACXP,SAASK,KAAKL,OAAO;gBACrBQ,WAAWP,UAAU,CAACI,KAAKC,KAAK,CAAC,IAAI;gBACrC,gBAAgB;gBAChBG,UAAU;YACZ;QACF;IACF;IAEA,OAAO;QAACN;QAAcD;KAAQ;AAChC,EAAE"}
|
package/esm/utils/swr.js
CHANGED
|
@@ -1,27 +1,35 @@
|
|
|
1
1
|
import { camelCaseToUnderscoreCase } from "@orderly.network/utils";
|
|
2
2
|
import { lensIndex, over } from "ramda";
|
|
3
|
-
export const generateKeyFun = (args)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
3
|
+
export const generateKeyFun = (args)=>(pageIndex, previousPageData)=>{
|
|
4
|
+
// reached the end
|
|
5
|
+
if (previousPageData && !previousPageData.rows?.length) return null;
|
|
6
|
+
const { status, symbol, side, size = 100 } = args;
|
|
7
|
+
const search = new URLSearchParams([
|
|
8
|
+
[
|
|
9
|
+
"size",
|
|
10
|
+
size.toString()
|
|
11
|
+
],
|
|
12
|
+
[
|
|
13
|
+
"page",
|
|
14
|
+
`${pageIndex + 1}`
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
"source_type",
|
|
18
|
+
"ALL"
|
|
19
|
+
]
|
|
20
|
+
]);
|
|
21
|
+
if (status) {
|
|
22
|
+
search.set(`status`, status);
|
|
23
|
+
}
|
|
24
|
+
if (symbol) {
|
|
25
|
+
search.set(`symbol`, symbol);
|
|
26
|
+
}
|
|
27
|
+
if (side) {
|
|
28
|
+
search.set(`side`, side);
|
|
29
|
+
}
|
|
30
|
+
return `/v1/orders?${search.toString()}`;
|
|
31
|
+
};
|
|
32
|
+
export const updateOrdersHandler = (key, updatedOrder, orders)=>{
|
|
25
33
|
if (!orders) {
|
|
26
34
|
return;
|
|
27
35
|
}
|
|
@@ -31,9 +39,7 @@ export const updateOrdersHandler = (key, updatedOrder, orders) => {
|
|
|
31
39
|
let formattedOrder = {
|
|
32
40
|
...underscoreOrder,
|
|
33
41
|
updated_time: updatedOrder.timestamp,
|
|
34
|
-
type: typeof underscoreOrder.type === 'string' ? updatedOrder.type.replace("_ORDER", "") : updatedOrder.type
|
|
35
|
-
//@ts-ignore
|
|
36
|
-
// visible_quantity: updatedOrder.visibleQuantity || updatedOrder.visible,
|
|
42
|
+
type: typeof underscoreOrder.type === 'string' ? updatedOrder.type.replace("_ORDER", "") : updatedOrder.type
|
|
37
43
|
};
|
|
38
44
|
if (typeof formattedOrder.visible_quantity === "undefined") {
|
|
39
45
|
// check visible field;
|
|
@@ -54,125 +60,124 @@ export const updateOrdersHandler = (key, updatedOrder, orders) => {
|
|
|
54
60
|
// @ts-ignore
|
|
55
61
|
formattedOrder = newObj;
|
|
56
62
|
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// formattedOrder.created_time = updatedOrder.timestamp;
|
|
63
|
+
} else {
|
|
64
|
+
// formattedOrder.created_time = updatedOrder.timestamp;
|
|
60
65
|
}
|
|
61
66
|
// const index = lensIndex(0);
|
|
62
|
-
const orderId = updatedOrder.orderId ||
|
|
63
|
-
updatedOrder.algoOrderId;
|
|
67
|
+
const orderId = updatedOrder.orderId || updatedOrder.algoOrderId;
|
|
64
68
|
const isExisting = orderIsExisting(orders, orderId);
|
|
65
|
-
const status = updatedOrder.status ||
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
key.startsWith("orders:REJECTED")) {
|
|
74
|
-
return orders;
|
|
75
|
-
}
|
|
76
|
-
return insertOrders(orders, formattedOrder);
|
|
77
|
-
}
|
|
78
|
-
case "CANCELLED": {
|
|
79
|
-
if (key.startsWith("orders:FILLED") ||
|
|
80
|
-
key.startsWith("orders:REJECTED")) {
|
|
81
|
-
return orders;
|
|
82
|
-
}
|
|
83
|
-
if (key.startsWith("orders:NEW") || key.startsWith("orders:INCOMPLETE")) {
|
|
84
|
-
return removeOrderIfExisting(orders, orderId);
|
|
85
|
-
}
|
|
86
|
-
if (key.startsWith("orders:CANCELLED")) {
|
|
69
|
+
const status = updatedOrder.status || updatedOrder.rootAlgoStatus;
|
|
70
|
+
switch(status){
|
|
71
|
+
case "NEW":
|
|
72
|
+
{
|
|
73
|
+
// chceck if the order is already in the list
|
|
74
|
+
if (isExisting || key.startsWith("orders:CANCELLED") || key.startsWith("orders:FILLED") || key.startsWith("orders:REJECTED")) {
|
|
75
|
+
return orders;
|
|
76
|
+
}
|
|
87
77
|
return insertOrders(orders, formattedOrder);
|
|
88
78
|
}
|
|
89
|
-
|
|
90
|
-
|
|
79
|
+
case "CANCELLED":
|
|
80
|
+
{
|
|
81
|
+
if (key.startsWith("orders:FILLED") || key.startsWith("orders:REJECTED")) {
|
|
82
|
+
return orders;
|
|
83
|
+
}
|
|
84
|
+
if (key.startsWith("orders:NEW") || key.startsWith("orders:INCOMPLETE")) {
|
|
85
|
+
return removeOrderIfExisting(orders, orderId);
|
|
86
|
+
}
|
|
87
|
+
if (key.startsWith("orders:CANCELLED")) {
|
|
88
|
+
return insertOrders(orders, formattedOrder);
|
|
89
|
+
}
|
|
90
|
+
return updateOrders(orders, formattedOrder);
|
|
91
|
+
}
|
|
91
92
|
case "REPLACED":
|
|
92
93
|
return updateOrders(orders, formattedOrder);
|
|
93
|
-
case "FILLED":
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
key.startsWith("orders:NEW")) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
case "FILLED":
|
|
95
|
+
{
|
|
96
|
+
if (isExisting) {
|
|
97
|
+
// for new list, remove the order if it exists
|
|
98
|
+
if (key.startsWith("orders:INCOMPLETE") || key.startsWith("orders:NEW")) {
|
|
99
|
+
// if fullfilled, remove from the list
|
|
100
|
+
if (updatedOrder.totalExecutedQuantity === updatedOrder.quantity) {
|
|
101
|
+
return removeOrderIfExisting(orders, orderId);
|
|
102
|
+
}
|
|
103
|
+
// update
|
|
104
|
+
return updateOrders(orders, formattedOrder);
|
|
101
105
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
key.startsWith("orders:INCOMPLETE") ||
|
|
110
|
-
key.startsWith("orders:NEW")) {
|
|
111
|
-
return orders;
|
|
106
|
+
} else {
|
|
107
|
+
// for filled list, insert the order if it doesn't exist
|
|
108
|
+
if (key.startsWith("orders:CANCELLED") || key.startsWith("orders:INCOMPLETE") || key.startsWith("orders:NEW")) {
|
|
109
|
+
return orders;
|
|
110
|
+
}
|
|
111
|
+
// if filled/history list:
|
|
112
|
+
return insertOrders(orders, formattedOrder);
|
|
112
113
|
}
|
|
113
|
-
// if filled/history list:
|
|
114
|
-
return insertOrders(orders, formattedOrder);
|
|
115
114
|
}
|
|
116
|
-
}
|
|
117
115
|
default:
|
|
118
116
|
return orders;
|
|
119
117
|
}
|
|
120
118
|
};
|
|
121
119
|
function updateOrders(orders, formattedOrder) {
|
|
122
|
-
return orders.map((item)
|
|
120
|
+
return orders.map((item)=>{
|
|
123
121
|
return {
|
|
124
122
|
// ...item,
|
|
125
123
|
meta: item.meta,
|
|
126
|
-
rows: item.rows.map((order)
|
|
124
|
+
rows: item.rows.map((order)=>{
|
|
127
125
|
const isAlgoOrder = "algo_order_id" in order;
|
|
128
|
-
if (isAlgoOrder &&
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
if (isAlgoOrder && formattedOrder?.algo_order_id === order?.algo_order_id) {
|
|
127
|
+
return {
|
|
128
|
+
...order,
|
|
129
|
+
...formattedOrder
|
|
130
|
+
};
|
|
131
131
|
}
|
|
132
132
|
if (!isAlgoOrder && formattedOrder?.order_id === order?.order_id) {
|
|
133
|
-
return {
|
|
133
|
+
return {
|
|
134
|
+
...order,
|
|
135
|
+
...formattedOrder
|
|
136
|
+
};
|
|
134
137
|
}
|
|
135
138
|
return order;
|
|
136
|
-
})
|
|
139
|
+
})
|
|
137
140
|
};
|
|
138
141
|
});
|
|
139
142
|
}
|
|
140
143
|
function insertOrders(orders, formattedOrder) {
|
|
141
144
|
const index = lensIndex(0);
|
|
142
|
-
return over(index, (item)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
return over(index, (item)=>({
|
|
146
|
+
meta: {
|
|
147
|
+
...item.meta,
|
|
148
|
+
total: item.meta.total + 1
|
|
149
|
+
},
|
|
150
|
+
rows: [
|
|
151
|
+
formattedOrder,
|
|
152
|
+
...item.rows
|
|
153
|
+
]
|
|
154
|
+
}), orders);
|
|
149
155
|
}
|
|
150
156
|
function removeOrderIfExisting(orders, orderId) {
|
|
151
157
|
const isExisting = orderIsExisting(orders, orderId);
|
|
152
|
-
if (!isExisting)
|
|
153
|
-
|
|
154
|
-
return orders.map((item) => {
|
|
158
|
+
if (!isExisting) return orders;
|
|
159
|
+
return orders.map((item)=>{
|
|
155
160
|
return {
|
|
156
|
-
meta: {
|
|
157
|
-
|
|
161
|
+
meta: {
|
|
162
|
+
...item.meta,
|
|
163
|
+
total: item.meta.total - 1
|
|
164
|
+
},
|
|
165
|
+
rows: item.rows.filter((order)=>{
|
|
158
166
|
const isAlgoOrder = "algo_order_id" in order;
|
|
159
|
-
return isAlgoOrder
|
|
160
|
-
|
|
161
|
-
: order.order_id !== orderId;
|
|
162
|
-
}),
|
|
167
|
+
return isAlgoOrder ? order.algo_order_id !== orderId : order.order_id !== orderId;
|
|
168
|
+
})
|
|
163
169
|
};
|
|
164
170
|
});
|
|
165
171
|
}
|
|
166
172
|
function findOrderIndex(orders, orderId) {
|
|
167
173
|
let index = 0;
|
|
168
174
|
let index2;
|
|
169
|
-
for
|
|
175
|
+
for(let idx = 0; idx < orders.length; idx++){
|
|
170
176
|
index = idx;
|
|
171
177
|
const item = orders[idx];
|
|
172
|
-
for
|
|
178
|
+
for(let idx2 = 0; idx2 < item.rows.length; idx2++){
|
|
173
179
|
const element = item.rows[idx2];
|
|
174
|
-
if (element.algo_order_id === orderId ||
|
|
175
|
-
element.order_id === orderId) {
|
|
180
|
+
if (element.algo_order_id === orderId || element.order_id === orderId) {
|
|
176
181
|
index2 = idx2;
|
|
177
182
|
break;
|
|
178
183
|
}
|
|
@@ -181,15 +186,20 @@ function findOrderIndex(orders, orderId) {
|
|
|
181
186
|
if (typeof index2 === "undefined") {
|
|
182
187
|
return;
|
|
183
188
|
}
|
|
184
|
-
return [
|
|
189
|
+
return [
|
|
190
|
+
index,
|
|
191
|
+
index2
|
|
192
|
+
];
|
|
185
193
|
}
|
|
186
194
|
function orderIsExisting(orders, orderId) {
|
|
187
195
|
const index = findOrderIndex(orders, orderId);
|
|
188
196
|
return Array.isArray(index);
|
|
189
197
|
}
|
|
190
198
|
function object2underscore(obj) {
|
|
191
|
-
return Object.keys(obj).reduce((acc, key)
|
|
199
|
+
return Object.keys(obj).reduce((acc, key)=>{
|
|
192
200
|
acc[camelCaseToUnderscoreCase(key)] = obj[key];
|
|
193
201
|
return acc;
|
|
194
202
|
}, {});
|
|
195
203
|
}
|
|
204
|
+
|
|
205
|
+
//# sourceMappingURL=swr.js.map
|