@velora-dex/widget 0.2.3-dev.2 → 0.2.3-dev.3
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/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +3 -1
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
- package/dist/core/state/widgetEventsAtom.js +4 -4
- package/dist/core/state/widgetEventsAtom.js.map +1 -1
- package/dist/events/effects/price.js +3 -3
- package/dist/events/effects/price.js.map +1 -1
- package/dist/events/effects/swapMode.js +2 -2
- package/dist/events/effects/swapMode.js.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
- package/dist/events/hooks/useOnPriceUpdates.js +33 -18
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
- package/dist/events/types/priceChange.d.ts +6 -6
- package/dist/events/types/priceChange.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +7 -4
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +29 -72
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +27 -9
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +42 -84
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +209 -81
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/useCachedQueryError.d.ts +3 -0
- package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
- package/dist/hooks/useCachedQueryError.js +11 -0
- package/dist/hooks/useCachedQueryError.js.map +1 -0
- package/package.json +1 -1
|
@@ -5,13 +5,23 @@ import { 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
|
-
import { useRef } from 'react';
|
|
9
8
|
import { isETH, isWETH } from '../../../tokens/utils/eth.js';
|
|
10
9
|
import { wrappedNativeCurrency } from '../../../lib/constants/weth.js';
|
|
11
10
|
import { useIsTokenSupportedInDeltaQuery } from './delta/queries/useIsTokenSupportedInDelta.js';
|
|
11
|
+
import { useCachedQueryError } from '../../useCachedQueryError.js';
|
|
12
12
|
|
|
13
13
|
const PRICE_REFETCH_INTERVAL = 5e3;
|
|
14
|
-
function useSwapPrices(
|
|
14
|
+
function useSwapPrices(t0) {
|
|
15
|
+
const $ = distExports.c(59);
|
|
16
|
+
let t1;
|
|
17
|
+
if ($[0] !== t0) {
|
|
18
|
+
t1 = t0 === void 0 ? {} : t0;
|
|
19
|
+
$[0] = t0;
|
|
20
|
+
$[1] = t1;
|
|
21
|
+
} else {
|
|
22
|
+
t1 = $[1];
|
|
23
|
+
}
|
|
24
|
+
const params = t1;
|
|
15
25
|
const {
|
|
16
26
|
priceParams,
|
|
17
27
|
isCrossChain,
|
|
@@ -26,112 +36,230 @@ function useSwapPrices(params = {}) {
|
|
|
26
36
|
} = useGlobalDeltaEnabled();
|
|
27
37
|
const fetchAnyPrice = priceParams.amount !== "0" && !!priceParams.destToken;
|
|
28
38
|
const isBUY = priceParams.side === "BUY";
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
let t2;
|
|
40
|
+
if ($[2] !== chainId || $[3] !== isCrossChain || $[4] !== priceParams.destToken || $[5] !== priceParams.srcToken) {
|
|
41
|
+
t2 = !isCrossChain && !!priceParams.destToken && isETH({
|
|
42
|
+
address: priceParams.srcToken
|
|
43
|
+
}) && isWETH({
|
|
44
|
+
address: priceParams.destToken
|
|
45
|
+
}, chainId);
|
|
46
|
+
$[2] = chainId;
|
|
47
|
+
$[3] = isCrossChain;
|
|
48
|
+
$[4] = priceParams.destToken;
|
|
49
|
+
$[5] = priceParams.srcToken;
|
|
50
|
+
$[6] = t2;
|
|
51
|
+
} else {
|
|
52
|
+
t2 = $[6];
|
|
53
|
+
}
|
|
54
|
+
const isEthToWethSameChain = t2;
|
|
55
|
+
let t3;
|
|
56
|
+
if ($[7] !== chainId || $[8] !== isCrossChain || $[9] !== priceParams.destToken || $[10] !== priceParams.srcToken) {
|
|
57
|
+
t3 = !isCrossChain && !!priceParams.destToken && isWETH({
|
|
58
|
+
address: priceParams.srcToken
|
|
59
|
+
}, chainId) && isETH({
|
|
60
|
+
address: priceParams.destToken
|
|
61
|
+
});
|
|
62
|
+
$[7] = chainId;
|
|
63
|
+
$[8] = isCrossChain;
|
|
64
|
+
$[9] = priceParams.destToken;
|
|
65
|
+
$[10] = priceParams.srcToken;
|
|
66
|
+
$[11] = t3;
|
|
67
|
+
} else {
|
|
68
|
+
t3 = $[11];
|
|
69
|
+
}
|
|
70
|
+
const isWethToEthSameChain = t3;
|
|
71
|
+
let t4;
|
|
72
|
+
if ($[12] !== chainId || $[13] !== priceParams.srcToken) {
|
|
73
|
+
t4 = {
|
|
74
|
+
token: priceParams.srcToken,
|
|
75
|
+
chainId
|
|
76
|
+
};
|
|
77
|
+
$[12] = chainId;
|
|
78
|
+
$[13] = priceParams.srcToken;
|
|
79
|
+
$[14] = t4;
|
|
80
|
+
} else {
|
|
81
|
+
t4 = $[14];
|
|
82
|
+
}
|
|
39
83
|
const {
|
|
40
84
|
data: isSrcTokenSupported
|
|
41
|
-
} = useIsTokenSupportedInDeltaQuery(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
85
|
+
} = useIsTokenSupportedInDeltaQuery(t4);
|
|
86
|
+
const t5 = destChainId || chainId;
|
|
87
|
+
let t6;
|
|
88
|
+
if ($[15] !== priceParams.destToken || $[16] !== t5) {
|
|
89
|
+
t6 = {
|
|
90
|
+
token: priceParams.destToken,
|
|
91
|
+
chainId: t5
|
|
92
|
+
};
|
|
93
|
+
$[15] = priceParams.destToken;
|
|
94
|
+
$[16] = t5;
|
|
95
|
+
$[17] = t6;
|
|
96
|
+
} else {
|
|
97
|
+
t6 = $[17];
|
|
98
|
+
}
|
|
45
99
|
const {
|
|
46
100
|
data: isDestTokenSupported
|
|
47
|
-
} = useIsTokenSupportedInDeltaQuery(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
priceParams.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
address: priceParams.srcToken
|
|
66
|
-
}) ? wrappedNativeCurrency[chainId] : priceParams.srcToken;
|
|
67
|
-
const deltaPriceQuery = useDeltaPriceQuery({
|
|
68
|
-
priceParams: {
|
|
101
|
+
} = useIsTokenSupportedInDeltaQuery(t6);
|
|
102
|
+
const deltaEnabled = deltaEnabledInConfig && deltaEnabledInSettings && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && !isEthToWethSameChain && !isWethToEthSameChain && swapMode === "delta" && isSrcTokenSupported !== false && isDestTokenSupported !== false;
|
|
103
|
+
const deltaCanBeUsed = fetchAnyPrice && deltaEnabledInConfig && deltaEnabledOnCurrentChain && priceParams.side === "SELL" && !isEthToWethSameChain && !isWethToEthSameChain;
|
|
104
|
+
let t7;
|
|
105
|
+
if ($[18] !== chainId || $[19] !== priceParams.srcToken) {
|
|
106
|
+
t7 = isETH({
|
|
107
|
+
address: priceParams.srcToken
|
|
108
|
+
}) ? wrappedNativeCurrency[chainId] : priceParams.srcToken;
|
|
109
|
+
$[18] = chainId;
|
|
110
|
+
$[19] = priceParams.srcToken;
|
|
111
|
+
$[20] = t7;
|
|
112
|
+
} else {
|
|
113
|
+
t7 = $[20];
|
|
114
|
+
}
|
|
115
|
+
const srcTokenForDelta = t7;
|
|
116
|
+
let t8;
|
|
117
|
+
if ($[21] !== priceParams || $[22] !== srcTokenForDelta) {
|
|
118
|
+
t8 = {
|
|
69
119
|
...priceParams,
|
|
70
120
|
srcToken: srcTokenForDelta
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
121
|
+
};
|
|
122
|
+
$[21] = priceParams;
|
|
123
|
+
$[22] = srcTokenForDelta;
|
|
124
|
+
$[23] = t8;
|
|
125
|
+
} else {
|
|
126
|
+
t8 = $[23];
|
|
127
|
+
}
|
|
128
|
+
const t9 = deltaEnabled && fetchAnyPrice && (params.enabled ?? true);
|
|
129
|
+
let t10;
|
|
130
|
+
if ($[24] !== t9) {
|
|
131
|
+
t10 = {
|
|
132
|
+
enabled: t9,
|
|
77
133
|
refetchInterval: PRICE_REFETCH_INTERVAL,
|
|
78
|
-
// already refetched on short interval
|
|
79
|
-
// prevents delay before deltaPriceQuery.error is set
|
|
80
134
|
retry: false
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
135
|
+
};
|
|
136
|
+
$[24] = t9;
|
|
137
|
+
$[25] = t10;
|
|
138
|
+
} else {
|
|
139
|
+
t10 = $[25];
|
|
140
|
+
}
|
|
141
|
+
let t11;
|
|
142
|
+
if ($[26] !== chainId || $[27] !== destChainId || $[28] !== t10 || $[29] !== t8) {
|
|
143
|
+
t11 = {
|
|
144
|
+
priceParams: t8,
|
|
145
|
+
chainId,
|
|
146
|
+
destChainId,
|
|
147
|
+
timeout: 5e3,
|
|
148
|
+
query: t10
|
|
149
|
+
};
|
|
150
|
+
$[26] = chainId;
|
|
151
|
+
$[27] = destChainId;
|
|
152
|
+
$[28] = t10;
|
|
153
|
+
$[29] = t8;
|
|
154
|
+
$[30] = t11;
|
|
155
|
+
} else {
|
|
156
|
+
t11 = $[30];
|
|
157
|
+
}
|
|
158
|
+
const {
|
|
159
|
+
result: deltaPriceQuery,
|
|
160
|
+
queryKey: deltaPriceQueryKey
|
|
161
|
+
} = useDeltaPriceQuery(t11);
|
|
162
|
+
const deltaErrorCached = useCachedQueryError(deltaPriceQuery);
|
|
87
163
|
const marketEnabled = !isCrossChain;
|
|
88
164
|
const marketCanBeUsed = marketEnabled && fetchAnyPrice;
|
|
89
165
|
const marketIsFallback = deltaErrorCached && marketEnabled;
|
|
90
166
|
const marketIsMainMode = swapMode === "market" && marketEnabled || !deltaEnabled || isBUY;
|
|
91
167
|
const priceMode = marketIsFallback || marketIsMainMode ? "market" : "delta";
|
|
92
|
-
const marketRefetchInterval =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
) : (
|
|
99
|
-
// otherwise when Delta is working, less frequent updates for Market price
|
|
100
|
-
2 * PRICE_REFETCH_INTERVAL
|
|
101
|
-
)
|
|
102
|
-
);
|
|
103
|
-
const marketPriceQuery = useMarketPriceQuery({
|
|
104
|
-
priceParams,
|
|
105
|
-
chainId,
|
|
106
|
-
timeout: 5e3,
|
|
107
|
-
query: {
|
|
108
|
-
enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),
|
|
168
|
+
const marketRefetchInterval = !deltaEnabled || deltaErrorCached ? PRICE_REFETCH_INTERVAL : 2 * PRICE_REFETCH_INTERVAL;
|
|
169
|
+
const t12 = marketEnabled && fetchAnyPrice && (params.enabled ?? true);
|
|
170
|
+
let t13;
|
|
171
|
+
if ($[31] !== marketRefetchInterval || $[32] !== t12) {
|
|
172
|
+
t13 = {
|
|
173
|
+
enabled: t12,
|
|
109
174
|
refetchInterval: marketRefetchInterval,
|
|
110
175
|
retry: false
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
176
|
+
};
|
|
177
|
+
$[31] = marketRefetchInterval;
|
|
178
|
+
$[32] = t12;
|
|
179
|
+
$[33] = t13;
|
|
180
|
+
} else {
|
|
181
|
+
t13 = $[33];
|
|
182
|
+
}
|
|
183
|
+
let t14;
|
|
184
|
+
if ($[34] !== chainId || $[35] !== priceParams || $[36] !== t13) {
|
|
185
|
+
t14 = {
|
|
186
|
+
priceParams,
|
|
187
|
+
chainId,
|
|
188
|
+
timeout: 5e3,
|
|
189
|
+
query: t13
|
|
190
|
+
};
|
|
191
|
+
$[34] = chainId;
|
|
192
|
+
$[35] = priceParams;
|
|
193
|
+
$[36] = t13;
|
|
194
|
+
$[37] = t14;
|
|
195
|
+
} else {
|
|
196
|
+
t14 = $[37];
|
|
197
|
+
}
|
|
198
|
+
const {
|
|
199
|
+
result: marketPriceQuery,
|
|
200
|
+
queryKey: marketPriceQueryKey
|
|
201
|
+
} = useMarketPriceQuery(t14);
|
|
202
|
+
let t15;
|
|
203
|
+
if ($[38] !== marketCanBeUsed || $[39] !== marketPriceQuery.data || $[40] !== marketPriceQuery.error || $[41] !== marketPriceQuery.isError || $[42] !== marketPriceQuery.isFetching || $[43] !== marketPriceQuery.isLoading || $[44] !== marketPriceQueryKey) {
|
|
204
|
+
t15 = {
|
|
117
205
|
price: marketPriceQuery.data,
|
|
118
206
|
isLoading: marketPriceQuery.isLoading,
|
|
119
207
|
isFetching: marketPriceQuery.isFetching,
|
|
120
208
|
isError: marketPriceQuery.isError,
|
|
121
209
|
error: marketPriceQuery.error,
|
|
122
210
|
canBeUsed: marketCanBeUsed,
|
|
123
|
-
queryKey:
|
|
124
|
-
}
|
|
125
|
-
|
|
211
|
+
queryKey: marketPriceQueryKey
|
|
212
|
+
};
|
|
213
|
+
$[38] = marketCanBeUsed;
|
|
214
|
+
$[39] = marketPriceQuery.data;
|
|
215
|
+
$[40] = marketPriceQuery.error;
|
|
216
|
+
$[41] = marketPriceQuery.isError;
|
|
217
|
+
$[42] = marketPriceQuery.isFetching;
|
|
218
|
+
$[43] = marketPriceQuery.isLoading;
|
|
219
|
+
$[44] = marketPriceQueryKey;
|
|
220
|
+
$[45] = t15;
|
|
221
|
+
} else {
|
|
222
|
+
t15 = $[45];
|
|
223
|
+
}
|
|
224
|
+
let t16;
|
|
225
|
+
if ($[46] !== deltaCanBeUsed || $[47] !== deltaPriceQuery.data || $[48] !== deltaPriceQuery.error || $[49] !== deltaPriceQuery.isError || $[50] !== deltaPriceQuery.isFetching || $[51] !== deltaPriceQuery.isLoading || $[52] !== deltaPriceQueryKey) {
|
|
226
|
+
t16 = {
|
|
126
227
|
price: deltaPriceQuery.data,
|
|
127
228
|
isLoading: deltaPriceQuery.isLoading,
|
|
128
229
|
isFetching: deltaPriceQuery.isFetching,
|
|
129
230
|
isError: deltaPriceQuery.isError,
|
|
130
231
|
error: deltaPriceQuery.error,
|
|
131
232
|
canBeUsed: deltaCanBeUsed,
|
|
132
|
-
queryKey:
|
|
133
|
-
}
|
|
134
|
-
|
|
233
|
+
queryKey: deltaPriceQueryKey
|
|
234
|
+
};
|
|
235
|
+
$[46] = deltaCanBeUsed;
|
|
236
|
+
$[47] = deltaPriceQuery.data;
|
|
237
|
+
$[48] = deltaPriceQuery.error;
|
|
238
|
+
$[49] = deltaPriceQuery.isError;
|
|
239
|
+
$[50] = deltaPriceQuery.isFetching;
|
|
240
|
+
$[51] = deltaPriceQuery.isLoading;
|
|
241
|
+
$[52] = deltaPriceQueryKey;
|
|
242
|
+
$[53] = t16;
|
|
243
|
+
} else {
|
|
244
|
+
t16 = $[53];
|
|
245
|
+
}
|
|
246
|
+
let t17;
|
|
247
|
+
if ($[54] !== priceMode || $[55] !== swapMode || $[56] !== t15 || $[57] !== t16) {
|
|
248
|
+
t17 = {
|
|
249
|
+
priceMode,
|
|
250
|
+
userSelectedPriceMode: swapMode,
|
|
251
|
+
market: t15,
|
|
252
|
+
delta: t16
|
|
253
|
+
};
|
|
254
|
+
$[54] = priceMode;
|
|
255
|
+
$[55] = swapMode;
|
|
256
|
+
$[56] = t15;
|
|
257
|
+
$[57] = t16;
|
|
258
|
+
$[58] = t17;
|
|
259
|
+
} else {
|
|
260
|
+
t17 = $[58];
|
|
261
|
+
}
|
|
262
|
+
return t17;
|
|
135
263
|
}
|
|
136
264
|
function useCurrentSwapPrice(t0) {
|
|
137
265
|
const $ = distExports.c(16);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\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 queryKey: MarketPriceQueryKey;\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 queryKey: DeltaPriceQueryKey;\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: destChainId || 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 queryKey: marketPriceQuery.queryKey,\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 queryKey: deltaPriceQuery.queryKey,\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 queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\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 queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\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","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","queryKey","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 type MarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n type DeltaPriceQueryKey,\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 { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\nimport { useCachedQueryError } from \"@/hooks/useCachedQueryError\";\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 queryKey: MarketPriceQueryKey;\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 queryKey: DeltaPriceQueryKey;\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: destChainId || 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 { result: deltaPriceQuery, queryKey: deltaPriceQueryKey } =\n 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 const deltaErrorCached = useCachedQueryError(deltaPriceQuery);\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 { result: marketPriceQuery, queryKey: marketPriceQueryKey } =\n 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 queryKey: marketPriceQueryKey,\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 queryKey: deltaPriceQueryKey,\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 queryKey: MarketPriceQueryKey;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n queryKey: DeltaPriceQueryKey;\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 queryKey: market.queryKey,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n queryKey: delta.queryKey,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","t0","$","_c","t1","undefined","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","t2","srcToken","isETH","address","isWETH","isEthToWethSameChain","t3","isWethToEthSameChain","t4","token","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","t5","t6","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","t7","wrappedNativeCurrency","srcTokenForDelta","t8","t9","enabled","t10","refetchInterval","retry","t11","timeout","query","result","deltaPriceQuery","queryKey","deltaPriceQueryKey","useDeltaPriceQuery","deltaErrorCached","useCachedQueryError","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","t12","t13","t14","marketPriceQuery","marketPriceQueryKey","useMarketPriceQuery","t15","error","isError","isFetching","isLoading","price","canBeUsed","t16","t17","userSelectedPriceMode","market","delta","useCurrentSwapPrice"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCachedQueryError.d.ts","sourceRoot":"","sources":["../../src/hooks/useCachedQueryError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG1E,wBAAgB,mBAAmB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,YAAY,EACxE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GACnC,MAAM,GAAG,IAAI,CAYf"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
function useCachedQueryError(query) {
|
|
4
|
+
const errorRef = useRef(query.error);
|
|
5
|
+
if (query.error) errorRef.current = query.error;
|
|
6
|
+
if (query.isSuccess) errorRef.current = null;
|
|
7
|
+
return errorRef.current;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { useCachedQueryError };
|
|
11
|
+
//# sourceMappingURL=useCachedQueryError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCachedQueryError.js","sources":["../../src/hooks/useCachedQueryError.ts"],"sourcesContent":["import type { DefaultError, UseQueryResult } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\n\nexport function useCachedQueryError<TData = unknown, TError = DefaultError>(\n query: UseQueryResult<TData, TError>\n): TError | null {\n // keep track if last result was error\n const errorRef = useRef(query.error);\n // by itself isError resets when fetching\n\n /* eslint-disable react-hooks/refs */\n if (query.error) errorRef.current = query.error;\n // keep errorRef until delta succeeds\n if (query.isSuccess) errorRef.current = null;\n /* eslint-disable react-hooks/refs */\n\n return errorRef.current;\n}\n"],"names":["useCachedQueryError","query","errorRef","useRef","error","current","isSuccess"],"mappings":";;AAGO,SAASA,oBACdC,KAAAA,EACe;AAEf,EAAA,MAAMC,QAAAA,GAAWC,MAAAA,CAAOF,KAAAA,CAAMG,KAAK,CAAA;AAInC,EAAA,IAAIH,KAAAA,CAAMG,KAAAA,EAAOF,QAAAA,CAASG,OAAAA,GAAUJ,KAAAA,CAAMG,KAAAA;AAE1C,EAAA,IAAIH,KAAAA,CAAMK,SAAAA,EAAWJ,QAAAA,CAASG,OAAAA,GAAU,IAAA;AAGxC,EAAA,OAAOH,QAAAA,CAASG,OAAAA;AAClB;;;;"}
|