@lifi/widget 1.31.1 → 1.32.1
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.
- package/App.js +4 -16
- package/AppDrawer.js +13 -7
- package/AppDrawer.style.d.ts +3 -3
- package/AppDrawer.style.js +1 -1
- package/AppProvider.js +1 -1
- package/AppRoutes.js +9 -0
- package/cjs/App.js +4 -16
- package/cjs/AppDrawer.js +13 -7
- package/cjs/AppDrawer.style.d.ts +3 -3
- package/cjs/AppDrawer.style.js +1 -1
- package/cjs/AppProvider.js +1 -1
- package/cjs/AppRoutes.js +9 -0
- package/cjs/components/ActiveSwaps/ActiveSwapItem.js +9 -7
- package/cjs/components/ActiveSwaps/ActiveSwaps.js +3 -3
- package/cjs/components/ActiveSwaps/ActiveSwaps.style.d.ts +5 -5
- package/cjs/components/AppContainer.d.ts +2 -2
- package/cjs/components/AppContainer.js +1 -1
- package/cjs/components/BottomSheet/BottomSheet.d.ts +1 -1
- package/cjs/components/BottomSheet/BottomSheet.js +2 -2
- package/cjs/components/Card/Card.d.ts +2 -2
- package/cjs/components/Card/CardHeader.d.ts +1 -1
- package/cjs/components/Card/CardTitle.d.ts +1 -1
- package/cjs/components/ChainSelect/ChainSelect.d.ts +0 -1
- package/cjs/components/ChainSelect/ChainSelect.js +3 -4
- package/cjs/components/ChainSelect/ChainSelect.style.d.ts +3 -3
- package/cjs/components/ContractComponent/ContractComponent.js +1 -1
- package/cjs/components/Dialog.js +1 -1
- package/cjs/components/GasSufficiencyMessage/GasSufficiencyMessage.js +13 -28
- package/cjs/components/GasSufficiencyMessage/GasSufficiencyMessage.style.d.ts +1 -1
- package/cjs/components/Header/Header.js +1 -1
- package/cjs/components/Header/Header.style.d.ts +4 -4
- package/cjs/components/Header/NavigationHeader.js +6 -2
- package/cjs/components/Header/WalletHeader.js +12 -22
- package/cjs/{pages/SelectNativeTokenPage/SelectNativeTokenPage.style.d.ts → components/ListItemButton.d.ts} +1 -2
- package/cjs/{pages/SelectWalletPage/SelectWalletPage.style.js → components/ListItemButton.js} +2 -8
- package/cjs/components/ListItemText.d.ts +2 -0
- package/cjs/{pages/SelectNativeTokenPage/SelectNativeTokenPage.style.js → components/ListItemText.js} +1 -10
- package/cjs/components/NFT/NFT.js +2 -14
- package/cjs/components/NFT/NFT.style.d.ts +1 -1
- package/cjs/components/NotFound.js +2 -2
- package/cjs/components/PoweredBy/PoweredBy.js +2 -2
- package/cjs/components/PoweredBy/PoweredBy.style.d.ts +1 -1
- package/cjs/components/ProgressToNextUpdate/ProgressToNextUpdate.js +5 -17
- package/cjs/components/ReverseTokensButton/ReverseTokensButton.js +1 -1
- package/cjs/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +2 -2
- package/cjs/components/Select.js +1 -0
- package/cjs/components/SelectChainAndToken.js +4 -4
- package/cjs/components/SelectTokenButton/SelectTokenButton.js +2 -2
- package/cjs/components/SelectTokenButton/SelectTokenButton.style.d.ts +1 -1
- package/cjs/components/SendToWallet/SendToWallet.js +9 -19
- package/cjs/components/SendToWallet/SendToWallet.style.d.ts +2 -2
- package/cjs/components/SendToWallet/SendToWalletButton.js +5 -5
- package/cjs/components/SmallAvatar.d.ts +3 -3
- package/cjs/components/Step/CircularProgress.d.ts +0 -1
- package/cjs/components/Step/CircularProgress.js +2 -2
- package/cjs/components/Step/CircularProgress.style.d.ts +1 -1
- package/cjs/components/Step/DestinationWalletAddress.js +6 -7
- package/cjs/components/Step/GasStepProcess.js +8 -8
- package/cjs/components/Step/Step.js +4 -5
- package/cjs/components/Step/StepList.d.ts +0 -1
- package/cjs/components/Step/StepList.js +8 -4
- package/cjs/components/Step/StepProcess.js +3 -3
- package/cjs/components/Step/StepProcess.style.d.ts +3 -3
- package/cjs/components/Step/StepTimer.js +4 -8
- package/cjs/components/StepActions/StepActions.js +20 -37
- package/cjs/components/StepActions/StepActions.style.d.ts +1 -1
- package/cjs/components/StepDivider/StepDivider.style.d.ts +1 -1
- package/cjs/components/SwapButton/SwapButton.js +5 -14
- package/cjs/components/SwapInput/FormPriceHelperText.js +6 -6
- package/cjs/components/SwapInput/SwapInput.js +4 -16
- package/cjs/components/SwapInput/SwapInput.style.d.ts +2 -2
- package/cjs/components/SwapInput/SwapInputAdornment.style.d.ts +2 -2
- package/cjs/components/SwapInput/SwapInputEndAdornment.d.ts +0 -1
- package/cjs/components/SwapInput/SwapInputEndAdornment.js +2 -3
- package/cjs/components/SwapRouteCard/SwapRouteCard.js +9 -25
- package/cjs/components/SwapRouteCard/SwapRouteCard.style.d.ts +3 -3
- package/cjs/components/SwapRouteCard/SwapRouteCardSkeleton.js +4 -16
- package/cjs/components/SwapRouteCard/SwapRouteNotFoundCard.js +2 -2
- package/cjs/components/SwapRouteCard/utils.js +1 -1
- package/cjs/components/SwapRoutes/SwapRoutes.js +4 -4
- package/cjs/components/SwapRoutes/SwapRoutes.style.d.ts +5 -5
- package/cjs/components/SwapRoutes/SwapRoutesExpanded.d.ts +0 -1
- package/cjs/components/SwapRoutes/SwapRoutesExpanded.js +3 -3
- package/cjs/components/TextFitter/TextFitter.js +3 -3
- package/cjs/components/Token/Token.js +19 -33
- package/cjs/components/Token/Token.style.d.ts +3 -3
- package/cjs/components/TokenAvatar/TokenAvatar.js +6 -7
- package/cjs/components/TokenAvatar/TokenAvatar.style.d.ts +2 -2
- package/cjs/components/TokenList/TokenList.js +3 -4
- package/cjs/components/TokenList/TokenList.style.d.ts +3 -3
- package/cjs/components/TokenList/TokenList.style.js +2 -6
- package/cjs/components/TokenList/TokenListItem.js +9 -9
- package/cjs/components/TokenList/TokenNotFound.js +4 -5
- package/cjs/components/TokenList/VirtualizedTokenList.js +10 -11
- package/cjs/components/TokenList/useTokenSelect.js +2 -2
- package/cjs/config/env.js +1 -1
- package/cjs/config/sentry.js +3 -12
- package/cjs/config/theme.js +44 -16
- package/cjs/config/version.d.ts +1 -1
- package/cjs/config/version.js +1 -1
- package/cjs/hooks/useChain.js +1 -1
- package/cjs/hooks/useChains.js +5 -14
- package/cjs/hooks/useContentHeight.js +1 -2
- package/cjs/hooks/useFeaturedTokens.js +1 -4
- package/cjs/hooks/useGasSufficiency.js +28 -34
- package/cjs/hooks/useProcessMessage.js +7 -11
- package/cjs/hooks/useRouteExecution.js +16 -26
- package/cjs/hooks/useSwapRoutes.js +16 -26
- package/cjs/hooks/useToken.js +2 -2
- package/cjs/hooks/useTokenAddressBalance.js +1 -2
- package/cjs/hooks/useTokenBalance.js +24 -27
- package/cjs/hooks/useTokenBalances.d.ts +1 -1
- package/cjs/hooks/useTokenBalances.js +8 -20
- package/cjs/hooks/useTokenSearch.d.ts +1 -1
- package/cjs/hooks/useTokenSearch.js +12 -21
- package/cjs/hooks/useTokens.d.ts +1 -1
- package/cjs/hooks/useTokens.js +36 -38
- package/cjs/hooks/useTools.d.ts +2 -11
- package/cjs/hooks/useTools.js +11 -21
- package/cjs/i18n/en.json +8 -8
- package/cjs/i18n/uk.json +8 -8
- package/cjs/icons/LiFiFullLogo.js +1 -1
- package/cjs/icons/LiFiLogo.js +1 -1
- package/cjs/icons/LiFiToolLogo.js +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +2 -0
- package/cjs/pages/ActiveSwapsPage/ActiveSwapsEmpty.js +2 -2
- package/cjs/pages/ActiveSwapsPage/ActiveSwapsPage.d.ts +0 -1
- package/cjs/pages/ActiveSwapsPage/ActiveSwapsPage.js +3 -3
- package/cjs/pages/MainPage/MainPage.js +1 -1
- package/cjs/pages/MainPage/MainPage.style.d.ts +1 -1
- package/cjs/pages/MainPage/MainSwapButton.js +3 -12
- package/cjs/pages/SelectChainPage/SelectChainPage.js +6 -14
- package/cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.d.ts +4 -0
- package/cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js +51 -0
- package/cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.d.ts +20 -0
- package/cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.js +8 -0
- package/cjs/pages/SelectEnabledToolsPage/index.d.ts +1 -0
- package/cjs/pages/SelectEnabledToolsPage/index.js +17 -0
- package/cjs/pages/SelectNativeTokenPage/SelectNativeTokenPage.js +4 -3
- package/cjs/pages/SelectTokenPage/SearchTokenInput.d.ts +0 -1
- package/cjs/pages/SelectTokenPage/SearchTokenInput.js +4 -1
- package/cjs/pages/SelectTokenPage/SelectTokenPage.js +2 -3
- package/cjs/pages/SelectWalletPage/SelectWalletPage.d.ts +0 -1
- package/cjs/pages/SelectWalletPage/SelectWalletPage.js +13 -19
- package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.js +3 -3
- package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +2 -2
- package/cjs/pages/SettingsPage/EnabledToolsButton.d.ts +4 -0
- package/cjs/pages/SettingsPage/EnabledToolsButton.js +25 -0
- package/cjs/pages/{SelectChainPage/SelectChainPage.style.d.ts → SettingsPage/EnabledToolsButton.style.d.ts} +1 -1
- package/cjs/pages/{SelectChainPage/SelectChainPage.style.js → SettingsPage/EnabledToolsButton.style.js} +7 -10
- package/cjs/pages/SettingsPage/GasPriceSelect.d.ts +0 -1
- package/cjs/pages/SettingsPage/GasPriceSelect.js +1 -1
- package/cjs/pages/SettingsPage/LanguageSelect.js +5 -6
- package/cjs/pages/SettingsPage/ResetSettingsButton.d.ts +2 -0
- package/cjs/pages/SettingsPage/ResetSettingsButton.js +27 -0
- package/cjs/pages/SettingsPage/RoutePrioritySelect.js +4 -4
- package/cjs/pages/SettingsPage/SettingsPage.d.ts +0 -1
- package/cjs/pages/SettingsPage/SettingsPage.js +3 -2
- package/cjs/pages/SettingsPage/ShowDestinationWallet.d.ts +0 -1
- package/cjs/pages/SettingsPage/ShowDestinationWallet.js +3 -3
- package/cjs/pages/SettingsPage/SlippageInput.d.ts +0 -1
- package/cjs/pages/SettingsPage/SlippageInput.js +3 -3
- package/cjs/pages/SwapDetailsPage/SwapDetailsPage.js +14 -22
- package/cjs/pages/SwapDetailsPage/SwapDetailsPage.style.d.ts +1 -1
- package/cjs/pages/SwapHistoryPage/SwapHistoryEmpty.js +2 -2
- package/cjs/pages/SwapHistoryPage/SwapHistoryItem.js +9 -7
- package/cjs/pages/SwapHistoryPage/SwapHistoryPage.js +2 -2
- package/cjs/pages/SwapPage/ExchangeRateBottomSheet.js +21 -26
- package/cjs/pages/SwapPage/StartSwapButton.js +1 -1
- package/cjs/pages/SwapPage/StatusBottomSheet.js +21 -19
- package/cjs/pages/SwapPage/StatusBottomSheet.style.d.ts +2 -2
- package/cjs/pages/SwapPage/SwapPage.js +9 -21
- package/cjs/pages/SwapPage/SwapPage.style.d.ts +1 -1
- package/cjs/pages/SwapPage/TokenValueBottomSheet.js +8 -9
- package/cjs/pages/SwapRoutesPage/SwapRoutesPage.js +3 -3
- package/cjs/pages/SwapRoutesPage/SwapRoutesPage.style.d.ts +1 -1
- package/cjs/providers/I18nProvider/I18nProvider.js +7 -8
- package/cjs/providers/SDKProvider/SDKProvider.js +15 -4
- package/cjs/providers/SwapFormProvider/SwapFormProvider.js +12 -6
- package/cjs/providers/SwapFormProvider/URLSearchParamsBuilder.js +3 -12
- package/cjs/providers/TelemetryProvider/TelemetryProvider.js +1 -1
- package/cjs/providers/ThemeProvider/ThemeProvider.js +2 -2
- package/cjs/providers/WalletProvider/WalletProvider.js +30 -39
- package/cjs/providers/WidgetProvider/WidgetProvider.js +20 -27
- package/cjs/providers/WidgetProvider/utils.js +2 -3
- package/cjs/stores/StoreProvider.js +1 -7
- package/cjs/stores/chains/index.d.ts +1 -2
- package/cjs/stores/chains/index.js +1 -2
- package/cjs/stores/chains/useChainOrder.js +2 -2
- package/cjs/stores/chains/useChainOrderStore.d.ts +3 -0
- package/cjs/stores/chains/{createChainOrderStore.js → useChainOrderStore.js} +3 -4
- package/cjs/stores/routes/RouteExecutionStore.js +2 -14
- package/cjs/stores/routes/createRouteExecutionStore.js +27 -16
- package/cjs/stores/routes/types.d.ts +1 -1
- package/cjs/stores/routes/useExecutingRoutesIds.js +2 -5
- package/cjs/stores/routes/useRecommendedRouteStore.d.ts +10 -2
- package/cjs/stores/routes/useRecommendedRouteStore.js +30 -2
- package/cjs/stores/routes/useSwapHistory.js +3 -6
- package/cjs/stores/routes/utils.js +4 -4
- package/cjs/stores/settings/index.d.ts +1 -1
- package/cjs/stores/settings/index.js +1 -1
- package/cjs/stores/settings/types.d.ts +6 -6
- package/cjs/stores/settings/useAppearance.js +2 -2
- package/cjs/stores/settings/useSettings.js +2 -2
- package/cjs/stores/settings/useSettingsStore.d.ts +6 -0
- package/cjs/stores/settings/{createSettingsStore.js → useSettingsStore.js} +48 -28
- package/cjs/utils/colors.js +1 -1
- package/cjs/utils/format.js +3 -3
- package/cjs/utils/navigationRoutes.d.ts +2 -0
- package/cjs/utils/navigationRoutes.js +6 -0
- package/components/ActiveSwaps/ActiveSwapItem.js +9 -7
- package/components/ActiveSwaps/ActiveSwaps.js +3 -3
- package/components/ActiveSwaps/ActiveSwaps.style.d.ts +5 -5
- package/components/AppContainer.d.ts +2 -2
- package/components/AppContainer.js +1 -1
- package/components/BottomSheet/BottomSheet.d.ts +1 -1
- package/components/BottomSheet/BottomSheet.js +2 -2
- package/components/Card/Card.d.ts +2 -2
- package/components/Card/CardHeader.d.ts +1 -1
- package/components/Card/CardTitle.d.ts +1 -1
- package/components/ChainSelect/ChainSelect.d.ts +0 -1
- package/components/ChainSelect/ChainSelect.js +3 -4
- package/components/ChainSelect/ChainSelect.style.d.ts +3 -3
- package/components/ContractComponent/ContractComponent.js +1 -1
- package/components/Dialog.js +1 -1
- package/components/GasSufficiencyMessage/GasSufficiencyMessage.js +13 -28
- package/components/GasSufficiencyMessage/GasSufficiencyMessage.style.d.ts +1 -1
- package/components/Header/Header.js +1 -1
- package/components/Header/Header.style.d.ts +4 -4
- package/components/Header/NavigationHeader.js +6 -2
- package/components/Header/WalletHeader.js +12 -22
- package/{pages/SelectChainPage/SelectChainPage.style.d.ts → components/ListItemButton.d.ts} +1 -2
- package/components/ListItemButton.js +11 -0
- package/components/ListItemText.d.ts +2 -0
- package/components/ListItemText.js +8 -0
- package/components/NFT/NFT.js +2 -14
- package/components/NFT/NFT.style.d.ts +1 -1
- package/components/NotFound.js +2 -2
- package/components/PoweredBy/PoweredBy.js +2 -2
- package/components/PoweredBy/PoweredBy.style.d.ts +1 -1
- package/components/ProgressToNextUpdate/ProgressToNextUpdate.js +5 -17
- package/components/ReverseTokensButton/ReverseTokensButton.js +1 -1
- package/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +2 -2
- package/components/Select.js +1 -0
- package/components/SelectChainAndToken.js +4 -4
- package/components/SelectTokenButton/SelectTokenButton.js +2 -2
- package/components/SelectTokenButton/SelectTokenButton.style.d.ts +1 -1
- package/components/SendToWallet/SendToWallet.js +9 -19
- package/components/SendToWallet/SendToWallet.style.d.ts +2 -2
- package/components/SendToWallet/SendToWalletButton.js +5 -5
- package/components/SmallAvatar.d.ts +3 -3
- package/components/Step/CircularProgress.d.ts +0 -1
- package/components/Step/CircularProgress.js +2 -2
- package/components/Step/CircularProgress.style.d.ts +1 -1
- package/components/Step/DestinationWalletAddress.js +6 -7
- package/components/Step/GasStepProcess.js +8 -8
- package/components/Step/Step.js +4 -5
- package/components/Step/StepList.d.ts +0 -1
- package/components/Step/StepList.js +8 -4
- package/components/Step/StepProcess.js +3 -3
- package/components/Step/StepProcess.style.d.ts +3 -3
- package/components/Step/StepTimer.js +4 -8
- package/components/StepActions/StepActions.js +20 -37
- package/components/StepActions/StepActions.style.d.ts +1 -1
- package/components/StepDivider/StepDivider.style.d.ts +1 -1
- package/components/SwapButton/SwapButton.js +5 -14
- package/components/SwapInput/FormPriceHelperText.js +6 -6
- package/components/SwapInput/SwapInput.js +4 -16
- package/components/SwapInput/SwapInput.style.d.ts +2 -2
- package/components/SwapInput/SwapInputAdornment.style.d.ts +2 -2
- package/components/SwapInput/SwapInputEndAdornment.d.ts +0 -1
- package/components/SwapInput/SwapInputEndAdornment.js +2 -3
- package/components/SwapRouteCard/SwapRouteCard.js +9 -25
- package/components/SwapRouteCard/SwapRouteCard.style.d.ts +3 -3
- package/components/SwapRouteCard/SwapRouteCardSkeleton.js +4 -16
- package/components/SwapRouteCard/SwapRouteNotFoundCard.js +2 -2
- package/components/SwapRouteCard/utils.js +1 -1
- package/components/SwapRoutes/SwapRoutes.js +4 -4
- package/components/SwapRoutes/SwapRoutes.style.d.ts +5 -5
- package/components/SwapRoutes/SwapRoutesExpanded.d.ts +0 -1
- package/components/SwapRoutes/SwapRoutesExpanded.js +3 -3
- package/components/TextFitter/TextFitter.js +3 -3
- package/components/Token/Token.js +19 -33
- package/components/Token/Token.style.d.ts +3 -3
- package/components/TokenAvatar/TokenAvatar.js +6 -7
- package/components/TokenAvatar/TokenAvatar.style.d.ts +2 -2
- package/components/TokenList/TokenList.js +3 -4
- package/components/TokenList/TokenList.style.d.ts +3 -3
- package/components/TokenList/TokenList.style.js +3 -7
- package/components/TokenList/TokenListItem.js +9 -9
- package/components/TokenList/TokenNotFound.js +4 -5
- package/components/TokenList/VirtualizedTokenList.js +10 -11
- package/components/TokenList/useTokenSelect.js +2 -2
- package/config/env.js +1 -1
- package/config/sentry.js +3 -12
- package/config/theme.js +44 -16
- package/config/version.d.ts +1 -1
- package/config/version.js +1 -1
- package/hooks/useChain.js +1 -1
- package/hooks/useChains.js +5 -14
- package/hooks/useContentHeight.js +1 -2
- package/hooks/useFeaturedTokens.js +1 -4
- package/hooks/useGasSufficiency.js +28 -34
- package/hooks/useProcessMessage.js +7 -11
- package/hooks/useRouteExecution.js +16 -26
- package/hooks/useSwapRoutes.js +16 -26
- package/hooks/useToken.js +2 -2
- package/hooks/useTokenAddressBalance.js +1 -2
- package/hooks/useTokenBalance.js +24 -27
- package/hooks/useTokenBalances.d.ts +1 -1
- package/hooks/useTokenBalances.js +8 -20
- package/hooks/useTokenSearch.d.ts +1 -1
- package/hooks/useTokenSearch.js +12 -21
- package/hooks/useTokens.d.ts +1 -1
- package/hooks/useTokens.js +36 -38
- package/hooks/useTools.d.ts +2 -11
- package/hooks/useTools.js +12 -22
- package/i18n/en.json +8 -8
- package/i18n/uk.json +8 -8
- package/icons/LiFiFullLogo.js +1 -1
- package/icons/LiFiLogo.js +1 -1
- package/icons/LiFiToolLogo.js +1 -1
- package/index.d.ts +1 -0
- package/index.js +2 -0
- package/package.json +7 -7
- package/pages/ActiveSwapsPage/ActiveSwapsEmpty.js +2 -2
- package/pages/ActiveSwapsPage/ActiveSwapsPage.d.ts +0 -1
- package/pages/ActiveSwapsPage/ActiveSwapsPage.js +3 -3
- package/pages/MainPage/MainPage.js +1 -1
- package/pages/MainPage/MainPage.style.d.ts +1 -1
- package/pages/MainPage/MainSwapButton.js +3 -12
- package/pages/SelectChainPage/SelectChainPage.js +6 -14
- package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.d.ts +4 -0
- package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js +47 -0
- package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.d.ts +20 -0
- package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.js +5 -0
- package/pages/SelectEnabledToolsPage/index.d.ts +1 -0
- package/pages/SelectEnabledToolsPage/index.js +1 -0
- package/pages/SelectNativeTokenPage/SelectNativeTokenPage.js +4 -3
- package/pages/SelectTokenPage/SearchTokenInput.d.ts +0 -1
- package/pages/SelectTokenPage/SearchTokenInput.js +4 -1
- package/pages/SelectTokenPage/SelectTokenPage.js +2 -3
- package/pages/SelectWalletPage/SelectWalletPage.d.ts +0 -1
- package/pages/SelectWalletPage/SelectWalletPage.js +13 -19
- package/pages/SettingsPage/ColorSchemeButtonGroup.js +3 -3
- package/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +2 -2
- package/pages/SettingsPage/EnabledToolsButton.d.ts +4 -0
- package/pages/SettingsPage/EnabledToolsButton.js +21 -0
- package/{cjs/pages/SelectWalletPage/SelectWalletPage.style.d.ts → pages/SettingsPage/EnabledToolsButton.style.d.ts} +1 -1
- package/pages/SettingsPage/EnabledToolsButton.style.js +14 -0
- package/pages/SettingsPage/GasPriceSelect.d.ts +0 -1
- package/pages/SettingsPage/GasPriceSelect.js +1 -1
- package/pages/SettingsPage/LanguageSelect.js +5 -6
- package/pages/SettingsPage/ResetSettingsButton.d.ts +2 -0
- package/pages/SettingsPage/ResetSettingsButton.js +23 -0
- package/pages/SettingsPage/RoutePrioritySelect.js +4 -4
- package/pages/SettingsPage/SettingsPage.d.ts +0 -1
- package/pages/SettingsPage/SettingsPage.js +3 -2
- package/pages/SettingsPage/ShowDestinationWallet.d.ts +0 -1
- package/pages/SettingsPage/ShowDestinationWallet.js +3 -3
- package/pages/SettingsPage/SlippageInput.d.ts +0 -1
- package/pages/SettingsPage/SlippageInput.js +3 -3
- package/pages/SwapDetailsPage/SwapDetailsPage.js +14 -22
- package/pages/SwapDetailsPage/SwapDetailsPage.style.d.ts +1 -1
- package/pages/SwapHistoryPage/SwapHistoryEmpty.js +2 -2
- package/pages/SwapHistoryPage/SwapHistoryItem.js +9 -7
- package/pages/SwapHistoryPage/SwapHistoryPage.js +2 -2
- package/pages/SwapPage/ExchangeRateBottomSheet.js +21 -26
- package/pages/SwapPage/StartSwapButton.js +1 -1
- package/pages/SwapPage/StatusBottomSheet.js +21 -19
- package/pages/SwapPage/StatusBottomSheet.style.d.ts +2 -2
- package/pages/SwapPage/SwapPage.js +9 -21
- package/pages/SwapPage/SwapPage.style.d.ts +1 -1
- package/pages/SwapPage/TokenValueBottomSheet.js +8 -9
- package/pages/SwapRoutesPage/SwapRoutesPage.js +3 -3
- package/pages/SwapRoutesPage/SwapRoutesPage.style.d.ts +1 -1
- package/providers/I18nProvider/I18nProvider.js +7 -8
- package/providers/SDKProvider/SDKProvider.js +15 -4
- package/providers/SwapFormProvider/SwapFormProvider.js +12 -6
- package/providers/SwapFormProvider/URLSearchParamsBuilder.js +3 -12
- package/providers/TelemetryProvider/TelemetryProvider.js +1 -1
- package/providers/ThemeProvider/ThemeProvider.js +2 -2
- package/providers/WalletProvider/WalletProvider.js +30 -39
- package/providers/WidgetProvider/WidgetProvider.js +22 -29
- package/providers/WidgetProvider/utils.js +2 -3
- package/stores/StoreProvider.js +2 -8
- package/stores/chains/index.d.ts +1 -2
- package/stores/chains/index.js +1 -2
- package/stores/chains/useChainOrder.js +1 -1
- package/stores/chains/useChainOrderStore.d.ts +3 -0
- package/stores/chains/{createChainOrderStore.js → useChainOrderStore.js} +2 -2
- package/stores/routes/RouteExecutionStore.js +2 -14
- package/stores/routes/createRouteExecutionStore.js +27 -16
- package/stores/routes/types.d.ts +1 -1
- package/stores/routes/useExecutingRoutesIds.js +2 -5
- package/stores/routes/useRecommendedRouteStore.d.ts +10 -2
- package/stores/routes/useRecommendedRouteStore.js +25 -1
- package/stores/routes/useSwapHistory.js +3 -6
- package/stores/routes/utils.js +4 -4
- package/stores/settings/index.d.ts +1 -1
- package/stores/settings/index.js +1 -1
- package/stores/settings/types.d.ts +6 -6
- package/stores/settings/useAppearance.js +1 -1
- package/stores/settings/useSettings.js +1 -1
- package/stores/settings/useSettingsStore.d.ts +6 -0
- package/stores/settings/{createSettingsStore.js → useSettingsStore.js} +46 -26
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/utils/colors.js +1 -1
- package/utils/format.js +3 -3
- package/utils/navigationRoutes.d.ts +2 -0
- package/utils/navigationRoutes.js +6 -0
- package/cjs/pages/SettingsPage/AdvancedPreferences.d.ts +0 -2
- package/cjs/pages/SettingsPage/AdvancedPreferences.js +0 -24
- package/cjs/pages/SettingsPage/EnabledBridgesSelect.d.ts +0 -2
- package/cjs/pages/SettingsPage/EnabledBridgesSelect.js +0 -24
- package/cjs/pages/SettingsPage/EnabledExchangesSelect.d.ts +0 -2
- package/cjs/pages/SettingsPage/EnabledExchangesSelect.js +0 -24
- package/cjs/stores/chains/ChainOrderStore.d.ts +0 -9
- package/cjs/stores/chains/ChainOrderStore.js +0 -44
- package/cjs/stores/chains/createChainOrderStore.d.ts +0 -4
- package/cjs/stores/settings/SettingsStore.d.ts +0 -11
- package/cjs/stores/settings/SettingsStore.js +0 -58
- package/cjs/stores/settings/createSettingsStore.d.ts +0 -5
- package/pages/SelectChainPage/SelectChainPage.style.js +0 -17
- package/pages/SelectNativeTokenPage/SelectNativeTokenPage.style.d.ts +0 -21
- package/pages/SelectNativeTokenPage/SelectNativeTokenPage.style.js +0 -17
- package/pages/SelectWalletPage/SelectWalletPage.style.d.ts +0 -21
- package/pages/SelectWalletPage/SelectWalletPage.style.js +0 -17
- package/pages/SettingsPage/AdvancedPreferences.d.ts +0 -2
- package/pages/SettingsPage/AdvancedPreferences.js +0 -20
- package/pages/SettingsPage/EnabledBridgesSelect.d.ts +0 -2
- package/pages/SettingsPage/EnabledBridgesSelect.js +0 -20
- package/pages/SettingsPage/EnabledExchangesSelect.d.ts +0 -2
- package/pages/SettingsPage/EnabledExchangesSelect.js +0 -20
- package/stores/chains/ChainOrderStore.d.ts +0 -9
- package/stores/chains/ChainOrderStore.js +0 -38
- package/stores/chains/createChainOrderStore.d.ts +0 -4
- package/stores/settings/SettingsStore.d.ts +0 -11
- package/stores/settings/SettingsStore.js +0 -51
- package/stores/settings/createSettingsStore.d.ts +0 -5
|
@@ -11,10 +11,10 @@ const createRouteExecutionStore = ({ namePrefix }) => (0, zustand_1.create)((0,
|
|
|
11
11
|
setExecutableRoute: (route) => {
|
|
12
12
|
if (!get().routes[route.id]) {
|
|
13
13
|
set((state) => {
|
|
14
|
-
const routes =
|
|
14
|
+
const routes = { ...state.routes };
|
|
15
15
|
// clean previous idle routes that were not executed
|
|
16
16
|
Object.keys(routes)
|
|
17
|
-
.filter((routeId) =>
|
|
17
|
+
.filter((routeId) => routes[routeId]?.status === types_1.RouteExecutionStatus.Idle)
|
|
18
18
|
.forEach((routeId) => delete routes[routeId]);
|
|
19
19
|
routes[route.id] = {
|
|
20
20
|
route,
|
|
@@ -30,7 +30,10 @@ const createRouteExecutionStore = ({ namePrefix }) => (0, zustand_1.create)((0,
|
|
|
30
30
|
if (get().routes[route.id]) {
|
|
31
31
|
set((state) => {
|
|
32
32
|
const updatedState = {
|
|
33
|
-
routes:
|
|
33
|
+
routes: {
|
|
34
|
+
...state.routes,
|
|
35
|
+
[route.id]: { ...state.routes[route.id], route },
|
|
36
|
+
},
|
|
34
37
|
};
|
|
35
38
|
const isFailed = (0, utils_2.isRouteFailed)(route);
|
|
36
39
|
if (isFailed) {
|
|
@@ -64,14 +67,20 @@ const createRouteExecutionStore = ({ namePrefix }) => (0, zustand_1.create)((0,
|
|
|
64
67
|
restartRoute: (routeId) => {
|
|
65
68
|
if (get().routes[routeId]) {
|
|
66
69
|
set((state) => ({
|
|
67
|
-
routes:
|
|
70
|
+
routes: {
|
|
71
|
+
...state.routes,
|
|
72
|
+
[routeId]: {
|
|
73
|
+
...state.routes[routeId],
|
|
74
|
+
status: types_1.RouteExecutionStatus.Pending,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
68
77
|
}));
|
|
69
78
|
}
|
|
70
79
|
},
|
|
71
80
|
deleteRoute: (routeId) => {
|
|
72
81
|
if (get().routes[routeId]) {
|
|
73
82
|
set((state) => {
|
|
74
|
-
const routes =
|
|
83
|
+
const routes = { ...state.routes };
|
|
75
84
|
delete routes[routeId];
|
|
76
85
|
return {
|
|
77
86
|
routes,
|
|
@@ -80,14 +89,11 @@ const createRouteExecutionStore = ({ namePrefix }) => (0, zustand_1.create)((0,
|
|
|
80
89
|
}
|
|
81
90
|
},
|
|
82
91
|
deleteRoutes: (type) => set((state) => {
|
|
83
|
-
const routes =
|
|
92
|
+
const routes = { ...state.routes };
|
|
84
93
|
Object.keys(routes)
|
|
85
|
-
.filter((routeId) =>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
? (0, utils_1.hasEnumFlag)((_b = (_a = routes[routeId]) === null || _a === void 0 ? void 0 : _a.status) !== null && _b !== void 0 ? _b : 0, types_1.RouteExecutionStatus.Done)
|
|
89
|
-
: !(0, utils_1.hasEnumFlag)((_d = (_c = routes[routeId]) === null || _c === void 0 ? void 0 : _c.status) !== null && _d !== void 0 ? _d : 0, types_1.RouteExecutionStatus.Done);
|
|
90
|
-
})
|
|
94
|
+
.filter((routeId) => type === 'completed'
|
|
95
|
+
? (0, utils_1.hasEnumFlag)(routes[routeId]?.status ?? 0, types_1.RouteExecutionStatus.Done)
|
|
96
|
+
: !(0, utils_1.hasEnumFlag)(routes[routeId]?.status ?? 0, types_1.RouteExecutionStatus.Done))
|
|
91
97
|
.forEach((routeId) => delete routes[routeId]);
|
|
92
98
|
return {
|
|
93
99
|
routes,
|
|
@@ -98,16 +104,21 @@ const createRouteExecutionStore = ({ namePrefix }) => (0, zustand_1.create)((0,
|
|
|
98
104
|
version: 1,
|
|
99
105
|
partialize: (state) => ({ routes: state.routes }),
|
|
100
106
|
merge: (persistedState, currentState) => {
|
|
101
|
-
const state =
|
|
107
|
+
const state = {
|
|
108
|
+
...currentState,
|
|
109
|
+
...persistedState,
|
|
110
|
+
};
|
|
102
111
|
try {
|
|
103
112
|
// Move swaps to history after 1 day
|
|
104
113
|
const currentTime = new Date().getTime();
|
|
105
114
|
const oneDay = 1000 * 60 * 60 * 24;
|
|
106
115
|
Object.values(state.routes).forEach((routeExecution) => {
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
const startedAt = routeExecution?.route.steps
|
|
117
|
+
?.find((step) => step.execution?.status === 'FAILED')
|
|
118
|
+
?.execution?.process.find((process) => process.startedAt)
|
|
119
|
+
?.startedAt ?? 0;
|
|
109
120
|
const outdated = startedAt > 0 && currentTime - startedAt > oneDay;
|
|
110
|
-
if (
|
|
121
|
+
if (routeExecution?.route && outdated) {
|
|
111
122
|
routeExecution.status |= types_1.RouteExecutionStatus.Done;
|
|
112
123
|
}
|
|
113
124
|
});
|
|
@@ -9,11 +9,8 @@ const useExecutingRoutesIds = (address) => {
|
|
|
9
9
|
.filter((item) => item.route.fromAddress === address &&
|
|
10
10
|
(item.status === types_1.RouteExecutionStatus.Pending ||
|
|
11
11
|
item.status === types_1.RouteExecutionStatus.Failed))
|
|
12
|
-
.sort((a, b) =>
|
|
13
|
-
|
|
14
|
-
return ((_b = (_a = b === null || b === void 0 ? void 0 : b.route.steps[0].execution) === null || _a === void 0 ? void 0 : _a.process[0].startedAt) !== null && _b !== void 0 ? _b : 0) -
|
|
15
|
-
((_d = (_c = a === null || a === void 0 ? void 0 : a.route.steps[0].execution) === null || _c === void 0 ? void 0 : _c.process[0].startedAt) !== null && _d !== void 0 ? _d : 0);
|
|
16
|
-
})
|
|
12
|
+
.sort((a, b) => (b?.route.steps[0].execution?.process[0].startedAt ?? 0) -
|
|
13
|
+
(a?.route.steps[0].execution?.process[0].startedAt ?? 0))
|
|
17
14
|
.map(({ route }) => route.id), shallow_1.shallow);
|
|
18
15
|
};
|
|
19
16
|
exports.useExecutingRoutesIds = useExecutingRoutesIds;
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { StoreApi, UseBoundStore } from 'zustand';
|
|
3
|
+
import type { PersistStoreProviderProps } from '../types';
|
|
4
|
+
import type { RecommendedRouteState } from './types';
|
|
5
|
+
export declare const createRecommendedRouteStore: () => UseBoundStore<StoreApi<RecommendedRouteState>>;
|
|
6
|
+
export type RecommendedRouteStore = UseBoundStore<StoreApi<RecommendedRouteState>>;
|
|
7
|
+
export declare const RecommendedRouteStoreContext: import("react").Context<RecommendedRouteStore | null>;
|
|
8
|
+
export declare function RecommendedRouteStoreProvider({ children, ...props }: PersistStoreProviderProps): JSX.Element;
|
|
9
|
+
export declare function useRecommendedRouteStore<T>(selector: (state: RecommendedRouteState) => T, equalityFn?: (left: T, right: T) => boolean): T;
|
|
10
|
+
export declare function useRecommendedRouteStoreContext(): RecommendedRouteStore;
|
|
@@ -1,11 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useRecommendedRouteStore = void 0;
|
|
3
|
+
exports.useRecommendedRouteStoreContext = exports.useRecommendedRouteStore = exports.RecommendedRouteStoreProvider = exports.RecommendedRouteStoreContext = exports.createRecommendedRouteStore = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
4
6
|
const zustand_1 = require("zustand");
|
|
5
|
-
|
|
7
|
+
const createRecommendedRouteStore = () => (0, zustand_1.create)((set) => ({
|
|
6
8
|
setRecommendedRoute: (recommendedRoute) => {
|
|
7
9
|
set(() => ({
|
|
8
10
|
recommendedRoute,
|
|
9
11
|
}));
|
|
10
12
|
},
|
|
11
13
|
}));
|
|
14
|
+
exports.createRecommendedRouteStore = createRecommendedRouteStore;
|
|
15
|
+
exports.RecommendedRouteStoreContext = (0, react_1.createContext)(null);
|
|
16
|
+
function RecommendedRouteStoreProvider({ children, ...props }) {
|
|
17
|
+
const storeRef = (0, react_1.useRef)();
|
|
18
|
+
if (!storeRef.current) {
|
|
19
|
+
storeRef.current = (0, exports.createRecommendedRouteStore)();
|
|
20
|
+
}
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(exports.RecommendedRouteStoreContext.Provider, { value: storeRef.current, children: children }));
|
|
22
|
+
}
|
|
23
|
+
exports.RecommendedRouteStoreProvider = RecommendedRouteStoreProvider;
|
|
24
|
+
function useRecommendedRouteStore(selector, equalityFn) {
|
|
25
|
+
const useStore = (0, react_1.useContext)(exports.RecommendedRouteStoreContext);
|
|
26
|
+
if (!useStore) {
|
|
27
|
+
throw new Error(`You forgot to wrap your component in <${RecommendedRouteStoreProvider.name}>.`);
|
|
28
|
+
}
|
|
29
|
+
return useStore(selector, equalityFn);
|
|
30
|
+
}
|
|
31
|
+
exports.useRecommendedRouteStore = useRecommendedRouteStore;
|
|
32
|
+
function useRecommendedRouteStoreContext() {
|
|
33
|
+
const useStore = (0, react_1.useContext)(exports.RecommendedRouteStoreContext);
|
|
34
|
+
if (!useStore) {
|
|
35
|
+
throw new Error(`You forgot to wrap your component in <${RecommendedRouteStoreProvider.name}>.`);
|
|
36
|
+
}
|
|
37
|
+
return useStore;
|
|
38
|
+
}
|
|
39
|
+
exports.useRecommendedRouteStoreContext = useRecommendedRouteStoreContext;
|
|
@@ -7,12 +7,9 @@ const RouteExecutionStore_1 = require("./RouteExecutionStore");
|
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const useSwapHistory = (address) => {
|
|
9
9
|
return (0, RouteExecutionStore_1.useRouteExecutionStore)((state) => Object.values(state.routes)
|
|
10
|
-
.filter((item) =>
|
|
10
|
+
.filter((item) => item?.route.fromAddress === address &&
|
|
11
11
|
(0, utils_1.hasEnumFlag)(item.status, types_1.RouteExecutionStatus.Done))
|
|
12
|
-
.sort((a, b) =>
|
|
13
|
-
|
|
14
|
-
return ((_b = (_a = b === null || b === void 0 ? void 0 : b.route.steps[0].execution) === null || _a === void 0 ? void 0 : _a.process[0].startedAt) !== null && _b !== void 0 ? _b : 0) -
|
|
15
|
-
((_d = (_c = a === null || a === void 0 ? void 0 : a.route.steps[0].execution) === null || _c === void 0 ? void 0 : _c.process[0].startedAt) !== null && _d !== void 0 ? _d : 0);
|
|
16
|
-
}), shallow_1.shallow);
|
|
12
|
+
.sort((a, b) => (b?.route.steps[0].execution?.process[0].startedAt ?? 0) -
|
|
13
|
+
(a?.route.steps[0].execution?.process[0].startedAt ?? 0)), shallow_1.shallow);
|
|
17
14
|
};
|
|
18
15
|
exports.useSwapHistory = useSwapHistory;
|
|
@@ -3,19 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getUpdatedProcess = exports.isRouteActive = exports.isRouteFailed = exports.isRouteRefunded = exports.isRoutePartiallyDone = exports.isRouteDone = void 0;
|
|
4
4
|
const microdiff_1 = require("microdiff");
|
|
5
5
|
const isRouteDone = (route) => {
|
|
6
|
-
return route.steps.every((step) =>
|
|
6
|
+
return route.steps.every((step) => step.execution?.status === 'DONE');
|
|
7
7
|
};
|
|
8
8
|
exports.isRouteDone = isRouteDone;
|
|
9
9
|
const isRoutePartiallyDone = (route) => {
|
|
10
|
-
return route.steps.some((step) =>
|
|
10
|
+
return route.steps.some((step) => step.execution?.process.some((process) => process.substatus === 'PARTIAL'));
|
|
11
11
|
};
|
|
12
12
|
exports.isRoutePartiallyDone = isRoutePartiallyDone;
|
|
13
13
|
const isRouteRefunded = (route) => {
|
|
14
|
-
return route.steps.some((step) =>
|
|
14
|
+
return route.steps.some((step) => step.execution?.process.some((process) => process.substatus === 'REFUNDED'));
|
|
15
15
|
};
|
|
16
16
|
exports.isRouteRefunded = isRouteRefunded;
|
|
17
17
|
const isRouteFailed = (route) => {
|
|
18
|
-
return route.steps.some((step) =>
|
|
18
|
+
return route.steps.some((step) => step.execution?.status === 'FAILED');
|
|
19
19
|
};
|
|
20
20
|
exports.isRouteFailed = isRouteFailed;
|
|
21
21
|
const isRouteActive = (route) => {
|
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./SettingsStore"), exports);
|
|
18
17
|
__exportStar(require("./types"), exports);
|
|
19
18
|
__exportStar(require("./useAppearance"), exports);
|
|
20
19
|
__exportStar(require("./useSendToWalletStore"), exports);
|
|
21
20
|
__exportStar(require("./useSettings"), exports);
|
|
21
|
+
__exportStar(require("./useSettingsStore"), exports);
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Order } from '@lifi/sdk';
|
|
2
2
|
import type { Appearance } from '../../types';
|
|
3
3
|
export type ValueSetter<S> = <K extends keyof S>(key: K, value: S[Extract<K, string>]) => void;
|
|
4
4
|
export type ValuesSetter<S> = <K extends keyof S>(values: Record<K, S[Extract<K, string>]>) => void;
|
|
5
5
|
export type SettingsToolType = 'Bridges' | 'Exchanges';
|
|
6
6
|
export declare const SettingsToolTypes: SettingsToolType[];
|
|
7
7
|
export interface SettingsProps {
|
|
8
|
-
advancedPreferences: boolean;
|
|
9
8
|
appearance: Appearance;
|
|
10
9
|
gasPrice?: string;
|
|
11
10
|
language?: string;
|
|
12
11
|
routePriority?: Order;
|
|
13
12
|
showDestinationWallet: boolean;
|
|
14
13
|
slippage?: string;
|
|
15
|
-
enabledBridges
|
|
14
|
+
enabledBridges: string[];
|
|
16
15
|
_enabledBridges?: Record<string, boolean>;
|
|
17
|
-
enabledExchanges
|
|
16
|
+
enabledExchanges: string[];
|
|
18
17
|
_enabledExchanges?: Record<string, boolean>;
|
|
19
18
|
}
|
|
20
19
|
export interface SettingsState extends SettingsProps {
|
|
21
20
|
setValue: ValueSetter<SettingsProps>;
|
|
22
21
|
setValues: ValuesSetter<SettingsProps>;
|
|
23
|
-
initializeTools(toolType: SettingsToolType, tools: string[]): void;
|
|
24
|
-
setTools(toolType: SettingsToolType, tools: string[], availableTools:
|
|
22
|
+
initializeTools(toolType: SettingsToolType, tools: string[], reset?: boolean): void;
|
|
23
|
+
setTools(toolType: SettingsToolType, tools: string[], availableTools: string[]): void;
|
|
24
|
+
reset(bridges: string[], exchanges: string[]): void;
|
|
25
25
|
}
|
|
26
26
|
export interface SendToWalletState {
|
|
27
27
|
showSendToWallet: boolean;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useAppearance = void 0;
|
|
4
4
|
const shallow_1 = require("zustand/shallow");
|
|
5
|
-
const
|
|
5
|
+
const useSettingsStore_1 = require("./useSettingsStore");
|
|
6
6
|
const useAppearance = () => {
|
|
7
|
-
const [appearance, setValue] = (0,
|
|
7
|
+
const [appearance, setValue] = (0, useSettingsStore_1.useSettingsStore)((state) => [state.appearance, state.setValue], shallow_1.shallow);
|
|
8
8
|
const setAppearance = (appearance) => {
|
|
9
9
|
setValue('appearance', appearance);
|
|
10
10
|
};
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useSettings = void 0;
|
|
4
4
|
const shallow_1 = require("zustand/shallow");
|
|
5
|
-
const
|
|
5
|
+
const useSettingsStore_1 = require("./useSettingsStore");
|
|
6
6
|
const useSettings = (keys) => {
|
|
7
|
-
return (0,
|
|
7
|
+
return (0, useSettingsStore_1.useSettingsStore)((state) => keys.reduce((values, key) => {
|
|
8
8
|
values[key] = state[key];
|
|
9
9
|
return values;
|
|
10
10
|
}, {}), shallow_1.shallow);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { WidgetConfig } from '../../types';
|
|
2
|
+
import type { SettingsProps, SettingsState } from './types';
|
|
3
|
+
export declare const defaultConfigurableSettings: Pick<SettingsState, 'routePriority' | 'slippage'>;
|
|
4
|
+
export declare const defaultSettings: SettingsProps;
|
|
5
|
+
export declare const useSettingsStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SettingsState>>;
|
|
6
|
+
export declare const setDefaultSettings: (config?: WidgetConfig) => void;
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
3
|
+
exports.setDefaultSettings = exports.useSettingsStore = exports.defaultSettings = exports.defaultConfigurableSettings = void 0;
|
|
15
4
|
const zustand_1 = require("zustand");
|
|
16
5
|
const middleware_1 = require("zustand/middleware");
|
|
17
6
|
const types_1 = require("./types");
|
|
@@ -22,27 +11,32 @@ exports.defaultConfigurableSettings = {
|
|
|
22
11
|
exports.defaultSettings = {
|
|
23
12
|
appearance: 'auto',
|
|
24
13
|
gasPrice: 'normal',
|
|
25
|
-
advancedPreferences: false,
|
|
26
14
|
showDestinationWallet: true,
|
|
15
|
+
enabledBridges: [],
|
|
16
|
+
enabledExchanges: [],
|
|
27
17
|
};
|
|
28
|
-
|
|
18
|
+
exports.useSettingsStore = (0, zustand_1.create)((0, middleware_1.persist)((set, get) => ({
|
|
19
|
+
...exports.defaultSettings,
|
|
20
|
+
setValue: (key, value) => set(() => ({
|
|
29
21
|
[key]: value,
|
|
30
|
-
})),
|
|
31
|
-
|
|
22
|
+
})),
|
|
23
|
+
setValues: (values) => set((state) => {
|
|
24
|
+
const updatedState = { ...state };
|
|
32
25
|
for (const key in values) {
|
|
33
26
|
if (Object.hasOwn(state, key)) {
|
|
34
27
|
updatedState[key] = values[key];
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
30
|
return updatedState;
|
|
38
|
-
}),
|
|
31
|
+
}),
|
|
32
|
+
initializeTools: (toolType, tools, reset) => {
|
|
39
33
|
if (!tools.length) {
|
|
40
34
|
return;
|
|
41
35
|
}
|
|
42
36
|
set((state) => {
|
|
43
|
-
const updatedState =
|
|
44
|
-
if (updatedState[`_enabled${toolType}`]) {
|
|
45
|
-
// Add
|
|
37
|
+
const updatedState = { ...state };
|
|
38
|
+
if (updatedState[`_enabled${toolType}`] && !reset) {
|
|
39
|
+
// Add new tools
|
|
46
40
|
const enabledTools = tools
|
|
47
41
|
.filter((tool) => !Object.hasOwn(updatedState[`_enabled${toolType}`], tool))
|
|
48
42
|
.reduce((values, tool) => {
|
|
@@ -63,21 +57,31 @@ const createSettingsStore = ({ namePrefix }) => (0, zustand_1.create)((0, middle
|
|
|
63
57
|
.map(([key]) => key);
|
|
64
58
|
return updatedState;
|
|
65
59
|
});
|
|
66
|
-
},
|
|
60
|
+
},
|
|
61
|
+
setTools: (toolType, tools, availableTools) => set(() => ({
|
|
67
62
|
[`enabled${toolType}`]: tools,
|
|
68
|
-
[`_enabled${toolType}`]: availableTools.reduce((values,
|
|
69
|
-
values[
|
|
63
|
+
[`_enabled${toolType}`]: availableTools.reduce((values, toolKey) => {
|
|
64
|
+
values[toolKey] = tools.includes(toolKey);
|
|
70
65
|
return values;
|
|
71
66
|
}, {}),
|
|
72
|
-
}))
|
|
73
|
-
|
|
67
|
+
})),
|
|
68
|
+
reset: (bridges, exchanges) => {
|
|
69
|
+
set(() => ({
|
|
70
|
+
...exports.defaultSettings,
|
|
71
|
+
...exports.defaultConfigurableSettings,
|
|
72
|
+
}));
|
|
73
|
+
get().initializeTools('Bridges', bridges, true);
|
|
74
|
+
get().initializeTools('Exchanges', exchanges, true);
|
|
75
|
+
},
|
|
76
|
+
}), {
|
|
77
|
+
name: `li.fi-widget-settings`,
|
|
74
78
|
version: 2,
|
|
75
79
|
partialize: (state) => {
|
|
76
|
-
const { enabledBridges, enabledExchanges
|
|
80
|
+
const { enabledBridges, enabledExchanges, ...partializedState } = state;
|
|
77
81
|
return partializedState;
|
|
78
82
|
},
|
|
79
83
|
merge: (persistedState, currentState) => {
|
|
80
|
-
const state =
|
|
84
|
+
const state = { ...currentState, ...persistedState };
|
|
81
85
|
types_1.SettingsToolTypes.forEach((toolType) => {
|
|
82
86
|
state[`enabled${toolType}`] = Object.entries(persistedState[`_enabled${toolType}`])
|
|
83
87
|
.filter(([_, value]) => value)
|
|
@@ -95,4 +99,20 @@ const createSettingsStore = ({ namePrefix }) => (0, zustand_1.create)((0, middle
|
|
|
95
99
|
return persistedState;
|
|
96
100
|
},
|
|
97
101
|
}));
|
|
98
|
-
|
|
102
|
+
const setDefaultSettings = (config) => {
|
|
103
|
+
const { slippage, routePriority, setValue } = exports.useSettingsStore.getState();
|
|
104
|
+
const defaultSlippage = (config?.slippage ||
|
|
105
|
+
config?.sdkConfig?.defaultRouteOptions?.slippage ||
|
|
106
|
+
0) * 100;
|
|
107
|
+
const defaultRoutePriority = config?.routePriority || config?.sdkConfig?.defaultRouteOptions?.order;
|
|
108
|
+
exports.defaultConfigurableSettings.slippage = (defaultSlippage || exports.defaultConfigurableSettings.slippage)?.toString();
|
|
109
|
+
exports.defaultConfigurableSettings.routePriority =
|
|
110
|
+
defaultRoutePriority || exports.defaultConfigurableSettings.routePriority;
|
|
111
|
+
if (!slippage) {
|
|
112
|
+
setValue('slippage', exports.defaultConfigurableSettings.slippage);
|
|
113
|
+
}
|
|
114
|
+
if (!routePriority) {
|
|
115
|
+
setValue('routePriority', exports.defaultConfigurableSettings.routePriority);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
exports.setDefaultSettings = setDefaultSettings;
|
package/cjs/utils/colors.js
CHANGED
|
@@ -7,7 +7,7 @@ const getContrastAlphaColor = (theme, alpha) => theme.palette.mode === 'light'
|
|
|
7
7
|
? `rgb(0 0 0 / ${alpha})`
|
|
8
8
|
: `rgb(255 255 255 / ${alpha})`;
|
|
9
9
|
exports.getContrastAlphaColor = getContrastAlphaColor;
|
|
10
|
-
const getContrastTextColor = (theme, background) => (0, styles_1.getContrastRatio)(colors_1.common.white, background
|
|
10
|
+
const getContrastTextColor = (theme, background) => (0, styles_1.getContrastRatio)(colors_1.common.white, background ?? theme.palette.primary.main) >= 3
|
|
11
11
|
? colors_1.common.white
|
|
12
12
|
: colors_1.common.black;
|
|
13
13
|
exports.getContrastTextColor = getContrastTextColor;
|
package/cjs/utils/format.js
CHANGED
|
@@ -14,14 +14,14 @@ big_js_1.default.NE = -42;
|
|
|
14
14
|
const formatTokenAmount = (amount = '0', decimals = 0, decimalPlaces = 3) => {
|
|
15
15
|
let shiftedAmount = amount;
|
|
16
16
|
if (decimals) {
|
|
17
|
-
shiftedAmount = (Number(amount) /
|
|
17
|
+
shiftedAmount = (Number(amount) / 10 ** decimals).toString();
|
|
18
18
|
}
|
|
19
19
|
const parsedAmount = parseFloat(shiftedAmount);
|
|
20
20
|
if (parsedAmount === 0 || isNaN(Number(shiftedAmount))) {
|
|
21
21
|
return '0';
|
|
22
22
|
}
|
|
23
23
|
const absAmount = Math.abs(parsedAmount);
|
|
24
|
-
while (absAmount < 1 /
|
|
24
|
+
while (absAmount < 1 / 10 ** decimalPlaces) {
|
|
25
25
|
decimalPlaces++;
|
|
26
26
|
}
|
|
27
27
|
return (0, big_js_1.default)(parseFloat((0, big_js_1.default)(parsedAmount).toFixed(decimalPlaces + 1, 0))).toString();
|
|
@@ -70,7 +70,7 @@ const formatAmount = (amount = '', returnInitial = false) => {
|
|
|
70
70
|
return formattedAmount;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
catch
|
|
73
|
+
catch {
|
|
74
74
|
return '';
|
|
75
75
|
}
|
|
76
76
|
return (0, big_js_1.default)(parsedAmount).toString();
|
|
@@ -4,6 +4,8 @@ exports.backButtonRoutes = exports.stickyHeaderRoutes = exports.navigationRoutes
|
|
|
4
4
|
exports.navigationRoutes = {
|
|
5
5
|
home: '/',
|
|
6
6
|
activeSwaps: 'active-swaps',
|
|
7
|
+
bridges: 'bridges',
|
|
8
|
+
exchanges: 'exchanges',
|
|
7
9
|
fromChain: 'from-chain',
|
|
8
10
|
fromToken: 'from-token',
|
|
9
11
|
selectWallet: 'wallet',
|
|
@@ -19,6 +21,8 @@ exports.navigationRoutes = {
|
|
|
19
21
|
exports.navigationRoutesValues = Object.values(exports.navigationRoutes);
|
|
20
22
|
exports.stickyHeaderRoutes = [
|
|
21
23
|
exports.navigationRoutes.activeSwaps,
|
|
24
|
+
exports.navigationRoutes.bridges,
|
|
25
|
+
exports.navigationRoutes.exchanges,
|
|
22
26
|
exports.navigationRoutes.fromChain,
|
|
23
27
|
exports.navigationRoutes.home,
|
|
24
28
|
exports.navigationRoutes.selectWallet,
|
|
@@ -32,6 +36,8 @@ exports.stickyHeaderRoutes = [
|
|
|
32
36
|
];
|
|
33
37
|
exports.backButtonRoutes = [
|
|
34
38
|
exports.navigationRoutes.activeSwaps,
|
|
39
|
+
exports.navigationRoutes.bridges,
|
|
40
|
+
exports.navigationRoutes.exchanges,
|
|
35
41
|
exports.navigationRoutes.fromChain,
|
|
36
42
|
exports.navigationRoutes.fromToken,
|
|
37
43
|
exports.navigationRoutes.selectWallet,
|
|
@@ -9,15 +9,17 @@ import { StepTimer } from '../Step/StepTimer';
|
|
|
9
9
|
import { TokenAvatar, TokenAvatarGroup } from '../TokenAvatar';
|
|
10
10
|
import { ListItem, ListItemButton } from './ActiveSwaps.style';
|
|
11
11
|
export const ActiveSwapItem = ({ routeId, dense }) => {
|
|
12
|
-
var _a;
|
|
13
12
|
const navigate = useNavigate();
|
|
14
13
|
const { route, status } = useRouteExecution({
|
|
15
14
|
routeId,
|
|
16
15
|
executeInBackground: true,
|
|
17
16
|
});
|
|
18
17
|
// TODO: replace with ES2023 findLast
|
|
19
|
-
const lastActiveStep = route
|
|
20
|
-
|
|
18
|
+
const lastActiveStep = route?.steps
|
|
19
|
+
.slice()
|
|
20
|
+
.reverse()
|
|
21
|
+
.find((step) => step.execution);
|
|
22
|
+
const lastActiveProcess = lastActiveStep?.execution?.process.at(-1);
|
|
21
23
|
const { title } = useProcessMessage(lastActiveStep, lastActiveProcess);
|
|
22
24
|
if (!route || !lastActiveStep) {
|
|
23
25
|
return null;
|
|
@@ -26,20 +28,20 @@ export const ActiveSwapItem = ({ routeId, dense }) => {
|
|
|
26
28
|
navigate(navigationRoutes.swapExecution, { state: { routeId } });
|
|
27
29
|
};
|
|
28
30
|
const getStatusComponent = () => {
|
|
29
|
-
switch (lastActiveProcess
|
|
31
|
+
switch (lastActiveProcess?.status) {
|
|
30
32
|
case 'ACTION_REQUIRED':
|
|
31
33
|
return _jsx(InfoIcon, { color: "info", fontSize: "small" });
|
|
32
34
|
case 'FAILED':
|
|
33
35
|
return _jsx(ErrorIcon, { color: "error", fontSize: "small" });
|
|
34
36
|
default:
|
|
35
|
-
return (_jsx(Typography,
|
|
37
|
+
return (_jsx(Typography, { fontSize: 14, fontWeight: 500, children: _jsx(StepTimer, { step: lastActiveStep, hideInProgress: true }) }));
|
|
36
38
|
}
|
|
37
39
|
};
|
|
38
40
|
const ListItemComponent = dense ? ListItem : ListItemButton;
|
|
39
|
-
return (_jsxs(ListItemComponent,
|
|
41
|
+
return (_jsxs(ListItemComponent, { onClick: handleClick, dense: true, disableRipple: true, children: [_jsx(ListItemAvatar, { children: _jsxs(TokenAvatarGroup, { total: 2, children: [_jsx(TokenAvatar, { token: route.fromToken }), _jsx(TokenAvatar, { token: route.toToken })] }) }), _jsx(ListItemText, { sx: { margin: 0 }, disableTypography: true, primary: _jsxs(Typography, { fontWeight: 500, lineHeight: 1, sx: {
|
|
40
42
|
display: 'flex',
|
|
41
43
|
alignItems: 'center',
|
|
42
44
|
marginLeft: 2,
|
|
43
45
|
height: 16,
|
|
44
|
-
}
|
|
46
|
+
}, children: [route.fromToken.symbol, _jsx(ArrowForwardIcon, { sx: { paddingX: 0.5 } }), route.toToken.symbol] }), secondary: status !== RouteExecutionStatus.Done ? (_jsx(Typography, { fontWeight: 400, fontSize: 12, color: "text.secondary", lineHeight: 1, mt: 0.75, ml: 2, children: title })) : null }), getStatusComponent()] }));
|
|
45
47
|
};
|
|
@@ -13,12 +13,12 @@ export const ActiveSwaps = (props) => {
|
|
|
13
13
|
const navigate = useNavigate();
|
|
14
14
|
const { account } = useWallet();
|
|
15
15
|
const executingRoutes = useExecutingRoutesIds(account.address);
|
|
16
|
-
if (!
|
|
16
|
+
if (!executingRoutes?.length) {
|
|
17
17
|
return null;
|
|
18
18
|
}
|
|
19
19
|
const handleShowAll = () => {
|
|
20
20
|
navigate(navigationRoutes.activeSwaps);
|
|
21
21
|
};
|
|
22
|
-
const hasShowAll =
|
|
23
|
-
return (_jsxs(Card,
|
|
22
|
+
const hasShowAll = executingRoutes?.length > 2;
|
|
23
|
+
return (_jsxs(Card, { variant: "selected", selectionColor: "secondary", ...props, children: [_jsx(CardTitle, { children: t('header.activeSwaps') }), _jsx(Stack, { spacing: 1.5, pt: 1.5, pb: hasShowAll ? 0 : 2, children: executingRoutes.slice(0, 2).map((routeId) => (_jsx(ActiveSwapItem, { routeId: routeId, dense: true }, routeId))) }), hasShowAll ? (_jsx(ShowAllButton, { disableRipple: true, fullWidth: true, onClick: handleShowAll, children: t('button.showAll') })) : null] }));
|
|
24
24
|
};
|
|
@@ -15,7 +15,7 @@ export declare const ListItemButton: import("@emotion/styled").StyledComponent<i
|
|
|
15
15
|
tabIndex?: number | undefined;
|
|
16
16
|
TouchRippleProps?: Partial<import("@mui/material/ButtonBase/TouchRipple").TouchRippleProps> | undefined;
|
|
17
17
|
touchRippleRef?: import("react").Ref<import("@mui/material/ButtonBase/TouchRipple").TouchRippleActions> | undefined;
|
|
18
|
-
}, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<
|
|
18
|
+
}, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
19
19
|
ref?: import("react").RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
|
|
20
20
|
}, "className" | "style" | "classes" | "tabIndex" | "children" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "TouchRippleProps" | "touchRippleRef" | "alignItems" | "autoFocus" | "dense" | "divider" | "selected" | "disableGutters"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
21
21
|
export declare const ListItem: import("@emotion/styled").StyledComponent<{
|
|
@@ -33,13 +33,13 @@ export declare const ListItem: import("@emotion/styled").StyledComponent<{
|
|
|
33
33
|
slots?: {
|
|
34
34
|
root?: import("react").ElementType<any> | undefined;
|
|
35
35
|
} | undefined;
|
|
36
|
-
} & import("@mui/material/OverridableComponent").CommonProps & Omit<
|
|
36
|
+
} & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & {
|
|
37
37
|
ref?: ((instance: HTMLLIElement | null) => void) | import("react").RefObject<HTMLLIElement> | null | undefined;
|
|
38
|
-
}, "button" | "className" | "style" | "classes" | "children" | "disabled" | "sx" | "alignItems" | "autoFocus" | "dense" | "divider" | "components" | "
|
|
38
|
+
}, "button" | "className" | "style" | "classes" | "children" | "disabled" | "sx" | "alignItems" | "autoFocus" | "dense" | "divider" | "components" | "slotProps" | "slots" | "componentsProps" | "selected" | "disableGutters" | "ContainerComponent" | "ContainerProps" | "disablePadding" | "secondaryAction"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
39
39
|
export declare const ShowAllButton: import("@emotion/styled").StyledComponent<{
|
|
40
40
|
children?: import("react").ReactNode;
|
|
41
41
|
classes?: Partial<import("@mui/material").ButtonClasses> | undefined;
|
|
42
|
-
color?: "inherit" | "success" | "warning" | "error" | "
|
|
42
|
+
color?: "inherit" | "success" | "warning" | "error" | "primary" | "secondary" | "info" | undefined;
|
|
43
43
|
disabled?: boolean | undefined;
|
|
44
44
|
disableElevation?: boolean | undefined;
|
|
45
45
|
disableFocusRipple?: boolean | undefined;
|
|
@@ -66,6 +66,6 @@ export declare const ShowAllButton: import("@emotion/styled").StyledComponent<{
|
|
|
66
66
|
tabIndex?: number | undefined;
|
|
67
67
|
TouchRippleProps?: Partial<import("@mui/material/ButtonBase/TouchRipple").TouchRippleProps> | undefined;
|
|
68
68
|
touchRippleRef?: import("react").Ref<import("@mui/material/ButtonBase/TouchRipple").TouchRippleActions> | undefined;
|
|
69
|
-
}, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<
|
|
69
|
+
}, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
70
70
|
ref?: ((instance: HTMLButtonElement | null) => void) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
|
71
71
|
}, keyof import("@mui/material/OverridableComponent").CommonProps | "tabIndex" | "color" | "children" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "sx" | "TouchRippleProps" | "touchRippleRef" | "href" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "size" | "startIcon" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|