@lifi/widget 3.0.0-alpha.12 → 3.0.0-alpha.13
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.tsx +30 -14
- package/AppDrawer.tsx +82 -91
- package/AppDrawerContext.ts +9 -0
- package/_cjs/App.js +16 -3
- package/_cjs/App.js.map +1 -1
- package/_cjs/AppDrawer.d.ts +4 -2
- package/_cjs/AppDrawer.js +20 -18
- package/_cjs/AppDrawer.js.map +1 -1
- package/_cjs/AppDrawerContext.d.ts +6 -0
- package/_cjs/AppDrawerContext.js +8 -0
- package/_cjs/AppDrawerContext.js.map +1 -0
- package/_cjs/components/ActiveTransactions/ActiveTransactions.js +1 -3
- package/_cjs/components/ActiveTransactions/ActiveTransactions.js.map +1 -1
- package/_cjs/components/BaseTransactionButton/BaseTransactionButton.js +6 -6
- package/_cjs/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/_cjs/components/ChainSelect/ChainSelect.js +7 -5
- package/_cjs/components/ChainSelect/ChainSelect.js.map +1 -1
- package/_cjs/components/ChainSelect/useChainSelect.d.ts +1 -1
- package/_cjs/components/ChainSelect/useChainSelect.js +3 -3
- package/_cjs/components/ChainSelect/useChainSelect.js.map +1 -1
- package/_cjs/components/Header/CloseDrawerButton.d.ts +1 -0
- package/_cjs/components/Header/CloseDrawerButton.js +16 -0
- package/_cjs/components/Header/CloseDrawerButton.js.map +1 -0
- package/_cjs/components/Header/EVMDisconnectIconButton.d.ts +4 -0
- package/_cjs/components/Header/EVMDisconnectIconButton.js +16 -0
- package/_cjs/components/Header/EVMDisconnectIconButton.js.map +1 -0
- package/_cjs/components/Header/Header.js +1 -6
- package/_cjs/components/Header/Header.js.map +1 -1
- package/_cjs/components/Header/Header.style.js +10 -4
- package/_cjs/components/Header/Header.style.js.map +1 -1
- package/_cjs/components/Header/NavigationHeader.d.ts +0 -1
- package/_cjs/components/Header/NavigationHeader.js +7 -11
- package/_cjs/components/Header/NavigationHeader.js.map +1 -1
- package/_cjs/components/Header/SVMDisconnectIconButton.d.ts +1 -0
- package/_cjs/components/Header/SVMDisconnectIconButton.js +16 -0
- package/_cjs/components/Header/SVMDisconnectIconButton.js.map +1 -0
- package/_cjs/components/Header/SettingsButton.style.js +18 -21
- package/_cjs/components/Header/SettingsButton.style.js.map +1 -1
- package/_cjs/components/Header/TransactionHistoryButton.d.ts +1 -0
- package/_cjs/components/Header/TransactionHistoryButton.js +17 -0
- package/_cjs/components/Header/TransactionHistoryButton.js.map +1 -0
- package/_cjs/components/Header/WalletHeader.d.ts +1 -0
- package/_cjs/components/Header/WalletHeader.js +21 -7
- package/_cjs/components/Header/WalletHeader.js.map +1 -1
- package/_cjs/components/Header/WalletMenu.js +5 -21
- package/_cjs/components/Header/WalletMenu.js.map +1 -1
- package/_cjs/components/SelectTokenButton/SelectTokenButton.js +7 -1
- package/_cjs/components/SelectTokenButton/SelectTokenButton.js.map +1 -1
- package/_cjs/components/SelectTokenButton/SelectTokenButton.style.js +4 -4
- package/_cjs/components/StepActions/StepFeeBreakdown.js +2 -2
- package/_cjs/components/StepActions/StepFeeBreakdown.js.map +1 -1
- package/_cjs/components/TokenList/TokenList.js +3 -4
- package/_cjs/components/TokenList/TokenList.js.map +1 -1
- package/_cjs/components/TokenList/VirtualizedTokenList.js +4 -2
- package/_cjs/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/_cjs/components/TokenList/types.d.ts +1 -2
- package/_cjs/components/TokenList/useTokenSelect.js +6 -4
- package/_cjs/components/TokenList/useTokenSelect.js.map +1 -1
- package/_cjs/config/queryClient.js +0 -1
- package/_cjs/config/queryClient.js.map +1 -1
- package/_cjs/config/version.d.ts +1 -1
- package/_cjs/config/version.js +1 -1
- package/_cjs/config/walletConnect.d.ts +1 -0
- package/_cjs/config/walletConnect.js +5 -0
- package/_cjs/config/walletConnect.js.map +1 -0
- package/_cjs/hooks/useAccount.d.ts +4 -1
- package/_cjs/hooks/useAccount.js +5 -16
- package/_cjs/hooks/useAccount.js.map +1 -1
- package/_cjs/hooks/useAvailableChains.js +12 -6
- package/_cjs/hooks/useAvailableChains.js.map +1 -1
- package/_cjs/hooks/useChains.d.ts +2 -1
- package/_cjs/hooks/useChains.js +7 -3
- package/_cjs/hooks/useChains.js.map +1 -1
- package/_cjs/hooks/useDebouncedWatch.d.ts +1 -2
- package/_cjs/hooks/useDebouncedWatch.js +1 -1
- package/_cjs/hooks/useDebouncedWatch.js.map +1 -1
- package/_cjs/hooks/useFromTokenSufficiency.js +8 -7
- package/_cjs/hooks/useFromTokenSufficiency.js.map +1 -1
- package/_cjs/hooks/useGasRecommendation.d.ts +1 -1
- package/_cjs/hooks/useGasRecommendation.js.map +1 -1
- package/_cjs/hooks/useGasRefuel.js +2 -2
- package/_cjs/hooks/useGasRefuel.js.map +1 -1
- package/_cjs/hooks/useGasSufficiency.js +7 -6
- package/_cjs/hooks/useGasSufficiency.js.map +1 -1
- package/_cjs/hooks/useRouteExecution.js +5 -5
- package/_cjs/hooks/useRouteExecution.js.map +1 -1
- package/_cjs/hooks/useRoutes.d.ts +1 -1
- package/_cjs/hooks/useRoutes.js +22 -15
- package/_cjs/hooks/useRoutes.js.map +1 -1
- package/_cjs/hooks/useTokenAddressBalance.d.ts +2 -1
- package/_cjs/hooks/useTokenAddressBalance.js +2 -1
- package/_cjs/hooks/useTokenAddressBalance.js.map +1 -1
- package/_cjs/hooks/useTokenBalance.d.ts +1 -1
- package/_cjs/hooks/useTokenBalance.js +8 -19
- package/_cjs/hooks/useTokenBalance.js.map +1 -1
- package/_cjs/hooks/useTokenBalances.d.ts +2 -1
- package/_cjs/hooks/useTokenBalances.js +1 -0
- package/_cjs/hooks/useTokenBalances.js.map +1 -1
- package/_cjs/hooks/useTools.js +3 -2
- package/_cjs/hooks/useTools.js.map +1 -1
- package/_cjs/hooks/useTransactionHistory.d.ts +2 -2
- package/_cjs/hooks/useTransactionHistory.js +32 -23
- package/_cjs/hooks/useTransactionHistory.js.map +1 -1
- package/_cjs/i18n/en.json +4 -3
- package/_cjs/pages/ActiveTransactionsPage/ActiveTransactionsPage.js +1 -3
- package/_cjs/pages/ActiveTransactionsPage/ActiveTransactionsPage.js.map +1 -1
- package/_cjs/pages/RoutesPage/RoutesPage.js +1 -1
- package/_cjs/pages/RoutesPage/RoutesPage.js.map +1 -1
- package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.js +1 -1
- package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.style.js +6 -5
- package/_cjs/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -1
- package/_cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.js +6 -7
- package/_cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
- package/_cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +1 -1
- package/_cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js.map +1 -1
- package/_cjs/pages/TransactionPage/StatusBottomSheet.js +13 -9
- package/_cjs/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/_cjs/providers/I18nProvider/I18nProvider.js +2 -1
- package/_cjs/providers/I18nProvider/I18nProvider.js.map +1 -1
- package/_cjs/providers/WalletProvider/EVMBaseProvider.d.ts +2 -0
- package/_cjs/providers/WalletProvider/EVMBaseProvider.js +91 -0
- package/_cjs/providers/WalletProvider/EVMBaseProvider.js.map +1 -0
- package/_cjs/providers/WalletProvider/EVMExternalContext.d.ts +2 -0
- package/_cjs/providers/WalletProvider/EVMExternalContext.js +6 -0
- package/_cjs/providers/WalletProvider/EVMExternalContext.js.map +1 -0
- package/_cjs/providers/WalletProvider/EVMProvider.d.ts +1 -1
- package/_cjs/providers/WalletProvider/EVMProvider.js +13 -70
- package/_cjs/providers/WalletProvider/EVMProvider.js.map +1 -1
- package/_cjs/providers/WalletProvider/SDKProviders.js +13 -5
- package/_cjs/providers/WalletProvider/SDKProviders.js.map +1 -1
- package/_cjs/providers/WalletProvider/SVMBaseProvider.d.ts +2 -0
- package/_cjs/providers/WalletProvider/{SolanaProvider.js → SVMBaseProvider.js} +4 -14
- package/_cjs/providers/WalletProvider/SVMBaseProvider.js.map +1 -0
- package/_cjs/providers/WalletProvider/SVMExternalContext.d.ts +2 -0
- package/_cjs/providers/WalletProvider/SVMExternalContext.js +6 -0
- package/_cjs/providers/WalletProvider/SVMExternalContext.js.map +1 -0
- package/_cjs/providers/WalletProvider/SVMProvider.d.ts +3 -0
- package/_cjs/providers/WalletProvider/SVMProvider.js +23 -0
- package/_cjs/providers/WalletProvider/SVMProvider.js.map +1 -0
- package/_cjs/providers/WalletProvider/WalletProvider.js +2 -2
- package/_cjs/providers/WalletProvider/WalletProvider.js.map +1 -1
- package/_cjs/providers/WalletProvider/index.d.ts +1 -0
- package/_cjs/providers/WalletProvider/index.js +1 -0
- package/_cjs/providers/WalletProvider/index.js.map +1 -1
- package/_cjs/providers/WalletProvider/useHasExternalWalletProvider.d.ts +7 -0
- package/_cjs/providers/WalletProvider/useHasExternalWalletProvider.js +27 -0
- package/_cjs/providers/WalletProvider/useHasExternalWalletProvider.js.map +1 -0
- package/_cjs/providers/WidgetProvider/WidgetProvider.js.map +1 -1
- package/_cjs/providers/WidgetProvider/index.d.ts +1 -2
- package/_cjs/providers/WidgetProvider/index.js +1 -2
- package/_cjs/providers/WidgetProvider/index.js.map +1 -1
- package/_cjs/stores/StoreProvider.js +3 -3
- package/_cjs/stores/StoreProvider.js.map +1 -1
- package/_cjs/stores/chains/ChainOrderStore.js +19 -16
- package/_cjs/stores/chains/ChainOrderStore.js.map +1 -1
- package/_cjs/stores/chains/createChainOrderStore.js +34 -15
- package/_cjs/stores/chains/createChainOrderStore.js.map +1 -1
- package/_cjs/stores/chains/types.d.ts +11 -4
- package/_cjs/stores/chains/useChainOrder.d.ts +2 -1
- package/_cjs/stores/chains/useChainOrder.js +2 -2
- package/_cjs/stores/chains/useChainOrder.js.map +1 -1
- package/_cjs/stores/form/FormStore.d.ts +1 -1
- package/_cjs/stores/form/FormStore.js +4 -4
- package/_cjs/stores/form/FormStore.js.map +1 -1
- package/_cjs/stores/form/FormUpdater.d.ts +3 -3
- package/_cjs/stores/form/FormUpdater.js +4 -4
- package/_cjs/stores/form/FormUpdater.js.map +1 -1
- package/_cjs/stores/form/URLSearchParamsBuilder.js +3 -2
- package/_cjs/stores/form/URLSearchParamsBuilder.js.map +1 -1
- package/_cjs/stores/form/createFormStore.js.map +1 -1
- package/_cjs/stores/form/types.d.ts +20 -20
- package/_cjs/stores/form/types.js.map +1 -1
- package/_cjs/stores/form/useFieldActions.js +9 -10
- package/_cjs/stores/form/useFieldActions.js.map +1 -1
- package/_cjs/stores/form/useFieldController.d.ts +1 -1
- package/_cjs/stores/form/useFieldValues.d.ts +2 -2
- package/_cjs/stores/form/useFieldValues.js +3 -2
- package/_cjs/stores/form/useFieldValues.js.map +1 -1
- package/_cjs/stores/form/useTouchedFields.d.ts +14 -1
- package/_cjs/stores/form/useValidationActions.js +7 -11
- package/_cjs/stores/form/useValidationActions.js.map +1 -1
- package/_cjs/stores/routes/useExecutingRoutesIds.d.ts +1 -1
- package/_cjs/stores/routes/useExecutingRoutesIds.js +5 -2
- package/_cjs/stores/routes/useExecutingRoutesIds.js.map +1 -1
- package/_cjs/stores/settings/useSettingsStore.d.ts +1 -0
- package/_cjs/stores/settings/useSettingsStore.js +3 -2
- package/_cjs/stores/settings/useSettingsStore.js.map +1 -1
- package/_cjs/types/widget.d.ts +26 -23
- package/_cjs/types/widget.js +1 -0
- package/_cjs/types/widget.js.map +1 -1
- package/_cjs/utils/index.d.ts +1 -0
- package/_cjs/utils/index.js +1 -0
- package/_cjs/utils/index.js.map +1 -1
- package/_cjs/utils/item.d.ts +2 -0
- package/_cjs/{providers/WidgetProvider/utils.js → utils/item.js} +1 -1
- package/_cjs/utils/item.js.map +1 -0
- package/_esm/App.js +16 -3
- package/_esm/App.js.map +1 -1
- package/_esm/AppDrawer.d.ts +4 -2
- package/_esm/AppDrawer.js +21 -19
- package/_esm/AppDrawer.js.map +1 -1
- package/_esm/AppDrawerContext.d.ts +6 -0
- package/_esm/AppDrawerContext.js +4 -0
- package/_esm/AppDrawerContext.js.map +1 -0
- package/_esm/components/ActiveTransactions/ActiveTransactions.js +1 -3
- package/_esm/components/ActiveTransactions/ActiveTransactions.js.map +1 -1
- package/_esm/components/BaseTransactionButton/BaseTransactionButton.js +6 -6
- package/_esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -1
- package/_esm/components/ChainSelect/ChainSelect.js +8 -6
- package/_esm/components/ChainSelect/ChainSelect.js.map +1 -1
- package/_esm/components/ChainSelect/useChainSelect.d.ts +1 -1
- package/_esm/components/ChainSelect/useChainSelect.js +4 -4
- package/_esm/components/ChainSelect/useChainSelect.js.map +1 -1
- package/_esm/components/Header/CloseDrawerButton.d.ts +1 -0
- package/_esm/components/Header/CloseDrawerButton.js +12 -0
- package/_esm/components/Header/CloseDrawerButton.js.map +1 -0
- package/_esm/components/Header/EVMDisconnectIconButton.d.ts +4 -0
- package/_esm/components/Header/EVMDisconnectIconButton.js +12 -0
- package/_esm/components/Header/EVMDisconnectIconButton.js.map +1 -0
- package/_esm/components/Header/Header.js +1 -6
- package/_esm/components/Header/Header.js.map +1 -1
- package/_esm/components/Header/Header.style.js +10 -4
- package/_esm/components/Header/Header.style.js.map +1 -1
- package/_esm/components/Header/NavigationHeader.d.ts +0 -1
- package/_esm/components/Header/NavigationHeader.js +8 -11
- package/_esm/components/Header/NavigationHeader.js.map +1 -1
- package/_esm/components/Header/SVMDisconnectIconButton.d.ts +1 -0
- package/_esm/components/Header/SVMDisconnectIconButton.js +12 -0
- package/_esm/components/Header/SVMDisconnectIconButton.js.map +1 -0
- package/_esm/components/Header/SettingsButton.style.js +18 -21
- package/_esm/components/Header/SettingsButton.style.js.map +1 -1
- package/_esm/components/Header/TransactionHistoryButton.d.ts +1 -0
- package/_esm/components/Header/TransactionHistoryButton.js +13 -0
- package/_esm/components/Header/TransactionHistoryButton.js.map +1 -0
- package/_esm/components/Header/WalletHeader.d.ts +1 -0
- package/_esm/components/Header/WalletHeader.js +20 -7
- package/_esm/components/Header/WalletHeader.js.map +1 -1
- package/_esm/components/Header/WalletMenu.js +4 -20
- package/_esm/components/Header/WalletMenu.js.map +1 -1
- package/_esm/components/SelectTokenButton/SelectTokenButton.js +7 -1
- package/_esm/components/SelectTokenButton/SelectTokenButton.js.map +1 -1
- package/_esm/components/SelectTokenButton/SelectTokenButton.style.js +4 -4
- package/_esm/components/StepActions/StepFeeBreakdown.js +2 -2
- package/_esm/components/StepActions/StepFeeBreakdown.js.map +1 -1
- package/_esm/components/TokenList/TokenList.js +4 -5
- package/_esm/components/TokenList/TokenList.js.map +1 -1
- package/_esm/components/TokenList/VirtualizedTokenList.js +4 -2
- package/_esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/_esm/components/TokenList/types.d.ts +1 -2
- package/_esm/components/TokenList/useTokenSelect.js +7 -5
- package/_esm/components/TokenList/useTokenSelect.js.map +1 -1
- package/_esm/config/queryClient.js +0 -1
- package/_esm/config/queryClient.js.map +1 -1
- package/_esm/config/version.d.ts +1 -1
- package/_esm/config/version.js +1 -1
- package/_esm/config/walletConnect.d.ts +1 -0
- package/_esm/config/walletConnect.js +2 -0
- package/_esm/config/walletConnect.js.map +1 -0
- package/_esm/hooks/useAccount.d.ts +4 -1
- package/_esm/hooks/useAccount.js +5 -15
- package/_esm/hooks/useAccount.js.map +1 -1
- package/_esm/hooks/useAvailableChains.js +12 -6
- package/_esm/hooks/useAvailableChains.js.map +1 -1
- package/_esm/hooks/useChains.d.ts +2 -1
- package/_esm/hooks/useChains.js +8 -4
- package/_esm/hooks/useChains.js.map +1 -1
- package/_esm/hooks/useDebouncedWatch.d.ts +1 -2
- package/_esm/hooks/useDebouncedWatch.js +1 -1
- package/_esm/hooks/useDebouncedWatch.js.map +1 -1
- package/_esm/hooks/useFromTokenSufficiency.js +8 -7
- package/_esm/hooks/useFromTokenSufficiency.js.map +1 -1
- package/_esm/hooks/useGasRecommendation.d.ts +1 -1
- package/_esm/hooks/useGasRecommendation.js.map +1 -1
- package/_esm/hooks/useGasRefuel.js +2 -2
- package/_esm/hooks/useGasRefuel.js.map +1 -1
- package/_esm/hooks/useGasSufficiency.js +7 -6
- package/_esm/hooks/useGasSufficiency.js.map +1 -1
- package/_esm/hooks/useRouteExecution.js +5 -5
- package/_esm/hooks/useRouteExecution.js.map +1 -1
- package/_esm/hooks/useRoutes.d.ts +1 -1
- package/_esm/hooks/useRoutes.js +23 -16
- package/_esm/hooks/useRoutes.js.map +1 -1
- package/_esm/hooks/useTokenAddressBalance.d.ts +2 -1
- package/_esm/hooks/useTokenAddressBalance.js +2 -1
- package/_esm/hooks/useTokenAddressBalance.js.map +1 -1
- package/_esm/hooks/useTokenBalance.d.ts +1 -1
- package/_esm/hooks/useTokenBalance.js +8 -19
- package/_esm/hooks/useTokenBalance.js.map +1 -1
- package/_esm/hooks/useTokenBalances.d.ts +2 -1
- package/_esm/hooks/useTokenBalances.js +1 -0
- package/_esm/hooks/useTokenBalances.js.map +1 -1
- package/_esm/hooks/useTools.js +2 -1
- package/_esm/hooks/useTools.js.map +1 -1
- package/_esm/hooks/useTransactionHistory.d.ts +2 -2
- package/_esm/hooks/useTransactionHistory.js +33 -24
- package/_esm/hooks/useTransactionHistory.js.map +1 -1
- package/_esm/i18n/en.json +4 -3
- package/_esm/pages/ActiveTransactionsPage/ActiveTransactionsPage.js +1 -3
- package/_esm/pages/ActiveTransactionsPage/ActiveTransactionsPage.js.map +1 -1
- package/_esm/pages/RoutesPage/RoutesPage.js +1 -1
- package/_esm/pages/RoutesPage/RoutesPage.js.map +1 -1
- package/_esm/pages/SettingsPage/SettingsCard/SettingCard.js +1 -1
- package/_esm/pages/SettingsPage/SettingsCard/SettingCard.style.js +6 -5
- package/_esm/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -1
- package/_esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +7 -8
- package/_esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
- package/_esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +1 -1
- package/_esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js.map +1 -1
- package/_esm/pages/TransactionPage/StatusBottomSheet.js +13 -9
- package/_esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/_esm/providers/I18nProvider/I18nProvider.js +3 -2
- package/_esm/providers/I18nProvider/I18nProvider.js.map +1 -1
- package/_esm/providers/WalletProvider/EVMBaseProvider.d.ts +2 -0
- package/_esm/providers/WalletProvider/EVMBaseProvider.js +87 -0
- package/_esm/providers/WalletProvider/EVMBaseProvider.js.map +1 -0
- package/_esm/providers/WalletProvider/EVMExternalContext.d.ts +2 -0
- package/_esm/providers/WalletProvider/EVMExternalContext.js +3 -0
- package/_esm/providers/WalletProvider/EVMExternalContext.js.map +1 -0
- package/_esm/providers/WalletProvider/EVMProvider.d.ts +1 -1
- package/_esm/providers/WalletProvider/EVMProvider.js +13 -70
- package/_esm/providers/WalletProvider/EVMProvider.js.map +1 -1
- package/_esm/providers/WalletProvider/SDKProviders.js +13 -5
- package/_esm/providers/WalletProvider/SDKProviders.js.map +1 -1
- package/_esm/providers/WalletProvider/SVMBaseProvider.d.ts +2 -0
- package/_esm/providers/WalletProvider/{SolanaProvider.js → SVMBaseProvider.js} +3 -12
- package/_esm/providers/WalletProvider/SVMBaseProvider.js.map +1 -0
- package/_esm/providers/WalletProvider/SVMExternalContext.d.ts +2 -0
- package/_esm/providers/WalletProvider/SVMExternalContext.js +3 -0
- package/_esm/providers/WalletProvider/SVMExternalContext.js.map +1 -0
- package/_esm/providers/WalletProvider/SVMProvider.d.ts +3 -0
- package/_esm/providers/WalletProvider/SVMProvider.js +18 -0
- package/_esm/providers/WalletProvider/SVMProvider.js.map +1 -0
- package/_esm/providers/WalletProvider/WalletProvider.js +2 -2
- package/_esm/providers/WalletProvider/WalletProvider.js.map +1 -1
- package/_esm/providers/WalletProvider/index.d.ts +1 -0
- package/_esm/providers/WalletProvider/index.js +1 -0
- package/_esm/providers/WalletProvider/index.js.map +1 -1
- package/_esm/providers/WalletProvider/useHasExternalWalletProvider.d.ts +7 -0
- package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js +23 -0
- package/_esm/providers/WalletProvider/useHasExternalWalletProvider.js.map +1 -0
- package/_esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
- package/_esm/providers/WidgetProvider/index.d.ts +1 -2
- package/_esm/providers/WidgetProvider/index.js +1 -2
- package/_esm/providers/WidgetProvider/index.js.map +1 -1
- package/_esm/stores/StoreProvider.js +3 -3
- package/_esm/stores/StoreProvider.js.map +1 -1
- package/_esm/stores/chains/ChainOrderStore.js +18 -15
- package/_esm/stores/chains/ChainOrderStore.js.map +1 -1
- package/_esm/stores/chains/createChainOrderStore.js +34 -15
- package/_esm/stores/chains/createChainOrderStore.js.map +1 -1
- package/_esm/stores/chains/types.d.ts +11 -4
- package/_esm/stores/chains/useChainOrder.d.ts +2 -1
- package/_esm/stores/chains/useChainOrder.js +2 -2
- package/_esm/stores/chains/useChainOrder.js.map +1 -1
- package/_esm/stores/form/FormStore.d.ts +1 -1
- package/_esm/stores/form/FormStore.js +5 -5
- package/_esm/stores/form/FormStore.js.map +1 -1
- package/_esm/stores/form/FormUpdater.d.ts +3 -3
- package/_esm/stores/form/FormUpdater.js +4 -4
- package/_esm/stores/form/FormUpdater.js.map +1 -1
- package/_esm/stores/form/URLSearchParamsBuilder.js +3 -2
- package/_esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
- package/_esm/stores/form/createFormStore.js.map +1 -1
- package/_esm/stores/form/types.d.ts +20 -20
- package/_esm/stores/form/types.js.map +1 -1
- package/_esm/stores/form/useFieldActions.js +9 -10
- package/_esm/stores/form/useFieldActions.js.map +1 -1
- package/_esm/stores/form/useFieldController.d.ts +1 -1
- package/_esm/stores/form/useFieldValues.d.ts +2 -2
- package/_esm/stores/form/useFieldValues.js +3 -2
- package/_esm/stores/form/useFieldValues.js.map +1 -1
- package/_esm/stores/form/useTouchedFields.d.ts +14 -1
- package/_esm/stores/form/useValidationActions.js +7 -11
- package/_esm/stores/form/useValidationActions.js.map +1 -1
- package/_esm/stores/routes/useExecutingRoutesIds.d.ts +1 -1
- package/_esm/stores/routes/useExecutingRoutesIds.js +5 -2
- package/_esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
- package/_esm/stores/settings/useSettingsStore.d.ts +1 -0
- package/_esm/stores/settings/useSettingsStore.js +2 -1
- package/_esm/stores/settings/useSettingsStore.js.map +1 -1
- package/_esm/types/widget.d.ts +26 -23
- package/_esm/types/widget.js +1 -0
- package/_esm/types/widget.js.map +1 -1
- package/_esm/utils/index.d.ts +1 -0
- package/_esm/utils/index.js +1 -0
- package/_esm/utils/index.js.map +1 -1
- package/_esm/utils/item.d.ts +2 -0
- package/_esm/{providers/WidgetProvider/utils.js → utils/item.js} +1 -1
- package/_esm/utils/item.js.map +1 -0
- package/components/ActiveTransactions/ActiveTransactions.tsx +1 -3
- package/components/BaseTransactionButton/BaseTransactionButton.tsx +6 -6
- package/components/ChainSelect/ChainSelect.tsx +8 -6
- package/components/ChainSelect/useChainSelect.ts +5 -5
- package/components/Header/CloseDrawerButton.tsx +18 -0
- package/components/Header/EVMDisconnectIconButton.tsx +24 -0
- package/components/Header/Header.style.ts +10 -4
- package/components/Header/Header.tsx +1 -8
- package/components/Header/NavigationHeader.tsx +13 -30
- package/components/Header/SVMDisconnectIconButton.tsx +19 -0
- package/components/Header/SettingsButton.style.tsx +18 -22
- package/components/Header/TransactionHistoryButton.tsx +23 -0
- package/components/Header/WalletHeader.tsx +25 -6
- package/components/Header/WalletMenu.tsx +66 -100
- package/components/SelectTokenButton/SelectTokenButton.style.tsx +4 -4
- package/components/SelectTokenButton/SelectTokenButton.tsx +10 -2
- package/components/StepActions/StepFeeBreakdown.tsx +2 -2
- package/components/TokenList/TokenList.tsx +2 -5
- package/components/TokenList/VirtualizedTokenList.tsx +3 -2
- package/components/TokenList/types.ts +1 -2
- package/components/TokenList/useTokenSelect.ts +8 -6
- package/config/queryClient.ts +0 -1
- package/config/version.ts +1 -1
- package/config/walletConnect.ts +1 -0
- package/hooks/useAccount.ts +9 -17
- package/hooks/useAvailableChains.ts +13 -6
- package/hooks/useChains.ts +12 -6
- package/hooks/useDebouncedWatch.ts +6 -5
- package/hooks/useFromTokenSufficiency.ts +18 -9
- package/hooks/useGasRecommendation.ts +1 -1
- package/hooks/useGasRefuel.ts +2 -2
- package/hooks/useGasSufficiency.ts +11 -6
- package/hooks/useRouteExecution.ts +5 -5
- package/hooks/useRoutes.ts +31 -24
- package/hooks/useTokenAddressBalance.ts +2 -1
- package/hooks/useTokenBalance.ts +12 -22
- package/hooks/useTokenBalances.ts +1 -0
- package/hooks/useTools.ts +2 -1
- package/hooks/useTransactionHistory.ts +39 -29
- package/i18n/en.json +4 -3
- package/package.json +13 -13
- package/pages/ActiveTransactionsPage/ActiveTransactionsPage.tsx +1 -3
- package/pages/RoutesPage/RoutesPage.tsx +0 -1
- package/pages/SettingsPage/SettingsCard/SettingCard.style.tsx +6 -5
- package/pages/SettingsPage/SettingsCard/SettingCard.tsx +1 -1
- package/pages/SettingsPage/SlippageSettings/SlippageSettings.style.tsx +3 -2
- package/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +12 -10
- package/pages/TransactionPage/StatusBottomSheet.tsx +14 -9
- package/providers/I18nProvider/I18nProvider.tsx +3 -2
- package/providers/WalletProvider/EVMBaseProvider.tsx +130 -0
- package/providers/WalletProvider/EVMExternalContext.ts +3 -0
- package/providers/WalletProvider/EVMProvider.tsx +17 -110
- package/providers/WalletProvider/SDKProviders.tsx +19 -9
- package/providers/WalletProvider/{SolanaProvider.tsx → SVMBaseProvider.tsx} +2 -17
- package/providers/WalletProvider/SVMExternalContext.ts +3 -0
- package/providers/WalletProvider/SVMProvider.tsx +27 -0
- package/providers/WalletProvider/WalletProvider.tsx +5 -5
- package/providers/WalletProvider/index.ts +1 -0
- package/providers/WalletProvider/useHasExternalWalletProvider.ts +30 -0
- package/providers/WidgetProvider/WidgetProvider.tsx +2 -2
- package/providers/WidgetProvider/index.ts +1 -2
- package/stores/StoreProvider.tsx +12 -12
- package/stores/chains/ChainOrderStore.tsx +21 -17
- package/stores/chains/createChainOrderStore.ts +34 -15
- package/stores/chains/types.ts +12 -4
- package/stores/chains/useChainOrder.ts +5 -2
- package/stores/form/FormStore.tsx +7 -8
- package/stores/form/FormUpdater.tsx +10 -5
- package/stores/form/URLSearchParamsBuilder.tsx +3 -2
- package/stores/form/createFormStore.ts +3 -2
- package/stores/form/types.ts +24 -23
- package/stores/form/useFieldActions.ts +11 -20
- package/stores/form/useFieldValues.ts +6 -4
- package/stores/form/useValidationActions.ts +9 -17
- package/stores/routes/useExecutingRoutesIds.ts +5 -2
- package/stores/settings/useSettingsStore.ts +3 -1
- package/types/widget.ts +32 -24
- package/utils/index.ts +1 -0
- package/{providers/WidgetProvider/utils.ts → utils/item.ts} +3 -7
- package/_cjs/providers/WalletProvider/SolanaProvider.d.ts +0 -3
- package/_cjs/providers/WalletProvider/SolanaProvider.js.map +0 -1
- package/_cjs/providers/WidgetProvider/utils.d.ts +0 -4
- package/_cjs/providers/WidgetProvider/utils.js.map +0 -1
- package/_esm/providers/WalletProvider/SolanaProvider.d.ts +0 -3
- package/_esm/providers/WalletProvider/SolanaProvider.js.map +0 -1
- package/_esm/providers/WidgetProvider/utils.d.ts +0 -4
- package/_esm/providers/WidgetProvider/utils.js.map +0 -1
package/hooks/useGasRefuel.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import { useAvailableChains } from '.';
|
|
3
|
+
import { useFieldValues } from '../stores';
|
|
3
4
|
import { useGasRecommendation } from './useGasRecommendation';
|
|
4
5
|
import { useTokenBalance } from './useTokenBalance';
|
|
5
|
-
import { useFieldValues } from '../stores';
|
|
6
6
|
|
|
7
7
|
export const useGasRefuel = () => {
|
|
8
8
|
const { getChainById } = useAvailableChains();
|
|
@@ -19,7 +19,7 @@ export const useGasRefuel = () => {
|
|
|
19
19
|
|
|
20
20
|
const { token: nativeToken } = useTokenBalance(
|
|
21
21
|
toAddress,
|
|
22
|
-
toChainId
|
|
22
|
+
toChainId ? toChain?.nativeToken : undefined,
|
|
23
23
|
toChain,
|
|
24
24
|
);
|
|
25
25
|
|
|
@@ -17,16 +17,21 @@ export interface GasSufficiency {
|
|
|
17
17
|
const refetchInterval = 30_000;
|
|
18
18
|
|
|
19
19
|
export const useGasSufficiency = (route?: RouteExtended) => {
|
|
20
|
-
const {
|
|
20
|
+
const { accounts } = useAccount();
|
|
21
21
|
const { getChainById } = useAvailableChains();
|
|
22
22
|
|
|
23
23
|
const { enabledAutoRefuel } = useSettings(['enabledAutoRefuel']);
|
|
24
24
|
const { enabled, isLoading: isRefuelLoading } = useGasRefuel();
|
|
25
25
|
const enabledRefuel = enabled && enabledAutoRefuel;
|
|
26
26
|
|
|
27
|
+
const account = accounts.find(
|
|
28
|
+
(account) =>
|
|
29
|
+
account.chainType === getChainById(route?.fromChainId)?.chainType,
|
|
30
|
+
);
|
|
31
|
+
|
|
27
32
|
const { data: insufficientGas, isLoading } = useQuery({
|
|
28
|
-
queryKey: ['gas-sufficiency-check', account
|
|
29
|
-
queryFn: async () => {
|
|
33
|
+
queryKey: ['gas-sufficiency-check', account?.address, route?.id],
|
|
34
|
+
queryFn: async ({ queryKey: [, accountAddress] }) => {
|
|
30
35
|
// TODO: include LI.Fuel into calculation once steps and tools are properly typed
|
|
31
36
|
// const refuelSteps = route.steps
|
|
32
37
|
// .flatMap((step) => step.includedSteps)
|
|
@@ -38,7 +43,7 @@ export const useGasSufficiency = (route?: RouteExtended) => {
|
|
|
38
43
|
(groupedGasCosts, step) => {
|
|
39
44
|
if (
|
|
40
45
|
step.estimate.gasCosts &&
|
|
41
|
-
(account
|
|
46
|
+
(account?.connector as Connector)?.id !== 'safe'
|
|
42
47
|
) {
|
|
43
48
|
const { token } = step.estimate.gasCosts[0];
|
|
44
49
|
const gasCostAmount = step.estimate.gasCosts.reduce(
|
|
@@ -82,7 +87,7 @@ export const useGasSufficiency = (route?: RouteExtended) => {
|
|
|
82
87
|
}
|
|
83
88
|
|
|
84
89
|
const tokenBalances = await getTokenBalancesWithRetry(
|
|
85
|
-
|
|
90
|
+
accountAddress!,
|
|
86
91
|
Object.values(gasCosts).map((item) => item.token),
|
|
87
92
|
);
|
|
88
93
|
|
|
@@ -125,7 +130,7 @@ export const useGasSufficiency = (route?: RouteExtended) => {
|
|
|
125
130
|
return gasCostResult;
|
|
126
131
|
},
|
|
127
132
|
|
|
128
|
-
enabled: Boolean(account
|
|
133
|
+
enabled: Boolean(account?.address && route),
|
|
129
134
|
refetchInterval,
|
|
130
135
|
staleTime: refetchInterval,
|
|
131
136
|
});
|
|
@@ -31,7 +31,7 @@ export const useRouteExecution = ({
|
|
|
31
31
|
onAcceptExchangeRateUpdate,
|
|
32
32
|
}: RouteExecutionProps) => {
|
|
33
33
|
const queryClient = useQueryClient();
|
|
34
|
-
const {
|
|
34
|
+
const { isConnected } = useAccount();
|
|
35
35
|
const resumedAfterMount = useRef(false);
|
|
36
36
|
const emitter = useWidgetEvents();
|
|
37
37
|
const routeExecutionStoreContext = useRouteExecutionStoreContext();
|
|
@@ -87,7 +87,7 @@ export const useRouteExecution = ({
|
|
|
87
87
|
|
|
88
88
|
const executeRouteMutation = useMutation({
|
|
89
89
|
mutationFn: () => {
|
|
90
|
-
if (!
|
|
90
|
+
if (!isConnected) {
|
|
91
91
|
throw Error('Account is not connected.');
|
|
92
92
|
}
|
|
93
93
|
if (!routeExecution?.route) {
|
|
@@ -111,7 +111,7 @@ export const useRouteExecution = ({
|
|
|
111
111
|
|
|
112
112
|
const resumeRouteMutation = useMutation({
|
|
113
113
|
mutationFn: (resumedRoute?: Route) => {
|
|
114
|
-
if (!
|
|
114
|
+
if (!isConnected) {
|
|
115
115
|
throw Error('Account is not connected.');
|
|
116
116
|
}
|
|
117
117
|
if (!routeExecution?.route) {
|
|
@@ -170,14 +170,14 @@ export const useRouteExecution = ({
|
|
|
170
170
|
// Check if route is eligible for automatic resuming
|
|
171
171
|
if (
|
|
172
172
|
isRouteActive(routeExecution?.route) &&
|
|
173
|
-
|
|
173
|
+
isConnected &&
|
|
174
174
|
!resumedAfterMount.current
|
|
175
175
|
) {
|
|
176
176
|
resumedAfterMount.current = true;
|
|
177
177
|
_resumeRoute();
|
|
178
178
|
}
|
|
179
179
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
180
|
-
}, [
|
|
180
|
+
}, [isConnected]);
|
|
181
181
|
|
|
182
182
|
useEffect(() => {
|
|
183
183
|
return () => {
|
package/hooks/useRoutes.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { normalize } from 'viem/ens';
|
|
|
8
8
|
import { useConfig } from 'wagmi';
|
|
9
9
|
import { useChain, useDebouncedWatch, useGasRefuel, useToken } from '.';
|
|
10
10
|
import { useWidgetConfig } from '../providers';
|
|
11
|
-
import { useFieldValues, useSettings } from '../stores';
|
|
11
|
+
import { defaultSlippage, useFieldValues, useSettings } from '../stores';
|
|
12
12
|
import { isSVMAddress } from '../utils';
|
|
13
13
|
import { useAccount } from './useAccount';
|
|
14
14
|
import { useSwapOnly } from './useSwapOnly';
|
|
@@ -21,7 +21,7 @@ interface RoutesProps {
|
|
|
21
21
|
|
|
22
22
|
export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
23
23
|
const { subvariant, sdkConfig, insurance, contractTool } = useWidgetConfig();
|
|
24
|
-
const {
|
|
24
|
+
const { accounts } = useAccount();
|
|
25
25
|
const queryClient = useQueryClient();
|
|
26
26
|
const config = useConfig();
|
|
27
27
|
const swapOnly = useSwapOnly();
|
|
@@ -38,7 +38,7 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
38
38
|
'enabledBridges',
|
|
39
39
|
'enabledExchanges',
|
|
40
40
|
]);
|
|
41
|
-
const [fromTokenAmount] = useDebouncedWatch(
|
|
41
|
+
const [fromTokenAmount] = useDebouncedWatch(320, 'fromAmount');
|
|
42
42
|
const [
|
|
43
43
|
fromChainId,
|
|
44
44
|
fromTokenAddress,
|
|
@@ -67,13 +67,21 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
67
67
|
const { enabled: enabledRefuel, fromAmount: gasRecommendationFromAmount } =
|
|
68
68
|
useGasRefuel();
|
|
69
69
|
|
|
70
|
-
const
|
|
71
|
-
(
|
|
72
|
-
|
|
70
|
+
const accountAddress = fromChain?.chainType
|
|
71
|
+
? accounts.find((account) => account.chainType === fromChain.chainType)
|
|
72
|
+
?.address
|
|
73
|
+
: undefined;
|
|
74
|
+
|
|
75
|
+
const hasAmount = Number(fromTokenAmount) > 0 || Number(toTokenAmount) > 0;
|
|
73
76
|
|
|
74
77
|
const contractCallQuoteEnabled: boolean =
|
|
75
78
|
subvariant === 'nft'
|
|
76
|
-
? Boolean(
|
|
79
|
+
? Boolean(
|
|
80
|
+
toContractAddress &&
|
|
81
|
+
toContractCallData &&
|
|
82
|
+
toContractGasLimit &&
|
|
83
|
+
accountAddress,
|
|
84
|
+
)
|
|
77
85
|
: true;
|
|
78
86
|
|
|
79
87
|
// When we bridge between ecosystems we need to be sure toAddress is set
|
|
@@ -81,8 +89,8 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
81
89
|
fromChain?.chainType !== toChain?.chainType ? Boolean(toAddress) : true;
|
|
82
90
|
|
|
83
91
|
const isEnabled =
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
Boolean(Number(fromChainId)) &&
|
|
93
|
+
Boolean(Number(toChainId)) &&
|
|
86
94
|
Boolean(fromToken?.address) &&
|
|
87
95
|
Boolean(toToken?.address) &&
|
|
88
96
|
!Number.isNaN(slippage) &&
|
|
@@ -90,18 +98,16 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
90
98
|
isChainTypeSatisfied &&
|
|
91
99
|
contractCallQuoteEnabled;
|
|
92
100
|
|
|
93
|
-
|
|
94
|
-
fromChain?.chainType === account.chainType ? account.address : undefined;
|
|
95
|
-
|
|
101
|
+
// Some values should be strictly typed and isEnabled ensures that
|
|
96
102
|
const queryKey = [
|
|
97
103
|
'routes',
|
|
98
104
|
accountAddress,
|
|
99
|
-
fromChainId,
|
|
100
|
-
fromToken?.address,
|
|
105
|
+
fromChainId as number,
|
|
106
|
+
fromToken?.address as string,
|
|
101
107
|
fromTokenAmount,
|
|
102
108
|
toAddress,
|
|
103
|
-
toChainId,
|
|
104
|
-
toToken?.address,
|
|
109
|
+
toChainId as number,
|
|
110
|
+
toToken?.address as string,
|
|
105
111
|
toTokenAmount,
|
|
106
112
|
toContractAddress,
|
|
107
113
|
toContractCallData,
|
|
@@ -116,7 +122,7 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
116
122
|
gasRecommendationFromAmount,
|
|
117
123
|
insurance,
|
|
118
124
|
insurableRoute?.id,
|
|
119
|
-
];
|
|
125
|
+
] as const;
|
|
120
126
|
|
|
121
127
|
const { data, isLoading, isFetching, isFetched, dataUpdatedAt, refetch } =
|
|
122
128
|
useQuery({
|
|
@@ -135,7 +141,7 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
135
141
|
toContractAddress,
|
|
136
142
|
toContractCallData,
|
|
137
143
|
toContractGasLimit,
|
|
138
|
-
slippage,
|
|
144
|
+
slippage = defaultSlippage,
|
|
139
145
|
enabledBridges,
|
|
140
146
|
enabledExchanges,
|
|
141
147
|
routePriority,
|
|
@@ -153,10 +159,10 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
153
159
|
try {
|
|
154
160
|
// FIXME: resolve address in one place
|
|
155
161
|
toWalletAddress = !isAddress
|
|
156
|
-
? await getEnsAddress(config, {
|
|
162
|
+
? (await getEnsAddress(config, {
|
|
157
163
|
chainId: toChainId,
|
|
158
164
|
name: normalize(toAddress),
|
|
159
|
-
})
|
|
165
|
+
})) || undefined
|
|
160
166
|
: isAddress
|
|
161
167
|
? toAddress
|
|
162
168
|
: fromAddress;
|
|
@@ -188,7 +194,8 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
188
194
|
if (subvariant === 'nft') {
|
|
189
195
|
const contractCallQuote = await getContractCallQuote(
|
|
190
196
|
{
|
|
191
|
-
fromAddress
|
|
197
|
+
// Contract calls are enabled only when fromAddress is set
|
|
198
|
+
fromAddress: fromAddress as string,
|
|
192
199
|
fromChain: fromChainId,
|
|
193
200
|
fromToken: fromTokenAddress,
|
|
194
201
|
toAmount: toTokenAmount,
|
|
@@ -246,13 +253,13 @@ export const useRoutes = ({ insurableRoute }: RoutesProps = {}) => {
|
|
|
246
253
|
|
|
247
254
|
const data = await getRoutes(
|
|
248
255
|
{
|
|
249
|
-
|
|
256
|
+
fromAddress,
|
|
250
257
|
fromAmount,
|
|
258
|
+
fromChainId,
|
|
251
259
|
fromTokenAddress,
|
|
260
|
+
toAddress: toWalletAddress,
|
|
252
261
|
toChainId,
|
|
253
262
|
toTokenAddress,
|
|
254
|
-
fromAddress,
|
|
255
|
-
toAddress: toWalletAddress,
|
|
256
263
|
fromAmountForGas:
|
|
257
264
|
enabledRefuel && gasRecommendationFromAmount
|
|
258
265
|
? gasRecommendationFromAmount
|
|
@@ -5,7 +5,7 @@ export const useTokenAddressBalance = (
|
|
|
5
5
|
chainId?: number,
|
|
6
6
|
tokenAddress?: string,
|
|
7
7
|
) => {
|
|
8
|
-
const { tokens, tokensWithBalance, isBalanceLoading, refetch } =
|
|
8
|
+
const { tokens, tokensWithBalance, chain, isBalanceLoading, refetch } =
|
|
9
9
|
useTokenBalances(chainId);
|
|
10
10
|
|
|
11
11
|
const token = useMemo(() => {
|
|
@@ -19,6 +19,7 @@ export const useTokenAddressBalance = (
|
|
|
19
19
|
|
|
20
20
|
return {
|
|
21
21
|
token,
|
|
22
|
+
chain,
|
|
22
23
|
isLoading: isBalanceLoading,
|
|
23
24
|
refetch,
|
|
24
25
|
};
|
package/hooks/useTokenBalance.ts
CHANGED
|
@@ -11,37 +11,27 @@ export const useTokenBalance = (
|
|
|
11
11
|
token?: Token,
|
|
12
12
|
chain?: ExtendedChain,
|
|
13
13
|
) => {
|
|
14
|
-
const { account } = useAccount();
|
|
14
|
+
const { account, accounts } = useAccount();
|
|
15
15
|
const queryClient = useQueryClient();
|
|
16
16
|
const walletAddress =
|
|
17
17
|
accountAddress ||
|
|
18
18
|
// When we provide chain we want to be sure that account address used is from the same ecosystem as token
|
|
19
|
-
|
|
20
|
-
? account.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
: undefined;
|
|
19
|
+
(chain
|
|
20
|
+
? accounts.find((account) => account.chainType === chain.chainType)
|
|
21
|
+
?.address
|
|
22
|
+
: account.address);
|
|
24
23
|
|
|
25
24
|
const tokenBalanceQueryKey = useMemo(
|
|
26
|
-
() =>
|
|
25
|
+
() =>
|
|
26
|
+
['token-balance', walletAddress, token?.chainId, token?.address] as const,
|
|
27
27
|
[token?.address, token?.chainId, walletAddress],
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
const { data, isLoading, refetch } = useQuery({
|
|
31
31
|
queryKey: tokenBalanceQueryKey,
|
|
32
|
-
queryFn: async ({
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'token-balances',
|
|
36
|
-
accountAddress,
|
|
37
|
-
token!.chainId,
|
|
38
|
-
])
|
|
39
|
-
?.find((t) => t.address === token!.address);
|
|
40
|
-
|
|
41
|
-
if (cachedToken) {
|
|
42
|
-
return cachedToken as TokenAmount;
|
|
43
|
-
}
|
|
44
|
-
|
|
32
|
+
queryFn: async ({
|
|
33
|
+
queryKey: [, accountAddress, tokenChainId, tokenAddress],
|
|
34
|
+
}) => {
|
|
45
35
|
const tokenBalances = await getTokenBalancesWithRetry(
|
|
46
36
|
accountAddress as string,
|
|
47
37
|
[token!],
|
|
@@ -64,12 +54,12 @@ export const useTokenBalance = (
|
|
|
64
54
|
}
|
|
65
55
|
|
|
66
56
|
queryClient.setQueriesData<TokenAmount[]>(
|
|
67
|
-
{ queryKey: ['token-balances', accountAddress,
|
|
57
|
+
{ queryKey: ['token-balances', accountAddress, tokenChainId] },
|
|
68
58
|
(data) => {
|
|
69
59
|
if (data) {
|
|
70
60
|
const clonedData = [...data];
|
|
71
61
|
const index = clonedData.findIndex(
|
|
72
|
-
(dataToken) => dataToken.address ===
|
|
62
|
+
(dataToken) => dataToken.address === tokenAddress,
|
|
73
63
|
);
|
|
74
64
|
clonedData[index] = {
|
|
75
65
|
...clonedData[index],
|
package/hooks/useTools.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getTools, type ToolsResponse } from '@lifi/sdk';
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
|
-
import {
|
|
3
|
+
import { useWidgetConfig } from '../providers';
|
|
4
4
|
import { useSettingsStore } from '../stores';
|
|
5
|
+
import { isItemAllowed } from '../utils';
|
|
5
6
|
|
|
6
7
|
export const useTools = () => {
|
|
7
8
|
const { bridges, exchanges } = useWidgetConfig();
|
|
@@ -1,49 +1,59 @@
|
|
|
1
|
+
import type { StatusResponse } from '@lifi/sdk';
|
|
1
2
|
import { getTransactionHistory, type ExtendedTransactionInfo } from '@lifi/sdk';
|
|
2
|
-
import {
|
|
3
|
+
import type { QueryFunction } from '@tanstack/react-query';
|
|
4
|
+
import { useQueries } from '@tanstack/react-query';
|
|
3
5
|
import { useAccount } from './useAccount';
|
|
4
6
|
|
|
5
7
|
export const useTransactionHistory = () => {
|
|
6
|
-
const {
|
|
8
|
+
const { accounts } = useAccount();
|
|
7
9
|
|
|
8
|
-
const { data, isLoading
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const { data, isLoading } = useQueries({
|
|
11
|
+
queries: accounts.map((account) => ({
|
|
12
|
+
queryKey: ['transaction-history', account.address],
|
|
13
|
+
queryFn: (async ({ queryKey: [, accountAddress], signal }) => {
|
|
14
|
+
if (!accountAddress) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
const date = new Date();
|
|
18
|
+
date.setFullYear(date.getFullYear() - 10);
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
const response = await getTransactionHistory(
|
|
21
|
+
{
|
|
22
|
+
wallet: accountAddress,
|
|
23
|
+
fromTimestamp: date.getTime() / 1000,
|
|
24
|
+
toTimestamp: Date.now() / 1000,
|
|
25
|
+
},
|
|
26
|
+
{ signal },
|
|
27
|
+
);
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
return response.transfers;
|
|
30
|
+
}) as QueryFunction<StatusResponse[], (string | undefined)[], never>,
|
|
31
|
+
refetchInterval: 300000,
|
|
32
|
+
enabled: Boolean(account.address),
|
|
33
|
+
})),
|
|
34
|
+
combine: (results) => {
|
|
35
|
+
const data = results
|
|
36
|
+
.filter((result) => result.data)
|
|
37
|
+
.flatMap((result) => result.data)
|
|
27
38
|
.filter(
|
|
28
39
|
(transaction) =>
|
|
29
|
-
transaction
|
|
40
|
+
transaction?.receiving.chainId && transaction.sending.chainId,
|
|
30
41
|
)
|
|
31
42
|
.sort((a, b) => {
|
|
32
43
|
return (
|
|
33
|
-
((b
|
|
34
|
-
((a
|
|
44
|
+
((b?.sending as ExtendedTransactionInfo)?.timestamp ?? 0) -
|
|
45
|
+
((a?.sending as ExtendedTransactionInfo)?.timestamp ?? 0)
|
|
35
46
|
);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
}) as StatusResponse[];
|
|
48
|
+
return {
|
|
49
|
+
data: data,
|
|
50
|
+
isLoading: results.some((result) => result.isLoading),
|
|
51
|
+
};
|
|
39
52
|
},
|
|
40
|
-
refetchInterval: 300000,
|
|
41
|
-
enabled: Boolean(account.address),
|
|
42
53
|
});
|
|
43
54
|
|
|
44
55
|
return {
|
|
45
|
-
data
|
|
56
|
+
data,
|
|
46
57
|
isLoading,
|
|
47
|
-
refetch,
|
|
48
58
|
};
|
|
49
59
|
};
|
package/i18n/en.json
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"buyNow": "Buy now",
|
|
15
15
|
"cancel": "Cancel",
|
|
16
16
|
"changeWallet": "Change wallet",
|
|
17
|
+
"close": "Close",
|
|
17
18
|
"connectWallet": "Connect wallet",
|
|
18
19
|
"contactSupport": "Contact support",
|
|
19
20
|
"continue": "Continue",
|
|
@@ -105,7 +106,7 @@
|
|
|
105
106
|
"insufficientGas": "You don't have enough gas to complete the transaction. You need to add at least:",
|
|
106
107
|
"rateChanged": "The exchange rate has changed. By continuing the transaction, you'll accept the new rate.",
|
|
107
108
|
"resetSettings": "This will reset your route priority, slippage, gas price, enabled bridges and exchanges.",
|
|
108
|
-
"slippageOutsideRecommendedLimits": "High tolerance may result in unfavorable trade caused by front
|
|
109
|
+
"slippageOutsideRecommendedLimits": "High slippage tolerance may result in unfavorable trade caused by front-running."
|
|
109
110
|
},
|
|
110
111
|
"title": {
|
|
111
112
|
"deleteActiveTransactions": "Delete all active transactions?",
|
|
@@ -170,8 +171,8 @@
|
|
|
170
171
|
"networkEstimated": "Estimated network fees:",
|
|
171
172
|
"networkPaid": "Paid network fees:",
|
|
172
173
|
"paid": "paid fees",
|
|
173
|
-
"providerEstimated": "
|
|
174
|
-
"providerPaid": "
|
|
174
|
+
"providerEstimated": "Estimated provider fees:",
|
|
175
|
+
"providerPaid": "Paid provider fees:"
|
|
175
176
|
},
|
|
176
177
|
"from": "From",
|
|
177
178
|
"fromAmount": "You pay",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.13",
|
|
4
4
|
"description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./_cjs/index.js",
|
|
@@ -35,29 +35,29 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@emotion/react": "^11.11.3",
|
|
37
37
|
"@emotion/styled": "^11.11.0",
|
|
38
|
-
"@lifi/sdk": "^3.0.0-alpha.
|
|
39
|
-
"@lifi/wallet-management": "^3.0.0-alpha.
|
|
40
|
-
"@mui/icons-material": "^5.15.
|
|
41
|
-
"@mui/lab": "^5.0.0-alpha.
|
|
42
|
-
"@mui/material": "^5.15.
|
|
38
|
+
"@lifi/sdk": "^3.0.0-alpha.47",
|
|
39
|
+
"@lifi/wallet-management": "^3.0.0-alpha.9",
|
|
40
|
+
"@mui/icons-material": "^5.15.4",
|
|
41
|
+
"@mui/lab": "^5.0.0-alpha.160",
|
|
42
|
+
"@mui/material": "^5.15.4",
|
|
43
43
|
"@solana/wallet-adapter-base": "^0.9.23",
|
|
44
44
|
"@solana/wallet-adapter-react": "^0.15.35",
|
|
45
|
-
"@solana/wallet-adapter-wallets": "^0.19.
|
|
46
|
-
"@solana/web3.js": "^1.
|
|
47
|
-
"@tanstack/react-query": "^5.
|
|
45
|
+
"@solana/wallet-adapter-wallets": "^0.19.25",
|
|
46
|
+
"@solana/web3.js": "^1.89.0",
|
|
47
|
+
"@tanstack/react-query": "^5.17.12",
|
|
48
48
|
"@tanstack/react-virtual": "^3.0.1",
|
|
49
|
-
"i18next": "^23.7.
|
|
49
|
+
"i18next": "^23.7.16",
|
|
50
50
|
"microdiff": "^1.3.2",
|
|
51
51
|
"mitt": "^3.0.1",
|
|
52
52
|
"react": "^18.2.0",
|
|
53
53
|
"react-dom": "^18.2.0",
|
|
54
54
|
"react-i18next": "^14.0.0",
|
|
55
55
|
"react-intersection-observer": "^9.5.3",
|
|
56
|
-
"react-router-dom": "^6.21.
|
|
56
|
+
"react-router-dom": "^6.21.2",
|
|
57
57
|
"react-timer-hook": "^3.0.7",
|
|
58
58
|
"uuid": "^9.0.1",
|
|
59
|
-
"viem": "^2.0.
|
|
60
|
-
"wagmi": "^2.
|
|
59
|
+
"viem": "^2.0.10",
|
|
60
|
+
"wagmi": "^2.2.1",
|
|
61
61
|
"zustand": "^4.4.7"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
@@ -13,7 +13,6 @@ import { useTranslation } from 'react-i18next';
|
|
|
13
13
|
import { ActiveTransactionItem } from '../../components/ActiveTransactions';
|
|
14
14
|
import { Dialog } from '../../components/Dialog';
|
|
15
15
|
import { PageContainer } from '../../components/PageContainer';
|
|
16
|
-
import { useAccount } from '../../hooks';
|
|
17
16
|
import {
|
|
18
17
|
useExecutingRoutesIds,
|
|
19
18
|
useHeaderStoreContext,
|
|
@@ -23,8 +22,7 @@ import { ActiveTransactionsEmpty } from './ActiveTransactionsEmpty';
|
|
|
23
22
|
|
|
24
23
|
export const ActiveTransactionsPage = () => {
|
|
25
24
|
const { t } = useTranslation();
|
|
26
|
-
const
|
|
27
|
-
const executingRoutes = useExecutingRoutesIds(account.address);
|
|
25
|
+
const executingRoutes = useExecutingRoutesIds();
|
|
28
26
|
const deleteRoutes = useRouteExecutionStore((store) => store.deleteRoutes);
|
|
29
27
|
const headerStoreContext = useHeaderStoreContext();
|
|
30
28
|
const [open, setOpen] = useState(false);
|
|
@@ -15,18 +15,18 @@ export const SummaryTitleContainer = styled(Box)(({ theme }) => ({
|
|
|
15
15
|
gap: theme.spacing(1.5),
|
|
16
16
|
}));
|
|
17
17
|
|
|
18
|
-
export const SummaryRowContainer = styled(Box)({
|
|
18
|
+
export const SummaryRowContainer = styled(Box)(({ theme }) => ({
|
|
19
19
|
display: 'flex',
|
|
20
20
|
width: '100%',
|
|
21
21
|
justifyContent: 'space-between',
|
|
22
22
|
alignItems: 'center',
|
|
23
|
-
|
|
23
|
+
padding: theme.spacing(1),
|
|
24
|
+
}));
|
|
24
25
|
|
|
25
|
-
export const SummaryRowButton = styled(ButtonBase)({
|
|
26
|
+
export const SummaryRowButton = styled(ButtonBase)(({ theme }) => ({
|
|
26
27
|
background: 'none',
|
|
27
28
|
color: 'inherit',
|
|
28
29
|
border: 'none',
|
|
29
|
-
padding: 0,
|
|
30
30
|
font: 'inherit',
|
|
31
31
|
cursor: 'pointer',
|
|
32
32
|
outline: 'inherit',
|
|
@@ -34,7 +34,8 @@ export const SummaryRowButton = styled(ButtonBase)({
|
|
|
34
34
|
width: '100%',
|
|
35
35
|
justifyContent: 'space-between',
|
|
36
36
|
alignItems: 'center',
|
|
37
|
-
|
|
37
|
+
padding: theme.spacing(1),
|
|
38
|
+
}));
|
|
38
39
|
|
|
39
40
|
export const SummaryValue = styled(Typography)({
|
|
40
41
|
lineHeight: '1.25',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { alpha, styled } from '@mui/material/styles';
|
|
2
|
-
import { Box, ButtonBase, InputBase } from '@mui/material';
|
|
3
1
|
import type { Theme } from '@mui/material';
|
|
2
|
+
import { Box, ButtonBase, InputBase } from '@mui/material';
|
|
4
3
|
import { inputBaseClasses } from '@mui/material/InputBase';
|
|
4
|
+
import { alpha, styled } from '@mui/material/styles';
|
|
5
5
|
import { getCardFieldsetBackgroundColor } from '../../../utils';
|
|
6
6
|
|
|
7
7
|
export const SettingsFieldSet = styled(Box)(({ theme }) => ({
|
|
@@ -28,6 +28,7 @@ const slippageControlSelected = (theme: Theme) => ({
|
|
|
28
28
|
interface SlippageDefaultProps {
|
|
29
29
|
selected?: boolean;
|
|
30
30
|
}
|
|
31
|
+
|
|
31
32
|
export const SlippageDefaultButton = styled(ButtonBase)<SlippageDefaultProps>(({
|
|
32
33
|
theme,
|
|
33
34
|
selected,
|