@lifi/widget 3.6.1 → 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 (233) hide show
  1. package/AppProvider.tsx +4 -4
  2. package/AppRoutes.tsx +2 -14
  3. package/CHANGELOG.md +0 -7
  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/Avatar/AccountAvatar.d.ts +1 -1
  13. package/_esm/components/Avatar/AccountAvatar.js +1 -1
  14. package/_esm/components/Avatar/AccountAvatar.js.map +1 -1
  15. package/_esm/components/Avatar/Avatar.d.ts +1 -0
  16. package/_esm/components/Avatar/Avatar.js +7 -4
  17. package/_esm/components/Avatar/Avatar.js.map +1 -1
  18. package/_esm/components/Avatar/Avatar.style.d.ts +6 -3
  19. package/_esm/components/Avatar/Avatar.style.js +19 -6
  20. package/_esm/components/Avatar/Avatar.style.js.map +1 -1
  21. package/_esm/components/Avatar/SmallAvatar.d.ts +4 -0
  22. package/_esm/components/Avatar/SmallAvatar.js +12 -0
  23. package/_esm/components/Avatar/SmallAvatar.js.map +1 -0
  24. package/_esm/components/Avatar/TokenAvatar.js +1 -1
  25. package/_esm/components/Avatar/TokenAvatar.js.map +1 -1
  26. package/_esm/components/BaseTransactionButton/BaseTransactionButton.js +3 -5
  27. package/_esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  28. package/_esm/components/ChainSelect/useChainSelect.js +5 -1
  29. package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
  30. package/_esm/components/FeeBreakdownTooltip.js +4 -1
  31. package/_esm/components/FeeBreakdownTooltip.js.map +1 -1
  32. package/_esm/components/Header/EVMDisconnectIconButton.js +5 -4
  33. package/_esm/components/Header/EVMDisconnectIconButton.js.map +1 -1
  34. package/_esm/components/Header/NavigationHeader.js +1 -1
  35. package/_esm/components/Header/NavigationHeader.js.map +1 -1
  36. package/_esm/components/Header/UTXODisconnectIconButton.d.ts +4 -0
  37. package/_esm/components/Header/UTXODisconnectIconButton.js +13 -0
  38. package/_esm/components/Header/UTXODisconnectIconButton.js.map +1 -0
  39. package/_esm/components/Header/WalletHeader.js +5 -9
  40. package/_esm/components/Header/WalletHeader.js.map +1 -1
  41. package/_esm/components/Header/WalletMenu.js +10 -15
  42. package/_esm/components/Header/WalletMenu.js.map +1 -1
  43. package/_esm/components/Header/WalletMenu.style.js +5 -1
  44. package/_esm/components/Header/WalletMenu.style.js.map +1 -1
  45. package/_esm/components/Routes/RoutesExpanded.js +1 -1
  46. package/_esm/components/Routes/RoutesExpanded.js.map +1 -1
  47. package/_esm/components/SendToWallet/SendToWalletButton.js +1 -1
  48. package/_esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  49. package/_esm/components/StepActions/StepActions.js +1 -1
  50. package/_esm/components/StepActions/StepActions.js.map +1 -1
  51. package/_esm/components/Tabs/Tabs.style.d.ts +1 -1
  52. package/_esm/components/Token/Token.js +1 -1
  53. package/_esm/components/Token/Token.js.map +1 -1
  54. package/_esm/components/TokenList/TokenList.js +1 -1
  55. package/_esm/components/TokenList/TokenList.js.map +1 -1
  56. package/_esm/components/TokenList/TokenListItem.js +11 -5
  57. package/_esm/components/TokenList/TokenListItem.js.map +1 -1
  58. package/_esm/components/TokenList/VirtualizedTokenList.js +1 -1
  59. package/_esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  60. package/_esm/components/TokenList/types.d.ts +3 -3
  61. package/_esm/components/TokenRate/TokenRate.js +2 -2
  62. package/_esm/components/TokenRate/TokenRate.js.map +1 -1
  63. package/_esm/config/version.d.ts +1 -1
  64. package/_esm/config/version.js +1 -1
  65. package/_esm/config/version.js.map +1 -1
  66. package/_esm/hooks/useAvailableChains.d.ts +2 -1
  67. package/_esm/hooks/useAvailableChains.js +9 -8
  68. package/_esm/hooks/useAvailableChains.js.map +1 -1
  69. package/_esm/hooks/useChains.d.ts +4 -3
  70. package/_esm/hooks/useChains.js +5 -3
  71. package/_esm/hooks/useChains.js.map +1 -1
  72. package/_esm/hooks/useFromTokenSufficiency.js +1 -1
  73. package/_esm/hooks/useFromTokenSufficiency.js.map +1 -1
  74. package/_esm/hooks/useGasSufficiency.js +3 -3
  75. package/_esm/hooks/useGasSufficiency.js.map +1 -1
  76. package/_esm/hooks/useProcessMessage.js +4 -0
  77. package/_esm/hooks/useProcessMessage.js.map +1 -1
  78. package/_esm/hooks/useRouteExecution.js +1 -1
  79. package/_esm/hooks/useRouteExecution.js.map +1 -1
  80. package/_esm/hooks/useRoutes.js +1 -1
  81. package/_esm/hooks/useRoutes.js.map +1 -1
  82. package/_esm/hooks/useTokenBalance.js +1 -1
  83. package/_esm/hooks/useTokenBalance.js.map +1 -1
  84. package/_esm/hooks/useTokenBalances.js +1 -1
  85. package/_esm/hooks/useTokenBalances.js.map +1 -1
  86. package/_esm/hooks/useTokens.js +1 -1
  87. package/_esm/hooks/useTokens.js.map +1 -1
  88. package/_esm/hooks/useTransactionDetails.js +1 -1
  89. package/_esm/hooks/useTransactionDetails.js.map +1 -1
  90. package/_esm/hooks/useTransactionHistory.js +1 -1
  91. package/_esm/hooks/useTransactionHistory.js.map +1 -1
  92. package/_esm/i18n/en.json +3 -4
  93. package/_esm/index.d.ts +0 -2
  94. package/_esm/index.js +0 -2
  95. package/_esm/index.js.map +1 -1
  96. package/_esm/pages/RoutesPage/RoutesPage.js +1 -1
  97. package/_esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  98. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js +1 -1
  99. package/_esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
  100. package/_esm/pages/SendToWallet/SendToWalletPage.js +1 -1
  101. package/_esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  102. package/_esm/providers/I18nProvider/types.d.ts +2 -2
  103. package/_esm/providers/WalletProvider/SDKProviders.js +15 -7
  104. package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  105. package/_esm/providers/WalletProvider/UTXOBaseProvider.d.ts +2 -0
  106. package/_esm/providers/WalletProvider/UTXOBaseProvider.js +17 -0
  107. package/_esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -0
  108. package/_esm/providers/WalletProvider/UTXOExternalContext.d.ts +1 -0
  109. package/_esm/providers/WalletProvider/UTXOExternalContext.js +3 -0
  110. package/_esm/providers/WalletProvider/UTXOExternalContext.js.map +1 -0
  111. package/_esm/providers/WalletProvider/UTXOProvider.d.ts +3 -0
  112. package/_esm/providers/WalletProvider/UTXOProvider.js +18 -0
  113. package/_esm/providers/WalletProvider/UTXOProvider.js.map +1 -0
  114. package/_esm/providers/WalletProvider/WalletProvider.d.ts +1 -0
  115. package/_esm/providers/WalletProvider/WalletProvider.js +14 -1
  116. package/_esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  117. package/_esm/providers/WalletProvider/useHasExternalWalletProvider.d.ts +1 -1
  118. package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js +8 -3
  119. package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js.map +1 -1
  120. package/_esm/providers/WidgetProvider/WidgetProvider.js +2 -1
  121. package/_esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  122. package/_esm/providers/WidgetProvider/types.d.ts +0 -2
  123. package/_esm/stores/form/FormUpdater.js +1 -1
  124. package/_esm/stores/form/FormUpdater.js.map +1 -1
  125. package/_esm/stores/form/types.d.ts +4 -4
  126. package/_esm/stores/routes/useExecutingRoutesIds.js +1 -1
  127. package/_esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
  128. package/_esm/themes/createTheme.js +2 -1
  129. package/_esm/themes/createTheme.js.map +1 -1
  130. package/_esm/types/events.d.ts +6 -0
  131. package/_esm/types/events.js +3 -0
  132. package/_esm/types/events.js.map +1 -1
  133. package/_esm/utils/chainType.js +2 -3
  134. package/_esm/utils/chainType.js.map +1 -1
  135. package/_esm/utils/fees.js +9 -5
  136. package/_esm/utils/fees.js.map +1 -1
  137. package/_esm/utils/format.js +1 -1
  138. package/_esm/utils/format.js.map +1 -1
  139. package/_esm/utils/navigationRoutes.d.ts +0 -1
  140. package/_esm/utils/navigationRoutes.js +0 -3
  141. package/_esm/utils/navigationRoutes.js.map +1 -1
  142. package/_esm/utils/wallet.js +1 -1
  143. package/components/ActiveTransactions/ActiveTransactions.style.ts +1 -1
  144. package/components/AmountInput/AmountInputEndAdornment.tsx +1 -5
  145. package/components/Avatar/AccountAvatar.tsx +2 -2
  146. package/components/Avatar/Avatar.style.tsx +20 -7
  147. package/components/Avatar/Avatar.tsx +12 -4
  148. package/components/Avatar/SmallAvatar.tsx +16 -0
  149. package/components/Avatar/TokenAvatar.tsx +1 -1
  150. package/components/BaseTransactionButton/BaseTransactionButton.tsx +3 -5
  151. package/components/ChainSelect/useChainSelect.ts +10 -1
  152. package/components/FeeBreakdownTooltip.tsx +4 -1
  153. package/components/Header/EVMDisconnectIconButton.tsx +5 -5
  154. package/components/Header/NavigationHeader.tsx +1 -1
  155. package/components/Header/UTXODisconnectIconButton.tsx +24 -0
  156. package/components/Header/WalletHeader.tsx +11 -12
  157. package/components/Header/WalletMenu.style.tsx +5 -1
  158. package/components/Header/WalletMenu.tsx +23 -24
  159. package/components/Routes/RoutesExpanded.tsx +1 -2
  160. package/components/SendToWallet/SendToWalletButton.tsx +1 -1
  161. package/components/StepActions/StepActions.tsx +1 -1
  162. package/components/Token/Token.tsx +1 -1
  163. package/components/TokenList/TokenList.tsx +1 -1
  164. package/components/TokenList/TokenListItem.tsx +15 -7
  165. package/components/TokenList/VirtualizedTokenList.tsx +1 -1
  166. package/components/TokenList/types.ts +3 -3
  167. package/components/TokenRate/TokenRate.tsx +2 -2
  168. package/config/version.ts +1 -1
  169. package/hooks/useAvailableChains.ts +9 -10
  170. package/hooks/useChains.ts +6 -3
  171. package/hooks/useFromTokenSufficiency.ts +1 -1
  172. package/hooks/useGasSufficiency.ts +5 -3
  173. package/hooks/useProcessMessage.ts +4 -0
  174. package/hooks/useRouteExecution.ts +1 -1
  175. package/hooks/useRoutes.ts +1 -1
  176. package/hooks/useTokenBalance.ts +1 -1
  177. package/hooks/useTokenBalances.ts +1 -1
  178. package/hooks/useTokens.ts +2 -1
  179. package/hooks/useTransactionDetails.ts +1 -1
  180. package/hooks/useTransactionHistory.ts +1 -1
  181. package/i18n/en.json +3 -4
  182. package/index.ts +0 -2
  183. package/package.json +5 -5
  184. package/pages/RoutesPage/RoutesPage.tsx +1 -1
  185. package/pages/SendToWallet/ConnectedWalletsPage.tsx +2 -2
  186. package/pages/SendToWallet/SendToWalletPage.tsx +1 -1
  187. package/providers/I18nProvider/types.ts +2 -2
  188. package/providers/WalletProvider/SDKProviders.tsx +25 -7
  189. package/providers/WalletProvider/UTXOBaseProvider.tsx +28 -0
  190. package/providers/WalletProvider/UTXOExternalContext.ts +3 -0
  191. package/providers/WalletProvider/UTXOProvider.tsx +26 -0
  192. package/providers/WalletProvider/WalletProvider.tsx +24 -3
  193. package/providers/WalletProvider/useHasExternalWalletProvider.ts +11 -5
  194. package/providers/WidgetProvider/WidgetProvider.tsx +2 -1
  195. package/providers/WidgetProvider/types.ts +0 -2
  196. package/stores/form/FormUpdater.tsx +1 -1
  197. package/stores/form/types.ts +4 -4
  198. package/stores/routes/useExecutingRoutesIds.ts +1 -1
  199. package/themes/createTheme.ts +3 -1
  200. package/types/events.ts +6 -0
  201. package/utils/chainType.ts +2 -3
  202. package/utils/fees.ts +15 -13
  203. package/utils/format.ts +1 -1
  204. package/utils/navigationRoutes.ts +0 -3
  205. package/utils/wallet.ts +1 -1
  206. package/_esm/components/SmallAvatar.d.ts +0 -10
  207. package/_esm/components/SmallAvatar.js +0 -19
  208. package/_esm/components/SmallAvatar.js.map +0 -1
  209. package/_esm/hooks/useAccount.d.ts +0 -45
  210. package/_esm/hooks/useAccount.js +0 -56
  211. package/_esm/hooks/useAccount.js.map +0 -1
  212. package/_esm/hooks/useWallets.d.ts +0 -6
  213. package/_esm/hooks/useWallets.js +0 -80
  214. package/_esm/hooks/useWallets.js.map +0 -1
  215. package/_esm/pages/SelectWalletPage/EVMListItemButton.d.ts +0 -9
  216. package/_esm/pages/SelectWalletPage/EVMListItemButton.js +0 -39
  217. package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +0 -1
  218. package/_esm/pages/SelectWalletPage/SVMListItemButton.d.ts +0 -6
  219. package/_esm/pages/SelectWalletPage/SVMListItemButton.js +0 -32
  220. package/_esm/pages/SelectWalletPage/SVMListItemButton.js.map +0 -1
  221. package/_esm/pages/SelectWalletPage/SelectWalletPage.d.ts +0 -1
  222. package/_esm/pages/SelectWalletPage/SelectWalletPage.js +0 -41
  223. package/_esm/pages/SelectWalletPage/SelectWalletPage.js.map +0 -1
  224. package/_esm/utils/svm.d.ts +0 -1
  225. package/_esm/utils/svm.js +0 -11
  226. package/_esm/utils/svm.js.map +0 -1
  227. package/components/SmallAvatar.tsx +0 -25
  228. package/hooks/useAccount.ts +0 -109
  229. package/hooks/useWallets.ts +0 -147
  230. package/pages/SelectWalletPage/EVMListItemButton.tsx +0 -74
  231. package/pages/SelectWalletPage/SVMListItemButton.tsx +0 -47
  232. package/pages/SelectWalletPage/SelectWalletPage.tsx +0 -90
  233. package/utils/svm.ts +0 -10
