@lifi/widget 3.0.0-alpha.20 → 3.0.0-alpha.22

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 (228) hide show
  1. package/App.tsx +16 -17
  2. package/AppDrawer.tsx +2 -2
  3. package/AppProvider.tsx +6 -6
  4. package/AppRoutes.tsx +5 -0
  5. package/_cjs/App.js +2 -3
  6. package/_cjs/App.js.map +1 -1
  7. package/_cjs/AppDrawer.d.ts +2 -2
  8. package/_cjs/AppProvider.js +1 -1
  9. package/_cjs/AppProvider.js.map +1 -1
  10. package/_cjs/AppRoutes.js +4 -0
  11. package/_cjs/AppRoutes.js.map +1 -1
  12. package/_cjs/components/AccountAvatar.js +5 -6
  13. package/_cjs/components/AccountAvatar.js.map +1 -1
  14. package/_cjs/components/Header/NavigationHeader.js +1 -0
  15. package/_cjs/components/Header/NavigationHeader.js.map +1 -1
  16. package/_cjs/components/Header/WalletHeader.js +1 -2
  17. package/_cjs/components/Header/WalletHeader.js.map +1 -1
  18. package/_cjs/components/Header/WalletMenu.js +4 -5
  19. package/_cjs/components/Header/WalletMenu.js.map +1 -1
  20. package/_cjs/components/SendToWallet/SendToWalletButton.js +5 -11
  21. package/_cjs/components/SendToWallet/SendToWalletButton.js.map +1 -1
  22. package/_cjs/components/SendToWallet/SendToWalletExpandButton.js +6 -5
  23. package/_cjs/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  24. package/_cjs/components/Step/Step.js +1 -2
  25. package/_cjs/components/Step/Step.js.map +1 -1
  26. package/_cjs/components/TokenAvatar/TokenAvatar.style.js +4 -0
  27. package/_cjs/components/TokenAvatar/TokenAvatar.style.js.map +1 -1
  28. package/_cjs/config/theme.js +3 -0
  29. package/_cjs/config/theme.js.map +1 -1
  30. package/_cjs/config/version.d.ts +1 -1
  31. package/_cjs/config/version.js +1 -1
  32. package/_cjs/hooks/useAvailableChains.js +3 -3
  33. package/_cjs/hooks/useAvailableChains.js.map +1 -1
  34. package/_cjs/hooks/useGasSufficiency.js +15 -14
  35. package/_cjs/hooks/useGasSufficiency.js.map +1 -1
  36. package/_cjs/hooks/useRoutes.d.ts +1 -1
  37. package/_cjs/hooks/useTokenAddressBalance.d.ts +1 -1
  38. package/_cjs/hooks/useTokenBalance.d.ts +1 -1
  39. package/_cjs/hooks/useTokenBalances.d.ts +1 -1
  40. package/_cjs/i18n/bn.json +127 -74
  41. package/_cjs/i18n/de.json +52 -18
  42. package/_cjs/i18n/es.json +145 -77
  43. package/_cjs/i18n/fr.json +47 -16
  44. package/_cjs/i18n/hi.json +298 -0
  45. package/_cjs/i18n/id.json +54 -19
  46. package/_cjs/i18n/it.json +54 -19
  47. package/_cjs/i18n/ko.json +54 -19
  48. package/_cjs/i18n/pt.json +48 -17
  49. package/_cjs/i18n/th.json +54 -19
  50. package/_cjs/i18n/tr.json +47 -16
  51. package/_cjs/i18n/uk.json +47 -16
  52. package/_cjs/i18n/vi.json +54 -19
  53. package/_cjs/i18n/zh.json +47 -16
  54. package/_cjs/pages/SelectWalletPage/EVMListItemButton.js +1 -1
  55. package/_cjs/pages/SelectWalletPage/EVMListItemButton.js.map +1 -1
  56. package/_cjs/pages/SelectWalletPage/SelectWalletPage.js +30 -12
  57. package/_cjs/pages/SelectWalletPage/SelectWalletPage.js.map +1 -1
  58. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.js +3 -1
  59. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  60. package/_cjs/pages/SendToWallet/SendToConfiguredWalletPage.d.ts +1 -0
  61. package/_cjs/pages/SendToWallet/SendToConfiguredWalletPage.js +74 -0
  62. package/_cjs/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -0
  63. package/_cjs/pages/SendToWallet/index.d.ts +1 -0
  64. package/_cjs/pages/SendToWallet/index.js +1 -0
  65. package/_cjs/pages/SendToWallet/index.js.map +1 -1
  66. package/_cjs/providers/WalletProvider/SDKProviders.js +8 -5
  67. package/_cjs/providers/WalletProvider/SDKProviders.js.map +1 -1
  68. package/_cjs/providers/WidgetProvider/WidgetProvider.js +4 -1
  69. package/_cjs/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  70. package/_cjs/providers/WidgetProvider/utils.d.ts +5 -0
  71. package/_cjs/providers/WidgetProvider/utils.js +21 -0
  72. package/_cjs/providers/WidgetProvider/utils.js.map +1 -0
  73. package/_cjs/stores/bookmarks/BookmarkStore.js +3 -1
  74. package/_cjs/stores/bookmarks/BookmarkStore.js.map +1 -1
  75. package/_cjs/stores/bookmarks/createBookmarkStore.d.ts +6 -1
  76. package/_cjs/stores/bookmarks/createBookmarkStore.js +12 -2
  77. package/_cjs/stores/bookmarks/createBookmarkStore.js.map +1 -1
  78. package/_cjs/stores/bookmarks/types.d.ts +2 -5
  79. package/_cjs/stores/form/FormStore.js +1 -1
  80. package/_cjs/stores/form/FormStore.js.map +1 -1
  81. package/_cjs/stores/routes/utils.js.map +1 -1
  82. package/_cjs/types/widget.d.ts +15 -9
  83. package/_cjs/utils/chainType.d.ts +1 -0
  84. package/_cjs/utils/chainType.js +2 -0
  85. package/_cjs/utils/chainType.js.map +1 -1
  86. package/_cjs/utils/converters.js +24 -0
  87. package/_cjs/utils/converters.js.map +1 -1
  88. package/_cjs/utils/index.d.ts +1 -1
  89. package/_cjs/utils/index.js +1 -1
  90. package/_cjs/utils/index.js.map +1 -1
  91. package/_cjs/utils/navigationRoutes.d.ts +1 -0
  92. package/_cjs/utils/navigationRoutes.js +3 -0
  93. package/_cjs/utils/navigationRoutes.js.map +1 -1
  94. package/_esm/App.js +2 -3
  95. package/_esm/App.js.map +1 -1
  96. package/_esm/AppDrawer.d.ts +2 -2
  97. package/_esm/AppProvider.js +1 -1
  98. package/_esm/AppProvider.js.map +1 -1
  99. package/_esm/AppRoutes.js +5 -1
  100. package/_esm/AppRoutes.js.map +1 -1
  101. package/_esm/components/AccountAvatar.js +5 -6
  102. package/_esm/components/AccountAvatar.js.map +1 -1
  103. package/_esm/components/Header/NavigationHeader.js +1 -0
  104. package/_esm/components/Header/NavigationHeader.js.map +1 -1
  105. package/_esm/components/Header/WalletHeader.js +2 -3
  106. package/_esm/components/Header/WalletHeader.js.map +1 -1
  107. package/_esm/components/Header/WalletMenu.js +4 -5
  108. package/_esm/components/Header/WalletMenu.js.map +1 -1
  109. package/_esm/components/SendToWallet/SendToWalletButton.js +5 -11
  110. package/_esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  111. package/_esm/components/SendToWallet/SendToWalletExpandButton.js +6 -5
  112. package/_esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  113. package/_esm/components/Step/Step.js +1 -2
  114. package/_esm/components/Step/Step.js.map +1 -1
  115. package/_esm/components/TokenAvatar/TokenAvatar.style.js +4 -0
  116. package/_esm/components/TokenAvatar/TokenAvatar.style.js.map +1 -1
  117. package/_esm/config/theme.js +3 -0
  118. package/_esm/config/theme.js.map +1 -1
  119. package/_esm/config/version.d.ts +1 -1
  120. package/_esm/config/version.js +1 -1
  121. package/_esm/hooks/useAvailableChains.js +3 -3
  122. package/_esm/hooks/useAvailableChains.js.map +1 -1
  123. package/_esm/hooks/useGasSufficiency.js +13 -12
  124. package/_esm/hooks/useGasSufficiency.js.map +1 -1
  125. package/_esm/hooks/useRoutes.d.ts +1 -1
  126. package/_esm/hooks/useTokenAddressBalance.d.ts +1 -1
  127. package/_esm/hooks/useTokenBalance.d.ts +1 -1
  128. package/_esm/hooks/useTokenBalances.d.ts +1 -1
  129. package/_esm/i18n/bn.json +127 -74
  130. package/_esm/i18n/de.json +52 -18
  131. package/_esm/i18n/es.json +145 -77
  132. package/_esm/i18n/fr.json +47 -16
  133. package/_esm/i18n/hi.json +298 -0
  134. package/_esm/i18n/id.json +54 -19
  135. package/_esm/i18n/it.json +54 -19
  136. package/_esm/i18n/ko.json +54 -19
  137. package/_esm/i18n/pt.json +48 -17
  138. package/_esm/i18n/th.json +54 -19
  139. package/_esm/i18n/tr.json +47 -16
  140. package/_esm/i18n/uk.json +47 -16
  141. package/_esm/i18n/vi.json +54 -19
  142. package/_esm/i18n/zh.json +47 -16
  143. package/_esm/pages/SelectWalletPage/EVMListItemButton.js +2 -2
  144. package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +1 -1
  145. package/_esm/pages/SelectWalletPage/SelectWalletPage.js +27 -9
  146. package/_esm/pages/SelectWalletPage/SelectWalletPage.js.map +1 -1
  147. package/_esm/pages/SendToWallet/ConfirmAddressSheet.js +3 -1
  148. package/_esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  149. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.d.ts +1 -0
  150. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.js +70 -0
  151. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -0
  152. package/_esm/pages/SendToWallet/index.d.ts +1 -0
  153. package/_esm/pages/SendToWallet/index.js +1 -0
  154. package/_esm/pages/SendToWallet/index.js.map +1 -1
  155. package/_esm/providers/WalletProvider/SDKProviders.js +9 -6
  156. package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  157. package/_esm/providers/WidgetProvider/WidgetProvider.js +4 -1
  158. package/_esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  159. package/_esm/providers/WidgetProvider/utils.d.ts +5 -0
  160. package/_esm/providers/WidgetProvider/utils.js +17 -0
  161. package/_esm/providers/WidgetProvider/utils.js.map +1 -0
  162. package/_esm/stores/bookmarks/BookmarkStore.js +3 -1
  163. package/_esm/stores/bookmarks/BookmarkStore.js.map +1 -1
  164. package/_esm/stores/bookmarks/createBookmarkStore.d.ts +6 -1
  165. package/_esm/stores/bookmarks/createBookmarkStore.js +12 -2
  166. package/_esm/stores/bookmarks/createBookmarkStore.js.map +1 -1
  167. package/_esm/stores/bookmarks/types.d.ts +2 -5
  168. package/_esm/stores/form/FormStore.js +1 -1
  169. package/_esm/stores/form/FormStore.js.map +1 -1
  170. package/_esm/stores/routes/utils.js.map +1 -1
  171. package/_esm/types/widget.d.ts +15 -9
  172. package/_esm/utils/chainType.d.ts +1 -0
  173. package/_esm/utils/chainType.js +2 -0
  174. package/_esm/utils/chainType.js.map +1 -1
  175. package/_esm/utils/converters.js +24 -0
  176. package/_esm/utils/converters.js.map +1 -1
  177. package/_esm/utils/index.d.ts +1 -1
  178. package/_esm/utils/index.js +1 -1
  179. package/_esm/utils/index.js.map +1 -1
  180. package/_esm/utils/navigationRoutes.d.ts +1 -0
  181. package/_esm/utils/navigationRoutes.js +3 -0
  182. package/_esm/utils/navigationRoutes.js.map +1 -1
  183. package/components/AccountAvatar.tsx +7 -14
  184. package/components/Header/NavigationHeader.tsx +1 -0
  185. package/components/Header/WalletHeader.tsx +2 -6
  186. package/components/Header/WalletMenu.tsx +4 -8
  187. package/components/SendToWallet/SendToWalletButton.tsx +7 -13
  188. package/components/SendToWallet/SendToWalletExpandButton.tsx +9 -5
  189. package/components/Step/Step.tsx +3 -2
  190. package/components/TokenAvatar/TokenAvatar.style.tsx +4 -0
  191. package/config/theme.ts +3 -0
  192. package/config/version.ts +1 -1
  193. package/hooks/useAvailableChains.ts +7 -4
  194. package/hooks/useGasSufficiency.ts +14 -14
  195. package/i18n/bn.json +127 -74
  196. package/i18n/de.json +52 -18
  197. package/i18n/es.json +145 -77
  198. package/i18n/fr.json +47 -16
  199. package/i18n/hi.json +298 -0
  200. package/i18n/id.json +54 -19
  201. package/i18n/it.json +54 -19
  202. package/i18n/ko.json +54 -19
  203. package/i18n/pt.json +48 -17
  204. package/i18n/th.json +54 -19
  205. package/i18n/tr.json +47 -16
  206. package/i18n/uk.json +47 -16
  207. package/i18n/vi.json +54 -19
  208. package/i18n/zh.json +47 -16
  209. package/package.json +13 -13
  210. package/pages/SelectWalletPage/EVMListItemButton.tsx +5 -5
  211. package/pages/SelectWalletPage/SelectWalletPage.tsx +36 -20
  212. package/pages/SendToWallet/ConfirmAddressSheet.tsx +3 -1
  213. package/pages/SendToWallet/SendToConfiguredWalletPage.tsx +149 -0
  214. package/pages/SendToWallet/index.ts +1 -0
  215. package/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +1 -1
  216. package/providers/WalletProvider/SDKProviders.tsx +20 -11
  217. package/providers/WidgetProvider/WidgetProvider.tsx +7 -2
  218. package/providers/WidgetProvider/utils.ts +26 -0
  219. package/stores/bookmarks/BookmarkStore.tsx +3 -1
  220. package/stores/bookmarks/createBookmarkStore.ts +19 -3
  221. package/stores/bookmarks/types.ts +2 -5
  222. package/stores/form/FormStore.tsx +1 -1
  223. package/stores/routes/utils.ts +4 -10
  224. package/types/widget.ts +16 -10
  225. package/utils/chainType.ts +2 -0
  226. package/utils/converters.ts +29 -0
  227. package/utils/index.ts +1 -1
  228. package/utils/navigationRoutes.ts +3 -0
