@velora-dex/widget 0.2.2 → 0.2.3-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Configurator.d.ts","sourceRoot":"","sources":["../../src/configurator/Configurator.tsx"],"names":[],"mappings":"AAsPA,eAAO,MAAM,YAAY,+CA+RxB,CAAC"}
1
+ {"version":3,"file":"Configurator.d.ts","sourceRoot":"","sources":["../../src/configurator/Configurator.tsx"],"names":[],"mappings":"AAsPA,eAAO,MAAM,YAAY,+CAkSxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Updaters.d.ts","sourceRoot":"","sources":["../../src/core/Updaters.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ,YAyCpB,CAAC"}
1
+ {"version":3,"file":"Updaters.d.ts","sourceRoot":"","sources":["../../src/core/Updaters.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,QAAQ,YA4CpB,CAAC"}
@@ -13,6 +13,7 @@ import { useActivateEffects as useActivateEffects$2 } from '../transactions/stat
13
13
  import { useActivateEffects } from '../tokens/lists/state/effects.js';
14
14
  import { useActivateFormInputEffects } from './inputs/state/setTokenByAddressAtom.js';
15
15
  import { useActivateConfigEffect } from './state/configEffectAtom.js';
16
+ import { useOnPriceUpdates } from '../events/hooks/useOnPriceUpdates.js';
16
17
 
17
18
  const Updaters = () => {
18
19
  useFetchTokenLists();
@@ -26,6 +27,7 @@ const Updaters = () => {
26
27
  useSafeInfo();
27
28
  useCanBatchTxs();
28
29
  useOnWalletConnected();
30
+ useOnPriceUpdates();
29
31
  useActivateEffects$1();
30
32
  useActivateEffects$2();
31
33
  useActivateFormInputEffects();
@@ -1 +1 @@
1
- {"version":3,"file":"Updaters.js","sources":["../../src/core/Updaters.tsx"],"sourcesContent":["import { useTokenFromPermit1Nonce } from \"@/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce\";\nimport { useTokenFromPermit2TransferFromNonce } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce\";\nimport { useTokenFromPermitInfo } from \"@/hooks/permit/hooks/permit1/useTokenFromPermitInfo\";\nimport { useGetContracts } from \"@/hooks/sdk/useGetContracts\";\nimport { useGetBridgeInfo } from \"@/hooks/useBridgeInfo\";\nimport { useFetchTokenLists } from \"@/tokens/queries\";\nimport { usePrefetchTokenBalances } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport { useSafeInfo } from \"@/lib/web3/wagmi/isInsideSafeIframe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useOnWalletConnected } from \"@/events/hooks/useOnWalletConnect\";\nimport { useActivateEffects as useActivateEventEffects } from \"@/events/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTransactionEffects } from \"@/transactions/state/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTokenListEffects } from \"@/tokens/lists/state/effects\";\nimport { useActivateFormInputEffects } from \"./inputs/state/setTokenByAddressAtom\";\nimport { useActivateConfigEffect } from \"./state/configEffectAtom\";\n\nexport const Updaters = () => {\n // fetch tokens from currently enabled lists\n useFetchTokenLists();\n // activate effects for token lists\n useActivateTokenListEffects();\n\n // all balances that would be fetched in TokenSelector for current chain\n usePrefetchTokenBalances();\n useGetBridgeInfo(); // @TODO: prefetch instead\n useGetContracts(); // @TODO: prefetch instead\n\n // for each selected tokenFrom detect its supported Permit1\n useTokenFromPermitInfo();\n // for each selected tokenFrom keep track of Token.nonce if available on Token\n useTokenFromPermit1Nonce();\n // global Permit2 TransferFrom nonce, not token-specific but for chain=Token.network\n useTokenFromPermit2TransferFromNonce();\n\n // check ahead of opening ConnectWallets drawer to prevent Safe button appearing\n // if we are not in a non-Safe iframe\n useSafeInfo();\n\n // check if wallet can batch txs\n useCanBatchTxs();\n\n // events when wallet is connected\n useOnWalletConnected();\n\n // activate effects for state atoms\n useActivateEventEffects();\n\n // activate effects for transaction atoms\n useActivateTransactionEffects();\n\n // activate effects for form input atoms\n useActivateFormInputEffects();\n\n // activate widget config effects\n useActivateConfigEffect();\n\n return null;\n};\n"],"names":["Updaters","useFetchTokenLists","useActivateTokenListEffects","usePrefetchTokenBalances","useGetBridgeInfo","useGetContracts","useTokenFromPermitInfo","useTokenFromPermit1Nonce","useTokenFromPermit2TransferFromNonce","useSafeInfo","useCanBatchTxs","useOnWalletConnected","useActivateEventEffects","useActivateTransactionEffects","useActivateFormInputEffects","useActivateConfigEffect"],"mappings":";;;;;;;;;;;;;;;;AAgBO,MAAMA,WAAWA,MAAA;AAEtBC,EAAAA,kBAAAA,EAAmB;AAEnBC,EAAAA,kBAAAA,EAA4B;AAG5BC,EAAAA,wBAAAA,EAAyB;AACzBC,EAAAA,gBAAAA,EAAiB;AACjBC,EAAAA,eAAAA,EAAgB;AAGhBC,EAAAA,sBAAAA,EAAuB;AAEvBC,EAAAA,wBAAAA,EAAyB;AAEzBC,EAAAA,oCAAAA,EAAqC;AAIrCC,EAAAA,WAAAA,EAAY;AAGZC,EAAAA,cAAAA,EAAe;AAGfC,EAAAA,oBAAAA,EAAqB;AAGrBC,EAAAA,oBAAAA,EAAwB;AAGxBC,EAAAA,oBAAAA,EAA8B;AAG9BC,EAAAA,2BAAAA,EAA4B;AAG5BC,EAAAA,uBAAAA,EAAwB;AAAC,EAAA,OAElB,IAAA;AAAI;;;;"}
1
+ {"version":3,"file":"Updaters.js","sources":["../../src/core/Updaters.tsx"],"sourcesContent":["import { useTokenFromPermit1Nonce } from \"@/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce\";\nimport { useTokenFromPermit2TransferFromNonce } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce\";\nimport { useTokenFromPermitInfo } from \"@/hooks/permit/hooks/permit1/useTokenFromPermitInfo\";\nimport { useGetContracts } from \"@/hooks/sdk/useGetContracts\";\nimport { useGetBridgeInfo } from \"@/hooks/useBridgeInfo\";\nimport { useFetchTokenLists } from \"@/tokens/queries\";\nimport { usePrefetchTokenBalances } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport { useSafeInfo } from \"@/lib/web3/wagmi/isInsideSafeIframe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useOnWalletConnected } from \"@/events/hooks/useOnWalletConnect\";\nimport { useActivateEffects as useActivateEventEffects } from \"@/events/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTransactionEffects } from \"@/transactions/state/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTokenListEffects } from \"@/tokens/lists/state/effects\";\nimport { useActivateFormInputEffects } from \"./inputs/state/setTokenByAddressAtom\";\nimport { useActivateConfigEffect } from \"./state/configEffectAtom\";\nimport { useOnPriceUpdates } from \"@/events/hooks/useOnPriceUpdates\";\n\nexport const Updaters = () => {\n // fetch tokens from currently enabled lists\n useFetchTokenLists();\n // activate effects for token lists\n useActivateTokenListEffects();\n\n // all balances that would be fetched in TokenSelector for current chain\n usePrefetchTokenBalances();\n useGetBridgeInfo(); // @TODO: prefetch instead\n useGetContracts(); // @TODO: prefetch instead\n\n // for each selected tokenFrom detect its supported Permit1\n useTokenFromPermitInfo();\n // for each selected tokenFrom keep track of Token.nonce if available on Token\n useTokenFromPermit1Nonce();\n // global Permit2 TransferFrom nonce, not token-specific but for chain=Token.network\n useTokenFromPermit2TransferFromNonce();\n\n // check ahead of opening ConnectWallets drawer to prevent Safe button appearing\n // if we are not in a non-Safe iframe\n useSafeInfo();\n\n // check if wallet can batch txs\n useCanBatchTxs();\n\n // events when wallet is connected\n useOnWalletConnected();\n\n // events when price state updates\n useOnPriceUpdates();\n\n // activate effects for state atoms\n useActivateEventEffects();\n\n // activate effects for transaction atoms\n useActivateTransactionEffects();\n\n // activate effects for form input atoms\n useActivateFormInputEffects();\n\n // activate widget config effects\n useActivateConfigEffect();\n\n return null;\n};\n"],"names":["Updaters","useFetchTokenLists","useActivateTokenListEffects","usePrefetchTokenBalances","useGetBridgeInfo","useGetContracts","useTokenFromPermitInfo","useTokenFromPermit1Nonce","useTokenFromPermit2TransferFromNonce","useSafeInfo","useCanBatchTxs","useOnWalletConnected","useOnPriceUpdates","useActivateEventEffects","useActivateTransactionEffects","useActivateFormInputEffects","useActivateConfigEffect"],"mappings":";;;;;;;;;;;;;;;;;AAiBO,MAAMA,WAAWA,MAAA;AAEtBC,EAAAA,kBAAAA,EAAmB;AAEnBC,EAAAA,kBAAAA,EAA4B;AAG5BC,EAAAA,wBAAAA,EAAyB;AACzBC,EAAAA,gBAAAA,EAAiB;AACjBC,EAAAA,eAAAA,EAAgB;AAGhBC,EAAAA,sBAAAA,EAAuB;AAEvBC,EAAAA,wBAAAA,EAAyB;AAEzBC,EAAAA,oCAAAA,EAAqC;AAIrCC,EAAAA,WAAAA,EAAY;AAGZC,EAAAA,cAAAA,EAAe;AAGfC,EAAAA,oBAAAA,EAAqB;AAGrBC,EAAAA,iBAAAA,EAAkB;AAGlBC,EAAAA,oBAAAA,EAAwB;AAGxBC,EAAAA,oBAAAA,EAA8B;AAG9BC,EAAAA,2BAAAA,EAA4B;AAG5BC,EAAAA,uBAAAA,EAAwB;AAAC,EAAA,OAElB,IAAA;AAAI;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function useOnPriceUpdates(): void;
2
+ //# sourceMappingURL=useOnPriceUpdates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnPriceUpdates.d.ts","sourceRoot":"","sources":["../../../src/events/hooks/useOnPriceUpdates.ts"],"names":[],"mappings":"AAYA,wBAAgB,iBAAiB,SAgDhC"}
@@ -0,0 +1,71 @@
1
+ import { d as distExports } from '../../_virtual/index.js';
2
+ import { useWidgetEvents } from '../../core/state/widgetEventsAtom.js';
3
+ import { useEffect } from 'react';
4
+ import { QueryObserver } from '@tanstack/react-query';
5
+ import { queryClient } from '../../lib/queryClient.js';
6
+ import { useCurrentSwapPriceQueryKey } from '../../hooks/swap/prices/useSwapPrices.js';
7
+ import { isDeltaPrice } from '../../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js';
8
+
9
+ function useOnPriceUpdates() {
10
+ const $ = distExports.c(4);
11
+ const {
12
+ onPriceChange
13
+ } = useWidgetEvents();
14
+ const {
15
+ queryKey
16
+ } = useCurrentSwapPriceQueryKey();
17
+ let t0;
18
+ let t1;
19
+ if ($[0] !== onPriceChange || $[1] !== queryKey) {
20
+ t0 = () => {
21
+ if (!onPriceChange) {
22
+ return;
23
+ }
24
+ const observer = new QueryObserver(queryClient, {
25
+ queryKey,
26
+ enabled: false,
27
+ notifyOnChangeProps: ["data", "error", "isError", "isLoading", "isFetching"]
28
+ });
29
+ const unsubscribe = observer.subscribe((t2) => {
30
+ const {
31
+ data: price,
32
+ isLoading,
33
+ isFetching,
34
+ isError,
35
+ error
36
+ } = t2;
37
+ const priceParams = price && isDeltaPrice(price) ? {
38
+ priceMode: "delta",
39
+ price
40
+ } : {
41
+ priceMode: "market",
42
+ price
43
+ };
44
+ onPriceChange({
45
+ event: {
46
+ name: "PriceUpdates",
47
+ params: {
48
+ ...priceParams,
49
+ isLoading: isLoading || isFetching,
50
+ isError,
51
+ error
52
+ }
53
+ }
54
+ });
55
+ });
56
+ return unsubscribe;
57
+ };
58
+ t1 = [onPriceChange, queryKey];
59
+ $[0] = onPriceChange;
60
+ $[1] = queryKey;
61
+ $[2] = t0;
62
+ $[3] = t1;
63
+ } else {
64
+ t0 = $[2];
65
+ t1 = $[3];
66
+ }
67
+ useEffect(t0, t1);
68
+ }
69
+
70
+ export { useOnPriceUpdates };
71
+ //# sourceMappingURL=useOnPriceUpdates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnPriceUpdates.js","sources":["../../../src/events/hooks/useOnPriceUpdates.ts"],"sourcesContent":["import { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useEffect } from \"react\";\nimport { QueryObserver } from \"@tanstack/react-query\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { useCurrentSwapPriceQueryKey } from \"@/hooks/swap/prices/useSwapPrices\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport {\n isDeltaPrice,\n type DeltaPriceQueryKey,\n} from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport type { MarketPriceQueryKey } from \"@/hooks/swap/prices/market/queries/useMarketPriceQuery\";\n\nexport function useOnPriceUpdates() {\n const { onPriceChange } = useWidgetEvents();\n const { queryKey } = useCurrentSwapPriceQueryKey();\n\n useEffect(() => {\n if (!onPriceChange) return;\n\n const observer = new QueryObserver<\n DeltaPrice | BridgePrice | OptimalRate,\n Error,\n DeltaPrice | BridgePrice | OptimalRate,\n DeltaPrice | BridgePrice | OptimalRate,\n DeltaPriceQueryKey | MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n enabled: false,\n notifyOnChangeProps: [\n \"data\",\n \"error\",\n \"isError\",\n \"isLoading\",\n \"isFetching\",\n ],\n });\n\n const unsubscribe = observer.subscribe(\n ({ data: price, isLoading, isFetching, isError, error }) => {\n const priceParams =\n price && isDeltaPrice(price)\n ? { priceMode: \"delta\" as const, price }\n : { priceMode: \"market\" as const, price };\n\n onPriceChange({\n event: {\n name: \"PriceUpdates\",\n params: {\n ...priceParams,\n isLoading: isLoading || isFetching,\n isError,\n error,\n },\n },\n });\n }\n );\n\n return unsubscribe;\n }, [onPriceChange, queryKey]);\n}\n"],"names":["useOnPriceUpdates","$","_c","onPriceChange","useWidgetEvents","queryKey","useCurrentSwapPriceQueryKey","t0","t1","observer","QueryObserver","queryClient","enabled","notifyOnChangeProps","unsubscribe","subscribe","t2","data","price","isLoading","isFetching","isError","error","priceParams","isDeltaPrice","priceMode","event","name","params","useEffect"],"mappings":";;;;;;;;AAYO,SAAAA,iBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAA0BC,eAAAA,EAAgB;AAC1C,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAAqBC,2BAAAA,EAA4B;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAP,EAAA,CAAA,CAAA,KAAAE,iBAAAF,CAAAA,QAAAI,QAAAA,EAAA;AAEzCE,IAAAA,EAAAA,GAAAA,MAAA;AACR,MAAA,IAAI,CAACJ,aAAAA,EAAa;AAAA,QAAA;AAAA,MAAA;AAElB,MAAA,MAAAM,QAAAA,GAAiB,IAAIC,aAAAA,CAMnBC,WAAAA,EAAa;AAAA,QAAAN,QAAAA;AAAAA,QAAAO,OAAAA,EAEJ,KAAA;AAAA,QAAKC,qBACO,CACnB,MAAA,EACA,OAAA,EACA,SAAA,EACA,aACA,YAAY;AAAA,OAEf,CAAA;AAED,MAAA,MAAAC,WAAAA,GAAoBL,QAAAA,CAAQM,SAAAA,CAC1BC,CAAAA,EAAAA,KAAA;AAAC,QAAA,MAAA;AAAA,UAAAC,IAAAA,EAAAC,KAAAA;AAAAA,UAAAC,SAAAA;AAAAA,UAAAC,UAAAA;AAAAA,UAAAC,OAAAA;AAAAA,UAAAC;AAAAA,SAAA,GAAAN,EAAAA;AACC,QAAA,MAAAO,WAAAA,GACEL,KAAAA,IAASM,YAAAA,CAAaN,KAAK,CAAA,GAA3B;AAAA,UAAAO,SAAAA,EACiB,OAAA;AAAA,UAAgBP;AAAAA,SACS,GAF1C;AAAA,UAAAO,SAAAA,EAEiB,QAAA;AAAA,UAAiBP;AAAAA,SAAQ;AAE5Cf,QAAAA,aAAAA,CAAc;AAAA,UAAAuB,KAAAA,EACL;AAAA,YAAAC,IAAAA,EACC,cAAA;AAAA,YAAcC,MAAAA,EACZ;AAAA,cAAA,GACHL,WAAAA;AAAAA,cAAWJ,WACHA,SAAAA,IAAAC,UAAAA;AAAAA,cAAuBC,OAAAA;AAAAA,cAAAC;AAAAA;AAGpC;AACF,SACD,CAAA;AAAA,MAAC,CAEN,CAAA;AAAE,MAAA,OAEKR,WAAAA;AAAAA,IAAW,CAAA;AACjBN,IAAAA,EAAAA,GAAA,CAACL,eAAeE,QAAQ,CAAA;AAACJ,IAAAA,CAAAA,MAAAE,aAAAA;AAAAF,IAAAA,CAAAA,MAAAI,QAAAA;AAAAJ,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAD,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAAO,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA,EAAA;AA3C5B4B,EAAAA,SAAAA,CAAUtB,IA2CPC,EAAyB,CAAA;AAAC;;;;"}
@@ -1,3 +1,4 @@
1
+ import { MarkOptional } from 'ts-essentials';
1
2
  import { MakeEventArgs, WidgetEventCallbackConstructor, WidgetEventMinCallbackConstructor } from './common';
2
3
  import { BridgePrice, DeltaPrice, OptimalRate } from '@velora-dex/sdk';
3
4
  type DeltaPriceChangeParams = {
@@ -9,8 +10,14 @@ type MarketPriceChangeParams = {
9
10
  price: OptimalRate;
10
11
  };
11
12
  type PriceChangeParams = DeltaPriceChangeParams | MarketPriceChangeParams;
13
+ type PriceUpdatesParams = MarkOptional<PriceChangeParams, "price"> & {
14
+ isLoading: boolean;
15
+ isError: boolean;
16
+ error: Error | null;
17
+ };
12
18
  type EventArgs = {
13
19
  PriceChange: PriceChangeParams;
20
+ PriceUpdates: PriceUpdatesParams;
14
21
  };
15
22
  type PriceChangeEventArgs = MakeEventArgs<EventArgs>;
16
23
  export type OnPriceChange = WidgetEventCallbackConstructor<PriceChangeEventArgs>;
@@ -1 +1 @@
1
- {"version":3,"file":"priceChange.d.ts","sourceRoot":"","sources":["../../../src/events/types/priceChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,8BAA8B,EAC9B,iCAAiC,EAClC,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5E,KAAK,sBAAsB,GAAG;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;CACjC,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,KAAK,iBAAiB,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAE1E,KAAK,SAAS,GAAG;IACf,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF,KAAK,oBAAoB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAGrD,MAAM,MAAM,aAAa,GACvB,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAC1B,iCAAiC,CAAC,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"priceChange.d.ts","sourceRoot":"","sources":["../../../src/events/types/priceChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EACV,aAAa,EACb,8BAA8B,EAC9B,iCAAiC,EAClC,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5E,KAAK,sBAAsB,GAAG;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;CACjC,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,KAAK,iBAAiB,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAE1E,KAAK,kBAAkB,GAAG,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,WAAW,EAAE,iBAAiB,CAAC;IAC/B,YAAY,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEF,KAAK,oBAAoB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAGrD,MAAM,MAAM,aAAa,GACvB,8BAA8B,CAAC,oBAAoB,CAAC,CAAC;AAGvD,MAAM,MAAM,gBAAgB,GAC1B,iCAAiC,CAAC,oBAAoB,CAAC,CAAC"}
@@ -12,7 +12,7 @@ type DeltaPriceQueryInput<TData = DeltaPrice> = {
12
12
  timeout?: number;
13
13
  };
14
14
  export declare const DeltaPriceQueryKeyPrefix = "swap/prices/delta";
15
- type DeltaPriceQueryKey = readonly [
15
+ export type DeltaPriceQueryKey = readonly [
16
16
  base: typeof DeltaPriceQueryKeyPrefix,
17
17
  chainId: number,
18
18
  priceParams: DeltaPriceParams & {
@@ -51,5 +51,25 @@ export declare function useSubscribeToDeltaPrice(): SubscribeToDeltaPriceResult;
51
51
  export declare function getLastDeltaPrice(queryClient: QueryClient): DeltaPrice | BridgePrice | undefined;
52
52
  export declare function isLastDeltaPriceQueryInError(queryClient: QueryClient): boolean;
53
53
  export declare function isDataDeltaOrBridgePrice(price: unknown): price is DeltaPrice | BridgePrice;
54
+ export declare function useDeltaPriceQueryKey({ priceParams: _priceParams, chainId, destChainId, }: Pick<DeltaPriceQueryInput, "priceParams" | "chainId"> & {
55
+ destChainId?: number;
56
+ }): {
57
+ queryKey: DeltaPriceQueryKey;
58
+ sanitizedPriceParams: {
59
+ side?: ("BUY" | "SELL") | undefined;
60
+ amount: string;
61
+ srcToken: string;
62
+ destToken?: string | undefined;
63
+ partner?: string | undefined;
64
+ srcDecimals: number;
65
+ destDecimals?: number | undefined;
66
+ userAddress?: string | undefined;
67
+ beneficiary?: string | undefined;
68
+ includeAgents?: string[] | undefined;
69
+ excludeAgents?: string[] | undefined;
70
+ } & {
71
+ destChainId?: number;
72
+ };
73
+ };
54
74
  export {};
55
75
  //# sourceMappingURL=useDeltaPriceQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaPriceQuery.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaPriceQuery.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { assert } from 'ts-essentials';
6
6
 
7
7
  const DeltaPriceQueryKeyPrefix = "swap/prices/delta";
8
8
  function useDeltaPriceQuery(t0) {
9
- const $ = distExports.c(3);
9
+ const $ = distExports.c(18);
10
10
  const {
11
11
  priceParams: _priceParams,
12
12
  query,
@@ -27,47 +27,71 @@ function useDeltaPriceQuery(t0) {
27
27
  const {
28
28
  sdk
29
29
  } = useDeltaSDK(t1);
30
- const priceParams = {
31
- ..._priceParams,
32
- destChainId
33
- };
34
30
  const queryEnabled = query?.enabled ?? true;
35
31
  let t2;
36
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
32
+ if ($[2] !== _priceParams || $[3] !== chainId || $[4] !== destChainId) {
37
33
  t2 = {
38
- wait: 500
34
+ priceParams: _priceParams,
35
+ chainId,
36
+ destChainId
39
37
  };
40
- $[2] = t2;
38
+ $[2] = _priceParams;
39
+ $[3] = chainId;
40
+ $[4] = destChainId;
41
+ $[5] = t2;
41
42
  } else {
42
- t2 = $[2];
43
+ t2 = $[5];
43
44
  }
44
- const [debouncedAmount] = useDebouncedValue(priceParams.amount, t2);
45
- const sanitizedPriceParams = {
46
- srcToken: priceParams.srcToken,
47
- destToken: priceParams.destToken,
48
- amount: debouncedAmount,
49
- srcDecimals: priceParams.srcDecimals,
50
- destDecimals: priceParams.destDecimals,
51
- userAddress: priceParams.userAddress,
52
- partner: priceParams.partner,
53
- destChainId: priceParams.destChainId
54
- };
55
- return useQuery({
56
- queryKey: [DeltaPriceQueryKeyPrefix, chainId, sanitizedPriceParams],
57
- queryFn: (t3) => {
45
+ const {
46
+ queryKey,
47
+ sanitizedPriceParams
48
+ } = useDeltaPriceQueryKey(t2);
49
+ let t3;
50
+ if ($[6] !== sanitizedPriceParams || $[7] !== sdk || $[8] !== timeout) {
51
+ t3 = (t42) => {
58
52
  const {
59
53
  signal
60
- } = t3;
54
+ } = t42;
61
55
  assert(isPriceParamsValid(sanitizedPriceParams), "destToken is required");
62
56
  const price = sdk.getDeltaPrice(sanitizedPriceParams, {
63
57
  signal,
64
58
  timeout
65
59
  });
66
60
  return price;
67
- },
68
- ...query,
69
- enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams)
70
- });
61
+ };
62
+ $[6] = sanitizedPriceParams;
63
+ $[7] = sdk;
64
+ $[8] = timeout;
65
+ $[9] = t3;
66
+ } else {
67
+ t3 = $[9];
68
+ }
69
+ let t4;
70
+ if ($[10] !== queryEnabled || $[11] !== sanitizedPriceParams) {
71
+ t4 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
72
+ $[10] = queryEnabled;
73
+ $[11] = sanitizedPriceParams;
74
+ $[12] = t4;
75
+ } else {
76
+ t4 = $[12];
77
+ }
78
+ let t5;
79
+ if ($[13] !== query || $[14] !== queryKey || $[15] !== t3 || $[16] !== t4) {
80
+ t5 = {
81
+ queryKey,
82
+ queryFn: t3,
83
+ ...query,
84
+ enabled: t4
85
+ };
86
+ $[13] = query;
87
+ $[14] = queryKey;
88
+ $[15] = t3;
89
+ $[16] = t4;
90
+ $[17] = t5;
91
+ } else {
92
+ t5 = $[17];
93
+ }
94
+ return useQuery(t5);
71
95
  }
72
96
  function isPriceParamsValid(priceParams) {
73
97
  return !!priceParams.destToken && !!priceParams.destDecimals && Number(priceParams.amount) > 0;
@@ -156,6 +180,70 @@ function isLastDeltaPriceQueryInError(queryClient) {
156
180
  function isDataDeltaOrBridgePrice(price) {
157
181
  return typeof price === "object" && price !== null && "bridge" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
158
182
  }
183
+ function sanitizePriceParams({
184
+ debouncedAmount,
185
+ priceParams
186
+ }) {
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
222
+ });
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 = {
236
+ queryKey,
237
+ sanitizedPriceParams
238
+ };
239
+ $[4] = queryKey;
240
+ $[5] = sanitizedPriceParams;
241
+ $[6] = t3;
242
+ } else {
243
+ t3 = $[6];
244
+ }
245
+ return t3;
246
+ }
159
247
 
160
- export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery, useDeltaPriceQueryForPrice, useSubscribeToDeltaPrice };
248
+ export { DeltaPriceQueryKeyPrefix, getLastDeltaPrice, isBridgePrice, isDataDeltaOrBridgePrice, isDeltaPrice, isLastDeltaPriceQueryInError, useDeltaPriceQuery, useDeltaPriceQueryForPrice, useDeltaPriceQueryKey, useSubscribeToDeltaPrice };
161
249
  //# 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\";\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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"}
@@ -13,7 +13,7 @@ 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
@@ -34,5 +34,18 @@ type SubscribeToMarketPriceResult = (input: SubscribeToMarketPriceInput) => () =
34
34
  export declare function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult;
35
35
  export declare function getLastMarketPrice(queryClient: QueryClient): OptimalRate | undefined;
36
36
  export declare function isDataMarketPrice(price: unknown): price is OptimalRate;
37
+ export declare function useMarketPriceQueryKey({ priceParams, chainId, }: Pick<MarketPriceQueryInput, "priceParams" | "chainId">): {
38
+ queryKey: MarketPriceQueryKey;
39
+ 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;
48
+ };
49
+ };
37
50
  export {};
38
51
  //# 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;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,KAAK,mBAAmB,GAAG;IACzB,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,CAkDzD;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"}
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,12 +1,12 @@
1
1
  import { d as distExports } from '../../../../../_virtual/index.js';
2
2
  import { useMarketSwapSDK } from '../../../../useSDK.js';
3
3
  import { useDebouncedValue } from '@tanstack/react-pacer/debouncer';
4
- import { useQueryClient, useQuery, QueryObserver } from '@tanstack/react-query';
4
+ import { useQuery, useQueryClient, QueryObserver } from '@tanstack/react-query';
5
5
  import { assert } from 'ts-essentials';
6
6
 
7
7
  const MarketPriceQueryKeyPrefix = "swap/prices/market";
8
8
  function useMarketPriceQuery(t0) {
9
- const $ = distExports.c(41);
9
+ const $ = distExports.c(17);
10
10
  const {
11
11
  priceParams,
12
12
  query,
@@ -28,54 +28,27 @@ function useMarketPriceQuery(t0) {
28
28
  } = useMarketSwapSDK(t1);
29
29
  const queryEnabled = query?.enabled ?? true;
30
30
  let t2;
31
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
31
+ if ($[2] !== chainId || $[3] !== priceParams) {
32
32
  t2 = {
33
- wait: 500
33
+ priceParams,
34
+ chainId
34
35
  };
35
- $[2] = t2;
36
+ $[2] = chainId;
37
+ $[3] = priceParams;
38
+ $[4] = t2;
36
39
  } else {
37
- t2 = $[2];
40
+ t2 = $[4];
38
41
  }
39
- const [debouncedAmount] = useDebouncedValue(priceParams.amount, t2);
42
+ const {
43
+ queryKey,
44
+ sanitizedPriceParams
45
+ } = useMarketPriceQueryKey(t2);
40
46
  let t3;
41
- let t4;
42
- let t5;
43
- let t6;
44
- let t7;
45
- if ($[3] !== chainId || $[4] !== debouncedAmount || $[5] !== priceParams.destDecimals || $[6] !== priceParams.destToken || $[7] !== priceParams.destTokenDexTransferFee || $[8] !== priceParams.destTokenTransferFee || $[9] !== priceParams.excludeContractMethods || $[10] !== priceParams.excludeContractMethodsWithoutFeeModel || $[11] !== priceParams.excludeDEXS || $[12] !== priceParams.excludePools || $[13] !== priceParams.excludeRFQ || $[14] !== priceParams.ignoreBadUsdPrice || $[15] !== priceParams.includeContractMethods || $[16] !== priceParams.includeDEXS || $[17] !== priceParams.maxImpact || $[18] !== priceParams.maxUSDImpact || $[19] !== priceParams.otherExchangePrices || $[20] !== priceParams.partner || $[21] !== priceParams.side || $[22] !== priceParams.srcDecimals || $[23] !== priceParams.srcToken || $[24] !== priceParams.srcTokenDexTransferFee || $[25] !== priceParams.srcTokenTransferFee || $[26] !== priceParams.userAddress || $[27] !== query || $[28] !== queryEnabled || $[29] !== sdk || $[30] !== timeout) {
46
- const sanitizedPriceParams = {
47
- amount: debouncedAmount,
48
- userAddress: priceParams.userAddress,
49
- side: priceParams.side,
50
- srcDecimals: priceParams.srcDecimals,
51
- destDecimals: priceParams.destDecimals,
52
- srcToken: priceParams.srcToken,
53
- destToken: priceParams.destToken,
54
- options: {
55
- excludeDEXS: priceParams.excludeDEXS,
56
- includeDEXS: priceParams.includeDEXS,
57
- excludePools: priceParams.excludePools,
58
- excludeContractMethods: priceParams.excludeContractMethods,
59
- includeContractMethods: priceParams.includeContractMethods,
60
- partner: priceParams.partner,
61
- maxImpact: priceParams.maxImpact,
62
- maxUSDImpact: priceParams.maxUSDImpact,
63
- otherExchangePrices: priceParams.otherExchangePrices,
64
- ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
65
- excludeRFQ: priceParams.excludeRFQ,
66
- excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
67
- srcTokenTransferFee: priceParams.srcTokenTransferFee,
68
- destTokenTransferFee: priceParams.destTokenTransferFee,
69
- srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
70
- destTokenDexTransferFee: priceParams.destTokenDexTransferFee
71
- }
72
- };
73
- t7 = useQuery;
74
- t3 = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
75
- t4 = (t82) => {
47
+ if ($[5] !== sanitizedPriceParams || $[6] !== sdk || $[7] !== timeout) {
48
+ t3 = (t42) => {
76
49
  const {
77
50
  signal
78
- } = t82;
51
+ } = t42;
79
52
  assert(isPriceParamsValid(sanitizedPriceParams), "destToken is required");
80
53
  const price = sdk.getRate(sanitizedPriceParams, {
81
54
  signal,
@@ -83,65 +56,39 @@ function useMarketPriceQuery(t0) {
83
56
  });
84
57
  return price;
85
58
  };
86
- t5 = query;
87
- t6 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
88
- $[3] = chainId;
89
- $[4] = debouncedAmount;
90
- $[5] = priceParams.destDecimals;
91
- $[6] = priceParams.destToken;
92
- $[7] = priceParams.destTokenDexTransferFee;
93
- $[8] = priceParams.destTokenTransferFee;
94
- $[9] = priceParams.excludeContractMethods;
95
- $[10] = priceParams.excludeContractMethodsWithoutFeeModel;
96
- $[11] = priceParams.excludeDEXS;
97
- $[12] = priceParams.excludePools;
98
- $[13] = priceParams.excludeRFQ;
99
- $[14] = priceParams.ignoreBadUsdPrice;
100
- $[15] = priceParams.includeContractMethods;
101
- $[16] = priceParams.includeDEXS;
102
- $[17] = priceParams.maxImpact;
103
- $[18] = priceParams.maxUSDImpact;
104
- $[19] = priceParams.otherExchangePrices;
105
- $[20] = priceParams.partner;
106
- $[21] = priceParams.side;
107
- $[22] = priceParams.srcDecimals;
108
- $[23] = priceParams.srcToken;
109
- $[24] = priceParams.srcTokenDexTransferFee;
110
- $[25] = priceParams.srcTokenTransferFee;
111
- $[26] = priceParams.userAddress;
112
- $[27] = query;
113
- $[28] = queryEnabled;
114
- $[29] = sdk;
115
- $[30] = timeout;
116
- $[31] = t3;
117
- $[32] = t4;
118
- $[33] = t5;
119
- $[34] = t6;
120
- $[35] = t7;
59
+ $[5] = sanitizedPriceParams;
60
+ $[6] = sdk;
61
+ $[7] = timeout;
62
+ $[8] = t3;
121
63
  } else {
122
- t3 = $[31];
123
- t4 = $[32];
124
- t5 = $[33];
125
- t6 = $[34];
126
- t7 = $[35];
64
+ t3 = $[8];
127
65
  }
128
- let t8;
129
- if ($[36] !== t3 || $[37] !== t4 || $[38] !== t5 || $[39] !== t6) {
130
- t8 = {
131
- queryKey: t3,
132
- queryFn: t4,
133
- ...t5,
134
- enabled: t6
66
+ let t4;
67
+ if ($[9] !== queryEnabled || $[10] !== sanitizedPriceParams) {
68
+ t4 = queryEnabled && isPriceParamsValid(sanitizedPriceParams);
69
+ $[9] = queryEnabled;
70
+ $[10] = sanitizedPriceParams;
71
+ $[11] = t4;
72
+ } else {
73
+ t4 = $[11];
74
+ }
75
+ let t5;
76
+ if ($[12] !== query || $[13] !== queryKey || $[14] !== t3 || $[15] !== t4) {
77
+ t5 = {
78
+ queryKey,
79
+ queryFn: t3,
80
+ ...query,
81
+ enabled: t4
135
82
  };
136
- $[36] = t3;
137
- $[37] = t4;
138
- $[38] = t5;
139
- $[39] = t6;
140
- $[40] = t8;
83
+ $[12] = query;
84
+ $[13] = queryKey;
85
+ $[14] = t3;
86
+ $[15] = t4;
87
+ $[16] = t5;
141
88
  } else {
142
- t8 = $[40];
89
+ t5 = $[16];
143
90
  }
144
- return t7(t8);
91
+ return useQuery(t5);
145
92
  }
146
93
  function isPriceParamsValid(priceParams) {
147
94
  return !!priceParams.destToken && Number(priceParams.amount) > 0;
@@ -217,6 +164,91 @@ function getLastMarketPrice(queryClient) {
217
164
  function isDataMarketPrice(price) {
218
165
  return typeof price === "object" && price !== null && "bestRoute" in price && "srcToken" in price && "destToken" in price && "srcAmount" in price && "destAmount" in price;
219
166
  }
167
+ function sanitizePriceParams({
168
+ debouncedAmount,
169
+ priceParams
170
+ }) {
171
+ return {
172
+ amount: debouncedAmount,
173
+ userAddress: priceParams.userAddress,
174
+ side: priceParams.side,
175
+ srcDecimals: priceParams.srcDecimals,
176
+ destDecimals: priceParams.destDecimals,
177
+ srcToken: priceParams.srcToken,
178
+ destToken: priceParams.destToken,
179
+ options: {
180
+ excludeDEXS: priceParams.excludeDEXS,
181
+ includeDEXS: priceParams.includeDEXS,
182
+ excludePools: priceParams.excludePools,
183
+ excludeContractMethods: priceParams.excludeContractMethods,
184
+ includeContractMethods: priceParams.includeContractMethods,
185
+ partner: priceParams.partner,
186
+ maxImpact: priceParams.maxImpact,
187
+ maxUSDImpact: priceParams.maxUSDImpact,
188
+ otherExchangePrices: priceParams.otherExchangePrices,
189
+ ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,
190
+ excludeRFQ: priceParams.excludeRFQ,
191
+ excludeContractMethodsWithoutFeeModel: priceParams.excludeContractMethodsWithoutFeeModel,
192
+ srcTokenTransferFee: priceParams.srcTokenTransferFee,
193
+ destTokenTransferFee: priceParams.destTokenTransferFee,
194
+ srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,
195
+ destTokenDexTransferFee: priceParams.destTokenDexTransferFee
196
+ }
197
+ };
198
+ }
199
+ function useMarketPriceQueryKey(t0) {
200
+ const $ = distExports.c(10);
201
+ const {
202
+ priceParams,
203
+ chainId
204
+ } = t0;
205
+ let t1;
206
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
207
+ t1 = {
208
+ wait: 500
209
+ };
210
+ $[0] = t1;
211
+ } else {
212
+ t1 = $[0];
213
+ }
214
+ const [debouncedAmount] = useDebouncedValue(priceParams.amount, t1);
215
+ let t2;
216
+ if ($[1] !== debouncedAmount || $[2] !== priceParams) {
217
+ t2 = sanitizePriceParams({
218
+ debouncedAmount,
219
+ priceParams
220
+ });
221
+ $[1] = debouncedAmount;
222
+ $[2] = priceParams;
223
+ $[3] = t2;
224
+ } else {
225
+ t2 = $[3];
226
+ }
227
+ const sanitizedPriceParams = t2;
228
+ let t3;
229
+ if ($[4] !== chainId || $[5] !== sanitizedPriceParams) {
230
+ t3 = [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams];
231
+ $[4] = chainId;
232
+ $[5] = sanitizedPriceParams;
233
+ $[6] = t3;
234
+ } else {
235
+ t3 = $[6];
236
+ }
237
+ const queryKey = t3;
238
+ let t4;
239
+ if ($[7] !== queryKey || $[8] !== sanitizedPriceParams) {
240
+ t4 = {
241
+ queryKey,
242
+ sanitizedPriceParams
243
+ };
244
+ $[7] = queryKey;
245
+ $[8] = sanitizedPriceParams;
246
+ $[9] = t4;
247
+ } else {
248
+ t4 = $[9];
249
+ }
250
+ return t4;
251
+ }
220
252
 
221
- export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useSubscribeToMarketPrice };
253
+ export { MarketPriceQueryKeyPrefix, getLastMarketPrice, isDataMarketPrice, useMarketPriceQuery, useMarketPriceQueryForPrice, useMarketPriceQueryKey, useSubscribeToMarketPrice };
222
254
  //# sourceMappingURL=useMarketPriceQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\ntype MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): MarketQueryResult<TData> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: MarkOptional<GetRateInput, \"destToken\"> = {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n\n return useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey: [MarketPriceQueryKeyPrefix, chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","t3","t4","t5","t6","t7","destDecimals","destToken","destTokenDexTransferFee","destTokenTransferFee","excludeContractMethods","excludeContractMethodsWithoutFeeModel","excludeDEXS","excludePools","excludeRFQ","ignoreBadUsdPrice","includeContractMethods","includeDEXS","maxImpact","maxUSDImpact","otherExchangePrices","partner","side","srcDecimals","srcToken","srcTokenDexTransferFee","srcTokenTransferFee","userAddress","sanitizedPriceParams","options","useQuery","t8","signal","assert","isPriceParamsValid","price","getRate","queryKey","queryFn","Number","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastMarketPrice","type","isDataMarketPrice"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/market/queries/useMarketPriceQuery.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport {\n Query,\n QueryClient,\n QueryObserver,\n useQuery,\n useQueryClient,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport type {\n OptimalRate,\n GetRateInput as GetRateInputSDK,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional, type Prettify } from \"ts-essentials\";\n\ntype GetRateInput = Prettify<GetRateInputSDK>;\n\ntype RequiredRateParams = Prettify<\n Omit<GetRateInput, \"options\"> & GetRateInput[\"options\"]\n>;\n\nexport type RateParamsInput = MarkOptional<RequiredRateParams, \"destToken\">;\n\ntype MarketQueryParams<TData = OptimalRate> = Omit<\n UseQueryOptions<OptimalRate, Error, TData, MarketPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype MarketQueryResult<TData = OptimalRate> = UseQueryResult<TData, Error>;\n\ntype MarketPriceQueryInput<TData = OptimalRate> = {\n priceParams: RateParamsInput;\n query?: MarketQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\nexport const MarketPriceQueryKeyPrefix = \"swap/prices/market\";\n\nexport type MarketPriceQueryKey = [\n base: typeof MarketPriceQueryKeyPrefix,\n chainId: number,\n priceParams: RateParamsInput,\n];\n\nexport function useMarketPriceQuery<TData = OptimalRate>({\n priceParams,\n query,\n chainId,\n timeout,\n}: MarketPriceQueryInput<TData>): MarketQueryResult<TData> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n const queryEnabled = query?.enabled ?? true;\n\n const { queryKey, sanitizedPriceParams } = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n\n return useQuery<OptimalRate, Error, TData, MarketPriceQueryKey>({\n queryKey,\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getRate(sanitizedPriceParams, { signal, timeout });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: MarkOptional<GetRateInput, \"destToken\">\n): priceParams is GetRateInput {\n return !!priceParams.destToken && Number(priceParams.amount) > 0;\n}\n\ntype GetMarketPriceQueryForPriceInput = {\n price: OptimalRate;\n chainId: number;\n};\n\ntype MarketPriceQuery = Query<\n OptimalRate,\n Error,\n OptimalRate,\n MarketPriceQueryKey\n>;\n\ntype GetMarketPriceQueryForPrice = (\n input: GetMarketPriceQueryForPriceInput\n) => Query<OptimalRate, Error, OptimalRate, MarketPriceQueryKey> | undefined;\n\n// get query for a given marketPrice\nexport function useMarketPriceQueryForPrice(): GetMarketPriceQueryForPrice {\n const queryClient = useQueryClient();\n\n return ({ chainId, price }) => {\n const queryKey: [MarketPriceQueryKey[0], MarketPriceQueryKey[1]] = [\n MarketPriceQueryKeyPrefix,\n chainId,\n ];\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey,\n exact: false,\n predicate: (query) => {\n return query.state.data === price;\n },\n });\n\n return query as MarketPriceQuery | undefined;\n };\n}\n\ntype SubscribeToMarketPriceInput = {\n queryKey: MarketPriceQueryKey;\n onData?: (data: OptimalRate) => void;\n onError?: (error: Error) => void;\n};\n\ntype SubscribeToMarketPriceResult = (\n input: SubscribeToMarketPriceInput\n) => () => void;\n\n// independently subscribe to a price query\nexport function useSubscribeToMarketPrice(): SubscribeToMarketPriceResult {\n const queryClient = useQueryClient();\n\n return ({ queryKey, onData, onError }) => {\n const observer = new QueryObserver<\n OptimalRate,\n Error,\n OptimalRate,\n OptimalRate,\n MarketPriceQueryKey\n >(queryClient, {\n queryKey,\n // only receive updates from existing subscriptions\n enabled: false,\n });\n\n // return unsubscribe function\n return observer.subscribe((result) => {\n if (result.error) {\n onError?.(result.error);\n return;\n }\n if (result.data) {\n onData?.(result.data);\n }\n });\n };\n}\n\nexport function getLastMarketPrice(\n queryClient: QueryClient\n): OptimalRate | undefined {\n const queryCache = queryClient.getQueryCache();\n const query = queryCache.find<OptimalRate, Error, OptimalRate>({\n queryKey: [MarketPriceQueryKeyPrefix],\n exact: false,\n type: \"active\", // only the most recent query will be active\n });\n\n return query?.state.data;\n}\n\nexport function isDataMarketPrice(price: unknown): price is OptimalRate {\n return (\n typeof price === \"object\" &&\n price !== null &&\n \"bestRoute\" in price &&\n \"srcToken\" in price &&\n \"destToken\" in price &&\n \"srcAmount\" in price &&\n \"destAmount\" in price\n );\n}\n\nfunction sanitizePriceParams({\n debouncedAmount,\n priceParams,\n}: {\n debouncedAmount: string;\n priceParams: RateParamsInput;\n}): MarkOptional<GetRateInput, \"destToken\"> {\n return {\n amount: debouncedAmount,\n userAddress: priceParams.userAddress,\n side: priceParams.side,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n options: {\n excludeDEXS: priceParams.excludeDEXS,\n includeDEXS: priceParams.includeDEXS,\n excludePools: priceParams.excludePools,\n excludeContractMethods: priceParams.excludeContractMethods,\n includeContractMethods: priceParams.includeContractMethods,\n partner: priceParams.partner,\n maxImpact: priceParams.maxImpact,\n maxUSDImpact: priceParams.maxUSDImpact,\n otherExchangePrices: priceParams.otherExchangePrices,\n ignoreBadUsdPrice: priceParams.ignoreBadUsdPrice,\n excludeRFQ: priceParams.excludeRFQ,\n excludeContractMethodsWithoutFeeModel:\n priceParams.excludeContractMethodsWithoutFeeModel,\n srcTokenTransferFee: priceParams.srcTokenTransferFee,\n destTokenTransferFee: priceParams.destTokenTransferFee,\n srcTokenDexTransferFee: priceParams.srcTokenDexTransferFee,\n destTokenDexTransferFee: priceParams.destTokenDexTransferFee,\n },\n };\n}\n\nexport function useMarketPriceQueryKey({\n priceParams,\n chainId,\n}: Pick<MarketPriceQueryInput, \"priceParams\" | \"chainId\">) {\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams = sanitizePriceParams({\n debouncedAmount,\n priceParams,\n });\n\n const queryKey: MarketPriceQueryKey = [\n MarketPriceQueryKeyPrefix,\n chainId,\n sanitizedPriceParams,\n ];\n\n return { queryKey, sanitizedPriceParams };\n}\n"],"names":["MarketPriceQueryKeyPrefix","useMarketPriceQuery","t0","$","_c","priceParams","query","chainId","timeout","t1","sdk","useMarketSwapSDK","queryEnabled","enabled","t2","queryKey","sanitizedPriceParams","useMarketPriceQueryKey","t3","t4","signal","assert","isPriceParamsValid","price","getRate","t5","queryFn","useQuery","destToken","Number","amount","useMarketPriceQueryForPrice","queryClient","useQueryClient","queryCache","getQueryCache","query_0","find","exact","predicate","state","data","useSubscribeToMarketPrice","onData","onError","observer","QueryObserver","subscribe","result","error","getLastMarketPrice","type","isDataMarketPrice","sanitizePriceParams","debouncedAmount","userAddress","side","srcDecimals","destDecimals","srcToken","options","excludeDEXS","includeDEXS","excludePools","excludeContractMethods","includeContractMethods","partner","maxImpact","maxUSDImpact","otherExchangePrices","ignoreBadUsdPrice","excludeRFQ","excludeContractMethodsWithoutFeeModel","srcTokenTransferFee","destTokenTransferFee","srcTokenDexTransferFee","destTokenDexTransferFee","Symbol","for","wait","useDebouncedValue"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { useMarketPriceQueryKey } from './market/queries/useMarketPriceQuery';
2
+ import { useDeltaPriceQueryKey } from './delta/queries/useDeltaPriceQuery';
1
3
  import { SwapMode } from '../../../components/widget/SwapModeSwitcher/state/types';
2
4
  import { BridgePrice, DeltaPrice, OptimalRate } from '@velora-dex/sdk';
3
5
  import { UseSwapPricesInput } from './types';
@@ -9,6 +11,7 @@ type UseSwapPricesReturn = {
9
11
  /** @description whether the market price can be used for the current price params */
10
12
  canBeUsed: boolean;
11
13
  isLoading: boolean;
14
+ isFetching: boolean;
12
15
  isError: boolean;
13
16
  error: Error | null;
14
17
  };
@@ -17,6 +20,7 @@ type UseSwapPricesReturn = {
17
20
  /** @description whether the delta price can be used for the current price params && widget config */
18
21
  canBeUsed: boolean;
19
22
  isLoading: boolean;
23
+ isFetching: boolean;
20
24
  isError: boolean;
21
25
  error: Error | null;
22
26
  };
@@ -34,5 +38,11 @@ type UseCurrentSwapPriceReturn = {
34
38
  price?: DeltaPrice | BridgePrice;
35
39
  });
36
40
  export declare function useCurrentSwapPrice(params?: UseSwapPricesInput): UseCurrentSwapPriceReturn;
41
+ type UseCurrentSwapPriceQueryKeyReturn = (ReturnType<typeof useMarketPriceQueryKey> & {
42
+ priceMode: "market";
43
+ }) | (ReturnType<typeof useDeltaPriceQueryKey> & {
44
+ priceMode: "delta";
45
+ });
46
+ export declare function useCurrentSwapPriceQueryKey(): UseCurrentSwapPriceQueryKeyReturn;
37
47
  export {};
38
48
  //# sourceMappingURL=useSwapPrices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"names":[],"mappings":"AAIA,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,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,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAC3B,MAAM,GAAE,kBAAuB,GAC9B,mBAAmB,CAwJrB;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"}
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,7 +1,7 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
- import { useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
2
+ import { useMarketPriceQueryKey, useMarketPriceQuery } from './market/queries/useMarketPriceQuery.js';
3
3
  import { usePricesParams } from './usePricesParams.js';
4
- import { useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
4
+ import { useDeltaPriceQueryKey, useDeltaPriceQuery } from './delta/queries/useDeltaPriceQuery.js';
5
5
  import { swapModeAtom } from '../../../components/widget/SwapModeSwitcher/state/swapModeAtom.js';
6
6
  import { useAtomValue } from 'jotai';
7
7
  import { useGlobalDeltaEnabled } from '../../useGlobalDeltaEnabled.js';
@@ -116,6 +116,7 @@ function useSwapPrices(params = {}) {
116
116
  market: {
117
117
  price: marketPriceQuery.data,
118
118
  isLoading: marketPriceQuery.isLoading,
119
+ isFetching: marketPriceQuery.isFetching,
119
120
  isError: marketPriceQuery.isError,
120
121
  error: marketPriceQuery.error,
121
122
  canBeUsed: marketCanBeUsed
@@ -123,6 +124,7 @@ function useSwapPrices(params = {}) {
123
124
  delta: {
124
125
  price: deltaPriceQuery.data,
125
126
  isLoading: deltaPriceQuery.isLoading,
127
+ isFetching: deltaPriceQuery.isFetching,
126
128
  isError: deltaPriceQuery.isError,
127
129
  error: deltaPriceQuery.error,
128
130
  canBeUsed: deltaCanBeUsed
@@ -188,6 +190,82 @@ function useCurrentSwapPrice(t0) {
188
190
  }
189
191
  return t2;
190
192
  }
193
+ function useCurrentSwapPriceQueryKey() {
194
+ const $ = distExports.c(14);
195
+ const {
196
+ priceParams,
197
+ chainId,
198
+ destChainId
199
+ } = usePricesParams("swap");
200
+ let t0;
201
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
202
+ t0 = {
203
+ enabled: false
204
+ };
205
+ $[0] = t0;
206
+ } else {
207
+ t0 = $[0];
208
+ }
209
+ const {
210
+ priceMode
211
+ } = useSwapPrices(t0);
212
+ let t1;
213
+ if ($[1] !== chainId || $[2] !== priceParams) {
214
+ t1 = {
215
+ priceParams,
216
+ chainId
217
+ };
218
+ $[1] = chainId;
219
+ $[2] = priceParams;
220
+ $[3] = t1;
221
+ } else {
222
+ t1 = $[3];
223
+ }
224
+ const marketQueryKey = useMarketPriceQueryKey(t1);
225
+ let t2;
226
+ if ($[4] !== chainId || $[5] !== destChainId || $[6] !== priceParams) {
227
+ t2 = {
228
+ priceParams,
229
+ chainId,
230
+ destChainId
231
+ };
232
+ $[4] = chainId;
233
+ $[5] = destChainId;
234
+ $[6] = priceParams;
235
+ $[7] = t2;
236
+ } else {
237
+ t2 = $[7];
238
+ }
239
+ const deltaQueryKey = useDeltaPriceQueryKey(t2);
240
+ if (priceMode === "market") {
241
+ let t32;
242
+ if ($[8] !== marketQueryKey || $[9] !== priceMode) {
243
+ t32 = {
244
+ ...marketQueryKey,
245
+ priceMode
246
+ };
247
+ $[8] = marketQueryKey;
248
+ $[9] = priceMode;
249
+ $[10] = t32;
250
+ } else {
251
+ t32 = $[10];
252
+ }
253
+ return t32;
254
+ }
255
+ let t3;
256
+ if ($[11] !== deltaQueryKey || $[12] !== priceMode) {
257
+ t3 = {
258
+ ...deltaQueryKey,
259
+ priceMode
260
+ };
261
+ $[11] = deltaQueryKey;
262
+ $[12] = priceMode;
263
+ $[13] = t3;
264
+ } else {
265
+ t3 = $[13];
266
+ }
267
+ return t3;
268
+ }
191
269
 
192
- export { useCurrentSwapPrice, useSwapPrices };
270
+ export { useCurrentSwapPrice, useCurrentSwapPriceQueryKey, useSwapPrices };
193
271
  //# sourceMappingURL=useSwapPrices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import { useMarketPriceQuery } from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport { useDeltaPriceQuery } from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n /* eslint-disable react-hooks/refs */\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n /* eslint-enable react-hooks/refs */\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","token","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","isLoading","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2"],"mappings":"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"}
1
+ {"version":3,"file":"useSwapPrices.js","sources":["../../../../src/hooks/swap/prices/useSwapPrices.ts"],"sourcesContent":["import {\n useMarketPriceQuery,\n useMarketPriceQueryKey,\n} from \"./market/queries/useMarketPriceQuery\";\nimport { usePricesParams } from \"./usePricesParams\";\nimport {\n useDeltaPriceQuery,\n useDeltaPriceQueryKey,\n} from \"./delta/queries/useDeltaPriceQuery\";\nimport { swapModeAtom } from \"@/components/widget/SwapModeSwitcher/state/swapModeAtom\";\nimport { type SwapMode } from \"@/components/widget/SwapModeSwitcher/state/types\";\nimport { useAtomValue } from \"jotai\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport type { UseSwapPricesInput } from \"./types\";\nimport { useGlobalDeltaEnabled } from \"@/hooks/useGlobalDeltaEnabled\";\nimport { useRef } from \"react\";\nimport { isETH, isWETH } from \"@/tokens/utils/eth\";\nimport { wrappedNativeCurrency } from \"@/lib/constants/weth\";\nimport { useIsTokenSupportedInDeltaQuery } from \"./delta/queries/useIsTokenSupportedInDelta\";\n\nconst PRICE_REFETCH_INTERVAL = 5000; // 5 seconds\n\ntype UseSwapPricesReturn = {\n priceMode: SwapMode;\n userSelectedPriceMode: SwapMode;\n market: {\n price?: OptimalRate;\n /** @description whether the market price can be used for the current price params */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n };\n delta: {\n price?: DeltaPrice | BridgePrice;\n /** @description whether the delta price can be used for the current price params && widget config */\n canBeUsed: boolean;\n isLoading: boolean;\n isFetching: boolean;\n isError: boolean;\n error: Error | null;\n };\n};\n\nexport function useSwapPrices(\n params: UseSwapPricesInput = {}\n): UseSwapPricesReturn {\n const { priceParams, isCrossChain, chainId, destChainId } =\n usePricesParams(\"swap\");\n\n // selected by the user if both options are available, otherwise always \"market\"\n const swapMode = useAtomValue(swapModeAtom);\n\n const {\n enabledInConfig: deltaEnabledInConfig,\n enabledInSettings: deltaEnabledInSettings,\n enabledOnCurrentChain: deltaEnabledOnCurrentChain,\n } = useGlobalDeltaEnabled();\n\n const fetchAnyPrice = priceParams.amount !== \"0\" && !!priceParams.destToken;\n\n const isBUY = priceParams.side === \"BUY\";\n\n const isEthToWethSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isETH({ address: priceParams.srcToken }) &&\n isWETH({ address: priceParams.destToken }, chainId);\n const isWethToEthSameChain =\n !isCrossChain &&\n !!priceParams.destToken &&\n isWETH({ address: priceParams.srcToken }, chainId) &&\n isETH({ address: priceParams.destToken });\n\n const { data: isSrcTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.srcToken,\n chainId,\n });\n const { data: isDestTokenSupported } = useIsTokenSupportedInDeltaQuery({\n token: priceParams.destToken,\n chainId,\n });\n\n const deltaEnabled =\n // enabled in widget config\n deltaEnabledInConfig &&\n // enabled in user settings\n deltaEnabledInSettings &&\n // enabled on API for current chain\n deltaEnabledOnCurrentChain &&\n // SELL side only\n priceParams.side === \"SELL\" &&\n // ETH -> WETH same chain is market only\n !isEthToWethSameChain &&\n // WETH -> ETH same chain is market only\n !isWethToEthSameChain &&\n // user selected Delta\n swapMode === \"delta\" &&\n // tokens are supported in Delta\n isSrcTokenSupported !== false &&\n isDestTokenSupported !== false;\n // @TODO add BUY support for Delta when available\n\n // whether delta price can be used in principle for current price params,\n // irrespective of user settings\n const deltaCanBeUsed =\n fetchAnyPrice &&\n deltaEnabledInConfig &&\n deltaEnabledOnCurrentChain &&\n priceParams.side === \"SELL\" &&\n // @TODO add BUY support for Delta when available\n !isEthToWethSameChain &&\n !isWethToEthSameChain;\n\n // Delta /prices errors when srcToken=ETH;\n // we will pre-wrap ETH->WETH before Swap anyway;\n // be careful not to use deltaPrices.srcToken with the assumption that (tokenFrom=ETH) !== (deltaPrices.srcToken=WETH)\n const srcTokenForDelta = isETH({ address: priceParams.srcToken })\n ? wrappedNativeCurrency[chainId]\n : priceParams.srcToken;\n\n const deltaPriceQuery = useDeltaPriceQuery({\n priceParams: {\n ...priceParams,\n srcToken: srcTokenForDelta,\n },\n chainId,\n destChainId,\n timeout: 5000,\n query: {\n enabled: deltaEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: PRICE_REFETCH_INTERVAL,\n // already refetched on short interval\n // prevents delay before deltaPriceQuery.error is set\n retry: false,\n },\n });\n\n // keep track if last result was error\n const deltaErrorRef = useRef(deltaPriceQuery.error);\n // by itself isError resets when fetching\n /* eslint-disable react-hooks/refs */\n if (deltaPriceQuery.error) deltaErrorRef.current = deltaPriceQuery.error;\n // keep errorRef until delta succeeds\n if (deltaPriceQuery.isSuccess) deltaErrorRef.current = null;\n\n const deltaErrorCached = deltaErrorRef.current;\n /* eslint-enable react-hooks/refs */\n\n // no market for Crosschain swaps, otherwise always enabled as a fallback for Delta\n const marketEnabled = !isCrossChain;\n const marketCanBeUsed = marketEnabled && fetchAnyPrice;\n\n const marketIsFallback = deltaErrorCached && marketEnabled;\n\n // @TODO remove isBUY once BUY is supported for Delta\n const marketIsMainMode =\n (swapMode === \"market\" && marketEnabled) || !deltaEnabled || isBUY;\n const priceMode = marketIsFallback || marketIsMainMode ? \"market\" : \"delta\";\n\n const marketRefetchInterval =\n // if only market mode or delta has an error\n !deltaEnabled || deltaErrorCached // using cached error here so we don't continuously switch between 2 intervals,\n ? // which caused market price query reschedule and no fetch ever happening\n // frequent updates for Market price\n PRICE_REFETCH_INTERVAL\n : // otherwise when Delta is working, less frequent updates for Market price\n 2 * PRICE_REFETCH_INTERVAL;\n\n const marketPriceQuery = useMarketPriceQuery({\n priceParams,\n chainId,\n timeout: 5000,\n query: {\n enabled: marketEnabled && fetchAnyPrice && (params.enabled ?? true),\n refetchInterval: marketRefetchInterval,\n retry: false,\n },\n });\n\n return {\n priceMode,\n userSelectedPriceMode: swapMode,\n market: {\n price: marketPriceQuery.data,\n isLoading: marketPriceQuery.isLoading,\n isFetching: marketPriceQuery.isFetching,\n isError: marketPriceQuery.isError,\n error: marketPriceQuery.error,\n canBeUsed: marketCanBeUsed,\n },\n delta: {\n price: deltaPriceQuery.data,\n isLoading: deltaPriceQuery.isLoading,\n isFetching: deltaPriceQuery.isFetching,\n isError: deltaPriceQuery.isError,\n error: deltaPriceQuery.error,\n canBeUsed: deltaCanBeUsed,\n },\n };\n}\n\ntype UseCurrentSwapPriceReturn = {\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n} & (\n | {\n priceMode: \"market\";\n price?: OptimalRate;\n }\n | {\n priceMode: \"delta\";\n price?: DeltaPrice | BridgePrice;\n }\n);\n\nexport function useCurrentSwapPrice(\n params: UseSwapPricesInput = { enabled: true }\n): UseCurrentSwapPriceReturn {\n const { market, delta, priceMode } = useSwapPrices(params);\n\n if (priceMode === \"market\") {\n return {\n priceMode,\n price: market.price,\n isLoading: market.isLoading,\n isError: market.isError,\n error: market.error,\n };\n }\n\n return {\n priceMode,\n price: delta.price,\n isLoading: delta.isLoading,\n isError: delta.isError,\n error: delta.error,\n };\n}\n\ntype UseCurrentSwapPriceQueryKeyReturn =\n | (ReturnType<typeof useMarketPriceQueryKey> & {\n priceMode: \"market\";\n })\n | (ReturnType<typeof useDeltaPriceQueryKey> & {\n priceMode: \"delta\";\n });\n\nexport function useCurrentSwapPriceQueryKey(): UseCurrentSwapPriceQueryKeyReturn {\n const { priceParams, chainId, destChainId } = usePricesParams(\"swap\");\n const { priceMode } = useSwapPrices({ enabled: false });\n\n const marketQueryKey = useMarketPriceQueryKey({\n priceParams,\n chainId,\n });\n const deltaQueryKey = useDeltaPriceQueryKey({\n priceParams,\n chainId,\n destChainId,\n });\n\n if (priceMode === \"market\") {\n return { ...marketQueryKey, priceMode };\n }\n\n return { ...deltaQueryKey, priceMode };\n}\n"],"names":["PRICE_REFETCH_INTERVAL","useSwapPrices","params","priceParams","isCrossChain","chainId","destChainId","usePricesParams","swapMode","useAtomValue","swapModeAtom","enabledInConfig","deltaEnabledInConfig","enabledInSettings","deltaEnabledInSettings","enabledOnCurrentChain","deltaEnabledOnCurrentChain","useGlobalDeltaEnabled","fetchAnyPrice","amount","destToken","isBUY","side","isEthToWethSameChain","isETH","address","srcToken","isWETH","isWethToEthSameChain","data","isSrcTokenSupported","useIsTokenSupportedInDeltaQuery","token","isDestTokenSupported","deltaEnabled","deltaCanBeUsed","srcTokenForDelta","wrappedNativeCurrency","deltaPriceQuery","useDeltaPriceQuery","timeout","query","enabled","refetchInterval","retry","deltaErrorRef","useRef","error","current","isSuccess","deltaErrorCached","marketEnabled","marketCanBeUsed","marketIsFallback","marketIsMainMode","priceMode","marketRefetchInterval","marketPriceQuery","useMarketPriceQuery","userSelectedPriceMode","market","price","isLoading","isFetching","isError","canBeUsed","delta","useCurrentSwapPrice","t0","$","_c","t1","undefined","t2","useCurrentSwapPriceQueryKey","Symbol","for","marketQueryKey","useMarketPriceQueryKey","deltaQueryKey","useDeltaPriceQueryKey","t3"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velora-dex/widget",
3
- "version": "0.2.2",
3
+ "version": "0.2.3-dev.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [