@velora-dex/widget 0.2.3 → 0.2.4
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/components/widget/DexesList/DexItem.d.ts.map +1 -1
- package/dist/components/widget/DexesList/DexItem.js +57 -62
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +6 -6
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +0 -5
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +4 -2
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +46 -34
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.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/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js +25 -16
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +9 -12
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts +2 -2
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +34 -25
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.d.ts +2 -2
- package/dist/core/inputs/state/selectedTokenAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js +9 -2
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/types.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/core/swapDetails/maxToPay.d.ts +11 -0
- package/dist/core/swapDetails/maxToPay.d.ts.map +1 -0
- package/dist/core/swapDetails/maxToPay.js +41 -0
- package/dist/core/swapDetails/maxToPay.js.map +1 -0
- package/dist/core/swapDetails/useSwapDetailsListProps.d.ts.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js +9 -2
- 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.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 +2 -0
- package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -0
- package/dist/events/hooks/useOnPriceUpdates.js +104 -0
- package/dist/events/hooks/useOnPriceUpdates.js.map +1 -0
- package/dist/events/types/priceChange.d.ts +12 -4
- package/dist/events/types/priceChange.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +33 -4
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +98 -29
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts +3 -0
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/utils.js +9 -0
- package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -0
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +35 -2
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +102 -98
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +8 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +234 -99
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +13 -20
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens/overrides.d.ts +13 -2
- package/dist/tokens/overrides.d.ts.map +1 -1
- package/dist/tokens/overrides.js +71 -3
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/types.d.ts +4 -0
- package/dist/tokens/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,10 +3,11 @@ import { useDeltaSDK } from '../../../../useSDK.js';
|
|
|
3
3
|
import { useQuery, useQueryClient, QueryObserver } from '@tanstack/react-query';
|
|
4
4
|
import { useDebouncedValue } from '@tanstack/react-pacer/debouncer';
|
|
5
5
|
import { assert } from 'ts-essentials';
|
|
6
|
+
import { useMemo } from 'react';
|
|
6
7
|
|
|
7
8
|
const DeltaPriceQueryKeyPrefix = "swap/prices/delta";
|
|
8
9
|
function useDeltaPriceQuery(t0) {
|
|
9
|
-
const $ = distExports.c(
|
|
10
|
+
const $ = distExports.c(21);
|
|
10
11
|
const {
|
|
11
12
|
priceParams: _priceParams,
|
|
12
13
|
query,
|
|
@@ -27,47 +28,84 @@ function useDeltaPriceQuery(t0) {
|
|
|
27
28
|
const {
|
|
28
29
|
sdk
|
|
29
30
|
} = useDeltaSDK(t1);
|
|
30
|
-
const priceParams = {
|
|
31
|
-
..._priceParams,
|
|
32
|
-
destChainId
|
|
33
|
-
};
|
|
34
31
|
const queryEnabled = query?.enabled ?? true;
|
|
35
32
|
let t2;
|
|
36
|
-
if ($[2]
|
|
33
|
+
if ($[2] !== _priceParams || $[3] !== chainId || $[4] !== destChainId) {
|
|
37
34
|
t2 = {
|
|
38
|
-
|
|
35
|
+
priceParams: _priceParams,
|
|
36
|
+
chainId,
|
|
37
|
+
destChainId
|
|
39
38
|
};
|
|
40
|
-
$[2] =
|
|
39
|
+
$[2] = _priceParams;
|
|
40
|
+
$[3] = chainId;
|
|
41
|
+
$[4] = destChainId;
|
|
42
|
+
$[5] = t2;
|
|
41
43
|
} else {
|
|
42
|
-
t2 = $[
|
|
44
|
+
t2 = $[5];
|
|
43
45
|
}
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
userAddress: priceParams.userAddress,
|
|
52
|
-
partner: priceParams.partner,
|
|
53
|
-
destChainId: priceParams.destChainId
|
|
54
|
-
};
|
|
55
|
-
return useQuery({
|
|
56
|
-
queryKey: [DeltaPriceQueryKeyPrefix, chainId, sanitizedPriceParams],
|
|
57
|
-
queryFn: (t3) => {
|
|
46
|
+
const {
|
|
47
|
+
queryKey,
|
|
48
|
+
sanitizedPriceParams
|
|
49
|
+
} = useDeltaPriceQueryKey(t2);
|
|
50
|
+
let t3;
|
|
51
|
+
if ($[6] !== sanitizedPriceParams || $[7] !== sdk || $[8] !== timeout) {
|
|
52
|
+
t3 = (t42) => {
|
|
58
53
|
const {
|
|
59
54
|
signal
|
|
60
|
-
} =
|
|
55
|
+
} = t42;
|
|
61
56
|
assert(isPriceParamsValid(sanitizedPriceParams), "destToken is required");
|
|
62
57
|
const price = sdk.getDeltaPrice(sanitizedPriceParams, {
|
|
63
58
|
signal,
|
|
64
59
|
timeout
|
|
65
60
|
});
|
|
66
61
|
return price;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
};
|
|
63
|
+
$[6] = sanitizedPriceParams;
|
|
64
|
+
$[7] = sdk;
|
|
65
|
+
$[8] = timeout;
|
|
66
|
+
$[9] = t3;
|
|
67
|
+
} else {
|
|
68
|
+
t3 = $[9];
|
|
69
|
+
}
|
|
70
|
+
let t4;
|
|
71
|
+
if ($[10] !== queryEnabled || $[11] !== sanitizedPriceParams) {
|
|
72
|
+
t4 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
|
|
73
|
+
$[10] = queryEnabled;
|
|
74
|
+
$[11] = sanitizedPriceParams;
|
|
75
|
+
$[12] = t4;
|
|
76
|
+
} else {
|
|
77
|
+
t4 = $[12];
|
|
78
|
+
}
|
|
79
|
+
let t5;
|
|
80
|
+
if ($[13] !== query || $[14] !== queryKey || $[15] !== t3 || $[16] !== t4) {
|
|
81
|
+
t5 = {
|
|
82
|
+
queryKey,
|
|
83
|
+
queryFn: t3,
|
|
84
|
+
...query,
|
|
85
|
+
enabled: t4
|
|
86
|
+
};
|
|
87
|
+
$[13] = query;
|
|
88
|
+
$[14] = queryKey;
|
|
89
|
+
$[15] = t3;
|
|
90
|
+
$[16] = t4;
|
|
91
|
+
$[17] = t5;
|
|
92
|
+
} else {
|
|
93
|
+
t5 = $[17];
|
|
94
|
+
}
|
|
95
|
+
const result = useQuery(t5);
|
|
96
|
+
let t6;
|
|
97
|
+
if ($[18] !== queryKey || $[19] !== result) {
|
|
98
|
+
t6 = {
|
|
99
|
+
result,
|
|
100
|
+
queryKey
|
|
101
|
+
};
|
|
102
|
+
$[18] = queryKey;
|
|
103
|
+
$[19] = result;
|
|
104
|
+
$[20] = t6;
|
|
105
|
+
} else {
|
|
106
|
+
t6 = $[20];
|
|
107
|
+
}
|
|
108
|
+
return t6;
|
|
71
109
|
}
|
|
72
110
|
function isPriceParamsValid(priceParams) {
|
|
73
111
|
return !!priceParams.destToken && !!priceParams.destDecimals && Number(priceParams.amount) > 0;
|
|
@@ -156,6 +194,37 @@ function isLastDeltaPriceQueryInError(queryClient) {
|
|
|
156
194
|
function isDataDeltaOrBridgePrice(price) {
|
|
157
195
|
return typeof price === "object" && price !== null && "bridge" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
|
|
158
196
|
}
|
|
197
|
+
function useDeltaPriceQueryKey({
|
|
198
|
+
priceParams,
|
|
199
|
+
chainId,
|
|
200
|
+
destChainId
|
|
201
|
+
}) {
|
|
202
|
+
"use no memo";
|
|
203
|
+
const [debouncedAmount] = useDebouncedValue(priceParams.amount, {
|
|
204
|
+
wait: 500
|
|
205
|
+
});
|
|
206
|
+
return useMemo(() => {
|
|
207
|
+
const sanitizedPriceParams = {
|
|
208
|
+
amount: debouncedAmount,
|
|
209
|
+
srcToken: priceParams.srcToken,
|
|
210
|
+
destToken: priceParams.destToken,
|
|
211
|
+
srcDecimals: priceParams.srcDecimals,
|
|
212
|
+
destDecimals: priceParams.destDecimals,
|
|
213
|
+
userAddress: priceParams.userAddress,
|
|
214
|
+
beneficiary: priceParams.beneficiary,
|
|
215
|
+
partner: priceParams.partner,
|
|
216
|
+
side: priceParams.side,
|
|
217
|
+
includeAgents: priceParams.includeAgents,
|
|
218
|
+
excludeAgents: priceParams.excludeAgents,
|
|
219
|
+
destChainId
|
|
220
|
+
};
|
|
221
|
+
const queryKey = [DeltaPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
|
|
222
|
+
return {
|
|
223
|
+
queryKey,
|
|
224
|
+
sanitizedPriceParams
|
|
225
|
+
};
|
|
226
|
+
}, [priceParams.beneficiary, priceParams.destDecimals, priceParams.destToken, priceParams.excludeAgents, priceParams.includeAgents, priceParams.partner, priceParams.side, priceParams.srcDecimals, priceParams.srcToken, priceParams.userAddress, chainId, debouncedAmount, destChainId]);
|
|
227
|
+
}
|
|
159
228
|
|
|
160
|
-
export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery, useDeltaPriceQueryForPrice, useSubscribeToDeltaPrice };
|
|
229
|
+
export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery, useDeltaPriceQueryForPrice, useDeltaPriceQueryKey, useSubscribeToDeltaPrice };
|
|
161
230
|
//# sourceMappingURL=useDeltaPriceQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n OptimalRate,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const DeltaPriceQueryKeyPrefix = \"swap/prices/delta\";\n\ntype DeltaPriceQueryKey = readonly [\n base: typeof DeltaPriceQueryKeyPrefix,\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n const priceParams: DeltaPriceParams & { destChainId?: number } = {\n ..._priceParams,\n destChainId,\n };\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: DeltaPriceParams & { destChainId?: number } = {\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n amount: debouncedAmount,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n partner: priceParams.partner,\n destChainId: priceParams.destChainId,\n };\n\n return useQuery<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>({\n queryKey: [DeltaPriceQueryKeyPrefix, chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n !!priceParams.destDecimals &&\n Number(priceParams.amount) > 0\n );\n}\n\nexport function isDeltaPrice(\n price: OptimalRate | DeltaPrice\n): price is DeltaPrice {\n return \"bridge\" in price;\n}\n\nexport function isBridgePrice(\n price: DeltaPrice | BridgePrice\n): price is BridgePrice {\n return price.bridge.destinationChainId !== 0;\n}\n\ntype GetDeltaPriceQueryForPriceInput = {\n price: DeltaPrice | BridgePrice;\n chainId: number;\n};\n\ntype DeltaPriceQuery = Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n>;\n\ntype GetDeltaPriceQueryForPrice = (\n input: GetDeltaPriceQueryForPriceInput\n) =>\n | Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n >\n | undefined;\n\n// get query for a given deltaPrice\nexport function useDeltaPriceQueryForPrice(): GetDeltaPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [DeltaPriceQueryKey[0], DeltaPriceQueryKey[1]] = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice\n >({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as DeltaPriceQuery | undefined;\n };\n}\n\ntype SubscribeToDeltaPriceInput = {\n queryKey: DeltaPriceQueryKey;\n onData?: (data: DeltaPrice | BridgePrice) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToDeltaPriceResult = (\n input: SubscribeToDeltaPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToDeltaPrice(): SubscribeToDeltaPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\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\nfunction getLastDeltaPriceQuery(\n queryClient: QueryClient\n):\n | Query<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>\n | undefined {\n return queryClient\n .getQueryCache()\n .find<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>({\n queryKey: [DeltaPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n}\n\nexport function getLastDeltaPrice(\n queryClient: QueryClient\n): DeltaPrice | BridgePrice | undefined {\n const query = getLastDeltaPriceQuery(queryClient);\n\n return query?.state.data;\n}\n\nexport function isLastDeltaPriceQueryInError(\n queryClient: QueryClient\n): boolean {\n const query = getLastDeltaPriceQuery(queryClient);\n const error = query?.state.error;\n return !!error;\n}\n\nexport function isDataDeltaOrBridgePrice(\n price: unknown\n): price is DeltaPrice | BridgePrice {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bridge\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n"],"names":["DeltaPriceQueryKeyPrefix","useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","sanitizedPriceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","partner","useQuery","queryKey","queryFn","t3","signal","assert","isPriceParamsValid","price","getDeltaPrice","Number","isDeltaPrice","isBridgePrice","bridge","destinationChainId","useDeltaPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToDeltaPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastDeltaPriceQuery","type","getLastDeltaPrice","isLastDeltaPriceQueryInError","isDataDeltaOrBridgePrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n OptimalRate,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\nimport { useMemo } from \"react\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const DeltaPriceQueryKeyPrefix = \"swap/prices/delta\";\n\nexport type DeltaPriceQueryKey = readonly [\n base: typeof DeltaPriceQueryKeyPrefix,\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n};\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): {\n result: DeltaQueryResult<TData>;\n queryKey: DeltaPriceQueryKey;\n} {\n const { sdk } = useDeltaSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useDeltaPriceQueryKey({\n priceParams: _priceParams,\n chainId,\n destChainId,\n });\n\n const result = useQuery<\n DeltaPrice | BridgePrice,\n Error,\n TData,\n DeltaPriceQueryKey\n >({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n\n return { result, queryKey };\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n !!priceParams.destDecimals &&\n Number(priceParams.amount) > 0\n );\n}\n\nexport function isDeltaPrice(\n price: OptimalRate | DeltaPrice\n): price is DeltaPrice {\n return \"bridge\" in price;\n}\n\nexport function isBridgePrice(\n price: DeltaPrice | BridgePrice\n): price is BridgePrice {\n return price.bridge.destinationChainId !== 0;\n}\n\ntype GetDeltaPriceQueryForPriceInput = {\n price: DeltaPrice | BridgePrice;\n chainId: number;\n};\n\ntype DeltaPriceQuery = Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n>;\n\ntype GetDeltaPriceQueryForPrice = (\n input: GetDeltaPriceQueryForPriceInput\n) =>\n | Query<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\n >\n | undefined;\n\n// get query for a given deltaPrice\nexport function useDeltaPriceQueryForPrice(): GetDeltaPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [DeltaPriceQueryKey[0], DeltaPriceQueryKey[1]] = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice\n >({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as DeltaPriceQuery | undefined;\n };\n}\n\ntype SubscribeToDeltaPriceInput = {\n queryKey: DeltaPriceQueryKey;\n onData?: (data: DeltaPrice | BridgePrice) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToDeltaPriceResult = (\n input: SubscribeToDeltaPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToDeltaPrice(): SubscribeToDeltaPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n DeltaPrice | BridgePrice,\n Error,\n DeltaPrice | BridgePrice,\n DeltaPrice | BridgePrice,\n DeltaPriceQueryKey\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\nfunction getLastDeltaPriceQuery(\n queryClient: QueryClient\n):\n | Query<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>\n | undefined {\n return queryClient\n .getQueryCache()\n .find<DeltaPrice | BridgePrice, Error, DeltaPrice | BridgePrice>({\n queryKey: [DeltaPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n}\n\nexport function getLastDeltaPrice(\n queryClient: QueryClient\n): DeltaPrice | BridgePrice | undefined {\n const query = getLastDeltaPriceQuery(queryClient);\n\n return query?.state.data;\n}\n\nexport function isLastDeltaPriceQueryInError(\n queryClient: QueryClient\n): boolean {\n const query = getLastDeltaPriceQuery(queryClient);\n const error = query?.state.error;\n return !!error;\n}\n\nexport function isDataDeltaOrBridgePrice(\n price: unknown\n): price is DeltaPrice | BridgePrice {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bridge\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nexport function useDeltaPriceQueryKey({\n priceParams,\n chainId,\n destChainId,\n}: Pick<DeltaPriceQueryInput, \"priceParams\" | \"chainId\"> & {\n destChainId?: number;\n}) {\n \"use no memo\";\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n return useMemo(() => {\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & {\n destChainId?: number;\n } = {\n amount: debouncedAmount,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n beneficiary: priceParams.beneficiary,\n partner: priceParams.partner,\n side: priceParams.side,\n includeAgents: priceParams.includeAgents,\n excludeAgents: priceParams.excludeAgents,\n destChainId: destChainId,\n };\n\n const queryKey: DeltaPriceQueryKey = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n }, [\n priceParams.beneficiary,\n priceParams.destDecimals,\n priceParams.destToken,\n priceParams.excludeAgents,\n priceParams.includeAgents,\n priceParams.partner,\n priceParams.side,\n priceParams.srcDecimals,\n priceParams.srcToken,\n priceParams.userAddress,\n chainId,\n debouncedAmount,\n destChainId,\n ]);\n}\n"],"names":["DeltaPriceQueryKeyPrefix","useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useDeltaPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getDeltaPrice","t5","queryFn","result","useQuery","t6","destToken","destDecimals","Number","amount","isDeltaPrice","isBridgePrice","bridge","destinationChainId","useDeltaPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToDeltaPrice","onData","onError","observer","QueryObserver","subscribe","error","getLastDeltaPriceQuery","type","getLastDeltaPrice","isLastDeltaPriceQueryInError","isDataDeltaOrBridgePrice","debouncedAmount","useDebouncedValue","wait","useMemo","srcToken","srcDecimals","userAddress","beneficiary","partner","side","includeAgents","excludeAgents"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAM1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"sourcesContent":["import type { DeltaPrice } from \"@velora-dex/sdk\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\n\nexport function getSwapSideFromDeltaPrice(price: DeltaPrice): SwapSideUnion {\n if (price.srcAmountBeforeFee) {\n // srcAmountBeforeFee is only available for BUY side\n return \"BUY\";\n }\n return \"SELL\";\n}\n"],"names":["getSwapSideFromDeltaPrice","price","srcAmountBeforeFee"],"mappings":"AAGO,SAASA,0BAA0BC,KAAAA,EAAkC;AAC1E,EAAA,IAAIA,MAAMC,kBAAAA,EAAoB;AAE5B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;;"}
|
|
@@ -13,12 +13,15 @@ type MarketPriceQueryInput<TData = OptimalRate> = {
|
|
|
13
13
|
timeout?: number;
|
|
14
14
|
};
|
|
15
15
|
export declare const MarketPriceQueryKeyPrefix = "swap/prices/market";
|
|
16
|
-
type MarketPriceQueryKey = [
|
|
16
|
+
export type MarketPriceQueryKey = [
|
|
17
17
|
base: typeof MarketPriceQueryKeyPrefix,
|
|
18
18
|
chainId: number,
|
|
19
19
|
priceParams: RateParamsInput
|
|
20
20
|
];
|
|
21
|
-
export declare function useMarketPriceQuery<TData = OptimalRate>({ priceParams, query, chainId, timeout, }: MarketPriceQueryInput<TData>):
|
|
21
|
+
export declare function useMarketPriceQuery<TData = OptimalRate>({ priceParams, query, chainId, timeout, }: MarketPriceQueryInput<TData>): {
|
|
22
|
+
result: MarketQueryResult<TData>;
|
|
23
|
+
queryKey: MarketPriceQueryKey;
|
|
24
|
+
};
|
|
22
25
|
type GetMarketPriceQueryForPriceInput = {
|
|
23
26
|
price: OptimalRate;
|
|
24
27
|
chainId: number;
|
|
@@ -34,5 +37,35 @@ type SubscribeToMarketPriceResult = (input: SubscribeToMarketPriceInput) => () =
|
|
|
34
37
|
export declare function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult;
|
|
35
38
|
export declare function getLastMarketPrice(queryClient: QueryClient): OptimalRate | undefined;
|
|
36
39
|
export declare function isDataMarketPrice(price: unknown): price is OptimalRate;
|
|
40
|
+
export declare function useMarketPriceQueryKey({ priceParams, chainId, }: Pick<MarketPriceQueryInput, "priceParams" | "chainId">): {
|
|
41
|
+
queryKey: MarketPriceQueryKey;
|
|
42
|
+
sanitizedPriceParams: {
|
|
43
|
+
amount: string;
|
|
44
|
+
userAddress: string | undefined;
|
|
45
|
+
side: "BUY" | "SELL" | undefined;
|
|
46
|
+
srcDecimals: number | undefined;
|
|
47
|
+
destDecimals: number | undefined;
|
|
48
|
+
srcToken: string;
|
|
49
|
+
destToken: string | undefined;
|
|
50
|
+
options: {
|
|
51
|
+
excludeDEXS: string[] | undefined;
|
|
52
|
+
includeDEXS: string[] | undefined;
|
|
53
|
+
excludePools: string[] | undefined;
|
|
54
|
+
excludeContractMethods: import('@velora-dex/sdk').ContractMethodByName[] | undefined;
|
|
55
|
+
includeContractMethods: import('@velora-dex/sdk').ContractMethodByName[] | undefined;
|
|
56
|
+
partner: string | undefined;
|
|
57
|
+
maxImpact: number | undefined;
|
|
58
|
+
maxUSDImpact: number | undefined;
|
|
59
|
+
otherExchangePrices: boolean | undefined;
|
|
60
|
+
ignoreBadUsdPrice: boolean | undefined;
|
|
61
|
+
excludeRFQ: boolean | undefined;
|
|
62
|
+
excludeContractMethodsWithoutFeeModel: boolean | undefined;
|
|
63
|
+
srcTokenTransferFee: string | undefined;
|
|
64
|
+
destTokenTransferFee: string | undefined;
|
|
65
|
+
srcTokenDexTransferFee: string | undefined;
|
|
66
|
+
destTokenDexTransferFee: string | undefined;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
37
70
|
export {};
|
|
38
71
|
//# sourceMappingURL=useMarketPriceQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarketPriceQuery.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,WAAW,EAIX,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,IAAI,eAAe,EAChC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMarketPriceQuery.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,WAAW,EAIX,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,YAAY,IAAI,eAAe,EAChC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAU,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzE,KAAK,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAE9C,KAAK,kBAAkB,GAAG,QAAQ,CAChC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CACxD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAE5E,KAAK,iBAAiB,CAAC,KAAK,GAAG,WAAW,IAAI,IAAI,CAChD,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,EAC/D,UAAU,GAAG,SAAS,CACvB,CAAC;AACF,KAAK,iBAAiB,CAAC,KAAK,GAAG,WAAW,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE3E,KAAK,qBAAqB,CAAC,KAAK,GAAG,WAAW,IAAI;IAChD,WAAW,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,yBAAyB;IACtC,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,GAAG,WAAW,EAAE,EACvD,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG;IAChC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,CAsBA;AAQD,KAAK,gCAAgC,GAAG;IACtC,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AASF,KAAK,2BAA2B,GAAG,CACjC,KAAK,EAAE,gCAAgC,KACpC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,mBAAmB,CAAC,GAAG,SAAS,CAAC;AAG7E,wBAAgB,2BAA2B,IAAI,2BAA2B,CAmBzE;AAED,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,KAAK,4BAA4B,GAAG,CAClC,KAAK,EAAE,2BAA2B,KAC/B,MAAM,IAAI,CAAC;AAGhB,wBAAgB,yBAAyB,IAAI,4BAA4B,CA2BxE;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,GACvB,WAAW,GAAG,SAAS,CASzB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAUtE;AAED,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,OAAO,GACR,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwExD"}
|
|
@@ -1,12 +1,13 @@
|
|
|
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
|
+
import { useMemo } from 'react';
|
|
5
6
|
import { assert } from 'ts-essentials';
|
|
6
7
|
|
|
7
8
|
const MarketPriceQueryKeyPrefix = "swap/prices/market";
|
|
8
9
|
function useMarketPriceQuery(t0) {
|
|
9
|
-
const $ = distExports.c(
|
|
10
|
+
const $ = distExports.c(20);
|
|
10
11
|
const {
|
|
11
12
|
priceParams,
|
|
12
13
|
query,
|
|
@@ -28,54 +29,27 @@ function useMarketPriceQuery(t0) {
|
|
|
28
29
|
} = useMarketSwapSDK(t1);
|
|
29
30
|
const queryEnabled = query?.enabled ?? true;
|
|
30
31
|
let t2;
|
|
31
|
-
if ($[2]
|
|
32
|
+
if ($[2] !== chainId || $[3] !== priceParams) {
|
|
32
33
|
t2 = {
|
|
33
|
-
|
|
34
|
+
priceParams,
|
|
35
|
+
chainId
|
|
34
36
|
};
|
|
35
|
-
$[2] =
|
|
37
|
+
$[2] = chainId;
|
|
38
|
+
$[3] = priceParams;
|
|
39
|
+
$[4] = t2;
|
|
36
40
|
} else {
|
|
37
|
-
t2 = $[
|
|
41
|
+
t2 = $[4];
|
|
38
42
|
}
|
|
39
|
-
const
|
|
43
|
+
const {
|
|
44
|
+
queryKey,
|
|
45
|
+
sanitizedPriceParams
|
|
46
|
+
} = useMarketPriceQueryKey(t2);
|
|
40
47
|
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) => {
|
|
48
|
+
if ($[5] !== sanitizedPriceParams || $[6] !== sdk || $[7] !== timeout) {
|
|
49
|
+
t3 = (t42) => {
|
|
76
50
|
const {
|
|
77
51
|
signal
|
|
78
|
-
} =
|
|
52
|
+
} = t42;
|
|
79
53
|
assert(isPriceParamsValid(sanitizedPriceParams), "destToken is required");
|
|
80
54
|
const price = sdk.getRate(sanitizedPriceParams, {
|
|
81
55
|
signal,
|
|
@@ -83,65 +57,52 @@ function useMarketPriceQuery(t0) {
|
|
|
83
57
|
});
|
|
84
58
|
return price;
|
|
85
59
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
$[
|
|
89
|
-
$[
|
|
90
|
-
|
|
91
|
-
$[
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
|
|
100
|
-
$[
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
115
|
-
$[30] = timeout;
|
|
116
|
-
$[31] = t3;
|
|
117
|
-
$[32] = t4;
|
|
118
|
-
$[33] = t5;
|
|
119
|
-
$[34] = t6;
|
|
120
|
-
$[35] = t7;
|
|
60
|
+
$[5] = sanitizedPriceParams;
|
|
61
|
+
$[6] = sdk;
|
|
62
|
+
$[7] = timeout;
|
|
63
|
+
$[8] = t3;
|
|
64
|
+
} else {
|
|
65
|
+
t3 = $[8];
|
|
66
|
+
}
|
|
67
|
+
let t4;
|
|
68
|
+
if ($[9] !== queryEnabled || $[10] !== sanitizedPriceParams) {
|
|
69
|
+
t4 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
|
|
70
|
+
$[9] = queryEnabled;
|
|
71
|
+
$[10] = sanitizedPriceParams;
|
|
72
|
+
$[11] = t4;
|
|
73
|
+
} else {
|
|
74
|
+
t4 = $[11];
|
|
75
|
+
}
|
|
76
|
+
let t5;
|
|
77
|
+
if ($[12] !== query || $[13] !== queryKey || $[14] !== t3 || $[15] !== t4) {
|
|
78
|
+
t5 = {
|
|
79
|
+
queryKey,
|
|
80
|
+
queryFn: t3,
|
|
81
|
+
...query,
|
|
82
|
+
enabled: t4
|
|
83
|
+
};
|
|
84
|
+
$[12] = query;
|
|
85
|
+
$[13] = queryKey;
|
|
86
|
+
$[14] = t3;
|
|
87
|
+
$[15] = t4;
|
|
88
|
+
$[16] = t5;
|
|
121
89
|
} else {
|
|
122
|
-
|
|
123
|
-
t4 = $[32];
|
|
124
|
-
t5 = $[33];
|
|
125
|
-
t6 = $[34];
|
|
126
|
-
t7 = $[35];
|
|
90
|
+
t5 = $[16];
|
|
127
91
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
enabled: t6
|
|
92
|
+
const result = useQuery(t5);
|
|
93
|
+
let t6;
|
|
94
|
+
if ($[17] !== queryKey || $[18] !== result) {
|
|
95
|
+
t6 = {
|
|
96
|
+
result,
|
|
97
|
+
queryKey
|
|
135
98
|
};
|
|
136
|
-
$[
|
|
137
|
-
$[
|
|
138
|
-
$[
|
|
139
|
-
$[39] = t6;
|
|
140
|
-
$[40] = t8;
|
|
99
|
+
$[17] = queryKey;
|
|
100
|
+
$[18] = result;
|
|
101
|
+
$[19] = t6;
|
|
141
102
|
} else {
|
|
142
|
-
|
|
103
|
+
t6 = $[19];
|
|
143
104
|
}
|
|
144
|
-
return
|
|
105
|
+
return t6;
|
|
145
106
|
}
|
|
146
107
|
function isPriceParamsValid(priceParams) {
|
|
147
108
|
return !!priceParams.destToken && Number(priceParams.amount) > 0;
|
|
@@ -217,6 +178,49 @@ function getLastMarketPrice(queryClient) {
|
|
|
217
178
|
function isDataMarketPrice(price) {
|
|
218
179
|
return typeof price === "object" && price !== null && "bestRoute" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
|
|
219
180
|
}
|
|
181
|
+
function useMarketPriceQueryKey({
|
|
182
|
+
priceParams,
|
|
183
|
+
chainId
|
|
184
|
+
}) {
|
|
185
|
+
"use no memo";
|
|
186
|
+
const [debouncedAmount] = useDebouncedValue(priceParams.amount, {
|
|
187
|
+
wait: 500
|
|
188
|
+
});
|
|
189
|
+
return useMemo(() => {
|
|
190
|
+
const sanitizedPriceParams = {
|
|
191
|
+
amount: debouncedAmount,
|
|
192
|
+
userAddress: priceParams.userAddress,
|
|
193
|
+
side: priceParams.side,
|
|
194
|
+
srcDecimals: priceParams.srcDecimals,
|
|
195
|
+
destDecimals: priceParams.destDecimals,
|
|
196
|
+
srcToken: priceParams.srcToken,
|
|
197
|
+
destToken: priceParams.destToken,
|
|
198
|
+
options: {
|
|
199
|
+
excludeDEXS: priceParams.excludeDEXS,
|
|
200
|
+
includeDEXS: priceParams.includeDEXS,
|
|
201
|
+
excludePools: priceParams.excludePools,
|
|
202
|
+
excludeContractMethods: priceParams.excludeContractMethods,
|
|
203
|
+
includeContractMethods: priceParams.includeContractMethods,
|
|
204
|
+
partner: priceParams.partner,
|
|
205
|
+
maxImpact: priceParams.maxImpact,
|
|
206
|
+
maxUSDImpact: priceParams.maxUSDImpact,
|
|
207
|
+
otherExchangePrices: priceParams.otherExchangePrices,
|
|
208
|
+
ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
|
|
209
|
+
excludeRFQ: priceParams.excludeRFQ,
|
|
210
|
+
excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
|
|
211
|
+
srcTokenTransferFee: priceParams.srcTokenTransferFee,
|
|
212
|
+
destTokenTransferFee: priceParams.destTokenTransferFee,
|
|
213
|
+
srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
|
|
214
|
+
destTokenDexTransferFee: priceParams.destTokenDexTransferFee
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const queryKey = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
|
|
218
|
+
return {
|
|
219
|
+
queryKey,
|
|
220
|
+
sanitizedPriceParams
|
|
221
|
+
};
|
|
222
|
+
}, [chainId, debouncedAmount, priceParams.destDecimals, priceParams.destToken, priceParams.destTokenDexTransferFee, priceParams.destTokenTransferFee, priceParams.excludeContractMethods, priceParams.excludeContractMethodsWithoutFeeModel, priceParams.excludeDEXS, priceParams.excludePools, priceParams.excludeRFQ, priceParams.ignoreBadUsdPrice, priceParams.includeContractMethods, priceParams.includeDEXS, priceParams.maxImpact, priceParams.maxUSDImpact, priceParams.otherExchangePrices, priceParams.partner, priceParams.side, priceParams.srcDecimals, priceParams.srcToken, priceParams.srcTokenDexTransferFee, priceParams.srcTokenTransferFee, priceParams.userAddress]);
|
|
223
|
+
}
|
|
220
224
|
|
|
221
|
-
export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useSubscribeToMarketPrice };
|
|
225
|
+
export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useMarketPriceQueryKey, useSubscribeToMarketPrice };
|
|
222
226
|
//# sourceMappingURL=useMarketPriceQuery.js.map
|