@lifi/widget 1.31.1 → 1.32.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.
- package/App.js +4 -16
- package/AppDrawer.js +13 -7
- package/AppDrawer.style.d.ts +2 -2
- 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 +2 -2
- 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 +3 -3
- 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 +3 -3
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- package/cjs/components/SwapInput/SwapInputAdornment.style.d.ts +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 +10 -19
- package/cjs/i18n/en.json +8 -4
- 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 +1 -1
- 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 +18 -23
- package/cjs/providers/WidgetProvider/utils.js +2 -3
- package/cjs/stores/StoreProvider.js +2 -2
- package/cjs/stores/chains/ChainOrderStore.js +2 -14
- package/cjs/stores/routes/RouteExecutionStore.js +2 -14
- package/cjs/stores/routes/createRouteExecutionStore.js +27 -16
- package/cjs/stores/routes/useExecutingRoutesIds.js +2 -5
- package/cjs/stores/routes/useSwapHistory.js +3 -6
- package/cjs/stores/routes/utils.js +4 -4
- package/cjs/stores/settings/SettingsStore.js +10 -20
- package/cjs/stores/settings/createSettingsStore.js +29 -25
- package/cjs/stores/settings/types.d.ts +6 -6
- 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 +3 -3
- 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 +3 -3
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- package/components/SwapInput/SwapInputAdornment.style.d.ts +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 +10 -19
- package/i18n/en.json +8 -4
- 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 +1 -1
- 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 +18 -23
- package/providers/WidgetProvider/utils.js +2 -3
- package/stores/StoreProvider.js +2 -2
- package/stores/chains/ChainOrderStore.js +2 -14
- package/stores/routes/RouteExecutionStore.js +2 -14
- package/stores/routes/createRouteExecutionStore.js +27 -16
- package/stores/routes/useExecutingRoutesIds.js +2 -5
- package/stores/routes/useSwapHistory.js +3 -6
- package/stores/routes/utils.js +4 -4
- package/stores/settings/SettingsStore.js +10 -20
- package/stores/settings/createSettingsStore.js +29 -25
- package/stores/settings/types.d.ts +6 -6
- 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/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
|
@@ -9,7 +9,7 @@ export const ThemeProvider = ({ children, }) => {
|
|
|
9
9
|
const { appearance: colorSchemeMode, theme: themeConfig } = useWidgetConfig();
|
|
10
10
|
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
|
|
11
11
|
const [appearance, setAppearance] = useAppearance();
|
|
12
|
-
const [mode, setMode] = useState(
|
|
12
|
+
const [mode, setMode] = useState(colorSchemeMode ?? appearance === 'auto'
|
|
13
13
|
? prefersDarkMode
|
|
14
14
|
? 'dark'
|
|
15
15
|
: 'light'
|
|
@@ -29,5 +29,5 @@ export const ThemeProvider = ({ children, }) => {
|
|
|
29
29
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
30
|
}, [colorSchemeMode]);
|
|
31
31
|
const theme = useMemo(() => createTheme(mode, themeConfig), [mode, themeConfig]);
|
|
32
|
-
return _jsx(MuiThemeProvider,
|
|
32
|
+
return _jsx(MuiThemeProvider, { theme: theme, children: children });
|
|
33
33
|
};
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
2
|
import { addChain as walletAddChain, switchChain as walletSwitchChain, switchChainAndAddToken, useLiFiWalletManagement, } from '@lifi/wallet-management';
|
|
12
3
|
import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
|
|
@@ -28,57 +19,57 @@ export const WalletProvider = ({ children }) => {
|
|
|
28
19
|
const { walletManagement } = useWidgetConfig();
|
|
29
20
|
const { connect: walletManagementConnect, disconnect: walletManagementDisconnect, signer, provider, } = useLiFiWalletManagement();
|
|
30
21
|
const [account, setAccount] = useState({});
|
|
31
|
-
const connect = useCallback((wallet) =>
|
|
22
|
+
const connect = useCallback(async (wallet) => {
|
|
32
23
|
if (walletManagement) {
|
|
33
|
-
const signer =
|
|
34
|
-
const account =
|
|
24
|
+
const signer = await walletManagement.connect();
|
|
25
|
+
const account = await extractAccountFromSigner(signer);
|
|
35
26
|
setAccount(account);
|
|
36
27
|
return;
|
|
37
28
|
}
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
const disconnect = useCallback(() =>
|
|
29
|
+
await walletManagementConnect(wallet);
|
|
30
|
+
}, [walletManagement, walletManagementConnect]);
|
|
31
|
+
const disconnect = useCallback(async () => {
|
|
41
32
|
if (walletManagement) {
|
|
42
|
-
|
|
33
|
+
await walletManagement.disconnect();
|
|
43
34
|
setAccount({});
|
|
44
35
|
return;
|
|
45
36
|
}
|
|
46
|
-
|
|
47
|
-
}
|
|
37
|
+
await walletManagementDisconnect();
|
|
38
|
+
}, [walletManagement, walletManagementDisconnect]);
|
|
48
39
|
// only for injected wallets
|
|
49
|
-
const switchChain = useCallback((chainId) =>
|
|
50
|
-
if (walletManagement
|
|
51
|
-
const signer =
|
|
52
|
-
const account =
|
|
40
|
+
const switchChain = useCallback(async (chainId) => {
|
|
41
|
+
if (walletManagement?.switchChain) {
|
|
42
|
+
const signer = await walletManagement.switchChain(chainId);
|
|
43
|
+
const account = await extractAccountFromSigner(signer);
|
|
53
44
|
setAccount(account);
|
|
54
45
|
return true;
|
|
55
46
|
}
|
|
56
47
|
return walletSwitchChain(chainId);
|
|
57
|
-
}
|
|
58
|
-
const addChain = useCallback((chainId) =>
|
|
59
|
-
if (walletManagement
|
|
48
|
+
}, [walletManagement]);
|
|
49
|
+
const addChain = useCallback(async (chainId) => {
|
|
50
|
+
if (walletManagement?.addChain) {
|
|
60
51
|
return walletManagement.addChain(chainId);
|
|
61
52
|
}
|
|
62
53
|
return walletAddChain(chainId);
|
|
63
|
-
}
|
|
64
|
-
const addToken = useCallback((chainId, token) =>
|
|
65
|
-
if (walletManagement
|
|
54
|
+
}, [walletManagement]);
|
|
55
|
+
const addToken = useCallback(async (chainId, token) => {
|
|
56
|
+
if (walletManagement?.addToken) {
|
|
66
57
|
return walletManagement.addToken(token, chainId);
|
|
67
58
|
}
|
|
68
59
|
return switchChainAndAddToken(chainId, token);
|
|
69
|
-
}
|
|
60
|
+
}, [walletManagement]);
|
|
70
61
|
// keep account information up to date
|
|
71
62
|
useEffect(() => {
|
|
72
|
-
const updateAccount = () =>
|
|
63
|
+
const updateAccount = async () => {
|
|
73
64
|
let account;
|
|
74
65
|
if (walletManagement) {
|
|
75
|
-
account =
|
|
66
|
+
account = await extractAccountFromSigner(walletManagement?.signer);
|
|
76
67
|
}
|
|
77
68
|
else {
|
|
78
|
-
account =
|
|
69
|
+
account = await extractAccountFromSigner(signer);
|
|
79
70
|
}
|
|
80
71
|
setAccount(account);
|
|
81
|
-
}
|
|
72
|
+
};
|
|
82
73
|
updateAccount();
|
|
83
74
|
}, [signer, walletManagement]);
|
|
84
75
|
const value = useMemo(() => ({
|
|
@@ -90,19 +81,19 @@ export const WalletProvider = ({ children }) => {
|
|
|
90
81
|
account,
|
|
91
82
|
provider,
|
|
92
83
|
}), [account, addChain, addToken, connect, disconnect, provider, switchChain]);
|
|
93
|
-
return (_jsx(WalletContext.Provider,
|
|
84
|
+
return (_jsx(WalletContext.Provider, { value: value, children: children }));
|
|
94
85
|
};
|
|
95
|
-
export const extractAccountFromSigner = (signer) =>
|
|
86
|
+
export const extractAccountFromSigner = async (signer) => {
|
|
96
87
|
try {
|
|
97
88
|
return {
|
|
98
|
-
address:
|
|
99
|
-
isActive: (signer && !!(
|
|
89
|
+
address: await signer?.getAddress(),
|
|
90
|
+
isActive: (signer && !!(await signer.getAddress()) === null) || !!signer,
|
|
100
91
|
signer,
|
|
101
|
-
chainId:
|
|
92
|
+
chainId: await signer?.getChainId(),
|
|
102
93
|
};
|
|
103
94
|
}
|
|
104
95
|
catch (error) {
|
|
105
96
|
console.log(error);
|
|
106
97
|
return {};
|
|
107
98
|
}
|
|
108
|
-
}
|
|
99
|
+
};
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
2
|
import { getChainByKey } from '@lifi/sdk';
|
|
14
3
|
import { createContext, useContext, useEffect, useId, useMemo } from 'react';
|
|
@@ -20,47 +9,53 @@ const initialContext = {
|
|
|
20
9
|
};
|
|
21
10
|
const WidgetContext = createContext(initialContext);
|
|
22
11
|
export const useWidgetConfig = () => useContext(WidgetContext);
|
|
23
|
-
export const WidgetProvider = (
|
|
24
|
-
var { children } = _a, _b = _a.config, _c = _b === void 0 ? {} : _b, { fromChain, fromToken, toChain, toToken, fromAmount } = _c, config = __rest(_c, ["fromChain", "fromToken", "toChain", "toToken", "fromAmount"]);
|
|
12
|
+
export const WidgetProvider = ({ children, config: { fromChain, fromToken, toChain, toToken, fromAmount, ...config } = {}, }) => {
|
|
25
13
|
const settingsStoreContext = useSettingsStoreContext();
|
|
26
14
|
const elementId = useId();
|
|
27
15
|
const value = useMemo(() => {
|
|
28
|
-
var _a, _b, _c, _d, _e, _f;
|
|
29
16
|
try {
|
|
30
|
-
const searchParams = Object.fromEntries(new URLSearchParams(window
|
|
17
|
+
const searchParams = Object.fromEntries(new URLSearchParams(window?.location.search));
|
|
31
18
|
// Prevent using fromToken/toToken params if chain is not selected
|
|
32
19
|
['from', 'to'].forEach((key) => {
|
|
33
20
|
if (searchParams[`${key}Token`] && !searchParams[`${key}Chain`]) {
|
|
34
21
|
delete searchParams[`${key}Token`];
|
|
35
22
|
}
|
|
36
23
|
});
|
|
37
|
-
return
|
|
24
|
+
return {
|
|
25
|
+
...config,
|
|
26
|
+
fromChain: (searchParams.fromChain &&
|
|
38
27
|
isNaN(parseInt(searchParams.fromChain, 10))) ||
|
|
39
28
|
typeof fromChain === 'string'
|
|
40
|
-
?
|
|
29
|
+
? getChainByKey((searchParams.fromChain || fromChain)?.toLowerCase())?.id
|
|
41
30
|
: (searchParams.fromChain &&
|
|
42
31
|
!isNaN(parseInt(searchParams.fromChain, 10))) ||
|
|
43
32
|
typeof fromChain === 'number'
|
|
44
33
|
? parseInt(searchParams.fromChain, 10) || fromChain
|
|
45
|
-
: undefined,
|
|
34
|
+
: undefined,
|
|
35
|
+
toChain: (searchParams.toChain && isNaN(parseInt(searchParams.toChain, 10))) ||
|
|
46
36
|
typeof toChain === 'string'
|
|
47
|
-
?
|
|
37
|
+
? getChainByKey((searchParams.toChain || toChain)?.toLowerCase())?.id
|
|
48
38
|
: (searchParams.toChain &&
|
|
49
39
|
!isNaN(parseInt(searchParams.toChain, 10))) ||
|
|
50
40
|
typeof toChain === 'number'
|
|
51
41
|
? parseInt(searchParams.toChain, 10) || toChain
|
|
52
|
-
: undefined,
|
|
42
|
+
: undefined,
|
|
43
|
+
fromToken: searchParams.fromToken?.toLowerCase() || fromToken?.toLowerCase(),
|
|
44
|
+
toToken: searchParams.toToken?.toLowerCase() || toToken?.toLowerCase(),
|
|
45
|
+
fromAmount: typeof searchParams.fromAmount === 'string' &&
|
|
53
46
|
!isNaN(parseFloat(searchParams.fromAmount))
|
|
54
47
|
? formatAmount(searchParams.fromAmount)
|
|
55
|
-
: fromAmount,
|
|
48
|
+
: fromAmount,
|
|
49
|
+
elementId,
|
|
50
|
+
};
|
|
56
51
|
}
|
|
57
52
|
catch (e) {
|
|
58
53
|
console.warn(e);
|
|
59
|
-
return
|
|
54
|
+
return { ...config, elementId };
|
|
60
55
|
}
|
|
61
56
|
}, [config, elementId, fromAmount, fromChain, fromToken, toChain, toToken]);
|
|
62
57
|
useEffect(() => {
|
|
63
58
|
setDefaultSettings(settingsStoreContext, value);
|
|
64
59
|
}, [settingsStoreContext, value]);
|
|
65
|
-
return (_jsx(WidgetContext.Provider,
|
|
60
|
+
return (_jsx(WidgetContext.Provider, { value: value, children: children }));
|
|
66
61
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export const isItemAllowed = (itemId, items,
|
|
2
2
|
/** @deprecated Remove in the next major release */
|
|
3
3
|
disabledChains) => {
|
|
4
|
-
|
|
5
|
-
if ((_a = items === null || items === void 0 ? void 0 : items.allow) === null || _a === void 0 ? void 0 : _a.length) {
|
|
4
|
+
if (items?.allow?.length) {
|
|
6
5
|
return items.allow.includes(itemId);
|
|
7
6
|
}
|
|
8
|
-
return !(
|
|
7
|
+
return !(disabledChains?.includes(itemId) || items?.deny?.includes(itemId));
|
|
9
8
|
};
|
package/stores/StoreProvider.js
CHANGED
|
@@ -3,9 +3,9 @@ import { ChainOrderStoreProvider } from './chains';
|
|
|
3
3
|
import { RouteExecutionStoreProvider } from './routes';
|
|
4
4
|
import { SettingsStoreProvider } from './settings';
|
|
5
5
|
export const StoreProvider = ({ children, namePrefix }) => {
|
|
6
|
-
return (_jsx(RouteExecutionStoreProvider,
|
|
6
|
+
return (_jsx(RouteExecutionStoreProvider, { namePrefix: namePrefix, children: _jsx(SettingsStoreProvider
|
|
7
7
|
// namePrefix={namePrefix}
|
|
8
8
|
, { children: _jsx(ChainOrderStoreProvider
|
|
9
9
|
// namePrefix={namePrefix}
|
|
10
|
-
, { children: children }) }) }))
|
|
10
|
+
, { children: children }) }) }));
|
|
11
11
|
};
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
2
|
/* eslint-disable no-underscore-dangle */
|
|
14
3
|
import { createContext, useContext, useRef } from 'react';
|
|
15
4
|
import { createChainOrderStore } from './createChainOrderStore';
|
|
16
5
|
export const ChainOrderStoreContext = createContext(null);
|
|
17
|
-
export function ChainOrderStoreProvider(
|
|
18
|
-
var { children } = _a, props = __rest(_a, ["children"]);
|
|
6
|
+
export function ChainOrderStoreProvider({ children, ...props }) {
|
|
19
7
|
const storeRef = useRef();
|
|
20
8
|
if (!storeRef.current) {
|
|
21
9
|
storeRef.current = createChainOrderStore(props);
|
|
22
10
|
}
|
|
23
|
-
return (_jsx(ChainOrderStoreContext.Provider,
|
|
11
|
+
return (_jsx(ChainOrderStoreContext.Provider, { value: storeRef.current, children: children }));
|
|
24
12
|
}
|
|
25
13
|
export function useChainOrderStore(selector, equalityFn) {
|
|
26
14
|
const useStore = useContext(ChainOrderStoreContext);
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
2
|
/* eslint-disable no-underscore-dangle */
|
|
14
3
|
import { createContext, useContext, useRef } from 'react';
|
|
15
4
|
import { createRouteExecutionStore } from './createRouteExecutionStore';
|
|
16
5
|
export const RouteExecutionStoreContext = createContext(null);
|
|
17
|
-
export function RouteExecutionStoreProvider(
|
|
18
|
-
var { children } = _a, props = __rest(_a, ["children"]);
|
|
6
|
+
export function RouteExecutionStoreProvider({ children, ...props }) {
|
|
19
7
|
const storeRef = useRef();
|
|
20
8
|
if (!storeRef.current) {
|
|
21
9
|
storeRef.current = createRouteExecutionStore(props);
|
|
22
10
|
}
|
|
23
|
-
return (_jsx(RouteExecutionStoreContext.Provider,
|
|
11
|
+
return (_jsx(RouteExecutionStoreContext.Provider, { value: storeRef.current, children: children }));
|
|
24
12
|
}
|
|
25
13
|
export function useRouteExecutionStore(selector, equalityFn) {
|
|
26
14
|
const useStore = useContext(RouteExecutionStoreContext);
|
|
@@ -8,10 +8,10 @@ export const createRouteExecutionStore = ({ namePrefix }) => create(persist((set
|
|
|
8
8
|
setExecutableRoute: (route) => {
|
|
9
9
|
if (!get().routes[route.id]) {
|
|
10
10
|
set((state) => {
|
|
11
|
-
const routes =
|
|
11
|
+
const routes = { ...state.routes };
|
|
12
12
|
// clean previous idle routes that were not executed
|
|
13
13
|
Object.keys(routes)
|
|
14
|
-
.filter((routeId) =>
|
|
14
|
+
.filter((routeId) => routes[routeId]?.status === RouteExecutionStatus.Idle)
|
|
15
15
|
.forEach((routeId) => delete routes[routeId]);
|
|
16
16
|
routes[route.id] = {
|
|
17
17
|
route,
|
|
@@ -27,7 +27,10 @@ export const createRouteExecutionStore = ({ namePrefix }) => create(persist((set
|
|
|
27
27
|
if (get().routes[route.id]) {
|
|
28
28
|
set((state) => {
|
|
29
29
|
const updatedState = {
|
|
30
|
-
routes:
|
|
30
|
+
routes: {
|
|
31
|
+
...state.routes,
|
|
32
|
+
[route.id]: { ...state.routes[route.id], route },
|
|
33
|
+
},
|
|
31
34
|
};
|
|
32
35
|
const isFailed = isRouteFailed(route);
|
|
33
36
|
if (isFailed) {
|
|
@@ -61,14 +64,20 @@ export const createRouteExecutionStore = ({ namePrefix }) => create(persist((set
|
|
|
61
64
|
restartRoute: (routeId) => {
|
|
62
65
|
if (get().routes[routeId]) {
|
|
63
66
|
set((state) => ({
|
|
64
|
-
routes:
|
|
67
|
+
routes: {
|
|
68
|
+
...state.routes,
|
|
69
|
+
[routeId]: {
|
|
70
|
+
...state.routes[routeId],
|
|
71
|
+
status: RouteExecutionStatus.Pending,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
65
74
|
}));
|
|
66
75
|
}
|
|
67
76
|
},
|
|
68
77
|
deleteRoute: (routeId) => {
|
|
69
78
|
if (get().routes[routeId]) {
|
|
70
79
|
set((state) => {
|
|
71
|
-
const routes =
|
|
80
|
+
const routes = { ...state.routes };
|
|
72
81
|
delete routes[routeId];
|
|
73
82
|
return {
|
|
74
83
|
routes,
|
|
@@ -77,14 +86,11 @@ export const createRouteExecutionStore = ({ namePrefix }) => create(persist((set
|
|
|
77
86
|
}
|
|
78
87
|
},
|
|
79
88
|
deleteRoutes: (type) => set((state) => {
|
|
80
|
-
const routes =
|
|
89
|
+
const routes = { ...state.routes };
|
|
81
90
|
Object.keys(routes)
|
|
82
|
-
.filter((routeId) =>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
? hasEnumFlag((_b = (_a = routes[routeId]) === null || _a === void 0 ? void 0 : _a.status) !== null && _b !== void 0 ? _b : 0, RouteExecutionStatus.Done)
|
|
86
|
-
: !hasEnumFlag((_d = (_c = routes[routeId]) === null || _c === void 0 ? void 0 : _c.status) !== null && _d !== void 0 ? _d : 0, RouteExecutionStatus.Done);
|
|
87
|
-
})
|
|
91
|
+
.filter((routeId) => type === 'completed'
|
|
92
|
+
? hasEnumFlag(routes[routeId]?.status ?? 0, RouteExecutionStatus.Done)
|
|
93
|
+
: !hasEnumFlag(routes[routeId]?.status ?? 0, RouteExecutionStatus.Done))
|
|
88
94
|
.forEach((routeId) => delete routes[routeId]);
|
|
89
95
|
return {
|
|
90
96
|
routes,
|
|
@@ -95,16 +101,21 @@ export const createRouteExecutionStore = ({ namePrefix }) => create(persist((set
|
|
|
95
101
|
version: 1,
|
|
96
102
|
partialize: (state) => ({ routes: state.routes }),
|
|
97
103
|
merge: (persistedState, currentState) => {
|
|
98
|
-
const state =
|
|
104
|
+
const state = {
|
|
105
|
+
...currentState,
|
|
106
|
+
...persistedState,
|
|
107
|
+
};
|
|
99
108
|
try {
|
|
100
109
|
// Move swaps to history after 1 day
|
|
101
110
|
const currentTime = new Date().getTime();
|
|
102
111
|
const oneDay = 1000 * 60 * 60 * 24;
|
|
103
112
|
Object.values(state.routes).forEach((routeExecution) => {
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
const startedAt = routeExecution?.route.steps
|
|
114
|
+
?.find((step) => step.execution?.status === 'FAILED')
|
|
115
|
+
?.execution?.process.find((process) => process.startedAt)
|
|
116
|
+
?.startedAt ?? 0;
|
|
106
117
|
const outdated = startedAt > 0 && currentTime - startedAt > oneDay;
|
|
107
|
-
if (
|
|
118
|
+
if (routeExecution?.route && outdated) {
|
|
108
119
|
routeExecution.status |= RouteExecutionStatus.Done;
|
|
109
120
|
}
|
|
110
121
|
});
|
|
@@ -6,10 +6,7 @@ export const useExecutingRoutesIds = (address) => {
|
|
|
6
6
|
.filter((item) => item.route.fromAddress === address &&
|
|
7
7
|
(item.status === RouteExecutionStatus.Pending ||
|
|
8
8
|
item.status === RouteExecutionStatus.Failed))
|
|
9
|
-
.sort((a, b) =>
|
|
10
|
-
|
|
11
|
-
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) -
|
|
12
|
-
((_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);
|
|
13
|
-
})
|
|
9
|
+
.sort((a, b) => (b?.route.steps[0].execution?.process[0].startedAt ?? 0) -
|
|
10
|
+
(a?.route.steps[0].execution?.process[0].startedAt ?? 0))
|
|
14
11
|
.map(({ route }) => route.id), shallow);
|
|
15
12
|
};
|
|
@@ -4,11 +4,8 @@ import { useRouteExecutionStore } from './RouteExecutionStore';
|
|
|
4
4
|
import { RouteExecutionStatus } from './types';
|
|
5
5
|
export const useSwapHistory = (address) => {
|
|
6
6
|
return useRouteExecutionStore((state) => Object.values(state.routes)
|
|
7
|
-
.filter((item) =>
|
|
7
|
+
.filter((item) => item?.route.fromAddress === address &&
|
|
8
8
|
hasEnumFlag(item.status, RouteExecutionStatus.Done))
|
|
9
|
-
.sort((a, b) =>
|
|
10
|
-
|
|
11
|
-
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) -
|
|
12
|
-
((_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);
|
|
13
|
-
}), shallow);
|
|
9
|
+
.sort((a, b) => (b?.route.steps[0].execution?.process[0].startedAt ?? 0) -
|
|
10
|
+
(a?.route.steps[0].execution?.process[0].startedAt ?? 0)), shallow);
|
|
14
11
|
};
|
package/stores/routes/utils.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import microdiff from 'microdiff';
|
|
2
2
|
export const isRouteDone = (route) => {
|
|
3
|
-
return route.steps.every((step) =>
|
|
3
|
+
return route.steps.every((step) => step.execution?.status === 'DONE');
|
|
4
4
|
};
|
|
5
5
|
export const isRoutePartiallyDone = (route) => {
|
|
6
|
-
return route.steps.some((step) =>
|
|
6
|
+
return route.steps.some((step) => step.execution?.process.some((process) => process.substatus === 'PARTIAL'));
|
|
7
7
|
};
|
|
8
8
|
export const isRouteRefunded = (route) => {
|
|
9
|
-
return route.steps.some((step) =>
|
|
9
|
+
return route.steps.some((step) => step.execution?.process.some((process) => process.substatus === 'REFUNDED'));
|
|
10
10
|
};
|
|
11
11
|
export const isRouteFailed = (route) => {
|
|
12
|
-
return route.steps.some((step) =>
|
|
12
|
+
return route.steps.some((step) => step.execution?.status === 'FAILED');
|
|
13
13
|
};
|
|
14
14
|
export const isRouteActive = (route) => {
|
|
15
15
|
if (!route) {
|
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
2
|
import { createContext, useContext, useRef } from 'react';
|
|
14
3
|
import { createSettingsStore, defaultConfigurableSettings, } from './createSettingsStore';
|
|
15
4
|
export const SettingsStoreContext = createContext(null);
|
|
16
|
-
export function SettingsStoreProvider(
|
|
17
|
-
var { children } = _a, props = __rest(_a, ["children"]);
|
|
5
|
+
export function SettingsStoreProvider({ children, ...props }) {
|
|
18
6
|
const storeRef = useRef();
|
|
19
7
|
if (!storeRef.current) {
|
|
20
8
|
storeRef.current = createSettingsStore(props);
|
|
21
9
|
}
|
|
22
|
-
return (_jsx(SettingsStoreContext.Provider,
|
|
10
|
+
return (_jsx(SettingsStoreContext.Provider, { value: storeRef.current, children: children }));
|
|
23
11
|
}
|
|
24
12
|
export function useSettingsStore(selector, equalityFn) {
|
|
25
13
|
const useStore = useContext(SettingsStoreContext);
|
|
@@ -36,16 +24,18 @@ export function useSettingsStoreContext() {
|
|
|
36
24
|
return useStore;
|
|
37
25
|
}
|
|
38
26
|
export const setDefaultSettings = (useSettingsStore, config) => {
|
|
39
|
-
var _a, _b, _c, _d, _e;
|
|
40
27
|
const { slippage, routePriority, setValue } = useSettingsStore.getState();
|
|
41
|
-
const defaultSlippage = (
|
|
42
|
-
|
|
28
|
+
const defaultSlippage = (config?.slippage ||
|
|
29
|
+
config?.sdkConfig?.defaultRouteOptions?.slippage ||
|
|
43
30
|
0) * 100;
|
|
44
|
-
const defaultRoutePriority =
|
|
31
|
+
const defaultRoutePriority = config?.routePriority || config?.sdkConfig?.defaultRouteOptions?.order;
|
|
32
|
+
defaultConfigurableSettings.slippage = (defaultSlippage || defaultConfigurableSettings.slippage)?.toString();
|
|
33
|
+
defaultConfigurableSettings.routePriority =
|
|
34
|
+
defaultRoutePriority || defaultConfigurableSettings.routePriority;
|
|
45
35
|
if (!slippage) {
|
|
46
|
-
setValue('slippage',
|
|
36
|
+
setValue('slippage', defaultConfigurableSettings.slippage);
|
|
47
37
|
}
|
|
48
38
|
if (!routePriority) {
|
|
49
|
-
setValue('routePriority',
|
|
39
|
+
setValue('routePriority', defaultConfigurableSettings.routePriority);
|
|
50
40
|
}
|
|
51
41
|
};
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
1
|
import { create } from 'zustand';
|
|
13
2
|
import { persist } from 'zustand/middleware';
|
|
14
3
|
import { SettingsToolTypes } from './types';
|
|
@@ -19,27 +8,32 @@ export const defaultConfigurableSettings = {
|
|
|
19
8
|
export const defaultSettings = {
|
|
20
9
|
appearance: 'auto',
|
|
21
10
|
gasPrice: 'normal',
|
|
22
|
-
advancedPreferences: false,
|
|
23
11
|
showDestinationWallet: true,
|
|
12
|
+
enabledBridges: [],
|
|
13
|
+
enabledExchanges: [],
|
|
24
14
|
};
|
|
25
|
-
export const createSettingsStore = ({ namePrefix }) => create(persist((set
|
|
15
|
+
export const createSettingsStore = ({ namePrefix }) => create(persist((set, get) => ({
|
|
16
|
+
...defaultSettings,
|
|
17
|
+
setValue: (key, value) => set(() => ({
|
|
26
18
|
[key]: value,
|
|
27
|
-
})),
|
|
28
|
-
|
|
19
|
+
})),
|
|
20
|
+
setValues: (values) => set((state) => {
|
|
21
|
+
const updatedState = { ...state };
|
|
29
22
|
for (const key in values) {
|
|
30
23
|
if (Object.hasOwn(state, key)) {
|
|
31
24
|
updatedState[key] = values[key];
|
|
32
25
|
}
|
|
33
26
|
}
|
|
34
27
|
return updatedState;
|
|
35
|
-
}),
|
|
28
|
+
}),
|
|
29
|
+
initializeTools: (toolType, tools, reset) => {
|
|
36
30
|
if (!tools.length) {
|
|
37
31
|
return;
|
|
38
32
|
}
|
|
39
33
|
set((state) => {
|
|
40
|
-
const updatedState =
|
|
41
|
-
if (updatedState[`_enabled${toolType}`]) {
|
|
42
|
-
// Add
|
|
34
|
+
const updatedState = { ...state };
|
|
35
|
+
if (updatedState[`_enabled${toolType}`] && !reset) {
|
|
36
|
+
// Add new tools
|
|
43
37
|
const enabledTools = tools
|
|
44
38
|
.filter((tool) => !Object.hasOwn(updatedState[`_enabled${toolType}`], tool))
|
|
45
39
|
.reduce((values, tool) => {
|
|
@@ -60,21 +54,31 @@ export const createSettingsStore = ({ namePrefix }) => create(persist((set) => (
|
|
|
60
54
|
.map(([key]) => key);
|
|
61
55
|
return updatedState;
|
|
62
56
|
});
|
|
63
|
-
},
|
|
57
|
+
},
|
|
58
|
+
setTools: (toolType, tools, availableTools) => set(() => ({
|
|
64
59
|
[`enabled${toolType}`]: tools,
|
|
65
|
-
[`_enabled${toolType}`]: availableTools.reduce((values,
|
|
66
|
-
values[
|
|
60
|
+
[`_enabled${toolType}`]: availableTools.reduce((values, toolKey) => {
|
|
61
|
+
values[toolKey] = tools.includes(toolKey);
|
|
67
62
|
return values;
|
|
68
63
|
}, {}),
|
|
69
|
-
}))
|
|
64
|
+
})),
|
|
65
|
+
reset: (bridges, exchanges) => {
|
|
66
|
+
set(() => ({
|
|
67
|
+
...defaultSettings,
|
|
68
|
+
...defaultConfigurableSettings,
|
|
69
|
+
}));
|
|
70
|
+
get().initializeTools('Bridges', bridges, true);
|
|
71
|
+
get().initializeTools('Exchanges', exchanges, true);
|
|
72
|
+
},
|
|
73
|
+
}), {
|
|
70
74
|
name: `${namePrefix || 'li.fi'}-widget-settings`,
|
|
71
75
|
version: 2,
|
|
72
76
|
partialize: (state) => {
|
|
73
|
-
const { enabledBridges, enabledExchanges
|
|
77
|
+
const { enabledBridges, enabledExchanges, ...partializedState } = state;
|
|
74
78
|
return partializedState;
|
|
75
79
|
},
|
|
76
80
|
merge: (persistedState, currentState) => {
|
|
77
|
-
const state =
|
|
81
|
+
const state = { ...currentState, ...persistedState };
|
|
78
82
|
SettingsToolTypes.forEach((toolType) => {
|
|
79
83
|
state[`enabled${toolType}`] = Object.entries(persistedState[`_enabled${toolType}`])
|
|
80
84
|
.filter(([_, value]) => value)
|
|
@@ -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;
|