@@ -35,17 +35,17 @@ export type FormFieldArray<T extends FormFieldNames[]> = {
35
35
  [K in keyof T]: ExtractValueType<FormValues[T[K]]>;
36
36
  };
37
37
 
38
- export type TouchedFields = { [key in FormFieldNames]?: boolean };
38
+ export type TouchedFields = { [K in FormFieldNames]?: boolean };
39
39
 
40
40
  type ValidationFn = (value: any) => Promise<boolean | string>;
41
41
  export interface ValidationProps {
42
42
  isValid: boolean;
43
43
  isValidating: boolean;
44
44
  errors: {
45
- [key in FormFieldNames]?: string;
45
+ [K in FormFieldNames]?: string;
46
46
  };
47
47
  validation: {
48
- [key in FormFieldNames]?: ValidationFn;
48
+ [K in FormFieldNames]?: ValidationFn;
49
49
  };
50
50
  }
51
51
 
@@ -61,7 +61,7 @@ export interface ValidationActions {
61
61
  export interface FormProps {
62
62
  defaultValues: FormValues;
63
63
  userValues: FormValues;
64
- touchedFields: { [key in FormFieldNames]?: boolean };
64
+ touchedFields: { [K in FormFieldNames]?: boolean };
65
65
  }
66
66
 
67
67
  interface ResetOptions {
@@ -1,5 +1,5 @@
1
+ import { useAccount } from '@lifi/wallet-management';
1
2
  import { shallow } from 'zustand/shallow';
2
- import { useAccount } from '../../hooks/useAccount.js';
3
3
  import { useRouteExecutionStore } from './RouteExecutionStore.js';
4
4
  import type { RouteExecution } from './types.js';
5
5
  import { RouteExecutionStatus } from './types.js';
@@ -63,7 +63,7 @@ export const createTheme = (
63
63
  const borderRadiusSecondary =
64
64
  widgetTheme.shape?.borderRadiusSecondary ?? shape.borderRadiusSecondary;
65
65
 
66
- return createMuiTheme({
66
+ const theme = createMuiTheme({
67
67
  container: widgetTheme.container,
68
68
  header: widgetTheme.header,
69
69
  navigation: {
@@ -409,4 +409,6 @@ export const createTheme = (
409
409
  },
410
410
  },
411
411
  });
412
+
413
+ return theme;
412
414
  };
package/types/events.ts CHANGED
@@ -12,6 +12,9 @@ export enum WidgetEvent {
12
12
  DestinationChainTokenSelected = 'destinationChainTokenSelected',
13
13
  SendToWalletToggled = 'sendToWalletToggled',
14
14
  ReviewTransactionPageEntered = 'reviewTransactionPageEntered',
15
+ /**
16
+ * @deprecated use useWalletManagementEvents hook.
17
+ */
15
18
  WalletConnected = 'walletConnected',
16
19
  WidgetExpanded = 'widgetExpanded',
17
20
  }
@@ -28,6 +31,9 @@ export type WidgetEvents = {
28
31
  destinationChainTokenSelected: ChainTokenSelected;
29
32
  sendToWalletToggled: boolean;
30
33
  reviewTransactionPageEntered?: Route;
34
+ /**
35
+ * @deprecated use useWalletManagementEvents hook.
36
+ */
31
37
  walletConnected: WalletConnected;
32
38
  widgetExpanded: boolean;
33
39
  };
@@ -1,11 +1,10 @@
1
- import { ChainId, ChainType } from '@lifi/sdk';
1
+ import { ChainId, ChainType, isSVMAddress, isUTXOAddress } from '@lifi/sdk';
2
2
  import { isAddress as isEVMAddress } from 'viem';
3
- import { isSVMAddress } from './svm.js';
4
3
 
5
4
  const chainTypeAddressValidation = {
6
5
  [ChainType.EVM]: isEVMAddress,
7
6
  [ChainType.SVM]: isSVMAddress,
8
- [ChainType.UTXO]: () => false,
7
+ [ChainType.UTXO]: isUTXOAddress,
9
8
  };
10
9
 
11
10
  export const getChainTypeFromAddress = (
package/utils/fees.ts CHANGED
@@ -104,20 +104,22 @@ export const getFeeCostsBreakdown = (
104
104
  export const getStepFeeCostsBreakdown = (
105
105
  feeCosts: FeeCost[] | GasCost[],
106
106
  ): FeesBreakdown => {
107
- const token = feeCosts[0].token;
108
- const amount = feeCosts.reduce(
109
- (amount, feeCost) => amount + BigInt(feeCost.amount || 0),
110
- 0n,
111
- );
112
- const amountUSD = feeCosts.reduce(
113
- (amount, feeCost) =>
114
- amount +
115
- parseFloat(feeCost.token.priceUSD || '0') *
116
- parseFloat(
117
- formatUnits(BigInt(feeCost.amount || 0), feeCost.token.decimals),
118
- ),
119
- 0,
107
+ const { token } = feeCosts[0];
108
+
109
+ const { amount, amountUSD } = feeCosts.reduce(
110
+ (acc, feeCost) => {
111
+ const feeAmount = BigInt(Number(feeCost.amount).toFixed(0) || 0);
112
+ const amountUSD =
113
+ parseFloat(feeCost.token.priceUSD || '0') *
114
+ parseFloat(formatUnits(feeAmount, feeCost.token.decimals));
115
+
116
+ acc.amount += feeAmount;
117
+ acc.amountUSD += amountUSD;
118
+ return acc;
119
+ },
120
+ { amount: 0n, amountUSD: 0 },
120
121
  );
122
+
121
123
  return {
122
124
  amount,
123
125
  amountUSD,
package/utils/format.ts CHANGED
@@ -60,7 +60,7 @@ export function formatInputAmount(
60
60
  if (!amount) {
61
61
  return amount;
62
62
  }
63
- let formattedAmount = amount.trim().replaceAll(',', '.');
63
+ let formattedAmount = amount.replaceAll(',', '.');
64
64
  if (formattedAmount.startsWith('.')) {
65
65
  formattedAmount = '0' + formattedAmount;
66
66
  }
@@ -7,7 +7,6 @@ export const navigationRoutes = {
7
7
  fromToken: 'from-token',
8
8
  languages: 'languages',
9
9
  routes: 'routes',
10
- selectWallet: 'select-wallet',
11
10
  settings: 'settings',
12
11
  toChain: 'to-chain',
13
12
  toToken: 'to-token',
@@ -31,7 +30,6 @@ export const stickyHeaderRoutes = [
31
30
  navigationRoutes.fromChain,
32
31
  navigationRoutes.home,
33
32
  navigationRoutes.routes,
34
- navigationRoutes.selectWallet,
35
33
  navigationRoutes.settings,
36
34
  navigationRoutes.toChain,
37
35
  navigationRoutes.toTokenNative,
@@ -53,7 +51,6 @@ export const backButtonRoutes = [
53
51
  navigationRoutes.fromChain,
54
52
  navigationRoutes.fromToken,
55
53
  navigationRoutes.routes,
56
- navigationRoutes.selectWallet,
57
54
  navigationRoutes.settings,
58
55
  navigationRoutes.toChain,
59
56
  navigationRoutes.toToken,
package/utils/wallet.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export const shortenAddress = (address?: string) =>
2
2
  address
3
- ? `${address.substring(0, 5)}...${address.substring(address.length - 4)}`
3
+ ? `${address.substring(0, 7)}...${address.substring(address.length - 5)}`
4
4
  : null;
@@ -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
- };