@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useOrderEntry.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { \n API,\n OrderEntity,\n OrderSide,\n OrderType,\n SDKError,\n} from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { Decimal, getPrecisionByNumber } from \"@orderly.network/utils\";\nimport { useMutation } from \"../useMutation\";\nimport { compose, head, includes, omit, pick } from \"ramda\";\nimport {\n baseInputHandle,\n getCalculateHandler,\n orderEntityFormatHandle,\n} from \"../utils/orderEntryHelper\";\nimport { useCollateral } from \"./useCollateral\";\nimport { useMaxQty } from \"./useMaxQty\";\nimport { OrderFactory, availableOrderTypes } from \"../utils/createOrder\";\nimport { useMarkPrice } from \"./useMarkPrice\";\nimport { order as orderUtils } from \"@orderly.network/perp\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { useDebouncedCallback } from \"use-debounce\";\n\nexport type UseOrderEntryOptions = {\n commify?: boolean;\n // Whether to observe the orderbook, if it is a limit order, the orderbook will automatically calculate the est. liq. price when it is updated.\n watchOrderbook?: boolean;\n validate?: (\n data: OrderEntity\n ) => { [P in keyof OrderEntity]?: string } | null | undefined;\n};\n\nexport type UseOrderEntryMetaState = {\n errors:\n | { [P in keyof OrderEntity]?: { type: string; message: string } }\n | null\n | undefined;\n dirty: { [P in keyof OrderEntity]?: boolean } | null | undefined;\n submitted: boolean;\n};\n\nexport type UseOrderEntryReturn = {\n // Maximum open position\n maxQty: number;\n freeCollateral: number;\n markPrice: number;\n estLiqPrice?: number | null;\n estLeverage?: number | null;\n //@Deprecated\n onSubmit: (order: OrderEntity) => Promise<any>;\n submit: () => Promise<OrderEntity>;\n // order: data,\n submitting: boolean;\n formattedOrder: Partial<OrderEntity>;\n helper: {\n calculate: (\n values: Partial<OrderEntity>,\n field: keyof OrderEntity,\n value: any\n ) => Partial<OrderEntity>;\n validator: (values: Partial<OrderEntity>) => any;\n // clearErrors: () => void;\n // setValues: (values: Partial<OrderEntity>) => void;\n };\n // formState: any;\n metaState: UseOrderEntryMetaState;\n symbolConfig: API.SymbolExt;\n};\n\nexport type OrderParams = Required<\n Pick<OrderEntity, \"side\" | \"order_type\" | \"symbol\">\n> &\n Partial<Omit<OrderEntity, \"side\" | \"symbol\" | \"order_type\">>;\n\n/**\n * Create Order\n * @example\n * ```tsx\n * import { useOrderEntry } from \"@orderly.network/hooks\";\n * import {OrderSide, OrderType} from '@orderly.network/types';\n *\n * const { formattedOrder, onSubmit, helper } = useOrderEntry({\n * symbol: \"PERP_ETH_USDC\",\n * side: OrderSide.BUY,\n * order_type: OrderType.LIMIT,\n * order_price: 10000,\n * order_quantity: 1,\n * },{\n * // **Note:** it's required\n * watchOrderbook: true,\n * });\n * ```\n */\nexport function useOrderEntry(\n order: OrderParams,\n options?: UseOrderEntryOptions\n): UseOrderEntryReturn;\n/**\n * @deprecated\n */\nexport function useOrderEntry(\n symbol: string,\n side: OrderSide,\n reduceOnly: boolean\n): UseOrderEntryReturn;\nexport function useOrderEntry(\n symbolOrOrder: string | OrderParams,\n sideOrOptions?: OrderSide | UseOrderEntryOptions,\n reduceOnly?: boolean,\n options?: UseOrderEntryOptions\n): UseOrderEntryReturn {\n // if symbolOrOrder is string, then it's deprecated\n let isNewVersion = false;\n if (typeof symbolOrOrder === \"object\") {\n isNewVersion = true;\n\n if (!symbolOrOrder.symbol) {\n throw new SDKError(\"symbol is required\");\n }\n\n if (!symbolOrOrder.side) {\n throw new SDKError(\"Order side is required\");\n }\n\n if (!symbolOrOrder.order_type) {\n throw new SDKError(\"order_type is required\");\n }\n }\n\n const prevOrderData = useRef<Partial<OrderEntity> | null>(null);\n // Cache data from the last calculate\n const orderDataCache = useRef<Partial<OrderEntity> | null>(null);\n //\n const notSupportData = useRef<Partial<OrderEntity>>({});\n\n const [errors, setErrors] = useState<any>(null);\n\n const ee = useEventEmitter();\n\n const fieldDirty = useRef<{ [K in keyof OrderEntity]?: boolean }>({});\n const submitted = useRef<boolean>(false);\n const askAndBid = useRef<number[]>([]); // 0: ask0, 1: bid0\n\n const onOrderbookUpdate = useDebouncedCallback((data: number[]) => {\n askAndBid.current = data;\n }, 200);\n\n const { freeCollateral, totalCollateral, positions, accountInfo } =\n useCollateral();\n\n const symbolInfo = useSymbolsInfo();\n // const tokenInfo = useTokenInfo();\n\n const symbol = useMemo(() => {\n if (typeof symbolOrOrder === \"string\") {\n return symbolOrOrder;\n }\n return symbolOrOrder.symbol!;\n }, [symbolOrOrder]);\n\n const optionsValue = useMemo(() => {\n if (typeof sideOrOptions === \"object\") {\n return sideOrOptions;\n }\n\n return options;\n }, [sideOrOptions]);\n\n const isReduceOnly = useMemo<boolean>(() => {\n if (typeof reduceOnly === \"boolean\") {\n return reduceOnly;\n }\n\n if (typeof symbolOrOrder === \"object\") {\n return !!symbolOrOrder.reduce_only;\n }\n\n return false;\n }, [symbolOrOrder, reduceOnly]);\n\n const sideValue = useMemo(() => {\n if (typeof symbolOrOrder === \"object\") {\n return symbolOrOrder.side;\n }\n\n // if (typeof sideOrOptions === \"string\") {\n return sideOrOptions as OrderSide;\n // }\n }, [symbolOrOrder, sideOrOptions]);\n\n const baseDP = useMemo(\n () => getPrecisionByNumber(symbolInfo[symbol](\"base_tick\", 0)),\n [symbolInfo]\n );\n const quoteDP = useMemo(() => {\n return getPrecisionByNumber(symbolInfo[symbol](\"quote_tick\", 0));\n }, [symbolInfo]);\n\n const baseIMR = useMemo(\n () => symbolInfo[symbol](\"base_imr\", 0),\n [symbolInfo]\n );\n const baseMMR = useMemo(\n () => symbolInfo[symbol](\"base_mmr\", 0),\n [symbolInfo]\n );\n\n const { data: markPrice } = useMarkPrice(symbol);\n // const markPrice = 1;\n\n const diffOrderEntry = (\n prev: Partial<OrderParams>,\n current: Partial<OrderParams>\n ): { key: keyof OrderParams; value: any; preValue: any } | null => {\n if (!prev) return null;\n let key, value, preValue;\n const keys = Object.keys(current) as (keyof OrderParams)[];\n\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n\n let preveValue = prev[k];\n let currentValue = current[k];\n\n if (\n typeof preveValue === \"undefined\" &&\n typeof currentValue === \"undefined\"\n )\n continue;\n\n // if (k === \"order_quantity\") {\n // preveValue = Number(preveValue);\n // currentValue = Number(currentValue);\n // }\n\n if (preveValue !== currentValue) {\n key = k;\n value = currentValue;\n preValue = preveValue;\n break;\n }\n }\n\n if (!key) return null;\n\n return { key, value, preValue };\n };\n\n const maxQty = useMaxQty(symbol, sideValue, isReduceOnly);\n\n const parseString2Number = (\n order: OrderParams & Record<string, any>,\n key: keyof OrderParams,\n dp?: number,\n ) => {\n if (typeof order[key] !== \"string\") return;\n // fix: delete the comma then remove the forward one of the string\n // first find the difference between current value and previous value\n\n if (order[key] && (order[key] as string).startsWith(\".\")) {\n (order[key] as string) = `0${order[key]}`;\n }\n\n // order[`${key}_origin`] = order[key];\n (order[key] as string) = (order[key] as string).replace(/,/g, \"\");\n\n // format input by decimal precision\n if (dp && (order[key] as string).length > 0) {\n const hasPoint = `${order[key]}`.includes(\".\");\n const endOfPoint = `${order[key]}`.endsWith(\".\");\n const decimalPart = `${order[key]}`.split(\".\");\n if (hasPoint && !endOfPoint) {\n (order[key] as string) = `${decimalPart[0]}.${decimalPart[1].slice(0,quoteDP)}`;\n }\n }\n };\n\n // just for performance optimization\n const needParse = useMemo(() => {\n if (typeof symbolOrOrder === \"string\") {\n return null;\n }\n return pick([\n \"order_price\",\n \"side\",\n \"order_quantity\",\n \"visible_quantity\",\n \"order_type\",\n \"order_type_ext\",\n \"symbol\",\n \"total\",\n \"reduce_only\",\n \"trigger_price\",\n ])(\n //@ts-ignore\n symbolOrOrder\n );\n }, [symbolOrOrder]);\n\n const parsedData = useMemo<OrderParams | null>(() => {\n if (typeof symbolOrOrder === \"string\") {\n return null;\n }\n // clean comma\n\n if (typeof symbolOrOrder.order_quantity === \"string\") {\n parseString2Number(symbolOrOrder, \"order_quantity\");\n } else if (typeof symbolOrOrder.order_quantity === \"number\") {\n symbolOrOrder.order_quantity = new Decimal(symbolOrOrder.order_quantity)\n .toDecimalPlaces(baseDP)\n .toString();\n }\n\n if (typeof symbolOrOrder.order_price === \"string\") {\n parseString2Number(symbolOrOrder, \"order_price\", quoteDP);\n }\n\n if (typeof symbolOrOrder.total === \"string\") {\n parseString2Number(symbolOrOrder, \"total\", quoteDP);\n }\n\n if (typeof symbolOrOrder.trigger_price === \"string\") {\n parseString2Number(symbolOrOrder, \"trigger_price\", quoteDP);\n }\n\n // if (typeof symbolOrOrder.trigger_price === \"string\") {\n // symbolOrOrder.trigger_price = symbolOrOrder.trigger_price.replace(\n // /,/g,\n // \"\"\n // );\n // }\n\n return symbolOrOrder;\n }, [\n needParse?.order_price,\n needParse?.order_quantity,\n needParse?.total,\n needParse?.trigger_price,\n needParse?.order_type,\n needParse?.order_type_ext,\n needParse?.symbol,\n needParse?.reduce_only,\n needParse?.side,\n needParse?.visible_quantity,\n quoteDP,\n baseDP,\n ]);\n\n const isStopOrder =\n parsedData?.order_type === OrderType.STOP_LIMIT ||\n parsedData?.order_type === OrderType.STOP_MARKET;\n\n const [doCreateOrder, { isMutating }] = useMutation<OrderEntity, any>(\n isStopOrder ? \"/v1/algo/order\" : \"/v1/order\"\n );\n\n // const maxQty = 3;\n\n const createOrder = (values: Partial<OrderEntity>): Promise<OrderEntity> => {\n if (!values.symbol) {\n throw new SDKError(\"symbol is error\");\n }\n\n if (!values.side) {\n throw new SDKError(\"side is error\");\n }\n\n if (\n !values ||\n typeof values.order_type === \"undefined\" ||\n !includes(values.order_type, availableOrderTypes)\n ) {\n throw new SDKError(\"order_type is error\");\n }\n\n const orderCreator = OrderFactory.create(\n values.order_type_ext ? values.order_type_ext : values.order_type\n );\n\n if (!orderCreator) {\n return Promise.reject(new SDKError(\"orderCreator is null\"));\n }\n\n \n\n return new Promise((resolve, reject) => {\n return orderCreator\n .validate(values, {\n symbol: symbolInfo[symbol](),\n // token: tokenInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n })\n .then((errors) => {\n submitted.current = true;\n\n if (\n errors.order_price ||\n errors.order_quantity ||\n errors.trigger_price ||\n errors.total\n ) {\n setErrors(errors);\n reject(\n errors.order_price?.message || errors.order_quantity?.message\n );\n // throw new SDKError(\n // errors.order_price?.message ||\n // errors.order_quantity?.message ||\n // \"order validation error\"\n // );\n } else {\n const data = orderCreator.create(values as OrderEntity, {\n symbol: symbolInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n });\n\n // console.log(\"------------------\", values, data);\n\n return doCreateOrder(\n omit([\"order_type_ext\"], {\n // ...values,\n // ...omit([\"order_price\"], values),\n ...data,\n })\n ).then((res) => {\n // resolve(res);\n if (res.success) {\n // TODO: remove when the WS service is fixed\n\n if (Array.isArray(res.data.rows)) {\n ee.emit(\"algoOrder:cache\", {\n ...res.data.rows[0],\n trigger_price: data.trigger_price,\n });\n }\n\n resolve(res.data);\n } else {\n reject(res);\n }\n }, reject);\n }\n });\n });\n };\n\n /**\n * submit form,validate values\n * @param values\n * @returns\n */\n const onSubmit = (values: OrderEntity) => {\n if (typeof reduceOnly === \"boolean\" && reduceOnly && !values.reduce_only) {\n return Promise.reject(\n new SDKError(\n \"The reduceOny parameter of hook does not match your order data\"\n )\n );\n }\n return createOrder({\n ...values,\n symbol,\n });\n };\n\n const submit = useCallback(() => {\n if (!parsedData) {\n throw new SDKError(\"Function is not supported, please use onSubmit()\");\n }\n return createOrder(parsedData);\n }, [parsedData]);\n\n const calculate = useCallback(\n (\n values: Partial<OrderEntity>,\n field: keyof OrderEntity,\n value: any\n ): Partial<OrderEntity> => {\n const fieldHandler = getCalculateHandler(field);\n const newValues = compose(\n head,\n orderEntityFormatHandle(baseDP, quoteDP),\n fieldHandler,\n baseInputHandle\n )([values, field, value, markPrice, { baseDP, quoteDP }]);\n\n return newValues as Partial<OrderEntity>;\n },\n [markPrice]\n );\n\n // const estLiqPrice = useMemo(() => {}, []);\n\n const validator = (values: any) => {\n const creator = OrderFactory.create(values.order_type);\n\n return creator?.validate(values, {\n symbol: symbolInfo[symbol](),\n // token: tokenInfo[symbol](),\n maxQty,\n markPrice: markPrice,\n });\n };\n\n const formattedOrder = useMemo<Partial<OrderEntity>>(() => {\n if (!parsedData) {\n return notSupportData.current;\n }\n // prevOrderData.current = symbolOrOrder;\n\n if (!prevOrderData.current) {\n // prevOrderData.current = {\n // ...symbolOrOrder,\n // total: \"\",\n // };\n\n prevOrderData.current = parsedData;\n orderDataCache.current = {\n ...parsedData,\n total: \"\",\n };\n\n return orderDataCache.current as Partial<OrderEntity>;\n }\n\n // diff order entry\n const item = diffOrderEntry(prevOrderData.current, parsedData);\n\n // console.log(prevOrderData.current, symbolOrOrder, item);\n // console.log(item);\n\n if (!item) {\n return orderDataCache.current as Partial<OrderEntity>;\n }\n\n // set field dirty\n if (typeof parsedData.order_price !== \"undefined\") {\n fieldDirty.current.order_price = true;\n }\n if (typeof parsedData.order_quantity !== \"undefined\") {\n fieldDirty.current.order_quantity = true;\n }\n\n const values = calculate(parsedData, item.key, item.value);\n\n values.isStopOrder = values.order_type?.startsWith(\"STOP\") || false;\n\n values.total = values.total || \"\";\n\n prevOrderData.current = parsedData;\n orderDataCache.current = values;\n\n return values;\n }, [parsedData, markPrice]);\n\n /// validator order info\n useEffect(() => {\n if (!markPrice || symbolInfo.isNil) return;\n // validate order data;\n validator(formattedOrder)\n ?.then((err) => {\n setErrors(err);\n })\n .catch((err) => {});\n }, [\n formattedOrder.broker_id,\n formattedOrder.order_quantity,\n formattedOrder.total,\n formattedOrder.trigger_price,\n formattedOrder.order_type,\n markPrice,\n ]);\n\n //====== update orderbook ask0/bid0 ======\n useEffect(() => {\n if (isNewVersion) {\n if (!optionsValue?.watchOrderbook) {\n throw new SDKError(\n \"In order to calculate the estimated liquidation price, the `options.watchOrderbook` parameter must be set to true.\"\n );\n }\n } else {\n if (!optionsValue?.watchOrderbook) {\n return;\n }\n }\n\n ee.on(\"orderbook:update\", onOrderbookUpdate);\n\n return () => {\n ee.off(\"orderbook:update\", onOrderbookUpdate);\n };\n }, [optionsValue?.watchOrderbook]);\n\n useEffect(() => {\n askAndBid.current = [];\n }, [parsedData?.symbol]);\n\n //====== end ======\n\n const getPriceAndQty = (\n symbolOrOrder: OrderEntity\n ): { quantity: number; price: number } | null => {\n let quantity = Number(symbolOrOrder.order_quantity);\n const orderPrice = Number(symbolOrOrder.order_price);\n\n if (isNaN(quantity) || quantity <= 0) {\n return null;\n }\n\n if (!!options?.watchOrderbook && askAndBid.current.length === 0) {\n throw new SDKError(\n \"Please check if you are using the `useOrderbookStream` hook or if the orderBook has data.\"\n );\n }\n\n if (\n (symbolOrOrder.order_type === OrderType.LIMIT ||\n symbolOrOrder.order_type === OrderType.STOP_LIMIT) &&\n isNaN(orderPrice)\n )\n return null;\n\n /**\n * price\n * if order_type = market order,\n order side = long, then order_price_i = ask0\n order side = short, then order_price_i = bid0\n if order_type = limit order\n order side = long\n limit_price >= ask0, then order_price_i = ask0\n limit_price < ask0, then order_price_i = limit_price\n order side = short\n limit_price <= bid0, then order_price_i = bid0\n limit_price > ask0, then order_price_i = ask0\n */\n let price: number | undefined;\n\n if (\n symbolOrOrder.order_type === OrderType.MARKET ||\n symbolOrOrder.order_type === OrderType.STOP_MARKET\n ) {\n if (symbolOrOrder.side === OrderSide.BUY) {\n price = askAndBid.current[0];\n } else {\n price = askAndBid.current[1];\n }\n } else {\n // LIMIT order\n if (symbolOrOrder.side === OrderSide.BUY) {\n if (orderPrice >= askAndBid.current[0]) {\n price = askAndBid.current[0];\n } else {\n price = orderPrice;\n }\n } else {\n if (orderPrice <= askAndBid.current[1]) {\n price = askAndBid.current[1];\n } else {\n price = orderPrice;\n }\n }\n }\n\n if (symbolOrOrder.side === OrderSide.SELL) {\n quantity = -quantity;\n }\n\n return { price, quantity };\n };\n\n const estLiqPrice = useMemo(() => {\n if (!accountInfo || !parsedData || !markPrice) return null;\n\n const result = getPriceAndQty(formattedOrder as OrderEntity);\n if (result === null) return null;\n const { price, quantity } = result;\n if (!price || !quantity) return null;\n\n const orderFee = orderUtils.orderFee({\n qty: quantity,\n price,\n futuresTakeFeeRate: Number(accountInfo[\"futures_taker_fee_rate\"]) / 10000,\n });\n\n const liqPrice = orderUtils.estLiqPrice({\n markPrice,\n baseIMR,\n baseMMR,\n totalCollateral,\n positions,\n IMR_Factor: accountInfo[\"imr_factor\"][symbol],\n orderFee,\n newOrder: {\n qty: quantity,\n price,\n symbol: parsedData.symbol!,\n },\n });\n\n // console.log(\"********\", liqPrice, markPrice, totalCollateral, result);\n\n if (liqPrice <= 0) return null;\n\n return liqPrice;\n }, [\n markPrice,\n baseIMR,\n baseMMR,\n totalCollateral,\n formattedOrder?.order_price,\n formattedOrder?.order_quantity,\n formattedOrder?.total,\n formattedOrder?.trigger_price,\n accountInfo,\n ]);\n\n const estLeverage = useMemo(() => {\n if (!accountInfo || !parsedData) return null;\n const result = getPriceAndQty(formattedOrder as OrderEntity);\n if (result === null || !result.price || !result.quantity) return null;\n\n const leverage = orderUtils.estLeverage({\n totalCollateral,\n positions,\n newOrder: {\n symbol: parsedData.symbol,\n qty: result.quantity,\n price: result.price,\n },\n });\n\n return leverage;\n }, [\n baseIMR,\n baseMMR,\n totalCollateral,\n positions,\n formattedOrder?.order_price,\n formattedOrder?.order_quantity,\n formattedOrder?.total,\n formattedOrder?.trigger_price,\n ]);\n\n return {\n maxQty,\n freeCollateral,\n markPrice,\n onSubmit,\n submit,\n submitting: isMutating,\n formattedOrder,\n // errors,\n estLiqPrice,\n estLeverage,\n helper: {\n calculate,\n validator,\n // clearErrors,\n },\n metaState: {\n dirty: fieldDirty.current,\n submitted: submitted.current,\n errors,\n },\n symbolConfig: symbolInfo[symbol](),\n };\n}\n"],"names":["useCallback","useEffect","useMemo","useRef","useState","OrderSide","OrderType","SDKError","useSymbolsInfo","Decimal","getPrecisionByNumber","useMutation","compose","head","includes","omit","pick","baseInputHandle","getCalculateHandler","orderEntityFormatHandle","useCollateral","useMaxQty","OrderFactory","availableOrderTypes","useMarkPrice","order","orderUtils","useEventEmitter","useDebouncedCallback","useOrderEntry","symbolOrOrder","sideOrOptions","reduceOnly","options","isNewVersion","symbol","side","order_type","prevOrderData","orderDataCache","notSupportData","errors","setErrors","ee","fieldDirty","submitted","askAndBid","onOrderbookUpdate","data","current","freeCollateral","totalCollateral","positions","accountInfo","symbolInfo","optionsValue","isReduceOnly","reduce_only","sideValue","baseDP","quoteDP","baseIMR","baseMMR","markPrice","diffOrderEntry","prev","key","value","preValue","keys","Object","i","length","k","preveValue","currentValue","maxQty","parseString2Number","dp","startsWith","replace","hasPoint","endOfPoint","endsWith","decimalPart","split","slice","needParse","parsedData","order_quantity","toDecimalPlaces","toString","order_price","total","trigger_price","order_type_ext","visible_quantity","isStopOrder","STOP_LIMIT","STOP_MARKET","doCreateOrder","isMutating","createOrder","values","orderCreator","create","Promise","reject","resolve","validate","then","message","res","success","Array","isArray","rows","emit","onSubmit","submit","calculate","field","fieldHandler","newValues","validator","creator","formattedOrder","item","isNil","err","catch","broker_id","watchOrderbook","on","off","getPriceAndQty","quantity","Number","orderPrice","isNaN","LIMIT","price","MARKET","BUY","SELL","estLiqPrice","result","orderFee","qty","futuresTakeFeeRate","liqPrice","IMR_Factor","newOrder","estLeverage","leverage","submitting","helper","metaState","dirty","symbolConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,121 +1,141 @@
|
|
|
1
1
|
import { usePrivateInfiniteQuery } from "../usePrivateInfiniteQuery";
|
|
2
2
|
import { useCallback, useEffect, useMemo } from "react";
|
|
3
|
-
import { OrderStatus
|
|
3
|
+
import { OrderStatus } from "@orderly.network/types";
|
|
4
4
|
import { useMarkPricesStream } from "./useMarkPricesStream";
|
|
5
5
|
import { useMutation } from "../useMutation";
|
|
6
6
|
import version from "../version";
|
|
7
7
|
import { useDataCenterContext } from "../dataProvider";
|
|
8
8
|
import { generateKeyFun } from "../utils/swr";
|
|
9
9
|
import { useEventEmitter } from "../useEventEmitter";
|
|
10
|
-
export const useOrderStream = (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*/
|
|
14
|
-
params, options) => {
|
|
10
|
+
export const useOrderStream = (/**
|
|
11
|
+
* Orders query params
|
|
12
|
+
*/ params, options)=>{
|
|
15
13
|
const { status, symbol, side, size = 100 } = params;
|
|
16
14
|
const { data: markPrices = {} } = useMarkPricesStream();
|
|
17
15
|
const ee = useEventEmitter();
|
|
18
16
|
const { regesterKeyHandler, unregisterKeyHandler } = useDataCenterContext();
|
|
19
|
-
const [doCancelOrder, { error: cancelOrderError, isMutating: cancelMutating }
|
|
20
|
-
const [doUpdateOrder, { error: updateOrderError, isMutating: updateMutating }
|
|
21
|
-
const [doCanceAlgolOrder, { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating }
|
|
22
|
-
const [doUpdateAlgoOrder, { error: updateAlgoOrderError, isMutating: updateAlgoMutating }
|
|
23
|
-
useEffect(()
|
|
24
|
-
const formatKey = (value)
|
|
17
|
+
const [doCancelOrder, { error: cancelOrderError, isMutating: cancelMutating }] = useMutation("/v1/order", "DELETE");
|
|
18
|
+
const [doUpdateOrder, { error: updateOrderError, isMutating: updateMutating }] = useMutation("/v1/order", "PUT");
|
|
19
|
+
const [doCanceAlgolOrder, { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating }] = useMutation("/v1/algo/order", "DELETE");
|
|
20
|
+
const [doUpdateAlgoOrder, { error: updateAlgoOrderError, isMutating: updateAlgoMutating }] = useMutation("/v1/algo/order", "PUT");
|
|
21
|
+
useEffect(()=>{
|
|
22
|
+
const formatKey = (value)=>value ? `:${value}` : "";
|
|
25
23
|
const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(side)}`;
|
|
26
|
-
regesterKeyHandler?.(key, generateKeyFun({
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
regesterKeyHandler?.(key, generateKeyFun({
|
|
25
|
+
status,
|
|
26
|
+
symbol,
|
|
27
|
+
side,
|
|
28
|
+
size
|
|
29
|
+
}));
|
|
30
|
+
return ()=>{
|
|
31
|
+
if (!options?.stopOnUnmount) return;
|
|
30
32
|
unregisterKeyHandler(key);
|
|
31
33
|
};
|
|
32
|
-
}, [
|
|
33
|
-
|
|
34
|
+
}, [
|
|
35
|
+
status,
|
|
36
|
+
symbol,
|
|
37
|
+
side,
|
|
38
|
+
options?.keeplive
|
|
39
|
+
]);
|
|
40
|
+
const ordersResponse = usePrivateInfiniteQuery(generateKeyFun({
|
|
41
|
+
status,
|
|
42
|
+
symbol,
|
|
43
|
+
side,
|
|
44
|
+
size
|
|
45
|
+
}), {
|
|
34
46
|
initialSize: 1,
|
|
35
47
|
// revalidateFirstPage: false,
|
|
36
48
|
// onError: (err) => {
|
|
37
49
|
// console.error("fetch failed::::", err);
|
|
38
50
|
// },
|
|
39
|
-
formatter: (data)
|
|
40
|
-
revalidateOnFocus: false
|
|
51
|
+
formatter: (data)=>data,
|
|
52
|
+
revalidateOnFocus: false
|
|
41
53
|
});
|
|
42
|
-
const flattenOrders = useMemo(()
|
|
54
|
+
const flattenOrders = useMemo(()=>{
|
|
43
55
|
if (!ordersResponse.data) {
|
|
44
56
|
return null;
|
|
45
57
|
}
|
|
46
|
-
return ordersResponse.data?.map((item)
|
|
47
|
-
}, [
|
|
58
|
+
return ordersResponse.data?.map((item)=>item.rows)?.flat();
|
|
59
|
+
}, [
|
|
60
|
+
ordersResponse.data
|
|
61
|
+
]);
|
|
48
62
|
// console.log(ordersResponse.data);
|
|
49
|
-
const orders = useMemo(()
|
|
63
|
+
const orders = useMemo(()=>{
|
|
50
64
|
if (!flattenOrders) {
|
|
51
65
|
return null;
|
|
52
66
|
}
|
|
53
67
|
if (status !== OrderStatus.NEW && status !== OrderStatus.INCOMPLETE) {
|
|
54
68
|
return flattenOrders;
|
|
55
69
|
}
|
|
56
|
-
return flattenOrders.map((item)
|
|
70
|
+
return flattenOrders.map((item)=>{
|
|
57
71
|
return {
|
|
58
72
|
...item,
|
|
59
|
-
mark_price: markPrices[item.symbol] ?? 0
|
|
73
|
+
mark_price: markPrices[item.symbol] ?? 0
|
|
60
74
|
};
|
|
61
75
|
});
|
|
62
|
-
}, [
|
|
63
|
-
|
|
76
|
+
}, [
|
|
77
|
+
flattenOrders,
|
|
78
|
+
markPrices,
|
|
79
|
+
status
|
|
80
|
+
]);
|
|
81
|
+
const total = useMemo(()=>{
|
|
64
82
|
return ordersResponse.data?.[0]?.meta?.total || 0;
|
|
65
|
-
}, [
|
|
83
|
+
}, [
|
|
84
|
+
ordersResponse.data?.[0]?.meta?.total
|
|
85
|
+
]);
|
|
66
86
|
/**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
87
|
+
* cancel all orders
|
|
88
|
+
*/ const cancelAllOrders = useCallback(()=>{}, [
|
|
89
|
+
ordersResponse.data
|
|
90
|
+
]);
|
|
91
|
+
const _updateOrder = useCallback((orderId, order, type)=>{
|
|
92
|
+
switch(type){
|
|
72
93
|
case "algoOrder":
|
|
73
94
|
return doUpdateAlgoOrder({
|
|
74
95
|
order_id: orderId,
|
|
75
96
|
price: order["order_price"],
|
|
76
97
|
quantity: order["order_quantity"],
|
|
77
|
-
trigger_price: order["trigger_price"]
|
|
98
|
+
trigger_price: order["trigger_price"]
|
|
78
99
|
});
|
|
79
100
|
default:
|
|
80
|
-
return doUpdateOrder({
|
|
101
|
+
return doUpdateOrder({
|
|
102
|
+
...order,
|
|
103
|
+
order_id: orderId
|
|
104
|
+
});
|
|
81
105
|
}
|
|
82
106
|
}, []);
|
|
83
107
|
/**
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const updateOrder = useCallback((orderId, order) => {
|
|
108
|
+
* update order
|
|
109
|
+
*/ const updateOrder = useCallback((orderId, order)=>{
|
|
87
110
|
return _updateOrder(orderId, order, "normalOrder");
|
|
88
111
|
}, []);
|
|
89
112
|
/**
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return _updateOrder(orderId, order, "algoOrder").then((res) => {
|
|
113
|
+
* update algo order
|
|
114
|
+
*/ const updateAlgoOrder = useCallback((orderId, order)=>{
|
|
115
|
+
return _updateOrder(orderId, order, "algoOrder").then((res)=>{
|
|
94
116
|
// TODO: remove this when the WS service provides the correct data
|
|
95
117
|
ee.emit("algoOrder:cache", {
|
|
96
118
|
// ...res.data.rows[0],
|
|
97
119
|
...order,
|
|
98
|
-
order_id: Number(orderId)
|
|
99
|
-
// trigger_price: price,
|
|
120
|
+
order_id: Number(orderId)
|
|
100
121
|
});
|
|
101
122
|
//------------fix end----------------
|
|
102
123
|
return res;
|
|
103
124
|
});
|
|
104
125
|
}, []);
|
|
105
|
-
const _cancelOrder = useCallback((orderId, type, symbol)
|
|
106
|
-
switch
|
|
126
|
+
const _cancelOrder = useCallback((orderId, type, symbol)=>{
|
|
127
|
+
switch(type){
|
|
107
128
|
case "algoOrder":
|
|
108
129
|
return doCanceAlgolOrder(null, {
|
|
109
130
|
// @ts-ignore
|
|
110
131
|
order_id: orderId,
|
|
111
132
|
symbol,
|
|
112
|
-
source: `SDK${version}
|
|
113
|
-
}).then((res)
|
|
133
|
+
source: `SDK${version}`
|
|
134
|
+
}).then((res)=>{
|
|
114
135
|
if (res.success) {
|
|
115
136
|
ordersResponse.mutate();
|
|
116
137
|
return res;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
138
|
+
} else {
|
|
119
139
|
throw new Error(res.message);
|
|
120
140
|
}
|
|
121
141
|
});
|
|
@@ -123,8 +143,8 @@ params, options) => {
|
|
|
123
143
|
return doCancelOrder(null, {
|
|
124
144
|
order_id: orderId,
|
|
125
145
|
symbol,
|
|
126
|
-
source: `SDK_${version}
|
|
127
|
-
}).then((res)
|
|
146
|
+
source: `SDK_${version}`
|
|
147
|
+
}).then((res)=>{
|
|
128
148
|
if (res.success) {
|
|
129
149
|
// return ordersResponse.mutate().then(() => {
|
|
130
150
|
// return res;
|
|
@@ -132,26 +152,23 @@ params, options) => {
|
|
|
132
152
|
//Optimistic Updates
|
|
133
153
|
// ordersResponse.mutate();
|
|
134
154
|
return res;
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
155
|
+
} else {
|
|
137
156
|
throw new Error(res.message);
|
|
138
157
|
}
|
|
139
158
|
});
|
|
140
159
|
}
|
|
141
160
|
}, []);
|
|
142
161
|
/**
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const cancelOrder = useCallback((orderId, symbol) => {
|
|
162
|
+
* calcel order
|
|
163
|
+
*/ const cancelOrder = useCallback((orderId, symbol)=>{
|
|
146
164
|
return _cancelOrder(orderId, "normalOrder", symbol);
|
|
147
165
|
}, []);
|
|
148
166
|
/**
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
const cancelAlgoOrder = useCallback((orderId, symbol) => {
|
|
167
|
+
* calcel algo order
|
|
168
|
+
*/ const cancelAlgoOrder = useCallback((orderId, symbol)=>{
|
|
152
169
|
return _cancelOrder(orderId, "algoOrder", symbol);
|
|
153
170
|
}, []);
|
|
154
|
-
const loadMore = ()
|
|
171
|
+
const loadMore = ()=>{
|
|
155
172
|
ordersResponse.setSize(ordersResponse.size + 1);
|
|
156
173
|
};
|
|
157
174
|
return [
|
|
@@ -170,14 +187,16 @@ params, options) => {
|
|
|
170
187
|
cancelOrder: cancelOrderError,
|
|
171
188
|
updateOrder: updateOrderError,
|
|
172
189
|
cancelAlgoOrder: cancelAlgoOrderError,
|
|
173
|
-
updateAlgoOrder: updateAlgoOrderError
|
|
190
|
+
updateAlgoOrder: updateAlgoOrderError
|
|
174
191
|
},
|
|
175
192
|
submitting: {
|
|
176
193
|
cancelOrder: cancelMutating,
|
|
177
194
|
updateOrder: updateMutating,
|
|
178
195
|
cancelAlgoOrder: cancelAlgoMutating,
|
|
179
|
-
updateAlglOrder: updateAlgoMutating
|
|
180
|
-
}
|
|
181
|
-
}
|
|
196
|
+
updateAlglOrder: updateAlgoMutating
|
|
197
|
+
}
|
|
198
|
+
}
|
|
182
199
|
];
|
|
183
200
|
};
|
|
201
|
+
|
|
202
|
+
//# sourceMappingURL=useOrderStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useOrderStream.ts"],"sourcesContent":["import { usePrivateInfiniteQuery } from \"../usePrivateInfiniteQuery\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport {\n OrderSide,\n OrderEntity,\n OrderStatus,\n API,\n} from \"@orderly.network/types\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { useMutation } from \"../useMutation\";\nimport version from \"../version\";\nimport { useDataCenterContext } from \"../dataProvider\";\nimport { generateKeyFun } from \"../utils/swr\";\nimport { useEventEmitter } from \"../useEventEmitter\";\n\ntype OrderType = \"normalOrder\" | \"algoOrder\";\n\nexport interface UserOrdersReturn {\n data: any[];\n loading: boolean;\n update: (order: any) => void;\n cancel: (order: any) => void;\n}\n\n// const chche: Record<string, boolean> = {};\n\ntype Params = {\n symbol?: string;\n status?: OrderStatus;\n size?: number;\n side?: OrderSide;\n};\n\nexport const useOrderStream = (\n /**\n * Orders query params\n */\n params: Params,\n\n options?: {\n /**\n * Keep the state update alive\n */\n keeplive?: boolean;\n /**\n * Stop the state update when the component unmount\n */\n stopOnUnmount?: boolean;\n }\n) => {\n const { status, symbol, side, size = 100 } = params;\n\n const { data: markPrices = {} } = useMarkPricesStream();\n\n const ee = useEventEmitter();\n\n const { regesterKeyHandler, unregisterKeyHandler } = useDataCenterContext();\n const [\n doCancelOrder,\n { error: cancelOrderError, isMutating: cancelMutating },\n ] = useMutation(\"/v1/order\", \"DELETE\");\n\n const [\n doUpdateOrder,\n { error: updateOrderError, isMutating: updateMutating },\n ] = useMutation(\"/v1/order\", \"PUT\");\n\n const [\n doCanceAlgolOrder,\n { error: cancelAlgoOrderError, isMutating: cancelAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"DELETE\");\n\n const [\n doUpdateAlgoOrder,\n { error: updateAlgoOrderError, isMutating: updateAlgoMutating },\n ] = useMutation(\"/v1/algo/order\", \"PUT\");\n\n useEffect(() => {\n const formatKey = (value?: string) => (value ? `:${value}` : \"\");\n const key = `orders${formatKey(status)}${formatKey(symbol)}${formatKey(\n side\n )}`;\n regesterKeyHandler?.(key, generateKeyFun({ status, symbol, side, size }));\n\n return () => {\n if (!options?.stopOnUnmount) return;\n\n unregisterKeyHandler(key);\n };\n }, [status, symbol, side, options?.keeplive]);\n\n const ordersResponse = usePrivateInfiniteQuery(\n generateKeyFun({ status, symbol, side, size }),\n {\n initialSize: 1,\n // revalidateFirstPage: false,\n // onError: (err) => {\n // console.error(\"fetch failed::::\", err);\n // },\n formatter: (data) => data,\n revalidateOnFocus: false,\n }\n );\n\n const flattenOrders = useMemo(() => {\n if (!ordersResponse.data) {\n return null;\n }\n\n return ordersResponse.data?.map((item) => item.rows)?.flat();\n }, [ordersResponse.data]);\n\n // console.log(ordersResponse.data);\n\n const orders = useMemo(() => {\n if (!flattenOrders) {\n return null;\n }\n\n if (status !== OrderStatus.NEW && status !== OrderStatus.INCOMPLETE) {\n return flattenOrders;\n }\n return flattenOrders.map((item) => {\n return {\n ...item,\n mark_price: (markPrices as any)[item.symbol] ?? 0,\n };\n });\n }, [flattenOrders, markPrices, status]);\n\n const total = useMemo(() => {\n return ordersResponse.data?.[0]?.meta?.total || 0;\n }, [ordersResponse.data?.[0]?.meta?.total]);\n\n /**\n * cancel all orders\n */\n const cancelAllOrders = useCallback(() => {}, [ordersResponse.data]);\n\n const _updateOrder = useCallback(\n (orderId: string, order: OrderEntity, type: OrderType) => {\n switch (type) {\n case \"algoOrder\":\n return doUpdateAlgoOrder({\n order_id: orderId,\n price: order[\"order_price\"],\n quantity: order[\"order_quantity\"],\n trigger_price: order[\"trigger_price\"],\n });\n default:\n return doUpdateOrder({ ...order, order_id: orderId });\n }\n },\n []\n );\n\n /**\n * update order\n */\n const updateOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"normalOrder\");\n }, []);\n\n /**\n * update algo order\n */\n const updateAlgoOrder = useCallback((orderId: string, order: OrderEntity) => {\n return _updateOrder(orderId, order, \"algoOrder\").then((res) => {\n // TODO: remove this when the WS service provides the correct data\n ee.emit(\"algoOrder:cache\", {\n // ...res.data.rows[0],\n ...order,\n order_id: Number(orderId),\n // trigger_price: price,\n });\n //------------fix end----------------\n return res;\n });\n }, []);\n\n const _cancelOrder = useCallback(\n (orderId: number, type: OrderType, symbol?: string) => {\n switch (type) {\n case \"algoOrder\":\n return doCanceAlgolOrder(null, {\n // @ts-ignore\n order_id: orderId,\n symbol,\n source: `SDK${version}`,\n }).then((res: any) => {\n if (res.success) {\n ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n default:\n return doCancelOrder(null, {\n order_id: orderId,\n symbol,\n source: `SDK_${version}`,\n }).then((res: any) => {\n if (res.success) {\n // return ordersResponse.mutate().then(() => {\n // return res;\n // });\n //Optimistic Updates\n // ordersResponse.mutate();\n return res;\n } else {\n throw new Error(res.message);\n }\n });\n }\n },\n []\n );\n /**\n * calcel order\n */\n const cancelOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"normalOrder\", symbol);\n }, []);\n\n /**\n * calcel algo order\n */\n const cancelAlgoOrder = useCallback((orderId: number, symbol?: string) => {\n return _cancelOrder(orderId, \"algoOrder\", symbol);\n }, []);\n\n const loadMore = () => {\n ordersResponse.setSize(ordersResponse.size + 1);\n };\n\n return [\n orders,\n {\n total,\n isLoading: ordersResponse.isLoading,\n refresh: ordersResponse.mutate,\n loadMore,\n cancelAllOrders,\n updateOrder,\n cancelOrder,\n updateAlgoOrder,\n cancelAlgoOrder,\n errors: {\n cancelOrder: cancelOrderError,\n updateOrder: updateOrderError,\n cancelAlgoOrder: cancelAlgoOrderError,\n updateAlgoOrder: updateAlgoOrderError,\n },\n submitting: {\n cancelOrder: cancelMutating,\n updateOrder: updateMutating,\n cancelAlgoOrder: cancelAlgoMutating,\n updateAlglOrder: updateAlgoMutating,\n },\n },\n ] as const;\n};\n"],"names":["usePrivateInfiniteQuery","useCallback","useEffect","useMemo","OrderStatus","useMarkPricesStream","useMutation","version","useDataCenterContext","generateKeyFun","useEventEmitter","useOrderStream","params","options","status","symbol","side","size","data","markPrices","ee","regesterKeyHandler","unregisterKeyHandler","doCancelOrder","error","cancelOrderError","isMutating","cancelMutating","doUpdateOrder","updateOrderError","updateMutating","doCanceAlgolOrder","cancelAlgoOrderError","cancelAlgoMutating","doUpdateAlgoOrder","updateAlgoOrderError","updateAlgoMutating","formatKey","value","key","stopOnUnmount","keeplive","ordersResponse","initialSize","formatter","revalidateOnFocus","flattenOrders","map","item","rows","flat","orders","NEW","INCOMPLETE","mark_price","total","meta","cancelAllOrders","_updateOrder","orderId","order","type","order_id","price","quantity","trigger_price","updateOrder","updateAlgoOrder","then","res","emit","Number","_cancelOrder","source","success","mutate","Error","message","cancelOrder","cancelAlgoOrder","loadMore","setSize","isLoading","refresh","errors","submitting","updateAlglOrder"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -16,12 +16,11 @@ export declare const mergeOrderbook: (data: OrderbookData, update: OrderbookData
|
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* Configuration for the Order Book
|
|
19
|
-
* @level Indicates the number of data entries to return for ask/bid, default is 10
|
|
20
|
-
* @padding Whether to fill in when the actual data entries are less than the level. If filled, it will add [nan, nan, nan, nan]
|
|
21
|
-
* default is true
|
|
22
19
|
*/
|
|
23
20
|
export type OrderbookOptions = {
|
|
21
|
+
/** Indicates the number of data entries to return for ask/bid, default is 10 */
|
|
24
22
|
level?: number;
|
|
23
|
+
/** Whether to fill in when the actual data entries are less than the level. If filled, it will add [nan, nan, nan, nan]. Default is true */
|
|
25
24
|
padding?: boolean;
|
|
26
25
|
};
|
|
27
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOrderbookStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderbookStream.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC;AAyFF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UACjB,MAAM,GAAG,SAAS,SAClB,MAAM,WACJ,OAAO,QACV,aAAa,KACpB,aAyDF,CAAC;AAgCF,eAAO,MAAM,cAAc,SAAU,aAAa,UAAU,aAAa;;;CAWxE,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"useOrderbookStream.d.ts","sourceRoot":"","sources":["../../src/orderly/useOrderbookStream.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,IAAI,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC;AAyFF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,UACjB,MAAM,GAAG,SAAS,SAClB,MAAM,WACJ,OAAO,QACV,aAAa,KACpB,aAyDF,CAAC;AAgCF,eAAO,MAAM,cAAc,SAAU,aAAa,UAAU,aAAa;;;CAWxE,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4IAA4I;IAC5I,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,WACnB,MAAM,YACL,aAAa,YACZ,gBAAgB;;;;;;;;;;;2BAqHgB,MAAM;;;;;;;;;IAmDnD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|