@lifi/widget 3.13.1 → 3.14.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 (200) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +10 -5
  3. package/dist/esm/AppDrawer.style.d.ts +1 -3
  4. package/dist/esm/AppRoutes.d.ts +1 -1
  5. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js +1 -0
  6. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js.map +1 -1
  7. package/dist/esm/components/ActiveTransactions/ActiveTransactions.style.d.ts +3 -9
  8. package/dist/esm/components/AlertMessage/AlertMessage.style.d.ts +2 -6
  9. package/dist/esm/components/AmountInput/AmountInput.style.d.ts +2 -6
  10. package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +2 -6
  11. package/dist/esm/components/AppContainer.d.ts +3 -9
  12. package/dist/esm/components/Avatar/Avatar.style.d.ts +6 -18
  13. package/dist/esm/components/Avatar/SmallAvatar.d.ts +1 -3
  14. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +2 -2
  15. package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
  16. package/dist/esm/components/ButtonTertiary.d.ts +1 -3
  17. package/dist/esm/components/ButtonTertiary.js +4 -5
  18. package/dist/esm/components/ButtonTertiary.js.map +1 -1
  19. package/dist/esm/components/Card/Card.d.ts +1 -3
  20. package/dist/esm/components/Card/CardButton.style.d.ts +4 -12
  21. package/dist/esm/components/Card/CardHeader.d.ts +1 -3
  22. package/dist/esm/components/Card/CardIconButton.d.ts +1 -3
  23. package/dist/esm/components/Card/CardLabel.d.ts +2 -6
  24. package/dist/esm/components/Card/CardLabel.js +0 -1
  25. package/dist/esm/components/Card/CardLabel.js.map +1 -1
  26. package/dist/esm/components/Card/CardTitle.d.ts +1 -3
  27. package/dist/esm/components/Card/InputCard.d.ts +1 -3
  28. package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +2 -6
  29. package/dist/esm/components/ContractComponent/NFT/NFT.style.d.ts +1 -3
  30. package/dist/esm/components/Header/Header.style.d.ts +6 -18
  31. package/dist/esm/components/Header/SettingsButton.style.d.ts +2 -6
  32. package/dist/esm/components/IconTypography.d.ts +1 -3
  33. package/dist/esm/components/ListItem/ListItem.d.ts +1 -3
  34. package/dist/esm/components/ListItem/ListItemButton.d.ts +1 -3
  35. package/dist/esm/components/ListItemButton.d.ts +1 -3
  36. package/dist/esm/components/PageContainer.d.ts +1 -3
  37. package/dist/esm/components/PoweredBy/PoweredBy.style.d.ts +1 -3
  38. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +3 -9
  39. package/dist/esm/components/RouteCard/RouteCard.js +13 -4
  40. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  41. package/dist/esm/components/RouteCard/RouteCard.style.d.ts +1 -3
  42. package/dist/esm/components/RouteCard/getMatchingLabels.d.ts +3 -0
  43. package/dist/esm/components/RouteCard/getMatchingLabels.js +34 -0
  44. package/dist/esm/components/RouteCard/getMatchingLabels.js.map +1 -0
  45. package/dist/esm/components/Routes/RoutesExpanded.js +1 -1
  46. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  47. package/dist/esm/components/Routes/RoutesExpanded.style.d.ts +4 -12
  48. package/dist/esm/components/Search/SearchInput.style.d.ts +2 -6
  49. package/dist/esm/components/Search/SearchNotFound.style.d.ts +3 -9
  50. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.d.ts +3 -9
  51. package/dist/esm/components/SendToWallet/SendToWallet.style.d.ts +1 -3
  52. package/dist/esm/components/SettingsListItemButton.d.ts +1 -3
  53. package/dist/esm/components/Skeleton/WidgetSkeleton.style.d.ts +11 -33
  54. package/dist/esm/components/Step/CircularProgress.js +2 -1
  55. package/dist/esm/components/Step/CircularProgress.js.map +1 -1
  56. package/dist/esm/components/Step/CircularProgress.style.d.ts +1 -3
  57. package/dist/esm/components/Step/CircularProgress.style.js +13 -2
  58. package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
  59. package/dist/esm/components/Step/Step.js +17 -8
  60. package/dist/esm/components/Step/Step.js.map +1 -1
  61. package/dist/esm/components/Step/StepProcess.js +2 -1
  62. package/dist/esm/components/Step/StepProcess.js.map +1 -1
  63. package/dist/esm/components/Step/StepTimer.js +2 -1
  64. package/dist/esm/components/Step/StepTimer.js.map +1 -1
  65. package/dist/esm/components/StepActions/StepActions.style.d.ts +3 -9
  66. package/dist/esm/components/StepDivider/StepDivider.style.d.ts +1 -3
  67. package/dist/esm/components/Tabs/Tabs.style.d.ts +3 -9
  68. package/dist/esm/components/Token/Token.style.d.ts +3 -9
  69. package/dist/esm/components/TokenList/TokenList.style.d.ts +3 -9
  70. package/dist/esm/components/TokenList/TokenListItem.js +1 -1
  71. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  72. package/dist/esm/components/TokenRate/TokenRate.style.d.ts +1 -3
  73. package/dist/esm/config/version.d.ts +1 -1
  74. package/dist/esm/config/version.js +1 -1
  75. package/dist/esm/config/version.js.map +1 -1
  76. package/dist/esm/hooks/timer/useInterval.js +1 -1
  77. package/dist/esm/hooks/timer/useInterval.js.map +1 -1
  78. package/dist/esm/hooks/useDebouncedWatch.js +1 -1
  79. package/dist/esm/hooks/useDebouncedWatch.js.map +1 -1
  80. package/dist/esm/hooks/useProcessMessage.js +18 -6
  81. package/dist/esm/hooks/useProcessMessage.js.map +1 -1
  82. package/dist/esm/hooks/useRoutes.d.ts +2 -2
  83. package/dist/esm/hooks/useRoutes.js +99 -58
  84. package/dist/esm/hooks/useRoutes.js.map +1 -1
  85. package/dist/esm/hooks/useSetContentHeight.d.ts +1 -1
  86. package/dist/esm/hooks/useSetContentHeight.js.map +1 -1
  87. package/dist/esm/i18n/bn.json +5 -1
  88. package/dist/esm/i18n/de.json +5 -1
  89. package/dist/esm/i18n/en.json +14 -10
  90. package/dist/esm/i18n/es.json +5 -1
  91. package/dist/esm/i18n/fr.json +5 -1
  92. package/dist/esm/i18n/hi.json +5 -1
  93. package/dist/esm/i18n/id.json +5 -1
  94. package/dist/esm/i18n/it.json +5 -1
  95. package/dist/esm/i18n/ja.json +5 -1
  96. package/dist/esm/i18n/ko.json +5 -1
  97. package/dist/esm/i18n/pt.json +5 -1
  98. package/dist/esm/i18n/th.json +5 -1
  99. package/dist/esm/i18n/tr.json +5 -1
  100. package/dist/esm/i18n/uk.json +5 -1
  101. package/dist/esm/i18n/vi.json +5 -1
  102. package/dist/esm/i18n/zh.json +5 -1
  103. package/dist/esm/pages/MainPage/MainPage.style.d.ts +1 -3
  104. package/dist/esm/pages/RoutesPage/RoutesPage.style.d.ts +1 -3
  105. package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js +1 -2
  106. package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -1
  107. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  108. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.d.ts +15 -45
  109. package/dist/esm/pages/SettingsPage/ResetSettingsButton.style.d.ts +1 -3
  110. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +2 -6
  111. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.d.ts +3 -9
  112. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +2 -2
  113. package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -1
  114. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +1 -1
  115. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  116. package/dist/esm/pages/TransactionPage/StatusBottomSheet.style.d.ts +3 -9
  117. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
  118. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  119. package/dist/esm/providers/WalletProvider/EVMBaseProvider.js +1 -1
  120. package/dist/esm/providers/WalletProvider/EVMBaseProvider.js.map +1 -1
  121. package/dist/esm/providers/WalletProvider/SDKProviders.js +2 -15
  122. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +1 -1
  123. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js +1 -1
  124. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js.map +1 -1
  125. package/dist/esm/stores/bookmarks/BookmarkStore.js +1 -1
  126. package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
  127. package/dist/esm/stores/chains/ChainOrderStore.js +1 -1
  128. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  129. package/dist/esm/stores/form/FormStore.js +1 -1
  130. package/dist/esm/stores/form/FormStore.js.map +1 -1
  131. package/dist/esm/stores/header/useHeaderStore.js +1 -1
  132. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  133. package/dist/esm/stores/routes/RouteExecutionStore.js +1 -1
  134. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  135. package/dist/esm/stores/routes/useExecutingRoutesIds.js +2 -2
  136. package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
  137. package/dist/esm/stores/settings/useSplitSubvariantStore.js +1 -1
  138. package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
  139. package/dist/esm/themes/createTheme.js +4 -5
  140. package/dist/esm/themes/createTheme.js.map +1 -1
  141. package/dist/esm/types/widget.d.ts +19 -1
  142. package/dist/esm/types/widget.js.map +1 -1
  143. package/package.json +13 -16
  144. package/src/components/ActiveTransactions/ActiveTransactionItem.tsx +1 -0
  145. package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +3 -3
  146. package/src/components/ButtonTertiary.tsx +4 -5
  147. package/src/components/Card/CardLabel.tsx +0 -1
  148. package/src/components/RouteCard/RouteCard.tsx +19 -6
  149. package/src/components/RouteCard/getMatchingLabels.ts +53 -0
  150. package/src/components/Routes/RoutesExpanded.tsx +3 -3
  151. package/src/components/Step/CircularProgress.style.tsx +13 -2
  152. package/src/components/Step/CircularProgress.tsx +2 -1
  153. package/src/components/Step/Step.tsx +23 -12
  154. package/src/components/Step/StepProcess.tsx +2 -1
  155. package/src/components/Step/StepTimer.tsx +3 -1
  156. package/src/components/TokenList/TokenListItem.tsx +1 -1
  157. package/src/config/version.ts +1 -1
  158. package/src/hooks/timer/useInterval.ts +1 -1
  159. package/src/hooks/useDebouncedWatch.ts +1 -1
  160. package/src/hooks/useProcessMessage.ts +24 -5
  161. package/src/hooks/useRoutes.ts +127 -66
  162. package/src/hooks/useSetContentHeight.ts +1 -1
  163. package/src/i18n/bn.json +5 -1
  164. package/src/i18n/de.json +5 -1
  165. package/src/i18n/en.json +14 -10
  166. package/src/i18n/es.json +5 -1
  167. package/src/i18n/fr.json +5 -1
  168. package/src/i18n/hi.json +5 -1
  169. package/src/i18n/id.json +5 -1
  170. package/src/i18n/it.json +5 -1
  171. package/src/i18n/ja.json +5 -1
  172. package/src/i18n/ko.json +5 -1
  173. package/src/i18n/pt.json +5 -1
  174. package/src/i18n/th.json +5 -1
  175. package/src/i18n/tr.json +5 -1
  176. package/src/i18n/uk.json +5 -1
  177. package/src/i18n/vi.json +5 -1
  178. package/src/i18n/zh.json +5 -1
  179. package/src/pages/SendToWallet/BookmarkAddressSheet.tsx +2 -3
  180. package/src/pages/SendToWallet/BookmarksPage.tsx +0 -1
  181. package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +2 -2
  182. package/src/pages/TransactionPage/StatusBottomSheet.tsx +1 -1
  183. package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
  184. package/src/providers/WalletProvider/EVMBaseProvider.tsx +1 -1
  185. package/src/providers/WalletProvider/SDKProviders.tsx +2 -16
  186. package/src/providers/WalletProvider/UTXOBaseProvider.tsx +1 -1
  187. package/src/stores/bookmarks/BookmarkStore.tsx +1 -1
  188. package/src/stores/chains/ChainOrderStore.tsx +1 -1
  189. package/src/stores/form/FormStore.tsx +1 -1
  190. package/src/stores/header/useHeaderStore.tsx +1 -1
  191. package/src/stores/routes/RouteExecutionStore.tsx +1 -1
  192. package/src/stores/routes/useExecutingRoutesIds.ts +2 -2
  193. package/src/stores/settings/useSplitSubvariantStore.tsx +1 -1
  194. package/src/themes/createTheme.ts +6 -8
  195. package/src/themes/types.ts +0 -1
  196. package/src/types/widget.ts +23 -0
  197. package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.d.ts +0 -8
  198. package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.js +0 -95
  199. package/dist/esm/providers/WalletProvider/getSafeMultisigConfig.js.map +0 -1
  200. package/src/providers/WalletProvider/getSafeMultisigConfig.ts +0 -144
