@orderly.network/hooks 1.2.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/configProvider.d.ts +7 -1
- package/esm/configProvider.d.ts.map +1 -1
- package/esm/configProvider.js +44 -18
- package/esm/configProvider.js.map +1 -0
- package/esm/dataProvider.js +24 -19
- package/esm/dataProvider.js.map +1 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -1
- package/esm/index.js.map +1 -0
- package/esm/middleware/signatureMiddleware.js +9 -8
- package/esm/middleware/signatureMiddleware.js.map +1 -0
- package/esm/orderly/orderbook.service.js +39 -28
- package/esm/orderly/orderbook.service.js.map +1 -0
- package/esm/orderly/orderlyHooks.d.ts +3 -0
- package/esm/orderly/orderlyHooks.d.ts.map +1 -1
- package/esm/orderly/orderlyHooks.js +2 -0
- package/esm/orderly/orderlyHooks.js.map +1 -0
- package/esm/orderly/useAccountInfo.js +3 -1
- package/esm/orderly/useAccountInfo.js.map +1 -0
- package/esm/orderly/useChain.js +16 -9
- package/esm/orderly/useChain.js.map +1 -0
- package/esm/orderly/useChains.d.ts +11 -12
- package/esm/orderly/useChains.d.ts.map +1 -1
- package/esm/orderly/useChains.js +68 -46
- package/esm/orderly/useChains.js.map +1 -0
- package/esm/orderly/useCollateral.d.ts +3 -4
- package/esm/orderly/useCollateral.d.ts.map +1 -1
- package/esm/orderly/useCollateral.js +53 -20
- package/esm/orderly/useCollateral.js.map +1 -0
- package/esm/orderly/useDeposit.js +123 -125
- package/esm/orderly/useDeposit.js.map +1 -0
- package/esm/orderly/useFundingRate.js +14 -13
- package/esm/orderly/useFundingRate.js.map +1 -0
- package/esm/orderly/useFundingRates.js +6 -4
- package/esm/orderly/useFundingRates.js.map +1 -0
- package/esm/orderly/useHoldingStream.js +19 -15
- package/esm/orderly/useHoldingStream.js.map +1 -0
- package/esm/orderly/useIndexPrice.js +7 -5
- package/esm/orderly/useIndexPrice.js.map +1 -0
- package/esm/orderly/useLeverage.js +9 -12
- package/esm/orderly/useLeverage.js.map +1 -0
- package/esm/orderly/useMarginRatio.js +27 -13
- package/esm/orderly/useMarginRatio.js.map +1 -0
- package/esm/orderly/useMarkPrice.js +13 -7
- package/esm/orderly/useMarkPrice.js.map +1 -0
- package/esm/orderly/useMarkPricesStream.d.ts +1 -1
- package/esm/orderly/useMarkPricesStream.d.ts.map +1 -1
- package/esm/orderly/useMarkPricesStream.js +9 -8
- package/esm/orderly/useMarkPricesStream.js.map +1 -0
- package/esm/orderly/useMarketTradeStream.js +33 -18
- package/esm/orderly/useMarketTradeStream.js.map +1 -0
- package/esm/orderly/useMarkets.js +144 -81
- package/esm/orderly/useMarkets.js.map +1 -0
- package/esm/orderly/useMarketsStream.js +23 -28
- package/esm/orderly/useMarketsStream.js.map +1 -0
- package/esm/orderly/useMaxQty.d.ts +6 -0
- package/esm/orderly/useMaxQty.d.ts.map +1 -1
- package/esm/orderly/useMaxQty.js +26 -18
- package/esm/orderly/useMaxQty.js.map +1 -0
- package/esm/orderly/useOpenInterest.js +7 -5
- package/esm/orderly/useOpenInterest.js.map +1 -0
- package/esm/orderly/useOrderEntry.js +182 -160
- package/esm/orderly/useOrderEntry.js.map +1 -0
- package/esm/orderly/useOrderStream.js +85 -66
- package/esm/orderly/useOrderStream.js.map +1 -0
- package/esm/orderly/useOrderbookStream.d.ts +2 -3
- package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
- package/esm/orderly/useOrderbookStream.js +173 -103
- package/esm/orderly/useOrderbookStream.js.map +1 -0
- package/esm/orderly/usePositionStream.js +82 -62
- package/esm/orderly/usePositionStream.js.map +1 -0
- package/esm/orderly/usePrivateDataObserver.js +55 -48
- package/esm/orderly/usePrivateDataObserver.js.map +1 -0
- package/esm/orderly/useSettleSubscription.js +8 -6
- package/esm/orderly/useSettleSubscription.js.map +1 -0
- package/esm/orderly/useSymbolPriceRange.js +14 -8
- package/esm/orderly/useSymbolPriceRange.js.map +1 -0
- package/esm/orderly/useSymbolsInfo.js +7 -5
- package/esm/orderly/useSymbolsInfo.js.map +1 -0
- package/esm/orderly/useTickerStream.d.ts +5 -1
- package/esm/orderly/useTickerStream.d.ts.map +1 -1
- package/esm/orderly/useTickerStream.js +26 -29
- package/esm/orderly/useTickerStream.js.map +1 -0
- package/esm/orderly/useWalletSubscription.js +8 -6
- package/esm/orderly/useWalletSubscription.js.map +1 -0
- package/esm/orderly/useWithdraw.js +19 -11
- package/esm/orderly/useWithdraw.js.map +1 -0
- package/esm/orderlyContext.d.ts +8 -1
- package/esm/orderlyContext.d.ts.map +1 -1
- package/esm/orderlyContext.js +2 -1
- package/esm/orderlyContext.js.map +1 -0
- package/esm/services/dataCenter.js +10 -8
- package/esm/services/dataCenter.js.map +1 -0
- package/esm/services/painter/backgroundPaint.js +11 -14
- package/esm/services/painter/backgroundPaint.js.map +1 -0
- package/esm/services/painter/basePaint.js +5 -1
- package/esm/services/painter/basePaint.js.map +1 -0
- package/esm/services/painter/dataPaint.js +53 -50
- package/esm/services/painter/dataPaint.js.map +1 -0
- package/esm/services/painter/layout.config.js +15 -13
- package/esm/services/painter/layout.config.js.map +1 -0
- package/esm/services/painter/painter.js +14 -13
- package/esm/services/painter/painter.js.map +1 -0
- package/esm/services/painter/resource.js +6 -4
- package/esm/services/painter/resource.js.map +1 -0
- package/esm/statusProvider.js +10 -3
- package/esm/statusProvider.js.map +1 -0
- package/esm/unuse/apiPrefixMiddleware.js +18 -16
- package/esm/unuse/apiPrefixMiddleware.js.map +1 -0
- package/esm/unuse/fn.js +3 -1
- package/esm/unuse/fn.js.map +1 -0
- package/esm/unuse/useBalance.js +6 -4
- package/esm/unuse/useBalance.js.map +1 -0
- package/esm/unuse/useFetures.js +26 -18
- package/esm/unuse/useFetures.js.map +1 -0
- package/esm/unuse/useRunOnce.js +10 -7
- package/esm/unuse/useRunOnce.js.map +1 -0
- package/esm/unuse/useSyncEnd.js +5 -4
- package/esm/unuse/useSyncEnd.js.map +1 -0
- package/esm/unuse/useTokenInfo.js +7 -5
- package/esm/unuse/useTokenInfo.js.map +1 -0
- package/esm/unuse/useUnsettlementPnL.js +7 -3
- package/esm/unuse/useUnsettlementPnL.js.map +1 -0
- package/esm/useAccount.js +18 -21
- package/esm/useAccount.js.map +1 -0
- package/esm/useAccountInstance.js +6 -7
- package/esm/useAccountInstance.js.map +1 -0
- package/esm/useBoolean.js +14 -5
- package/esm/useBoolean.js.map +1 -0
- package/esm/useConfig.js +3 -1
- package/esm/useConfig.js.map +1 -0
- package/esm/useEventEmitter.js +4 -2
- package/esm/useEventEmitter.js.map +1 -0
- package/esm/useLazyQuery.js +6 -7
- package/esm/useLazyQuery.js.map +1 -0
- package/esm/useLocalStorage.js +30 -20
- package/esm/useLocalStorage.js.map +1 -0
- package/esm/useMediaQuery.js +11 -9
- package/esm/useMediaQuery.js.map +1 -0
- package/esm/useMutation.js +26 -37
- package/esm/useMutation.js.map +1 -0
- package/esm/useObserve.js +4 -4
- package/esm/useObserve.js.map +1 -0
- package/esm/useParamsCheck.js +8 -10
- package/esm/useParamsCheck.js.map +1 -0
- package/esm/usePoster.js +56 -45
- package/esm/usePoster.js.map +1 -0
- package/esm/usePreloadData.js +9 -5
- package/esm/usePreloadData.js.map +1 -0
- package/esm/usePrivateInfiniteQuery.js +15 -9
- package/esm/usePrivateInfiniteQuery.js.map +1 -0
- package/esm/usePrivateQuery.js +15 -8
- package/esm/usePrivateQuery.js.map +1 -0
- package/esm/useQuery.js +6 -5
- package/esm/useQuery.js.map +1 -0
- package/esm/useSessionStorage.js +28 -19
- package/esm/useSessionStorage.js.map +1 -0
- package/esm/useWS.js +15 -13
- package/esm/useWS.js.map +1 -0
- package/esm/useWsStatus.js +12 -12
- package/esm/useWsStatus.js.map +1 -0
- package/esm/utils/createGetter.js +8 -8
- package/esm/utils/createGetter.js.map +1 -0
- package/esm/utils/createOrder.d.ts +1 -0
- package/esm/utils/createOrder.d.ts.map +1 -1
- package/esm/utils/createOrder.js +59 -43
- package/esm/utils/createOrder.js.map +1 -0
- package/esm/utils/dev.js +6 -4
- package/esm/utils/dev.js.map +1 -0
- package/esm/utils/fetcher.js +3 -1
- package/esm/utils/fetcher.js.map +1 -0
- package/esm/utils/json.js +3 -2
- package/esm/utils/json.js.map +1 -0
- package/esm/utils/orderEntryHelper.js +92 -63
- package/esm/utils/orderEntryHelper.js.map +1 -0
- package/esm/utils/parseHolding.js +10 -6
- package/esm/utils/parseHolding.js.map +1 -0
- package/esm/utils/swr.js +114 -104
- package/esm/utils/swr.js.map +1 -0
- package/esm/version.d.ts +1 -1
- package/esm/version.js +4 -3
- package/esm/version.js.map +1 -0
- package/esm/walletConnectorContext.js +4 -2
- package/esm/walletConnectorContext.js.map +1 -0
- package/lib/configProvider.d.ts +7 -1
- package/lib/configProvider.d.ts.map +1 -1
- package/lib/configProvider.js +108 -56
- package/lib/configProvider.js.map +1 -0
- package/lib/dataProvider.js +50 -29
- package/lib/dataProvider.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +191 -88
- package/lib/index.js.map +1 -0
- package/lib/middleware/signatureMiddleware.js +22 -15
- package/lib/middleware/signatureMiddleware.js.map +1 -0
- package/lib/orderly/orderbook.service.js +59 -33
- package/lib/orderly/orderbook.service.js.map +1 -0
- package/lib/orderly/orderlyHooks.d.ts +3 -0
- package/lib/orderly/orderlyHooks.d.ts.map +1 -1
- package/lib/orderly/orderlyHooks.js +124 -57
- package/lib/orderly/orderlyHooks.js.map +1 -0
- package/lib/orderly/useAccountInfo.js +14 -6
- package/lib/orderly/useAccountInfo.js.map +1 -0
- package/lib/orderly/useChain.js +30 -17
- package/lib/orderly/useChain.js.map +1 -0
- package/lib/orderly/useChains.d.ts +11 -12
- package/lib/orderly/useChains.d.ts.map +1 -1
- package/lib/orderly/useChains.js +100 -59
- package/lib/orderly/useChains.js.map +1 -0
- package/lib/orderly/useCollateral.d.ts +3 -4
- package/lib/orderly/useCollateral.d.ts.map +1 -1
- package/lib/orderly/useCollateral.js +81 -42
- package/lib/orderly/useCollateral.js.map +1 -0
- package/lib/orderly/useDeposit.js +154 -150
- package/lib/orderly/useDeposit.js.map +1 -0
- package/lib/orderly/useFundingRate.js +29 -22
- package/lib/orderly/useFundingRate.js.map +1 -0
- package/lib/orderly/useFundingRates.js +19 -11
- package/lib/orderly/useFundingRates.js.map +1 -0
- package/lib/orderly/useHoldingStream.js +39 -27
- package/lib/orderly/useHoldingStream.js.map +1 -0
- package/lib/orderly/useIndexPrice.js +24 -14
- package/lib/orderly/useIndexPrice.js.map +1 -0
- package/lib/orderly/useLeverage.js +27 -24
- package/lib/orderly/useLeverage.js.map +1 -0
- package/lib/orderly/useMarginRatio.js +49 -29
- package/lib/orderly/useMarginRatio.js.map +1 -0
- package/lib/orderly/useMarkPrice.js +26 -15
- package/lib/orderly/useMarkPrice.js.map +1 -0
- package/lib/orderly/useMarkPricesStream.d.ts +1 -1
- package/lib/orderly/useMarkPricesStream.d.ts.map +1 -1
- package/lib/orderly/useMarkPricesStream.js +26 -17
- package/lib/orderly/useMarkPricesStream.js.map +1 -0
- package/lib/orderly/useMarketTradeStream.js +47 -26
- package/lib/orderly/useMarketTradeStream.js.map +1 -0
- package/lib/orderly/useMarkets.js +172 -95
- package/lib/orderly/useMarkets.js.map +1 -0
- package/lib/orderly/useMarketsStream.js +44 -41
- package/lib/orderly/useMarketsStream.js.map +1 -0
- package/lib/orderly/useMaxQty.d.ts +6 -0
- package/lib/orderly/useMaxQty.d.ts.map +1 -1
- package/lib/orderly/useMaxQty.js +52 -43
- package/lib/orderly/useMaxQty.js.map +1 -0
- package/lib/orderly/useOpenInterest.js +24 -14
- package/lib/orderly/useOpenInterest.js.map +1 -0
- package/lib/orderly/useOrderEntry.js +238 -210
- package/lib/orderly/useOrderEntry.js.map +1 -0
- package/lib/orderly/useOrderStream.js +111 -84
- package/lib/orderly/useOrderStream.js.map +1 -0
- package/lib/orderly/useOrderbookStream.d.ts +2 -3
- package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
- package/lib/orderly/useOrderbookStream.js +227 -148
- package/lib/orderly/useOrderbookStream.js.map +1 -0
- package/lib/orderly/usePositionStream.js +134 -100
- package/lib/orderly/usePositionStream.js.map +1 -0
- package/lib/orderly/usePrivateDataObserver.js +76 -63
- package/lib/orderly/usePrivateDataObserver.js.map +1 -0
- package/lib/orderly/useSettleSubscription.js +25 -15
- package/lib/orderly/useSettleSubscription.js.map +1 -0
- package/lib/orderly/useSymbolPriceRange.js +29 -23
- package/lib/orderly/useSymbolPriceRange.js.map +1 -0
- package/lib/orderly/useSymbolsInfo.js +23 -15
- package/lib/orderly/useSymbolsInfo.js.map +1 -0
- package/lib/orderly/useTickerStream.d.ts +5 -1
- package/lib/orderly/useTickerStream.d.ts.map +1 -1
- package/lib/orderly/useTickerStream.js +51 -48
- package/lib/orderly/useTickerStream.js.map +1 -0
- package/lib/orderly/useWalletSubscription.js +25 -15
- package/lib/orderly/useWalletSubscription.js.map +1 -0
- package/lib/orderly/useWithdraw.js +36 -22
- package/lib/orderly/useWithdraw.js.map +1 -0
- package/lib/orderlyContext.d.ts +8 -1
- package/lib/orderlyContext.d.ts.map +1 -1
- package/lib/orderlyContext.js +22 -6
- package/lib/orderlyContext.js.map +1 -0
- package/lib/services/dataCenter.js +15 -11
- package/lib/services/dataCenter.js.map +1 -0
- package/lib/services/painter/backgroundPaint.js +21 -18
- package/lib/services/painter/backgroundPaint.js.map +1 -0
- package/lib/services/painter/basePaint.js +14 -4
- package/lib/services/painter/basePaint.js.map +1 -0
- package/lib/services/painter/dataPaint.js +67 -58
- package/lib/services/painter/dataPaint.js.map +1 -0
- package/lib/services/painter/layout.config.js +25 -16
- package/lib/services/painter/layout.config.js.map +1 -0
- package/lib/services/painter/painter.js +27 -20
- package/lib/services/painter/painter.js.map +1 -0
- package/lib/services/painter/resource.js +15 -7
- package/lib/services/painter/resource.js.map +1 -0
- package/lib/statusProvider.js +31 -10
- package/lib/statusProvider.js.map +1 -0
- package/lib/unuse/apiPrefixMiddleware.js +30 -22
- package/lib/unuse/apiPrefixMiddleware.js.map +1 -0
- package/lib/unuse/fn.js +14 -5
- package/lib/unuse/fn.js.map +1 -0
- package/lib/unuse/useBalance.js +23 -13
- package/lib/unuse/useBalance.js.map +1 -0
- package/lib/unuse/useFetures.js +41 -28
- package/lib/unuse/useFetures.js.map +1 -0
- package/lib/unuse/useRunOnce.js +61 -11
- package/lib/unuse/useRunOnce.js.map +1 -0
- package/lib/unuse/useSyncEnd.js +17 -10
- package/lib/unuse/useSyncEnd.js.map +1 -0
- package/lib/unuse/useTokenInfo.js +20 -12
- package/lib/unuse/useTokenInfo.js.map +1 -0
- package/lib/unuse/useUnsettlementPnL.js +21 -11
- package/lib/unuse/useUnsettlementPnL.js.map +1 -0
- package/lib/useAccount.js +32 -29
- package/lib/useAccount.js.map +1 -0
- package/lib/useAccountInstance.js +27 -20
- package/lib/useAccountInstance.js.map +1 -0
- package/lib/useBoolean.js +25 -10
- package/lib/useBoolean.js.map +1 -0
- package/lib/useConfig.js +15 -7
- package/lib/useConfig.js.map +1 -0
- package/lib/useEventEmitter.js +23 -13
- package/lib/useEventEmitter.js.map +1 -0
- package/lib/useLazyQuery.js +25 -23
- package/lib/useLazyQuery.js.map +1 -0
- package/lib/useLocalStorage.js +44 -28
- package/lib/useLocalStorage.js.map +1 -0
- package/lib/useMediaQuery.js +22 -14
- package/lib/useMediaQuery.js.map +1 -0
- package/lib/useMutation.js +47 -52
- package/lib/useMutation.js.map +1 -0
- package/lib/useObserve.js +22 -8
- package/lib/useObserve.js.map +1 -0
- package/lib/useParamsCheck.js +18 -14
- package/lib/useParamsCheck.js.map +1 -0
- package/lib/usePoster.js +80 -74
- package/lib/usePoster.js.map +1 -0
- package/lib/usePreloadData.js +21 -11
- package/lib/usePreloadData.js.map +1 -0
- package/lib/usePrivateInfiniteQuery.js +36 -22
- package/lib/usePrivateInfiniteQuery.js.map +1 -0
- package/lib/usePrivateQuery.js +35 -25
- package/lib/usePrivateQuery.js.map +1 -0
- package/lib/useQuery.js +24 -20
- package/lib/useQuery.js.map +1 -0
- package/lib/useSessionStorage.js +41 -26
- package/lib/useSessionStorage.js.map +1 -0
- package/lib/useWS.js +42 -32
- package/lib/useWS.js.map +1 -0
- package/lib/useWsStatus.js +34 -20
- package/lib/useWsStatus.js.map +1 -0
- package/lib/utils/createGetter.js +19 -14
- package/lib/utils/createGetter.js.map +1 -0
- package/lib/utils/createOrder.d.ts +1 -0
- package/lib/utils/createOrder.d.ts.map +1 -1
- package/lib/utils/createOrder.js +133 -82
- package/lib/utils/createOrder.js.map +1 -0
- package/lib/utils/dev.js +13 -9
- package/lib/utils/dev.js.map +1 -0
- package/lib/utils/fetcher.js +13 -5
- package/lib/utils/fetcher.js.map +1 -0
- package/lib/utils/json.js +12 -5
- package/lib/utils/json.js.map +1 -0
- package/lib/utils/orderEntryHelper.js +125 -82
- package/lib/utils/orderEntryHelper.js.map +1 -0
- package/lib/utils/parseHolding.js +19 -9
- package/lib/utils/parseHolding.js.map +1 -0
- package/lib/utils/swr.js +134 -111
- package/lib/utils/swr.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +13 -4
- package/lib/version.js.map +1 -0
- package/lib/walletConnectorContext.js +23 -7
- package/lib/walletConnectorContext.js.map +1 -0
- package/package.json +17 -9
|
@@ -1,135 +1,142 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const [
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useDeposit", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useDeposit;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _react = require("react");
|
|
12
|
+
const _useAccount = require("../useAccount");
|
|
13
|
+
const _types = require("@orderly.network/types");
|
|
14
|
+
const _utils = require("@orderly.network/utils");
|
|
15
|
+
const _useChains = require("./useChains");
|
|
16
|
+
const _useConfig = require("../useConfig");
|
|
17
|
+
const _usedebounce = require("use-debounce");
|
|
18
|
+
const useDeposit = (options)=>{
|
|
19
|
+
const networkId = (0, _useConfig.useConfig)("networkId");
|
|
20
|
+
const [balanceRevalidating, setBalanceRevalidating] = (0, _react.useState)(false);
|
|
21
|
+
const [allowanceRevalidating, setAllowanceRevalidating] = (0, _react.useState)(false);
|
|
22
|
+
const [_, { findByChainId }] = (0, _useChains.useChains)(undefined);
|
|
23
|
+
const [quantity, setQuantity] = (0, _react.useState)("");
|
|
24
|
+
const [depositFee, setDepositFee] = (0, _react.useState)(0n);
|
|
25
|
+
const [depositFeeRevalidating, setDepositFeeRevalidating] = (0, _react.useState)(false);
|
|
26
|
+
const [balance, setBalance] = (0, _react.useState)("0");
|
|
27
|
+
const [allowance, setAllowance] = (0, _react.useState)("0");
|
|
28
|
+
const { account, state } = (0, _useAccount.useAccount)();
|
|
29
|
+
const prevAddress = (0, _react.useRef)();
|
|
30
|
+
const getBalanceListener = (0, _react.useRef)();
|
|
31
|
+
const targetChain = (0, _react.useMemo)(()=>{
|
|
25
32
|
let chain;
|
|
26
33
|
// Orderly testnet supported chain
|
|
27
34
|
if (networkId === "testnet") {
|
|
28
|
-
chain = findByChainId(
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
35
|
+
chain = findByChainId(_types.ARBITRUM_TESTNET_CHAINID);
|
|
36
|
+
} else {
|
|
31
37
|
chain = findByChainId(options?.srcChainId);
|
|
32
38
|
// if is orderly un-supported chain
|
|
33
39
|
if (!chain?.network_infos?.bridgeless) {
|
|
34
40
|
// Orderly mainnet supported chain
|
|
35
|
-
chain = findByChainId(
|
|
41
|
+
chain = findByChainId(_types.ARBITRUM_MAINNET_CHAINID);
|
|
36
42
|
}
|
|
37
43
|
}
|
|
38
44
|
return chain;
|
|
39
|
-
}, [
|
|
40
|
-
|
|
45
|
+
}, [
|
|
46
|
+
networkId,
|
|
47
|
+
findByChainId,
|
|
48
|
+
options?.srcChainId
|
|
49
|
+
]);
|
|
50
|
+
const dst = (0, _react.useMemo)(()=>{
|
|
41
51
|
if (!targetChain) {
|
|
42
52
|
throw new Error("dst chain not found");
|
|
43
53
|
}
|
|
44
|
-
const USDC = targetChain?.token_infos.find((token)
|
|
54
|
+
const USDC = targetChain?.token_infos.find((token)=>token.symbol === "USDC");
|
|
45
55
|
return {
|
|
46
56
|
symbol: "USDC",
|
|
47
57
|
address: USDC?.address,
|
|
48
58
|
decimals: USDC?.decimals,
|
|
49
59
|
chainId: targetChain.network_infos.chain_id,
|
|
50
|
-
network: targetChain.network_infos.shortName
|
|
60
|
+
network: targetChain.network_infos.shortName
|
|
51
61
|
};
|
|
52
|
-
}, [
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
}, [
|
|
63
|
+
targetChain
|
|
64
|
+
]);
|
|
65
|
+
const isNativeToken = (0, _react.useMemo)(()=>(0, _types.isNativeTokenChecker)(options?.address || ""), [
|
|
66
|
+
options?.address
|
|
67
|
+
]);
|
|
68
|
+
const fetchBalanceHandler = (0, _react.useCallback)(async (address, decimals)=>{
|
|
55
69
|
let balance;
|
|
56
|
-
if (!!address && (0,
|
|
70
|
+
if (!!address && (0, _types.isNativeTokenChecker)(address)) {
|
|
57
71
|
balance = await account.assetsManager.getNativeBalance({
|
|
58
|
-
decimals
|
|
72
|
+
decimals
|
|
73
|
+
});
|
|
74
|
+
} else {
|
|
75
|
+
balance = await account.assetsManager.getBalance(address, {
|
|
76
|
+
decimals
|
|
59
77
|
});
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
balance = await account.assetsManager.getBalance(address, { decimals });
|
|
63
78
|
}
|
|
64
79
|
return balance;
|
|
65
80
|
}, []);
|
|
66
|
-
const fetchBalance = (0,
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
decimals) => {
|
|
71
|
-
if (!address)
|
|
72
|
-
return;
|
|
81
|
+
const fetchBalance = (0, _react.useCallback)(async (// token contract address
|
|
82
|
+
address, // format decimals
|
|
83
|
+
decimals)=>{
|
|
84
|
+
if (!address) return;
|
|
73
85
|
try {
|
|
74
86
|
// if (balanceRevalidating) return;
|
|
75
87
|
const balance = await fetchBalanceHandler(address, decimals);
|
|
76
|
-
setBalance(()
|
|
88
|
+
setBalance(()=>balance);
|
|
89
|
+
} catch (e) {
|
|
90
|
+
;
|
|
91
|
+
setBalance(()=>"0");
|
|
77
92
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}, [state]);
|
|
83
|
-
const fetchBalances = (0, react_1.useCallback)(async (tokens) => {
|
|
93
|
+
}, [
|
|
94
|
+
state
|
|
95
|
+
]);
|
|
96
|
+
const fetchBalances = (0, _react.useCallback)(async (tokens)=>{
|
|
84
97
|
const tasks = [];
|
|
85
|
-
for (const token of tokens)
|
|
98
|
+
for (const token of tokens){
|
|
86
99
|
// native token skip
|
|
87
|
-
if ((0,
|
|
100
|
+
if ((0, _types.isNativeTokenChecker)(token.address)) {
|
|
88
101
|
continue;
|
|
89
102
|
}
|
|
90
103
|
tasks.push(account.assetsManager.getBalanceByAddress(token.address));
|
|
91
104
|
}
|
|
92
105
|
const balances = await Promise.all(tasks);
|
|
93
|
-
|
|
94
|
-
|
|
106
|
+
// const balances = await account.assetsManager.getBalances(tokens);
|
|
107
|
+
// setBalance(() => balances);
|
|
95
108
|
}, []);
|
|
96
|
-
const getAllowance = async (address, vaultAddress)
|
|
109
|
+
const getAllowance = async (address, vaultAddress)=>{
|
|
97
110
|
// if (!address || !vaultAddress) return;
|
|
98
111
|
const key = `${address}-${vaultAddress}`;
|
|
99
|
-
if (prevAddress.current === key)
|
|
100
|
-
|
|
101
|
-
if (
|
|
102
|
-
return;
|
|
103
|
-
if (address && (0, types_1.isNativeTokenChecker)(address))
|
|
104
|
-
return;
|
|
112
|
+
if (prevAddress.current === key) return;
|
|
113
|
+
if (!address || !vaultAddress) return;
|
|
114
|
+
if (address && (0, _types.isNativeTokenChecker)(address)) return;
|
|
105
115
|
// if (allowanceRevalidating) return;
|
|
106
116
|
// setAllowanceRevalidating(true);
|
|
107
117
|
prevAddress.current = key;
|
|
108
118
|
const allowance = await account.assetsManager.getAllowance(address, vaultAddress);
|
|
109
|
-
setAllowance(()
|
|
119
|
+
setAllowance(()=>allowance);
|
|
110
120
|
// setAllowanceRevalidating(false);
|
|
111
121
|
return allowance;
|
|
112
122
|
};
|
|
113
|
-
const getAllowanceByDefaultAddress = async (address)
|
|
114
|
-
if (prevAddress.current === address)
|
|
115
|
-
|
|
116
|
-
if (!address || (0, types_1.isNativeTokenChecker)(address))
|
|
117
|
-
return;
|
|
123
|
+
const getAllowanceByDefaultAddress = async (address)=>{
|
|
124
|
+
if (prevAddress.current === address) return;
|
|
125
|
+
if (!address || (0, _types.isNativeTokenChecker)(address)) return;
|
|
118
126
|
prevAddress.current = address;
|
|
119
127
|
const allowance = await account.assetsManager.getAllowance(address);
|
|
120
|
-
setAllowance(()
|
|
128
|
+
setAllowance(()=>allowance);
|
|
121
129
|
};
|
|
122
|
-
const queryBalance = (0,
|
|
123
|
-
fetchBalance(options?.address, options?.decimals).finally(()
|
|
130
|
+
const queryBalance = (0, _usedebounce.useDebouncedCallback)((tokenAddress, decimals)=>{
|
|
131
|
+
fetchBalance(options?.address, options?.decimals).finally(()=>{
|
|
124
132
|
setBalanceRevalidating(false);
|
|
125
133
|
});
|
|
126
134
|
}, 100);
|
|
127
|
-
const queryAllowance = (0,
|
|
135
|
+
const queryAllowance = (0, _usedebounce.useDebouncedCallback)((tokenAddress, vaultAddress)=>{
|
|
128
136
|
getAllowance(tokenAddress, vaultAddress);
|
|
129
137
|
}, 100);
|
|
130
|
-
(0,
|
|
131
|
-
if (state.status <
|
|
132
|
-
return;
|
|
138
|
+
(0, _react.useEffect)(()=>{
|
|
139
|
+
if (state.status < _types.AccountStatusEnum.Connected) return;
|
|
133
140
|
setBalanceRevalidating(true);
|
|
134
141
|
// fetchBalance(options?.address, options?.decimals).finally(() => {
|
|
135
142
|
// setBalanceRevalidating(false);
|
|
@@ -137,12 +144,10 @@ const useDeposit = (options) => {
|
|
|
137
144
|
queryBalance(options?.address, options?.decimals);
|
|
138
145
|
if (dst.chainId !== options?.srcChainId) {
|
|
139
146
|
queryAllowance(options?.address);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
147
|
+
} else {
|
|
142
148
|
if (dst.symbol !== options?.srcToken) {
|
|
143
149
|
queryAllowance(options?.address);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
150
|
+
} else {
|
|
146
151
|
getAllowanceByDefaultAddress(options?.address);
|
|
147
152
|
}
|
|
148
153
|
}
|
|
@@ -153,122 +158,121 @@ const useDeposit = (options) => {
|
|
|
153
158
|
options?.srcToken,
|
|
154
159
|
account.address,
|
|
155
160
|
dst.chainId,
|
|
156
|
-
dst.symbol
|
|
161
|
+
dst.symbol
|
|
157
162
|
]);
|
|
158
|
-
const approve = (0,
|
|
163
|
+
const approve = (0, _react.useCallback)(async (amount)=>{
|
|
159
164
|
if (!options?.address) {
|
|
160
165
|
throw new Error("address is required");
|
|
161
166
|
}
|
|
162
|
-
return account.assetsManager
|
|
163
|
-
.
|
|
164
|
-
.then((result) => {
|
|
165
|
-
return account.walletClient
|
|
166
|
-
?.pollTransactionReceiptWithBackoff(result.hash)
|
|
167
|
-
.then((receipt) => {
|
|
167
|
+
return account.assetsManager.approve(options.address, amount).then((result)=>{
|
|
168
|
+
return account.walletClient?.pollTransactionReceiptWithBackoff(result.hash).then((receipt)=>{
|
|
168
169
|
if (receipt.status === 1) {
|
|
169
|
-
account.assetsManager
|
|
170
|
-
|
|
171
|
-
.then((allowance) => {
|
|
172
|
-
setAllowance(() => allowance);
|
|
170
|
+
account.assetsManager.getAllowance(options.address).then((allowance)=>{
|
|
171
|
+
setAllowance(()=>allowance);
|
|
173
172
|
});
|
|
174
173
|
}
|
|
175
174
|
});
|
|
176
175
|
});
|
|
177
|
-
}, [
|
|
178
|
-
|
|
176
|
+
}, [
|
|
177
|
+
account,
|
|
178
|
+
getAllowance,
|
|
179
|
+
options,
|
|
180
|
+
dst
|
|
181
|
+
]);
|
|
182
|
+
const deposit = (0, _react.useCallback)(async ()=>{
|
|
179
183
|
// only support orderly deposit
|
|
180
|
-
return account.assetsManager
|
|
181
|
-
.
|
|
182
|
-
|
|
183
|
-
account.assetsManager
|
|
184
|
-
.getAllowance(options?.address)
|
|
185
|
-
.then((allowance) => {
|
|
186
|
-
setAllowance(() => allowance);
|
|
184
|
+
return account.assetsManager.deposit(quantity, depositFee).then((res)=>{
|
|
185
|
+
account.assetsManager.getAllowance(options?.address).then((allowance)=>{
|
|
186
|
+
setAllowance(()=>allowance);
|
|
187
187
|
});
|
|
188
|
-
setBalance((value)
|
|
188
|
+
setBalance((value)=>new _utils.Decimal(value).sub(quantity).toString());
|
|
189
189
|
return res;
|
|
190
190
|
});
|
|
191
|
-
}, [
|
|
192
|
-
|
|
191
|
+
}, [
|
|
192
|
+
account,
|
|
193
|
+
fetchBalance,
|
|
194
|
+
quantity,
|
|
195
|
+
depositFee
|
|
196
|
+
]);
|
|
197
|
+
const loopGetBalance = async ()=>{
|
|
193
198
|
getBalanceListener.current && clearTimeout(getBalanceListener.current);
|
|
194
|
-
getBalanceListener.current = setTimeout(async ()
|
|
199
|
+
getBalanceListener.current = setTimeout(async ()=>{
|
|
195
200
|
try {
|
|
196
201
|
const balance = await fetchBalanceHandler(options?.address, options?.decimals);
|
|
197
202
|
setBalance(balance);
|
|
198
203
|
loopGetBalance();
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
console.log("fetchBalanceHandler error", err);
|
|
204
|
+
} catch (err) {
|
|
205
|
+
;
|
|
202
206
|
}
|
|
203
207
|
}, 3000);
|
|
204
208
|
};
|
|
205
|
-
const getDepositFee = (0,
|
|
209
|
+
const getDepositFee = (0, _react.useCallback)(async (quantity)=>{
|
|
206
210
|
return account.assetsManager.getDepositFee(quantity, targetChain?.network_infos);
|
|
207
|
-
}, [
|
|
208
|
-
|
|
211
|
+
}, [
|
|
212
|
+
account,
|
|
213
|
+
targetChain
|
|
214
|
+
]);
|
|
215
|
+
const enquiryDepositFee = (0, _react.useCallback)(()=>{
|
|
209
216
|
if (isNaN(Number(quantity)) || !quantity) {
|
|
210
217
|
setDepositFee(0n);
|
|
211
218
|
setDepositFeeRevalidating(false);
|
|
212
219
|
return;
|
|
213
220
|
}
|
|
214
221
|
setDepositFeeRevalidating(true);
|
|
215
|
-
getDepositFee(quantity)
|
|
216
|
-
.
|
|
217
|
-
const fee = BigInt(new utils_1.Decimal(res.toString())
|
|
218
|
-
.mul(types_1.DEPOSIT_FEE_RATE)
|
|
219
|
-
.toFixed(0, utils_1.Decimal.ROUND_UP)
|
|
220
|
-
.toString());
|
|
222
|
+
getDepositFee(quantity).then((res = 0n)=>{
|
|
223
|
+
const fee = BigInt(new _utils.Decimal(res.toString()).mul(_types.DEPOSIT_FEE_RATE).toFixed(0, _utils.Decimal.ROUND_UP).toString());
|
|
221
224
|
setDepositFee(fee);
|
|
222
|
-
|
|
223
|
-
})
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
})
|
|
227
|
-
.finally(() => {
|
|
225
|
+
;
|
|
226
|
+
}).catch((error)=>{
|
|
227
|
+
;
|
|
228
|
+
}).finally(()=>{
|
|
228
229
|
setDepositFeeRevalidating(false);
|
|
229
230
|
});
|
|
230
|
-
}, [
|
|
231
|
-
|
|
231
|
+
}, [
|
|
232
|
+
quantity
|
|
233
|
+
]);
|
|
234
|
+
(0, _react.useEffect)(()=>{
|
|
232
235
|
enquiryDepositFee();
|
|
233
|
-
}, [
|
|
234
|
-
|
|
236
|
+
}, [
|
|
237
|
+
quantity
|
|
238
|
+
]);
|
|
239
|
+
(0, _react.useEffect)(()=>{
|
|
235
240
|
if (!options?.address) {
|
|
236
241
|
return;
|
|
237
242
|
}
|
|
238
243
|
loopGetBalance();
|
|
239
|
-
return ()
|
|
244
|
+
return ()=>{
|
|
240
245
|
getBalanceListener.current && clearTimeout(getBalanceListener.current);
|
|
241
246
|
};
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}, [
|
|
247
|
+
// account.walletClient.on(
|
|
248
|
+
// // {
|
|
249
|
+
// // address: options?.address,
|
|
250
|
+
// // },
|
|
251
|
+
// "block",
|
|
252
|
+
// (log: any, event: any) => {
|
|
253
|
+
// console.log("account.walletClient.on", log, event);
|
|
254
|
+
// }
|
|
255
|
+
// );
|
|
256
|
+
}, [
|
|
257
|
+
options?.address,
|
|
258
|
+
options?.decimals
|
|
259
|
+
]);
|
|
252
260
|
return {
|
|
253
|
-
/** orderly support chain dst */
|
|
254
|
-
dst,
|
|
261
|
+
/** orderly support chain dst */ dst,
|
|
255
262
|
balance,
|
|
256
263
|
allowance,
|
|
257
264
|
isNativeToken,
|
|
258
265
|
balanceRevalidating,
|
|
259
266
|
allowanceRevalidating,
|
|
260
|
-
/** input quantiy */
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
depositFee,
|
|
264
|
-
/** enquiring depositFee status on chain */
|
|
265
|
-
depositFeeRevalidating,
|
|
267
|
+
/** input quantiy */ quantity,
|
|
268
|
+
/** orderly deposit fee, unit: wei */ depositFee,
|
|
269
|
+
/** enquiring depositFee status on chain */ depositFeeRevalidating,
|
|
266
270
|
approve,
|
|
267
271
|
deposit,
|
|
268
272
|
fetchBalances,
|
|
269
273
|
fetchBalance: fetchBalanceHandler,
|
|
270
|
-
/** set input quantity */
|
|
271
|
-
setQuantity,
|
|
274
|
+
/** set input quantity */ setQuantity
|
|
272
275
|
};
|
|
273
276
|
};
|
|
274
|
-
|
|
277
|
+
|
|
278
|
+
//# sourceMappingURL=useDeposit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useDeposit.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useAccount } from \"../useAccount\";\nimport {\n API,\n ARBITRUM_MAINNET_CHAINID,\n ARBITRUM_TESTNET_CHAINID,\n AccountStatusEnum,\n DEPOSIT_FEE_RATE,\n MaxUint256,\n NetworkId,\n isNativeTokenChecker,\n} from \"@orderly.network/types\";\nimport { Decimal } from \"@orderly.network/utils\";\nimport { useChains } from \"./useChains\";\nimport { useConfig } from \"../useConfig\";\nimport { useDebouncedCallback } from \"use-debounce\";\n\nexport type useDepositOptions = {\n // from address\n address?: string;\n decimals?: number;\n networkId?: NetworkId;\n srcChainId?: number;\n srcToken?: string;\n quantity?: string;\n};\n\nexport const useDeposit = (options?: useDepositOptions) => {\n const networkId = useConfig(\"networkId\");\n const [balanceRevalidating, setBalanceRevalidating] = useState(false);\n const [allowanceRevalidating, setAllowanceRevalidating] = useState(false);\n\n const [_, { findByChainId }] = useChains(undefined);\n\n const [quantity, setQuantity] = useState<string>(\"\");\n const [depositFee, setDepositFee] = useState<bigint>(0n);\n const [depositFeeRevalidating, setDepositFeeRevalidating] = useState(false);\n\n const [balance, setBalance] = useState(\"0\");\n const [allowance, setAllowance] = useState(\"0\");\n\n const { account, state } = useAccount();\n\n const prevAddress = useRef<string | undefined>();\n const getBalanceListener = useRef<ReturnType<typeof setTimeout>>();\n\n const targetChain = useMemo(() => {\n let chain: API.Chain | undefined;\n\n // Orderly testnet supported chain\n if (networkId === \"testnet\") {\n chain = findByChainId(ARBITRUM_TESTNET_CHAINID) as API.Chain;\n } else {\n chain = findByChainId(options?.srcChainId!) as API.Chain;\n // if is orderly un-supported chain\n if (!chain?.network_infos?.bridgeless) {\n // Orderly mainnet supported chain\n chain = findByChainId(ARBITRUM_MAINNET_CHAINID) as API.Chain;\n }\n }\n return chain;\n }, [networkId, findByChainId, options?.srcChainId]);\n\n const dst = useMemo(() => {\n if (!targetChain) {\n throw new Error(\"dst chain not found\");\n }\n\n const USDC = targetChain?.token_infos.find(\n (token: API.TokenInfo) => token.symbol === \"USDC\"\n );\n\n return {\n symbol: \"USDC\",\n address: USDC?.address,\n decimals: USDC?.decimals,\n chainId: targetChain.network_infos.chain_id,\n network: targetChain.network_infos.shortName,\n };\n }, [targetChain]);\n\n const isNativeToken = useMemo(\n () => isNativeTokenChecker(options?.address || \"\"),\n [options?.address]\n );\n\n const fetchBalanceHandler = useCallback(\n async (address: string, decimals?: number) => {\n let balance: string;\n\n if (!!address && isNativeTokenChecker(address)) {\n balance = await account.assetsManager.getNativeBalance({\n decimals,\n });\n } else {\n balance = await account.assetsManager.getBalance(address, { decimals });\n }\n\n return balance;\n },\n []\n );\n\n const fetchBalance = useCallback(\n async (\n // token contract address\n address?: string,\n // format decimals\n decimals?: number\n ) => {\n if (!address) return;\n\n try {\n // if (balanceRevalidating) return;\n const balance = await fetchBalanceHandler(address, decimals);\n\n setBalance(() => balance);\n } catch (e) {\n console.warn(\"----- refresh balance error -----\", e);\n\n setBalance(() => \"0\");\n }\n },\n [state]\n );\n\n const fetchBalances = useCallback(async (tokens: API.TokenInfo[]) => {\n const tasks = [];\n\n for (const token of tokens) {\n // native token skip\n if (isNativeTokenChecker(token.address)) {\n continue;\n }\n tasks.push(account.assetsManager.getBalanceByAddress(token.address));\n }\n\n const balances = await Promise.all(tasks);\n\n // const balances = await account.assetsManager.getBalances(tokens);\n // setBalance(() => balances);\n }, []);\n\n const getAllowance = async (address?: string, vaultAddress?: string) => {\n // if (!address || !vaultAddress) return;\n const key = `${address}-${vaultAddress}`;\n\n if (prevAddress.current === key) return;\n\n if (!address || !vaultAddress) return;\n if (address && isNativeTokenChecker(address)) return;\n // if (allowanceRevalidating) return;\n // setAllowanceRevalidating(true);\n\n prevAddress.current = key;\n\n const allowance = await account.assetsManager.getAllowance(\n address,\n vaultAddress\n );\n\n setAllowance(() => allowance);\n // setAllowanceRevalidating(false);\n return allowance;\n };\n\n const getAllowanceByDefaultAddress = async (address?: string) => {\n if (prevAddress.current === address) return;\n\n if (!address || isNativeTokenChecker(address)) return;\n\n prevAddress.current = address;\n\n const allowance = await account.assetsManager.getAllowance(address);\n setAllowance(() => allowance);\n };\n\n const queryBalance = useDebouncedCallback(\n (tokenAddress?: string, decimals?: number) => {\n fetchBalance(options?.address, options?.decimals).finally(() => {\n setBalanceRevalidating(false);\n });\n },\n 100\n );\n\n const queryAllowance = useDebouncedCallback(\n (tokenAddress?: string, vaultAddress?: string) => {\n getAllowance(tokenAddress, vaultAddress);\n },\n 100\n );\n\n useEffect(() => {\n if (state.status < AccountStatusEnum.Connected) return;\n setBalanceRevalidating(true);\n // fetchBalance(options?.address, options?.decimals).finally(() => {\n // setBalanceRevalidating(false);\n // });\n\n queryBalance(options?.address, options?.decimals);\n\n if (dst.chainId !== options?.srcChainId) {\n queryAllowance(options?.address);\n } else {\n if (dst.symbol !== options?.srcToken) {\n queryAllowance(options?.address);\n } else {\n getAllowanceByDefaultAddress(options?.address);\n }\n }\n }, [\n state.status,\n options?.address,\n options?.srcChainId,\n options?.srcToken,\n account.address,\n dst.chainId,\n dst.symbol,\n ]);\n\n const approve = useCallback(\n async (amount?: string) => {\n if (!options?.address) {\n throw new Error(\"address is required\");\n }\n return account.assetsManager\n .approve(options.address, amount)\n .then((result: any) => {\n return account.walletClient\n ?.pollTransactionReceiptWithBackoff(result.hash)\n .then((receipt) => {\n if (receipt.status === 1) {\n account.assetsManager\n .getAllowance(options.address)\n .then((allowance) => {\n setAllowance(() => allowance);\n });\n }\n });\n });\n },\n [account, getAllowance, options, dst]\n );\n\n const deposit = useCallback(async () => {\n // only support orderly deposit\n return account.assetsManager\n .deposit(quantity, depositFee)\n .then((res: any) => {\n account.assetsManager\n .getAllowance(options?.address)\n .then((allowance) => {\n setAllowance(() => allowance);\n });\n setBalance((value) => new Decimal(value).sub(quantity).toString());\n return res;\n });\n }, [account, fetchBalance, quantity, depositFee]);\n\n const loopGetBalance = async () => {\n getBalanceListener.current && clearTimeout(getBalanceListener.current);\n getBalanceListener.current = setTimeout(async () => {\n try {\n const balance = await fetchBalanceHandler(\n options?.address!,\n options?.decimals\n );\n\n setBalance(balance);\n loopGetBalance();\n } catch (err) {\n console.log(\"fetchBalanceHandler error\", err);\n }\n }, 3000);\n };\n\n const getDepositFee = useCallback(\n async (quantity: string) => {\n return account.assetsManager.getDepositFee(\n quantity,\n targetChain?.network_infos\n );\n },\n [account, targetChain]\n );\n\n const enquiryDepositFee = useCallback(() => {\n if (isNaN(Number(quantity)) || !quantity) {\n setDepositFee(0n);\n setDepositFeeRevalidating(false);\n return;\n }\n\n setDepositFeeRevalidating(true);\n\n getDepositFee(quantity)\n .then((res: bigint = 0n) => {\n const fee = BigInt(\n new Decimal(res.toString())\n .mul(DEPOSIT_FEE_RATE)\n .toFixed(0, Decimal.ROUND_UP)\n .toString()\n );\n\n setDepositFee(fee);\n console.log(\"getDepositFee\", fee);\n })\n .catch((error) => {\n console.log(\"getDepositFee error\", error);\n })\n .finally(() => {\n setDepositFeeRevalidating(false);\n });\n }, [quantity]);\n\n useEffect(() => {\n enquiryDepositFee();\n }, [quantity]);\n\n useEffect(() => {\n if (!options?.address) {\n return;\n }\n\n loopGetBalance();\n\n return () => {\n getBalanceListener.current && clearTimeout(getBalanceListener.current);\n };\n\n // account.walletClient.on(\n // // {\n // // address: options?.address,\n // // },\n // \"block\",\n // (log: any, event: any) => {\n // console.log(\"account.walletClient.on\", log, event);\n // }\n // );\n }, [options?.address, options?.decimals]);\n\n return {\n /** orderly support chain dst */\n dst,\n balance,\n allowance,\n isNativeToken,\n balanceRevalidating,\n allowanceRevalidating,\n /** input quantiy */\n quantity,\n /** orderly deposit fee, unit: wei */\n depositFee,\n /** enquiring depositFee status on chain */\n depositFeeRevalidating,\n approve,\n deposit,\n fetchBalances,\n fetchBalance: fetchBalanceHandler,\n /** set input quantity */\n setQuantity,\n };\n};\n"],"names":["useDeposit","options","networkId","useConfig","balanceRevalidating","setBalanceRevalidating","useState","allowanceRevalidating","setAllowanceRevalidating","_","findByChainId","useChains","undefined","quantity","setQuantity","depositFee","setDepositFee","depositFeeRevalidating","setDepositFeeRevalidating","balance","setBalance","allowance","setAllowance","account","state","useAccount","prevAddress","useRef","getBalanceListener","targetChain","useMemo","chain","ARBITRUM_TESTNET_CHAINID","srcChainId","network_infos","bridgeless","ARBITRUM_MAINNET_CHAINID","dst","Error","USDC","token_infos","find","token","symbol","address","decimals","chainId","chain_id","network","shortName","isNativeToken","isNativeTokenChecker","fetchBalanceHandler","useCallback","assetsManager","getNativeBalance","getBalance","fetchBalance","e","fetchBalances","tokens","tasks","push","getBalanceByAddress","balances","Promise","all","getAllowance","vaultAddress","key","current","getAllowanceByDefaultAddress","queryBalance","useDebouncedCallback","tokenAddress","finally","queryAllowance","useEffect","status","AccountStatusEnum","Connected","srcToken","approve","amount","then","result","walletClient","pollTransactionReceiptWithBackoff","hash","receipt","deposit","res","value","Decimal","sub","toString","loopGetBalance","clearTimeout","setTimeout","err","getDepositFee","enquiryDepositFee","isNaN","Number","fee","BigInt","mul","DEPOSIT_FEE_RATE","toFixed","ROUND_UP","catch","error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,44 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useFundingRate", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useFundingRate;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _useQuery = require("../useQuery");
|
|
12
|
+
const _react = require("react");
|
|
13
|
+
const _utils = require("@orderly.network/utils");
|
|
14
|
+
const useFundingRate = (symbol)=>{
|
|
8
15
|
if (!symbol) {
|
|
9
16
|
throw new Error("useFuturesForSymbol requires a symbol");
|
|
10
17
|
}
|
|
11
|
-
const [countDown, setCountDown] = (0,
|
|
12
|
-
const { data } = (0,
|
|
18
|
+
const [countDown, setCountDown] = (0, _react.useState)("00:00:00");
|
|
19
|
+
const { data } = (0, _useQuery.useQuery)(`/v1/public/funding_rate/${symbol}`, {
|
|
13
20
|
fallbackData: {
|
|
14
21
|
est_funding_rate: 0,
|
|
15
|
-
next_funing_time: 0
|
|
16
|
-
}
|
|
22
|
+
next_funing_time: 0
|
|
23
|
+
}
|
|
17
24
|
});
|
|
18
|
-
(0,
|
|
19
|
-
if (!data)
|
|
20
|
-
return;
|
|
25
|
+
(0, _react.useEffect)(()=>{
|
|
26
|
+
if (!data) return;
|
|
21
27
|
const { next_funding_time } = data;
|
|
22
28
|
if (!next_funding_time || next_funding_time <= 0) {
|
|
23
29
|
return;
|
|
24
30
|
}
|
|
25
|
-
const timer = setInterval(()
|
|
31
|
+
const timer = setInterval(()=>{
|
|
26
32
|
const diff = new Date(next_funding_time).getTime() - Date.now();
|
|
27
|
-
const result = (0,
|
|
33
|
+
const result = (0, _utils.timeConvertString)(diff);
|
|
28
34
|
if (result.length === 3) {
|
|
29
|
-
setCountDown(`${result[0].toString().padStart(2, "0")}:${result[1]
|
|
30
|
-
.toString()
|
|
31
|
-
.padStart(2, "0")}:${result[2].toString().padStart(2, "0")}`);
|
|
35
|
+
setCountDown(`${result[0].toString().padStart(2, "0")}:${result[1].toString().padStart(2, "0")}:${result[2].toString().padStart(2, "0")}`);
|
|
32
36
|
}
|
|
33
37
|
}, 1000);
|
|
34
|
-
return ()
|
|
38
|
+
return ()=>{
|
|
35
39
|
clearInterval(timer);
|
|
36
40
|
};
|
|
37
|
-
}, [
|
|
41
|
+
}, [
|
|
42
|
+
data
|
|
43
|
+
]);
|
|
38
44
|
return {
|
|
39
45
|
...data,
|
|
40
46
|
est_funding_rate: (Number(data?.est_funding_rate ?? 0) * 100).toFixed(4),
|
|
41
|
-
countDown
|
|
47
|
+
countDown
|
|
42
48
|
};
|
|
43
49
|
};
|
|
44
|
-
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=useFundingRate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useFundingRate.ts"],"sourcesContent":["import { API } from \"@orderly.network/types\";\nimport { useQuery } from \"../useQuery\";\nimport { useEffect, useState } from \"react\";\nimport { timeConvertString } from \"@orderly.network/utils\";\n\nexport const useFundingRate = (symbol: string) => {\n if (!symbol) {\n throw new Error(\"useFuturesForSymbol requires a symbol\");\n }\n\n const [countDown, setCountDown] = useState(\"00:00:00\");\n\n const { data } = useQuery<API.FundingRate>(\n `/v1/public/funding_rate/${symbol}`,\n {\n fallbackData: {\n est_funding_rate: 0,\n next_funing_time: 0,\n },\n }\n );\n\n useEffect(() => {\n if (!data) return;\n const { next_funding_time } = data;\n if (!next_funding_time || next_funding_time <= 0) {\n return;\n }\n const timer = setInterval(() => {\n const diff = new Date(next_funding_time).getTime() - Date.now();\n const result = timeConvertString(diff);\n if (result.length === 3) {\n setCountDown(\n `${result[0].toString().padStart(2, \"0\")}:${result[1]\n .toString()\n .padStart(2, \"0\")}:${result[2].toString().padStart(2, \"0\")}`\n );\n }\n }, 1000);\n return () => {\n clearInterval(timer);\n };\n }, [data]);\n\n return {\n ...data,\n est_funding_rate: (Number(data?.est_funding_rate ?? 0) * 100).toFixed(4),\n countDown,\n };\n};\n"],"names":["useFundingRate","symbol","Error","countDown","setCountDown","useState","data","useQuery","fallbackData","est_funding_rate","next_funing_time","useEffect","next_funding_time","timer","setInterval","diff","Date","getTime","now","result","timeConvertString","length","toString","padStart","clearInterval","Number","toFixed"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAKaA;;;eAAAA;;;0BAJY;uBACW;uBACF;AAE3B,MAAMA,iBAAiB,CAACC;IAC7B,IAAI,CAACA,QAAQ;QACX,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAM,CAACC,WAAWC,aAAa,GAAGC,IAAAA,eAAQ,EAAC;IAE3C,MAAM,EAAEC,IAAI,EAAE,GAAGC,IAAAA,kBAAQ,EACvB,CAAC,wBAAwB,EAAEN,OAAO,CAAC,EACnC;QACEO,cAAc;YACZC,kBAAkB;YAClBC,kBAAkB;QACpB;IACF;IAGFC,IAAAA,gBAAS,EAAC;QACR,IAAI,CAACL,MAAM;QACX,MAAM,EAAEM,iBAAiB,EAAE,GAAGN;QAC9B,IAAI,CAACM,qBAAqBA,qBAAqB,GAAG;YAChD;QACF;QACA,MAAMC,QAAQC,YAAY;YACxB,MAAMC,OAAO,IAAIC,KAAKJ,mBAAmBK,OAAO,KAAKD,KAAKE,GAAG;YAC7D,MAAMC,SAASC,IAAAA,wBAAiB,EAACL;YACjC,IAAII,OAAOE,MAAM,KAAK,GAAG;gBACvBjB,aACE,CAAC,EAAEe,MAAM,CAAC,EAAE,CAACG,QAAQ,GAAGC,QAAQ,CAAC,GAAG,KAAK,CAAC,EAAEJ,MAAM,CAAC,EAAE,CAClDG,QAAQ,GACRC,QAAQ,CAAC,GAAG,KAAK,CAAC,EAAEJ,MAAM,CAAC,EAAE,CAACG,QAAQ,GAAGC,QAAQ,CAAC,GAAG,KAAK,CAAC;YAElE;QACF,GAAG;QACH,OAAO;YACLC,cAAcX;QAChB;IACF,GAAG;QAACP;KAAK;IAET,OAAO;QACL,GAAGA,IAAI;QACPG,kBAAkB,AAACgB,CAAAA,OAAOnB,MAAMG,oBAAoB,KAAK,GAAE,EAAGiB,OAAO,CAAC;QACtEvB;IACF;AACF"}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useFundingRates", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return useFundingRates;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _useQuery = require("../useQuery");
|
|
12
|
+
const _createGetter = require("../utils/createGetter");
|
|
13
|
+
const useFundingRates = ()=>{
|
|
14
|
+
const { data } = (0, _useQuery.useQuery)(`/v1/public/funding_rates`, {
|
|
8
15
|
focusThrottleInterval: 1000 * 60 * 60 * 24,
|
|
9
16
|
revalidateOnFocus: false,
|
|
10
|
-
formatter(data) {
|
|
17
|
+
formatter (data) {
|
|
11
18
|
if (!data?.rows || !data?.rows?.length) {
|
|
12
19
|
return {};
|
|
13
20
|
}
|
|
14
21
|
const obj = Object.create(null);
|
|
15
|
-
for
|
|
22
|
+
for(let index = 0; index < data.rows.length; index++){
|
|
16
23
|
const item = data.rows[index];
|
|
17
24
|
obj[item.symbol] = item;
|
|
18
25
|
}
|
|
19
26
|
return obj;
|
|
20
|
-
}
|
|
27
|
+
}
|
|
21
28
|
});
|
|
22
|
-
return (0,
|
|
29
|
+
return (0, _createGetter.createGetter)(data);
|
|
23
30
|
};
|
|
24
|
-
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=useFundingRates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/orderly/useFundingRates.ts"],"sourcesContent":["import { useQuery } from \"../useQuery\";\nimport { type API } from \"@orderly.network/types\";\nimport { createGetter } from \"../utils/createGetter\";\n\nexport const useFundingRates = () => {\n const { data } = useQuery<{ [key: string]: API.FundingRate }>(\n `/v1/public/funding_rates`,\n {\n focusThrottleInterval: 1000 * 60 * 60 * 24,\n revalidateOnFocus: false,\n formatter(data: { rows: API.FundingRate[] }) {\n if (!data?.rows || !data?.rows?.length) {\n return {};\n }\n const obj = Object.create(null);\n\n for (let index = 0; index < data.rows.length; index++) {\n const item = data.rows[index];\n obj[item.symbol] = item;\n }\n\n return obj;\n },\n }\n );\n\n return createGetter<API.FundingRate>(data);\n};\n"],"names":["useFundingRates","data","useQuery","focusThrottleInterval","revalidateOnFocus","formatter","rows","length","obj","Object","create","index","item","symbol","createGetter"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAIaA;;;eAAAA;;;0BAJY;8BAEI;AAEtB,MAAMA,kBAAkB;IAC7B,MAAM,EAAEC,IAAI,EAAE,GAAGC,IAAAA,kBAAQ,EACvB,CAAC,wBAAwB,CAAC,EAC1B;QACEC,uBAAuB,OAAO,KAAK,KAAK;QACxCC,mBAAmB;QACnBC,WAAUJ,IAAiC;YACzC,IAAI,CAACA,MAAMK,QAAQ,CAACL,MAAMK,MAAMC,QAAQ;gBACtC,OAAO,CAAC;YACV;YACA,MAAMC,MAAMC,OAAOC,MAAM,CAAC;YAE1B,IAAK,IAAIC,QAAQ,GAAGA,QAAQV,KAAKK,IAAI,CAACC,MAAM,EAAEI,QAAS;gBACrD,MAAMC,OAAOX,KAAKK,IAAI,CAACK,MAAM;gBAC7BH,GAAG,CAACI,KAAKC,MAAM,CAAC,GAAGD;YACrB;YAEA,OAAOJ;QACT;IACF;IAGF,OAAOM,IAAAA,0BAAY,EAAkBb;AACvC"}
|