@lifi/widget 3.6.2 → 3.7.0-beta.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/AppProvider.tsx +4 -4
- package/AppRoutes.tsx +2 -14
- package/CHANGELOG.md +0 -14
- package/_esm/AppProvider.js +1 -1
- package/_esm/AppProvider.js.map +1 -1
- package/_esm/AppRoutes.js +2 -9
- package/_esm/AppRoutes.js.map +1 -1
- package/_esm/components/ActiveTransactions/ActiveTransactions.style.js +1 -1
- package/_esm/components/ActiveTransactions/ActiveTransactions.style.js.map +1 -1
- package/_esm/components/AmountInput/AmountInputEndAdornment.js +1 -3
- package/_esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/_esm/components/AppContainer.js +0 -7
- package/_esm/components/AppContainer.js.map +1 -1
- package/_esm/components/Avatar/AccountAvatar.d.ts +1 -1
- package/_esm/components/Avatar/AccountAvatar.js +1 -1
- package/_esm/components/Avatar/AccountAvatar.js.map +1 -1
- package/_esm/components/Avatar/Avatar.d.ts +1 -0
- package/_esm/components/Avatar/Avatar.js +7 -4
- package/_esm/components/Avatar/Avatar.js.map +1 -1
- package/_esm/components/Avatar/Avatar.style.d.ts +6 -3
- package/_esm/components/Avatar/Avatar.style.js +19 -6
- package/_esm/components/Avatar/Avatar.style.js.map +1 -1
- package/_esm/components/Avatar/SmallAvatar.d.ts +4 -0
- package/_esm/components/Avatar/SmallAvatar.js +12 -0
- package/_esm/components/Avatar/SmallAvatar.js.map +1 -0
- package/_esm/components/Avatar/TokenAvatar.js +1 -1
- package/_esm/components/Avatar/TokenAvatar.js.map +1 -1
- package/_esm/components/BaseTransactionButton/BaseTransactionButton.js +3 -5
- package/_esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/_esm/components/ChainSelect/useChainSelect.js +5 -1
- package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
- package/_esm/components/FeeBreakdownTooltip.js +4 -1
- package/_esm/components/FeeBreakdownTooltip.js.map +1 -1
- package/_esm/components/Header/EVMDisconnectIconButton.js +5 -4
- package/_esm/components/Header/EVMDisconnectIconButton.js.map +1 -1
- package/_esm/components/Header/NavigationHeader.js +1 -1
- package/_esm/components/Header/NavigationHeader.js.map +1 -1
- package/_esm/components/Header/UTXODisconnectIconButton.d.ts +4 -0
- package/_esm/components/Header/UTXODisconnectIconButton.js +13 -0
- package/_esm/components/Header/UTXODisconnectIconButton.js.map +1 -0
- package/_esm/components/Header/WalletHeader.js +5 -9
- package/_esm/components/Header/WalletHeader.js.map +1 -1
- package/_esm/components/Header/WalletMenu.js +10 -15
- package/_esm/components/Header/WalletMenu.js.map +1 -1
- package/_esm/components/Header/WalletMenu.style.js +5 -1
- package/_esm/components/Header/WalletMenu.style.js.map +1 -1
- package/_esm/components/Routes/RoutesExpanded.js +1 -1
- package/_esm/components/Routes/RoutesExpanded.js.map +1 -1
- package/_esm/components/SendToWallet/SendToWalletButton.js +1 -1
- package/_esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
- package/_esm/components/StepActions/StepActions.js +1 -1
- package/_esm/components/StepActions/StepActions.js.map +1 -1
- package/_esm/components/Tabs/Tabs.style.d.ts +1 -1
- package/_esm/components/Token/Token.js +1 -1
- package/_esm/components/Token/Token.js.map +1 -1
- package/_esm/components/TokenList/TokenList.js +1 -1
- package/_esm/components/TokenList/TokenList.js.map +1 -1
- package/_esm/components/TokenList/TokenListItem.js +11 -5
- package/_esm/components/TokenList/TokenListItem.js.map +1 -1
- package/_esm/components/TokenList/VirtualizedTokenList.js +1 -1
- package/_esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/_esm/components/TokenList/types.d.ts +3 -3
- package/_esm/components/TokenRate/TokenRate.js +2 -2
- package/_esm/components/TokenRate/TokenRate.js.map +1 -1
- package/_esm/config/version.d.ts +1 -1
- package/_esm/config/version.js +1 -1
- package/_esm/config/version.js.map +1 -1
- package/_esm/hooks/useAvailableChains.d.ts +2 -1
- package/_esm/hooks/useAvailableChains.js +9 -8
- package/_esm/hooks/useAvailableChains.js.map +1 -1
- package/_esm/hooks/useChains.d.ts +4 -3
- package/_esm/hooks/useChains.js +5 -3
- package/_esm/hooks/useChains.js.map +1 -1
- package/_esm/hooks/useFromTokenSufficiency.js +1 -1
- package/_esm/hooks/useFromTokenSufficiency.js.map +1 -1
- package/_esm/hooks/useGasSufficiency.js +3 -3
- package/_esm/hooks/useGasSufficiency.js.map +1 -1
- package/_esm/hooks/useProcessMessage.js +4 -0
- package/_esm/hooks/useProcessMessage.js.map +1 -1
- package/_esm/hooks/useRouteExecution.js +1 -1
- package/_esm/hooks/useRouteExecution.js.map +1 -1
- package/_esm/hooks/useRoutes.js +1 -1
- package/_esm/hooks/useRoutes.js.map +1 -1
- package/_esm/hooks/useScrollableContainer.d.ts +1 -0
- package/_esm/hooks/useScrollableContainer.js +2 -1
- package/_esm/hooks/useScrollableContainer.js.map +1 -1
- package/_esm/hooks/useSetContentHeight.js +6 -9
- package/_esm/hooks/useSetContentHeight.js.map +1 -1
- package/_esm/hooks/useTokenBalance.js +1 -1
- package/_esm/hooks/useTokenBalance.js.map +1 -1
- package/_esm/hooks/useTokenBalances.js +1 -1
- package/_esm/hooks/useTokenBalances.js.map +1 -1
- package/_esm/hooks/useTokens.js +1 -1
- package/_esm/hooks/useTokens.js.map +1 -1
- package/_esm/hooks/useTransactionDetails.js +1 -1
- package/_esm/hooks/useTransactionDetails.js.map +1 -1
- package/_esm/hooks/useTransactionHistory.js +1 -1
- package/_esm/hooks/useTransactionHistory.js.map +1 -1
- package/_esm/i18n/en.json +3 -4
- package/_esm/index.d.ts +0 -2
- package/_esm/index.js +0 -2
- package/_esm/index.js.map +1 -1
- package/_esm/pages/RoutesPage/RoutesPage.js +1 -1
- package/_esm/pages/RoutesPage/RoutesPage.js.map +1 -1
- package/_esm/pages/SelectTokenPage/useTokenListHeight.js +4 -7
- package/_esm/pages/SelectTokenPage/useTokenListHeight.js.map +1 -1
- package/_esm/pages/SendToWallet/ConnectedWalletsPage.js +1 -1
- package/_esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
- package/_esm/pages/SendToWallet/SendToWalletPage.js +1 -1
- package/_esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
- package/_esm/pages/TransactionPage/StatusBottomSheet.js +5 -5
- package/_esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/_esm/providers/I18nProvider/types.d.ts +2 -2
- package/_esm/providers/WalletProvider/SDKProviders.js +15 -7
- package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
- package/_esm/providers/WalletProvider/UTXOBaseProvider.d.ts +2 -0
- package/_esm/providers/WalletProvider/UTXOBaseProvider.js +17 -0
- package/_esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -0
- package/_esm/providers/WalletProvider/UTXOExternalContext.d.ts +1 -0
- package/_esm/providers/WalletProvider/UTXOExternalContext.js +3 -0
- package/_esm/providers/WalletProvider/UTXOExternalContext.js.map +1 -0
- package/_esm/providers/WalletProvider/UTXOProvider.d.ts +3 -0
- package/_esm/providers/WalletProvider/UTXOProvider.js +18 -0
- package/_esm/providers/WalletProvider/UTXOProvider.js.map +1 -0
- package/_esm/providers/WalletProvider/WalletProvider.d.ts +1 -0
- package/_esm/providers/WalletProvider/WalletProvider.js +14 -1
- package/_esm/providers/WalletProvider/WalletProvider.js.map +1 -1
- package/_esm/providers/WalletProvider/useHasExternalWalletProvider.d.ts +1 -1
- package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js +8 -3
- package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js.map +1 -1
- package/_esm/providers/WidgetProvider/WidgetProvider.js +2 -1
- package/_esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
- package/_esm/providers/WidgetProvider/types.d.ts +0 -2
- package/_esm/stores/form/FormUpdater.js +1 -1
- package/_esm/stores/form/FormUpdater.js.map +1 -1
- package/_esm/stores/form/types.d.ts +4 -4
- package/_esm/stores/routes/useExecutingRoutesIds.js +1 -1
- package/_esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
- package/_esm/themes/createTheme.js +2 -1
- package/_esm/themes/createTheme.js.map +1 -1
- package/_esm/types/events.d.ts +6 -0
- package/_esm/types/events.js +3 -0
- package/_esm/types/events.js.map +1 -1
- package/_esm/utils/chainType.js +2 -3
- package/_esm/utils/chainType.js.map +1 -1
- package/_esm/utils/elements.d.ts +0 -4
- package/_esm/utils/elements.js +0 -6
- package/_esm/utils/elements.js.map +1 -1
- package/_esm/utils/fees.js +9 -5
- package/_esm/utils/fees.js.map +1 -1
- package/_esm/utils/format.js +1 -1
- package/_esm/utils/format.js.map +1 -1
- package/_esm/utils/navigationRoutes.d.ts +0 -1
- package/_esm/utils/navigationRoutes.js +0 -3
- package/_esm/utils/navigationRoutes.js.map +1 -1
- package/_esm/utils/wallet.js +1 -1
- package/components/ActiveTransactions/ActiveTransactions.style.ts +1 -1
- package/components/AmountInput/AmountInputEndAdornment.tsx +1 -5
- package/components/AppContainer.tsx +0 -8
- package/components/Avatar/AccountAvatar.tsx +2 -2
- package/components/Avatar/Avatar.style.tsx +20 -7
- package/components/Avatar/Avatar.tsx +12 -4
- package/components/Avatar/SmallAvatar.tsx +16 -0
- package/components/Avatar/TokenAvatar.tsx +1 -1
- package/components/BaseTransactionButton/BaseTransactionButton.tsx +3 -5
- package/components/ChainSelect/useChainSelect.ts +10 -1
- package/components/FeeBreakdownTooltip.tsx +4 -1
- package/components/Header/EVMDisconnectIconButton.tsx +5 -5
- package/components/Header/NavigationHeader.tsx +1 -1
- package/components/Header/UTXODisconnectIconButton.tsx +24 -0
- package/components/Header/WalletHeader.tsx +11 -12
- package/components/Header/WalletMenu.style.tsx +5 -1
- package/components/Header/WalletMenu.tsx +23 -24
- package/components/Routes/RoutesExpanded.tsx +1 -2
- package/components/SendToWallet/SendToWalletButton.tsx +1 -1
- package/components/StepActions/StepActions.tsx +1 -1
- package/components/Token/Token.tsx +1 -1
- package/components/TokenList/TokenList.tsx +1 -1
- package/components/TokenList/TokenListItem.tsx +15 -7
- package/components/TokenList/VirtualizedTokenList.tsx +1 -1
- package/components/TokenList/types.ts +3 -3
- package/components/TokenRate/TokenRate.tsx +2 -2
- package/config/version.ts +1 -1
- package/hooks/useAvailableChains.ts +9 -10
- package/hooks/useChains.ts +6 -3
- package/hooks/useFromTokenSufficiency.ts +1 -1
- package/hooks/useGasSufficiency.ts +5 -3
- package/hooks/useProcessMessage.ts +4 -0
- package/hooks/useRouteExecution.ts +1 -1
- package/hooks/useRoutes.ts +1 -1
- package/hooks/useScrollableContainer.ts +6 -1
- package/hooks/useSetContentHeight.ts +6 -10
- package/hooks/useTokenBalance.ts +1 -1
- package/hooks/useTokenBalances.ts +1 -1
- package/hooks/useTokens.ts +2 -1
- package/hooks/useTransactionDetails.ts +1 -1
- package/hooks/useTransactionHistory.ts +1 -1
- package/i18n/en.json +3 -4
- package/index.ts +0 -2
- package/package.json +5 -5
- package/pages/RoutesPage/RoutesPage.tsx +1 -1
- package/pages/SelectTokenPage/useTokenListHeight.ts +10 -13
- package/pages/SendToWallet/ConnectedWalletsPage.tsx +2 -2
- package/pages/SendToWallet/SendToWalletPage.tsx +1 -1
- package/pages/TransactionPage/StatusBottomSheet.tsx +8 -6
- package/providers/I18nProvider/types.ts +2 -2
- package/providers/WalletProvider/SDKProviders.tsx +25 -7
- package/providers/WalletProvider/UTXOBaseProvider.tsx +28 -0
- package/providers/WalletProvider/UTXOExternalContext.ts +3 -0
- package/providers/WalletProvider/UTXOProvider.tsx +26 -0
- package/providers/WalletProvider/WalletProvider.tsx +24 -3
- package/providers/WalletProvider/useHasExternalWalletProvider.ts +11 -5
- package/providers/WidgetProvider/WidgetProvider.tsx +2 -1
- package/providers/WidgetProvider/types.ts +0 -2
- package/stores/form/FormUpdater.tsx +1 -1
- package/stores/form/types.ts +4 -4
- package/stores/routes/useExecutingRoutesIds.ts +1 -1
- package/themes/createTheme.ts +3 -1
- package/types/events.ts +6 -0
- package/utils/chainType.ts +2 -3
- package/utils/elements.ts +0 -21
- package/utils/fees.ts +15 -13
- package/utils/format.ts +1 -1
- package/utils/navigationRoutes.ts +0 -3
- package/utils/wallet.ts +1 -1
- package/_esm/components/SmallAvatar.d.ts +0 -10
- package/_esm/components/SmallAvatar.js +0 -19
- package/_esm/components/SmallAvatar.js.map +0 -1
- package/_esm/hooks/useAccount.d.ts +0 -45
- package/_esm/hooks/useAccount.js +0 -56
- package/_esm/hooks/useAccount.js.map +0 -1
- package/_esm/hooks/useWallets.d.ts +0 -6
- package/_esm/hooks/useWallets.js +0 -80
- package/_esm/hooks/useWallets.js.map +0 -1
- package/_esm/pages/SelectWalletPage/EVMListItemButton.d.ts +0 -9
- package/_esm/pages/SelectWalletPage/EVMListItemButton.js +0 -39
- package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +0 -1
- package/_esm/pages/SelectWalletPage/SVMListItemButton.d.ts +0 -6
- package/_esm/pages/SelectWalletPage/SVMListItemButton.js +0 -32
- package/_esm/pages/SelectWalletPage/SVMListItemButton.js.map +0 -1
- package/_esm/pages/SelectWalletPage/SelectWalletPage.d.ts +0 -1
- package/_esm/pages/SelectWalletPage/SelectWalletPage.js +0 -41
- package/_esm/pages/SelectWalletPage/SelectWalletPage.js.map +0 -1
- package/_esm/utils/svm.d.ts +0 -1
- package/_esm/utils/svm.js +0 -11
- package/_esm/utils/svm.js.map +0 -1
- package/components/SmallAvatar.tsx +0 -25
- package/hooks/useAccount.ts +0 -109
- package/hooks/useWallets.ts +0 -147
- package/pages/SelectWalletPage/EVMListItemButton.tsx +0 -74
- package/pages/SelectWalletPage/SVMListItemButton.tsx +0 -47
- package/pages/SelectWalletPage/SelectWalletPage.tsx +0 -90
- package/utils/svm.ts +0 -10
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const SmallAvatar: import("@emotion/styled").StyledComponent<import("@mui/material").AvatarOwnProps & import("@mui/material").AvatarSlotsAndSlotProps & import("@mui/material/OverridableComponent.js").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
2
|
-
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
3
|
-
}, "children" | "sx" | "style" | "className" | "sizes" | "alt" | "src" | "srcSet" | "classes" | "variant" | "imgProps" | "slots" | "slotProps"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
4
|
-
export declare const SmallAvatarSkeletonBase: import("@emotion/styled").StyledComponent<import("@mui/material").SkeletonOwnProps & import("@mui/material/OverridableComponent.js").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
|
|
5
|
-
ref?: ((instance: HTMLSpanElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLSpanElement> | null | undefined;
|
|
6
|
-
}, "width" | "height" | "animation" | "children" | "sx" | "style" | "className" | "classes" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
7
|
-
export declare const SmallAvatarSkeletonContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
8
|
-
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
9
|
-
}, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
10
|
-
export declare const SmallAvatarSkeleton: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Avatar, Box, Skeleton, styled } from '@mui/material';
|
|
3
|
-
export const SmallAvatar = styled(Avatar)(({ theme }) => ({
|
|
4
|
-
background: theme.palette.background.paper,
|
|
5
|
-
width: 16,
|
|
6
|
-
height: 16,
|
|
7
|
-
}));
|
|
8
|
-
export const SmallAvatarSkeletonBase = styled(Skeleton)(({ theme }) => ({
|
|
9
|
-
width: 16,
|
|
10
|
-
height: 16,
|
|
11
|
-
}));
|
|
12
|
-
export const SmallAvatarSkeletonContainer = styled(Box)(({ theme }) => ({
|
|
13
|
-
background: theme.palette.background.paper,
|
|
14
|
-
borderRadius: '50%',
|
|
15
|
-
}));
|
|
16
|
-
export const SmallAvatarSkeleton = () => {
|
|
17
|
-
return (_jsx(SmallAvatarSkeletonContainer, { children: _jsx(SmallAvatarSkeletonBase, { variant: "circular" }) }));
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=SmallAvatar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SmallAvatar.js","sourceRoot":"","sources":["../../components/SmallAvatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;IAC1C,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;IAC1C,YAAY,EAAE,KAAK;CACpB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,OAAO,CACL,KAAC,4BAA4B,cAC3B,KAAC,uBAAuB,IAAC,OAAO,EAAC,UAAU,GAAG,GACjB,CAChC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { ChainType } from '@lifi/sdk';
|
|
2
|
-
import type { WalletAdapter } from '@solana/wallet-adapter-base';
|
|
3
|
-
import type { Chain } from 'viem';
|
|
4
|
-
import type { Connector } from 'wagmi';
|
|
5
|
-
export interface AccountBase {
|
|
6
|
-
address?: string;
|
|
7
|
-
addresses?: readonly string[];
|
|
8
|
-
chain?: Chain;
|
|
9
|
-
chainId?: number;
|
|
10
|
-
chainType?: ChainType;
|
|
11
|
-
isConnected: boolean;
|
|
12
|
-
isConnecting: boolean;
|
|
13
|
-
isDisconnected: boolean;
|
|
14
|
-
isReconnecting: boolean;
|
|
15
|
-
status: 'connected' | 'reconnecting' | 'connecting' | 'disconnected';
|
|
16
|
-
}
|
|
17
|
-
export interface EVMAccount extends AccountBase {
|
|
18
|
-
chainType: ChainType.EVM;
|
|
19
|
-
connector?: Connector;
|
|
20
|
-
}
|
|
21
|
-
export interface SVMAccount extends AccountBase {
|
|
22
|
-
chainType: ChainType.SVM;
|
|
23
|
-
connector?: WalletAdapter;
|
|
24
|
-
}
|
|
25
|
-
export interface DefaultAccount extends AccountBase {
|
|
26
|
-
connector?: never;
|
|
27
|
-
}
|
|
28
|
-
export type Account = EVMAccount | SVMAccount | DefaultAccount;
|
|
29
|
-
export interface AccountResult {
|
|
30
|
-
account: Account;
|
|
31
|
-
/**
|
|
32
|
-
* Connected accounts
|
|
33
|
-
*/
|
|
34
|
-
accounts: Account[];
|
|
35
|
-
}
|
|
36
|
-
interface UseAccountArgs {
|
|
37
|
-
chainType?: ChainType;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
|
|
42
|
-
* @returns - Account result
|
|
43
|
-
*/
|
|
44
|
-
export declare const useAccount: (args?: UseAccountArgs) => AccountResult;
|
|
45
|
-
export {};
|
package/_esm/hooks/useAccount.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { ChainId, ChainType } from '@lifi/sdk';
|
|
2
|
-
import { useWallet } from '@solana/wallet-adapter-react';
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
import { useAccount as useWagmiAccount } from 'wagmi';
|
|
5
|
-
const defaultAccount = {
|
|
6
|
-
isConnected: false,
|
|
7
|
-
isConnecting: false,
|
|
8
|
-
isReconnecting: false,
|
|
9
|
-
isDisconnected: true,
|
|
10
|
-
status: 'disconnected',
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
|
|
15
|
-
* @returns - Account result
|
|
16
|
-
*/
|
|
17
|
-
export const useAccount = (args) => {
|
|
18
|
-
const account = useWagmiAccount();
|
|
19
|
-
const { wallet } = useWallet();
|
|
20
|
-
// We create a simple variable from the args object
|
|
21
|
-
// to avoid re-render useMemo on every object reference change.
|
|
22
|
-
const hasChainTypeArgs = Boolean(args);
|
|
23
|
-
return useMemo(() => {
|
|
24
|
-
const svm = wallet?.adapter.publicKey
|
|
25
|
-
? {
|
|
26
|
-
address: wallet?.adapter.publicKey.toString(),
|
|
27
|
-
chainId: ChainId.SOL,
|
|
28
|
-
chainType: ChainType.SVM,
|
|
29
|
-
connector: wallet?.adapter,
|
|
30
|
-
isConnected: Boolean(wallet?.adapter.publicKey),
|
|
31
|
-
isConnecting: false,
|
|
32
|
-
isReconnecting: false,
|
|
33
|
-
isDisconnected: !wallet,
|
|
34
|
-
status: 'connected',
|
|
35
|
-
}
|
|
36
|
-
: {
|
|
37
|
-
chainType: ChainType.SVM,
|
|
38
|
-
isConnected: false,
|
|
39
|
-
isConnecting: false,
|
|
40
|
-
isReconnecting: false,
|
|
41
|
-
isDisconnected: true,
|
|
42
|
-
status: 'disconnected',
|
|
43
|
-
};
|
|
44
|
-
const evm = { ...account, chainType: ChainType.EVM };
|
|
45
|
-
const accounts = [evm, svm];
|
|
46
|
-
const connectedAccounts = [evm, svm].filter((account) => account.isConnected && account.address);
|
|
47
|
-
return {
|
|
48
|
-
account: accounts.find((account) => (!hasChainTypeArgs || account.chainType === args?.chainType) &&
|
|
49
|
-
account.isConnected &&
|
|
50
|
-
account.address) ?? defaultAccount,
|
|
51
|
-
// We need to return only connected account list
|
|
52
|
-
accounts: connectedAccounts,
|
|
53
|
-
};
|
|
54
|
-
}, [account, args?.chainType, hasChainTypeArgs, wallet]);
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=useAccount.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAccount.js","sourceRoot":"","sources":["../../hooks/useAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC;AA2CtD,MAAM,cAAc,GAAgB;IAClC,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,IAAI;IACpB,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAiB,EAAE;IACjE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/B,mDAAmD;IACnD,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,GAAG,GAAY,MAAM,EAAE,OAAO,CAAC,SAAS;YAC5C,CAAC,CAAC;gBACE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC7C,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,SAAS,CAAC,GAAG;gBACxB,SAAS,EAAE,MAAM,EAAE,OAAO;gBAC1B,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;gBAC/C,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,CAAC,MAAM;gBACvB,MAAM,EAAE,WAAW;aACpB;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,SAAS,CAAC,GAAG;gBACxB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,cAAc;aACvB,CAAC;QACN,MAAM,GAAG,GAAY,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CACpD,CAAC;QACF,OAAO;YACL,OAAO,EACL,QAAQ,CAAC,IAAI,CACX,CAAC,OAAO,EAAE,EAAE,CACV,CAAC,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,SAAS,CAAC;gBAC5D,OAAO,CAAC,WAAW;gBACnB,OAAO,CAAC,OAAO,CAClB,IAAI,cAAc;YACrB,gDAAgD;YAChD,QAAQ,EAAE,iBAAiB;SAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { CreateConnectorFnExtended } from '@lifi/wallet-management';
|
|
2
|
-
import type { Wallet } from '@solana/wallet-adapter-react';
|
|
3
|
-
import type { Connector } from 'wagmi';
|
|
4
|
-
import type { WidgetChains, WidgetWalletConfig } from '../types/widget.js';
|
|
5
|
-
export declare const useWallets: (walletConfig?: WidgetWalletConfig, chains?: WidgetChains) => (Connector | Wallet | CreateConnectorFnExtended)[];
|
|
6
|
-
export declare const walletComparator: (a: CreateConnectorFnExtended | Connector | Wallet, b: CreateConnectorFnExtended | Connector | Wallet) => number;
|
package/_esm/hooks/useWallets.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ChainType } from '@lifi/sdk';
|
|
2
|
-
import { createCoinbaseConnector, createMetaMaskConnector, createWalletConnectConnector, getWalletPriority, isWalletInstalled, } from '@lifi/wallet-management';
|
|
3
|
-
import { useMediaQuery } from '@mui/material';
|
|
4
|
-
import { WalletReadyState } from '@solana/wallet-adapter-base';
|
|
5
|
-
import { useWallet } from '@solana/wallet-adapter-react';
|
|
6
|
-
import { useMemo } from 'react';
|
|
7
|
-
import { useConnect, useAccount as useWagmiAccount } from 'wagmi';
|
|
8
|
-
import { defaultCoinbaseConfig } from '../config/coinbase.js';
|
|
9
|
-
import { defaultMetaMaskConfig } from '../config/metaMask.js';
|
|
10
|
-
import { defaultWalletConnectConfig } from '../config/walletConnect.js';
|
|
11
|
-
import { isItemAllowed } from '../utils/item.js';
|
|
12
|
-
export const useWallets = (walletConfig, chains) => {
|
|
13
|
-
const account = useWagmiAccount();
|
|
14
|
-
const { connectors } = useConnect();
|
|
15
|
-
const { wallets: solanaWallets } = useWallet();
|
|
16
|
-
const isDesktopView = useMediaQuery((theme) => theme.breakpoints.up('sm'));
|
|
17
|
-
const wallets = useMemo(() => {
|
|
18
|
-
const evmConnectors = Array.from(connectors);
|
|
19
|
-
if (!connectors.some((connector) => connector.id.toLowerCase().includes('walletconnect'))) {
|
|
20
|
-
evmConnectors.unshift(createWalletConnectConnector(walletConfig?.walletConnect ?? defaultWalletConnectConfig));
|
|
21
|
-
}
|
|
22
|
-
if (!connectors.some((connector) => connector.id.toLowerCase().includes('coinbase')) &&
|
|
23
|
-
!isWalletInstalled('coinbase')) {
|
|
24
|
-
evmConnectors.unshift(createCoinbaseConnector(walletConfig?.coinbase ?? defaultCoinbaseConfig));
|
|
25
|
-
}
|
|
26
|
-
if (!connectors.some((connector) => connector.id.toLowerCase().includes('metamask')) &&
|
|
27
|
-
!isWalletInstalled('metaMask')) {
|
|
28
|
-
evmConnectors.unshift(createMetaMaskConnector(walletConfig?.metaMask ?? defaultMetaMaskConfig));
|
|
29
|
-
}
|
|
30
|
-
const evmInstalled = isItemAllowed(ChainType.EVM, chains?.types)
|
|
31
|
-
? evmConnectors.filter((connector) => isWalletInstalled(connector.id) &&
|
|
32
|
-
// We should not show already connected connectors
|
|
33
|
-
account.connector?.id !== connector.id)
|
|
34
|
-
: [];
|
|
35
|
-
const evmNotDetected = isItemAllowed(ChainType.EVM, chains?.types)
|
|
36
|
-
? evmConnectors.filter((connector) => !isWalletInstalled(connector.id))
|
|
37
|
-
: [];
|
|
38
|
-
const svmInstalled = isItemAllowed(ChainType.SVM, chains?.types)
|
|
39
|
-
? solanaWallets?.filter((connector) => connector.adapter.readyState === WalletReadyState.Installed &&
|
|
40
|
-
// We should not show already connected connectors
|
|
41
|
-
!connector.adapter.connected)
|
|
42
|
-
: [];
|
|
43
|
-
const svmNotDetected = isItemAllowed(ChainType.SVM, chains?.types)
|
|
44
|
-
? solanaWallets?.filter((connector) => connector.adapter.readyState !== WalletReadyState.Installed)
|
|
45
|
-
: [];
|
|
46
|
-
const installedWallets = [...evmInstalled, ...svmInstalled].sort(walletComparator);
|
|
47
|
-
if (isDesktopView) {
|
|
48
|
-
const notDetectedWallets = [...evmNotDetected, ...svmNotDetected].sort(walletComparator);
|
|
49
|
-
installedWallets.push(...notDetectedWallets);
|
|
50
|
-
}
|
|
51
|
-
return installedWallets;
|
|
52
|
-
}, [
|
|
53
|
-
account.connector?.id,
|
|
54
|
-
chains?.types,
|
|
55
|
-
connectors,
|
|
56
|
-
isDesktopView,
|
|
57
|
-
solanaWallets,
|
|
58
|
-
walletConfig?.coinbase,
|
|
59
|
-
walletConfig?.metaMask,
|
|
60
|
-
walletConfig?.walletConnect,
|
|
61
|
-
]);
|
|
62
|
-
return wallets;
|
|
63
|
-
};
|
|
64
|
-
export const walletComparator = (a, b) => {
|
|
65
|
-
let aId = a.id || a.adapter?.name;
|
|
66
|
-
let bId = b.id || b.adapter?.name;
|
|
67
|
-
const priorityA = getWalletPriority(aId);
|
|
68
|
-
const priorityB = getWalletPriority(bId);
|
|
69
|
-
if (priorityA !== priorityB) {
|
|
70
|
-
return priorityA - priorityB;
|
|
71
|
-
}
|
|
72
|
-
if (aId < bId) {
|
|
73
|
-
return -1;
|
|
74
|
-
}
|
|
75
|
-
if (aId > bId) {
|
|
76
|
-
return 1;
|
|
77
|
-
}
|
|
78
|
-
return 0;
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=useWallets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../hooks/useWallets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { CreateConnectorFnExtended } from '@lifi/wallet-management';
|
|
2
|
-
import type { Connector } from 'wagmi';
|
|
3
|
-
interface EVMListItemButtonProps {
|
|
4
|
-
connectedConnector?: Connector;
|
|
5
|
-
connector: CreateConnectorFnExtended | Connector;
|
|
6
|
-
onNotInstalled(connector: Connector): void;
|
|
7
|
-
}
|
|
8
|
-
export declare const EVMListItemButton: ({ connectedConnector, connector, onNotInstalled, }: EVMListItemButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ChainType } from '@lifi/sdk';
|
|
3
|
-
import { getConnectorIcon, isWalletInstalledAsync, } from '@lifi/wallet-management';
|
|
4
|
-
import { Avatar, ListItemAvatar } from '@mui/material';
|
|
5
|
-
import { useConnect, useDisconnect } from 'wagmi';
|
|
6
|
-
import { ListItemButton } from '../../components/ListItemButton.js';
|
|
7
|
-
import { ListItemText } from '../../components/ListItemText.js';
|
|
8
|
-
import { useNavigateBack } from '../../hooks/useNavigateBack.js';
|
|
9
|
-
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
10
|
-
import { WidgetEvent } from '../../types/events.js';
|
|
11
|
-
export const EVMListItemButton = ({ connectedConnector, connector, onNotInstalled, }) => {
|
|
12
|
-
const { navigateBack } = useNavigateBack();
|
|
13
|
-
const emitter = useWidgetEvents();
|
|
14
|
-
const { connectAsync } = useConnect();
|
|
15
|
-
const { disconnectAsync } = useDisconnect();
|
|
16
|
-
const handleEVMConnect = async () => {
|
|
17
|
-
const identityCheckPassed = await isWalletInstalledAsync(connector.id);
|
|
18
|
-
if (!identityCheckPassed) {
|
|
19
|
-
onNotInstalled(connector);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (connectedConnector) {
|
|
23
|
-
await disconnectAsync({ connector: connectedConnector });
|
|
24
|
-
}
|
|
25
|
-
await connectAsync({ connector }, {
|
|
26
|
-
onSuccess(data) {
|
|
27
|
-
emitter.emit(WidgetEvent.WalletConnected, {
|
|
28
|
-
address: data.accounts[0],
|
|
29
|
-
chainId: data.chainId,
|
|
30
|
-
chainType: ChainType.EVM,
|
|
31
|
-
});
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
navigateBack();
|
|
35
|
-
};
|
|
36
|
-
const connectorName = connector.displayName || connector.name;
|
|
37
|
-
return (_jsxs(ListItemButton, { onClick: handleEVMConnect, children: [_jsx(ListItemAvatar, { children: _jsx(Avatar, { src: getConnectorIcon(connector), alt: connectorName, children: connectorName?.[0] }) }), _jsx(ListItemText, { primary: connectorName })] }, connector.id));
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=EVMListItemButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EVMListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/EVMListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,kBAAkB,EAClB,SAAS,EACT,cAAc,GACS,EAAE,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;IACtC,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,EAAE,CAAC;IAE5C,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,MAAM,mBAAmB,GAAG,MAAM,sBAAsB,CACrD,SAAuB,CAAC,EAAE,CAC5B,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,cAAc,CAAC,SAAsB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,eAAe,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,YAAY,CAChB,EAAE,SAAS,EAAE,EACb;YACE,SAAS,CAAC,IAAI;gBACZ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;oBACxC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,SAAS,EAAE,SAAS,CAAC,GAAG;iBACzB,CAAC,CAAC;YACL,CAAC;SACF,CACF,CAAC;QACF,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,aAAa,GAChB,SAAuC,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IAEzE,OAAO,CACL,MAAC,cAAc,IAAoB,OAAO,EAAE,gBAAgB,aAC1D,KAAC,cAAc,cACb,KAAC,MAAM,IACL,GAAG,EAAE,gBAAgB,CAAC,SAAsB,CAAC,EAC7C,GAAG,EAAE,aAAa,YAEjB,aAAa,EAAE,CAAC,CAAC,CAAC,GACZ,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,aAAa,GAAI,KATrB,SAAS,CAAC,EAAE,CAUhB,CAClB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { ChainId, ChainType } from '@lifi/sdk';
|
|
3
|
-
import { Avatar, ListItemAvatar } from '@mui/material';
|
|
4
|
-
import { useWallet } from '@solana/wallet-adapter-react';
|
|
5
|
-
import { ListItemButton } from '../../components/ListItemButton.js';
|
|
6
|
-
import { ListItemText } from '../../components/ListItemText.js';
|
|
7
|
-
import { useNavigateBack } from '../../hooks/useNavigateBack.js';
|
|
8
|
-
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
9
|
-
import { WidgetEvent } from '../../types/events.js';
|
|
10
|
-
export const SVMListItemButton = ({ wallet }) => {
|
|
11
|
-
const { navigateBack } = useNavigateBack();
|
|
12
|
-
const emitter = useWidgetEvents();
|
|
13
|
-
const { select, disconnect, connected } = useWallet();
|
|
14
|
-
const connect = async () => {
|
|
15
|
-
if (connected) {
|
|
16
|
-
await disconnect();
|
|
17
|
-
}
|
|
18
|
-
select(wallet.adapter.name);
|
|
19
|
-
// We use autoConnect on wallet selection
|
|
20
|
-
// await solanaConnect();
|
|
21
|
-
wallet.adapter.once('connect', (publicKey) => {
|
|
22
|
-
emitter.emit(WidgetEvent.WalletConnected, {
|
|
23
|
-
address: publicKey?.toString(),
|
|
24
|
-
chainId: ChainId.SOL,
|
|
25
|
-
chainType: ChainType.SVM,
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
navigateBack();
|
|
29
|
-
};
|
|
30
|
-
return (_jsxs(ListItemButton, { onClick: connect, children: [_jsx(ListItemAvatar, { children: _jsx(Avatar, { src: wallet.adapter.icon, alt: wallet.adapter.name, children: wallet.adapter.name[0] }) }), _jsx(ListItemText, { primary: `${wallet.adapter.name} (Solana)` })] }, wallet.adapter.name));
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=SVMListItemButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SVMListItemButton.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/SVMListItemButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,MAAM,EAA0B,EAAE,EAAE;IACtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAEtD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,yCAAyC;QACzC,yBAAyB;QACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;gBACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE;gBAC9B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,SAAS,CAAC,GAAG;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,cAAc,IAA2B,OAAO,EAAE,OAAO,aACxD,KAAC,cAAc,cACb,KAAC,MAAM,IAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,YACvD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAChB,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,GAAI,KANzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAOvB,CAClB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const SelectWalletPage: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button, DialogActions, DialogContent, DialogContentText, List, } from '@mui/material';
|
|
3
|
-
import { useCallback, useState } from 'react';
|
|
4
|
-
import { useTranslation } from 'react-i18next';
|
|
5
|
-
import { useAccount as useWagmiAccount } from 'wagmi';
|
|
6
|
-
import { Dialog } from '../../components/Dialog.js';
|
|
7
|
-
import { PageContainer } from '../../components/PageContainer.js';
|
|
8
|
-
import { useHeader } from '../../hooks/useHeader.js';
|
|
9
|
-
import { useWallets } from '../../hooks/useWallets.js';
|
|
10
|
-
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
|
|
11
|
-
import { EVMListItemButton } from './EVMListItemButton.js';
|
|
12
|
-
import { SVMListItemButton } from './SVMListItemButton.js';
|
|
13
|
-
export const SelectWalletPage = () => {
|
|
14
|
-
const { t } = useTranslation();
|
|
15
|
-
const { chains, walletConfig } = useWidgetConfig();
|
|
16
|
-
const account = useWagmiAccount();
|
|
17
|
-
const [walletIdentity, setWalletIdentity] = useState({ show: false });
|
|
18
|
-
useHeader(t(`header.selectWallet`));
|
|
19
|
-
const closeDialog = () => {
|
|
20
|
-
setWalletIdentity((state) => ({
|
|
21
|
-
...state,
|
|
22
|
-
show: false,
|
|
23
|
-
}));
|
|
24
|
-
};
|
|
25
|
-
const handleNotInstalled = useCallback(async (connector) => {
|
|
26
|
-
setWalletIdentity({
|
|
27
|
-
show: true,
|
|
28
|
-
connector,
|
|
29
|
-
});
|
|
30
|
-
}, []);
|
|
31
|
-
const wallets = useWallets(walletConfig, chains);
|
|
32
|
-
return (_jsxs(PageContainer, { disableGutters: true, children: [_jsx(List, { sx: {
|
|
33
|
-
paddingTop: 0,
|
|
34
|
-
paddingLeft: 1.5,
|
|
35
|
-
paddingRight: 1.5,
|
|
36
|
-
paddingBottom: 1.5,
|
|
37
|
-
}, children: wallets?.map((connector) => connector.id ? (_jsx(EVMListItemButton, { connector: connector, connectedConnector: account.connector, onNotInstalled: handleNotInstalled }, connector.id)) : (_jsx(SVMListItemButton, { wallet: connector }, connector.adapter.name))) }), _jsxs(Dialog, { open: walletIdentity.show, onClose: closeDialog, children: [_jsx(DialogContent, { children: _jsx(DialogContentText, { children: t('wallet.extensionNotFound', {
|
|
38
|
-
name: walletIdentity.connector?.name,
|
|
39
|
-
}) }) }), _jsx(DialogActions, { children: _jsx(Button, { variant: "contained", onClick: closeDialog, autoFocus: true, children: t('button.ok') }) })] })] }));
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=SelectWalletPage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectWalletPage.js","sourceRoot":"","sources":["../../../pages/SelectWalletPage/SelectWalletPage.tsx"],"names":[],"mappings":"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"}
|
package/_esm/utils/svm.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const isSVMAddress: (address: string) => boolean;
|
package/_esm/utils/svm.js
DELETED
package/_esm/utils/svm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"svm.js","sourceRoot":"","sources":["../../utils/svm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE;IAC9C,IAAI,CAAC;QACH,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Avatar, Box, Skeleton, styled } from '@mui/material';
|
|
2
|
-
|
|
3
|
-
export const SmallAvatar = styled(Avatar)(({ theme }) => ({
|
|
4
|
-
background: theme.palette.background.paper,
|
|
5
|
-
width: 16,
|
|
6
|
-
height: 16,
|
|
7
|
-
}));
|
|
8
|
-
|
|
9
|
-
export const SmallAvatarSkeletonBase = styled(Skeleton)(({ theme }) => ({
|
|
10
|
-
width: 16,
|
|
11
|
-
height: 16,
|
|
12
|
-
}));
|
|
13
|
-
|
|
14
|
-
export const SmallAvatarSkeletonContainer = styled(Box)(({ theme }) => ({
|
|
15
|
-
background: theme.palette.background.paper,
|
|
16
|
-
borderRadius: '50%',
|
|
17
|
-
}));
|
|
18
|
-
|
|
19
|
-
export const SmallAvatarSkeleton = () => {
|
|
20
|
-
return (
|
|
21
|
-
<SmallAvatarSkeletonContainer>
|
|
22
|
-
<SmallAvatarSkeletonBase variant="circular" />
|
|
23
|
-
</SmallAvatarSkeletonContainer>
|
|
24
|
-
);
|
|
25
|
-
};
|
package/hooks/useAccount.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { ChainId, ChainType } from '@lifi/sdk';
|
|
2
|
-
import type { WalletAdapter } from '@solana/wallet-adapter-base';
|
|
3
|
-
import { useWallet } from '@solana/wallet-adapter-react';
|
|
4
|
-
import { useMemo } from 'react';
|
|
5
|
-
import type { Chain } from 'viem';
|
|
6
|
-
import type { Connector } from 'wagmi';
|
|
7
|
-
import { useAccount as useWagmiAccount } from 'wagmi';
|
|
8
|
-
|
|
9
|
-
export interface AccountBase {
|
|
10
|
-
address?: string;
|
|
11
|
-
addresses?: readonly string[];
|
|
12
|
-
chain?: Chain;
|
|
13
|
-
chainId?: number;
|
|
14
|
-
chainType?: ChainType;
|
|
15
|
-
isConnected: boolean;
|
|
16
|
-
isConnecting: boolean;
|
|
17
|
-
isDisconnected: boolean;
|
|
18
|
-
isReconnecting: boolean;
|
|
19
|
-
status: 'connected' | 'reconnecting' | 'connecting' | 'disconnected';
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface EVMAccount extends AccountBase {
|
|
23
|
-
chainType: ChainType.EVM;
|
|
24
|
-
connector?: Connector;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface SVMAccount extends AccountBase {
|
|
28
|
-
chainType: ChainType.SVM;
|
|
29
|
-
connector?: WalletAdapter;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface DefaultAccount extends AccountBase {
|
|
33
|
-
connector?: never;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export type Account = EVMAccount | SVMAccount | DefaultAccount;
|
|
37
|
-
|
|
38
|
-
export interface AccountResult {
|
|
39
|
-
account: Account;
|
|
40
|
-
/**
|
|
41
|
-
* Connected accounts
|
|
42
|
-
*/
|
|
43
|
-
accounts: Account[];
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
interface UseAccountArgs {
|
|
47
|
-
chainType?: ChainType;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const defaultAccount: AccountBase = {
|
|
51
|
-
isConnected: false,
|
|
52
|
-
isConnecting: false,
|
|
53
|
-
isReconnecting: false,
|
|
54
|
-
isDisconnected: true,
|
|
55
|
-
status: 'disconnected',
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
* @param args When we provide args we want to return either account with corresponding chainType or default disconnected one
|
|
61
|
-
* @returns - Account result
|
|
62
|
-
*/
|
|
63
|
-
export const useAccount = (args?: UseAccountArgs): AccountResult => {
|
|
64
|
-
const account = useWagmiAccount();
|
|
65
|
-
const { wallet } = useWallet();
|
|
66
|
-
|
|
67
|
-
// We create a simple variable from the args object
|
|
68
|
-
// to avoid re-render useMemo on every object reference change.
|
|
69
|
-
const hasChainTypeArgs = Boolean(args);
|
|
70
|
-
|
|
71
|
-
return useMemo(() => {
|
|
72
|
-
const svm: Account = wallet?.adapter.publicKey
|
|
73
|
-
? {
|
|
74
|
-
address: wallet?.adapter.publicKey.toString(),
|
|
75
|
-
chainId: ChainId.SOL,
|
|
76
|
-
chainType: ChainType.SVM,
|
|
77
|
-
connector: wallet?.adapter,
|
|
78
|
-
isConnected: Boolean(wallet?.adapter.publicKey),
|
|
79
|
-
isConnecting: false,
|
|
80
|
-
isReconnecting: false,
|
|
81
|
-
isDisconnected: !wallet,
|
|
82
|
-
status: 'connected',
|
|
83
|
-
}
|
|
84
|
-
: {
|
|
85
|
-
chainType: ChainType.SVM,
|
|
86
|
-
isConnected: false,
|
|
87
|
-
isConnecting: false,
|
|
88
|
-
isReconnecting: false,
|
|
89
|
-
isDisconnected: true,
|
|
90
|
-
status: 'disconnected',
|
|
91
|
-
};
|
|
92
|
-
const evm: Account = { ...account, chainType: ChainType.EVM };
|
|
93
|
-
const accounts = [evm, svm];
|
|
94
|
-
const connectedAccounts = [evm, svm].filter(
|
|
95
|
-
(account) => account.isConnected && account.address,
|
|
96
|
-
);
|
|
97
|
-
return {
|
|
98
|
-
account:
|
|
99
|
-
accounts.find(
|
|
100
|
-
(account) =>
|
|
101
|
-
(!hasChainTypeArgs || account.chainType === args?.chainType) &&
|
|
102
|
-
account.isConnected &&
|
|
103
|
-
account.address,
|
|
104
|
-
) ?? defaultAccount,
|
|
105
|
-
// We need to return only connected account list
|
|
106
|
-
accounts: connectedAccounts,
|
|
107
|
-
};
|
|
108
|
-
}, [account, args?.chainType, hasChainTypeArgs, wallet]);
|
|
109
|
-
};
|