package/src/i18n/tr.json CHANGED
@@ -52,12 +52,14 @@
52
52
  },
53
53
  "header": {
54
54
  "activeTransactions": "Aktif işlemler",
55
+ "amount": "",
55
56
  "bookmarkedWallets": "Kayıtlı cüzdanlar",
56
57
  "bridge": "Gönder",
57
58
  "checkout": "Ödeme yap",
58
59
  "checkoutDetails": "Ödeme detayları",
59
60
  "deposit": "Para Yatır",
60
61
  "depositDetails": "Para Yatırma Detayı",
62
+ "depositTo": "",
61
63
  "exchange": "Al-Sat",
62
64
  "from": "Şundan takas et",
63
65
  "gas": "Gaz",
@@ -265,13 +267,15 @@
265
267
  "stepBridge": "Köprüle",
266
268
  "stepBridgeAndBuy": "Köprüle ve satın al",
267
269
  "stepBridgeAndDeposit": "Köprüle ve yatır",
270
+ "stepBuy": "Satın al",
271
+ "stepDeposit": "Para Yatır",
268
272
  "stepDetails": "LI.FI aracılığıyla {{tool}}",
269
273
  "stepSwap": "Takas et",
270
274
  "stepSwapAndBridge": "Takas et ve Köprüle",
271
275
  "stepSwapAndBuy": "Takasla ve satın al",
272
276
  "stepSwapAndDeposit": "Takas et ve yatır",
273
- "transferId": "",
274
277
  "swapStepDetails": "{{chain}} üzerinde {{tool}} aracılığıyla takas et",
278
+ "transferId": "",
275
279
  "tags": {
276
280
  "cheapest": "En iyi sonuç",
277
281
  "fastest": "En Hızlı"
package/src/i18n/uk.json CHANGED
@@ -52,12 +52,14 @@
52
52
  },
53
53
  "header": {
54
54
  "activeTransactions": "Активні транзакції",
55
+ "amount": "Сума",
55
56
  "bookmarkedWallets": "Закладки гаманців",
56
57
  "bridge": "Бридж",
57
58
  "checkout": "Розрахунок",
58
59
  "checkoutDetails": "Деталі платежу",
59
60
  "deposit": "Депозит",
60
61
  "depositDetails": "Деталі депозиту",
62
+ "depositTo": "Внести на",
61
63
  "exchange": "Обмін",
62
64
  "from": "Своп з",
63
65
  "gas": "Газ",
@@ -265,13 +267,15 @@
265
267
  "stepBridge": "Бридж",
266
268
  "stepBridgeAndBuy": "Бридж та покупка",
267
269
  "stepBridgeAndDeposit": "Брідж та депозит",
270
+ "stepBuy": "Придбати",
271
+ "stepDeposit": "Депозит",
268
272
  "stepDetails": "{{tool}} через LI.FI",
269
273
  "stepSwap": "Своп",
270
274
  "stepSwapAndBridge": "Своп та бридж",
271
275
  "stepSwapAndBuy": "Своп та покупка",
272
276
  "stepSwapAndDeposit": "Своп та депозит",
273
- "transferId": "Ідентифікатор переказу",
274
277
  "swapStepDetails": "Своп на {{chain}} через {{tool}}",
278
+ "transferId": "Ідентифікатор переказу",
275
279
  "tags": {
276
280
  "cheapest": "Найкращий курс",
277
281
  "fastest": "Найшвидший"
package/src/i18n/vi.json CHANGED
@@ -52,12 +52,14 @@
52
52
  },
53
53
  "header": {
54
54
  "activeTransactions": "Các giao dịch hiện tại",
55
+ "amount": "",
55
56
  "bookmarkedWallets": "Ví được đánh dấu",
56
57
  "bridge": "Cầu",
57
58
  "checkout": "Thanh toán",
58
59
  "checkoutDetails": "",
59
60
  "deposit": "",
60
61
  "depositDetails": "",
62
+ "depositTo": "",
61
63
  "exchange": "Hoán đổi",
62
64
  "from": "Swap từ",
63
65
  "gas": "Gas",
@@ -265,13 +267,15 @@
265
267
  "stepBridge": "Cầu",
266
268
  "stepBridgeAndBuy": "Chuyển và mua",
267
269
  "stepBridgeAndDeposit": "",
270
+ "stepBuy": "Mua",
271
+ "stepDeposit": "",
268
272
  "stepDetails": "{{tool}} thông qua LI.FI",
269
273
  "stepSwap": "Swap",
270
274
  "stepSwapAndBridge": "Swap và Bridge",
271
275
  "stepSwapAndBuy": "Hoán đổi và mua",
272
276
  "stepSwapAndDeposit": "",
273
- "transferId": "",
274
277
  "swapStepDetails": "Swap tại {{chain}} thông qua {{tool}}",
278
+ "transferId": "",
275
279
  "tags": {
276
280
  "cheapest": "Lợi nhuận tốt nhất",
277
281
  "fastest": "Nhanh nhất"
package/src/i18n/zh.json CHANGED
@@ -52,12 +52,14 @@
52
52
  },
53
53
  "header": {
54
54
  "activeTransactions": "进行中的交易",
55
+ "amount": "",
55
56
  "bookmarkedWallets": "已收藏的钱包",
56
57
  "bridge": "跨链",
57
58
  "checkout": "支付",
58
59
  "checkoutDetails": "交易细节",
59
60
  "deposit": "存款",
60
61
  "depositDetails": "存款详情",
62
+ "depositTo": "",
61
63
  "exchange": "兑换",
62
64
  "from": "兑换自",
63
65
  "gas": "燃气费",
@@ -265,13 +267,15 @@
265
267
  "stepBridge": "跨链",
266
268
  "stepBridgeAndBuy": "跨链并购买",
267
269
  "stepBridgeAndDeposit": "跨链并存款",
270
+ "stepBuy": "购买",
271
+ "stepDeposit": "存款",
268
272
  "stepDetails": "通过 LI.FI {{tool}}",
269
273
  "stepSwap": "兑换",
270
274
  "stepSwapAndBridge": "兑换和跨链",
271
275
  "stepSwapAndBuy": "兑换并购买",
272
276
  "stepSwapAndDeposit": "兑换并存款",
273
- "transferId": "交易 ID",
274
277
  "swapStepDetails": "通过{{tool}}在{{chain}}链上兑换代币",
278
+ "transferId": "交易 ID",
275
279
  "tags": {
276
280
  "cheapest": "最佳报价",
277
281
  "fastest": "速度最快"
@@ -1,5 +1,4 @@
1
1
  import { Error as ErrorIcon, Info, TurnedIn } from '@mui/icons-material'
2
- import { LoadingButton } from '@mui/lab'
3
2
  import { Button, Typography } from '@mui/material'
4
3
  import type { ChangeEvent, MutableRefObject } from 'react'
5
4
  import { forwardRef, useState } from 'react'
@@ -217,7 +216,7 @@ export const BookmarkAddressSheet = forwardRef<
217
216
  <Button variant="text" onClick={handleCancel} fullWidth>
218
217
  {t('button.cancel')}
219
218
  </Button>
220
- <LoadingButton
219
+ <Button
221
220
  variant="contained"
222
221
  onClick={handleBookmark}
223
222
  loading={isValidating}
@@ -226,7 +225,7 @@ export const BookmarkAddressSheet = forwardRef<
226
225
  focusRipple
227
226
  >
228
227
  {t('button.bookmark')}
229
- </LoadingButton>
228
+ </Button>
230
229
  </SendToWalletButtonRow>
231
230
  </SendToWalletSheetContainer>
232
231
  </BottomSheet>
@@ -9,7 +9,6 @@ import { Button, ListItemAvatar, ListItemText, MenuItem } from '@mui/material'
9
9
  import { useId, useRef, useState } from 'react'
10
10
  import { useTranslation } from 'react-i18next'
11
11
  import { useNavigate } from 'react-router-dom'
12
-
13
12
  import { AccountAvatar } from '../../components/Avatar/AccountAvatar.js'
14
13
  import type { BottomSheetBase } from '../../components/BottomSheet/types.js'
15
14
  import { ListItemButton } from '../../components/ListItem//ListItemButton.js'
@@ -34,7 +34,7 @@ export const ExchangeRateBottomSheet = forwardRef<
34
34
  >(({ onContinue, onCancel }, ref) => {
35
35
  const [data, setData] = useState<ExchangeRateUpdateParams>()
36
36
  const bottomSheetRef = useRef<BottomSheetBase>(null)
37
- const resolverRef = useRef<(value: boolean) => void>()
37
+ const resolverRef = useRef<(value: boolean) => void>(null)
38
38
 
39
39
  const handleContinue = () => {
40
40
  ;(ref as MutableRefObject<ExchangeRateBottomSheetBase>).current?.close(true)
@@ -90,7 +90,7 @@ const ExchangeRateBottomSheetContent: React.FC<
90
90
  ExchangeRateBottomSheetProps
91
91
  > = ({ data, onCancel, onContinue }) => {
92
92
  const { t } = useTranslation()
93
- const ref = useRef<HTMLElement>()
93
+ const ref = useRef<HTMLElement>(null)
94
94
  useSetContentHeight(ref)
95
95
 
96
96
  if (!data) {
@@ -86,7 +86,7 @@ export const StatusBottomSheetContent: React.FC<
86
86
  } = useWidgetConfig()
87
87
  const { getChainById } = useAvailableChains()
88
88
 
89
- const ref = useRef<HTMLElement>()
89
+ const ref = useRef<HTMLElement>(null)
90
90
  useSetContentHeight(ref)
91
91
 
92
92
  const toToken = {
@@ -44,7 +44,7 @@ const TokenValueBottomSheetContent: React.FC<TokenValueBottomSheetProps> = ({
44
44
  onContinue,
45
45
  }) => {
46
46
  const { t } = useTranslation()
47
- const ref = useRef<HTMLElement>()
47
+ const ref = useRef<HTMLElement>(null)
48
48
  useSetContentHeight(ref)
49
49
  const { gasCosts, feeCosts, gasCostUSD, feeCostUSD } =
50
50
  getAccumulatedFeeCostsBreakdown(route)
@@ -14,7 +14,7 @@ import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
14
14
  export const EVMBaseProvider: FC<PropsWithChildren> = ({ children }) => {
15
15
  const { walletConfig } = useWidgetConfig()
16
16
  const { chains } = useAvailableChains()
17
- const wagmi = useRef<DefaultWagmiConfigResult>()
17
+ const wagmi = useRef<DefaultWagmiConfigResult>(null)
18
18
 
19
19
  if (!wagmi.current) {
20
20
  wagmi.current = createDefaultWagmiConfig({
@@ -5,20 +5,18 @@ import { ChainType, EVM, Solana, UTXO, config } from '@lifi/sdk'
5
5
  import type { SignerWalletAdapter } from '@solana/wallet-adapter-base'
6
6
  import { useWallet } from '@solana/wallet-adapter-react'
7
7
  import { useEffect } from 'react'
8
- import { useAccount, useConfig as useWagmiConfig } from 'wagmi'
8
+ import { useConfig as useWagmiConfig } from 'wagmi'
9
9
  import {
10
10
  getConnectorClient as getWagmiConnectorClient,
11
11
  switchChain,
12
12
  } from 'wagmi/actions'
13
13
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
14
- import { getSafeMultisigConfig } from './getSafeMultisigConfig.js'
15
14
 
16
15
  export const SDKProviders = () => {
17
16
  const { sdkConfig } = useWidgetConfig()
18
17
  const { wallet } = useWallet()
19
18
  const wagmiConfig = useWagmiConfig()
20
19
  const bigmiConfig = useBigmiConfig()
21
- const account = useAccount({ config: wagmiConfig })
22
20
 
23
21
  useEffect(() => {
24
22
  // Configure SDK Providers
@@ -33,11 +31,6 @@ export const SDKProviders = () => {
33
31
  (provider) => provider.type === ChainType.UTXO
34
32
  )
35
33
  if (!hasConfiguredEVMProvider) {
36
- // TODO: refactor this in favor of EIP-5792: Wallet Call API
37
- const multisig =
38
- account.connector?.id === 'safe'
39
- ? getSafeMultisigConfig(account.connector)
40
- : undefined
41
34
  providers.push(
42
35
  EVM({
43
36
  getWalletClient: () => getWagmiConnectorClient(wagmiConfig),
@@ -45,7 +38,6 @@ export const SDKProviders = () => {
45
38
  const chain = await switchChain(wagmiConfig, { chainId })
46
39
  return getWagmiConnectorClient(wagmiConfig, { chainId: chain.id })
47
40
  },
48
- multisig,
49
41
  })
50
42
  )
51
43
  }
@@ -69,13 +61,7 @@ export const SDKProviders = () => {
69
61
  providers.push(...sdkConfig.providers)
70
62
  }
71
63
  config.setProviders(providers)
72
- }, [
73
- account.connector,
74
- bigmiConfig,
75
- sdkConfig?.providers,
76
- wagmiConfig,
77
- wallet?.adapter,
78
- ])
64
+ }, [bigmiConfig, sdkConfig?.providers, wagmiConfig, wallet?.adapter])
79
65
 
80
66
  return null
81
67
  }
@@ -4,7 +4,7 @@ import { createDefaultBigmiConfig } from '@lifi/wallet-management'
4
4
  import { type FC, type PropsWithChildren, useRef } from 'react'
5
5
 
6
6
  export const UTXOBaseProvider: FC<PropsWithChildren> = ({ children }) => {
7
- const bigmi = useRef<DefaultWagmiConfigResult>()
7
+ const bigmi = useRef<DefaultWagmiConfigResult>(null)
8
8
 
9
9
  if (!bigmi.current) {
10
10
  bigmi.current = createDefaultBigmiConfig({
@@ -12,7 +12,7 @@ export const BookmarkStoreProvider: React.FC<PersistStoreProviderProps> = ({
12
12
  ...props
13
13
  }) => {
14
14
  const { toAddress } = useWidgetConfig()
15
- const storeRef = useRef<BookmarkStore>()
15
+ const storeRef = useRef<BookmarkStore>(null)
16
16
 
17
17
  if (!storeRef.current) {
18
18
  storeRef.current = createBookmarksStore({ ...props, toAddress })
@@ -24,7 +24,7 @@ export function ChainOrderStoreProvider({
24
24
  ...props
25
25
  }: PersistStoreProviderProps) {
26
26
  const { chains: chainsConfig } = useWidgetConfig()
27
- const storeRef = useRef<ChainOrderStore>()
27
+ const storeRef = useRef<ChainOrderStore>(null)
28
28
  const { chains } = useChains()
29
29
  const { setFieldValue, getFieldValues } = useFieldActions()
30
30
  const { externalChainTypes, useExternalWalletProvidersOnly } =
@@ -53,7 +53,7 @@ export const FormStoreProvider: React.FC<FormStoreProviderProps> = ({
53
53
  formUpdateKey,
54
54
  } = widgetConfig
55
55
 
56
- const storeRef = useRef<FormStoreStore>()
56
+ const storeRef = useRef<FormStoreStore>(null)
57
57
 
58
58
  const hiddenToAddress = hiddenUI?.includes(HiddenUI.ToAddress)
59
59
 
@@ -7,7 +7,7 @@ import type { HeaderState, HeaderStore } from './types.js'
7
7
  export const HeaderStoreContext = createContext<HeaderStore | null>(null)
8
8
 
9
9
  export function HeaderStoreProvider({ children }: PersistStoreProviderProps) {
10
- const storeRef = useRef<HeaderStore>()
10
+ const storeRef = useRef<HeaderStore>(null)
11
11
  if (!storeRef.current) {
12
12
  storeRef.current = createHeaderStore()
13
13
  }
@@ -16,7 +16,7 @@ export function RouteExecutionStoreProvider({
16
16
  children,
17
17
  ...props
18
18
  }: PersistStoreProviderProps) {
19
- const storeRef = useRef<RouteExecutionStore>()
19
+ const storeRef = useRef<RouteExecutionStore>(null)
20
20
  if (!storeRef.current) {
21
21
  storeRef.current = createRouteExecutionStore(props)
22
22
  }
@@ -18,8 +18,8 @@ export const useExecutingRoutesIds = () => {
18
18
  )
19
19
  .sort(
20
20
  (a, b) =>
21
- (b?.route.steps[0].execution?.process[0].startedAt ?? 0) -
22
- (a?.route.steps[0].execution?.process[0].startedAt ?? 0)
21
+ (b?.route.steps[0].execution?.process[0]?.startedAt ?? 0) -
22
+ (a?.route.steps[0].execution?.process[0]?.startedAt ?? 0)
23
23
  )
24
24
  .map(({ route }) => route.id),
25
25
  shallow
@@ -22,7 +22,7 @@ export function SplitSubvariantStoreProvider({
22
22
  children,
23
23
  ...props
24
24
  }: SplitSubvariantProviderProps) {
25
- const storeRef = useRef<SplitSubvariantStore>()
25
+ const storeRef = useRef<SplitSubvariantStore>(null)
26
26
  if (!storeRef.current || shouldRecreateStore(storeRef.current, props)) {
27
27
  storeRef.current = createSplitSubvariantStore(props)
28
28
  }
@@ -1,5 +1,3 @@
1
- import { loadingButtonClasses } from '@mui/lab'
2
- import type {} from '@mui/lab/themeAugmentation'
3
1
  import type {
4
2
  CSSObject,
5
3
  PaletteMode,
@@ -8,6 +6,7 @@ import type {
8
6
  } from '@mui/material'
9
7
  import {
10
8
  alpha,
9
+ buttonClasses,
11
10
  createTheme as createMuiTheme,
12
11
  css,
13
12
  darken,
@@ -247,19 +246,18 @@ export const createTheme = (
247
246
  cursor: 'not-allowed',
248
247
  pointerEvents: 'auto',
249
248
  },
250
- [`&.${loadingButtonClasses.loading}.Mui-disabled`]: {
249
+ [`&.${buttonClasses.loading}.Mui-disabled`]: {
251
250
  backgroundColor: primaryMainColor,
252
251
  color: contrastButtonColor,
253
252
  cursor: 'auto',
254
253
  pointerEvents: 'auto',
255
254
  },
256
- [`.${loadingButtonClasses.loadingIndicator}`]: {
255
+ [`.${buttonClasses.loadingIndicator}`]: {
257
256
  color: contrastButtonColor,
258
257
  },
259
- [`&.${loadingButtonClasses.root}.${loadingButtonClasses.loading}`]:
260
- {
261
- color: 'transparent',
262
- },
258
+ [`&.${buttonClasses.root}.${buttonClasses.loading}`]: {
259
+ color: 'transparent',
260
+ },
263
261
  ...getStyleOverrides('MuiButton', 'root', widgetTheme, ownerState),
264
262
  }),
265
263
  text: ({ ownerState }) => ({
@@ -1,4 +1,3 @@
1
- import type {} from '@mui/lab/themeAugmentation'
2
1
  import type {
3
2
  CardProps,
4
3
  ComponentsOverrides,
@@ -13,6 +13,7 @@ import type {
13
13
  PaletteMode,
14
14
  PaletteOptions,
15
15
  Shape,
16
+ SxProps,
16
17
  Theme,
17
18
  } from '@mui/material'
18
19
  import type { TypographyOptions } from '@mui/material/styles/createTypography.js'
@@ -191,6 +192,22 @@ export type WidgetLanguages = {
191
192
 
192
193
  export type PoweredByType = 'default' | 'jumper'
193
194
 
195
+ export interface RouteLabel {
196
+ text: string
197
+ sx?: SxProps<Theme>
198
+ }
199
+
200
+ export interface RouteLabelRule {
201
+ label: RouteLabel
202
+ // Matching criteria
203
+ bridges?: AllowDeny<string>
204
+ exchanges?: AllowDeny<string>
205
+ fromChainId?: number[]
206
+ toChainId?: number[]
207
+ fromTokenAddress?: string[]
208
+ toTokenAddress?: string[]
209
+ }
210
+
194
211
  export interface WidgetConfig {
195
212
  fromChain?: number
196
213
  toChain?: number
@@ -227,6 +244,7 @@ export interface WidgetConfig {
227
244
  hiddenUI?: HiddenUIType[]
228
245
  requiredUI?: RequiredUIType[]
229
246
  useRecommendedRoute?: boolean
247
+ useRelayerRoutes?: boolean
230
248
 
231
249
  walletConfig?: WidgetWalletConfig
232
250
  sdkConfig?: WidgetSDKConfig
@@ -243,6 +261,11 @@ export interface WidgetConfig {
243
261
  explorerUrls?: Record<number, string[]> &
244
262
  Partial<Record<'internal', string[]>>
245
263
  poweredBy?: PoweredByType
264
+
265
+ /**
266
+ * Custom labels/badges to show on routes based on specified rules
267
+ */
268
+ routeLabels?: RouteLabelRule[]
246
269
  }
247
270
 
248
271
  export interface FormFieldOptions {
@@ -1,8 +0,0 @@
1
- import type { MultisigTransaction, MultisigTxDetails } from '@lifi/sdk';
2
- import type { Connector } from 'wagmi';
3
- export declare const getSafeMultisigConfig: (connector: Connector) => {
4
- isMultisigWalletClient: boolean;
5
- shouldBatchTransactions: boolean;
6
- sendBatchTransaction: (batchTransactions: MultisigTransaction[]) => Promise<`0x${string}`>;
7
- getMultisigTransactionDetails: (txHash: string, chainId: number, updateIntermediateStatus?: () => void) => Promise<MultisigTxDetails>;
8
- };
@@ -1,95 +0,0 @@
1
- var TransactionStatus;
2
- (function (TransactionStatus) {
3
- TransactionStatus["AWAITING_CONFIRMATIONS"] = "AWAITING_CONFIRMATIONS";
4
- TransactionStatus["AWAITING_EXECUTION"] = "AWAITING_EXECUTION";
5
- TransactionStatus["CANCELLED"] = "CANCELLED";
6
- TransactionStatus["FAILED"] = "FAILED";
7
- TransactionStatus["SUCCESS"] = "SUCCESS";
8
- })(TransactionStatus || (TransactionStatus = {}));
9
- export const getSafeMultisigConfig = (connector) => {
10
- const getMultisigTransactionDetails = async (txHash, chainId, updateIntermediateStatus) => {
11
- const safeAppProvider = (await connector.getProvider());
12
- const safeProviderSDK = safeAppProvider.sdk;
13
- const safeTransactionDetails = await safeProviderSDK.txs.getBySafeTxHash(txHash);
14
- const safeTxHash = safeTransactionDetails.txId;
15
- const safeApiTransactionResponse = await fetch(`https://safe-client.safe.global/v1/chains/${chainId}/transactions/${safeTxHash}`);
16
- const safeApiTransactionDetails = await safeApiTransactionResponse.json();
17
- const nonTerminalStatus = [
18
- TransactionStatus.SUCCESS,
19
- TransactionStatus.CANCELLED,
20
- TransactionStatus.FAILED,
21
- ];
22
- const isSafeStatusPending = !nonTerminalStatus.includes(safeTransactionDetails.txStatus) &&
23
- !nonTerminalStatus.includes(safeApiTransactionDetails.txStatus);
24
- const isAwaitingExecution = [
25
- safeTransactionDetails.txStatus,
26
- safeApiTransactionDetails.txStatus,
27
- ].includes(TransactionStatus.AWAITING_EXECUTION);
28
- if (isAwaitingExecution) {
29
- updateIntermediateStatus?.();
30
- }
31
- if (isSafeStatusPending) {
32
- await new Promise((resolve) => {
33
- setTimeout(resolve, 5000);
34
- });
35
- return await getMultisigTransactionDetails(txHash, chainId, updateIntermediateStatus);
36
- }
37
- if ([
38
- safeTransactionDetails.txStatus,
39
- safeApiTransactionDetails.txStatus,
40
- ].includes(TransactionStatus.SUCCESS)) {
41
- return {
42
- status: 'DONE',
43
- txHash: `0x${safeTransactionDetails.txHash?.slice(2)}`,
44
- };
45
- }
46
- if ([
47
- safeTransactionDetails.txStatus,
48
- safeApiTransactionDetails.txStatus,
49
- ].includes(TransactionStatus.FAILED)) {
50
- return {
51
- status: 'FAILED',
52
- txHash: `0x${safeTransactionDetails.txHash?.slice(2)}`,
53
- };
54
- }
55
- if ([
56
- safeTransactionDetails.txStatus,
57
- safeApiTransactionDetails.txStatus,
58
- ].includes(TransactionStatus.CANCELLED)) {
59
- return {
60
- status: 'CANCELLED',
61
- txHash: `0x${safeTransactionDetails.txHash?.slice(2)}`,
62
- };
63
- }
64
- if (isSafeStatusPending) {
65
- return {
66
- status: 'PENDING',
67
- txHash: `0x${safeTransactionDetails.txHash?.slice(2)}`,
68
- };
69
- }
70
- return {
71
- status: 'PENDING',
72
- txHash: `0x${safeTransactionDetails.txHash?.slice(2)}`,
73
- };
74
- };
75
- const sendBatchTransaction = async (batchTransactions) => {
76
- const safeAppProvider = (await connector.getProvider());
77
- const safeProviderSDK = safeAppProvider.sdk;
78
- try {
79
- const { safeTxHash } = await safeProviderSDK.txs.send({
80
- txs: batchTransactions,
81
- });
82
- return `0x${safeTxHash.slice(2)}`;
83
- }
84
- catch (error) {
85
- throw new Error(error);
86
- }
87
- };
88
- return {
89
- isMultisigWalletClient: connector?.id === 'safe',
90
- shouldBatchTransactions: connector?.id === 'safe',
91
- sendBatchTransaction,
92
- getMultisigTransactionDetails,
93
- };
94
- };
95
- //# sourceMappingURL=getSafeMultisigConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getSafeMultisigConfig.js","sourceRoot":"","sources":["../../../../src/providers/WalletProvider/getSafeMultisigConfig.ts"],"names":[],"mappings":"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"}