@lifi/widget 3.21.4-alpha.0 → 3.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +1 -1
- package/dist/esm/AppProvider.js +2 -3
- package/dist/esm/AppProvider.js.map +1 -1
- package/dist/esm/components/AppContainer.js +23 -22
- package/dist/esm/components/AppContainer.js.map +1 -1
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +12 -7
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/dist/esm/components/BaseTransactionButton/types.d.ts +2 -0
- package/dist/esm/components/ChainSelect/ChainSelect.js +3 -1
- package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
- package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +3 -1
- package/dist/esm/components/ChainSelect/ChainSelect.style.js +23 -9
- package/dist/esm/components/ChainSelect/ChainSelect.style.js.map +1 -1
- package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.d.ts +8 -0
- package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js +20 -0
- package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js.map +1 -0
- package/dist/esm/components/Messages/WarningMessages.js +3 -0
- package/dist/esm/components/Messages/WarningMessages.js.map +1 -1
- package/dist/esm/components/Messages/useMessageQueue.js +15 -4
- package/dist/esm/components/Messages/useMessageQueue.js.map +1 -1
- package/dist/esm/components/RouteCard/RouteCard.js +3 -3
- package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js +2 -2
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/config/version.js.map +1 -1
- package/dist/esm/hooks/useAvailableChains.js +3 -2
- package/dist/esm/hooks/useAvailableChains.js.map +1 -1
- package/dist/esm/hooks/useExplorer.d.ts +0 -1
- package/dist/esm/hooks/useExplorer.js +26 -31
- package/dist/esm/hooks/useExplorer.js.map +1 -1
- package/dist/esm/hooks/useFromTokenSufficiency.js +4 -1
- package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
- package/dist/esm/hooks/useGasRecommendation.js +9 -1
- package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
- package/dist/esm/hooks/useGasSufficiency.js +50 -16
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- package/dist/esm/hooks/useIsBatchingSupported.js +8 -1
- package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
- package/dist/esm/hooks/useIsContractAddress.js +1 -1
- package/dist/esm/hooks/useIsContractAddress.js.map +1 -1
- package/dist/esm/hooks/useRouteExecution.js +10 -4
- package/dist/esm/hooks/useRouteExecution.js.map +1 -1
- package/dist/esm/hooks/useRouteRequiredAccountConnection.d.ts +10 -0
- package/dist/esm/hooks/useRouteRequiredAccountConnection.js +45 -0
- package/dist/esm/hooks/useRouteRequiredAccountConnection.js.map +1 -0
- package/dist/esm/hooks/useRoutes.d.ts +1 -1
- package/dist/esm/hooks/useRoutes.js +13 -4
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useTokenBalance.js +12 -3
- package/dist/esm/hooks/useTokenBalance.js.map +1 -1
- package/dist/esm/hooks/useTokenBalances.js +4 -1
- package/dist/esm/hooks/useTokenBalances.js.map +1 -1
- package/dist/esm/hooks/useTokenSearch.js +5 -2
- package/dist/esm/hooks/useTokenSearch.js.map +1 -1
- package/dist/esm/hooks/useTokens.js +3 -2
- package/dist/esm/hooks/useTokens.js.map +1 -1
- package/dist/esm/hooks/useTools.js +3 -2
- package/dist/esm/hooks/useTools.js.map +1 -1
- package/dist/esm/hooks/useTransactionDetails.js +9 -4
- package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
- package/dist/esm/hooks/useTransactionHistory.js +7 -1
- package/dist/esm/hooks/useTransactionHistory.js.map +1 -1
- package/dist/esm/i18n/en.json +6 -4
- package/dist/esm/pages/MainPage/ReviewButton.js +1 -1
- package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
- package/dist/esm/pages/TransactionPage/StartTransactionButton.js +1 -1
- package/dist/esm/pages/TransactionPage/StartTransactionButton.js.map +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +26 -43
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.d.ts +0 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js +4 -11
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.js.map +1 -1
- package/dist/esm/providers/QueryClientProvider.d.ts +2 -0
- package/dist/esm/providers/QueryClientProvider.js +9 -0
- package/dist/esm/providers/QueryClientProvider.js.map +1 -0
- package/dist/esm/providers/WalletProvider/SuiBaseProvider.js +3 -8
- package/dist/esm/providers/WalletProvider/SuiBaseProvider.js.map +1 -1
- package/dist/esm/stores/form/FormStore.js +5 -12
- package/dist/esm/stores/form/FormStore.js.map +1 -1
- package/dist/esm/stores/form/useFormRef.js +1 -7
- package/dist/esm/stores/form/useFormRef.js.map +1 -1
- package/dist/esm/types/widget.d.ts +6 -1
- package/dist/esm/utils/queries.d.ts +1 -0
- package/dist/esm/utils/queries.js +2 -0
- package/dist/esm/utils/queries.js.map +1 -0
- package/dist/esm/utils/timer.js +8 -1
- package/dist/esm/utils/timer.js.map +1 -1
- package/package.json +11 -11
- package/package.json.tmp +10 -10
- package/src/AppProvider.tsx +2 -3
- package/src/components/AppContainer.tsx +24 -23
- package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +15 -6
- package/src/components/BaseTransactionButton/types.ts +3 -0
- package/src/components/ChainSelect/ChainSelect.style.tsx +25 -9
- package/src/components/ChainSelect/ChainSelect.tsx +4 -1
- package/src/components/Messages/MissingRouteRequiredAccountMessage.tsx +44 -0
- package/src/components/Messages/WarningMessages.tsx +9 -0
- package/src/components/Messages/useMessageQueue.ts +17 -4
- package/src/components/RouteCard/RouteCard.tsx +3 -3
- package/src/components/TokenList/TokenListItem.tsx +2 -2
- package/src/config/version.ts +1 -1
- package/src/hooks/useAvailableChains.ts +4 -2
- package/src/hooks/useExplorer.ts +35 -36
- package/src/hooks/useFromTokenSufficiency.ts +4 -1
- package/src/hooks/useGasRecommendation.ts +9 -1
- package/src/hooks/useGasSufficiency.ts +76 -22
- package/src/hooks/useIsBatchingSupported.ts +9 -1
- package/src/hooks/useIsContractAddress.ts +1 -1
- package/src/hooks/useRouteExecution.ts +10 -4
- package/src/hooks/useRouteRequiredAccountConnection.ts +58 -0
- package/src/hooks/useRoutes.ts +13 -7
- package/src/hooks/useTokenBalance.ts +12 -3
- package/src/hooks/useTokenBalances.ts +4 -1
- package/src/hooks/useTokenSearch.ts +5 -2
- package/src/hooks/useTokens.ts +3 -2
- package/src/hooks/useTools.ts +3 -2
- package/src/hooks/useTransactionDetails.ts +13 -4
- package/src/hooks/useTransactionHistory.ts +7 -1
- package/src/i18n/en.json +6 -4
- package/src/pages/MainPage/ReviewButton.tsx +1 -0
- package/src/pages/TransactionPage/StartTransactionButton.tsx +1 -0
- package/src/pages/TransactionPage/StatusBottomSheet.style.tsx +4 -12
- package/src/pages/TransactionPage/StatusBottomSheet.tsx +47 -77
- package/src/providers/QueryClientProvider.tsx +20 -0
- package/src/providers/WalletProvider/SuiBaseProvider.tsx +3 -9
- package/src/stores/form/FormStore.tsx +4 -15
- package/src/stores/form/useFormRef.ts +1 -8
- package/src/types/widget.ts +10 -2
- package/src/utils/queries.ts +2 -0
- package/src/utils/timer.ts +8 -1
|
@@ -11,5 +11,4 @@ export type TransactionLinkProps = {
|
|
|
11
11
|
export declare const useExplorer: () => {
|
|
12
12
|
getTransactionLink: ({ txHash, txLink, chain, }: TransactionLinkProps) => string;
|
|
13
13
|
getAddressLink: (address: string, chain?: Chain | number) => string;
|
|
14
|
-
getTokenAddressLink: (address: string, chain?: Chain | number) => string;
|
|
15
14
|
};
|
|
@@ -6,48 +6,43 @@ const sanitiseBaseUrl = (baseUrl) => baseUrl.trim().replace(/\/+$/, '');
|
|
|
6
6
|
export const useExplorer = () => {
|
|
7
7
|
const { explorerUrls } = useWidgetConfig();
|
|
8
8
|
const { getChainById } = useAvailableChains();
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
?
|
|
12
|
-
: chain
|
|
13
|
-
|
|
9
|
+
const getExplorerConfig = (chain) => {
|
|
10
|
+
const resolvedChain = Number.isFinite(chain)
|
|
11
|
+
? getChainById(chain)
|
|
12
|
+
: chain;
|
|
13
|
+
const explorerUrl = (resolvedChain
|
|
14
|
+
? (explorerUrls?.[resolvedChain.id]?.[0] ??
|
|
15
|
+
resolvedChain.metamask.blockExplorerUrls[0])
|
|
16
|
+
: explorerUrls?.internal?.[0]) || lifiExplorerUrl;
|
|
17
|
+
const url = typeof explorerUrl === 'string' ? explorerUrl : explorerUrl.url;
|
|
18
|
+
const defaultTxPath = resolvedChain?.id === ChainId.SUI ? 'txblock' : 'tx';
|
|
19
|
+
const defaultAddressPath = resolvedChain?.id === ChainId.SUI ? 'coin' : 'address';
|
|
20
|
+
const txPath = typeof explorerUrl === 'string'
|
|
21
|
+
? defaultTxPath
|
|
22
|
+
: explorerUrl.txPath || defaultTxPath;
|
|
23
|
+
const addressPath = typeof explorerUrl === 'string'
|
|
24
|
+
? defaultAddressPath
|
|
25
|
+
: explorerUrl.addressPath || defaultAddressPath;
|
|
26
|
+
return {
|
|
27
|
+
url: sanitiseBaseUrl(url),
|
|
28
|
+
txPath,
|
|
29
|
+
addressPath,
|
|
30
|
+
};
|
|
14
31
|
};
|
|
15
|
-
const resolveChain = (chain) => Number.isFinite(chain) ? getChainById(chain) : chain;
|
|
16
32
|
const getTransactionLink = ({ txHash, txLink, chain, }) => {
|
|
17
33
|
if (!txHash && txLink) {
|
|
18
34
|
return txLink;
|
|
19
35
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
? sanitiseBaseUrl(explorerUrls?.internal[0])
|
|
23
|
-
: lifiExplorerUrl;
|
|
24
|
-
return `${baseUrl}/tx/${txHash}`;
|
|
25
|
-
}
|
|
26
|
-
const resolvedChain = resolveChain(chain);
|
|
27
|
-
const txPathSegment = resolvedChain?.id === ChainId.SUI ? 'txblock' : 'tx';
|
|
28
|
-
return `${resolvedChain ? getBaseUrl(resolvedChain) : lifiExplorerUrl}/${txPathSegment}/${txHash}`;
|
|
36
|
+
const config = getExplorerConfig(chain);
|
|
37
|
+
return `${config.url}/${config.txPath}/${txHash}`;
|
|
29
38
|
};
|
|
30
39
|
const getAddressLink = (address, chain) => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
? sanitiseBaseUrl(explorerUrls?.internal[0])
|
|
34
|
-
: lifiExplorerUrl;
|
|
35
|
-
return `${baseUrl}/address/${address}`;
|
|
36
|
-
}
|
|
37
|
-
const resolvedChain = resolveChain(chain);
|
|
38
|
-
return `${resolvedChain ? getBaseUrl(resolvedChain) : lifiExplorerUrl}/address/${address}`;
|
|
39
|
-
};
|
|
40
|
-
const getTokenAddressLink = (address, chain) => {
|
|
41
|
-
const link = getAddressLink(address, chain);
|
|
42
|
-
if (chain === ChainId.SUI || chain?.id === ChainId.SUI) {
|
|
43
|
-
return link.replace('address', 'coin');
|
|
44
|
-
}
|
|
45
|
-
return link;
|
|
40
|
+
const config = getExplorerConfig(chain);
|
|
41
|
+
return `${config.url}/${config.addressPath}/${address}`;
|
|
46
42
|
};
|
|
47
43
|
return {
|
|
48
44
|
getTransactionLink,
|
|
49
45
|
getAddressLink,
|
|
50
|
-
getTokenAddressLink,
|
|
51
46
|
};
|
|
52
47
|
};
|
|
53
48
|
//# sourceMappingURL=useExplorer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExplorer.js","sourceRoot":"","sources":["../../../src/hooks/useExplorer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAE/E,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAa/E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE7C,MAAM,
|
|
1
|
+
{"version":3,"file":"useExplorer.js","sourceRoot":"","sources":["../../../src/hooks/useExplorer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAE/E,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAa/E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE7C,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAE,EAAE;QACnD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1C,CAAC,CAAC,YAAY,CAAC,KAAe,CAAC;YAC/B,CAAC,CAAE,KAAe,CAAA;QAEpB,MAAM,WAAW,GACf,CAAC,aAAa;YACZ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAA;QAErD,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAA;QAE3E,MAAM,aAAa,GAAG,aAAa,EAAE,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1E,MAAM,kBAAkB,GACtB,aAAa,EAAE,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QACxD,MAAM,MAAM,GACV,OAAO,WAAW,KAAK,QAAQ;YAC7B,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,aAAa,CAAA;QACzC,MAAM,WAAW,GACf,OAAO,WAAW,KAAK,QAAQ;YAC7B,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,WAAW,CAAC,WAAW,IAAI,kBAAkB,CAAA;QAEnD,OAAO;YACL,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC;YACzB,MAAM;YACN,WAAW;SACZ,CAAA;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,EAC1B,MAAM,EACN,MAAM,EACN,KAAK,GACgB,EAAE,EAAE;QACzB,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACvC,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAA;IACnD,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,KAAsB,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACvC,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO,EAAE,CAAA;IACzD,CAAC,CAAA;IAED,OAAO;QACL,kBAAkB;QAClB,cAAc;KACf,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { useAccount } from '@lifi/wallet-management';
|
|
2
2
|
import { keepPreviousData, useQuery } from '@tanstack/react-query';
|
|
3
3
|
import { parseUnits } from 'viem';
|
|
4
|
+
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
4
5
|
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
5
6
|
import { isRouteDone } from '../stores/routes/utils.js';
|
|
7
|
+
import { getQueryKey } from '../utils/queries.js';
|
|
6
8
|
import { useTokenAddressBalance } from './useTokenAddressBalance.js';
|
|
7
9
|
import { getTokenBalancesWithRetry } from './useTokenBalance.js';
|
|
8
10
|
const refetchInterval = 30000;
|
|
9
11
|
export const useFromTokenSufficiency = (route) => {
|
|
10
12
|
const [fromChainId, fromTokenAddress, fromAmount] = useFieldValues('fromChain', 'fromToken', 'fromAmount');
|
|
13
|
+
const { keyPrefix } = useWidgetConfig();
|
|
11
14
|
let chainId = fromChainId;
|
|
12
15
|
let tokenAddress = fromTokenAddress;
|
|
13
16
|
if (route) {
|
|
@@ -18,7 +21,7 @@ export const useFromTokenSufficiency = (route) => {
|
|
|
18
21
|
const { account } = useAccount({ chainType: chain?.chainType });
|
|
19
22
|
const { data: insufficientFromToken, isLoading } = useQuery({
|
|
20
23
|
queryKey: [
|
|
21
|
-
'from-token-sufficiency-check',
|
|
24
|
+
getQueryKey('from-token-sufficiency-check', keyPrefix),
|
|
22
25
|
account.address,
|
|
23
26
|
chainId,
|
|
24
27
|
tokenAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFromTokenSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useFromTokenSufficiency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,MAAM,eAAe,GAAG,KAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAqB,EAAE,EAAE;IAC/D,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,CAAC,GAAG,cAAc,CAChE,WAAW,EACX,WAAW,EACX,YAAY,CACb,CAAA;
|
|
1
|
+
{"version":3,"file":"useFromTokenSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useFromTokenSufficiency.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import { getGasRecommendation } from '@lifi/sdk';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
4
|
+
import { getQueryKey } from '../utils/queries.js';
|
|
3
5
|
import { useAvailableChains } from './useAvailableChains.js';
|
|
4
6
|
const refetchInterval = 60000;
|
|
5
7
|
export const useGasRecommendation = (toChainId, fromChain, fromToken) => {
|
|
6
8
|
const { chains } = useAvailableChains();
|
|
9
|
+
const { keyPrefix } = useWidgetConfig();
|
|
7
10
|
const checkRecommendationLiFuel = Boolean(toChainId) &&
|
|
8
11
|
Boolean(fromChain) &&
|
|
9
12
|
Boolean(fromToken) &&
|
|
10
13
|
Boolean(chains?.length);
|
|
11
14
|
const checkRecommendationMaxButton = Boolean(toChainId) && !fromChain && !fromToken && Boolean(chains?.length);
|
|
12
15
|
return useQuery({
|
|
13
|
-
queryKey: [
|
|
16
|
+
queryKey: [
|
|
17
|
+
getQueryKey('gas-recommendation', keyPrefix),
|
|
18
|
+
toChainId,
|
|
19
|
+
fromChain,
|
|
20
|
+
fromToken,
|
|
21
|
+
],
|
|
14
22
|
queryFn: async ({ queryKey: [_, toChainId, fromChain, fromToken], signal, }) => {
|
|
15
23
|
if (!chains?.some((chain) => chain.id === toChainId)) {
|
|
16
24
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGasRecommendation.js","sourceRoot":"","sources":["../../../src/hooks/useGasRecommendation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,eAAe,GAAG,KAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAAmB,EACnB,SAAmB,EACnB,SAAkB,EAClB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAEvC,MAAM,yBAAyB,GAC7B,OAAO,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEzB,MAAM,4BAA4B,GAChC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE3E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,oBAAoB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"useGasRecommendation.js","sourceRoot":"","sources":["../../../src/hooks/useGasRecommendation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,eAAe,GAAG,KAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAAmB,EACnB,SAAmB,EACnB,SAAkB,EAClB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACvC,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAA;IAEvC,MAAM,yBAAyB,GAC7B,OAAO,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEzB,MAAM,4BAA4B,GAChC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE3E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE;YACR,WAAW,CAAC,oBAAoB,EAAE,SAAS,CAAC;YAC5C,SAAS;YACT,SAAS;YACT,SAAS;SACV;QACD,OAAO,EAAE,KAAK,EAAE,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAC9C,MAAM,GACP,EAAE,EAAE;YACH,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAClD;gBACE,OAAO,EAAE,SAAoB;gBAC7B,SAAS,EAAE,SAAoB;gBAC/B,SAAS,EAAE,SAAmB;aAC/B,EACD,EAAE,MAAM,EAAE,CACX,CAAA;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QACD,OAAO,EAAE,yBAAyB,IAAI,4BAA4B;QAClE,eAAe;QACf,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,37 +1,61 @@
|
|
|
1
|
-
import { isRelayerStep } from '@lifi/sdk';
|
|
1
|
+
import { ChainType, isRelayerStep } from '@lifi/sdk';
|
|
2
2
|
import { useAccount } from '@lifi/wallet-management';
|
|
3
3
|
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
6
|
+
import { getQueryKey } from '../utils/queries.js';
|
|
4
7
|
import { useAvailableChains } from './useAvailableChains.js';
|
|
5
8
|
import { useIsContractAddress } from './useIsContractAddress.js';
|
|
6
9
|
import { getTokenBalancesWithRetry } from './useTokenBalance.js';
|
|
7
10
|
const refetchInterval = 30000;
|
|
8
11
|
export const useGasSufficiency = (route) => {
|
|
9
12
|
const { getChainById } = useAvailableChains();
|
|
10
|
-
const { account } = useAccount({
|
|
11
|
-
chainType:
|
|
13
|
+
const { account: EVMAccount, accounts } = useAccount({
|
|
14
|
+
chainType: ChainType.EVM,
|
|
12
15
|
});
|
|
13
|
-
const {
|
|
16
|
+
const { keyPrefix } = useWidgetConfig();
|
|
17
|
+
const { relevantAccounts, relevantAccountsQueryKey } = useMemo(() => {
|
|
18
|
+
const chainTypes = route?.steps.reduce((acc, step) => {
|
|
19
|
+
const chainType = getChainById(step.action.fromChainId)?.chainType;
|
|
20
|
+
if (chainType) {
|
|
21
|
+
acc.add(chainType);
|
|
22
|
+
}
|
|
23
|
+
return acc;
|
|
24
|
+
}, new Set());
|
|
25
|
+
const relevantAccounts = accounts.filter((account) => account.isConnected &&
|
|
26
|
+
account.address &&
|
|
27
|
+
chainTypes?.has(account.chainType));
|
|
28
|
+
return {
|
|
29
|
+
relevantAccounts,
|
|
30
|
+
relevantAccountsQueryKey: relevantAccounts
|
|
31
|
+
.map((account) => account.address)
|
|
32
|
+
.join(','),
|
|
33
|
+
};
|
|
34
|
+
}, [accounts, route?.steps, getChainById]);
|
|
35
|
+
const { isContractAddress, isLoading: isContractAddressLoading } = useIsContractAddress(EVMAccount.address, route?.fromChainId, EVMAccount.chainType);
|
|
14
36
|
const { data: insufficientGas, isLoading } = useQuery({
|
|
15
37
|
queryKey: [
|
|
16
|
-
'gas-sufficiency-check',
|
|
17
|
-
|
|
38
|
+
getQueryKey('gas-sufficiency-check', keyPrefix),
|
|
39
|
+
relevantAccountsQueryKey,
|
|
18
40
|
route?.id,
|
|
19
41
|
isContractAddress,
|
|
20
42
|
],
|
|
21
|
-
queryFn: async (
|
|
43
|
+
queryFn: async () => {
|
|
22
44
|
if (!route) {
|
|
23
45
|
return;
|
|
24
46
|
}
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
47
|
+
// Filter out steps that are relayer steps or have primaryType 'Permit' or 'Order'
|
|
48
|
+
const filteredSteps = route.steps.filter((step) => !isRelayerStep(step) &&
|
|
49
|
+
!step.typedData?.some((t) => t.primaryType === 'Permit' || t.primaryType === 'Order'));
|
|
50
|
+
// If all steps are filtered out, we don't need to check for gas sufficiency
|
|
51
|
+
if (!filteredSteps.length) {
|
|
28
52
|
return;
|
|
29
53
|
}
|
|
30
54
|
// We assume that LI.Fuel protocol always refuels the destination chain
|
|
31
55
|
const hasRefuelStep = route.steps
|
|
32
56
|
.flatMap((step) => step.includedSteps)
|
|
33
57
|
.some((includedStep) => includedStep.tool === 'gasZip');
|
|
34
|
-
const gasCosts =
|
|
58
|
+
const gasCosts = filteredSteps
|
|
35
59
|
.filter((step) => !step.execution || step.execution.status !== 'DONE')
|
|
36
60
|
.reduce((groupedGasCosts, step) => {
|
|
37
61
|
// We need to avoid destination chain step sufficiency check if we have LI.Fuel protocol sub-step
|
|
@@ -44,6 +68,7 @@ export const useGasSufficiency = (route) => {
|
|
|
44
68
|
? groupedGasCosts[token.chainId].gasAmount + gasCostAmount
|
|
45
69
|
: gasCostAmount,
|
|
46
70
|
token,
|
|
71
|
+
chain: getChainById(token.chainId),
|
|
47
72
|
};
|
|
48
73
|
}
|
|
49
74
|
// Add fees paid in native tokens to gas sufficiency check (included: false)
|
|
@@ -56,6 +81,7 @@ export const useGasSufficiency = (route) => {
|
|
|
56
81
|
? groupedGasCosts[token.chainId].gasAmount + feeCostAmount
|
|
57
82
|
: feeCostAmount,
|
|
58
83
|
token,
|
|
84
|
+
chain: getChainById(token.chainId),
|
|
59
85
|
};
|
|
60
86
|
}
|
|
61
87
|
return groupedGasCosts;
|
|
@@ -66,12 +92,20 @@ export const useGasSufficiency = (route) => {
|
|
|
66
92
|
gasCosts[route.fromChainId].tokenAmount =
|
|
67
93
|
gasCosts[route.fromChainId]?.gasAmount + BigInt(route.fromAmount);
|
|
68
94
|
}
|
|
69
|
-
const
|
|
95
|
+
const gasCostsValues = Object.values(gasCosts);
|
|
96
|
+
const balanceChecks = await Promise.allSettled(relevantAccounts.map((account) => {
|
|
97
|
+
const relevantTokens = gasCostsValues
|
|
98
|
+
.filter((gasCost) => gasCost.chain?.chainType === account.chainType)
|
|
99
|
+
.map((item) => item.token);
|
|
100
|
+
return getTokenBalancesWithRetry(account.address, relevantTokens);
|
|
101
|
+
}));
|
|
102
|
+
const tokenBalances = balanceChecks
|
|
103
|
+
.filter((result) => result.status === 'fulfilled' && Boolean(result.value))
|
|
104
|
+
.flatMap((result) => result.value);
|
|
70
105
|
if (!tokenBalances?.length) {
|
|
71
106
|
return;
|
|
72
107
|
}
|
|
73
|
-
|
|
74
|
-
[route.fromChainId, route.toChainId].forEach((chainId) => {
|
|
108
|
+
Object.keys(gasCosts).forEach((chainId) => {
|
|
75
109
|
if (gasCosts[chainId]) {
|
|
76
110
|
const gasTokenBalance = tokenBalances?.find((t) => t.chainId === gasCosts[chainId].token.chainId &&
|
|
77
111
|
t.address === gasCosts[chainId].token.address)?.amount ?? 0n;
|
|
@@ -87,7 +121,7 @@ export const useGasSufficiency = (route) => {
|
|
|
87
121
|
...gasCosts[chainId],
|
|
88
122
|
insufficient,
|
|
89
123
|
insufficientAmount,
|
|
90
|
-
chain: insufficient ? getChainById(chainId) : undefined,
|
|
124
|
+
chain: insufficient ? getChainById(Number(chainId)) : undefined,
|
|
91
125
|
};
|
|
92
126
|
}
|
|
93
127
|
});
|
|
@@ -96,7 +130,7 @@ export const useGasSufficiency = (route) => {
|
|
|
96
130
|
},
|
|
97
131
|
enabled: Boolean(!isContractAddress &&
|
|
98
132
|
!isContractAddressLoading &&
|
|
99
|
-
|
|
133
|
+
relevantAccounts.length > 0 &&
|
|
100
134
|
route),
|
|
101
135
|
refetchInterval,
|
|
102
136
|
staleTime: refetchInterval,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGasSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useGasSufficiency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"useGasSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useGasSufficiency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAWhE,MAAM,eAAe,GAAG,KAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACzD,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAC7C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;QACnD,SAAS,EAAE,SAAS,CAAC,GAAG;KACzB,CAAC,CAAA;IACF,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAA;IAEvC,MAAM,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QAClE,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAA;YAClE,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACpB,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,IAAI,GAAG,EAAa,CAAC,CAAA;QAExB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACtC,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,OAAO;YACf,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CACrC,CAAA;QACD,OAAO;YACL,gBAAgB;YAChB,wBAAwB,EAAE,gBAAgB;iBACvC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;iBACjC,IAAI,CAAC,GAAG,CAAC;SACb,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1C,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAC9D,oBAAoB,CAClB,UAAU,CAAC,OAAO,EAClB,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,SAAS,CACrB,CAAA;IAEH,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACpD,QAAQ,EAAE;YACR,WAAW,CAAC,uBAAuB,EAAE,SAAS,CAAC;YAC/C,wBAAwB;YACxB,KAAK,EAAE,EAAE;YACT,iBAAiB;SACT;QACV,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAM;YACR,CAAC;YAED,kFAAkF;YAClF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAC/D,CACJ,CAAA;YAED,4EAA4E;YAC5E,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAM;YACR,CAAC;YAED,uEAAuE;YACvE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK;iBAC9B,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;iBACrC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YAEzD,MAAM,QAAQ,GAAG,aAAa;iBAC3B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC;iBACrE,MAAM,CACL,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE;gBACxB,iGAAiG;gBACjG,MAAM,eAAe,GACnB,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,SAAS,IAAI,aAAa,CAAA;gBAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CACjD,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAClB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACpD,EAAE,CACH,CAAA;oBACD,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;wBAC/B,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;4BACvC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,aAAa;4BAC1D,CAAC,CAAC,aAAa;wBACjB,KAAK;wBACL,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;qBACnC,CAAA;gBACH,CAAC;gBACD,4EAA4E;gBAC5E,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CACxD,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAC/B,CAAA;gBACD,IAAI,mBAAmB,EAAE,MAAM,EAAE,CAAC;oBAChC,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;oBACxC,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAC9C,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAClB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACpD,EAAE,CACH,CAAA;oBACD,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;wBAC/B,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;4BACvC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,aAAa;4BAC1D,CAAC,CAAC,aAAa;wBACjB,KAAK;wBACL,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;qBACnC,CAAA;gBACH,CAAC;gBACD,OAAO,eAAe,CAAA;YACxB,CAAC,EACD,EAAoC,CACrC,CAAA;YAEH,8CAA8C;YAC9C,qFAAqF;YACrF,IACE,KAAK,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,EACtE,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW;oBACrC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACrE,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAE9C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAC5C,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/B,MAAM,cAAc,GAAG,cAAc;qBAClC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;qBACnE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAE5B,OAAO,yBAAyB,CAAC,OAAO,CAAC,OAAQ,EAAE,cAAc,CAAC,CAAA;YACpE,CAAC,CAAC,CACH,CAAA;YAED,MAAM,aAAa,GAAG,aAAa;iBAChC,MAAM,CACL,CAAC,MAAM,EAAmD,EAAE,CAC1D,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACzD;iBACA,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAEpC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBAC3B,OAAM;YACR,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtB,MAAM,eAAe,GACnB,aAAa,EAAE,IAAI,CACjB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO;wBAC7C,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAChD,EAAE,MAAM,IAAI,EAAE,CAAA;oBACjB,MAAM,YAAY,GAChB,eAAe,IAAI,EAAE;wBACrB,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS;wBAC7C,eAAe,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;oBAEzD,MAAM,kBAAkB,GAAG,YAAY;wBACrC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW;4BAC7B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAY,GAAG,eAAe;4BAClD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,eAAe;wBACjD,CAAC,CAAC,SAAS,CAAA;oBAEb,QAAQ,CAAC,OAAO,CAAC,GAAG;wBAClB,GAAG,QAAQ,CAAC,OAAO,CAAC;wBACpB,YAAY;wBACZ,kBAAkB;wBAClB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;qBAChE,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAClD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAClC,CAAA;YAED,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,OAAO,EAAE,OAAO,CACd,CAAC,iBAAiB;YAChB,CAAC,wBAAwB;YACzB,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC3B,KAAK,CACR;QACD,eAAe;QACf,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAA;IAEF,OAAO;QACL,eAAe;QACf,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { ChainType, isBatchingSupported } from '@lifi/sdk';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
4
|
+
import { getQueryKey } from '../utils/queries.js';
|
|
3
5
|
export function useIsBatchingSupported(chain, address) {
|
|
6
|
+
const { keyPrefix } = useWidgetConfig();
|
|
4
7
|
const enabled = Boolean(chain && chain.chainType === ChainType.EVM && !!address);
|
|
5
8
|
const { data, isLoading } = useQuery({
|
|
6
|
-
queryKey: [
|
|
9
|
+
queryKey: [
|
|
10
|
+
getQueryKey('isBatchingSupported', keyPrefix),
|
|
11
|
+
chain?.id,
|
|
12
|
+
address,
|
|
13
|
+
],
|
|
7
14
|
queryFn: () => {
|
|
8
15
|
return isBatchingSupported({ chainId: chain.id });
|
|
9
16
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsBatchingSupported.js","sourceRoot":"","sources":["../../../src/hooks/useIsBatchingSupported.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"useIsBatchingSupported.js","sourceRoot":"","sources":["../../../src/hooks/useIsBatchingSupported.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,UAAU,sBAAsB,CACpC,KAAqB,EACrB,OAAgB;IAEhB,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAA;IAEvC,MAAM,OAAO,GAAG,OAAO,CACrB,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CACxD,CAAA;IACD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE;YACR,WAAW,CAAC,qBAAqB,EAAE,SAAS,CAAC;YAC7C,KAAK,EAAE,EAAE;YACT,OAAO;SACR;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,mBAAmB,CAAC,EAAE,OAAO,EAAE,KAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,OAAO;QACP,SAAS,EAAE,OAAS;QACpB,KAAK,EAAE,KAAK;KACb,CAAC,CAAA;IAEF,OAAO;QACL,mBAAmB,EAAE,IAAI;QACzB,0BAA0B,EAAE,OAAO,IAAI,SAAS;KACjD,CAAA;AACH,CAAC"}
|
|
@@ -7,7 +7,7 @@ export const useIsContractAddress = (address, chainId, chainType) => {
|
|
|
7
7
|
query: {
|
|
8
8
|
refetchInterval: 300000,
|
|
9
9
|
staleTime: 300000,
|
|
10
|
-
enabled:
|
|
10
|
+
enabled: chainType === ChainType.EVM && !!chainId && !!address,
|
|
11
11
|
},
|
|
12
12
|
});
|
|
13
13
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsContractAddress.js","sourceRoot":"","sources":["../../../src/hooks/useIsContractAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAgB,EAChB,OAAgB,EAChB,SAAqB,EAMrB,EAAE;IACF,MAAM,EACJ,IAAI,EAAE,YAAY,EAClB,SAAS,EACT,SAAS,GACV,GAAG,WAAW,CAAC;QACd,OAAO,EAAE,OAAkB;QAC3B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,eAAe,EAAE,MAAO;YACxB,SAAS,EAAE,MAAO;YAClB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useIsContractAddress.js","sourceRoot":"","sources":["../../../src/hooks/useIsContractAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAgB,EAChB,OAAgB,EAChB,SAAqB,EAMrB,EAAE;IACF,MAAM,EACJ,IAAI,EAAE,YAAY,EAClB,SAAS,EACT,SAAS,GACV,GAAG,WAAW,CAAC;QACd,OAAO,EAAE,OAAkB;QAC3B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,eAAe,EAAE,MAAO;YACxB,SAAS,EAAE,MAAO;YAClB,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO;SAC/D;KACF,CAAC,CAAA;IAEF,OAAO;QACL,iBAAiB,EAAE,CAAC,CAAC,YAAY;QACjC,YAAY;QACZ,SAAS;QACT,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -3,14 +3,17 @@ import { useAccount } from '@lifi/wallet-management';
|
|
|
3
3
|
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
|
4
4
|
import { useCallback, useEffect, useRef } from 'react';
|
|
5
5
|
import { shallow } from 'zustand/shallow';
|
|
6
|
+
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
6
7
|
import { useRouteExecutionStore, useRouteExecutionStoreContext, } from '../stores/routes/RouteExecutionStore.js';
|
|
7
8
|
import { getUpdatedProcess, isRouteActive, isRouteDone, isRouteFailed, } from '../stores/routes/utils.js';
|
|
8
9
|
import { WidgetEvent } from '../types/events.js';
|
|
10
|
+
import { getQueryKey } from '../utils/queries.js';
|
|
9
11
|
import { useWidgetEvents } from './useWidgetEvents.js';
|
|
10
12
|
export const useRouteExecution = ({ routeId, executeInBackground, onAcceptExchangeRateUpdate, }) => {
|
|
11
13
|
const queryClient = useQueryClient();
|
|
12
14
|
const { account } = useAccount();
|
|
13
15
|
const resumedAfterMount = useRef(false);
|
|
16
|
+
const { keyPrefix } = useWidgetConfig();
|
|
14
17
|
const emitter = useWidgetEvents();
|
|
15
18
|
const routeExecutionStoreContext = useRouteExecutionStoreContext();
|
|
16
19
|
const routeExecution = useRouteExecutionStore((state) => state.routes[routeId]);
|
|
@@ -43,16 +46,16 @@ export const useRouteExecution = ({ routeId, executeInBackground, onAcceptExchan
|
|
|
43
46
|
if (executionCompleted || executionFailed) {
|
|
44
47
|
const invalidateKeys = [
|
|
45
48
|
[
|
|
46
|
-
'token-balances',
|
|
49
|
+
getQueryKey('token-balances', keyPrefix),
|
|
47
50
|
clonedUpdatedRoute.fromAddress,
|
|
48
51
|
clonedUpdatedRoute.fromChainId,
|
|
49
52
|
],
|
|
50
53
|
[
|
|
51
|
-
'token-balances',
|
|
54
|
+
getQueryKey('token-balances', keyPrefix),
|
|
52
55
|
clonedUpdatedRoute.toAddress,
|
|
53
56
|
clonedUpdatedRoute.toChainId,
|
|
54
57
|
],
|
|
55
|
-
['transaction-history'],
|
|
58
|
+
[getQueryKey('transaction-history', keyPrefix)],
|
|
56
59
|
];
|
|
57
60
|
for (const key of invalidateKeys) {
|
|
58
61
|
queryClient.invalidateQueries({
|
|
@@ -80,7 +83,10 @@ export const useRouteExecution = ({ routeId, executeInBackground, onAcceptExchan
|
|
|
80
83
|
if (!routeExecution?.route) {
|
|
81
84
|
throw new Error('Execution route not found.');
|
|
82
85
|
}
|
|
83
|
-
queryClient.removeQueries({
|
|
86
|
+
queryClient.removeQueries({
|
|
87
|
+
queryKey: [getQueryKey('routes', keyPrefix)],
|
|
88
|
+
exact: false,
|
|
89
|
+
});
|
|
84
90
|
return executeRoute(routeExecution.route, {
|
|
85
91
|
updateRouteHook,
|
|
86
92
|
acceptExchangeRateUpdateHook,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteExecution.js","sourceRoot":"","sources":["../../../src/hooks/useRouteExecution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAWtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,mBAAmB,EACnB,0BAA0B,GACN,EAAE,EAAE;IACxB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAA;IACjC,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAA;IAClE,MAAM,cAAc,GAAG,sBAAsB,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CACjC,CAAA;IACD,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,GAAG,sBAAsB,CACrE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,EACrE,OAAO,CACR,CAAA;IAED,MAAM,eAAe,GAAG,CAAC,YAAmB,EAAE,EAAE;QAC9C,MAAM,cAAc,GAClB,0BAA0B,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QACD,MAAM,kBAAkB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QACxD,WAAW,CAAC,kBAAkB,CAAC,CAAA;QAC/B,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QAC3E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;gBAC9C,KAAK,EAAE,kBAAkB;gBACzB,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAA;QAC1D,MAAM,eAAe,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAA;QACzD,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAA;QACvE,CAAC;QACD,IAAI,eAAe,IAAI,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE;gBAC7C,KAAK,EAAE,kBAAkB;gBACzB,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,kBAAkB,IAAI,eAAe,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG;gBACrB;oBACE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"useRouteExecution.js","sourceRoot":"","sources":["../../../src/hooks/useRouteExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ExtendedChain, Route } from '@lifi/sdk';
|
|
2
|
+
export declare const useRouteRequiredAccountConnection: (route?: Route, chain?: ExtendedChain) => {
|
|
3
|
+
connected: boolean;
|
|
4
|
+
missingChain?: undefined;
|
|
5
|
+
missingAccountAddress?: undefined;
|
|
6
|
+
} | {
|
|
7
|
+
connected: boolean;
|
|
8
|
+
missingChain: ExtendedChain;
|
|
9
|
+
missingAccountAddress: string | undefined;
|
|
10
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useAccount } from '@lifi/wallet-management';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
4
|
+
import { useChain } from './useChain.js';
|
|
5
|
+
export const useRouteRequiredAccountConnection = (route, chain) => {
|
|
6
|
+
const { account, accounts } = useAccount({ chainType: chain?.chainType });
|
|
7
|
+
const [toAddress] = useFieldValues('toAddress');
|
|
8
|
+
const { getChainById } = useChain();
|
|
9
|
+
return useMemo(() => {
|
|
10
|
+
if (!route?.steps.length) {
|
|
11
|
+
return {
|
|
12
|
+
connected: account.isConnected,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const connectedChainTypes = new Map(accounts
|
|
16
|
+
.filter((account) => account.isConnected && account.address)
|
|
17
|
+
.map((account) => [account.chainType, account]));
|
|
18
|
+
if (!connectedChainTypes.size) {
|
|
19
|
+
return {
|
|
20
|
+
connected: false,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
for (const step of route.steps) {
|
|
24
|
+
const chain = getChainById(step.action.fromChainId);
|
|
25
|
+
if (!chain) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const connectedAccount = connectedChainTypes.get(chain.chainType);
|
|
29
|
+
const isToAddressSatisfied = toAddress
|
|
30
|
+
? connectedAccount?.address === step.action.fromAddress
|
|
31
|
+
: true;
|
|
32
|
+
if (!connectedAccount || !isToAddressSatisfied) {
|
|
33
|
+
return {
|
|
34
|
+
connected: false,
|
|
35
|
+
missingChain: chain,
|
|
36
|
+
missingAccountAddress: !isToAddressSatisfied
|
|
37
|
+
? step.action.fromAddress
|
|
38
|
+
: undefined,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { connected: true };
|
|
43
|
+
}, [account.isConnected, route, accounts, getChainById, toAddress]);
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=useRouteRequiredAccountConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouteRequiredAccountConnection.js","sourceRoot":"","sources":["../../../src/hooks/useRouteRequiredAccountConnection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,KAAa,EACb,KAAqB,EACrB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACzE,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAAA;IAEnC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO;gBACL,SAAS,EAAE,OAAO,CAAC,WAAW;aAC/B,CAAA;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,QAAQ;aACL,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;aAC3D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAClD,CAAA;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO;gBACL,SAAS,EAAE,KAAK;aACjB,CAAA;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YACnD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAQ;YACV,CAAC;YAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACjE,MAAM,oBAAoB,GAAG,SAAS;gBACpC,CAAC,CAAC,gBAAgB,EAAE,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW;gBACvD,CAAC,CAAC,IAAI,CAAA;YAER,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK;oBACnB,qBAAqB,EAAE,CAAC,oBAAoB;wBAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW;wBACzB,CAAC,CAAC,SAAS;iBACd,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IAC5B,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;AACrE,CAAC,CAAA"}
|
|
@@ -12,7 +12,7 @@ export declare const useRoutes: ({ observableRoute }?: RoutesProps) => {
|
|
|
12
12
|
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<Route[] | undefined, Error>>;
|
|
13
13
|
fromChain: import("@lifi/sdk").ExtendedChain | undefined;
|
|
14
14
|
toChain: import("@lifi/sdk").ExtendedChain | undefined;
|
|
15
|
-
queryKey: readonly [
|
|
15
|
+
queryKey: readonly [string, string | undefined, number, string, string, string | undefined, number, string, string, import("@lifi/sdk").ContractCall[] | undefined, string | undefined, boolean, string[], string[], string[] | undefined, string[] | undefined, "RECOMMENDED" | "FASTEST" | "CHEAPEST" | "SAFEST" | undefined, import("../index.js").WidgetSubvariant | undefined, boolean | undefined, boolean, string | undefined, number | undefined, boolean, string | undefined];
|
|
16
16
|
setReviewableRoute: (route: Route) => void;
|
|
17
17
|
};
|
|
18
18
|
export {};
|
|
@@ -10,6 +10,7 @@ import { useSettings } from '../stores/settings/useSettings.js';
|
|
|
10
10
|
import { defaultSlippage } from '../stores/settings/useSettingsStore.js';
|
|
11
11
|
import { WidgetEvent } from '../types/events.js';
|
|
12
12
|
import { getChainTypeFromAddress } from '../utils/chainType.js';
|
|
13
|
+
import { getQueryKey } from '../utils/queries.js';
|
|
13
14
|
import { useChain } from './useChain.js';
|
|
14
15
|
import { useDebouncedWatch } from './useDebouncedWatch.js';
|
|
15
16
|
import { useGasRefuel } from './useGasRefuel.js';
|
|
@@ -19,7 +20,7 @@ import { useToken } from './useToken.js';
|
|
|
19
20
|
import { useWidgetEvents } from './useWidgetEvents.js';
|
|
20
21
|
const refetchTime = 60000;
|
|
21
22
|
export const useRoutes = ({ observableRoute } = {}) => {
|
|
22
|
-
const { subvariant, sdkConfig, contractTool, bridges, exchanges, fee, feeConfig, useRelayerRoutes, } = useWidgetConfig();
|
|
23
|
+
const { subvariant, sdkConfig, contractTool, bridges, exchanges, fee, feeConfig, useRelayerRoutes, keyPrefix, } = useWidgetConfig();
|
|
23
24
|
const setExecutableRoute = useSetExecutableRoute();
|
|
24
25
|
const queryClient = useQueryClient();
|
|
25
26
|
const emitter = useWidgetEvents();
|
|
@@ -72,7 +73,7 @@ export const useRoutes = ({ observableRoute } = {}) => {
|
|
|
72
73
|
!isBatchingSupportedLoading;
|
|
73
74
|
// Some values should be strictly typed and isEnabled ensures that
|
|
74
75
|
const queryKey = [
|
|
75
|
-
'routes',
|
|
76
|
+
getQueryKey('routes', keyPrefix),
|
|
76
77
|
account.address,
|
|
77
78
|
fromChain?.id,
|
|
78
79
|
fromToken?.address,
|
|
@@ -265,7 +266,13 @@ export const useRoutes = ({ observableRoute } = {}) => {
|
|
|
265
266
|
// Update local tokens cache to keep priceUSD in sync
|
|
266
267
|
const { fromToken, toToken } = routesResult.routes[0];
|
|
267
268
|
[fromToken, toToken].forEach((token) => {
|
|
268
|
-
queryClient.setQueriesData({
|
|
269
|
+
queryClient.setQueriesData({
|
|
270
|
+
queryKey: [
|
|
271
|
+
getQueryKey('token-balances', keyPrefix),
|
|
272
|
+
fromAddress,
|
|
273
|
+
token.chainId,
|
|
274
|
+
],
|
|
275
|
+
}, (data) => {
|
|
269
276
|
if (data) {
|
|
270
277
|
const clonedData = [...data];
|
|
271
278
|
const index = clonedData.findIndex((dataToken) => dataToken.address === token.address);
|
|
@@ -319,7 +326,9 @@ export const useRoutes = ({ observableRoute } = {}) => {
|
|
|
319
326
|
});
|
|
320
327
|
const setReviewableRoute = (route) => {
|
|
321
328
|
const queryDataKey = queryKey.toSpliced(queryKey.length - 1, 1, route.id);
|
|
322
|
-
queryClient.setQueryData(queryDataKey,
|
|
329
|
+
queryClient.setQueryData(queryDataKey, [route], {
|
|
330
|
+
updatedAt: dataUpdatedAt || Date.now(),
|
|
331
|
+
});
|
|
323
332
|
setExecutableRoute(route);
|
|
324
333
|
};
|
|
325
334
|
return {
|