@lifi/widget 3.11.0 → 3.12.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 +12 -0
- package/dist/esm/components/Routes/RoutesExpanded.js +1 -0
- package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
- package/dist/esm/components/TokenList/TokenList.d.ts +1 -1
- package/dist/esm/components/TokenList/TokenList.js +13 -0
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useGasRefuel.js +9 -7
- package/dist/esm/hooks/useGasRefuel.js.map +1 -1
- package/dist/esm/hooks/useRouteExecution.js +26 -2
- package/dist/esm/hooks/useRouteExecution.js.map +1 -1
- package/dist/esm/hooks/useTokenBalance.d.ts +1 -3
- package/dist/esm/hooks/useTokenBalance.js +8 -15
- package/dist/esm/hooks/useTokenBalance.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pages/MainPage/ReviewButton.js +7 -0
- package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
- package/dist/esm/pages/RoutesPage/RoutesPage.js +7 -0
- package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +10 -13
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/dist/esm/types/events.d.ts +24 -11
- package/dist/esm/types/events.js +2 -0
- package/dist/esm/types/events.js.map +1 -1
- package/package.json +5 -5
- package/src/components/Routes/RoutesExpanded.tsx +1 -0
- package/src/components/TokenList/TokenList.tsx +14 -1
- package/src/config/version.ts +1 -1
- package/src/hooks/useGasRefuel.ts +18 -11
- package/src/hooks/useRouteExecution.ts +29 -3
- package/src/hooks/useTokenBalance.ts +9 -23
- package/src/index.ts +1 -0
- package/src/pages/MainPage/ReviewButton.tsx +7 -0
- package/src/pages/RoutesPage/RoutesPage.tsx +7 -0
- package/src/pages/TransactionPage/StatusBottomSheet.tsx +12 -15
- package/src/types/events.ts +20 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
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.12.0](https://github.com/lifinance/widget/compare/v3.11.0...v3.12.0) (2024-11-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add TokenSearch and RouteSelected events ([#324](https://github.com/lifinance/widget/issues/324)) ([9165dd0](https://github.com/lifinance/widget/commit/9165dd03987fb8494671c1a46c9c16dd61e18d1f))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* improve token balance and transaction history invalidation ([#325](https://github.com/lifinance/widget/issues/325)) ([5bcf6dc](https://github.com/lifinance/widget/commit/5bcf6dca1b1e2068925db3f6039a2d5fcc6f5ccc))
|
|
16
|
+
|
|
5
17
|
## [3.11.0](https://github.com/lifinance/widget/compare/v3.10.0...v3.11.0) (2024-11-01)
|
|
6
18
|
|
|
7
19
|
|
|
@@ -49,6 +49,7 @@ export const RoutesExpandedElement = () => {
|
|
|
49
49
|
navigate(navigationRoutes.transactionExecution, {
|
|
50
50
|
state: { routeId: route.id },
|
|
51
51
|
});
|
|
52
|
+
emitter.emit(WidgetEvent.RouteSelected, { route, routes: routes });
|
|
52
53
|
};
|
|
53
54
|
const onExit = () => {
|
|
54
55
|
// Clean routes cache on exit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoutesExpanded.js","sourceRoot":"","sources":["../../../../src/components/Routes/RoutesExpanded.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RoutesExpanded.js","sourceRoot":"","sources":["../../../../src/components/Routes/RoutesExpanded.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useAccount } from '@lifi/wallet-management';
|
|
3
3
|
import { Box } from '@mui/material';
|
|
4
|
+
import { useEffect } from 'react';
|
|
4
5
|
import { useChain } from '../../hooks/useChain.js';
|
|
5
6
|
import { useDebouncedWatch } from '../../hooks/useDebouncedWatch.js';
|
|
6
7
|
import { useTokenBalances } from '../../hooks/useTokenBalances.js';
|
|
7
8
|
import { useTokenSearch } from '../../hooks/useTokenSearch.js';
|
|
9
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
8
10
|
import { FormKeyHelper } from '../../stores/form/types.js';
|
|
9
11
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
12
|
+
import { WidgetEvent } from '../../types/events.js';
|
|
10
13
|
import { TokenNotFound } from './TokenNotFound.js';
|
|
11
14
|
import { VirtualizedTokenList } from './VirtualizedTokenList.js';
|
|
12
15
|
import { useTokenSelect } from './useTokenSelect.js';
|
|
13
16
|
import { filteredTokensComparator } from './utils.js';
|
|
14
17
|
export const TokenList = ({ formType, parentRef, height, onClick, }) => {
|
|
18
|
+
const emitter = useWidgetEvents();
|
|
15
19
|
const [selectedChainId] = useFieldValues(FormKeyHelper.getChainKey(formType));
|
|
16
20
|
const [tokenSearchFilter] = useDebouncedWatch(320, 'tokenSearchFilter');
|
|
17
21
|
const { chain: selectedChain, isLoading: isSelectedChainLoading } = useChain(selectedChainId);
|
|
@@ -45,6 +49,15 @@ export const TokenList = ({ formType, parentRef, height, onClick, }) => {
|
|
|
45
49
|
const handleTokenClick = useTokenSelect(formType, onClick);
|
|
46
50
|
const showCategories = Boolean(featuredTokens?.length || popularTokens?.length) &&
|
|
47
51
|
!tokenSearchFilter;
|
|
52
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: Should fire only when search filter changes
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (normalizedSearchFilter) {
|
|
55
|
+
emitter.emit(WidgetEvent.TokenSearch, {
|
|
56
|
+
value: normalizedSearchFilter,
|
|
57
|
+
tokens,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}, [normalizedSearchFilter, emitter]);
|
|
48
61
|
return (_jsxs(Box, { ref: parentRef, style: { height, overflow: 'auto' }, children: [!tokens.length && !isLoading ? (_jsx(TokenNotFound, { formType: formType })) : null, _jsx(VirtualizedTokenList, { account: account, tokens: tokens, scrollElementRef: parentRef, chainId: selectedChainId, chain: selectedChain, isLoading: isLoading, isBalanceLoading: isBalanceLoading, showCategories: showCategories, onClick: handleTokenClick })] }));
|
|
49
62
|
};
|
|
50
63
|
//# sourceMappingURL=TokenList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"TokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenList.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.
|
|
2
|
+
export declare const version = "3.12.0";
|
|
@@ -10,15 +10,17 @@ export const useGasRefuel = () => {
|
|
|
10
10
|
const [fromChainId, fromTokenAddress, toChainId, toAddress] = useFieldValues('fromChain', 'fromToken', 'toChain', 'toAddress');
|
|
11
11
|
const toChain = getChainById(toChainId);
|
|
12
12
|
const fromChain = getChainById(fromChainId);
|
|
13
|
-
const {
|
|
14
|
-
const
|
|
13
|
+
const { accounts } = useAccount();
|
|
14
|
+
const fromAccount = accounts.find((account) => account.chainType === fromChain?.chainType);
|
|
15
|
+
const toAccount = accounts.find((account) => account.chainType === toChain?.chainType);
|
|
16
|
+
const isFromContractAddress = useIsContractAddress(fromAccount?.address, fromChainId, fromAccount?.chainType);
|
|
15
17
|
const isToContractAddress = useIsContractAddress(toAddress, toChainId, toChain?.chainType);
|
|
16
|
-
const { token:
|
|
18
|
+
const { token: destinationNativeToken } = useTokenBalance(toAddress || toAccount?.address, toChainId ? toChain?.nativeToken : undefined);
|
|
17
19
|
const { data: gasRecommendation, isLoading } = useGasRecommendation(toChainId, fromChainId, fromTokenAddress);
|
|
18
20
|
// When we bridge between ecosystems we need to be sure toAddress is set
|
|
19
21
|
const isChainTypeSatisfied = fromChain?.chainType !== toChain?.chainType ? Boolean(toAddress) : true;
|
|
20
22
|
const isToAddressSatisfied = isFromContractAddress
|
|
21
|
-
? toAddress && toAddress !==
|
|
23
|
+
? toAddress && toAddress !== fromAccount?.address && !isToContractAddress
|
|
22
24
|
: true;
|
|
23
25
|
const enabled = useMemo(() => {
|
|
24
26
|
if (
|
|
@@ -27,12 +29,12 @@ export const useGasRefuel = () => {
|
|
|
27
29
|
fromChainId === toChainId ||
|
|
28
30
|
!gasRecommendation?.available ||
|
|
29
31
|
!gasRecommendation?.recommended ||
|
|
30
|
-
!
|
|
32
|
+
!destinationNativeToken ||
|
|
31
33
|
!isChainTypeSatisfied ||
|
|
32
34
|
!isToAddressSatisfied) {
|
|
33
35
|
return false;
|
|
34
36
|
}
|
|
35
|
-
const tokenBalance =
|
|
37
|
+
const tokenBalance = destinationNativeToken.amount ?? 0n;
|
|
36
38
|
// Check if the user balance < 50% of the recommended amount
|
|
37
39
|
const recommendedAmount = BigInt(gasRecommendation.recommended.amount) / 2n;
|
|
38
40
|
const insufficientGas = tokenBalance < recommendedAmount;
|
|
@@ -42,7 +44,7 @@ export const useGasRefuel = () => {
|
|
|
42
44
|
gasRecommendation,
|
|
43
45
|
isChainTypeSatisfied,
|
|
44
46
|
isToAddressSatisfied,
|
|
45
|
-
|
|
47
|
+
destinationNativeToken,
|
|
46
48
|
toChainId,
|
|
47
49
|
]);
|
|
48
50
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGasRefuel.js","sourceRoot":"","sources":["../../../src/hooks/useGasRefuel.ts"],"names":[],"mappings":"AAAA,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,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAE7C,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,cAAc,CAC1E,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,CACZ,CAAA;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;IAE3C,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useGasRefuel.js","sourceRoot":"","sources":["../../../src/hooks/useGasRefuel.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,15 +29,39 @@ export const useRouteExecution = ({ routeId, executeInBackground, onAcceptExchan
|
|
|
29
29
|
process,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
const executionCompleted = isRouteDone(clonedUpdatedRoute);
|
|
33
|
+
const executionFailed = isRouteFailed(clonedUpdatedRoute);
|
|
34
|
+
if (executionCompleted) {
|
|
33
35
|
emitter.emit(WidgetEvent.RouteExecutionCompleted, clonedUpdatedRoute);
|
|
34
36
|
}
|
|
35
|
-
if (
|
|
37
|
+
if (executionFailed && process) {
|
|
36
38
|
emitter.emit(WidgetEvent.RouteExecutionFailed, {
|
|
37
39
|
route: clonedUpdatedRoute,
|
|
38
40
|
process,
|
|
39
41
|
});
|
|
40
42
|
}
|
|
43
|
+
if (executionCompleted || executionFailed) {
|
|
44
|
+
const invalidateKeys = [
|
|
45
|
+
[
|
|
46
|
+
'token-balances',
|
|
47
|
+
clonedUpdatedRoute.fromAddress,
|
|
48
|
+
clonedUpdatedRoute.fromChainId,
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'token-balances',
|
|
52
|
+
clonedUpdatedRoute.toAddress,
|
|
53
|
+
clonedUpdatedRoute.toChainId,
|
|
54
|
+
],
|
|
55
|
+
['transaction-history'],
|
|
56
|
+
];
|
|
57
|
+
for (const key of invalidateKeys) {
|
|
58
|
+
queryClient.invalidateQueries({
|
|
59
|
+
queryKey: key,
|
|
60
|
+
exact: false,
|
|
61
|
+
refetchType: 'all',
|
|
62
|
+
}, { cancelRefetch: false });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
41
65
|
// biome-ignore lint/suspicious/noConsole: logs route information
|
|
42
66
|
console.log('Route updated.', clonedUpdatedRoute);
|
|
43
67
|
};
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"useRouteExecution.js","sourceRoot":"","sources":["../../../src/hooks/useRouteExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/sdk';
|
|
2
1
|
import { type Token, type TokenAmount } from '@lifi/sdk';
|
|
3
|
-
export declare const useTokenBalance: (accountAddress?: string, token?: Token
|
|
2
|
+
export declare const useTokenBalance: (accountAddress?: string, token?: Token) => {
|
|
4
3
|
token: TokenAmount | undefined;
|
|
5
4
|
isLoading: boolean;
|
|
6
5
|
refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenAmount, Error>>;
|
|
7
6
|
refetchNewBalance: () => void;
|
|
8
|
-
refetchAllBalances: () => void;
|
|
9
7
|
getTokenBalancesWithRetry: (accountAddress: string, tokens: Token[], depth?: number) => Promise<TokenAmount[] | undefined>;
|
|
10
8
|
};
|
|
11
9
|
export declare const getTokenBalancesWithRetry: (accountAddress: string, tokens: Token[], depth?: number) => Promise<TokenAmount[] | undefined>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { getTokenBalances } from '@lifi/sdk';
|
|
2
|
-
import { useAccount } from '@lifi/wallet-management';
|
|
3
2
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
4
3
|
import { useCallback, useMemo } from 'react';
|
|
5
4
|
const defaultRefetchInterval = 30000;
|
|
6
|
-
export const useTokenBalance = (accountAddress, token
|
|
7
|
-
const { account } = useAccount(
|
|
8
|
-
// When we provide chain we want to be sure that account address used is from the same ecosystem as token
|
|
9
|
-
chain ? { chainType: chain.chainType } : undefined);
|
|
5
|
+
export const useTokenBalance = (accountAddress, token) => {
|
|
10
6
|
const queryClient = useQueryClient();
|
|
11
|
-
const
|
|
12
|
-
|
|
7
|
+
const tokenBalanceQueryKey = useMemo(() => [
|
|
8
|
+
'token-balance',
|
|
9
|
+
accountAddress,
|
|
10
|
+
token?.chainId,
|
|
11
|
+
token?.address,
|
|
12
|
+
], [token?.address, token?.chainId, accountAddress]);
|
|
13
13
|
const { data, isLoading, refetch } = useQuery({
|
|
14
14
|
queryKey: tokenBalanceQueryKey,
|
|
15
15
|
queryFn: async ({ queryKey: [, accountAddress, tokenChainId, tokenAddress], }) => {
|
|
@@ -41,16 +41,10 @@ export const useTokenBalance = (accountAddress, token, chain) => {
|
|
|
41
41
|
amount: tokenAmount,
|
|
42
42
|
};
|
|
43
43
|
},
|
|
44
|
-
enabled: Boolean(
|
|
44
|
+
enabled: Boolean(accountAddress && token),
|
|
45
45
|
refetchInterval: defaultRefetchInterval,
|
|
46
46
|
staleTime: defaultRefetchInterval,
|
|
47
47
|
});
|
|
48
|
-
const refetchAllBalances = () => {
|
|
49
|
-
queryClient.refetchQueries({
|
|
50
|
-
queryKey: ['token-balances', accountAddress, token?.chainId],
|
|
51
|
-
exact: false,
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
48
|
const refetchNewBalance = useCallback(() => {
|
|
55
49
|
queryClient.setQueryDefaults(tokenBalanceQueryKey, {
|
|
56
50
|
refetchInterval: 250,
|
|
@@ -62,7 +56,6 @@ export const useTokenBalance = (accountAddress, token, chain) => {
|
|
|
62
56
|
isLoading,
|
|
63
57
|
refetch,
|
|
64
58
|
refetchNewBalance,
|
|
65
|
-
refetchAllBalances,
|
|
66
59
|
getTokenBalancesWithRetry,
|
|
67
60
|
};
|
|
68
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenBalance.js","sourceRoot":"","sources":["../../../src/hooks/useTokenBalance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTokenBalance.js","sourceRoot":"","sources":["../../../src/hooks/useTokenBalance.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -21,4 +21,5 @@ export { windows95Theme } from './themes/windows95.js';
|
|
|
21
21
|
export * from './types/events.js';
|
|
22
22
|
export * from './types/widget.js';
|
|
23
23
|
export { getPriceImpact } from './utils/getPriceImpact.js';
|
|
24
|
+
export { navigationRoutes } from './utils/navigationRoutes.js';
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5C,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1E,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5C,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1E,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA"}
|
|
@@ -4,13 +4,16 @@ import { useNavigate } from 'react-router-dom';
|
|
|
4
4
|
import { BaseTransactionButton } from '../../components/BaseTransactionButton/BaseTransactionButton.js';
|
|
5
5
|
import { useRoutes } from '../../hooks/useRoutes.js';
|
|
6
6
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js';
|
|
7
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
7
8
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
|
|
8
9
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
9
10
|
import { useSplitSubvariantStore } from '../../stores/settings/useSplitSubvariantStore.js';
|
|
11
|
+
import { WidgetEvent } from '../../types/events.js';
|
|
10
12
|
import { navigationRoutes } from '../../utils/navigationRoutes.js';
|
|
11
13
|
export const ReviewButton = () => {
|
|
12
14
|
const { t } = useTranslation();
|
|
13
15
|
const navigate = useNavigate();
|
|
16
|
+
const emitter = useWidgetEvents();
|
|
14
17
|
const { subvariant, subvariantOptions } = useWidgetConfig();
|
|
15
18
|
const splitState = useSplitSubvariantStore((state) => state.state);
|
|
16
19
|
const [toAddress] = useFieldValues('toAddress');
|
|
@@ -23,6 +26,10 @@ export const ReviewButton = () => {
|
|
|
23
26
|
navigate(navigationRoutes.transactionExecution, {
|
|
24
27
|
state: { routeId: currentRoute.id },
|
|
25
28
|
});
|
|
29
|
+
emitter.emit(WidgetEvent.RouteSelected, {
|
|
30
|
+
route: currentRoute,
|
|
31
|
+
routes: routes,
|
|
32
|
+
});
|
|
26
33
|
}
|
|
27
34
|
};
|
|
28
35
|
const getButtonText = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewButton.js","sourceRoot":"","sources":["../../../../src/pages/MainPage/ReviewButton.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReviewButton.js","sourceRoot":"","sources":["../../../../src/pages/MainPage/ReviewButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,14 @@ import { useHeader } from '../../hooks/useHeader.js';
|
|
|
10
10
|
import { useNavigateBack } from '../../hooks/useNavigateBack.js';
|
|
11
11
|
import { useRoutes } from '../../hooks/useRoutes.js';
|
|
12
12
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js';
|
|
13
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
13
14
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
15
|
+
import { WidgetEvent } from '../../types/events.js';
|
|
14
16
|
import { navigationRoutes } from '../../utils/navigationRoutes.js';
|
|
15
17
|
import { Stack } from './RoutesPage.style.js';
|
|
16
18
|
export const RoutesPage = () => {
|
|
17
19
|
const { navigate } = useNavigateBack();
|
|
20
|
+
const emitter = useWidgetEvents();
|
|
18
21
|
const { routes, isLoading, isFetching, dataUpdatedAt, refetchTime, fromChain, refetch, setReviewableRoute, } = useRoutes();
|
|
19
22
|
const { account } = useAccount({ chainType: fromChain?.chainType });
|
|
20
23
|
const [toAddress] = useFieldValues('toAddress');
|
|
@@ -27,6 +30,10 @@ export const RoutesPage = () => {
|
|
|
27
30
|
navigate(navigationRoutes.transactionExecution, {
|
|
28
31
|
state: { routeId: route.id },
|
|
29
32
|
});
|
|
33
|
+
emitter.emit(WidgetEvent.RouteSelected, {
|
|
34
|
+
route,
|
|
35
|
+
routes: routes,
|
|
36
|
+
});
|
|
30
37
|
};
|
|
31
38
|
const routeNotFound = !routes?.length && !isLoading && !isFetching;
|
|
32
39
|
const toAddressUnsatisfied = routes?.[0] && requiredToAddress && !toAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoutesPage.js","sourceRoot":"","sources":["../../../../src/pages/RoutesPage/RoutesPage.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RoutesPage.js","sourceRoot":"","sources":["../../../../src/pages/RoutesPage/RoutesPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Done, ErrorRounded, InfoRounded, WarningRounded, } from '@mui/icons-material';
|
|
3
3
|
import { Box, Button, Skeleton, Typography } from '@mui/material';
|
|
4
|
-
import { useQueryClient } from '@tanstack/react-query';
|
|
5
4
|
import { useCallback, useEffect, useRef } from 'react';
|
|
6
5
|
import { useTranslation } from 'react-i18next';
|
|
7
6
|
import { BottomSheet } from '../../components/BottomSheet/BottomSheet.js';
|
|
@@ -38,7 +37,6 @@ export const StatusBottomSheet = ({ status, route, }) => {
|
|
|
38
37
|
export const StatusBottomSheetContent = ({ status, route, onClose }) => {
|
|
39
38
|
const { t } = useTranslation();
|
|
40
39
|
const { navigateBack, navigate } = useNavigateBack();
|
|
41
|
-
const queryClient = useQueryClient();
|
|
42
40
|
const { setFieldValue } = useFieldActions();
|
|
43
41
|
const { subvariant, subvariantOptions, contractSecondaryComponent, contractCompactComponent, } = useWidgetConfig();
|
|
44
42
|
const { getChainById } = useAvailableChains();
|
|
@@ -50,20 +48,16 @@ export const StatusBottomSheetContent = ({ status, route, onClose }) => {
|
|
|
50
48
|
route.steps.at(-1)?.estimate.toAmount ??
|
|
51
49
|
route.toAmount),
|
|
52
50
|
};
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const invalidateQueries = () => {
|
|
56
|
-
refetchAllBalances();
|
|
51
|
+
const { token, refetch, refetchNewBalance } = useTokenBalance(route.toAddress, toToken);
|
|
52
|
+
const cleanFields = () => {
|
|
57
53
|
setFieldValue('fromAmount', '');
|
|
58
54
|
setFieldValue('toAmount', '');
|
|
59
|
-
queryClient.invalidateQueries({ queryKey: ['transaction-history'] });
|
|
60
55
|
};
|
|
61
56
|
const handleDone = () => {
|
|
62
|
-
|
|
57
|
+
cleanFields();
|
|
63
58
|
navigateBack();
|
|
64
59
|
};
|
|
65
60
|
const handlePartialDone = () => {
|
|
66
|
-
invalidateQueries();
|
|
67
61
|
if (toToken.chainId !== route.toToken.chainId &&
|
|
68
62
|
toToken.address !== route.toToken.address) {
|
|
69
63
|
setFieldValue('fromAmount', formatTokenAmount(toToken.amount, toToken.decimals), { isTouched: true });
|
|
@@ -76,10 +70,13 @@ export const StatusBottomSheetContent = ({ status, route, onClose }) => {
|
|
|
76
70
|
isTouched: true,
|
|
77
71
|
});
|
|
78
72
|
}
|
|
73
|
+
else {
|
|
74
|
+
cleanFields();
|
|
75
|
+
}
|
|
79
76
|
navigateBack();
|
|
80
77
|
};
|
|
81
78
|
const handleClose = () => {
|
|
82
|
-
|
|
79
|
+
cleanFields();
|
|
83
80
|
onClose();
|
|
84
81
|
};
|
|
85
82
|
const handleSeeDetails = () => {
|
|
@@ -108,7 +105,7 @@ export const StatusBottomSheetContent = ({ status, route, onClose }) => {
|
|
|
108
105
|
primaryMessage = t('success.message.exchangeSuccessful', {
|
|
109
106
|
amount: formatTokenAmount(token.amount, token.decimals),
|
|
110
107
|
tokenSymbol: token.symbol,
|
|
111
|
-
chainName:
|
|
108
|
+
chainName: getChainById(toToken.chainId)?.name,
|
|
112
109
|
walletAddress: shortenAddress(route.toAddress),
|
|
113
110
|
});
|
|
114
111
|
}
|
|
@@ -125,7 +122,7 @@ export const StatusBottomSheetContent = ({ status, route, onClose }) => {
|
|
|
125
122
|
secondaryMessage = t('success.message.exchangeSuccessful', {
|
|
126
123
|
amount: formatTokenAmount(token.amount, token.decimals),
|
|
127
124
|
tokenSymbol: token.symbol,
|
|
128
|
-
chainName:
|
|
125
|
+
chainName: getChainById(toToken.chainId)?.name,
|
|
129
126
|
walletAddress: shortenAddress(route.toAddress),
|
|
130
127
|
});
|
|
131
128
|
}
|
|
@@ -142,7 +139,7 @@ export const StatusBottomSheetContent = ({ status, route, onClose }) => {
|
|
|
142
139
|
secondaryMessage = t('success.message.exchangeSuccessful', {
|
|
143
140
|
amount: formatTokenAmount(token.amount, token.decimals),
|
|
144
141
|
tokenSymbol: token.symbol,
|
|
145
|
-
chainName:
|
|
142
|
+
chainName: getChainById(toToken.chainId)?.name,
|
|
146
143
|
walletAddress: shortenAddress(route.toAddress),
|
|
147
144
|
});
|
|
148
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBottomSheet.js","sourceRoot":"","sources":["../../../../src/pages/TransactionPage/StatusBottomSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"StatusBottomSheet.js","sourceRoot":"","sources":["../../../../src/pages/TransactionPage/StatusBottomSheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@ import type { ChainId, ChainType, Process, Route } from '@lifi/sdk';
|
|
|
2
2
|
import type { DefaultValues } from '../stores/form/types.js';
|
|
3
3
|
import type { SettingsProps } from '../stores/settings/types.js';
|
|
4
4
|
import type { NavigationRouteType } from '../utils/navigationRoutes.js';
|
|
5
|
+
import type { TokenAmount } from './token.js';
|
|
5
6
|
export declare enum WidgetEvent {
|
|
6
7
|
RouteExecutionStarted = "routeExecutionStarted",
|
|
7
8
|
RouteExecutionUpdated = "routeExecutionUpdated",
|
|
8
9
|
RouteExecutionCompleted = "routeExecutionCompleted",
|
|
9
10
|
RouteExecutionFailed = "routeExecutionFailed",
|
|
10
11
|
RouteHighValueLoss = "routeHighValueLoss",
|
|
12
|
+
RouteSelected = "routeSelected",
|
|
11
13
|
AvailableRoutes = "availableRoutes",
|
|
12
14
|
ContactSupport = "contactSupport",
|
|
13
15
|
SourceChainTokenSelected = "sourceChainTokenSelected",
|
|
@@ -24,7 +26,8 @@ export declare enum WidgetEvent {
|
|
|
24
26
|
WidgetExpanded = "widgetExpanded",
|
|
25
27
|
PageEntered = "pageEntered",
|
|
26
28
|
FormFieldChanged = "formFieldChanged",
|
|
27
|
-
SettingUpdated = "settingUpdated"
|
|
29
|
+
SettingUpdated = "settingUpdated",
|
|
30
|
+
TokenSearch = "tokenSearch"
|
|
28
31
|
}
|
|
29
32
|
export type WidgetEvents = {
|
|
30
33
|
routeExecutionStarted: Route;
|
|
@@ -32,6 +35,7 @@ export type WidgetEvents = {
|
|
|
32
35
|
routeExecutionCompleted: Route;
|
|
33
36
|
routeExecutionFailed: RouteExecutionUpdate;
|
|
34
37
|
routeHighValueLoss: RouteHighValueLossUpdate;
|
|
38
|
+
routeSelected: RouteSelected;
|
|
35
39
|
availableRoutes: Route[];
|
|
36
40
|
contactSupport: ContactSupport;
|
|
37
41
|
sourceChainTokenSelected: ChainTokenSelected;
|
|
@@ -43,30 +47,39 @@ export type WidgetEvents = {
|
|
|
43
47
|
widgetExpanded: boolean;
|
|
44
48
|
pageEntered: NavigationRouteType;
|
|
45
49
|
settingUpdated: SettingUpdated;
|
|
50
|
+
tokenSearch: TokenSearch;
|
|
46
51
|
};
|
|
47
|
-
export
|
|
52
|
+
export type ContactSupport = {
|
|
48
53
|
supportId?: string;
|
|
49
|
-
}
|
|
50
|
-
export
|
|
54
|
+
};
|
|
55
|
+
export type RouteHighValueLossUpdate = {
|
|
51
56
|
fromAmountUSD: number;
|
|
52
57
|
toAmountUSD: number;
|
|
53
58
|
gasCostUSD?: number;
|
|
54
59
|
feeCostUSD?: number;
|
|
55
60
|
valueLoss: number;
|
|
56
|
-
}
|
|
57
|
-
export
|
|
61
|
+
};
|
|
62
|
+
export type RouteExecutionUpdate = {
|
|
58
63
|
route: Route;
|
|
59
64
|
process: Process;
|
|
60
|
-
}
|
|
61
|
-
export
|
|
65
|
+
};
|
|
66
|
+
export type RouteSelected = {
|
|
67
|
+
route: Route;
|
|
68
|
+
routes: Route[];
|
|
69
|
+
};
|
|
70
|
+
export type TokenSearch = {
|
|
71
|
+
value: string;
|
|
72
|
+
tokens: TokenAmount[];
|
|
73
|
+
};
|
|
74
|
+
export type ChainTokenSelected = {
|
|
62
75
|
chainId: ChainId;
|
|
63
76
|
tokenAddress: string;
|
|
64
|
-
}
|
|
65
|
-
export
|
|
77
|
+
};
|
|
78
|
+
export type WalletConnected = {
|
|
66
79
|
address?: string;
|
|
67
80
|
chainId?: number;
|
|
68
81
|
chainType?: ChainType;
|
|
69
|
-
}
|
|
82
|
+
};
|
|
70
83
|
export type FormFieldChanged = {
|
|
71
84
|
[K in keyof DefaultValues]: {
|
|
72
85
|
fieldName: K;
|
package/dist/esm/types/events.js
CHANGED
|
@@ -5,6 +5,7 @@ export var WidgetEvent;
|
|
|
5
5
|
WidgetEvent["RouteExecutionCompleted"] = "routeExecutionCompleted";
|
|
6
6
|
WidgetEvent["RouteExecutionFailed"] = "routeExecutionFailed";
|
|
7
7
|
WidgetEvent["RouteHighValueLoss"] = "routeHighValueLoss";
|
|
8
|
+
WidgetEvent["RouteSelected"] = "routeSelected";
|
|
8
9
|
WidgetEvent["AvailableRoutes"] = "availableRoutes";
|
|
9
10
|
WidgetEvent["ContactSupport"] = "contactSupport";
|
|
10
11
|
WidgetEvent["SourceChainTokenSelected"] = "sourceChainTokenSelected";
|
|
@@ -22,5 +23,6 @@ export var WidgetEvent;
|
|
|
22
23
|
WidgetEvent["PageEntered"] = "pageEntered";
|
|
23
24
|
WidgetEvent["FormFieldChanged"] = "formFieldChanged";
|
|
24
25
|
WidgetEvent["SettingUpdated"] = "settingUpdated";
|
|
26
|
+
WidgetEvent["TokenSearch"] = "tokenSearch";
|
|
25
27
|
})(WidgetEvent || (WidgetEvent = {}));
|
|
26
28
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/types/events.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,WAyBX;AAzBD,WAAY,WAAW;IACrB,8DAA+C,CAAA;IAC/C,8DAA+C,CAAA;IAC/C,kEAAmD,CAAA;IACnD,4DAA6C,CAAA;IAC7C,wDAAyC,CAAA;IACzC,8CAA+B,CAAA;IAC/B,kDAAmC,CAAA;IACnC,gDAAiC,CAAA;IACjC,oEAAqD,CAAA;IACrD,8EAA+D,CAAA;IAC/D,0DAA2C,CAAA;IAC3C;;OAEG;IACH,4EAA6D,CAAA;IAC7D;;OAEG;IACH,kDAAmC,CAAA;IACnC,gDAAiC,CAAA;IACjC,0CAA2B,CAAA;IAC3B,oDAAqC,CAAA;IACrC,gDAAiC,CAAA;IACjC,0CAA2B,CAAA;AAC7B,CAAC,EAzBW,WAAW,KAAX,WAAW,QAyBtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.12.0",
|
|
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",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@solana/wallet-adapter-base": "^0.9.23",
|
|
44
44
|
"@solana/wallet-adapter-react": "^0.15.35",
|
|
45
45
|
"@solana/web3.js": "^1.95.4",
|
|
46
|
-
"@tanstack/react-query": "^5.59.
|
|
46
|
+
"@tanstack/react-query": "^5.59.20",
|
|
47
47
|
"@tanstack/react-virtual": "^3.10.8",
|
|
48
48
|
"i18next": "^23.16.4",
|
|
49
49
|
"microdiff": "^1.4.0",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"react-i18next": "^15.1.0",
|
|
54
54
|
"react-intersection-observer": "^9.13.1",
|
|
55
55
|
"react-router-dom": "^6.27.0",
|
|
56
|
-
"viem": "^2.21.
|
|
57
|
-
"wagmi": "^2.12.
|
|
56
|
+
"viem": "^2.21.41",
|
|
57
|
+
"wagmi": "^2.12.26",
|
|
58
58
|
"zustand": "^4.5.5",
|
|
59
|
-
"@lifi/wallet-management": "^3.4.
|
|
59
|
+
"@lifi/wallet-management": "^3.4.3"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"react": ">=18",
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { useAccount } from '@lifi/wallet-management'
|
|
2
2
|
import { Box } from '@mui/material'
|
|
3
|
-
import type
|
|
3
|
+
import { type FC, useEffect } from 'react'
|
|
4
4
|
import { useChain } from '../../hooks/useChain.js'
|
|
5
5
|
import { useDebouncedWatch } from '../../hooks/useDebouncedWatch.js'
|
|
6
6
|
import { useTokenBalances } from '../../hooks/useTokenBalances.js'
|
|
7
7
|
import { useTokenSearch } from '../../hooks/useTokenSearch.js'
|
|
8
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js'
|
|
8
9
|
import { FormKeyHelper } from '../../stores/form/types.js'
|
|
9
10
|
import { useFieldValues } from '../../stores/form/useFieldValues.js'
|
|
11
|
+
import { WidgetEvent } from '../../types/events.js'
|
|
10
12
|
import type { TokenAmount } from '../../types/token.js'
|
|
11
13
|
import { TokenNotFound } from './TokenNotFound.js'
|
|
12
14
|
import { VirtualizedTokenList } from './VirtualizedTokenList.js'
|
|
@@ -20,6 +22,7 @@ export const TokenList: FC<TokenListProps> = ({
|
|
|
20
22
|
height,
|
|
21
23
|
onClick,
|
|
22
24
|
}) => {
|
|
25
|
+
const emitter = useWidgetEvents()
|
|
23
26
|
const [selectedChainId] = useFieldValues(FormKeyHelper.getChainKey(formType))
|
|
24
27
|
const [tokenSearchFilter]: string[] = useDebouncedWatch(
|
|
25
28
|
320,
|
|
@@ -81,6 +84,16 @@ export const TokenList: FC<TokenListProps> = ({
|
|
|
81
84
|
Boolean(featuredTokens?.length || popularTokens?.length) &&
|
|
82
85
|
!tokenSearchFilter
|
|
83
86
|
|
|
87
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: Should fire only when search filter changes
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
if (normalizedSearchFilter) {
|
|
90
|
+
emitter.emit(WidgetEvent.TokenSearch, {
|
|
91
|
+
value: normalizedSearchFilter,
|
|
92
|
+
tokens,
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
}, [normalizedSearchFilter, emitter])
|
|
96
|
+
|
|
84
97
|
return (
|
|
85
98
|
<Box ref={parentRef} style={{ height, overflow: 'auto' }}>
|
|
86
99
|
{!tokens.length && !isLoading ? (
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget'
|
|
2
|
-
export const version = '3.
|
|
2
|
+
export const version = '3.12.0'
|
|
@@ -19,12 +19,20 @@ export const useGasRefuel = () => {
|
|
|
19
19
|
const toChain = getChainById(toChainId)
|
|
20
20
|
const fromChain = getChainById(fromChainId)
|
|
21
21
|
|
|
22
|
-
const {
|
|
22
|
+
const { accounts } = useAccount()
|
|
23
|
+
|
|
24
|
+
const fromAccount = accounts.find(
|
|
25
|
+
(account) => account.chainType === fromChain?.chainType
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
const toAccount = accounts.find(
|
|
29
|
+
(account) => account.chainType === toChain?.chainType
|
|
30
|
+
)
|
|
23
31
|
|
|
24
32
|
const isFromContractAddress = useIsContractAddress(
|
|
25
|
-
|
|
33
|
+
fromAccount?.address,
|
|
26
34
|
fromChainId,
|
|
27
|
-
|
|
35
|
+
fromAccount?.chainType
|
|
28
36
|
)
|
|
29
37
|
const isToContractAddress = useIsContractAddress(
|
|
30
38
|
toAddress,
|
|
@@ -32,10 +40,9 @@ export const useGasRefuel = () => {
|
|
|
32
40
|
toChain?.chainType
|
|
33
41
|
)
|
|
34
42
|
|
|
35
|
-
const { token:
|
|
36
|
-
toAddress,
|
|
37
|
-
toChainId ? toChain?.nativeToken : undefined
|
|
38
|
-
toChain
|
|
43
|
+
const { token: destinationNativeToken } = useTokenBalance(
|
|
44
|
+
toAddress || toAccount?.address,
|
|
45
|
+
toChainId ? toChain?.nativeToken : undefined
|
|
39
46
|
)
|
|
40
47
|
|
|
41
48
|
const { data: gasRecommendation, isLoading } = useGasRecommendation(
|
|
@@ -49,7 +56,7 @@ export const useGasRefuel = () => {
|
|
|
49
56
|
fromChain?.chainType !== toChain?.chainType ? Boolean(toAddress) : true
|
|
50
57
|
|
|
51
58
|
const isToAddressSatisfied = isFromContractAddress
|
|
52
|
-
? toAddress && toAddress !==
|
|
59
|
+
? toAddress && toAddress !== fromAccount?.address && !isToContractAddress
|
|
53
60
|
: true
|
|
54
61
|
|
|
55
62
|
const enabled = useMemo(() => {
|
|
@@ -59,13 +66,13 @@ export const useGasRefuel = () => {
|
|
|
59
66
|
fromChainId === toChainId ||
|
|
60
67
|
!gasRecommendation?.available ||
|
|
61
68
|
!gasRecommendation?.recommended ||
|
|
62
|
-
!
|
|
69
|
+
!destinationNativeToken ||
|
|
63
70
|
!isChainTypeSatisfied ||
|
|
64
71
|
!isToAddressSatisfied
|
|
65
72
|
) {
|
|
66
73
|
return false
|
|
67
74
|
}
|
|
68
|
-
const tokenBalance =
|
|
75
|
+
const tokenBalance = destinationNativeToken.amount ?? 0n
|
|
69
76
|
|
|
70
77
|
// Check if the user balance < 50% of the recommended amount
|
|
71
78
|
const recommendedAmount = BigInt(gasRecommendation.recommended.amount) / 2n
|
|
@@ -77,7 +84,7 @@ export const useGasRefuel = () => {
|
|
|
77
84
|
gasRecommendation,
|
|
78
85
|
isChainTypeSatisfied,
|
|
79
86
|
isToAddressSatisfied,
|
|
80
|
-
|
|
87
|
+
destinationNativeToken,
|
|
81
88
|
toChainId,
|
|
82
89
|
])
|
|
83
90
|
|
|
@@ -59,16 +59,42 @@ export const useRouteExecution = ({
|
|
|
59
59
|
process,
|
|
60
60
|
})
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const executionCompleted = isRouteDone(clonedUpdatedRoute)
|
|
63
|
+
const executionFailed = isRouteFailed(clonedUpdatedRoute)
|
|
64
|
+
if (executionCompleted) {
|
|
64
65
|
emitter.emit(WidgetEvent.RouteExecutionCompleted, clonedUpdatedRoute)
|
|
65
66
|
}
|
|
66
|
-
if (
|
|
67
|
+
if (executionFailed && process) {
|
|
67
68
|
emitter.emit(WidgetEvent.RouteExecutionFailed, {
|
|
68
69
|
route: clonedUpdatedRoute,
|
|
69
70
|
process,
|
|
70
71
|
})
|
|
71
72
|
}
|
|
73
|
+
if (executionCompleted || executionFailed) {
|
|
74
|
+
const invalidateKeys = [
|
|
75
|
+
[
|
|
76
|
+
'token-balances',
|
|
77
|
+
clonedUpdatedRoute.fromAddress,
|
|
78
|
+
clonedUpdatedRoute.fromChainId,
|
|
79
|
+
],
|
|
80
|
+
[
|
|
81
|
+
'token-balances',
|
|
82
|
+
clonedUpdatedRoute.toAddress,
|
|
83
|
+
clonedUpdatedRoute.toChainId,
|
|
84
|
+
],
|
|
85
|
+
['transaction-history'],
|
|
86
|
+
]
|
|
87
|
+
for (const key of invalidateKeys) {
|
|
88
|
+
queryClient.invalidateQueries(
|
|
89
|
+
{
|
|
90
|
+
queryKey: key,
|
|
91
|
+
exact: false,
|
|
92
|
+
refetchType: 'all',
|
|
93
|
+
},
|
|
94
|
+
{ cancelRefetch: false }
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
72
98
|
// biome-ignore lint/suspicious/noConsole: logs route information
|
|
73
99
|
console.log('Route updated.', clonedUpdatedRoute)
|
|
74
100
|
}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
import type { ExtendedChain } from '@lifi/sdk'
|
|
2
1
|
import { type Token, type TokenAmount, getTokenBalances } from '@lifi/sdk'
|
|
3
|
-
import { useAccount } from '@lifi/wallet-management'
|
|
4
2
|
import { useQuery, useQueryClient } from '@tanstack/react-query'
|
|
5
3
|
import { useCallback, useMemo } from 'react'
|
|
6
4
|
|
|
7
5
|
const defaultRefetchInterval = 30_000
|
|
8
6
|
|
|
9
|
-
export const useTokenBalance = (
|
|
10
|
-
accountAddress?: string,
|
|
11
|
-
token?: Token,
|
|
12
|
-
chain?: ExtendedChain
|
|
13
|
-
) => {
|
|
14
|
-
const { account } = useAccount(
|
|
15
|
-
// When we provide chain we want to be sure that account address used is from the same ecosystem as token
|
|
16
|
-
chain ? { chainType: chain.chainType } : undefined
|
|
17
|
-
)
|
|
7
|
+
export const useTokenBalance = (accountAddress?: string, token?: Token) => {
|
|
18
8
|
const queryClient = useQueryClient()
|
|
19
|
-
const walletAddress = accountAddress || account.address
|
|
20
9
|
|
|
21
10
|
const tokenBalanceQueryKey = useMemo(
|
|
22
11
|
() =>
|
|
23
|
-
[
|
|
24
|
-
|
|
12
|
+
[
|
|
13
|
+
'token-balance',
|
|
14
|
+
accountAddress,
|
|
15
|
+
token?.chainId,
|
|
16
|
+
token?.address,
|
|
17
|
+
] as const,
|
|
18
|
+
[token?.address, token?.chainId, accountAddress]
|
|
25
19
|
)
|
|
26
20
|
|
|
27
21
|
const { data, isLoading, refetch } = useQuery({
|
|
@@ -73,18 +67,11 @@ export const useTokenBalance = (
|
|
|
73
67
|
} as TokenAmount
|
|
74
68
|
},
|
|
75
69
|
|
|
76
|
-
enabled: Boolean(
|
|
70
|
+
enabled: Boolean(accountAddress && token),
|
|
77
71
|
refetchInterval: defaultRefetchInterval,
|
|
78
72
|
staleTime: defaultRefetchInterval,
|
|
79
73
|
})
|
|
80
74
|
|
|
81
|
-
const refetchAllBalances = () => {
|
|
82
|
-
queryClient.refetchQueries({
|
|
83
|
-
queryKey: ['token-balances', accountAddress, token?.chainId],
|
|
84
|
-
exact: false,
|
|
85
|
-
})
|
|
86
|
-
}
|
|
87
|
-
|
|
88
75
|
const refetchNewBalance = useCallback(() => {
|
|
89
76
|
queryClient.setQueryDefaults(tokenBalanceQueryKey, {
|
|
90
77
|
refetchInterval: 250,
|
|
@@ -97,7 +84,6 @@ export const useTokenBalance = (
|
|
|
97
84
|
isLoading,
|
|
98
85
|
refetch,
|
|
99
86
|
refetchNewBalance,
|
|
100
|
-
refetchAllBalances,
|
|
101
87
|
getTokenBalancesWithRetry,
|
|
102
88
|
}
|
|
103
89
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,14 +3,17 @@ import { useNavigate } from 'react-router-dom'
|
|
|
3
3
|
import { BaseTransactionButton } from '../../components/BaseTransactionButton/BaseTransactionButton.js'
|
|
4
4
|
import { useRoutes } from '../../hooks/useRoutes.js'
|
|
5
5
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'
|
|
6
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js'
|
|
6
7
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'
|
|
7
8
|
import { useFieldValues } from '../../stores/form/useFieldValues.js'
|
|
8
9
|
import { useSplitSubvariantStore } from '../../stores/settings/useSplitSubvariantStore.js'
|
|
10
|
+
import { WidgetEvent } from '../../types/events.js'
|
|
9
11
|
import { navigationRoutes } from '../../utils/navigationRoutes.js'
|
|
10
12
|
|
|
11
13
|
export const ReviewButton: React.FC = () => {
|
|
12
14
|
const { t } = useTranslation()
|
|
13
15
|
const navigate = useNavigate()
|
|
16
|
+
const emitter = useWidgetEvents()
|
|
14
17
|
const { subvariant, subvariantOptions } = useWidgetConfig()
|
|
15
18
|
const splitState = useSplitSubvariantStore((state) => state.state)
|
|
16
19
|
const [toAddress] = useFieldValues('toAddress')
|
|
@@ -25,6 +28,10 @@ export const ReviewButton: React.FC = () => {
|
|
|
25
28
|
navigate(navigationRoutes.transactionExecution, {
|
|
26
29
|
state: { routeId: currentRoute.id },
|
|
27
30
|
})
|
|
31
|
+
emitter.emit(WidgetEvent.RouteSelected, {
|
|
32
|
+
route: currentRoute,
|
|
33
|
+
routes: routes!,
|
|
34
|
+
})
|
|
28
35
|
}
|
|
29
36
|
}
|
|
30
37
|
|
|
@@ -11,12 +11,15 @@ import { useHeader } from '../../hooks/useHeader.js'
|
|
|
11
11
|
import { useNavigateBack } from '../../hooks/useNavigateBack.js'
|
|
12
12
|
import { useRoutes } from '../../hooks/useRoutes.js'
|
|
13
13
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'
|
|
14
|
+
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js'
|
|
14
15
|
import { useFieldValues } from '../../stores/form/useFieldValues.js'
|
|
16
|
+
import { WidgetEvent } from '../../types/events.js'
|
|
15
17
|
import { navigationRoutes } from '../../utils/navigationRoutes.js'
|
|
16
18
|
import { Stack } from './RoutesPage.style.js'
|
|
17
19
|
|
|
18
20
|
export const RoutesPage: React.FC<BoxProps> = () => {
|
|
19
21
|
const { navigate } = useNavigateBack()
|
|
22
|
+
const emitter = useWidgetEvents()
|
|
20
23
|
const {
|
|
21
24
|
routes,
|
|
22
25
|
isLoading,
|
|
@@ -54,6 +57,10 @@ export const RoutesPage: React.FC<BoxProps> = () => {
|
|
|
54
57
|
navigate(navigationRoutes.transactionExecution, {
|
|
55
58
|
state: { routeId: route.id },
|
|
56
59
|
})
|
|
60
|
+
emitter.emit(WidgetEvent.RouteSelected, {
|
|
61
|
+
route,
|
|
62
|
+
routes: routes!,
|
|
63
|
+
})
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
const routeNotFound = !routes?.length && !isLoading && !isFetching
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
WarningRounded,
|
|
6
6
|
} from '@mui/icons-material'
|
|
7
7
|
import { Box, Button, Skeleton, Typography } from '@mui/material'
|
|
8
|
-
import { useQueryClient } from '@tanstack/react-query'
|
|
9
8
|
import { useCallback, useEffect, useRef } from 'react'
|
|
10
9
|
import { useTranslation } from 'react-i18next'
|
|
11
10
|
import { BottomSheet } from '../../components/BottomSheet/BottomSheet.js'
|
|
@@ -78,7 +77,6 @@ export const StatusBottomSheetContent: React.FC<
|
|
|
78
77
|
> = ({ status, route, onClose }) => {
|
|
79
78
|
const { t } = useTranslation()
|
|
80
79
|
const { navigateBack, navigate } = useNavigateBack()
|
|
81
|
-
const queryClient = useQueryClient()
|
|
82
80
|
const { setFieldValue } = useFieldActions()
|
|
83
81
|
const {
|
|
84
82
|
subvariant,
|
|
@@ -100,25 +98,22 @@ export const StatusBottomSheetContent: React.FC<
|
|
|
100
98
|
),
|
|
101
99
|
}
|
|
102
100
|
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
101
|
+
const { token, refetch, refetchNewBalance } = useTokenBalance(
|
|
102
|
+
route.toAddress,
|
|
103
|
+
toToken
|
|
104
|
+
)
|
|
107
105
|
|
|
108
|
-
const
|
|
109
|
-
refetchAllBalances()
|
|
106
|
+
const cleanFields = () => {
|
|
110
107
|
setFieldValue('fromAmount', '')
|
|
111
108
|
setFieldValue('toAmount', '')
|
|
112
|
-
queryClient.invalidateQueries({ queryKey: ['transaction-history'] })
|
|
113
109
|
}
|
|
114
110
|
|
|
115
111
|
const handleDone = () => {
|
|
116
|
-
|
|
112
|
+
cleanFields()
|
|
117
113
|
navigateBack()
|
|
118
114
|
}
|
|
119
115
|
|
|
120
116
|
const handlePartialDone = () => {
|
|
121
|
-
invalidateQueries()
|
|
122
117
|
if (
|
|
123
118
|
toToken.chainId !== route.toToken.chainId &&
|
|
124
119
|
toToken.address !== route.toToken.address
|
|
@@ -136,12 +131,14 @@ export const StatusBottomSheetContent: React.FC<
|
|
|
136
131
|
setFieldValue('toToken', route.toToken.address, {
|
|
137
132
|
isTouched: true,
|
|
138
133
|
})
|
|
134
|
+
} else {
|
|
135
|
+
cleanFields()
|
|
139
136
|
}
|
|
140
137
|
navigateBack()
|
|
141
138
|
}
|
|
142
139
|
|
|
143
140
|
const handleClose = () => {
|
|
144
|
-
|
|
141
|
+
cleanFields()
|
|
145
142
|
onClose()
|
|
146
143
|
}
|
|
147
144
|
|
|
@@ -178,7 +175,7 @@ export const StatusBottomSheetContent: React.FC<
|
|
|
178
175
|
primaryMessage = t('success.message.exchangeSuccessful', {
|
|
179
176
|
amount: formatTokenAmount(token.amount, token.decimals),
|
|
180
177
|
tokenSymbol: token.symbol,
|
|
181
|
-
chainName:
|
|
178
|
+
chainName: getChainById(toToken.chainId)?.name,
|
|
182
179
|
walletAddress: shortenAddress(route.toAddress),
|
|
183
180
|
})
|
|
184
181
|
}
|
|
@@ -195,7 +192,7 @@ export const StatusBottomSheetContent: React.FC<
|
|
|
195
192
|
secondaryMessage = t('success.message.exchangeSuccessful', {
|
|
196
193
|
amount: formatTokenAmount(token.amount, token.decimals),
|
|
197
194
|
tokenSymbol: token.symbol,
|
|
198
|
-
chainName:
|
|
195
|
+
chainName: getChainById(toToken.chainId)?.name,
|
|
199
196
|
walletAddress: shortenAddress(route.toAddress),
|
|
200
197
|
})
|
|
201
198
|
}
|
|
@@ -212,7 +209,7 @@ export const StatusBottomSheetContent: React.FC<
|
|
|
212
209
|
secondaryMessage = t('success.message.exchangeSuccessful', {
|
|
213
210
|
amount: formatTokenAmount(token.amount, token.decimals),
|
|
214
211
|
tokenSymbol: token.symbol,
|
|
215
|
-
chainName:
|
|
212
|
+
chainName: getChainById(toToken.chainId)?.name,
|
|
216
213
|
walletAddress: shortenAddress(route.toAddress),
|
|
217
214
|
})
|
|
218
215
|
}
|
package/src/types/events.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { ChainId, ChainType, Process, Route } from '@lifi/sdk'
|
|
|
2
2
|
import type { DefaultValues } from '../stores/form/types.js'
|
|
3
3
|
import type { SettingsProps } from '../stores/settings/types.js'
|
|
4
4
|
import type { NavigationRouteType } from '../utils/navigationRoutes.js'
|
|
5
|
+
import type { TokenAmount } from './token.js'
|
|
5
6
|
|
|
6
7
|
export enum WidgetEvent {
|
|
7
8
|
RouteExecutionStarted = 'routeExecutionStarted',
|
|
@@ -9,6 +10,7 @@ export enum WidgetEvent {
|
|
|
9
10
|
RouteExecutionCompleted = 'routeExecutionCompleted',
|
|
10
11
|
RouteExecutionFailed = 'routeExecutionFailed',
|
|
11
12
|
RouteHighValueLoss = 'routeHighValueLoss',
|
|
13
|
+
RouteSelected = 'routeSelected',
|
|
12
14
|
AvailableRoutes = 'availableRoutes',
|
|
13
15
|
ContactSupport = 'contactSupport',
|
|
14
16
|
SourceChainTokenSelected = 'sourceChainTokenSelected',
|
|
@@ -26,6 +28,7 @@ export enum WidgetEvent {
|
|
|
26
28
|
PageEntered = 'pageEntered',
|
|
27
29
|
FormFieldChanged = 'formFieldChanged',
|
|
28
30
|
SettingUpdated = 'settingUpdated',
|
|
31
|
+
TokenSearch = 'tokenSearch',
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
export type WidgetEvents = {
|
|
@@ -34,6 +37,7 @@ export type WidgetEvents = {
|
|
|
34
37
|
routeExecutionCompleted: Route
|
|
35
38
|
routeExecutionFailed: RouteExecutionUpdate
|
|
36
39
|
routeHighValueLoss: RouteHighValueLossUpdate
|
|
40
|
+
routeSelected: RouteSelected
|
|
37
41
|
availableRoutes: Route[]
|
|
38
42
|
contactSupport: ContactSupport
|
|
39
43
|
sourceChainTokenSelected: ChainTokenSelected
|
|
@@ -45,13 +49,14 @@ export type WidgetEvents = {
|
|
|
45
49
|
widgetExpanded: boolean
|
|
46
50
|
pageEntered: NavigationRouteType
|
|
47
51
|
settingUpdated: SettingUpdated
|
|
52
|
+
tokenSearch: TokenSearch
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
export
|
|
55
|
+
export type ContactSupport = {
|
|
51
56
|
supportId?: string
|
|
52
57
|
}
|
|
53
58
|
|
|
54
|
-
export
|
|
59
|
+
export type RouteHighValueLossUpdate = {
|
|
55
60
|
fromAmountUSD: number
|
|
56
61
|
toAmountUSD: number
|
|
57
62
|
gasCostUSD?: number
|
|
@@ -59,17 +64,27 @@ export interface RouteHighValueLossUpdate {
|
|
|
59
64
|
valueLoss: number
|
|
60
65
|
}
|
|
61
66
|
|
|
62
|
-
export
|
|
67
|
+
export type RouteExecutionUpdate = {
|
|
63
68
|
route: Route
|
|
64
69
|
process: Process
|
|
65
70
|
}
|
|
66
71
|
|
|
67
|
-
export
|
|
72
|
+
export type RouteSelected = {
|
|
73
|
+
route: Route
|
|
74
|
+
routes: Route[]
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export type TokenSearch = {
|
|
78
|
+
value: string
|
|
79
|
+
tokens: TokenAmount[]
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export type ChainTokenSelected = {
|
|
68
83
|
chainId: ChainId
|
|
69
84
|
tokenAddress: string
|
|
70
85
|
}
|
|
71
86
|
|
|
72
|
-
export
|
|
87
|
+
export type WalletConnected = {
|
|
73
88
|
address?: string
|
|
74
89
|
chainId?: number
|
|
75
90
|
chainType?: ChainType
|