@lifi/widget 3.20.3 → 3.20.5
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 +17 -0
- package/dist/esm/components/Messages/useMessageQueue.js +4 -6
- package/dist/esm/components/Messages/useMessageQueue.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.d.ts +2 -1
- package/dist/esm/components/TokenList/TokenListItem.js +5 -1
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/components/TokenList/types.d.ts +3 -0
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useIsBatchingSupported.d.ts +1 -1
- package/dist/esm/hooks/useIsBatchingSupported.js +1 -1
- package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
- package/dist/esm/hooks/useProcessMessage.js +8 -0
- package/dist/esm/hooks/useProcessMessage.js.map +1 -1
- package/dist/esm/hooks/useToAddressRequirements.d.ts +5 -0
- package/dist/esm/hooks/useToAddressRequirements.js +24 -7
- package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
- package/dist/esm/i18n/en.json +4 -0
- package/package.json +5 -5
- package/package.json.tmp +4 -4
- package/src/components/Messages/useMessageQueue.ts +8 -8
- package/src/components/TokenList/TokenListItem.tsx +24 -4
- package/src/components/TokenList/types.ts +4 -0
- package/src/config/version.ts +1 -1
- package/src/hooks/useIsBatchingSupported.ts +3 -1
- package/src/hooks/useProcessMessage.ts +8 -0
- package/src/hooks/useToAddressRequirements.ts +39 -11
- package/src/i18n/en.json +4 -0
- package/dist/esm/hooks/useIsCompatibleDestinationAccount.d.ts +0 -8
- package/dist/esm/hooks/useIsCompatibleDestinationAccount.js +0 -37
- package/dist/esm/hooks/useIsCompatibleDestinationAccount.js.map +0 -1
- package/src/hooks/useIsCompatibleDestinationAccount.ts +0 -58
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [3.20.5](https://github.com/lifinance/widget/compare/v3.20.4...v3.20.5) (2025-05-12)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* add timeout for getCapabilities call ([#392](https://github.com/lifinance/widget/issues/392)) ([2b73bf6](https://github.com/lifinance/widget/commit/2b73bf67499f2443ff2da268b4dec8f8ca59c131))
|
|
11
|
+
* **avatar-icon:** add skeleton for token image ([#390](https://github.com/lifinance/widget/issues/390)) ([d9054ce](https://github.com/lifinance/widget/commit/d9054cecbdf10bf79741f706fbee33a4a53af4e7))
|
|
12
|
+
* should not require destination address for 7702 accounts ([#393](https://github.com/lifinance/widget/issues/393)) ([00faad2](https://github.com/lifinance/widget/commit/00faad276adbbbdc9c14d444d5e598cce553d52f))
|
|
13
|
+
|
|
14
|
+
### [3.20.4](https://github.com/lifinance/widget/compare/v3.20.3...v3.20.4) (2025-05-06)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* add new error messages for rate limits and third-party tools ([#391](https://github.com/lifinance/widget/issues/391)) ([da820be](https://github.com/lifinance/widget/commit/da820be7bcb25b58fb9c21c3baa42c6d4ea45bba))
|
|
20
|
+
* prevent unnecessary capabilities requests ([d0dca6b](https://github.com/lifinance/widget/commit/d0dca6b2ecf0292f4518bea8794e7d6042876b30))
|
|
21
|
+
|
|
5
22
|
### [3.20.3](https://github.com/lifinance/widget/compare/v3.20.2...v3.20.3) (2025-05-06)
|
|
6
23
|
|
|
7
24
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import { useFromTokenSufficiency } from '../../hooks/useFromTokenSufficiency.js';
|
|
3
3
|
import { useGasSufficiency } from '../../hooks/useGasSufficiency.js';
|
|
4
|
-
import { useIsCompatibleDestinationAccount } from '../../hooks/useIsCompatibleDestinationAccount.js';
|
|
5
4
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js';
|
|
6
5
|
export const useMessageQueue = (route, allowInteraction) => {
|
|
7
|
-
const { requiredToAddress, toAddress } = useToAddressRequirements(route);
|
|
8
|
-
const { isCompatibleDestinationAccount, isLoading: isCompatibleDestinationAccountLoading, } = useIsCompatibleDestinationAccount(route);
|
|
6
|
+
const { requiredToAddress, toAddress, accountNotDeployedAtDestination, isLoading: isToAddressRequirementsLoading, } = useToAddressRequirements(route);
|
|
9
7
|
const { insufficientFromToken, isLoading: isFromTokenSufficiencyLoading } = useFromTokenSufficiency(route);
|
|
10
8
|
const { insufficientGas, isLoading: isGasSufficiencyLoading } = useGasSufficiency(route);
|
|
11
9
|
const messageQueue = useMemo(() => {
|
|
@@ -23,7 +21,7 @@ export const useMessageQueue = (route, allowInteraction) => {
|
|
|
23
21
|
props: { insufficientGas },
|
|
24
22
|
});
|
|
25
23
|
}
|
|
26
|
-
if (
|
|
24
|
+
if (accountNotDeployedAtDestination && !allowInteraction) {
|
|
27
25
|
queue.push({
|
|
28
26
|
id: 'ACCOUNT_NOT_DEPLOYED',
|
|
29
27
|
priority: 3,
|
|
@@ -40,7 +38,7 @@ export const useMessageQueue = (route, allowInteraction) => {
|
|
|
40
38
|
allowInteraction,
|
|
41
39
|
insufficientFromToken,
|
|
42
40
|
insufficientGas,
|
|
43
|
-
|
|
41
|
+
accountNotDeployedAtDestination,
|
|
44
42
|
requiredToAddress,
|
|
45
43
|
toAddress,
|
|
46
44
|
]);
|
|
@@ -49,7 +47,7 @@ export const useMessageQueue = (route, allowInteraction) => {
|
|
|
49
47
|
hasMessages: messageQueue.length > 0,
|
|
50
48
|
isLoading: isGasSufficiencyLoading ||
|
|
51
49
|
isFromTokenSufficiencyLoading ||
|
|
52
|
-
|
|
50
|
+
isToAddressRequirementsLoading,
|
|
53
51
|
};
|
|
54
52
|
};
|
|
55
53
|
//# sourceMappingURL=useMessageQueue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageQueue.js","sourceRoot":"","sources":["../../../../src/components/Messages/useMessageQueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useMessageQueue.js","sourceRoot":"","sources":["../../../../src/components/Messages/useMessageQueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAQlF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,gBAA0B,EAAE,EAAE;IAC3E,MAAM,EACJ,iBAAiB,EACjB,SAAS,EACT,+BAA+B,EAC/B,SAAS,EAAE,8BAA8B,GAC1C,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,6BAA6B,EAAE,GACvE,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAC3D,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAE1B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,KAAK,GAAoB,EAAE,CAAA;QAEjC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,oBAAoB;gBACxB,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,kBAAkB;gBACtB,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,EAAE,eAAe,EAAE;aAC3B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,+BAA+B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,sBAAsB;gBAC1B,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,qBAAqB;gBACzB,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC,EAAE;QACD,gBAAgB;QAChB,qBAAqB;QACrB,eAAe;QACf,+BAA+B;QAC/B,iBAAiB;QACjB,SAAS;KACV,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,WAAW,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;QACpC,SAAS,EACP,uBAAuB;YACvB,6BAA6B;YAC7B,8BAA8B;KACjC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { TokenListItemButtonProps, TokenListItemProps } from './types.js';
|
|
1
|
+
import type { TokenListItemAvatarProps, TokenListItemButtonProps, TokenListItemProps } from './types.js';
|
|
2
2
|
export declare const TokenListItem: React.FC<TokenListItemProps>;
|
|
3
|
+
export declare const TokenListItemAvatar: React.FC<TokenListItemAvatarProps>;
|
|
3
4
|
export declare const TokenListItemButton: React.FC<TokenListItemButtonProps>;
|
|
4
5
|
export declare const TokenListItemSkeleton: () => import("react/jsx-runtime").JSX.Element;
|
|
5
6
|
export declare const TokenAmountSkeleton: React.FC;
|
|
@@ -19,6 +19,10 @@ export const TokenListItem = ({ onClick, size, start, token, chain, accountAddre
|
|
|
19
19
|
transform: `translateY(${start}px)`,
|
|
20
20
|
}, children: [startAdornment, _jsx(TokenListItemButton, { token: token, chain: chain, accountAddress: accountAddress, isBalanceLoading: isBalanceLoading, onClick: handleClick }), endAdornment] }));
|
|
21
21
|
};
|
|
22
|
+
export const TokenListItemAvatar = ({ token, }) => {
|
|
23
|
+
const [isImageLoading, setIsImageLoading] = useState(true);
|
|
24
|
+
return (_jsx(Avatar, { src: token.logoURI, alt: token.symbol, sx: (theme) => isImageLoading ? { bgcolor: theme.vars.palette.grey[300] } : null, onLoad: () => setIsImageLoading(false), children: token.symbol?.[0] }));
|
|
25
|
+
};
|
|
22
26
|
export const TokenListItemButton = ({ onClick, token, chain, accountAddress, isBalanceLoading, }) => {
|
|
23
27
|
const { t } = useTranslation();
|
|
24
28
|
const { getAddressLink } = useExplorer();
|
|
@@ -41,7 +45,7 @@ export const TokenListItemButton = ({ onClick, token, chain, accountAddress, isB
|
|
|
41
45
|
};
|
|
42
46
|
const tokenAmount = formatTokenAmount(token.amount, token.decimals);
|
|
43
47
|
const tokenPrice = formatTokenPrice(token.amount, token.priceUSD, token.decimals);
|
|
44
|
-
return (_jsxs(ListItemButton, { onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, dense: true, children: [_jsx(ListItemAvatar, { children: _jsx(
|
|
48
|
+
return (_jsxs(ListItemButton, { onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, dense: true, children: [_jsx(ListItemAvatar, { children: _jsx(TokenListItemAvatar, { token: token }) }), _jsx(ListItemText, { primary: token.symbol, slotProps: {
|
|
45
49
|
secondary: {
|
|
46
50
|
component: 'div',
|
|
47
51
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListItem.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,gBAAgB,MAAM,sCAAsC,CAAA;AACnE,OAAO,EACL,MAAM,EACN,GAAG,EACH,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"TokenListItem.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenListItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "3.20.
|
|
2
|
+
export declare const version = "3.20.5";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ExtendedChain } from '@lifi/sdk';
|
|
2
2
|
export declare function useIsBatchingSupported(chain?: ExtendedChain, address?: string): {
|
|
3
3
|
isBatchingSupported: boolean | undefined;
|
|
4
|
-
isBatchingSupportedLoading: boolean
|
|
4
|
+
isBatchingSupportedLoading: boolean;
|
|
5
5
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChainType, isBatchingSupported } from '@lifi/sdk';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
3
|
export function useIsBatchingSupported(chain, address) {
|
|
4
|
-
const enabled = chain && chain.chainType === ChainType.EVM && !!address;
|
|
4
|
+
const enabled = Boolean(chain && chain.chainType === ChainType.EVM && !!address);
|
|
5
5
|
const { data, isLoading } = useQuery({
|
|
6
6
|
queryKey: ['isBatchingSupported', chain?.id, address],
|
|
7
7
|
queryFn: () => {
|
|
@@ -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;AAEhD,MAAM,UAAU,sBAAsB,CACpC,KAAqB,EACrB,OAAgB;IAEhB,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,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;AAEhD,MAAM,UAAU,sBAAsB,CACpC,KAAqB,EACrB,OAAgB;IAEhB,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,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC;QACrD,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"}
|
|
@@ -135,6 +135,14 @@ export function getProcessMessage(t, getChainById, step, process, subvariant, su
|
|
|
135
135
|
title = t('error.title.walletMismatch');
|
|
136
136
|
message = t('error.message.walletChangedDuringExecution');
|
|
137
137
|
break;
|
|
138
|
+
case LiFiErrorCode.RateLimitExceeded:
|
|
139
|
+
title = t('error.title.rateLimitExceeded');
|
|
140
|
+
message = t('error.message.rateLimitExceeded');
|
|
141
|
+
break;
|
|
142
|
+
case LiFiErrorCode.ThirdPartyError:
|
|
143
|
+
title = t('error.title.thirdPartyError');
|
|
144
|
+
message = t('error.message.thirdPartyError');
|
|
145
|
+
break;
|
|
138
146
|
case LiFiErrorCode.TransactionUnderpriced:
|
|
139
147
|
title = t('error.title.transactionUnderpriced');
|
|
140
148
|
message = getDefaultErrorMessage();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProcessMessage.js","sourceRoot":"","sources":["../../../src/hooks/useProcessMessage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useProcessMessage.js","sourceRoot":"","sources":["../../../src/hooks/useProcessMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,10 @@ import type { RouteExtended } from '@lifi/sdk';
|
|
|
2
2
|
export declare const useToAddressRequirements: (route?: RouteExtended) => {
|
|
3
3
|
requiredToAddress: boolean;
|
|
4
4
|
requiredToChainType: import("@lifi/sdk").ChainType | undefined;
|
|
5
|
+
accountNotDeployedAtDestination: boolean;
|
|
5
6
|
toAddress: string | undefined;
|
|
7
|
+
isFromContractAddress: boolean;
|
|
8
|
+
isToContractAddress: boolean;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
isFetched: boolean;
|
|
6
11
|
};
|
|
@@ -3,32 +3,49 @@ import { useChain } from '../hooks/useChain.js';
|
|
|
3
3
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
4
4
|
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
5
5
|
import { RequiredUI } from '../types/widget.js';
|
|
6
|
+
import { isDelegationDesignatorCode } from '../utils/eip7702.js';
|
|
6
7
|
import { useIsContractAddress } from './useIsContractAddress.js';
|
|
7
8
|
export const useToAddressRequirements = (route) => {
|
|
8
9
|
const { requiredUI } = useWidgetConfig();
|
|
9
10
|
const [formFromChainId, formToChainId, formToAddress] = useFieldValues('fromChain', 'toChain', 'toAddress');
|
|
10
11
|
const fromChainId = route?.fromChainId ?? formFromChainId;
|
|
11
12
|
const toChainId = route?.toChainId ?? formToChainId;
|
|
12
|
-
const toAddress = route
|
|
13
|
-
? route.fromAddress !== route.toAddress
|
|
14
|
-
? route.toAddress
|
|
15
|
-
: formToAddress
|
|
16
|
-
: formToAddress;
|
|
17
13
|
const { chain: fromChain } = useChain(fromChainId);
|
|
18
14
|
const { chain: toChain } = useChain(toChainId);
|
|
19
15
|
const { account } = useAccount({
|
|
20
16
|
chainType: fromChain?.chainType,
|
|
21
17
|
});
|
|
22
|
-
const
|
|
18
|
+
const fromAddress = route?.fromAddress ?? account.address;
|
|
19
|
+
const toAddress = route
|
|
20
|
+
? route.fromAddress !== route.toAddress
|
|
21
|
+
? route.toAddress
|
|
22
|
+
: formToAddress
|
|
23
|
+
: formToAddress;
|
|
24
|
+
const { isContractAddress: isFromContractAddress, contractCode: fromContractCode, isLoading: isFromContractLoading, isFetched: isFromContractFetched, } = useIsContractAddress(account.address, fromChainId, account.chainType);
|
|
25
|
+
const { isContractAddress: isToContractAddress, isLoading: isToContractLoading, isFetched: isToContractFetched, } = useIsContractAddress(toAddress, toChainId, toChain?.chainType);
|
|
23
26
|
const isDifferentChainType = fromChain && toChain && fromChain.chainType !== toChain.chainType;
|
|
24
|
-
|
|
27
|
+
// We don't want to block transfers for EIP-7702 accounts since they are designed
|
|
28
|
+
// to maintain EOA-like properties while delegating execution.
|
|
29
|
+
const fromContractCodeHasDelegationIndicator = isDelegationDesignatorCode(fromContractCode);
|
|
30
|
+
const isCrossChainContractAddress = isFromContractAddress &&
|
|
31
|
+
fromChainId !== toChainId &&
|
|
32
|
+
!fromContractCodeHasDelegationIndicator;
|
|
25
33
|
const requiredToAddress = requiredUI?.includes(RequiredUI.ToAddress) ||
|
|
26
34
|
isDifferentChainType ||
|
|
27
35
|
isCrossChainContractAddress;
|
|
36
|
+
const accountNotDeployedAtDestination = isFromContractAddress &&
|
|
37
|
+
!fromContractCodeHasDelegationIndicator &&
|
|
38
|
+
!isToContractAddress &&
|
|
39
|
+
fromAddress?.toLowerCase() === toAddress?.toLowerCase();
|
|
28
40
|
return {
|
|
29
41
|
requiredToAddress,
|
|
30
42
|
requiredToChainType: toChain?.chainType,
|
|
43
|
+
accountNotDeployedAtDestination,
|
|
31
44
|
toAddress,
|
|
45
|
+
isFromContractAddress,
|
|
46
|
+
isToContractAddress,
|
|
47
|
+
isLoading: isFromContractLoading || isToContractLoading,
|
|
48
|
+
isFetched: isFromContractFetched && isToContractFetched,
|
|
32
49
|
};
|
|
33
50
|
};
|
|
34
51
|
//# sourceMappingURL=useToAddressRequirements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToAddressRequirements.js","sourceRoot":"","sources":["../../../src/hooks/useToAddressRequirements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAqB,EAAE,EAAE;IAChE,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,cAAc,CACpE,WAAW,EACX,SAAS,EACT,WAAW,CACZ,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,eAAe,CAAA;IACzD,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"useToAddressRequirements.js","sourceRoot":"","sources":["../../../src/hooks/useToAddressRequirements.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/i18n/en.json
CHANGED
|
@@ -146,9 +146,11 @@
|
|
|
146
146
|
"message": {
|
|
147
147
|
"allowanceRequired": "Transfer amount for {{tokenSymbol}} exceeds your current allowance. Please increase your allowance and try again.",
|
|
148
148
|
"insufficientFunds": "You don't have enough gas to cover the cost of the transaction.",
|
|
149
|
+
"rateLimitExceeded": "Too many requests have been made in a short period of time. Please wait a moment and try again or contact support if the issue persists.",
|
|
149
150
|
"remainInYourWallet": "{{amount, numberExt}} {{tokenSymbol}} on {{chainName}} remain in your wallet.",
|
|
150
151
|
"signatureRejected": "Your signature is required to complete the transaction. {{amount, numberExt}} {{tokenSymbol}} on {{chainName}} remain in your wallet.",
|
|
151
152
|
"slippageThreshold": "The slippage is larger than the defined threshold. Please request a new quote.",
|
|
153
|
+
"thirdPartyError": "We couldn't complete your request due to a problem with an external service. Please try again or contact support if the issue persists.",
|
|
152
154
|
"transactionCanceled": "Transaction was canceled.",
|
|
153
155
|
"transactionConflict": "Transaction couldn't be processed because it's conflicting with another pending transaction using the same funds. Please wait for the pending transaction to be confirmed or check your transaction history before trying again.",
|
|
154
156
|
"transactionExpired": "The block height has exceeded the maximum allowed limit or blockhash is no longer recent enough.",
|
|
@@ -168,8 +170,10 @@
|
|
|
168
170
|
"exchangeRateUpdateCanceled": "Exchange rate update canceled",
|
|
169
171
|
"gasLimitIsTooLow": "The gas limit is too low",
|
|
170
172
|
"insufficientFunds": "Insufficient funds",
|
|
173
|
+
"rateLimitExceeded": "Rate limit exceeded",
|
|
171
174
|
"signatureRejected": "Signature required",
|
|
172
175
|
"slippageNotMet": "Slippage conditions not met",
|
|
176
|
+
"thirdPartyError": "Third-party service unavailable",
|
|
173
177
|
"transactionCanceled": "Transaction canceled",
|
|
174
178
|
"transactionConflict": "Transaction conflict",
|
|
175
179
|
"transactionExpired": "Transaction expired",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.20.
|
|
3
|
+
"version": "3.20.5",
|
|
4
4
|
"description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -34,22 +34,22 @@
|
|
|
34
34
|
"@bigmi/core": "^0.1.1",
|
|
35
35
|
"@emotion/react": "^11.14.0",
|
|
36
36
|
"@emotion/styled": "^11.14.0",
|
|
37
|
-
"@lifi/sdk": "^3.6.
|
|
37
|
+
"@lifi/sdk": "^3.6.14",
|
|
38
38
|
"@mui/icons-material": "^7.1.0",
|
|
39
39
|
"@mui/material": "^7.1.0",
|
|
40
40
|
"@mui/system": "^7.1.0",
|
|
41
41
|
"@solana/wallet-adapter-base": "^0.9.24",
|
|
42
42
|
"@solana/web3.js": "^1.98.0",
|
|
43
43
|
"@tanstack/react-virtual": "^3.13.8",
|
|
44
|
-
"i18next": "^25.1.
|
|
44
|
+
"i18next": "^25.1.2",
|
|
45
45
|
"microdiff": "^1.5.0",
|
|
46
46
|
"mitt": "^3.0.1",
|
|
47
47
|
"react-i18next": "^15.5.1",
|
|
48
48
|
"react-intersection-observer": "^9.16.0",
|
|
49
49
|
"react-router-dom": "^6.30.0",
|
|
50
|
-
"viem": "^2.29.
|
|
50
|
+
"viem": "^2.29.2",
|
|
51
51
|
"zustand": "^5.0.4",
|
|
52
|
-
"@lifi/wallet-management": "^3.8.
|
|
52
|
+
"@lifi/wallet-management": "^3.8.2"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@bigmi/react": ">=0.1.0",
|
package/package.json.tmp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.20.
|
|
3
|
+
"version": "3.20.5",
|
|
4
4
|
"description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@bigmi/core": "^0.1.1",
|
|
54
54
|
"@emotion/react": "^11.14.0",
|
|
55
55
|
"@emotion/styled": "^11.14.0",
|
|
56
|
-
"@lifi/sdk": "^3.6.
|
|
56
|
+
"@lifi/sdk": "^3.6.14",
|
|
57
57
|
"@lifi/wallet-management": "workspace:^",
|
|
58
58
|
"@mui/icons-material": "^7.1.0",
|
|
59
59
|
"@mui/material": "^7.1.0",
|
|
@@ -61,13 +61,13 @@
|
|
|
61
61
|
"@solana/wallet-adapter-base": "^0.9.24",
|
|
62
62
|
"@solana/web3.js": "^1.98.0",
|
|
63
63
|
"@tanstack/react-virtual": "^3.13.8",
|
|
64
|
-
"i18next": "^25.1.
|
|
64
|
+
"i18next": "^25.1.2",
|
|
65
65
|
"microdiff": "^1.5.0",
|
|
66
66
|
"mitt": "^3.0.1",
|
|
67
67
|
"react-i18next": "^15.5.1",
|
|
68
68
|
"react-intersection-observer": "^9.16.0",
|
|
69
69
|
"react-router-dom": "^6.30.0",
|
|
70
|
-
"viem": "^2.29.
|
|
70
|
+
"viem": "^2.29.2",
|
|
71
71
|
"zustand": "^5.0.4"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
@@ -2,7 +2,6 @@ import type { Route } from '@lifi/sdk'
|
|
|
2
2
|
import { useMemo } from 'react'
|
|
3
3
|
import { useFromTokenSufficiency } from '../../hooks/useFromTokenSufficiency.js'
|
|
4
4
|
import { useGasSufficiency } from '../../hooks/useGasSufficiency.js'
|
|
5
|
-
import { useIsCompatibleDestinationAccount } from '../../hooks/useIsCompatibleDestinationAccount.js'
|
|
6
5
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'
|
|
7
6
|
|
|
8
7
|
interface QueuedMessage {
|
|
@@ -12,11 +11,12 @@ interface QueuedMessage {
|
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
15
|
-
const { requiredToAddress, toAddress } = useToAddressRequirements(route)
|
|
16
14
|
const {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
requiredToAddress,
|
|
16
|
+
toAddress,
|
|
17
|
+
accountNotDeployedAtDestination,
|
|
18
|
+
isLoading: isToAddressRequirementsLoading,
|
|
19
|
+
} = useToAddressRequirements(route)
|
|
20
20
|
const { insufficientFromToken, isLoading: isFromTokenSufficiencyLoading } =
|
|
21
21
|
useFromTokenSufficiency(route)
|
|
22
22
|
const { insufficientGas, isLoading: isGasSufficiencyLoading } =
|
|
@@ -40,7 +40,7 @@ export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
|
40
40
|
})
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
if (
|
|
43
|
+
if (accountNotDeployedAtDestination && !allowInteraction) {
|
|
44
44
|
queue.push({
|
|
45
45
|
id: 'ACCOUNT_NOT_DEPLOYED',
|
|
46
46
|
priority: 3,
|
|
@@ -59,7 +59,7 @@ export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
|
59
59
|
allowInteraction,
|
|
60
60
|
insufficientFromToken,
|
|
61
61
|
insufficientGas,
|
|
62
|
-
|
|
62
|
+
accountNotDeployedAtDestination,
|
|
63
63
|
requiredToAddress,
|
|
64
64
|
toAddress,
|
|
65
65
|
])
|
|
@@ -70,6 +70,6 @@ export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
|
70
70
|
isLoading:
|
|
71
71
|
isGasSufficiencyLoading ||
|
|
72
72
|
isFromTokenSufficiencyLoading ||
|
|
73
|
-
|
|
73
|
+
isToAddressRequirementsLoading,
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -18,7 +18,11 @@ import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js'
|
|
|
18
18
|
import { shortenAddress } from '../../utils/wallet.js'
|
|
19
19
|
import { ListItemButton } from '../ListItem/ListItemButton.js'
|
|
20
20
|
import { IconButton, ListItem } from './TokenList.style.js'
|
|
21
|
-
import type {
|
|
21
|
+
import type {
|
|
22
|
+
TokenListItemAvatarProps,
|
|
23
|
+
TokenListItemButtonProps,
|
|
24
|
+
TokenListItemProps,
|
|
25
|
+
} from './types.js'
|
|
22
26
|
|
|
23
27
|
export const TokenListItem: React.FC<TokenListItemProps> = ({
|
|
24
28
|
onClick,
|
|
@@ -55,6 +59,24 @@ export const TokenListItem: React.FC<TokenListItemProps> = ({
|
|
|
55
59
|
)
|
|
56
60
|
}
|
|
57
61
|
|
|
62
|
+
export const TokenListItemAvatar: React.FC<TokenListItemAvatarProps> = ({
|
|
63
|
+
token,
|
|
64
|
+
}) => {
|
|
65
|
+
const [isImageLoading, setIsImageLoading] = useState(true)
|
|
66
|
+
return (
|
|
67
|
+
<Avatar
|
|
68
|
+
src={token.logoURI}
|
|
69
|
+
alt={token.symbol}
|
|
70
|
+
sx={(theme) =>
|
|
71
|
+
isImageLoading ? { bgcolor: theme.vars.palette.grey[300] } : null
|
|
72
|
+
}
|
|
73
|
+
onLoad={() => setIsImageLoading(false)}
|
|
74
|
+
>
|
|
75
|
+
{token.symbol?.[0]}
|
|
76
|
+
</Avatar>
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
|
|
58
80
|
export const TokenListItemButton: React.FC<TokenListItemButtonProps> = ({
|
|
59
81
|
onClick,
|
|
60
82
|
token,
|
|
@@ -101,9 +123,7 @@ export const TokenListItemButton: React.FC<TokenListItemButtonProps> = ({
|
|
|
101
123
|
dense
|
|
102
124
|
>
|
|
103
125
|
<ListItemAvatar>
|
|
104
|
-
<
|
|
105
|
-
{token.symbol?.[0]}
|
|
106
|
-
</Avatar>
|
|
126
|
+
<TokenListItemAvatar token={token} />
|
|
107
127
|
</ListItemAvatar>
|
|
108
128
|
<ListItemText
|
|
109
129
|
primary={token.symbol}
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget'
|
|
2
|
-
export const version = '3.20.
|
|
2
|
+
export const version = '3.20.5'
|
|
@@ -6,7 +6,9 @@ export function useIsBatchingSupported(
|
|
|
6
6
|
chain?: ExtendedChain,
|
|
7
7
|
address?: string
|
|
8
8
|
) {
|
|
9
|
-
const enabled =
|
|
9
|
+
const enabled = Boolean(
|
|
10
|
+
chain && chain.chainType === ChainType.EVM && !!address
|
|
11
|
+
)
|
|
10
12
|
const { data, isLoading } = useQuery({
|
|
11
13
|
queryKey: ['isBatchingSupported', chain?.id, address],
|
|
12
14
|
queryFn: () => {
|
|
@@ -197,6 +197,14 @@ export function getProcessMessage(
|
|
|
197
197
|
title = t('error.title.walletMismatch')
|
|
198
198
|
message = t('error.message.walletChangedDuringExecution')
|
|
199
199
|
break
|
|
200
|
+
case LiFiErrorCode.RateLimitExceeded:
|
|
201
|
+
title = t('error.title.rateLimitExceeded')
|
|
202
|
+
message = t('error.message.rateLimitExceeded')
|
|
203
|
+
break
|
|
204
|
+
case LiFiErrorCode.ThirdPartyError:
|
|
205
|
+
title = t('error.title.thirdPartyError')
|
|
206
|
+
message = t('error.message.thirdPartyError')
|
|
207
|
+
break
|
|
200
208
|
case LiFiErrorCode.TransactionUnderpriced:
|
|
201
209
|
title = t('error.title.transactionUnderpriced')
|
|
202
210
|
message = getDefaultErrorMessage()
|
|
@@ -4,6 +4,7 @@ import { useChain } from '../hooks/useChain.js'
|
|
|
4
4
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
|
|
5
5
|
import { useFieldValues } from '../stores/form/useFieldValues.js'
|
|
6
6
|
import { RequiredUI } from '../types/widget.js'
|
|
7
|
+
import { isDelegationDesignatorCode } from '../utils/eip7702.js'
|
|
7
8
|
import { useIsContractAddress } from './useIsContractAddress.js'
|
|
8
9
|
|
|
9
10
|
export const useToAddressRequirements = (route?: RouteExtended) => {
|
|
@@ -16,37 +17,64 @@ export const useToAddressRequirements = (route?: RouteExtended) => {
|
|
|
16
17
|
|
|
17
18
|
const fromChainId = route?.fromChainId ?? formFromChainId
|
|
18
19
|
const toChainId = route?.toChainId ?? formToChainId
|
|
19
|
-
const toAddress = route
|
|
20
|
-
? route.fromAddress !== route.toAddress
|
|
21
|
-
? route.toAddress
|
|
22
|
-
: formToAddress
|
|
23
|
-
: formToAddress
|
|
24
20
|
|
|
25
21
|
const { chain: fromChain } = useChain(fromChainId)
|
|
26
22
|
const { chain: toChain } = useChain(toChainId)
|
|
27
23
|
const { account } = useAccount({
|
|
28
24
|
chainType: fromChain?.chainType,
|
|
29
25
|
})
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
|
|
27
|
+
const fromAddress = route?.fromAddress ?? account.address
|
|
28
|
+
const toAddress = route
|
|
29
|
+
? route.fromAddress !== route.toAddress
|
|
30
|
+
? route.toAddress
|
|
31
|
+
: formToAddress
|
|
32
|
+
: formToAddress
|
|
33
|
+
|
|
34
|
+
const {
|
|
35
|
+
isContractAddress: isFromContractAddress,
|
|
36
|
+
contractCode: fromContractCode,
|
|
37
|
+
isLoading: isFromContractLoading,
|
|
38
|
+
isFetched: isFromContractFetched,
|
|
39
|
+
} = useIsContractAddress(account.address, fromChainId, account.chainType)
|
|
40
|
+
const {
|
|
41
|
+
isContractAddress: isToContractAddress,
|
|
42
|
+
isLoading: isToContractLoading,
|
|
43
|
+
isFetched: isToContractFetched,
|
|
44
|
+
} = useIsContractAddress(toAddress, toChainId, toChain?.chainType)
|
|
35
45
|
|
|
36
46
|
const isDifferentChainType =
|
|
37
47
|
fromChain && toChain && fromChain.chainType !== toChain.chainType
|
|
38
48
|
|
|
49
|
+
// We don't want to block transfers for EIP-7702 accounts since they are designed
|
|
50
|
+
// to maintain EOA-like properties while delegating execution.
|
|
51
|
+
const fromContractCodeHasDelegationIndicator =
|
|
52
|
+
isDelegationDesignatorCode(fromContractCode)
|
|
53
|
+
|
|
39
54
|
const isCrossChainContractAddress =
|
|
40
|
-
isFromContractAddress &&
|
|
55
|
+
isFromContractAddress &&
|
|
56
|
+
fromChainId !== toChainId &&
|
|
57
|
+
!fromContractCodeHasDelegationIndicator
|
|
41
58
|
|
|
42
59
|
const requiredToAddress =
|
|
43
60
|
requiredUI?.includes(RequiredUI.ToAddress) ||
|
|
44
61
|
isDifferentChainType ||
|
|
45
62
|
isCrossChainContractAddress
|
|
46
63
|
|
|
64
|
+
const accountNotDeployedAtDestination =
|
|
65
|
+
isFromContractAddress &&
|
|
66
|
+
!fromContractCodeHasDelegationIndicator &&
|
|
67
|
+
!isToContractAddress &&
|
|
68
|
+
fromAddress?.toLowerCase() === toAddress?.toLowerCase()
|
|
69
|
+
|
|
47
70
|
return {
|
|
48
71
|
requiredToAddress,
|
|
49
72
|
requiredToChainType: toChain?.chainType,
|
|
73
|
+
accountNotDeployedAtDestination,
|
|
50
74
|
toAddress,
|
|
75
|
+
isFromContractAddress,
|
|
76
|
+
isToContractAddress,
|
|
77
|
+
isLoading: isFromContractLoading || isToContractLoading,
|
|
78
|
+
isFetched: isFromContractFetched && isToContractFetched,
|
|
51
79
|
}
|
|
52
80
|
}
|
package/src/i18n/en.json
CHANGED
|
@@ -146,9 +146,11 @@
|
|
|
146
146
|
"message": {
|
|
147
147
|
"allowanceRequired": "Transfer amount for {{tokenSymbol}} exceeds your current allowance. Please increase your allowance and try again.",
|
|
148
148
|
"insufficientFunds": "You don't have enough gas to cover the cost of the transaction.",
|
|
149
|
+
"rateLimitExceeded": "Too many requests have been made in a short period of time. Please wait a moment and try again or contact support if the issue persists.",
|
|
149
150
|
"remainInYourWallet": "{{amount, numberExt}} {{tokenSymbol}} on {{chainName}} remain in your wallet.",
|
|
150
151
|
"signatureRejected": "Your signature is required to complete the transaction. {{amount, numberExt}} {{tokenSymbol}} on {{chainName}} remain in your wallet.",
|
|
151
152
|
"slippageThreshold": "The slippage is larger than the defined threshold. Please request a new quote.",
|
|
153
|
+
"thirdPartyError": "We couldn't complete your request due to a problem with an external service. Please try again or contact support if the issue persists.",
|
|
152
154
|
"transactionCanceled": "Transaction was canceled.",
|
|
153
155
|
"transactionConflict": "Transaction couldn't be processed because it's conflicting with another pending transaction using the same funds. Please wait for the pending transaction to be confirmed or check your transaction history before trying again.",
|
|
154
156
|
"transactionExpired": "The block height has exceeded the maximum allowed limit or blockhash is no longer recent enough.",
|
|
@@ -168,8 +170,10 @@
|
|
|
168
170
|
"exchangeRateUpdateCanceled": "Exchange rate update canceled",
|
|
169
171
|
"gasLimitIsTooLow": "The gas limit is too low",
|
|
170
172
|
"insufficientFunds": "Insufficient funds",
|
|
173
|
+
"rateLimitExceeded": "Rate limit exceeded",
|
|
171
174
|
"signatureRejected": "Signature required",
|
|
172
175
|
"slippageNotMet": "Slippage conditions not met",
|
|
176
|
+
"thirdPartyError": "Third-party service unavailable",
|
|
173
177
|
"transactionCanceled": "Transaction canceled",
|
|
174
178
|
"transactionConflict": "Transaction conflict",
|
|
175
179
|
"transactionExpired": "Transaction expired",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { RouteExtended } from '@lifi/sdk';
|
|
2
|
-
export declare const useIsCompatibleDestinationAccount: (route?: RouteExtended) => {
|
|
3
|
-
isCompatibleDestinationAccount: boolean;
|
|
4
|
-
isFromContractAddress: boolean;
|
|
5
|
-
isToContractAddress: boolean;
|
|
6
|
-
isLoading: boolean;
|
|
7
|
-
isFetched: boolean;
|
|
8
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { useAccount } from '@lifi/wallet-management';
|
|
2
|
-
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
3
|
-
import { isDelegationDesignatorCode } from '../utils/eip7702.js';
|
|
4
|
-
import { useChain } from './useChain.js';
|
|
5
|
-
import { useIsContractAddress } from './useIsContractAddress.js';
|
|
6
|
-
export const useIsCompatibleDestinationAccount = (route) => {
|
|
7
|
-
const [formFromChainId, formToChainId, formToAddress] = useFieldValues('fromChain', 'toChain', 'toAddress');
|
|
8
|
-
const fromChainId = route?.fromChainId ?? formFromChainId;
|
|
9
|
-
const toChainId = route?.toChainId ?? formToChainId;
|
|
10
|
-
const { chain: fromChain } = useChain(fromChainId);
|
|
11
|
-
const { chain: toChain } = useChain(toChainId);
|
|
12
|
-
const { account } = useAccount({
|
|
13
|
-
chainType: fromChain?.chainType,
|
|
14
|
-
});
|
|
15
|
-
const fromAddress = route?.fromAddress ?? account.address;
|
|
16
|
-
const toAddress = route
|
|
17
|
-
? route.fromAddress !== route.toAddress
|
|
18
|
-
? route.toAddress
|
|
19
|
-
: formToAddress
|
|
20
|
-
: formToAddress;
|
|
21
|
-
const { isContractAddress: isFromContractAddress, contractCode: fromContractCode, isLoading: isFromContractLoading, isFetched: isFromContractFetched, } = useIsContractAddress(fromAddress, fromChainId, fromChain?.chainType);
|
|
22
|
-
const { isContractAddress: isToContractAddress, isLoading: isToContractLoading, isFetched: isToContractFetched, } = useIsContractAddress(toAddress, toChainId, toChain?.chainType);
|
|
23
|
-
const accountNotDeployedAtDestination = isFromContractAddress &&
|
|
24
|
-
// We don't want to block transfers for EIP-7702 accounts since they are designed
|
|
25
|
-
// to maintain EOA-like properties while delegating execution.
|
|
26
|
-
!isDelegationDesignatorCode(fromContractCode) &&
|
|
27
|
-
!isToContractAddress &&
|
|
28
|
-
fromAddress?.toLowerCase() === toAddress?.toLowerCase();
|
|
29
|
-
return {
|
|
30
|
-
isCompatibleDestinationAccount: !accountNotDeployedAtDestination,
|
|
31
|
-
isFromContractAddress,
|
|
32
|
-
isToContractAddress,
|
|
33
|
-
isLoading: isFromContractLoading || isToContractLoading,
|
|
34
|
-
isFetched: isFromContractFetched && isToContractFetched,
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=useIsCompatibleDestinationAccount.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsCompatibleDestinationAccount.js","sourceRoot":"","sources":["../../../src/hooks/useIsCompatibleDestinationAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAqB,EAAE,EAAE;IACzE,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,cAAc,CACpE,WAAW,EACX,SAAS,EACT,WAAW,CACZ,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,eAAe,CAAA;IACzD,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,IAAI,aAAa,CAAA;IAEnD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,SAAS,EAAE,SAAS;KAChC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAA;IACzD,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,SAAS;YACrC,CAAC,CAAC,KAAK,CAAC,SAAS;YACjB,CAAC,CAAC,aAAa;QACjB,CAAC,CAAC,aAAa,CAAA;IAEjB,MAAM,EACJ,iBAAiB,EAAE,qBAAqB,EACxC,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,qBAAqB,EAChC,SAAS,EAAE,qBAAqB,GACjC,GAAG,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IACxE,MAAM,EACJ,iBAAiB,EAAE,mBAAmB,EACtC,SAAS,EAAE,mBAAmB,EAC9B,SAAS,EAAE,mBAAmB,GAC/B,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;IAElE,MAAM,+BAA+B,GACnC,qBAAqB;QACrB,iFAAiF;QACjF,8DAA8D;QAC9D,CAAC,0BAA0B,CAAC,gBAAgB,CAAC;QAC7C,CAAC,mBAAmB;QACpB,WAAW,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,WAAW,EAAE,CAAA;IAEzD,OAAO;QACL,8BAA8B,EAAE,CAAC,+BAA+B;QAChE,qBAAqB;QACrB,mBAAmB;QACnB,SAAS,EAAE,qBAAqB,IAAI,mBAAmB;QACvD,SAAS,EAAE,qBAAqB,IAAI,mBAAmB;KACxD,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { RouteExtended } from '@lifi/sdk'
|
|
2
|
-
import { useAccount } from '@lifi/wallet-management'
|
|
3
|
-
import { useFieldValues } from '../stores/form/useFieldValues.js'
|
|
4
|
-
import { isDelegationDesignatorCode } from '../utils/eip7702.js'
|
|
5
|
-
import { useChain } from './useChain.js'
|
|
6
|
-
import { useIsContractAddress } from './useIsContractAddress.js'
|
|
7
|
-
|
|
8
|
-
export const useIsCompatibleDestinationAccount = (route?: RouteExtended) => {
|
|
9
|
-
const [formFromChainId, formToChainId, formToAddress] = useFieldValues(
|
|
10
|
-
'fromChain',
|
|
11
|
-
'toChain',
|
|
12
|
-
'toAddress'
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
const fromChainId = route?.fromChainId ?? formFromChainId
|
|
16
|
-
const toChainId = route?.toChainId ?? formToChainId
|
|
17
|
-
|
|
18
|
-
const { chain: fromChain } = useChain(fromChainId)
|
|
19
|
-
const { chain: toChain } = useChain(toChainId)
|
|
20
|
-
const { account } = useAccount({
|
|
21
|
-
chainType: fromChain?.chainType,
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
const fromAddress = route?.fromAddress ?? account.address
|
|
25
|
-
const toAddress = route
|
|
26
|
-
? route.fromAddress !== route.toAddress
|
|
27
|
-
? route.toAddress
|
|
28
|
-
: formToAddress
|
|
29
|
-
: formToAddress
|
|
30
|
-
|
|
31
|
-
const {
|
|
32
|
-
isContractAddress: isFromContractAddress,
|
|
33
|
-
contractCode: fromContractCode,
|
|
34
|
-
isLoading: isFromContractLoading,
|
|
35
|
-
isFetched: isFromContractFetched,
|
|
36
|
-
} = useIsContractAddress(fromAddress, fromChainId, fromChain?.chainType)
|
|
37
|
-
const {
|
|
38
|
-
isContractAddress: isToContractAddress,
|
|
39
|
-
isLoading: isToContractLoading,
|
|
40
|
-
isFetched: isToContractFetched,
|
|
41
|
-
} = useIsContractAddress(toAddress, toChainId, toChain?.chainType)
|
|
42
|
-
|
|
43
|
-
const accountNotDeployedAtDestination =
|
|
44
|
-
isFromContractAddress &&
|
|
45
|
-
// We don't want to block transfers for EIP-7702 accounts since they are designed
|
|
46
|
-
// to maintain EOA-like properties while delegating execution.
|
|
47
|
-
!isDelegationDesignatorCode(fromContractCode) &&
|
|
48
|
-
!isToContractAddress &&
|
|
49
|
-
fromAddress?.toLowerCase() === toAddress?.toLowerCase()
|
|
50
|
-
|
|
51
|
-
return {
|
|
52
|
-
isCompatibleDestinationAccount: !accountNotDeployedAtDestination,
|
|
53
|
-
isFromContractAddress,
|
|
54
|
-
isToContractAddress,
|
|
55
|
-
isLoading: isFromContractLoading || isToContractLoading,
|
|
56
|
-
isFetched: isFromContractFetched && isToContractFetched,
|
|
57
|
-
}
|
|
58
|
-
}
|