@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.
Files changed (253) hide show
  1. package/AppProvider.tsx +4 -4
  2. package/AppRoutes.tsx +2 -14
  3. package/CHANGELOG.md +0 -14
  4. package/_esm/AppProvider.js +1 -1
  5. package/_esm/AppProvider.js.map +1 -1
  6. package/_esm/AppRoutes.js +2 -9
  7. package/_esm/AppRoutes.js.map +1 -1
  8. package/_esm/components/ActiveTransactions/ActiveTransactions.style.js +1 -1
  9. package/_esm/components/ActiveTransactions/ActiveTransactions.style.js.map +1 -1
  10. package/_esm/components/AmountInput/AmountInputEndAdornment.js +1 -3
  11. package/_esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  12. package/_esm/components/AppContainer.js +0 -7
  13. package/_esm/components/AppContainer.js.map +1 -1
  14. package/_esm/components/Avatar/AccountAvatar.d.ts +1 -1
  15. package/_esm/components/Avatar/AccountAvatar.js +1 -1
  16. package/_esm/components/Avatar/AccountAvatar.js.map +1 -1
  17. package/_esm/components/Avatar/Avatar.d.ts +1 -0
  18. package/_esm/components/Avatar/Avatar.js +7 -4
  19. package/_esm/components/Avatar/Avatar.js.map +1 -1
  20. package/_esm/components/Avatar/Avatar.style.d.ts +6 -3
  21. package/_esm/components/Avatar/Avatar.style.js +19 -6
  22. package/_esm/components/Avatar/Avatar.style.js.map +1 -1
  23. package/_esm/components/Avatar/SmallAvatar.d.ts +4 -0
  24. package/_esm/components/Avatar/SmallAvatar.js +12 -0
  25. package/_esm/components/Avatar/SmallAvatar.js.map +1 -0
  26. package/_esm/components/Avatar/TokenAvatar.js +1 -1
  27. package/_esm/components/Avatar/TokenAvatar.js.map +1 -1
  28. package/_esm/components/BaseTransactionButton/BaseTransactionButton.js +3 -5
  29. package/_esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  30. package/_esm/components/ChainSelect/useChainSelect.js +5 -1
  31. package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
  32. package/_esm/components/FeeBreakdownTooltip.js +4 -1
  33. package/_esm/components/FeeBreakdownTooltip.js.map +1 -1
  34. package/_esm/components/Header/EVMDisconnectIconButton.js +5 -4
  35. package/_esm/components/Header/EVMDisconnectIconButton.js.map +1 -1
  36. package/_esm/components/Header/NavigationHeader.js +1 -1
  37. package/_esm/components/Header/NavigationHeader.js.map +1 -1
  38. package/_esm/components/Header/UTXODisconnectIconButton.d.ts +4 -0
  39. package/_esm/components/Header/UTXODisconnectIconButton.js +13 -0
  40. package/_esm/components/Header/UTXODisconnectIconButton.js.map +1 -0
  41. package/_esm/components/Header/WalletHeader.js +5 -9
  42. package/_esm/components/Header/WalletHeader.js.map +1 -1
  43. package/_esm/components/Header/WalletMenu.js +10 -15
  44. package/_esm/components/Header/WalletMenu.js.map +1 -1
  45. package/_esm/components/Header/WalletMenu.style.js +5 -1
  46. package/_esm/components/Header/WalletMenu.style.js.map +1 -1
  47. package/_esm/components/Routes/RoutesExpanded.js +1 -1
  48. package/_esm/components/Routes/RoutesExpanded.js.map +1 -1
  49. package/_esm/components/SendToWallet/SendToWalletButton.js +1 -1
  50. package/_esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  51. package/_esm/components/StepActions/StepActions.js +1 -1
  52. package/_esm/components/StepActions/StepActions.js.map +1 -1
  53. package/_esm/components/Tabs/Tabs.style.d.ts +1 -1
  54. package/_esm/components/Token/Token.js +1 -1
  55. package/_esm/components/Token/Token.js.map +1 -1
  56. package/_esm/components/TokenList/TokenList.js +1 -1
  57. package/_esm/components/TokenList/TokenList.js.map +1 -1
  58. package/_esm/components/TokenList/TokenListItem.js +11 -5
  59. package/_esm/components/TokenList/TokenListItem.js.map +1 -1
  60. package/_esm/components/TokenList/VirtualizedTokenList.js +1 -1
  61. package/_esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  62. package/_esm/components/TokenList/types.d.ts +3 -3
  63. package/_esm/components/TokenRate/TokenRate.js +2 -2
  64. package/_esm/components/TokenRate/TokenRate.js.map +1 -1
  65. package/_esm/config/version.d.ts +1 -1
  66. package/_esm/config/version.js +1 -1
  67. package/_esm/config/version.js.map +1 -1
  68. package/_esm/hooks/useAvailableChains.d.ts +2 -1
  69. package/_esm/hooks/useAvailableChains.js +9 -8
  70. package/_esm/hooks/useAvailableChains.js.map +1 -1
  71. package/_esm/hooks/useChains.d.ts +4 -3
  72. package/_esm/hooks/useChains.js +5 -3
  73. package/_esm/hooks/useChains.js.map +1 -1
  74. package/_esm/hooks/useFromTokenSufficiency.js +1 -1
  75. package/_esm/hooks/useFromTokenSufficiency.js.map +1 -1
  76. package/_esm/hooks/useGasSufficiency.js +3 -3
  77. package/_esm/hooks/useGasSufficiency.js.map +1 -1
  78. package/_esm/hooks/useProcessMessage.js +4 -0
  79. package/_esm/hooks/useProcessMessage.js.map +1 -1
  80. package/_esm/hooks/useRouteExecution.js +1 -1
  81. package/_esm/hooks/useRouteExecution.js.map +1 -1
  82. package/_esm/hooks/useRoutes.js +1 -1
  83. package/_esm/hooks/useRoutes.js.map +1 -1
  84. package/_esm/hooks/useScrollableContainer.d.ts +1 -0
  85. package/_esm/hooks/useScrollableContainer.js +2 -1
  86. package/_esm/hooks/useScrollableContainer.js.map +1 -1
  87. package/_esm/hooks/useSetContentHeight.js +6 -9
  88. package/_esm/hooks/useSetContentHeight.js.map +1 -1
  89. package/_esm/hooks/useTokenBalance.js +1 -1
  90. package/_esm/hooks/useTokenBalance.js.map +1 -1
  91. package/_esm/hooks/useTokenBalances.js +1 -1
  92. package/_esm/hooks/useTokenBalances.js.map +1 -1
  93. package/_esm/hooks/useTokens.js +1 -1
  94. package/_esm/hooks/useTokens.js.map +1 -1
  95. package/_esm/hooks/useTransactionDetails.js +1 -1
  96. package/_esm/hooks/useTransactionDetails.js.map +1 -1
  97. package/_esm/hooks/useTransactionHistory.js +1 -1
  98. package/_esm/hooks/useTransactionHistory.js.map +1 -1
  99. package/_esm/i18n/en.json +3 -4
  100. package/_esm/index.d.ts +0 -2
  101. package/_esm/index.js +0 -2
  102. package/_esm/index.js.map +1 -1
  103. package/_esm/pages/RoutesPage/RoutesPage.js +1 -1
  104. package/_esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  105. package/_esm/pages/SelectTokenPage/useTokenListHeight.js +4 -7
  106. package/_esm/pages/SelectTokenPage/useTokenListHeight.js.map +1 -1
  107. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js +1 -1
  108. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
  109. package/_esm/pages/SendToWallet/SendToWalletPage.js +1 -1
  110. package/_esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  111. package/_esm/pages/TransactionPage/StatusBottomSheet.js +5 -5
  112. package/_esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  113. package/_esm/providers/I18nProvider/types.d.ts +2 -2
  114. package/_esm/providers/WalletProvider/SDKProviders.js +15 -7
  115. package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  116. package/_esm/providers/WalletProvider/UTXOBaseProvider.d.ts +2 -0
  117. package/_esm/providers/WalletProvider/UTXOBaseProvider.js +17 -0
  118. package/_esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -0
  119. package/_esm/providers/WalletProvider/UTXOExternalContext.d.ts +1 -0
  120. package/_esm/providers/WalletProvider/UTXOExternalContext.js +3 -0
  121. package/_esm/providers/WalletProvider/UTXOExternalContext.js.map +1 -0
  122. package/_esm/providers/WalletProvider/UTXOProvider.d.ts +3 -0
  123. package/_esm/providers/WalletProvider/UTXOProvider.js +18 -0
  124. package/_esm/providers/WalletProvider/UTXOProvider.js.map +1 -0
  125. package/_esm/providers/WalletProvider/WalletProvider.d.ts +1 -0
  126. package/_esm/providers/WalletProvider/WalletProvider.js +14 -1
  127. package/_esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  128. package/_esm/providers/WalletProvider/useHasExternalWalletProvider.d.ts +1 -1
  129. package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js +8 -3
  130. package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js.map +1 -1
  131. package/_esm/providers/WidgetProvider/WidgetProvider.js +2 -1
  132. package/_esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  133. package/_esm/providers/WidgetProvider/types.d.ts +0 -2
  134. package/_esm/stores/form/FormUpdater.js +1 -1
  135. package/_esm/stores/form/FormUpdater.js.map +1 -1
  136. package/_esm/stores/form/types.d.ts +4 -4
  137. package/_esm/stores/routes/useExecutingRoutesIds.js +1 -1
  138. package/_esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
  139. package/_esm/themes/createTheme.js +2 -1
  140. package/_esm/themes/createTheme.js.map +1 -1
  141. package/_esm/types/events.d.ts +6 -0
  142. package/_esm/types/events.js +3 -0
  143. package/_esm/types/events.js.map +1 -1
  144. package/_esm/utils/chainType.js +2 -3
  145. package/_esm/utils/chainType.js.map +1 -1
  146. package/_esm/utils/elements.d.ts +0 -4
  147. package/_esm/utils/elements.js +0 -6
  148. package/_esm/utils/elements.js.map +1 -1
  149. package/_esm/utils/fees.js +9 -5
  150. package/_esm/utils/fees.js.map +1 -1
  151. package/_esm/utils/format.js +1 -1
  152. package/_esm/utils/format.js.map +1 -1
  153. package/_esm/utils/navigationRoutes.d.ts +0 -1
  154. package/_esm/utils/navigationRoutes.js +0 -3
  155. package/_esm/utils/navigationRoutes.js.map +1 -1
  156. package/_esm/utils/wallet.js +1 -1
  157. package/components/ActiveTransactions/ActiveTransactions.style.ts +1 -1
  158. package/components/AmountInput/AmountInputEndAdornment.tsx +1 -5
  159. package/components/AppContainer.tsx +0 -8
  160. package/components/Avatar/AccountAvatar.tsx +2 -2
  161. package/components/Avatar/Avatar.style.tsx +20 -7
  162. package/components/Avatar/Avatar.tsx +12 -4
  163. package/components/Avatar/SmallAvatar.tsx +16 -0
  164. package/components/Avatar/TokenAvatar.tsx +1 -1
  165. package/components/BaseTransactionButton/BaseTransactionButton.tsx +3 -5
  166. package/components/ChainSelect/useChainSelect.ts +10 -1
  167. package/components/FeeBreakdownTooltip.tsx +4 -1
  168. package/components/Header/EVMDisconnectIconButton.tsx +5 -5
  169. package/components/Header/NavigationHeader.tsx +1 -1
  170. package/components/Header/UTXODisconnectIconButton.tsx +24 -0
  171. package/components/Header/WalletHeader.tsx +11 -12
  172. package/components/Header/WalletMenu.style.tsx +5 -1
  173. package/components/Header/WalletMenu.tsx +23 -24
  174. package/components/Routes/RoutesExpanded.tsx +1 -2
  175. package/components/SendToWallet/SendToWalletButton.tsx +1 -1
  176. package/components/StepActions/StepActions.tsx +1 -1
  177. package/components/Token/Token.tsx +1 -1
  178. package/components/TokenList/TokenList.tsx +1 -1
  179. package/components/TokenList/TokenListItem.tsx +15 -7
  180. package/components/TokenList/VirtualizedTokenList.tsx +1 -1
  181. package/components/TokenList/types.ts +3 -3
  182. package/components/TokenRate/TokenRate.tsx +2 -2
  183. package/config/version.ts +1 -1
  184. package/hooks/useAvailableChains.ts +9 -10
  185. package/hooks/useChains.ts +6 -3
  186. package/hooks/useFromTokenSufficiency.ts +1 -1
  187. package/hooks/useGasSufficiency.ts +5 -3
  188. package/hooks/useProcessMessage.ts +4 -0
  189. package/hooks/useRouteExecution.ts +1 -1
  190. package/hooks/useRoutes.ts +1 -1
  191. package/hooks/useScrollableContainer.ts +6 -1
  192. package/hooks/useSetContentHeight.ts +6 -10
  193. package/hooks/useTokenBalance.ts +1 -1
  194. package/hooks/useTokenBalances.ts +1 -1
  195. package/hooks/useTokens.ts +2 -1
  196. package/hooks/useTransactionDetails.ts +1 -1
  197. package/hooks/useTransactionHistory.ts +1 -1
  198. package/i18n/en.json +3 -4
  199. package/index.ts +0 -2
  200. package/package.json +5 -5
  201. package/pages/RoutesPage/RoutesPage.tsx +1 -1
  202. package/pages/SelectTokenPage/useTokenListHeight.ts +10 -13
  203. package/pages/SendToWallet/ConnectedWalletsPage.tsx +2 -2
  204. package/pages/SendToWallet/SendToWalletPage.tsx +1 -1
  205. package/pages/TransactionPage/StatusBottomSheet.tsx +8 -6
  206. package/providers/I18nProvider/types.ts +2 -2
  207. package/providers/WalletProvider/SDKProviders.tsx +25 -7
  208. package/providers/WalletProvider/UTXOBaseProvider.tsx +28 -0
  209. package/providers/WalletProvider/UTXOExternalContext.ts +3 -0
  210. package/providers/WalletProvider/UTXOProvider.tsx +26 -0
  211. package/providers/WalletProvider/WalletProvider.tsx +24 -3
  212. package/providers/WalletProvider/useHasExternalWalletProvider.ts +11 -5
  213. package/providers/WidgetProvider/WidgetProvider.tsx +2 -1
  214. package/providers/WidgetProvider/types.ts +0 -2
  215. package/stores/form/FormUpdater.tsx +1 -1
  216. package/stores/form/types.ts +4 -4
  217. package/stores/routes/useExecutingRoutesIds.ts +1 -1
  218. package/themes/createTheme.ts +3 -1
  219. package/types/events.ts +6 -0
  220. package/utils/chainType.ts +2 -3
  221. package/utils/elements.ts +0 -21
  222. package/utils/fees.ts +15 -13
  223. package/utils/format.ts +1 -1
  224. package/utils/navigationRoutes.ts +0 -3
  225. package/utils/wallet.ts +1 -1
  226. package/_esm/components/SmallAvatar.d.ts +0 -10
  227. package/_esm/components/SmallAvatar.js +0 -19
  228. package/_esm/components/SmallAvatar.js.map +0 -1
  229. package/_esm/hooks/useAccount.d.ts +0 -45
  230. package/_esm/hooks/useAccount.js +0 -56
  231. package/_esm/hooks/useAccount.js.map +0 -1
  232. package/_esm/hooks/useWallets.d.ts +0 -6
  233. package/_esm/hooks/useWallets.js +0 -80
  234. package/_esm/hooks/useWallets.js.map +0 -1
  235. package/_esm/pages/SelectWalletPage/EVMListItemButton.d.ts +0 -9
  236. package/_esm/pages/SelectWalletPage/EVMListItemButton.js +0 -39
  237. package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +0 -1
  238. package/_esm/pages/SelectWalletPage/SVMListItemButton.d.ts +0 -6
  239. package/_esm/pages/SelectWalletPage/SVMListItemButton.js +0 -32
  240. package/_esm/pages/SelectWalletPage/SVMListItemButton.js.map +0 -1
  241. package/_esm/pages/SelectWalletPage/SelectWalletPage.d.ts +0 -1
  242. package/_esm/pages/SelectWalletPage/SelectWalletPage.js +0 -41
  243. package/_esm/pages/SelectWalletPage/SelectWalletPage.js.map +0 -1
  244. package/_esm/utils/svm.d.ts +0 -1
  245. package/_esm/utils/svm.js +0 -11
  246. package/_esm/utils/svm.js.map +0 -1
  247. package/components/SmallAvatar.tsx +0 -25
  248. package/hooks/useAccount.ts +0 -109
  249. package/hooks/useWallets.ts +0 -147
  250. package/pages/SelectWalletPage/EVMListItemButton.tsx +0 -74
  251. package/pages/SelectWalletPage/SVMListItemButton.tsx +0 -47
  252. package/pages/SelectWalletPage/SelectWalletPage.tsx +0 -90
  253. 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 {};
@@ -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;
@@ -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,6 +0,0 @@
1
- import type { Wallet } from '@solana/wallet-adapter-react';
2
- interface SVMListItemButtonProps {
3
- wallet: Wallet;
4
- }
5
- export declare const SVMListItemButton: ({ wallet }: SVMListItemButtonProps) => import("react/jsx-runtime").JSX.Element;
6
- export {};
@@ -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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"}
@@ -1 +0,0 @@
1
- export declare const isSVMAddress: (address: string) => boolean;
package/_esm/utils/svm.js DELETED
@@ -1,11 +0,0 @@
1
- import { PublicKey } from '@solana/web3.js';
2
- export const isSVMAddress = (address) => {
3
- try {
4
- new PublicKey(address);
5
- return true;
6
- }
7
- catch {
8
- return false;
9
- }
10
- };
11
- //# sourceMappingURL=svm.js.map
@@ -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
- };
@@ -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
- };