@velora-dex/widget 0.2.1 → 0.2.3-dev.0
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/README.md +3 -3
- package/dist/assets/price-impact.svg.js +12 -0
- package/dist/assets/price-impact.svg.js.map +1 -0
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +70 -64
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +3 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +39 -21
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +5 -0
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.d.ts.map +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js +1 -1
- package/dist/components/widget/ImportToken/ImportToken.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js +4 -4
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.d.ts.map +1 -1
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js +21 -18
- package/dist/components/widget/LimitOrdersDrawer/LimitOrderListItem.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/types.d.ts +1 -0
- package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.d.ts.map +1 -1
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js +33 -39
- package/dist/components/widget/OtcOrdersDrawer/OtcOrderDetails/OtcOrderDetails.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts +6 -2
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +84 -76
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SelectToken/types.d.ts +2 -0
- package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +43 -41
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/Toaster.js +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +5 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +5 -1
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.d.ts +7 -0
- package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenToInputProps.js +167 -23
- package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/otc/state/selectedTokenAtom.js +3 -1
- package/dist/core/otc/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenToInputProps.js +42 -16
- package/dist/core/otc/useOtcTokenToInputProps.js.map +1 -1
- package/dist/core/swapDetails/fees.d.ts.map +1 -1
- package/dist/core/swapDetails/fees.js +4 -2
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.d.ts.map +1 -1
- package/dist/core/swapDetails/orderRouting.js +7 -3
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.d.ts +3 -1
- package/dist/core/swapDetails/priceImpact.d.ts.map +1 -1
- package/dist/core/swapDetails/priceImpact.js +6 -2
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +155 -42
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.d.ts.map +1 -1
- package/dist/core/swapDetails/youGet.js +5 -2
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.d.ts +2 -0
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
- package/dist/events/hooks/useOnPriceUpdates.js +71 -0
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
- package/dist/events/types/priceChange.d.ts +7 -0
- package/dist/events/types/priceChange.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts +4 -4
- package/dist/hooks/otc/mutations/useCancelLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js +2 -2
- package/dist/hooks/otc/mutations/useCancelLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts +2 -2
- package/dist/hooks/otc/mutations/useCreateLimitOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js +2 -2
- package/dist/hooks/otc/mutations/useCreateLimitOrder.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.d.ts +5 -5
- package/dist/hooks/otc/mutations/useFillOrder.d.ts.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/bridge/useBridgedDeposit.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCancelLimitDeltaOrders.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +21 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +117 -29
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts +2 -2
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +14 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +130 -98
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +10 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +96 -4
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts +7 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.d.ts.map +1 -1
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js +81 -67
- package/dist/hooks/tokens/data/useCombineTokensWithFetched.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/lib/utils/useDateNow.d.ts +2 -0
- package/dist/lib/utils/useDateNow.d.ts.map +1 -0
- package/dist/lib/utils/useDateNow.js +7 -0
- package/dist/lib/utils/useDateNow.js.map +1 -0
- package/dist/styles.css +3 -4
- package/dist/tokens/state/addImportedTokenAtom.d.ts.map +1 -1
- package/dist/tokens/state/addImportedTokenAtom.js +6 -23
- package/dist/tokens/state/addImportedTokenAtom.js.map +1 -1
- package/package.json +8 -7
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { d as distExports } from '../../../../../_virtual/index.js';
|
|
2
2
|
import { useMarketSwapSDK } from '../../../../useSDK.js';
|
|
3
3
|
import { useDebouncedValue } from '@tanstack/react-pacer/debouncer';
|
|
4
|
-
import {
|
|
4
|
+
import { useQuery, useQueryClient, QueryObserver } from '@tanstack/react-query';
|
|
5
5
|
import { assert } from 'ts-essentials';
|
|
6
6
|
|
|
7
7
|
const MarketPriceQueryKeyPrefix = "swap/prices/market";
|
|
8
8
|
function useMarketPriceQuery(t0) {
|
|
9
|
-
const $ = distExports.c(
|
|
9
|
+
const $ = distExports.c(17);
|
|
10
10
|
const {
|
|
11
11
|
priceParams,
|
|
12
12
|
query,
|
|
@@ -28,54 +28,27 @@ function useMarketPriceQuery(t0) {
|
|
|
28
28
|
} = useMarketSwapSDK(t1);
|
|
29
29
|
const queryEnabled = query?.enabled ?? true;
|
|
30
30
|
let t2;
|
|
31
|
-
if ($[2]
|
|
31
|
+
if ($[2] !== chainId || $[3] !== priceParams) {
|
|
32
32
|
t2 = {
|
|
33
|
-
|
|
33
|
+
priceParams,
|
|
34
|
+
chainId
|
|
34
35
|
};
|
|
35
|
-
$[2] =
|
|
36
|
+
$[2] = chainId;
|
|
37
|
+
$[3] = priceParams;
|
|
38
|
+
$[4] = t2;
|
|
36
39
|
} else {
|
|
37
|
-
t2 = $[
|
|
40
|
+
t2 = $[4];
|
|
38
41
|
}
|
|
39
|
-
const
|
|
42
|
+
const {
|
|
43
|
+
queryKey,
|
|
44
|
+
sanitizedPriceParams
|
|
45
|
+
} = useMarketPriceQueryKey(t2);
|
|
40
46
|
let t3;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
let t6;
|
|
44
|
-
let t7;
|
|
45
|
-
if ($[3] !== chainId || $[4] !== debouncedAmount || $[5] !== priceParams.destDecimals || $[6] !== priceParams.destToken || $[7] !== priceParams.destTokenDexTransferFee || $[8] !== priceParams.destTokenTransferFee || $[9] !== priceParams.excludeContractMethods || $[10] !== priceParams.excludeContractMethodsWithoutFeeModel || $[11] !== priceParams.excludeDEXS || $[12] !== priceParams.excludePools || $[13] !== priceParams.excludeRFQ || $[14] !== priceParams.ignoreBadUsdPrice || $[15] !== priceParams.includeContractMethods || $[16] !== priceParams.includeDEXS || $[17] !== priceParams.maxImpact || $[18] !== priceParams.maxUSDImpact || $[19] !== priceParams.otherExchangePrices || $[20] !== priceParams.partner || $[21] !== priceParams.side || $[22] !== priceParams.srcDecimals || $[23] !== priceParams.srcToken || $[24] !== priceParams.srcTokenDexTransferFee || $[25] !== priceParams.srcTokenTransferFee || $[26] !== priceParams.userAddress || $[27] !== query || $[28] !== queryEnabled || $[29] !== sdk || $[30] !== timeout) {
|
|
46
|
-
const sanitizedPriceParams = {
|
|
47
|
-
amount: debouncedAmount,
|
|
48
|
-
userAddress: priceParams.userAddress,
|
|
49
|
-
side: priceParams.side,
|
|
50
|
-
srcDecimals: priceParams.srcDecimals,
|
|
51
|
-
destDecimals: priceParams.destDecimals,
|
|
52
|
-
srcToken: priceParams.srcToken,
|
|
53
|
-
destToken: priceParams.destToken,
|
|
54
|
-
options: {
|
|
55
|
-
excludeDEXS: priceParams.excludeDEXS,
|
|
56
|
-
includeDEXS: priceParams.includeDEXS,
|
|
57
|
-
excludePools: priceParams.excludePools,
|
|
58
|
-
excludeContractMethods: priceParams.excludeContractMethods,
|
|
59
|
-
includeContractMethods: priceParams.includeContractMethods,
|
|
60
|
-
partner: priceParams.partner,
|
|
61
|
-
maxImpact: priceParams.maxImpact,
|
|
62
|
-
maxUSDImpact: priceParams.maxUSDImpact,
|
|
63
|
-
otherExchangePrices: priceParams.otherExchangePrices,
|
|
64
|
-
ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
|
|
65
|
-
excludeRFQ: priceParams.excludeRFQ,
|
|
66
|
-
excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
|
|
67
|
-
srcTokenTransferFee: priceParams.srcTokenTransferFee,
|
|
68
|
-
destTokenTransferFee: priceParams.destTokenTransferFee,
|
|
69
|
-
srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
|
|
70
|
-
destTokenDexTransferFee: priceParams.destTokenDexTransferFee
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
t7 = useQuery;
|
|
74
|
-
t3 = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
|
|
75
|
-
t4 = (t82) => {
|
|
47
|
+
if ($[5] !== sanitizedPriceParams || $[6] !== sdk || $[7] !== timeout) {
|
|
48
|
+
t3 = (t42) => {
|
|
76
49
|
const {
|
|
77
50
|
signal
|
|
78
|
-
} =
|
|
51
|
+
} = t42;
|
|
79
52
|
assert(isPriceParamsValid(sanitizedPriceParams), "destToken is required");
|
|
80
53
|
const price = sdk.getRate(sanitizedPriceParams, {
|
|
81
54
|
signal,
|
|
@@ -83,65 +56,39 @@ function useMarketPriceQuery(t0) {
|
|
|
83
56
|
});
|
|
84
57
|
return price;
|
|
85
58
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
$[
|
|
89
|
-
$[
|
|
90
|
-
$[5] = priceParams.destDecimals;
|
|
91
|
-
$[6] = priceParams.destToken;
|
|
92
|
-
$[7] = priceParams.destTokenDexTransferFee;
|
|
93
|
-
$[8] = priceParams.destTokenTransferFee;
|
|
94
|
-
$[9] = priceParams.excludeContractMethods;
|
|
95
|
-
$[10] = priceParams.excludeContractMethodsWithoutFeeModel;
|
|
96
|
-
$[11] = priceParams.excludeDEXS;
|
|
97
|
-
$[12] = priceParams.excludePools;
|
|
98
|
-
$[13] = priceParams.excludeRFQ;
|
|
99
|
-
$[14] = priceParams.ignoreBadUsdPrice;
|
|
100
|
-
$[15] = priceParams.includeContractMethods;
|
|
101
|
-
$[16] = priceParams.includeDEXS;
|
|
102
|
-
$[17] = priceParams.maxImpact;
|
|
103
|
-
$[18] = priceParams.maxUSDImpact;
|
|
104
|
-
$[19] = priceParams.otherExchangePrices;
|
|
105
|
-
$[20] = priceParams.partner;
|
|
106
|
-
$[21] = priceParams.side;
|
|
107
|
-
$[22] = priceParams.srcDecimals;
|
|
108
|
-
$[23] = priceParams.srcToken;
|
|
109
|
-
$[24] = priceParams.srcTokenDexTransferFee;
|
|
110
|
-
$[25] = priceParams.srcTokenTransferFee;
|
|
111
|
-
$[26] = priceParams.userAddress;
|
|
112
|
-
$[27] = query;
|
|
113
|
-
$[28] = queryEnabled;
|
|
114
|
-
$[29] = sdk;
|
|
115
|
-
$[30] = timeout;
|
|
116
|
-
$[31] = t3;
|
|
117
|
-
$[32] = t4;
|
|
118
|
-
$[33] = t5;
|
|
119
|
-
$[34] = t6;
|
|
120
|
-
$[35] = t7;
|
|
59
|
+
$[5] = sanitizedPriceParams;
|
|
60
|
+
$[6] = sdk;
|
|
61
|
+
$[7] = timeout;
|
|
62
|
+
$[8] = t3;
|
|
121
63
|
} else {
|
|
122
|
-
t3 = $[
|
|
123
|
-
t4 = $[32];
|
|
124
|
-
t5 = $[33];
|
|
125
|
-
t6 = $[34];
|
|
126
|
-
t7 = $[35];
|
|
64
|
+
t3 = $[8];
|
|
127
65
|
}
|
|
128
|
-
let
|
|
129
|
-
if ($[
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
66
|
+
let t4;
|
|
67
|
+
if ($[9] !== queryEnabled || $[10] !== sanitizedPriceParams) {
|
|
68
|
+
t4 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
|
|
69
|
+
$[9] = queryEnabled;
|
|
70
|
+
$[10] = sanitizedPriceParams;
|
|
71
|
+
$[11] = t4;
|
|
72
|
+
} else {
|
|
73
|
+
t4 = $[11];
|
|
74
|
+
}
|
|
75
|
+
let t5;
|
|
76
|
+
if ($[12] !== query || $[13] !== queryKey || $[14] !== t3 || $[15] !== t4) {
|
|
77
|
+
t5 = {
|
|
78
|
+
queryKey,
|
|
79
|
+
queryFn: t3,
|
|
80
|
+
...query,
|
|
81
|
+
enabled: t4
|
|
135
82
|
};
|
|
136
|
-
$[
|
|
137
|
-
$[
|
|
138
|
-
$[
|
|
139
|
-
$[
|
|
140
|
-
$[
|
|
83
|
+
$[12] = query;
|
|
84
|
+
$[13] = queryKey;
|
|
85
|
+
$[14] = t3;
|
|
86
|
+
$[15] = t4;
|
|
87
|
+
$[16] = t5;
|
|
141
88
|
} else {
|
|
142
|
-
|
|
89
|
+
t5 = $[16];
|
|
143
90
|
}
|
|
144
|
-
return
|
|
91
|
+
return useQuery(t5);
|
|
145
92
|
}
|
|
146
93
|
function isPriceParamsValid(priceParams) {
|
|
147
94
|
return !!priceParams.destToken && Number(priceParams.amount) > 0;
|
|
@@ -217,6 +164,91 @@ function getLastMarketPrice(queryClient) {
|
|
|
217
164
|
function isDataMarketPrice(price) {
|
|
218
165
|
return typeof price === "object" && price !== null && "bestRoute" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
|
|
219
166
|
}
|
|
167
|
+
function sanitizePriceParams({
|
|
168
|
+
debouncedAmount,
|
|
169
|
+
priceParams
|
|
170
|
+
}) {
|
|
171
|
+
return {
|
|
172
|
+
amount: debouncedAmount,
|
|
173
|
+
userAddress: priceParams.userAddress,
|
|
174
|
+
side: priceParams.side,
|
|
175
|
+
srcDecimals: priceParams.srcDecimals,
|
|
176
|
+
destDecimals: priceParams.destDecimals,
|
|
177
|
+
srcToken: priceParams.srcToken,
|
|
178
|
+
destToken: priceParams.destToken,
|
|
179
|
+
options: {
|
|
180
|
+
excludeDEXS: priceParams.excludeDEXS,
|
|
181
|
+
includeDEXS: priceParams.includeDEXS,
|
|
182
|
+
excludePools: priceParams.excludePools,
|
|
183
|
+
excludeContractMethods: priceParams.excludeContractMethods,
|
|
184
|
+
includeContractMethods: priceParams.includeContractMethods,
|
|
185
|
+
partner: priceParams.partner,
|
|
186
|
+
maxImpact: priceParams.maxImpact,
|
|
187
|
+
maxUSDImpact: priceParams.maxUSDImpact,
|
|
188
|
+
otherExchangePrices: priceParams.otherExchangePrices,
|
|
189
|
+
ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
|
|
190
|
+
excludeRFQ: priceParams.excludeRFQ,
|
|
191
|
+
excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
|
|
192
|
+
srcTokenTransferFee: priceParams.srcTokenTransferFee,
|
|
193
|
+
destTokenTransferFee: priceParams.destTokenTransferFee,
|
|
194
|
+
srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
|
|
195
|
+
destTokenDexTransferFee: priceParams.destTokenDexTransferFee
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
function useMarketPriceQueryKey(t0) {
|
|
200
|
+
const $ = distExports.c(10);
|
|
201
|
+
const {
|
|
202
|
+
priceParams,
|
|
203
|
+
chainId
|
|
204
|
+
} = t0;
|
|
205
|
+
let t1;
|
|
206
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
207
|
+
t1 = {
|
|
208
|
+
wait: 500
|
|
209
|
+
};
|
|
210
|
+
$[0] = t1;
|
|
211
|
+
} else {
|
|
212
|
+
t1 = $[0];
|
|
213
|
+
}
|
|
214
|
+
const [debouncedAmount] = useDebouncedValue(priceParams.amount, t1);
|
|
215
|
+
let t2;
|
|
216
|
+
if ($[1] !== debouncedAmount || $[2] !== priceParams) {
|
|
217
|
+
t2 = sanitizePriceParams({
|
|
218
|
+
debouncedAmount,
|
|
219
|
+
priceParams
|
|
220
|
+
});
|
|
221
|
+
$[1] = debouncedAmount;
|
|
222
|
+
$[2] = priceParams;
|
|
223
|
+
$[3] = t2;
|
|
224
|
+
} else {
|
|
225
|
+
t2 = $[3];
|
|
226
|
+
}
|
|
227
|
+
const sanitizedPriceParams = t2;
|
|
228
|
+
let t3;
|
|
229
|
+
if ($[4] !== chainId || $[5] !== sanitizedPriceParams) {
|
|
230
|
+
t3 = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
|
|
231
|
+
$[4] = chainId;
|
|
232
|
+
$[5] = sanitizedPriceParams;
|
|
233
|
+
$[6] = t3;
|
|
234
|
+
} else {
|
|
235
|
+
t3 = $[6];
|
|
236
|
+
}
|
|
237
|
+
const queryKey = t3;
|
|
238
|
+
let t4;
|
|
239
|
+
if ($[7] !== queryKey || $[8] !== sanitizedPriceParams) {
|
|
240
|
+
t4 = {
|
|
241
|
+
queryKey,
|
|
242
|
+
sanitizedPriceParams
|
|
243
|
+
};
|
|
244
|
+
$[7] = queryKey;
|
|
245
|
+
$[8] = sanitizedPriceParams;
|
|
246
|
+
$[9] = t4;
|
|
247
|
+
} else {
|
|
248
|
+
t4 = $[9];
|
|
249
|
+
}
|
|
250
|
+
return t4;
|
|
251
|
+
}
|
|
220
252
|
|
|
221
|
-
export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useSubscribeToMarketPrice };
|
|
253
|
+
export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useMarketPriceQueryKey, useSubscribeToMarketPrice };
|
|
222
254
|
//# sourceMappingURL=useMarketPriceQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\ntype MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): MarketQueryResult<TData> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: MarkOptional<GetRateInput, \"destToken\"> = {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n\n return useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey: [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","t3","t4","t5","t6","t7","destDecimals","destToken","destTokenDexTransferFee","destTokenTransferFee","excludeContractMethods","excludeContractMethodsWithoutFeeModel","excludeDEXS","excludePools","excludeRFQ","ignoreBadUsdPrice","includeContractMethods","includeDEXS","maxImpact","maxUSDImpact","otherExchangePrices","partner","side","srcDecimals","srcToken","srcTokenDexTransferFee","srcTokenTransferFee","userAddress","sanitizedPriceParams","options","useQuery","t8","signal","assert","isPriceParamsValid","price","getRate","queryKey","queryFn","Number","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastMarketPrice","type","isDataMarketPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\nexport type MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): MarketQueryResult<TData> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n\n return useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nfunction sanitizePriceParams({\n debouncedAmount,\n priceParams,\n}: {\n debouncedAmount: string;\n priceParams: RateParamsInput;\n}): MarkOptional<GetRateInput, \"destToken\"> {\n return {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n}\n\nexport function useMarketPriceQueryKey({\n priceParams,\n chainId,\n}: Pick<MarketPriceQueryInput, \"priceParams\" | \"chainId\">) {\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams = sanitizePriceParams({\n debouncedAmount,\n priceParams,\n });\n\n const queryKey: MarketPriceQueryKey = [\n MarketPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useMarketPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getRate","t5","queryFn","useQuery","destToken","Number","amount","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastMarketPrice","type","isDataMarketPrice","sanitizePriceParams","debouncedAmount","userAddress","side","srcDecimals","destDecimals","srcToken","options","excludeDEXS","includeDEXS","excludePools","excludeContractMethods","includeContractMethods","partner","maxImpact","maxUSDImpact","otherExchangePrices","ignoreBadUsdPrice","excludeRFQ","excludeContractMethodsWithoutFeeModel","srcTokenTransferFee","destTokenTransferFee","srcTokenDexTransferFee","destTokenDexTransferFee","Symbol","for","wait","useDebouncedValue"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { useMarketPriceQueryKey } from './market/queries/useMarketPriceQuery';
|
|
2
|
+
import { useDeltaPriceQueryKey } from './delta/queries/useDeltaPriceQuery';
|
|
1
3
|
import { SwapMode } from '../../../components/widget/SwapModeSwitcher/state/types';
|
|
2
4
|
import { BridgePrice, DeltaPrice, OptimalRate } from '@velora-dex/sdk';
|
|
3
5
|
import { UseSwapPricesInput } from './types';
|
|
@@ -9,6 +11,7 @@ type UseSwapPricesReturn = {
|
|
|
9
11
|
/** @description whether the market price can be used for the current price params */
|
|
10
12
|
canBeUsed: boolean;
|
|
11
13
|
isLoading: boolean;
|
|
14
|
+
isFetching: boolean;
|
|
12
15
|
isError: boolean;
|
|
13
16
|
error: Error | null;
|
|
14
17
|
};
|
|
@@ -17,6 +20,7 @@ type UseSwapPricesReturn = {
|
|
|
17
20
|
/** @description whether the delta price can be used for the current price params && widget config */
|
|
18
21
|
canBeUsed: boolean;
|
|
19
22
|
isLoading: boolean;
|
|
23
|
+
isFetching: boolean;
|
|
20
24
|
isError: boolean;
|
|
21
25
|
error: Error | null;
|
|
22
26
|
};
|
|
@@ -34,5 +38,11 @@ type UseCurrentSwapPriceReturn = {
|
|
|
34
38
|
price?: DeltaPrice | BridgePrice;
|
|
35
39
|
});
|
|
36
40
|
export declare function useCurrentSwapPrice(params?: UseSwapPricesInput): UseCurrentSwapPriceReturn;
|
|
41
|
+
type UseCurrentSwapPriceQueryKeyReturn = (ReturnType<typeof useMarketPriceQueryKey> & {
|
|
42
|
+
priceMode: "market";
|
|
43
|
+
}) | (ReturnType<typeof useDeltaPriceQueryKey> & {
|
|
44
|
+
priceMode: "delta";
|
|
45
|
+
});
|
|
46
|
+
export declare function useCurrentSwapPriceQueryKey(): UseCurrentSwapPriceQueryKeyReturn;
|
|
37
47
|
export {};
|
|
38
48
|
//# sourceMappingURL=useSwapPrices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kDAAkD,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AASlD,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,QAAQ,CAAC;IACpB,qBAAqB,EAAE,QAAQ,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,qFAAqF;QACrF,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACjC,qGAAqG;QACrG,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CA0JrB;AAED,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,GAAG,CACA;IACE,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CAClC,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAoB3B;AAED,KAAK,iCAAiC,GAClC,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,GAAG;IAC3C,SAAS,EAAE,QAAQ,CAAC;CACrB,CAAC,GACF,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,GAAG;IAC1C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEP,wBAAgB,2BAA2B,IAAI,iCAAiC,CAmB/E"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
-
import { useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
|
|
2
|
+
import { useMarketPriceQueryKey, useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
|
|
3
3
|
import { usePricesParams } from './usePricesParams.js';
|
|
4
|
-
import { useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
|
|
4
|
+
import { useDeltaPriceQueryKey, useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
|
|
5
5
|
import { swapModeAtom } from '../../../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
|
|
6
6
|
import { useAtomValue } from 'jotai';
|
|
7
7
|
import { useGlobalDeltaEnabled } from '../../useGlobalDeltaEnabled.js';
|
|
8
8
|
import { useRef } from 'react';
|
|
9
9
|
import { isETH, isWETH } from '../../../tokens/utils/eth.js';
|
|
10
10
|
import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
|
|
11
|
+
import { useIsTokenSupportedInDeltaQuery } from './delta/queries/useIsTokenSupportedInDelta.js';
|
|
11
12
|
|
|
12
13
|
const PRICE_REFETCH_INTERVAL = 5e3;
|
|
13
14
|
function useSwapPrices(params = {}) {
|
|
@@ -35,6 +36,18 @@ function useSwapPrices(params = {}) {
|
|
|
35
36
|
}, chainId) && isETH({
|
|
36
37
|
address: priceParams.destToken
|
|
37
38
|
});
|
|
39
|
+
const {
|
|
40
|
+
data: isSrcTokenSupported
|
|
41
|
+
} = useIsTokenSupportedInDeltaQuery({
|
|
42
|
+
token: priceParams.srcToken,
|
|
43
|
+
chainId
|
|
44
|
+
});
|
|
45
|
+
const {
|
|
46
|
+
data: isDestTokenSupported
|
|
47
|
+
} = useIsTokenSupportedInDeltaQuery({
|
|
48
|
+
token: priceParams.destToken,
|
|
49
|
+
chainId
|
|
50
|
+
});
|
|
38
51
|
const deltaEnabled = (
|
|
39
52
|
// enabled in widget config
|
|
40
53
|
deltaEnabledInConfig && // enabled in user settings
|
|
@@ -43,7 +56,8 @@ function useSwapPrices(params = {}) {
|
|
|
43
56
|
priceParams.side === "SELL" && // ETH -> WETH same chain is market only
|
|
44
57
|
!isEthToWethSameChain && // WETH -> ETH same chain is market only
|
|
45
58
|
!isWethToEthSameChain && // user selected Delta
|
|
46
|
-
swapMode === "delta"
|
|
59
|
+
swapMode === "delta" && // tokens are supported in Delta
|
|
60
|
+
isSrcTokenSupported !== false && isDestTokenSupported !== false
|
|
47
61
|
);
|
|
48
62
|
const deltaCanBeUsed = fetchAnyPrice && deltaEnabledInConfig && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && // @TODO add BUY support for Delta when available
|
|
49
63
|
!isEthToWethSameChain && !isWethToEthSameChain;
|
|
@@ -102,6 +116,7 @@ function useSwapPrices(params = {}) {
|
|
|
102
116
|
market: {
|
|
103
117
|
price: marketPriceQuery.data,
|
|
104
118
|
isLoading: marketPriceQuery.isLoading,
|
|
119
|
+
isFetching: marketPriceQuery.isFetching,
|
|
105
120
|
isError: marketPriceQuery.isError,
|
|
106
121
|
error: marketPriceQuery.error,
|
|
107
122
|
canBeUsed: marketCanBeUsed
|
|
@@ -109,6 +124,7 @@ function useSwapPrices(params = {}) {
|
|
|
109
124
|
delta: {
|
|
110
125
|
price: deltaPriceQuery.data,
|
|
111
126
|
isLoading: deltaPriceQuery.isLoading,
|
|
127
|
+
isFetching: deltaPriceQuery.isFetching,
|
|
112
128
|
isError: deltaPriceQuery.isError,
|
|
113
129
|
error: deltaPriceQuery.error,
|
|
114
130
|
canBeUsed: deltaCanBeUsed
|
|
@@ -174,6 +190,82 @@ function useCurrentSwapPrice(t0) {
|
|
|
174
190
|
}
|
|
175
191
|
return t2;
|
|
176
192
|
}
|
|
193
|
+
function useCurrentSwapPriceQueryKey() {
|
|
194
|
+
const $ = distExports.c(14);
|
|
195
|
+
const {
|
|
196
|
+
priceParams,
|
|
197
|
+
chainId,
|
|
198
|
+
destChainId
|
|
199
|
+
} = usePricesParams("swap");
|
|
200
|
+
let t0;
|
|
201
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
202
|
+
t0 = {
|
|
203
|
+
enabled: false
|
|
204
|
+
};
|
|
205
|
+
$[0] = t0;
|
|
206
|
+
} else {
|
|
207
|
+
t0 = $[0];
|
|
208
|
+
}
|
|
209
|
+
const {
|
|
210
|
+
priceMode
|
|
211
|
+
} = useSwapPrices(t0);
|
|
212
|
+
let t1;
|
|
213
|
+
if ($[1] !== chainId || $[2] !== priceParams) {
|
|
214
|
+
t1 = {
|
|
215
|
+
priceParams,
|
|
216
|
+
chainId
|
|
217
|
+
};
|
|
218
|
+
$[1] = chainId;
|
|
219
|
+
$[2] = priceParams;
|
|
220
|
+
$[3] = t1;
|
|
221
|
+
} else {
|
|
222
|
+
t1 = $[3];
|
|
223
|
+
}
|
|
224
|
+
const marketQueryKey = useMarketPriceQueryKey(t1);
|
|
225
|
+
let t2;
|
|
226
|
+
if ($[4] !== chainId || $[5] !== destChainId || $[6] !== priceParams) {
|
|
227
|
+
t2 = {
|
|
228
|
+
priceParams,
|
|
229
|
+
chainId,
|
|
230
|
+
destChainId
|
|
231
|
+
};
|
|
232
|
+
$[4] = chainId;
|
|
233
|
+
$[5] = destChainId;
|
|
234
|
+
$[6] = priceParams;
|
|
235
|
+
$[7] = t2;
|
|
236
|
+
} else {
|
|
237
|
+
t2 = $[7];
|
|
238
|
+
}
|
|
239
|
+
const deltaQueryKey = useDeltaPriceQueryKey(t2);
|
|
240
|
+
if (priceMode === "market") {
|
|
241
|
+
let t32;
|
|
242
|
+
if ($[8] !== marketQueryKey || $[9] !== priceMode) {
|
|
243
|
+
t32 = {
|
|
244
|
+
...marketQueryKey,
|
|
245
|
+
priceMode
|
|
246
|
+
};
|
|
247
|
+
$[8] = marketQueryKey;
|
|
248
|
+
$[9] = priceMode;
|
|
249
|
+
$[10] = t32;
|
|
250
|
+
} else {
|
|
251
|
+
t32 = $[10];
|
|
252
|
+
}
|
|
253
|
+
return t32;
|
|
254
|
+
}
|
|
255
|
+
let t3;
|
|
256
|
+
if ($[11] !== deltaQueryKey || $[12] !== priceMode) {
|
|
257
|
+
t3 = {
|
|
258
|
+
...deltaQueryKey,
|
|
259
|
+
priceMode
|
|
260
|
+
};
|
|
261
|
+
$[11] = deltaQueryKey;
|
|
262
|
+
$[12] = priceMode;
|
|
263
|
+
$[13] = t3;
|
|
264
|
+
} else {
|
|
265
|
+
t3 = $[13];
|
|
266
|
+
}
|
|
267
|
+
return t3;
|
|
268
|
+
}
|
|
177
269
|
|
|
178
|
-
export { useCurrentSwapPrice, useSwapPrices };
|
|
270
|
+
export { useCurrentSwapPrice, useCurrentSwapPriceQueryKey, useSwapPrices };
|
|
179
271
|
//# sourceMappingURL=useSwapPrices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport { useDeltaPriceQuery } from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\";\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","data","isLoading","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n useMarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n useDeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n /* eslint-disable react-hooks/refs */\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n /* eslint-enable react-hooks/refs */\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n\ntype UseCurrentSwapPriceQueryKeyReturn =\n | (ReturnType<typeof useMarketPriceQueryKey> & {\n priceMode: \"market\";\n })\n | (ReturnType<typeof useDeltaPriceQueryKey> & {\n priceMode: \"delta\";\n });\n\nexport function useCurrentSwapPriceQueryKey(): UseCurrentSwapPriceQueryKeyReturn {\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const { priceMode } = useSwapPrices({ enabled: false });\n\n const marketQueryKey = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n const deltaQueryKey = useDeltaPriceQueryKey({\n priceParams,\n chainId,\n destChainId,\n });\n\n if (priceMode === \"market\") {\n return { ...marketQueryKey, priceMode };\n }\n\n return { ...deltaQueryKey, priceMode };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","token","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","isLoading","isFetching","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2","useCurrentSwapPriceQueryKey","Symbol","for","marketQueryKey","useMarketPriceQueryKey","deltaQueryKey","useDeltaPriceQueryKey","t3"],"mappings":"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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { TokenMaybeWithUsdBalance } from '../../../tokens/state/types';
|
|
2
2
|
import { TokenRowForFetchedToken } from '../../../components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow';
|
|
3
|
+
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
3
4
|
type UseCombineTokensWithFetchedReturn = {
|
|
4
5
|
tokenRowsCombined: TokenRowForFetchedToken[];
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
type UseCombineTokensWithFetchedInput = {
|
|
8
|
+
allTokenRows: TokenMaybeWithUsdBalance[];
|
|
9
|
+
tokenFilter: string;
|
|
10
|
+
selectableChains?: SupportedChainId[];
|
|
11
|
+
};
|
|
12
|
+
export declare const useCombineTokensWithFetched: ({ allTokenRows, tokenFilter, selectableChains, }: UseCombineTokensWithFetchedInput) => UseCombineTokensWithFetchedReturn;
|
|
7
13
|
export {};
|
|
8
14
|
//# sourceMappingURL=useCombineTokensWithFetched.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCombineTokensWithFetched.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yEAAyE,CAAC;
|
|
1
|
+
{"version":3,"file":"useCombineTokensWithFetched.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/data/useCombineTokensWithFetched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yEAAyE,CAAC;AACvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,KAAK,iCAAiC,GAAG;IACvC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC;AACF,eAAO,MAAM,2BAA2B,GAAI,kDAIzC,gCAAgC,KAAG,iCAsErC,CAAC"}
|