@velora-dex/widget 0.2.3-dev.1 → 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.
Files changed (35) hide show
  1. package/dist/configurator/Configurator.d.ts.map +1 -1
  2. package/dist/core/inputs/state/common.d.ts +2 -2
  3. package/dist/core/limit/useLimitRate.js +3 -1
  4. package/dist/core/limit/useLimitRate.js.map +1 -1
  5. package/dist/core/state/widgetEventsAtom.d.ts.map +1 -1
  6. package/dist/core/state/widgetEventsAtom.js +4 -4
  7. package/dist/core/state/widgetEventsAtom.js.map +1 -1
  8. package/dist/events/effects/price.js +3 -3
  9. package/dist/events/effects/price.js.map +1 -1
  10. package/dist/events/effects/swapMode.js +2 -2
  11. package/dist/events/effects/swapMode.js.map +1 -1
  12. package/dist/events/hooks/useOnPriceUpdates.d.ts.map +1 -1
  13. package/dist/events/hooks/useOnPriceUpdates.js +64 -32
  14. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  15. package/dist/events/types/priceChange.d.ts +6 -6
  16. package/dist/events/types/priceChange.d.ts.map +1 -1
  17. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +13 -4
  18. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  19. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +41 -60
  20. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  21. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +29 -9
  22. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
  23. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +53 -81
  24. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
  25. package/dist/hooks/swap/prices/useSwapPrices.d.ts +6 -8
  26. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  27. package/dist/hooks/swap/prices/useSwapPrices.js +233 -175
  28. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  29. package/dist/hooks/useCachedQueryError.d.ts +3 -0
  30. package/dist/hooks/useCachedQueryError.d.ts.map +1 -0
  31. package/dist/hooks/useCachedQueryError.js +11 -0
  32. package/dist/hooks/useCachedQueryError.js.map +1 -0
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.d.ts.map +1 -1
  35. 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(18);
10
+ const $ = distExports.c(21);
10
11
  const {
11
12
  priceParams: _priceParams,
12
13
  query,
@@ -91,7 +92,20 @@ function useDeltaPriceQuery(t0) {
91
92
  } else {
92
93
  t5 = $[17];
93
94
  }
94
- return useQuery(t5);
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;
95
109
  }
