@lifi/widget 3.29.1 → 3.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/esm/AppProvider.d.ts +0 -1
- package/dist/esm/AppProvider.js +1 -1
- package/dist/esm/AppProvider.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInput.d.ts +0 -9
- package/dist/esm/components/AmountInput/AmountInput.js +1 -1
- package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +0 -1
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.js +1 -6
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.d.ts +1 -1
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +3 -2
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.d.ts +1 -7
- package/dist/esm/components/AmountInput/PriceFormHelperText.js +4 -3
- package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
- package/dist/esm/components/Avatar/Avatar.d.ts +0 -4
- package/dist/esm/components/Avatar/Avatar.js +1 -1
- package/dist/esm/components/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/Avatar/TokenAvatar.d.ts +0 -15
- package/dist/esm/components/Avatar/TokenAvatar.js +2 -2
- package/dist/esm/components/Avatar/TokenAvatar.js.map +1 -1
- package/dist/esm/components/Card/CardButton.style.d.ts +0 -1
- package/dist/esm/components/Card/CardButton.style.js +0 -7
- package/dist/esm/components/Card/CardButton.style.js.map +1 -1
- package/dist/esm/components/ChainSelect/ChainSelect.js +35 -18
- package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
- package/dist/esm/components/ChainSelect/useChainSelect.d.ts +1 -1
- package/dist/esm/components/ChainSelect/useChainSelect.js +3 -3
- package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
- package/dist/esm/components/Chains/AllChainsAvatar.d.ts +7 -0
- package/dist/esm/components/Chains/AllChainsAvatar.js +77 -0
- package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -0
- package/dist/esm/components/Chains/ChainList.d.ts +2 -1
- package/dist/esm/components/Chains/ChainList.js +2 -2
- package/dist/esm/components/Chains/ChainList.js.map +1 -1
- package/dist/esm/components/Chains/ChainSearchInput.js +2 -2
- package/dist/esm/components/Chains/ChainSearchInput.js.map +1 -1
- package/dist/esm/components/Chains/SelectChainContent.js +1 -1
- package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
- package/dist/esm/components/Chains/VirtualizedChainList.d.ts +2 -1
- package/dist/esm/components/Chains/VirtualizedChainList.js +42 -10
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
- package/dist/esm/components/FeeBreakdownTooltip.d.ts +2 -3
- package/dist/esm/components/FeeBreakdownTooltip.js +1 -1
- package/dist/esm/components/FeeBreakdownTooltip.js.map +1 -1
- package/dist/esm/components/Header/Header.d.ts +1 -2
- package/dist/esm/components/Header/Header.js +1 -1
- package/dist/esm/components/Header/Header.js.map +1 -1
- package/dist/esm/components/Header/WalletHeader.d.ts +0 -1
- package/dist/esm/components/Header/WalletHeader.js +1 -1
- package/dist/esm/components/Header/WalletHeader.js.map +1 -1
- package/dist/esm/components/RouteCard/RouteCardEssentials.js +1 -1
- package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
- package/dist/esm/components/StepActions/StepActions.d.ts +1 -10
- package/dist/esm/components/StepActions/StepActions.js +6 -6
- package/dist/esm/components/StepActions/StepActions.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.style.d.ts +0 -1
- package/dist/esm/components/Tabs/Tabs.style.js +1 -1
- package/dist/esm/components/Tabs/Tabs.style.js.map +1 -1
- package/dist/esm/components/Timer/TimerContent.js +1 -2
- package/dist/esm/components/Timer/TimerContent.js.map +1 -1
- package/dist/esm/components/Token/Token.d.ts +0 -2
- package/dist/esm/components/Token/Token.js +2 -2
- package/dist/esm/components/Token/Token.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheet.d.ts +1 -5
- package/dist/esm/components/TokenList/TokenDetailsSheet.js +4 -2
- package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +2 -2
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
- package/dist/esm/components/TokenList/TokenList.js +11 -53
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.d.ts +1 -4
- package/dist/esm/components/TokenList/TokenListItem.js +30 -26
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/components/TokenList/VirtualizedTokenList.js +56 -37
- package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/dist/esm/components/TokenList/types.d.ts +8 -11
- package/dist/esm/components/TokenList/useTokenSelect.d.ts +0 -4
- package/dist/esm/components/TokenList/useTokenSelect.js +3 -4
- package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
- package/dist/esm/components/TokenRate/TokenRate.js +1 -3
- package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
- package/dist/esm/components/TransactionDetails.js +2 -2
- package/dist/esm/components/TransactionDetails.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/timer/time.d.ts +0 -8
- package/dist/esm/hooks/timer/time.js.map +1 -1
- package/dist/esm/hooks/timer/useTimer.d.ts +3 -2
- package/dist/esm/hooks/useAccountsBalancesData.d.ts +6 -0
- package/dist/esm/hooks/useAccountsBalancesData.js +64 -0
- package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -0
- package/dist/esm/hooks/useAvailableChains.d.ts +2 -1
- package/dist/esm/hooks/useChain.d.ts +1 -1
- package/dist/esm/hooks/useChains.d.ts +1 -1
- package/dist/esm/hooks/useExplorer.d.ts +2 -1
- package/dist/esm/hooks/useFilteredByTokenBalances.d.ts +9 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.js +78 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -0
- package/dist/esm/hooks/useListHeight.d.ts +0 -3
- package/dist/esm/hooks/useListHeight.js +2 -3
- package/dist/esm/hooks/useListHeight.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +2 -2
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useToAddressAutoPopulate.d.ts +2 -1
- package/dist/esm/hooks/useToken.d.ts +2 -2
- package/dist/esm/hooks/useToken.js +13 -10
- package/dist/esm/hooks/useToken.js.map +1 -1
- package/dist/esm/hooks/useTokenAddressBalance.d.ts +3 -3
- package/dist/esm/hooks/useTokenAddressBalance.js +10 -14
- package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
- package/dist/esm/hooks/useTokenBalances.d.ts +6 -9
- package/dist/esm/hooks/useTokenBalances.js +57 -72
- package/dist/esm/hooks/useTokenBalances.js.map +1 -1
- package/dist/esm/hooks/useTokenBalancesQueries.d.ts +11 -0
- package/dist/esm/hooks/useTokenBalancesQueries.js +74 -0
- package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -0
- package/dist/esm/hooks/useTokenSearch.js +3 -3
- package/dist/esm/hooks/useTokenSearch.js.map +1 -1
- package/dist/esm/hooks/useTokens.d.ts +6 -6
- package/dist/esm/hooks/useTokens.js +98 -69
- package/dist/esm/hooks/useTokens.js.map +1 -1
- package/dist/esm/i18n/bn.json +3 -3
- package/dist/esm/i18n/de.json +3 -3
- package/dist/esm/i18n/en.json +3 -3
- package/dist/esm/i18n/es.json +3 -3
- package/dist/esm/i18n/fr.json +3 -3
- package/dist/esm/i18n/hi.json +3 -3
- package/dist/esm/i18n/id.json +3 -3
- package/dist/esm/i18n/it.json +3 -3
- package/dist/esm/i18n/ja.json +3 -3
- package/dist/esm/i18n/ko.json +3 -3
- package/dist/esm/i18n/pl.json +3 -3
- package/dist/esm/i18n/pt.json +5 -5
- package/dist/esm/i18n/th.json +3 -3
- package/dist/esm/i18n/tr.json +3 -3
- package/dist/esm/i18n/uk.json +3 -3
- package/dist/esm/i18n/vi.json +3 -3
- package/dist/esm/i18n/zh.json +3 -3
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +6 -1
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +2 -4
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +27 -17
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
- package/dist/esm/pages/TransactionPage/RouteTracker.d.ts +2 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.d.ts +0 -5
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +1 -1
- package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
- package/dist/esm/providers/I18nProvider/types.d.ts +4 -3
- package/dist/esm/providers/WalletProvider/EVMProvider.d.ts +0 -1
- package/dist/esm/providers/WalletProvider/EVMProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/EVMProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SVMProvider.d.ts +0 -1
- package/dist/esm/providers/WalletProvider/SVMProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/SVMProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/SuiProvider.d.ts +0 -1
- package/dist/esm/providers/WalletProvider/SuiProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/SuiProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.d.ts +0 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +1 -1
- package/dist/esm/providers/WalletProvider/WalletProvider.d.ts +0 -1
- package/dist/esm/providers/WalletProvider/WalletProvider.js +1 -1
- package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
- package/dist/esm/stores/bookmarks/BookmarkStore.d.ts +1 -2
- package/dist/esm/stores/bookmarks/BookmarkStore.js +1 -1
- package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.d.ts +0 -5
- package/dist/esm/stores/chains/ChainOrderStore.js +2 -2
- package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
- package/dist/esm/stores/chains/createChainOrderStore.d.ts +3 -2
- package/dist/esm/stores/chains/createChainOrderStore.js +13 -8
- package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
- package/dist/esm/stores/chains/types.d.ts +4 -1
- package/dist/esm/stores/chains/useChainOrder.js +5 -1
- package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
- package/dist/esm/stores/header/types.d.ts +2 -1
- package/dist/esm/stores/header/useHeaderStore.d.ts +1 -4
- package/dist/esm/stores/header/useHeaderStore.js +3 -3
- package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
- package/dist/esm/stores/inputMode/useInputModeStore.d.ts +1 -1
- package/dist/esm/stores/routes/RouteExecutionStore.d.ts +2 -2
- package/dist/esm/stores/routes/RouteExecutionStore.js +1 -1
- package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
- package/dist/esm/stores/settings/types.d.ts +3 -3
- package/dist/esm/stores/settings/types.js.map +1 -1
- package/dist/esm/stores/settings/useSettingsStore.d.ts +1 -2
- package/dist/esm/stores/settings/useSettingsStore.js +1 -1
- package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.d.ts +1 -4
- package/dist/esm/stores/settings/useSplitSubvariantStore.js +3 -3
- package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
- package/dist/esm/types/events.d.ts +0 -4
- package/dist/esm/types/events.js +0 -4
- package/dist/esm/types/events.js.map +1 -1
- package/dist/esm/types/token.d.ts +7 -2
- package/dist/esm/utils/chainType.d.ts +1 -0
- package/dist/esm/utils/chainType.js +2 -0
- package/dist/esm/utils/chainType.js.map +1 -1
- package/dist/esm/utils/fees.d.ts +1 -4
- package/dist/esm/utils/fees.js +3 -3
- package/dist/esm/utils/fees.js.map +1 -1
- package/dist/esm/utils/format.js +1 -1
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/navigationRoutes.d.ts +2 -1
- package/dist/esm/utils/token.d.ts +8 -0
- package/dist/esm/utils/token.js +29 -0
- package/dist/esm/utils/token.js.map +1 -0
- package/dist/esm/utils/tokenList.d.ts +9 -0
- package/dist/esm/utils/tokenList.js +106 -0
- package/dist/esm/utils/tokenList.js.map +1 -0
- package/package.json +10 -10
- package/package.json.tmp +9 -9
- package/src/AppProvider.tsx +1 -1
- package/src/components/AmountInput/AmountInput.tsx +1 -1
- package/src/components/AmountInput/AmountInputAdornment.style.tsx +1 -7
- package/src/components/AmountInput/AmountInputEndAdornment.tsx +3 -2
- package/src/components/AmountInput/PriceFormHelperText.tsx +4 -3
- package/src/components/Avatar/Avatar.tsx +1 -1
- package/src/components/Avatar/TokenAvatar.tsx +2 -2
- package/src/components/Card/CardButton.style.tsx +0 -8
- package/src/components/ChainSelect/ChainSelect.tsx +112 -40
- package/src/components/ChainSelect/useChainSelect.ts +3 -3
- package/src/components/Chains/AllChainsAvatar.tsx +113 -0
- package/src/components/Chains/ChainList.tsx +3 -0
- package/src/components/Chains/ChainSearchInput.tsx +2 -2
- package/src/components/Chains/SelectChainContent.tsx +1 -0
- package/src/components/Chains/VirtualizedChainList.tsx +80 -12
- package/src/components/FeeBreakdownTooltip.tsx +2 -5
- package/src/components/Header/Header.tsx +1 -1
- package/src/components/Header/WalletHeader.tsx +1 -1
- package/src/components/RouteCard/RouteCardEssentials.tsx +1 -1
- package/src/components/SendToWallet/SendToWalletButton.tsx +0 -1
- package/src/components/StepActions/StepActions.tsx +6 -6
- package/src/components/Tabs/Tabs.style.tsx +1 -1
- package/src/components/Timer/TimerContent.tsx +1 -2
- package/src/components/Token/Token.tsx +2 -2
- package/src/components/TokenList/TokenDetailsSheet.tsx +4 -9
- package/src/components/TokenList/TokenDetailsSheetContent.tsx +2 -6
- package/src/components/TokenList/TokenList.tsx +57 -129
- package/src/components/TokenList/TokenListItem.tsx +177 -154
- package/src/components/TokenList/VirtualizedTokenList.tsx +88 -48
- package/src/components/TokenList/types.ts +15 -11
- package/src/components/TokenList/useTokenSelect.ts +3 -9
- package/src/components/TokenRate/TokenRate.tsx +0 -1
- package/src/components/TransactionDetails.tsx +2 -3
- package/src/config/version.ts +1 -1
- package/src/hooks/timer/time.ts +0 -10
- package/src/hooks/timer/useTimer.ts +2 -2
- package/src/hooks/useAccountsBalancesData.ts +101 -0
- package/src/hooks/useAvailableChains.ts +1 -1
- package/src/hooks/useExplorer.ts +1 -1
- package/src/hooks/useFilteredByTokenBalances.ts +130 -0
- package/src/hooks/useListHeight.ts +2 -3
- package/src/hooks/useRoutes.ts +4 -2
- package/src/hooks/useToAddressAutoPopulate.ts +1 -1
- package/src/hooks/useToken.ts +31 -13
- package/src/hooks/useTokenAddressBalance.ts +15 -20
- package/src/hooks/useTokenBalances.ts +81 -80
- package/src/hooks/useTokenBalancesQueries.ts +94 -0
- package/src/hooks/useTokenSearch.ts +4 -7
- package/src/hooks/useTokens.ts +153 -87
- package/src/i18n/bn.json +3 -3
- package/src/i18n/de.json +3 -3
- package/src/i18n/en.json +3 -3
- package/src/i18n/es.json +3 -3
- package/src/i18n/fr.json +3 -3
- package/src/i18n/hi.json +3 -3
- package/src/i18n/id.json +3 -3
- package/src/i18n/it.json +3 -3
- package/src/i18n/ja.json +3 -3
- package/src/i18n/ko.json +3 -3
- package/src/i18n/pl.json +3 -3
- package/src/i18n/pt.json +5 -5
- package/src/i18n/th.json +3 -3
- package/src/i18n/tr.json +3 -3
- package/src/i18n/uk.json +3 -3
- package/src/i18n/vi.json +3 -3
- package/src/i18n/zh.json +3 -3
- package/src/pages/SelectTokenPage/SearchTokenInput.tsx +5 -0
- package/src/pages/SelectTokenPage/SelectTokenPage.tsx +7 -13
- package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +0 -1
- package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +33 -30
- package/src/pages/TransactionPage/RouteTracker.tsx +1 -1
- package/src/pages/TransactionPage/StatusBottomSheet.tsx +5 -3
- package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
- package/src/providers/I18nProvider/types.ts +3 -3
- package/src/providers/WalletProvider/EVMProvider.tsx +1 -1
- package/src/providers/WalletProvider/SVMProvider.tsx +1 -1
- package/src/providers/WalletProvider/SuiProvider.tsx +1 -1
- package/src/providers/WalletProvider/UTXOProvider.tsx +1 -1
- package/src/providers/WalletProvider/WalletProvider.tsx +1 -1
- package/src/stores/bookmarks/BookmarkStore.tsx +1 -1
- package/src/stores/chains/ChainOrderStore.tsx +3 -7
- package/src/stores/chains/createChainOrderStore.ts +17 -8
- package/src/stores/chains/types.ts +3 -1
- package/src/stores/chains/useChainOrder.ts +5 -1
- package/src/stores/header/types.ts +1 -1
- package/src/stores/header/useHeaderStore.tsx +3 -3
- package/src/stores/inputMode/useInputModeStore.ts +1 -1
- package/src/stores/routes/RouteExecutionStore.tsx +4 -3
- package/src/stores/settings/types.ts +2 -6
- package/src/stores/settings/useSettingsStore.ts +1 -1
- package/src/stores/settings/useSplitSubvariantStore.tsx +5 -4
- package/src/types/events.ts +0 -4
- package/src/types/token.ts +11 -2
- package/src/utils/chainType.ts +2 -0
- package/src/utils/fees.ts +3 -3
- package/src/utils/format.ts +2 -1
- package/src/utils/navigationRoutes.ts +1 -1
- package/src/utils/token.ts +67 -0
- package/src/utils/tokenList.ts +172 -0
- package/dist/esm/AppDrawer.style.d.ts +0 -1
- package/dist/esm/AppDrawer.style.js +0 -12
- package/dist/esm/AppDrawer.style.js.map +0 -1
- package/dist/esm/components/Select.d.ts +0 -3
- package/dist/esm/components/Select.js +0 -35
- package/dist/esm/components/Select.js.map +0 -1
- package/dist/esm/components/StepActions/StepFees.d.ts +0 -5
- package/dist/esm/components/StepActions/StepFees.js +0 -32
- package/dist/esm/components/StepActions/StepFees.js.map +0 -1
- package/dist/esm/components/TokenList/utils.d.ts +0 -2
- package/dist/esm/components/TokenList/utils.js +0 -35
- package/dist/esm/components/TokenList/utils.js.map +0 -1
- package/dist/esm/pages/MainPage/MainPage.style.d.ts +0 -1
- package/dist/esm/pages/MainPage/MainPage.style.js +0 -8
- package/dist/esm/pages/MainPage/MainPage.style.js.map +0 -1
- package/dist/esm/pages/SelectNativeTokenPage.d.ts +0 -2
- package/dist/esm/pages/SelectNativeTokenPage.js +0 -23
- package/dist/esm/pages/SelectNativeTokenPage.js.map +0 -1
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.style.d.ts +0 -1
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.style.js +0 -6
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.style.js.map +0 -1
- package/dist/esm/pages/SelectTokenPage/types.d.ts +0 -4
- package/dist/esm/pages/SelectTokenPage/types.js +0 -6
- package/dist/esm/pages/SelectTokenPage/types.js.map +0 -1
- package/dist/esm/providers/WidgetProvider/utils.d.ts +0 -5
- package/dist/esm/providers/WidgetProvider/utils.js +0 -17
- package/dist/esm/providers/WidgetProvider/utils.js.map +0 -1
- package/dist/esm/stores/form/useFieldController.d.ts +0 -11
- package/dist/esm/stores/form/useFieldController.js +0 -20
- package/dist/esm/stores/form/useFieldController.js.map +0 -1
- package/dist/esm/stores/form/useValidation.d.ts +0 -2
- package/dist/esm/stores/form/useValidation.js +0 -14
- package/dist/esm/stores/form/useValidation.js.map +0 -1
- package/dist/esm/stores/form/useValidationActions.d.ts +0 -2
- package/dist/esm/stores/form/useValidationActions.js +0 -10
- package/dist/esm/stores/form/useValidationActions.js.map +0 -1
- package/src/AppDrawer.style.tsx +0 -12
- package/src/components/Select.tsx +0 -42
- package/src/components/StepActions/StepFees.tsx +0 -49
- package/src/components/TokenList/utils.ts +0 -42
- package/src/pages/MainPage/MainPage.style.tsx +0 -8
- package/src/pages/SelectNativeTokenPage.tsx +0 -47
- package/src/pages/SelectTokenPage/SearchTokenInput.style.tsx +0 -6
- package/src/pages/SelectTokenPage/types.ts +0 -4
- package/src/providers/WidgetProvider/utils.ts +0 -26
- package/src/stores/form/useFieldController.ts +0 -31
- package/src/stores/form/useValidation.ts +0 -15
- package/src/stores/form/useValidationActions.ts +0 -12
|
@@ -4,8 +4,13 @@ import { createWithEqualityFn } from 'zustand/traditional'
|
|
|
4
4
|
import type { PersistStoreProps } from '../types.js'
|
|
5
5
|
import type { ChainOrderState } from './types.js'
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
export const
|
|
7
|
+
// (10 tiles: 9 + 1 for "All chains")
|
|
8
|
+
export const maxGridItemsToShow = 10
|
|
9
|
+
export const maxChainsToShow = maxGridItemsToShow - 1
|
|
10
|
+
// If there are more than maxChainsToShow chains to show,
|
|
11
|
+
// -1 tile to show a button "+ N" more chains
|
|
12
|
+
export const maxChainsToOrder = maxChainsToShow - 1
|
|
13
|
+
|
|
9
14
|
const defaultChainState = {
|
|
10
15
|
from: [],
|
|
11
16
|
to: [],
|
|
@@ -16,6 +21,7 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
|
|
|
16
21
|
persist(
|
|
17
22
|
(set, get) => ({
|
|
18
23
|
chainOrder: defaultChainState,
|
|
24
|
+
isAllNetworks: true,
|
|
19
25
|
availableChains: defaultChainState,
|
|
20
26
|
pinnedChains: [],
|
|
21
27
|
initializeChains: (chainIds, type) => {
|
|
@@ -53,7 +59,7 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
|
|
|
53
59
|
},
|
|
54
60
|
}
|
|
55
61
|
})
|
|
56
|
-
return get().chainOrder[type]
|
|
62
|
+
return get().chainOrder[type].slice(0, maxChainsToOrder)
|
|
57
63
|
},
|
|
58
64
|
setChain: (chainId, type) => {
|
|
59
65
|
const state = get()
|
|
@@ -64,11 +70,10 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
|
|
|
64
70
|
return
|
|
65
71
|
}
|
|
66
72
|
set((state: ChainOrderState) => {
|
|
67
|
-
const chainOrder = state.chainOrder[type].slice(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
73
|
+
const chainOrder = [chainId, ...state.chainOrder[type]].slice(
|
|
74
|
+
0,
|
|
75
|
+
maxChainsToOrder
|
|
76
|
+
)
|
|
72
77
|
return {
|
|
73
78
|
chainOrder: {
|
|
74
79
|
...state.chainOrder,
|
|
@@ -77,6 +82,9 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
|
|
|
77
82
|
}
|
|
78
83
|
})
|
|
79
84
|
},
|
|
85
|
+
setIsAllNetworks: (isAllNetworks) => {
|
|
86
|
+
set({ isAllNetworks })
|
|
87
|
+
},
|
|
80
88
|
setPinnedChain: (chainId) => {
|
|
81
89
|
set((state: ChainOrderState) => {
|
|
82
90
|
const pinnedChains = [...state.pinnedChains]
|
|
@@ -97,6 +105,7 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
|
|
|
97
105
|
version: 2,
|
|
98
106
|
partialize: (state) => ({
|
|
99
107
|
chainOrder: state.chainOrder,
|
|
108
|
+
isAllNetworks: state.isAllNetworks,
|
|
100
109
|
pinnedChains: state.pinnedChains,
|
|
101
110
|
}),
|
|
102
111
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FormType } from '../form/types.js'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
interface ChainOrderProps {
|
|
4
4
|
chainOrder: {
|
|
5
5
|
from: number[]
|
|
6
6
|
to: number[]
|
|
@@ -9,11 +9,13 @@ export interface ChainOrderProps {
|
|
|
9
9
|
from: number[]
|
|
10
10
|
to: number[]
|
|
11
11
|
}
|
|
12
|
+
isAllNetworks: boolean
|
|
12
13
|
pinnedChains: number[]
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export interface ChainOrderState extends ChainOrderProps {
|
|
16
17
|
initializeChains(chainIds: number[], type: FormType): number[]
|
|
17
18
|
setChain(chainId: number, type: FormType): void
|
|
19
|
+
setIsAllNetworks(isAllNetworks: boolean): void
|
|
18
20
|
setPinnedChain(chainId: number): void
|
|
19
21
|
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { FormType } from '../form/types.js'
|
|
2
2
|
import { useChainOrderStore } from './ChainOrderStore.js'
|
|
3
|
+
import { maxChainsToOrder } from './createChainOrderStore.js'
|
|
3
4
|
|
|
4
5
|
export const useChainOrder = (
|
|
5
6
|
type: FormType
|
|
6
7
|
): [number[], (chainId: number, type: FormType) => void] => {
|
|
7
|
-
return useChainOrderStore((state) => [
|
|
8
|
+
return useChainOrderStore((state) => [
|
|
9
|
+
state.chainOrder[type].slice(0, maxChainsToOrder),
|
|
10
|
+
state.setChain,
|
|
11
|
+
])
|
|
8
12
|
}
|
|
@@ -3,7 +3,7 @@ import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
|
|
|
3
3
|
|
|
4
4
|
export type HeaderStore = UseBoundStoreWithEqualityFn<StoreApi<HeaderState>>
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface HeaderStateBase {
|
|
7
7
|
element?: React.ReactNode | null
|
|
8
8
|
title?: string
|
|
9
9
|
headerHeight: number
|
|
@@ -4,7 +4,7 @@ import { createWithEqualityFn } from 'zustand/traditional'
|
|
|
4
4
|
import type { PersistStoreProviderProps } from '../types.js'
|
|
5
5
|
import type { HeaderState, HeaderStore } from './types.js'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const HeaderStoreContext = createContext<HeaderStore | null>(null)
|
|
8
8
|
|
|
9
9
|
export function HeaderStoreProvider({ children }: PersistStoreProviderProps) {
|
|
10
10
|
const storeRef = useRef<HeaderStore>(null)
|
|
@@ -18,7 +18,7 @@ export function HeaderStoreProvider({ children }: PersistStoreProviderProps) {
|
|
|
18
18
|
)
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
function useHeaderStoreContext() {
|
|
22
22
|
const useStore = useContext(HeaderStoreContext)
|
|
23
23
|
if (!useStore) {
|
|
24
24
|
throw new Error(
|
|
@@ -54,7 +54,7 @@ export function useSetHeaderHeight() {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
const createHeaderStore = () =>
|
|
58
58
|
createWithEqualityFn<HeaderState>(
|
|
59
59
|
(set, get) => ({
|
|
60
60
|
headerHeight: 108, // a basic default height
|
|
@@ -6,12 +6,13 @@ import type { PersistStoreProviderProps } from '../types.js'
|
|
|
6
6
|
import { createRouteExecutionStore } from './createRouteExecutionStore.js'
|
|
7
7
|
import type { RouteExecutionState } from './types.js'
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
type RouteExecutionStore = UseBoundStoreWithEqualityFn<
|
|
10
10
|
StoreApi<RouteExecutionState>
|
|
11
11
|
>
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const RouteExecutionStoreContext = createContext<RouteExecutionStore | null>(
|
|
14
|
+
null
|
|
15
|
+
)
|
|
15
16
|
|
|
16
17
|
export function RouteExecutionStoreProvider({
|
|
17
18
|
children,
|
|
@@ -9,11 +9,7 @@ export type ValueSetter<S> = <K extends keyof S>(
|
|
|
9
9
|
value: S[Extract<K, string>]
|
|
10
10
|
) => void
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export type ValuesSetter<S> = <K extends keyof S>(
|
|
15
|
-
values: Record<K, S[Extract<K, string>]>
|
|
16
|
-
) => void
|
|
12
|
+
type ValueGetter<S> = <K extends keyof S>(key: K) => S[K]
|
|
17
13
|
|
|
18
14
|
export const SettingsToolTypes = ['Bridges', 'Exchanges'] as const
|
|
19
15
|
export type SettingsToolType = (typeof SettingsToolTypes)[number]
|
|
@@ -48,7 +44,7 @@ export interface SettingsActions {
|
|
|
48
44
|
|
|
49
45
|
export type SettingsState = SettingsProps & SettingsActions
|
|
50
46
|
|
|
51
|
-
|
|
47
|
+
interface SendToWalletState {
|
|
52
48
|
showSendToWallet: boolean
|
|
53
49
|
}
|
|
54
50
|
|
|
@@ -8,8 +8,9 @@ import type {
|
|
|
8
8
|
SplitSubvariantStore,
|
|
9
9
|
} from './types.js'
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const SplitSubvariantStoreContext = createContext<SplitSubvariantStore | null>(
|
|
12
|
+
null
|
|
13
|
+
)
|
|
13
14
|
|
|
14
15
|
const shouldRecreateStore = (
|
|
15
16
|
store: SplitSubvariantStore,
|
|
@@ -34,7 +35,7 @@ export function SplitSubvariantStoreProvider({
|
|
|
34
35
|
)
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
function useSplitSubvariantStoreContext() {
|
|
38
39
|
const useStore = useContext(SplitSubvariantStoreContext)
|
|
39
40
|
if (!useStore) {
|
|
40
41
|
throw new Error(
|
|
@@ -51,7 +52,7 @@ export function useSplitSubvariantStore<T>(
|
|
|
51
52
|
return useStore(useShallow(selector))
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
const createSplitSubvariantStore = ({ state }: SplitSubvariantProps) =>
|
|
55
56
|
createWithEqualityFn<SplitSubvariantState>(
|
|
56
57
|
(set) => ({
|
|
57
58
|
state,
|
package/src/types/events.ts
CHANGED
|
@@ -20,10 +20,6 @@ export enum WidgetEvent {
|
|
|
20
20
|
* @deprecated Use `PageEntered` event instead.
|
|
21
21
|
*/
|
|
22
22
|
ReviewTransactionPageEntered = 'reviewTransactionPageEntered',
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated use useWalletManagementEvents hook.
|
|
25
|
-
*/
|
|
26
|
-
WalletConnected = 'walletConnected',
|
|
27
23
|
WidgetExpanded = 'widgetExpanded',
|
|
28
24
|
PageEntered = 'pageEntered',
|
|
29
25
|
FormFieldChanged = 'formFieldChanged',
|
package/src/types/token.ts
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
TokenAmount as SDKTokenAmount,
|
|
3
|
+
TokenAmountExtended as SDKTokenAmountExtended,
|
|
4
|
+
} from '@lifi/sdk'
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
interface TokenFlags {
|
|
4
7
|
featured?: boolean
|
|
5
8
|
popular?: boolean
|
|
6
9
|
}
|
|
10
|
+
|
|
11
|
+
export interface TokenAmount extends SDKTokenAmount, TokenFlags {}
|
|
12
|
+
|
|
13
|
+
export interface TokenAmountExtended
|
|
14
|
+
extends SDKTokenAmountExtended,
|
|
15
|
+
TokenFlags {}
|
package/src/utils/chainType.ts
CHANGED
|
@@ -8,6 +8,7 @@ const chainTypeAddressValidation = {
|
|
|
8
8
|
[ChainType.SVM]: isSVMAddress,
|
|
9
9
|
[ChainType.MVM]: isValidSuiAddress,
|
|
10
10
|
[ChainType.UTXO]: isUTXOAddress,
|
|
11
|
+
[ChainType.TVM]: () => false,
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export const getChainTypeFromAddress = (
|
|
@@ -27,4 +28,5 @@ export const defaultChainIdsByType = {
|
|
|
27
28
|
[ChainType.SVM]: ChainId.SOL,
|
|
28
29
|
[ChainType.UTXO]: ChainId.BTC,
|
|
29
30
|
[ChainType.MVM]: ChainId.SUI,
|
|
31
|
+
[ChainType.TVM]: ChainId.TRN,
|
|
30
32
|
}
|
package/src/utils/fees.ts
CHANGED
|
@@ -31,7 +31,7 @@ export const getAccumulatedFeeCostsBreakdown = (
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
const getGasCostsBreakdown = (route: RouteExtended): FeesBreakdown[] => {
|
|
35
35
|
return Array.from(
|
|
36
36
|
route.steps
|
|
37
37
|
.reduce((groupedGasCosts, step) => {
|
|
@@ -62,7 +62,7 @@ export const getGasCostsBreakdown = (route: RouteExtended): FeesBreakdown[] => {
|
|
|
62
62
|
)
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
const getFeeCostsBreakdown = (
|
|
66
66
|
route: RouteExtended,
|
|
67
67
|
included?: boolean
|
|
68
68
|
): FeesBreakdown[] => {
|
|
@@ -101,7 +101,7 @@ export const getFeeCostsBreakdown = (
|
|
|
101
101
|
)
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
const getStepFeeCostsBreakdown = (
|
|
105
105
|
feeCosts: FeeCost[] | GasCost[]
|
|
106
106
|
): FeesBreakdown => {
|
|
107
107
|
const { token } = feeCosts[0]
|
package/src/utils/format.ts
CHANGED
|
@@ -33,7 +33,7 @@ export function formatSlippage(
|
|
|
33
33
|
if (Number.isNaN(parsedSlippage)) {
|
|
34
34
|
return defaultValue
|
|
35
35
|
}
|
|
36
|
-
if (parsedSlippage
|
|
36
|
+
if (parsedSlippage >= 100) {
|
|
37
37
|
return '100'
|
|
38
38
|
}
|
|
39
39
|
if (parsedSlippage < 0) {
|
|
@@ -73,6 +73,7 @@ export function formatInputAmount(
|
|
|
73
73
|
}
|
|
74
74
|
integer = integer.replace(/^0+|-/, '')
|
|
75
75
|
fraction = fraction.replace(/(0+)$/, '')
|
|
76
|
+
|
|
76
77
|
return `${integer || (fraction ? '0' : '')}${fraction ? `.${fraction}` : ''}`
|
|
77
78
|
}
|
|
78
79
|
|
|
@@ -65,7 +65,7 @@ export const backButtonRoutes = [
|
|
|
65
65
|
navigationRoutes.configuredWallets,
|
|
66
66
|
]
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
type NavigationRouteTypeKeys = keyof typeof navigationRoutes
|
|
69
69
|
|
|
70
70
|
export type NavigationRouteType =
|
|
71
71
|
(typeof navigationRoutes)[NavigationRouteTypeKeys]
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { BaseToken, TokenExtended } from '@lifi/sdk'
|
|
2
|
+
import type { FormType } from '../stores/form/types.js'
|
|
3
|
+
import type { WidgetChains, WidgetTokens } from '../types/widget.js'
|
|
4
|
+
import {
|
|
5
|
+
getConfigItemSets,
|
|
6
|
+
isFormItemAllowed,
|
|
7
|
+
isItemAllowedForSets,
|
|
8
|
+
} from './item.js'
|
|
9
|
+
|
|
10
|
+
export const filterAllowedTokens = (
|
|
11
|
+
dataTokens: { [chainId: number]: TokenExtended[] } | undefined,
|
|
12
|
+
configTokens?: WidgetTokens,
|
|
13
|
+
chainsConfig?: WidgetChains,
|
|
14
|
+
formType?: FormType
|
|
15
|
+
): { [chainId: number]: TokenExtended[] } | undefined => {
|
|
16
|
+
if (!dataTokens) {
|
|
17
|
+
return
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const includedTokens = configTokens?.include || []
|
|
21
|
+
const allChainIds = Array.from(
|
|
22
|
+
new Set([
|
|
23
|
+
...includedTokens.map((t) => t.chainId),
|
|
24
|
+
...Object.keys(dataTokens),
|
|
25
|
+
])
|
|
26
|
+
).map((chainId) => Number(chainId))
|
|
27
|
+
|
|
28
|
+
const configChainIdsSet = getConfigItemSets(
|
|
29
|
+
chainsConfig,
|
|
30
|
+
(chainIds: number[]) => new Set(chainIds),
|
|
31
|
+
formType
|
|
32
|
+
)
|
|
33
|
+
const allowedChainIds = configChainIdsSet
|
|
34
|
+
? allChainIds.filter((chainId) =>
|
|
35
|
+
isItemAllowedForSets(chainId, configChainIdsSet)
|
|
36
|
+
)
|
|
37
|
+
: allChainIds
|
|
38
|
+
|
|
39
|
+
const allowedTokensByChain: { [chainId: number]: TokenExtended[] } = {}
|
|
40
|
+
for (const chainId of allowedChainIds) {
|
|
41
|
+
const chainTokens = [
|
|
42
|
+
...dataTokens[chainId],
|
|
43
|
+
...includedTokens.filter((t) => Number(t.chainId) === chainId),
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
const allowedAddresses = getConfigItemSets(
|
|
47
|
+
configTokens,
|
|
48
|
+
(tokens: BaseToken[]) =>
|
|
49
|
+
new Set(
|
|
50
|
+
tokens
|
|
51
|
+
.filter((t) => Number(t.chainId) === chainId)
|
|
52
|
+
.map((t) => t.address.toLowerCase())
|
|
53
|
+
),
|
|
54
|
+
formType
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
const filtered = chainTokens.filter((token) =>
|
|
58
|
+
isFormItemAllowed(token, allowedAddresses, formType, (t) =>
|
|
59
|
+
t.address.toLowerCase()
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
allowedTokensByChain[chainId] = filtered
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return allowedTokensByChain
|
|
67
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { TokenExtended, WalletTokenExtended } from '@lifi/sdk'
|
|
2
|
+
import { formatUnits } from 'viem'
|
|
3
|
+
import type { TokenAmount, TokenAmountExtended } from '../types/token.js'
|
|
4
|
+
import type { WidgetTokens } from '../types/widget.js'
|
|
5
|
+
|
|
6
|
+
const sortByBalances = (a: TokenAmount, b: TokenAmount) =>
|
|
7
|
+
Number.parseFloat(formatUnits(b.amount ?? 0n, b.decimals)) *
|
|
8
|
+
Number.parseFloat(b.priceUSD ?? '0') -
|
|
9
|
+
Number.parseFloat(formatUnits(a.amount ?? 0n, a.decimals)) *
|
|
10
|
+
Number.parseFloat(a.priceUSD ?? '0')
|
|
11
|
+
|
|
12
|
+
const sortByVolume = (a: TokenExtended, b: TokenExtended) =>
|
|
13
|
+
(b.volumeUSD24H ?? 0) - (a.volumeUSD24H ?? 0)
|
|
14
|
+
|
|
15
|
+
export const processTokenBalances = (
|
|
16
|
+
isBalanceLoading: boolean,
|
|
17
|
+
isAllNetworks: boolean,
|
|
18
|
+
configTokens?: WidgetTokens,
|
|
19
|
+
selectedChainId?: number,
|
|
20
|
+
tokens?: TokenExtended[],
|
|
21
|
+
tokensWithBalances?: TokenAmount[]
|
|
22
|
+
) => {
|
|
23
|
+
if (isBalanceLoading) {
|
|
24
|
+
if (isAllNetworks) {
|
|
25
|
+
const sortedTokens = [...(tokens ?? [])].sort(sortByVolume)
|
|
26
|
+
return {
|
|
27
|
+
processedTokens: sortedTokens,
|
|
28
|
+
withCategories: false,
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
return processedTypedTokens(
|
|
32
|
+
tokens ?? [],
|
|
33
|
+
[],
|
|
34
|
+
selectedChainId,
|
|
35
|
+
configTokens
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const sortedTokensWithBalances = [...(tokensWithBalances ?? [])].sort(
|
|
41
|
+
sortByBalances
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
const tokensWithBalancesSet = new Set(
|
|
45
|
+
sortedTokensWithBalances.map(
|
|
46
|
+
(token) => `${token.chainId}-${token.address.toLowerCase()}`
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
const tokensWithoutBalances =
|
|
50
|
+
tokens
|
|
51
|
+
?.filter((token) => {
|
|
52
|
+
const tokenKey = `${token.chainId}-${token.address.toLowerCase()}`
|
|
53
|
+
return !tokensWithBalancesSet.has(tokenKey)
|
|
54
|
+
})
|
|
55
|
+
.sort(sortByVolume) ?? []
|
|
56
|
+
|
|
57
|
+
if (isAllNetworks) {
|
|
58
|
+
return {
|
|
59
|
+
processedTokens: [...sortedTokensWithBalances, ...tokensWithoutBalances],
|
|
60
|
+
withCategories: false,
|
|
61
|
+
}
|
|
62
|
+
} else {
|
|
63
|
+
return processedTypedTokens(
|
|
64
|
+
tokensWithoutBalances,
|
|
65
|
+
sortedTokensWithBalances,
|
|
66
|
+
selectedChainId,
|
|
67
|
+
configTokens
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// NB: only for non-all-networks
|
|
73
|
+
const processedTypedTokens = (
|
|
74
|
+
tokens: TokenAmount[],
|
|
75
|
+
tokensWithBalances: TokenAmount[],
|
|
76
|
+
selectedChainId?: number,
|
|
77
|
+
configTokens?: WidgetTokens
|
|
78
|
+
) => {
|
|
79
|
+
const filteredTokensMap = new Map(
|
|
80
|
+
tokens.map((token) => [token.address, token])
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
const featuredTokensFromConfig: TokenAmount[] = []
|
|
84
|
+
const popularTokensFromConfig: TokenAmount[] = []
|
|
85
|
+
|
|
86
|
+
;(['popular', 'featured'] as const).forEach((tokenType) => {
|
|
87
|
+
const typedTokens = configTokens?.[tokenType]?.filter(
|
|
88
|
+
(token) => token.chainId === selectedChainId
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
typedTokens?.forEach((token) => {
|
|
92
|
+
const tokenAmount = { ...token } as TokenAmount
|
|
93
|
+
tokenAmount[tokenType] = true
|
|
94
|
+
|
|
95
|
+
const match = filteredTokensMap.get(token.address)
|
|
96
|
+
if (match?.priceUSD) {
|
|
97
|
+
tokenAmount.priceUSD = match.priceUSD
|
|
98
|
+
}
|
|
99
|
+
if (!token.logoURI && match?.logoURI) {
|
|
100
|
+
tokenAmount.logoURI = match.logoURI
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (tokenType === 'popular') {
|
|
104
|
+
popularTokensFromConfig.push(tokenAmount)
|
|
105
|
+
} else {
|
|
106
|
+
featuredTokensFromConfig.push(tokenAmount)
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
// Filter out config-added tokens from main list
|
|
112
|
+
const configTokenAddresses = new Set(
|
|
113
|
+
[...popularTokensFromConfig, ...featuredTokensFromConfig].map((t) =>
|
|
114
|
+
t.address.toLowerCase()
|
|
115
|
+
)
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
const remainingTokens = tokens.filter(
|
|
119
|
+
(token) => !configTokenAddresses.has(token.address.toLowerCase())
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
const otherTokens: TokenAmount[] = []
|
|
123
|
+
|
|
124
|
+
for (const token of remainingTokens) {
|
|
125
|
+
if (token.featured) {
|
|
126
|
+
featuredTokensFromConfig.push(token)
|
|
127
|
+
} else if (token.popular) {
|
|
128
|
+
popularTokensFromConfig.push(token)
|
|
129
|
+
} else {
|
|
130
|
+
otherTokens.push(token)
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const sortedFeaturedTokens = [...featuredTokensFromConfig].sort(sortByVolume)
|
|
135
|
+
const sortedPopularTokens = [...popularTokensFromConfig].sort(sortByVolume)
|
|
136
|
+
const sortedOtherTokens = [...otherTokens].sort(sortByVolume)
|
|
137
|
+
|
|
138
|
+
return {
|
|
139
|
+
processedTokens: [
|
|
140
|
+
...sortedFeaturedTokens,
|
|
141
|
+
...tokensWithBalances,
|
|
142
|
+
...sortedPopularTokens,
|
|
143
|
+
...sortedOtherTokens,
|
|
144
|
+
],
|
|
145
|
+
withCategories: Boolean(
|
|
146
|
+
featuredTokensFromConfig?.length || popularTokensFromConfig?.length
|
|
147
|
+
),
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export const isSearchMatch = (
|
|
152
|
+
token: TokenExtended | TokenAmountExtended,
|
|
153
|
+
search?: string
|
|
154
|
+
) => {
|
|
155
|
+
if (!search) {
|
|
156
|
+
return true
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const searchLowerCase = search.toLowerCase()
|
|
160
|
+
return (
|
|
161
|
+
token.name?.toLowerCase().includes(searchLowerCase) ||
|
|
162
|
+
token.symbol
|
|
163
|
+
?.replaceAll('₮', 'T')
|
|
164
|
+
.toLowerCase()
|
|
165
|
+
.includes(searchLowerCase) ||
|
|
166
|
+
token.address?.toLowerCase().includes(searchLowerCase)
|
|
167
|
+
)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export const isSupportedToken = (token: WalletTokenExtended) => {
|
|
171
|
+
return token.name && token.symbol && token.priceUSD && token.chainId
|
|
172
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const CloseButtonLayout: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "color" | "children" | "sx" | "style" | "className" | "tabIndex" | "classes" | "size" | "action" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IconButton, styled } from '@mui/material';
|
|
2
|
-
export const CloseButtonLayout = styled(IconButton)(() => ({
|
|
3
|
-
position: 'absolute',
|
|
4
|
-
top: '12px',
|
|
5
|
-
right: '26px',
|
|
6
|
-
zIndex: 1,
|
|
7
|
-
height: '40px',
|
|
8
|
-
width: '40px',
|
|
9
|
-
alignItems: 'center',
|
|
10
|
-
justifyContent: 'center',
|
|
11
|
-
}));
|
|
12
|
-
//# sourceMappingURL=AppDrawer.style.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppDrawer.style.js","sourceRoot":"","sources":["../../src/AppDrawer.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;CACzB,CAAC,CAAC,CAAA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { inputBaseClasses, listItemIconClasses, Select as MuiSelect, outlinedInputClasses, selectClasses, styled, } from '@mui/material';
|
|
2
|
-
export const Select = styled(MuiSelect, {
|
|
3
|
-
shouldForwardProp: (prop) => prop !== 'dense',
|
|
4
|
-
})(({ theme }) => ({
|
|
5
|
-
backgroundColor: theme.vars.palette.common.white,
|
|
6
|
-
[`.${inputBaseClasses.input}`]: {
|
|
7
|
-
padding: theme.spacing(2),
|
|
8
|
-
display: 'flex',
|
|
9
|
-
alignItems: 'center',
|
|
10
|
-
},
|
|
11
|
-
[`.${selectClasses.icon}`]: {
|
|
12
|
-
right: 10,
|
|
13
|
-
color: theme.vars.palette.text.primary,
|
|
14
|
-
},
|
|
15
|
-
[`.${listItemIconClasses.root}`]: {
|
|
16
|
-
minWidth: 38,
|
|
17
|
-
},
|
|
18
|
-
[`.${outlinedInputClasses.notchedOutline}`]: {
|
|
19
|
-
display: 'none',
|
|
20
|
-
},
|
|
21
|
-
...theme.applyStyles('dark', {
|
|
22
|
-
backgroundColor: theme.vars.palette.background.paper,
|
|
23
|
-
}),
|
|
24
|
-
variants: [
|
|
25
|
-
{
|
|
26
|
-
props: ({ dense }) => dense,
|
|
27
|
-
style: {
|
|
28
|
-
[`.${inputBaseClasses.input}`]: {
|
|
29
|
-
padding: theme.spacing(1.625, 2, 1.5, 2),
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
],
|
|
34
|
-
}));
|
|
35
|
-
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,IAAI,SAAS,EACnB,oBAAoB,EACpB,aAAa,EACb,MAAM,GACP,MAAM,eAAe,CAAA;AAEtB,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;IACtC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO;CAC9C,CAAC,CAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;IAChD,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;IACD,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE;QAC1B,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;KACvC;IACD,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE;QAChC,QAAQ,EAAE,EAAE;KACb;IACD,CAAC,IAAI,oBAAoB,CAAC,cAAc,EAAE,CAAC,EAAE;QAC3C,OAAO,EAAE,MAAM;KAChB;IACD,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;QAC3B,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;KACrD,CAAC;IACF,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;YAC3B,KAAK,EAAE;gBACL,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE;oBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;iBACzC;aACF;SACF;KACF;CACF,CAAC,CAAC,CAAA"}
|