@@ -1,11 +1,8 @@
1
- import type { ChainType } from '@lifi/sdk';
2
1
  import type { StoreApi } from 'zustand';
3
2
  import type { UseBoundStoreWithEqualityFn } from 'zustand/esm/traditional';
3
+ import type { ToAddress } from '../../types';
4
4
 
5
- export interface Bookmark {
6
- address: string;
7
- chainType: ChainType;
8
- name?: string;
5
+ export interface Bookmark extends ToAddress {
9
6
  isConnectedAccount?: boolean;
10
7
  }
11
8
 
@@ -39,7 +39,7 @@ export const FormStoreProvider: React.FC<PropsWithChildren> = ({
39
39
  // Prevent setting address when the field is hidden
40
40
  toAddress: hiddenToAddress
41
41
  ? formDefaultValues.toAddress
42
- : toAddress || formDefaultValues.toAddress,
42
+ : toAddress?.address || formDefaultValues.toAddress,
43
43
  }),
44
44
  [
45
45
  fromAmount,
@@ -6,20 +6,14 @@ export const isRouteDone = (route: RouteExtended) => {
6
6
  };
7
7
 
8
8
  export const isRoutePartiallyDone = (route: RouteExtended) => {
9
- return route.steps.some(
10
- (step) =>
11
- step.execution?.process.some(
12
- (process) => process.substatus === 'PARTIAL',
13
- ),
9
+ return route.steps.some((step) =>
10
+ step.execution?.process.some((process) => process.substatus === 'PARTIAL'),
14
11
  );
15
12
  };
16
13
 
17
14
  export const isRouteRefunded = (route: RouteExtended) => {
18
- return route.steps.some(
19
- (step) =>
20
- step.execution?.process.some(
21
- (process) => process.substatus === 'REFUNDED',
22
- ),
15
+ return route.steps.some((step) =>
16
+ step.execution?.process.some((process) => process.substatus === 'REFUNDED'),
23
17
  );
24
18
  };
25
19
 
package/types/widget.ts CHANGED
@@ -101,12 +101,18 @@ export interface WidgetContract {
101
101
  fallbackAddress?: string;
102
102
  }
103
103
 
104
+ export interface ToAddress {
105
+ name?: string;
106
+ address: string;
107
+ chainType: ChainType;
108
+ }
104
109
  export interface WidgetConfig {
105
110
  fromChain?: number;
106
111
  toChain?: number;
107
112
  fromToken?: string;
108
113
  toToken?: string;
109
- toAddress?: string;
114
+ toAddress?: ToAddress;
115
+ toAddresses?: ToAddress[];
110
116
  fromAmount?: number | string;
111
117
  toAmount?: number | string;
112
118
 
@@ -161,15 +167,6 @@ export interface WidgetConfig {
161
167
  languageResources?: LanguageResources;
162
168
  }
163
169
 
164
- export type WidgetDrawerProps = {
165
- elementRef?: RefObject<HTMLDivElement>;
166
- open?: boolean;
167
- /**
168
- * Make sure to make the onClose callback stable (e.g. using useCallback) to avoid causing re-renders of the entire widget
169
- */
170
- onClose?(): void;
171
- };
172
-
173
170
  export interface WidgetConfigProps {
174
171
  config: WidgetConfig;
175
172
  }
@@ -181,3 +178,12 @@ export interface WidgetConfigPartialProps {
181
178
  export type WidgetProps = WidgetDrawerProps &
182
179
  WidgetConfig &
183
180
  WidgetConfigPartialProps;
181
+
182
+ export interface WidgetDrawerProps extends WidgetConfigPartialProps {
183
+ elementRef?: RefObject<HTMLDivElement>;
184
+ open?: boolean;
185
+ /**
186
+ * Make sure to make the onClose callback stable (e.g. using useCallback) to avoid causing re-renders of the entire widget
187
+ */
188
+ onClose?(): void;
189
+ }
@@ -5,6 +5,7 @@ import { isSVMAddress } from './svm';
5
5
  const chainTypeAddressValidation = {
6
6
  [ChainType.EVM]: isEVMAddress,
7
7
  [ChainType.SVM]: isSVMAddress,
8
+ [ChainType.UTXO]: () => false,
8
9
  };
9
10
 
10
11
  export const getChainTypeFromAddress = (
@@ -22,4 +23,5 @@ export const getChainTypeFromAddress = (
22
23
  export const defaultChainIdsByType = {
23
24
  [ChainType.EVM]: ChainId.ETH,
24
25
  [ChainType.SVM]: ChainId.SOL,
26
+ [ChainType.UTXO]: ChainId.BTC,
25
27
  };
@@ -1,5 +1,6 @@
1
1
  import type {
2
2
  ExtendedTransactionInfo,
3
+ FeeCost,
3
4
  FullStatusData,
4
5
  Process,
5
6
  Status,
@@ -7,6 +8,7 @@ import type {
7
8
  TokenAmount,
8
9
  ToolsResponse,
9
10
  } from '@lifi/sdk';
11
+ import { formatUnits } from 'viem';
10
12
  import type { RouteExecution } from '../stores';
11
13
 
12
14
  const buildProcessFromTxHistory = (tx: FullStatusData): Process[] => {
@@ -108,6 +110,32 @@ export const buildRouteFromTxHistory = (
108
110
  chainId: receiving.token?.chainId,
109
111
  };
110
112
 
113
+ const sendingValue = sending.value ? BigInt(sending.value) : 0n;
114
+ const sendingFeeAmount =
115
+ sending.gasToken.address === sending.token.address && sending.amount
116
+ ? sendingValue - BigInt(sending.amount)
117
+ : sendingValue;
118
+ const sendingFeeAmountUsd =
119
+ sending.gasToken.priceUSD && sendingFeeAmount
120
+ ? parseFloat(formatUnits(sendingFeeAmount, sending.gasToken.decimals)) *
121
+ parseFloat(sending.gasToken.priceUSD)
122
+ : 0;
123
+
124
+ const feeCosts: FeeCost[] | undefined = sendingValue
125
+ ? [
126
+ {
127
+ amount: sendingFeeAmount.toString(),
128
+ amountUSD: sendingFeeAmountUsd.toFixed(2),
129
+ token: sending.gasToken,
130
+ included: false,
131
+ // Not used
132
+ description: '',
133
+ name: '',
134
+ percentage: '',
135
+ },
136
+ ]
137
+ : undefined;
138
+
111
139
  const routeExecution: RouteExecution = {
112
140
  status: 1,
113
141
  route: {
@@ -193,6 +221,7 @@ export const buildRouteFromTxHistory = (
193
221
  type: 'SEND',
194
222
  },
195
223
  ],
224
+ feeCosts,
196
225
  },
197
226
  },
198
227
  ],
package/utils/index.ts CHANGED
@@ -1,10 +1,10 @@
1
+ export * from './chainType';
1
2
  export * from './colors';
2
3
  export * from './deepMerge';
3
4
  export * from './elements';
4
5
  export * from './enum';
5
6
  export * from './fees';
6
7
  export * from './format';
7
- export * from './chainType';
8
8
  export * from './input';
9
9
  export * from './item';
10
10
  export * from './navigationRoutes';
@@ -19,6 +19,7 @@ export const navigationRoutes = {
19
19
  bookmarks: 'bookmarks',
20
20
  recentWallets: 'recent-wallets',
21
21
  connectedWallets: 'connected-wallets',
22
+ configuredWallets: 'configured-wallets',
22
23
  };
23
24
 
24
25
  export const navigationRoutesValues = Object.values(navigationRoutes);
@@ -41,6 +42,7 @@ export const stickyHeaderRoutes = [
41
42
  navigationRoutes.bookmarks,
42
43
  navigationRoutes.recentWallets,
43
44
  navigationRoutes.connectedWallets,
45
+ navigationRoutes.configuredWallets,
44
46
  ];
45
47
 
46
48
  export const backButtonRoutes = [
@@ -63,6 +65,7 @@ export const backButtonRoutes = [
63
65
  navigationRoutes.bookmarks,
64
66
  navigationRoutes.recentWallets,
65
67
  navigationRoutes.connectedWallets,
68
+ navigationRoutes.configuredWallets,
66
69
  ];
67
70
 
68
71
  export type NavigationRouteType = keyof typeof navigationRoutes;