96
110
  function isPriceParamsValid(priceParams) {
97
111
  return !!priceParams.destToken && !!priceParams.destDecimals && Number(priceParams.amount) > 0;
@@ -180,69 +194,36 @@ function isLastDeltaPriceQueryInError(queryClient) {
180
194
  function isDataDeltaOrBridgePrice(price) {
181
195
  return typeof price === "object" && price !== null && "bridge" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
182
196
  }
183
- function sanitizePriceParams({
184
- debouncedAmount,
185
- priceParams
197
+ function useDeltaPriceQueryKey({
198
+ priceParams,
199
+ chainId,
200
+ destChainId
186
201
  }) {
187
- return {
188
- srcToken: priceParams.srcToken,
189
- destToken: priceParams.destToken,
190
- amount: debouncedAmount,
191
- srcDecimals: priceParams.srcDecimals,
192
- destDecimals: priceParams.destDecimals,
193
- userAddress: priceParams.userAddress,
194
- partner: priceParams.partner,
195
- destChainId: priceParams.destChainId
196
- };
197
- }
198
- function useDeltaPriceQueryKey(t0) {
199
- const $ = distExports.c(7);
200
- const {
201
- priceParams: _priceParams,
202
- chainId,
203
- destChainId
204
- } = t0;
205
- const priceParams = {
206
- ..._priceParams,
207
- destChainId
208
- };
209
- let t1;
210
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
211
- t1 = {
212
- wait: 500
213
- };
214
- $[0] = t1;
215
- } else {
216
- t1 = $[0];
217
- }
218
- const [debouncedAmount] = useDebouncedValue(priceParams.amount, t1);
219
- const sanitizedPriceParams = sanitizePriceParams({
220
- debouncedAmount,
221
- priceParams
202
+ "use no memo";
203
+ const [debouncedAmount] = useDebouncedValue(priceParams.amount, {
204
+ wait: 500
222
205
  });
223
- let t2;
224
- if ($[1] !== chainId || $[2] !== sanitizedPriceParams) {
225
- t2 = [DeltaPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
226
- $[1] = chainId;
227
- $[2] = sanitizedPriceParams;
228
- $[3] = t2;
229
- } else {
230
- t2 = $[3];
231
- }
232
- const queryKey = t2;
233
- let t3;
234
- if ($[4] !== queryKey || $[5] !== sanitizedPriceParams) {
235
- t3 = {
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 {
236
223
  queryKey,
237
224
  sanitizedPriceParams
238
225
  };
239
- $[4] = queryKey;
240
- $[5] = sanitizedPriceParams;
241
- $[6] = t3;
242
- } else {
243
- t3 = $[6];
244
- }
245
- return t3;
226
+ }, [priceParams.beneficiary, priceParams.destDecimals, priceParams.destToken, priceParams.excludeAgents, priceParams.includeAgents, priceParams.partner, priceParams.side, priceParams.srcDecimals, priceParams.srcToken, priceParams.userAddress, chainId, debouncedAmount, destChainId]);
246
227
  }
247
228
 
248
229
  export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery, useDeltaPriceQueryForPrice, useDeltaPriceQueryKey, useSubscribeToDeltaPrice };
@@ -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\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}): 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 queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useDeltaPriceQueryKey({\n priceParams: _priceParams,\n chainId,\n destChainId,\n });\n\n return useQuery<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>({\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\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\nfunction sanitizePriceParams({\n debouncedAmount,\n priceParams,\n}: {\n debouncedAmount: string;\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n };\n}): DeltaPriceParams & {\n destChainId?: number;\n} {\n return {\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\nexport function useDeltaPriceQueryKey({\n priceParams: _priceParams,\n chainId,\n destChainId,\n}: Pick<DeltaPriceQueryInput, \"priceParams\" | \"chainId\"> & {\n destChainId?: number;\n}) {\n const priceParams: DeltaPriceParams & { destChainId?: number } = {\n ..._priceParams,\n destChainId,\n };\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 = sanitizePriceParams({\n debouncedAmount,\n priceParams,\n });\n\n const queryKey: DeltaPriceQueryKey = [\n DeltaPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\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","useQuery","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","result","error","getLastDeltaPriceQuery","type","getLastDeltaPrice","isLastDeltaPriceQueryInError","isDataDeltaOrBridgePrice","sanitizePriceParams","debouncedAmount","srcToken","srcDecimals","userAddress","partner","Symbol","for","wait","useDebouncedValue"],"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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"}
@@ -18,7 +18,10 @@ export type MarketPriceQueryKey = [
18
18
  chainId: number,
19
19
  priceParams: RateParamsInput
20
20
  ];
21
- export declare function useMarketPriceQuery<TData = OptimalRate>({ priceParams, query, chainId, timeout, }: MarketPriceQueryInput<TData>): MarketQueryResult<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;
@@ -37,14 +40,31 @@ export declare function isDataMarketPrice(price: unknown): price is OptimalRate;
37
40
  export declare function useMarketPriceQueryKey({ priceParams, chainId, }: Pick<MarketPriceQueryInput, "priceParams" | "chainId">): {
38
41
  queryKey: MarketPriceQueryKey;
39
42
  sanitizedPriceParams: {
40
- amount: import('@velora-dex/sdk').PriceString;
41
- userAddress?: import('@velora-dex/sdk').Address | undefined;
42
- side?: "SELL" | "BUY" | undefined;
43
- options?: import('@velora-dex/sdk/dist/methods/swap/rates').RateOptions | undefined;
44
- srcDecimals?: number | undefined;
45
- destDecimals?: number | undefined;
46
- srcToken: import('@velora-dex/sdk').AddressOrSymbol;
47
- destToken?: string | undefined;
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
+ };
48
68
  };
49
69
  };
50
70
  export {};
@@ -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;AACzB,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,iBAAiB,CAAC,KAAK,CAAC,CAoBzD;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;AAuCD,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,OAAO,GACR,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,SAAS,CAAC;;;;;;;;;;;;EAmBxD"}
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"}
@@ -2,11 +2,12 @@ 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
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(17);
10
+ const $ = distExports.c(20);
10
11
  const {
11
12
  priceParams,
12
13
  query,
@@ -88,7 +89,20 @@ function useMarketPriceQuery(t0) {
88
89
  } else {
89
90
  t5 = $[16];
90
91
  }
91
- return useQuery(t5);
92
+ const result = useQuery(t5);
93
+ let t6;
94
+ if ($[17] !== queryKey || $[18] !== result) {
95
+ t6 = {
96
+ result,
97
+ queryKey
98
+ };
99
+ $[17] = queryKey;
100
+ $[18] = result;
101
+ $[19] = t6;
102
+ } else {
103
+ t6 = $[19];
104
+ }
105
+ return t6;
92
106
  }
93
107
  function isPriceParamsValid(priceParams) {
94
108
  return !!priceParams.destToken && Number(priceParams.amount) > 0;
@@ -164,90 +178,48 @@ function getLastMarketPrice(queryClient) {
164
178
  function isDataMarketPrice(price) {
165
179
  return typeof price === "object" && price !== null && "bestRoute" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
166
180
  }
167
- function sanitizePriceParams({
168
- debouncedAmount,
169
- priceParams
181
+ function useMarketPriceQueryKey({
182
+ priceParams,
183
+ chainId
170
184
  }) {
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
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
+ }
209
216
  };
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 = {
217
+ const queryKey = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
218
+ return {
241
219
  queryKey,
242
220
  sanitizedPriceParams
243
221
  };
244
- $[7] = queryKey;
245
- $[8] = sanitizedPriceParams;
246
- $[9] = t4;
247
- } else {
248
- t4 = $[9];
249
- }
250
- return t4;
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]);
251
223
  }
252
224
 
253
225
  export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useMarketPriceQueryKey, useSubscribeToMarketPrice };
@@ -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\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
+ {"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 { useMemo } from \"react\";\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>): {\n result: MarketQueryResult<TData>;\n queryKey: MarketPriceQueryKey;\n} {\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 const result = 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 return { result, queryKey };\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\nexport function useMarketPriceQueryKey({\n priceParams,\n chainId,\n}: Pick<MarketPriceQueryInput, \"priceParams\" | \"chainId\">) {\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 = {\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 const queryKey: MarketPriceQueryKey = [\n MarketPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n }, [\n chainId,\n debouncedAmount,\n priceParams.destDecimals,\n priceParams.destToken,\n priceParams.destTokenDexTransferFee,\n priceParams.destTokenTransferFee,\n priceParams.excludeContractMethods,\n priceParams.excludeContractMethodsWithoutFeeModel,\n priceParams.excludeDEXS,\n priceParams.excludePools,\n priceParams.excludeRFQ,\n priceParams.ignoreBadUsdPrice,\n priceParams.includeContractMethods,\n priceParams.includeDEXS,\n priceParams.maxImpact,\n priceParams.maxUSDImpact,\n priceParams.otherExchangePrices,\n priceParams.partner,\n priceParams.side,\n priceParams.srcDecimals,\n priceParams.srcToken,\n priceParams.srcTokenDexTransferFee,\n priceParams.srcTokenTransferFee,\n priceParams.userAddress,\n ]);\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","result","useQuery","t6","destToken","Number","amount","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","error","getLastMarketPrice","type","isDataMarketPrice","debouncedAmount","useDebouncedValue","wait","useMemo","userAddress","side","srcDecimals","destDecimals","srcToken","options","excludeDEXS","includeDEXS","excludePools","excludeContractMethods","includeContractMethods","partner","maxImpact","maxUSDImpact","otherExchangePrices","ignoreBadUsdPrice","excludeRFQ","excludeContractMethodsWithoutFeeModel","srcTokenTransferFee","destTokenTransferFee","srcTokenDexTransferFee","destTokenDexTransferFee"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { useMarketPriceQueryKey } from './market/queries/useMarketPriceQuery';
2
- import { useDeltaPriceQueryKey } from './delta/queries/useDeltaPriceQuery';
1
+ import { MarketPriceQueryKey } from './market/queries/useMarketPriceQuery';
2
+ import { DeltaPriceQueryKey } from './delta/queries/useDeltaPriceQuery';
3
3
  import { SwapMode } from '../../../components/widget/SwapModeSwitcher/state/types';
4
4
  import { BridgePrice, DeltaPrice, OptimalRate } from '@velora-dex/sdk';
5
5
  import { UseSwapPricesInput } from './types';
@@ -14,6 +14,7 @@ type UseSwapPricesReturn = {
14
14
  isFetching: boolean;
15
15
  isError: boolean;
16
16
  error: Error | null;
17
+ queryKey: MarketPriceQueryKey;
17
18
  };
18
19
  delta: {
19
20
  price?: DeltaPrice | BridgePrice;
@@ -23,6 +24,7 @@ type UseSwapPricesReturn = {
23
24
  isFetching: boolean;
24
25
  isError: boolean;
25
26
  error: Error | null;
27
+ queryKey: DeltaPriceQueryKey;
26
28
  };
27
29
  };
28
30
  export declare function useSwapPrices(params?: UseSwapPricesInput): UseSwapPricesReturn;
@@ -33,16 +35,12 @@ type UseCurrentSwapPriceReturn = {
33
35
  } & ({
34
36
  priceMode: "market";
35
37
  price?: OptimalRate;
38
+ queryKey: MarketPriceQueryKey;
36
39
  } | {
37
40
  priceMode: "delta";
38
41
  price?: DeltaPrice | BridgePrice;
42
+ queryKey: DeltaPriceQueryKey;
39
43
  });
40
44
  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;
47
45
  export {};
48
46
  //# sourceMappingURL=useSwapPrices.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAEL,KAAK,kBAAkB,EACxB,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;QACpB,QAAQ,EAAE,mBAAmB,CAAC;KAC/B,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;QACpB,QAAQ,EAAE,kBAAkB,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CAqJrB;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;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACjC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,CACJ,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,kBAAsC,GAC7C,yBAAyB,CAsB3B"}