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

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 (210) hide show
  1. package/AppProvider.tsx +6 -6
  2. package/AppRoutes.tsx +5 -0
  3. package/_cjs/AppProvider.js +1 -1
  4. package/_cjs/AppProvider.js.map +1 -1
  5. package/_cjs/AppRoutes.js +4 -0
  6. package/_cjs/AppRoutes.js.map +1 -1
  7. package/_cjs/components/AccountAvatar.js +3 -4
  8. package/_cjs/components/AccountAvatar.js.map +1 -1
  9. package/_cjs/components/Header/NavigationHeader.js +1 -0
  10. package/_cjs/components/Header/NavigationHeader.js.map +1 -1
  11. package/_cjs/components/Header/WalletHeader.js +1 -2
  12. package/_cjs/components/Header/WalletHeader.js.map +1 -1
  13. package/_cjs/components/Header/WalletMenu.js +4 -5
  14. package/_cjs/components/Header/WalletMenu.js.map +1 -1
  15. package/_cjs/components/SendToWallet/SendToWalletButton.js +5 -11
  16. package/_cjs/components/SendToWallet/SendToWalletButton.js.map +1 -1
  17. package/_cjs/components/SendToWallet/SendToWalletExpandButton.js +6 -5
  18. package/_cjs/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  19. package/_cjs/components/Step/Step.js +1 -2
  20. package/_cjs/components/Step/Step.js.map +1 -1
  21. package/_cjs/config/theme.js +3 -0
  22. package/_cjs/config/theme.js.map +1 -1
  23. package/_cjs/config/version.d.ts +1 -1
  24. package/_cjs/config/version.js +1 -1
  25. package/_cjs/hooks/useGasSufficiency.js +15 -14
  26. package/_cjs/hooks/useGasSufficiency.js.map +1 -1
  27. package/_cjs/hooks/useRoutes.d.ts +1 -1
  28. package/_cjs/hooks/useTokenAddressBalance.d.ts +1 -1
  29. package/_cjs/hooks/useTokenBalance.d.ts +1 -1
  30. package/_cjs/hooks/useTokenBalances.d.ts +1 -1
  31. package/_cjs/i18n/bn.json +127 -74
  32. package/_cjs/i18n/de.json +52 -18
  33. package/_cjs/i18n/es.json +145 -77
  34. package/_cjs/i18n/fr.json +47 -16
  35. package/_cjs/i18n/hi.json +298 -0
  36. package/_cjs/i18n/id.json +54 -19
  37. package/_cjs/i18n/it.json +54 -19
  38. package/_cjs/i18n/ko.json +54 -19
  39. package/_cjs/i18n/pt.json +48 -17
  40. package/_cjs/i18n/th.json +54 -19
  41. package/_cjs/i18n/tr.json +47 -16
  42. package/_cjs/i18n/uk.json +47 -16
  43. package/_cjs/i18n/vi.json +54 -19
  44. package/_cjs/i18n/zh.json +47 -16
  45. package/_cjs/pages/SelectWalletPage/EVMListItemButton.js +1 -1
  46. package/_cjs/pages/SelectWalletPage/EVMListItemButton.js.map +1 -1
  47. package/_cjs/pages/SelectWalletPage/SelectWalletPage.js +30 -12
  48. package/_cjs/pages/SelectWalletPage/SelectWalletPage.js.map +1 -1
  49. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.js +3 -1
  50. package/_cjs/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  51. package/_cjs/pages/SendToWallet/SendToConfiguredWalletPage.d.ts +1 -0
  52. package/_cjs/pages/SendToWallet/SendToConfiguredWalletPage.js +74 -0
  53. package/_cjs/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -0
  54. package/_cjs/pages/SendToWallet/index.d.ts +1 -0
  55. package/_cjs/pages/SendToWallet/index.js +1 -0
  56. package/_cjs/pages/SendToWallet/index.js.map +1 -1
  57. package/_cjs/providers/WalletProvider/SDKProviders.js +8 -5
  58. package/_cjs/providers/WalletProvider/SDKProviders.js.map +1 -1
  59. package/_cjs/providers/WidgetProvider/WidgetProvider.js +4 -1
  60. package/_cjs/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  61. package/_cjs/providers/WidgetProvider/utils.d.ts +5 -0
  62. package/_cjs/providers/WidgetProvider/utils.js +21 -0
  63. package/_cjs/providers/WidgetProvider/utils.js.map +1 -0
  64. package/_cjs/stores/bookmarks/BookmarkStore.js +3 -1
  65. package/_cjs/stores/bookmarks/BookmarkStore.js.map +1 -1
  66. package/_cjs/stores/bookmarks/createBookmarkStore.d.ts +6 -1
  67. package/_cjs/stores/bookmarks/createBookmarkStore.js +12 -2
  68. package/_cjs/stores/bookmarks/createBookmarkStore.js.map +1 -1
  69. package/_cjs/stores/bookmarks/types.d.ts +2 -5
  70. package/_cjs/stores/form/FormStore.js +1 -1
  71. package/_cjs/stores/form/FormStore.js.map +1 -1
  72. package/_cjs/stores/routes/utils.js.map +1 -1
  73. package/_cjs/types/widget.d.ts +7 -1
  74. package/_cjs/utils/chainType.d.ts +1 -0
  75. package/_cjs/utils/chainType.js +2 -0
  76. package/_cjs/utils/chainType.js.map +1 -1
  77. package/_cjs/utils/converters.js +24 -0
  78. package/_cjs/utils/converters.js.map +1 -1
  79. package/_cjs/utils/index.d.ts +1 -1
  80. package/_cjs/utils/index.js +1 -1
  81. package/_cjs/utils/index.js.map +1 -1
  82. package/_cjs/utils/navigationRoutes.d.ts +1 -0
  83. package/_cjs/utils/navigationRoutes.js +3 -0
  84. package/_cjs/utils/navigationRoutes.js.map +1 -1
  85. package/_esm/AppProvider.js +1 -1
  86. package/_esm/AppProvider.js.map +1 -1
  87. package/_esm/AppRoutes.js +5 -1
  88. package/_esm/AppRoutes.js.map +1 -1
  89. package/_esm/components/AccountAvatar.js +3 -4
  90. package/_esm/components/AccountAvatar.js.map +1 -1
  91. package/_esm/components/Header/NavigationHeader.js +1 -0
  92. package/_esm/components/Header/NavigationHeader.js.map +1 -1
  93. package/_esm/components/Header/WalletHeader.js +2 -3
  94. package/_esm/components/Header/WalletHeader.js.map +1 -1
  95. package/_esm/components/Header/WalletMenu.js +4 -5
  96. package/_esm/components/Header/WalletMenu.js.map +1 -1
  97. package/_esm/components/SendToWallet/SendToWalletButton.js +5 -11
  98. package/_esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  99. package/_esm/components/SendToWallet/SendToWalletExpandButton.js +6 -5
  100. package/_esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  101. package/_esm/components/Step/Step.js +1 -2
  102. package/_esm/components/Step/Step.js.map +1 -1
  103. package/_esm/config/theme.js +3 -0
  104. package/_esm/config/theme.js.map +1 -1
  105. package/_esm/config/version.d.ts +1 -1
  106. package/_esm/config/version.js +1 -1
  107. package/_esm/hooks/useGasSufficiency.js +13 -12
  108. package/_esm/hooks/useGasSufficiency.js.map +1 -1
  109. package/_esm/hooks/useRoutes.d.ts +1 -1
  110. package/_esm/hooks/useTokenAddressBalance.d.ts +1 -1
  111. package/_esm/hooks/useTokenBalance.d.ts +1 -1
  112. package/_esm/hooks/useTokenBalances.d.ts +1 -1
  113. package/_esm/i18n/bn.json +127 -74
  114. package/_esm/i18n/de.json +52 -18
  115. package/_esm/i18n/es.json +145 -77
  116. package/_esm/i18n/fr.json +47 -16
  117. package/_esm/i18n/hi.json +298 -0
  118. package/_esm/i18n/id.json +54 -19
  119. package/_esm/i18n/it.json +54 -19
  120. package/_esm/i18n/ko.json +54 -19
  121. package/_esm/i18n/pt.json +48 -17
  122. package/_esm/i18n/th.json +54 -19
  123. package/_esm/i18n/tr.json +47 -16
  124. package/_esm/i18n/uk.json +47 -16
  125. package/_esm/i18n/vi.json +54 -19
  126. package/_esm/i18n/zh.json +47 -16
  127. package/_esm/pages/SelectWalletPage/EVMListItemButton.js +2 -2
  128. package/_esm/pages/SelectWalletPage/EVMListItemButton.js.map +1 -1
  129. package/_esm/pages/SelectWalletPage/SelectWalletPage.js +27 -9
  130. package/_esm/pages/SelectWalletPage/SelectWalletPage.js.map +1 -1
  131. package/_esm/pages/SendToWallet/ConfirmAddressSheet.js +3 -1
  132. package/_esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  133. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.d.ts +1 -0
  134. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.js +70 -0
  135. package/_esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -0
  136. package/_esm/pages/SendToWallet/index.d.ts +1 -0
  137. package/_esm/pages/SendToWallet/index.js +1 -0
  138. package/_esm/pages/SendToWallet/index.js.map +1 -1
  139. package/_esm/providers/WalletProvider/SDKProviders.js +9 -6
  140. package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  141. package/_esm/providers/WidgetProvider/WidgetProvider.js +4 -1
  142. package/_esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  143. package/_esm/providers/WidgetProvider/utils.d.ts +5 -0
  144. package/_esm/providers/WidgetProvider/utils.js +17 -0
  145. package/_esm/providers/WidgetProvider/utils.js.map +1 -0
  146. package/_esm/stores/bookmarks/BookmarkStore.js +3 -1
  147. package/_esm/stores/bookmarks/BookmarkStore.js.map +1 -1
  148. package/_esm/stores/bookmarks/createBookmarkStore.d.ts +6 -1
  149. package/_esm/stores/bookmarks/createBookmarkStore.js +12 -2
  150. package/_esm/stores/bookmarks/createBookmarkStore.js.map +1 -1
  151. package/_esm/stores/bookmarks/types.d.ts +2 -5
  152. package/_esm/stores/form/FormStore.js +1 -1
  153. package/_esm/stores/form/FormStore.js.map +1 -1
  154. package/_esm/stores/routes/utils.js.map +1 -1
  155. package/_esm/types/widget.d.ts +7 -1
  156. package/_esm/utils/chainType.d.ts +1 -0
  157. package/_esm/utils/chainType.js +2 -0
  158. package/_esm/utils/chainType.js.map +1 -1
  159. package/_esm/utils/converters.js +24 -0
  160. package/_esm/utils/converters.js.map +1 -1
  161. package/_esm/utils/index.d.ts +1 -1
  162. package/_esm/utils/index.js +1 -1
  163. package/_esm/utils/index.js.map +1 -1
  164. package/_esm/utils/navigationRoutes.d.ts +1 -0
  165. package/_esm/utils/navigationRoutes.js +3 -0
  166. package/_esm/utils/navigationRoutes.js.map +1 -1
  167. package/components/AccountAvatar.tsx +3 -7
  168. package/components/Header/NavigationHeader.tsx +1 -0
  169. package/components/Header/WalletHeader.tsx +2 -6
  170. package/components/Header/WalletMenu.tsx +4 -8
  171. package/components/SendToWallet/SendToWalletButton.tsx +7 -13
  172. package/components/SendToWallet/SendToWalletExpandButton.tsx +9 -5
  173. package/components/Step/Step.tsx +3 -2
  174. package/config/theme.ts +3 -0
  175. package/config/version.ts +1 -1
  176. package/hooks/useGasSufficiency.ts +14 -14
  177. package/i18n/bn.json +127 -74
  178. package/i18n/de.json +52 -18
  179. package/i18n/es.json +145 -77
  180. package/i18n/fr.json +47 -16
  181. package/i18n/hi.json +298 -0
  182. package/i18n/id.json +54 -19
  183. package/i18n/it.json +54 -19
  184. package/i18n/ko.json +54 -19
  185. package/i18n/pt.json +48 -17
  186. package/i18n/th.json +54 -19
  187. package/i18n/tr.json +47 -16
  188. package/i18n/uk.json +47 -16
  189. package/i18n/vi.json +54 -19
  190. package/i18n/zh.json +47 -16
  191. package/package.json +12 -12
  192. package/pages/SelectWalletPage/EVMListItemButton.tsx +5 -5
  193. package/pages/SelectWalletPage/SelectWalletPage.tsx +36 -20
  194. package/pages/SendToWallet/ConfirmAddressSheet.tsx +3 -1
  195. package/pages/SendToWallet/SendToConfiguredWalletPage.tsx +149 -0
  196. package/pages/SendToWallet/index.ts +1 -0
  197. package/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +1 -1
  198. package/providers/WalletProvider/SDKProviders.tsx +20 -11
  199. package/providers/WidgetProvider/WidgetProvider.tsx +7 -2
  200. package/providers/WidgetProvider/utils.ts +26 -0
  201. package/stores/bookmarks/BookmarkStore.tsx +3 -1
  202. package/stores/bookmarks/createBookmarkStore.ts +19 -3
  203. package/stores/bookmarks/types.ts +2 -5
  204. package/stores/form/FormStore.tsx +1 -1
  205. package/stores/routes/utils.ts +4 -10
  206. package/types/widget.ts +7 -1
  207. package/utils/chainType.ts +2 -0
  208. package/utils/converters.ts +29 -0
  209. package/utils/index.ts +1 -1
  210. 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
 
@@ -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;