@lifi/widget 0.0.0-preview-6cc63bac
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/LICENSE +201 -0
- package/README.md +312 -0
- package/dist/esm/App.d.ts +9 -0
- package/dist/esm/App.d.ts.map +1 -0
- package/dist/esm/App.js +44 -0
- package/dist/esm/App.js.map +1 -0
- package/dist/esm/AppDefault.js +214 -0
- package/dist/esm/AppDefault.js.map +1 -0
- package/dist/esm/AppDrawer.d.ts +12 -0
- package/dist/esm/AppDrawer.d.ts.map +1 -0
- package/dist/esm/AppDrawer.js +63 -0
- package/dist/esm/AppDrawer.js.map +1 -0
- package/dist/esm/AppDrawerContext.js +8 -0
- package/dist/esm/AppDrawerContext.js.map +1 -0
- package/dist/esm/AppLayout.js +33 -0
- package/dist/esm/AppLayout.js.map +1 -0
- package/dist/esm/AppProvider.js +30 -0
- package/dist/esm/AppProvider.js.map +1 -0
- package/dist/esm/components/ActionRow/ActionRow.js +17 -0
- package/dist/esm/components/ActionRow/ActionRow.js.map +1 -0
- package/dist/esm/components/ActionRow/ActionRow.style.js +21 -0
- package/dist/esm/components/ActionRow/ActionRow.style.js.map +1 -0
- package/dist/esm/components/AmountInput/AmountInput.js +117 -0
- package/dist/esm/components/AmountInput/AmountInput.js.map +1 -0
- package/dist/esm/components/AmountInput/AmountInput.style.js +38 -0
- package/dist/esm/components/AmountInput/AmountInput.style.js.map +1 -0
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +64 -0
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -0
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.style.js +21 -0
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.style.js.map +1 -0
- package/dist/esm/components/AmountInput/AmountInputStartAdornment.js +21 -0
- package/dist/esm/components/AmountInput/AmountInputStartAdornment.js.map +1 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.js +98 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.js +28 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.js.map +1 -0
- package/dist/esm/components/AppContainer.js +93 -0
- package/dist/esm/components/AppContainer.js.map +1 -0
- package/dist/esm/components/Avatar/AccountAvatar.js +29 -0
- package/dist/esm/components/Avatar/AccountAvatar.js.map +1 -0
- package/dist/esm/components/Avatar/Avatar.js +47 -0
- package/dist/esm/components/Avatar/Avatar.js.map +1 -0
- package/dist/esm/components/Avatar/Avatar.style.js +57 -0
- package/dist/esm/components/Avatar/Avatar.style.js.map +1 -0
- package/dist/esm/components/Avatar/ChainBadgeContent.js +17 -0
- package/dist/esm/components/Avatar/ChainBadgeContent.js.map +1 -0
- package/dist/esm/components/Avatar/SmallAvatar.js +20 -0
- package/dist/esm/components/Avatar/SmallAvatar.js.map +1 -0
- package/dist/esm/components/Avatar/TokenAvatar.js +65 -0
- package/dist/esm/components/Avatar/TokenAvatar.js.map +1 -0
- package/dist/esm/components/Avatar/utils.js +9 -0
- package/dist/esm/components/Avatar/utils.js.map +1 -0
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js +51 -0
- package/dist/esm/components/BaseTransactionButton/BaseTransactionButton.js.map +1 -0
- package/dist/esm/components/BottomSheet/BottomSheet.js +46 -0
- package/dist/esm/components/BottomSheet/BottomSheet.js.map +1 -0
- package/dist/esm/components/ButtonTertiary.js +21 -0
- package/dist/esm/components/ButtonTertiary.js.map +1 -0
- package/dist/esm/components/Card/Card.js +65 -0
- package/dist/esm/components/Card/Card.js.map +1 -0
- package/dist/esm/components/Card/CardButton.js +13 -0
- package/dist/esm/components/Card/CardButton.js.map +1 -0
- package/dist/esm/components/Card/CardButton.style.js +29 -0
- package/dist/esm/components/Card/CardButton.style.js.map +1 -0
- package/dist/esm/components/Card/CardHeader.js +26 -0
- package/dist/esm/components/Card/CardHeader.js.map +1 -0
- package/dist/esm/components/Card/CardIconButton.js +14 -0
- package/dist/esm/components/Card/CardIconButton.js.map +1 -0
- package/dist/esm/components/Card/CardLabel.js +62 -0
- package/dist/esm/components/Card/CardLabel.js.map +1 -0
- package/dist/esm/components/Card/CardTitle.js +22 -0
- package/dist/esm/components/Card/CardTitle.js.map +1 -0
- package/dist/esm/components/Card/InputCard.js +11 -0
- package/dist/esm/components/Card/InputCard.js.map +1 -0
- package/dist/esm/components/ChainSelect/ChainSelect.js +124 -0
- package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -0
- package/dist/esm/components/ChainSelect/ChainSelect.style.js +62 -0
- package/dist/esm/components/ChainSelect/ChainSelect.style.js.map +1 -0
- package/dist/esm/components/ChainSelect/useChainSelect.js +59 -0
- package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -0
- package/dist/esm/components/Chains/AllChainsAvatar.js +106 -0
- package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -0
- package/dist/esm/components/Chains/ChainList.js +50 -0
- package/dist/esm/components/Chains/ChainList.js.map +1 -0
- package/dist/esm/components/Chains/ChainList.style.js +43 -0
- package/dist/esm/components/Chains/ChainList.style.js.map +1 -0
- package/dist/esm/components/Chains/ChainListItem.js +55 -0
- package/dist/esm/components/Chains/ChainListItem.js.map +1 -0
- package/dist/esm/components/Chains/ChainsExpanded.js +23 -0
- package/dist/esm/components/Chains/ChainsExpanded.js.map +1 -0
- package/dist/esm/components/Chains/ChainsExpanded.style.js +19 -0
- package/dist/esm/components/Chains/ChainsExpanded.style.js.map +1 -0
- package/dist/esm/components/Chains/PinChainButton.js +43 -0
- package/dist/esm/components/Chains/PinChainButton.js.map +1 -0
- package/dist/esm/components/Chains/SelectChainExpansionContent.js +65 -0
- package/dist/esm/components/Chains/SelectChainExpansionContent.js.map +1 -0
- package/dist/esm/components/Chains/SelectChainPageContent.js +60 -0
- package/dist/esm/components/Chains/SelectChainPageContent.js.map +1 -0
- package/dist/esm/components/Chains/VirtualizedChainList.js +143 -0
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -0
- package/dist/esm/components/ContextMenu.js +59 -0
- package/dist/esm/components/ContextMenu.js.map +1 -0
- package/dist/esm/components/ContextMenu.style.js +12 -0
- package/dist/esm/components/ContextMenu.style.js.map +1 -0
- package/dist/esm/components/ContractComponent/ContractComponent.js +14 -0
- package/dist/esm/components/ContractComponent/ContractComponent.js.map +1 -0
- package/dist/esm/components/ContractComponent/ItemPrice.d.ts +12 -0
- package/dist/esm/components/ContractComponent/ItemPrice.d.ts.map +1 -0
- package/dist/esm/components/ContractComponent/ItemPrice.js +29 -0
- package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -0
- package/dist/esm/components/ContractComponent/NFT/NFT.d.ts +7 -0
- package/dist/esm/components/ContractComponent/NFT/NFT.d.ts.map +1 -0
- package/dist/esm/components/ContractComponent/NFT/NFT.js +33 -0
- package/dist/esm/components/ContractComponent/NFT/NFT.js.map +1 -0
- package/dist/esm/components/ContractComponent/NFT/NFT.style.js +12 -0
- package/dist/esm/components/ContractComponent/NFT/NFT.style.js.map +1 -0
- package/dist/esm/components/ContractComponent/NFT/NFTBase.d.ts +7 -0
- package/dist/esm/components/ContractComponent/NFT/NFTBase.d.ts.map +1 -0
- package/dist/esm/components/ContractComponent/NFT/NFTBase.js +76 -0
- package/dist/esm/components/ContractComponent/NFT/NFTBase.js.map +1 -0
- package/dist/esm/components/ContractComponent/NFT/types.d.ts +21 -0
- package/dist/esm/components/ContractComponent/NFT/types.d.ts.map +1 -0
- package/dist/esm/components/Dialog/Dialog.js +36 -0
- package/dist/esm/components/Dialog/Dialog.js.map +1 -0
- package/dist/esm/components/Dialog/Dialog.style.js +42 -0
- package/dist/esm/components/Dialog/Dialog.style.js.map +1 -0
- package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.js +12 -0
- package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.js.map +1 -0
- package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.style.js +30 -0
- package/dist/esm/components/EmptyListIndicator/EmptyListIndicator.style.js.map +1 -0
- package/dist/esm/components/ExecutionStatusCard/ExecutionChecklist.js +65 -0
- package/dist/esm/components/ExecutionStatusCard/ExecutionChecklist.js.map +1 -0
- package/dist/esm/components/ExecutionStatusCard/ExecutionStatusCard.js +273 -0
- package/dist/esm/components/ExecutionStatusCard/ExecutionStatusCard.js.map +1 -0
- package/dist/esm/components/ExecutionStatusCard/StaggeredRevealTypography.js +47 -0
- package/dist/esm/components/ExecutionStatusCard/StaggeredRevealTypography.js.map +1 -0
- package/dist/esm/components/ExecutionStatusCard/StatusIcon.js +122 -0
- package/dist/esm/components/ExecutionStatusCard/StatusIcon.js.map +1 -0
- package/dist/esm/components/ExecutionStatusCard/StatusIcon.style.js +14 -0
- package/dist/esm/components/ExecutionStatusCard/StatusIcon.style.js.map +1 -0
- package/dist/esm/components/ExecutionStatusCard/iconKey.js +13 -0
- package/dist/esm/components/ExecutionStatusCard/iconKey.js.map +1 -0
- package/dist/esm/components/Expansion/Expansion.js +32 -0
- package/dist/esm/components/Expansion/Expansion.js.map +1 -0
- package/dist/esm/components/Expansion/Expansion.style.js +40 -0
- package/dist/esm/components/Expansion/Expansion.style.js.map +1 -0
- package/dist/esm/components/Expansion/ExpansionTransition.js +32 -0
- package/dist/esm/components/Expansion/ExpansionTransition.js.map +1 -0
- package/dist/esm/components/FeeBreakdownTooltip.js +39 -0
- package/dist/esm/components/FeeBreakdownTooltip.js.map +1 -0
- package/dist/esm/components/Header/ActivitiesButton.js +61 -0
- package/dist/esm/components/Header/ActivitiesButton.js.map +1 -0
- package/dist/esm/components/Header/ActivitiesButton.style.js +39 -0
- package/dist/esm/components/Header/ActivitiesButton.style.js.map +1 -0
- package/dist/esm/components/Header/BackButton.js +24 -0
- package/dist/esm/components/Header/BackButton.js.map +1 -0
- package/dist/esm/components/Header/CloseDrawerButton.js +25 -0
- package/dist/esm/components/Header/CloseDrawerButton.js.map +1 -0
- package/dist/esm/components/Header/DisconnectIconButton.js +20 -0
- package/dist/esm/components/Header/DisconnectIconButton.js.map +1 -0
- package/dist/esm/components/Header/Header.js +44 -0
- package/dist/esm/components/Header/Header.js.map +1 -0
- package/dist/esm/components/Header/Header.style.js +71 -0
- package/dist/esm/components/Header/Header.style.js.map +1 -0
- package/dist/esm/components/Header/NavigationHeader.js +62 -0
- package/dist/esm/components/Header/NavigationHeader.js.map +1 -0
- package/dist/esm/components/Header/SettingsButton.js +32 -0
- package/dist/esm/components/Header/SettingsButton.js.map +1 -0
- package/dist/esm/components/Header/SettingsButton.style.js +38 -0
- package/dist/esm/components/Header/SettingsButton.style.js.map +1 -0
- package/dist/esm/components/Header/SplitNavigationTabs.js +33 -0
- package/dist/esm/components/Header/SplitNavigationTabs.js.map +1 -0
- package/dist/esm/components/Header/WalletHeader.js +118 -0
- package/dist/esm/components/Header/WalletHeader.js.map +1 -0
- package/dist/esm/components/Header/WalletMenu.js +100 -0
- package/dist/esm/components/Header/WalletMenu.js.map +1 -0
- package/dist/esm/components/Header/WalletMenu.style.js +25 -0
- package/dist/esm/components/Header/WalletMenu.style.js.map +1 -0
- package/dist/esm/components/IconCircle/IconCircle.js +19 -0
- package/dist/esm/components/IconCircle/IconCircle.js.map +1 -0
- package/dist/esm/components/IconCircle/IconCircle.style.js +57 -0
- package/dist/esm/components/IconCircle/IconCircle.style.js.map +1 -0
- package/dist/esm/components/IconCircle/statusIcons.js +15 -0
- package/dist/esm/components/IconCircle/statusIcons.js.map +1 -0
- package/dist/esm/components/IconTypography.js +11 -0
- package/dist/esm/components/IconTypography.js.map +1 -0
- package/dist/esm/components/Initializer.js +10 -0
- package/dist/esm/components/Initializer.js.map +1 -0
- package/dist/esm/components/Input.js +15 -0
- package/dist/esm/components/Input.js.map +1 -0
- package/dist/esm/components/ListItem/ListItem.js +23 -0
- package/dist/esm/components/ListItem/ListItem.js.map +1 -0
- package/dist/esm/components/ListItem/ListItemButton.js +13 -0
- package/dist/esm/components/ListItem/ListItemButton.js.map +1 -0
- package/dist/esm/components/ListItemButton.js +30 -0
- package/dist/esm/components/ListItemButton.js.map +1 -0
- package/dist/esm/components/ListItemText.js +7 -0
- package/dist/esm/components/ListItemText.js.map +1 -0
- package/dist/esm/components/Menu.js +21 -0
- package/dist/esm/components/Menu.js.map +1 -0
- package/dist/esm/components/Messages/AccountDeployedMessage.js +27 -0
- package/dist/esm/components/Messages/AccountDeployedMessage.js.map +1 -0
- package/dist/esm/components/Messages/AccountNotDeployedMessage.js +24 -0
- package/dist/esm/components/Messages/AccountNotDeployedMessage.js.map +1 -0
- package/dist/esm/components/Messages/AlertMessage.js +16 -0
- package/dist/esm/components/Messages/AlertMessage.js.map +1 -0
- package/dist/esm/components/Messages/AlertMessage.style.js +38 -0
- package/dist/esm/components/Messages/AlertMessage.style.js.map +1 -0
- package/dist/esm/components/Messages/FundsSufficiencyMessage.js +24 -0
- package/dist/esm/components/Messages/FundsSufficiencyMessage.js.map +1 -0
- package/dist/esm/components/Messages/GasRefuelMessage.js +63 -0
- package/dist/esm/components/Messages/GasRefuelMessage.js.map +1 -0
- package/dist/esm/components/Messages/GasRefuelMessage.style.js +17 -0
- package/dist/esm/components/Messages/GasRefuelMessage.style.js.map +1 -0
- package/dist/esm/components/Messages/GasSufficiencyMessage.js +43 -0
- package/dist/esm/components/Messages/GasSufficiencyMessage.js.map +1 -0
- package/dist/esm/components/Messages/MinFromAmountUSDMessage.js +27 -0
- package/dist/esm/components/Messages/MinFromAmountUSDMessage.js.map +1 -0
- package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js +31 -0
- package/dist/esm/components/Messages/MissingRouteRequiredAccountMessage.js.map +1 -0
- package/dist/esm/components/Messages/WarningMessages.js +45 -0
- package/dist/esm/components/Messages/WarningMessages.js.map +1 -0
- package/dist/esm/components/Messages/useMessageQueue.js +68 -0
- package/dist/esm/components/Messages/useMessageQueue.js.map +1 -0
- package/dist/esm/components/NotFound.js +44 -0
- package/dist/esm/components/NotFound.js.map +1 -0
- package/dist/esm/components/PageContainer.js +20 -0
- package/dist/esm/components/PageContainer.js.map +1 -0
- package/dist/esm/components/PageEntered.js +17 -0
- package/dist/esm/components/PageEntered.js.map +1 -0
- package/dist/esm/components/PoweredBy/PoweredBy.js +59 -0
- package/dist/esm/components/PoweredBy/PoweredBy.js.map +1 -0
- package/dist/esm/components/PoweredBy/PoweredBy.style.js +12 -0
- package/dist/esm/components/PoweredBy/PoweredBy.style.js.map +1 -0
- package/dist/esm/components/ProgressToNextUpdate.js +66 -0
- package/dist/esm/components/ProgressToNextUpdate.js.map +1 -0
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js +40 -0
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -0
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.js +33 -0
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteCard.js +86 -0
- package/dist/esm/components/RouteCard/RouteCard.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteCardEssentials.js +92 -0
- package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteCardSkeleton.js +53 -0
- package/dist/esm/components/RouteCard/RouteCardSkeleton.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteDetails.js +100 -0
- package/dist/esm/components/RouteCard/RouteDetails.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteDetails.style.js +35 -0
- package/dist/esm/components/RouteCard/RouteDetails.style.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteNotFoundCard.js +45 -0
- package/dist/esm/components/RouteCard/RouteNotFoundCard.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteToken.js +49 -0
- package/dist/esm/components/RouteCard/RouteToken.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteToken.style.js +11 -0
- package/dist/esm/components/RouteCard/RouteToken.style.js.map +1 -0
- package/dist/esm/components/RouteCard/RouteTokens.js +50 -0
- package/dist/esm/components/RouteCard/RouteTokens.js.map +1 -0
- package/dist/esm/components/RouteCard/getMatchingLabels.js +24 -0
- package/dist/esm/components/RouteCard/getMatchingLabels.js.map +1 -0
- package/dist/esm/components/Routes/Routes.js +70 -0
- package/dist/esm/components/Routes/Routes.js.map +1 -0
- package/dist/esm/components/Routes/RoutesContent.js +74 -0
- package/dist/esm/components/Routes/RoutesContent.js.map +1 -0
- package/dist/esm/components/Routes/RoutesExpanded.js +69 -0
- package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -0
- package/dist/esm/components/Routes/RoutesExpanded.style.js +34 -0
- package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -0
- package/dist/esm/components/Search/SearchInput.js +46 -0
- package/dist/esm/components/Search/SearchInput.js.map +1 -0
- package/dist/esm/components/Search/SearchInput.style.js +27 -0
- package/dist/esm/components/Search/SearchInput.style.js.map +1 -0
- package/dist/esm/components/Search/SearchNotFound.js +9 -0
- package/dist/esm/components/Search/SearchNotFound.js.map +1 -0
- package/dist/esm/components/Search/SearchNotFound.style.js +28 -0
- package/dist/esm/components/Search/SearchNotFound.style.js.map +1 -0
- package/dist/esm/components/SelectChainAndToken.js +36 -0
- package/dist/esm/components/SelectChainAndToken.js.map +1 -0
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.js +70 -0
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.js.map +1 -0
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js +67 -0
- package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.js.map +1 -0
- package/dist/esm/components/SendToWallet/SendToWalletButton.js +115 -0
- package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -0
- package/dist/esm/components/SendToWallet/SendToWalletButton.style.js +53 -0
- package/dist/esm/components/SendToWallet/SendToWalletButton.style.js.map +1 -0
- package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +49 -0
- package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -0
- package/dist/esm/components/SettingsListItemButton.js +8 -0
- package/dist/esm/components/SettingsListItemButton.js.map +1 -0
- package/dist/esm/components/Skeleton/WidgetSkeleton.d.ts +10 -0
- package/dist/esm/components/Skeleton/WidgetSkeleton.d.ts.map +1 -0
- package/dist/esm/components/Skeleton/WidgetSkeleton.js +124 -0
- package/dist/esm/components/Skeleton/WidgetSkeleton.js.map +1 -0
- package/dist/esm/components/Skeleton/WidgetSkeleton.style.js +73 -0
- package/dist/esm/components/Skeleton/WidgetSkeleton.style.js.map +1 -0
- package/dist/esm/components/Step/StepActions.js +198 -0
- package/dist/esm/components/Step/StepActions.js.map +1 -0
- package/dist/esm/components/Step/StepActions.style.js +27 -0
- package/dist/esm/components/Step/StepActions.style.js.map +1 -0
- package/dist/esm/components/StepActions/SentToWalletRow.js +49 -0
- package/dist/esm/components/StepActions/SentToWalletRow.js.map +1 -0
- package/dist/esm/components/StepActions/SentToWalletRow.style.js +26 -0
- package/dist/esm/components/StepActions/SentToWalletRow.style.js.map +1 -0
- package/dist/esm/components/StepActions/StepActionRow.js +27 -0
- package/dist/esm/components/StepActions/StepActionRow.js.map +1 -0
- package/dist/esm/components/StepActions/StepActionRow.style.js +17 -0
- package/dist/esm/components/StepActions/StepActionRow.style.js.map +1 -0
- package/dist/esm/components/StepActions/StepActionsList.js +23 -0
- package/dist/esm/components/StepActions/StepActionsList.js.map +1 -0
- package/dist/esm/components/StepActions/executionRows.js +67 -0
- package/dist/esm/components/StepActions/executionRows.js.map +1 -0
- package/dist/esm/components/Switch.js +47 -0
- package/dist/esm/components/Switch.js.map +1 -0
- package/dist/esm/components/Tabs/NavigationTabs.js +39 -0
- package/dist/esm/components/Tabs/NavigationTabs.js.map +1 -0
- package/dist/esm/components/Tabs/Tabs.style.js +31 -0
- package/dist/esm/components/Tabs/Tabs.style.js.map +1 -0
- package/dist/esm/components/TextFitter/TextFitter.js +62 -0
- package/dist/esm/components/TextFitter/TextFitter.js.map +1 -0
- package/dist/esm/components/Timer/ExecutionTimerText.js +10 -0
- package/dist/esm/components/Timer/ExecutionTimerText.js.map +1 -0
- package/dist/esm/components/Timer/StepStatusTimer.js +56 -0
- package/dist/esm/components/Timer/StepStatusTimer.js.map +1 -0
- package/dist/esm/components/Timer/StepStatusTimer.style.js +67 -0
- package/dist/esm/components/Timer/StepStatusTimer.style.js.map +1 -0
- package/dist/esm/components/Token/Token.js +208 -0
- package/dist/esm/components/Token/Token.js.map +1 -0
- package/dist/esm/components/Token/Token.style.js +31 -0
- package/dist/esm/components/Token/Token.style.js.map +1 -0
- package/dist/esm/components/TokenList/PinTokenButton.js +36 -0
- package/dist/esm/components/TokenList/PinTokenButton.js.map +1 -0
- package/dist/esm/components/TokenList/TokenDetailsSheet.js +37 -0
- package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -0
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +177 -0
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -0
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js +32 -0
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.js.map +1 -0
- package/dist/esm/components/TokenList/TokenList.js +65 -0
- package/dist/esm/components/TokenList/TokenList.js.map +1 -0
- package/dist/esm/components/TokenList/TokenList.style.js +30 -0
- package/dist/esm/components/TokenList/TokenList.style.js.map +1 -0
- package/dist/esm/components/TokenList/TokenListItem.js +274 -0
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -0
- package/dist/esm/components/TokenList/TokenNotFound.js +12 -0
- package/dist/esm/components/TokenList/TokenNotFound.js.map +1 -0
- package/dist/esm/components/TokenList/VirtualizedTokenList.js +123 -0
- package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -0
- package/dist/esm/components/TokenList/useTokenSelect.js +78 -0
- package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -0
- package/dist/esm/components/TokenRate/TokenRate.js +38 -0
- package/dist/esm/components/TokenRate/TokenRate.js.map +1 -0
- package/dist/esm/components/TokenRate/TokenRate.style.js +19 -0
- package/dist/esm/components/TokenRate/TokenRate.style.js.map +1 -0
- package/dist/esm/components/Tools/ToolItem.js +37 -0
- package/dist/esm/components/Tools/ToolItem.js.map +1 -0
- package/dist/esm/components/Tools/Tools.js +50 -0
- package/dist/esm/components/Tools/Tools.js.map +1 -0
- package/dist/esm/components/TransactionCard/ActiveTransactionCard.js +68 -0
- package/dist/esm/components/TransactionCard/ActiveTransactionCard.js.map +1 -0
- package/dist/esm/components/TransactionCard/ActiveTransactionCard.style.js +21 -0
- package/dist/esm/components/TransactionCard/ActiveTransactionCard.style.js.map +1 -0
- package/dist/esm/components/TransactionCard/TransactionCard.js +32 -0
- package/dist/esm/components/TransactionCard/TransactionCard.js.map +1 -0
- package/dist/esm/components/TransactionCard/TransactionCard.style.js +14 -0
- package/dist/esm/components/TransactionCard/TransactionCard.style.js.map +1 -0
- package/dist/esm/components/TransactionCard/TransactionCardSkeleton.js +63 -0
- package/dist/esm/components/TransactionCard/TransactionCardSkeleton.js.map +1 -0
- package/dist/esm/config/constants.d.ts +5 -0
- package/dist/esm/config/constants.d.ts.map +1 -0
- package/dist/esm/config/constants.js +7 -0
- package/dist/esm/config/constants.js.map +1 -0
- package/dist/esm/config/queryClient.js +18 -0
- package/dist/esm/config/queryClient.js.map +1 -0
- package/dist/esm/config/version.d.ts +6 -0
- package/dist/esm/config/version.d.ts.map +1 -0
- package/dist/esm/config/version.js +7 -0
- package/dist/esm/config/version.js.map +1 -0
- package/dist/esm/hooks/timer/time.js +26 -0
- package/dist/esm/hooks/timer/time.js.map +1 -0
- package/dist/esm/hooks/timer/useExecutionTimer.js +29 -0
- package/dist/esm/hooks/timer/useExecutionTimer.js.map +1 -0
- package/dist/esm/hooks/timer/useInterval.js +19 -0
- package/dist/esm/hooks/timer/useInterval.js.map +1 -0
- package/dist/esm/hooks/timer/useTimer.js +67 -0
- package/dist/esm/hooks/timer/useTimer.js.map +1 -0
- package/dist/esm/hooks/timer/validate.js +15 -0
- package/dist/esm/hooks/timer/validate.js.map +1 -0
- package/dist/esm/hooks/useAccountsBalancesData.js +70 -0
- package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -0
- package/dist/esm/hooks/useActionMessage.js +18 -0
- package/dist/esm/hooks/useActionMessage.js.map +1 -0
- package/dist/esm/hooks/useAddressActivity.js +36 -0
- package/dist/esm/hooks/useAddressActivity.js.map +1 -0
- package/dist/esm/hooks/useAddressValidation.js +50 -0
- package/dist/esm/hooks/useAddressValidation.js.map +1 -0
- package/dist/esm/hooks/useAvailableChains.js +69 -0
- package/dist/esm/hooks/useAvailableChains.js.map +1 -0
- package/dist/esm/hooks/useChain.js +15 -0
- package/dist/esm/hooks/useChain.js.map +1 -0
- package/dist/esm/hooks/useChainSearch.js +39 -0
- package/dist/esm/hooks/useChainSearch.js.map +1 -0
- package/dist/esm/hooks/useChains.js +26 -0
- package/dist/esm/hooks/useChains.js.map +1 -0
- package/dist/esm/hooks/useContactSupport.js +15 -0
- package/dist/esm/hooks/useContactSupport.js.map +1 -0
- package/dist/esm/hooks/useDebouncedWatch.js +28 -0
- package/dist/esm/hooks/useDebouncedWatch.js.map +1 -0
- package/dist/esm/hooks/useDefaultElementId.js +10 -0
- package/dist/esm/hooks/useDefaultElementId.js.map +1 -0
- package/dist/esm/hooks/useExplorer.js +59 -0
- package/dist/esm/hooks/useExplorer.js.map +1 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.js +71 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -0
- package/dist/esm/hooks/useFromAmountThreshold.js +29 -0
- package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -0
- package/dist/esm/hooks/useFromTokenSufficiency.js +56 -0
- package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -0
- package/dist/esm/hooks/useGasRecommendation.js +38 -0
- package/dist/esm/hooks/useGasRecommendation.js.map +1 -0
- package/dist/esm/hooks/useGasRefuel.js +45 -0
- package/dist/esm/hooks/useGasRefuel.js.map +1 -0
- package/dist/esm/hooks/useGasSufficiency.js +104 -0
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -0
- package/dist/esm/hooks/useHasChainExpansion.js +17 -0
- package/dist/esm/hooks/useHasChainExpansion.js.map +1 -0
- package/dist/esm/hooks/useHeader.js +23 -0
- package/dist/esm/hooks/useHeader.js.map +1 -0
- package/dist/esm/hooks/useInitializeSDKProviders.js +15 -0
- package/dist/esm/hooks/useInitializeSDKProviders.js.map +1 -0
- package/dist/esm/hooks/useInitializer.js +19 -0
- package/dist/esm/hooks/useInitializer.js.map +1 -0
- package/dist/esm/hooks/useIsBatchingSupported.js +37 -0
- package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -0
- package/dist/esm/hooks/useIsContractAddress.js +30 -0
- package/dist/esm/hooks/useIsContractAddress.js.map +1 -0
- package/dist/esm/hooks/useLanguages.js +53 -0
- package/dist/esm/hooks/useLanguages.js.map +1 -0
- package/dist/esm/hooks/useListHeight.js +52 -0
- package/dist/esm/hooks/useListHeight.js.map +1 -0
- package/dist/esm/hooks/useLongPress.js +40 -0
- package/dist/esm/hooks/useLongPress.js.map +1 -0
- package/dist/esm/hooks/useNavigateBack.js +18 -0
- package/dist/esm/hooks/useNavigateBack.js.map +1 -0
- package/dist/esm/hooks/usePacedRouteExecution.js +30 -0
- package/dist/esm/hooks/usePacedRouteExecution.js.map +1 -0
- package/dist/esm/hooks/usePacedValue.js +42 -0
- package/dist/esm/hooks/usePacedValue.js.map +1 -0
- package/dist/esm/hooks/useRouteExecution.js +156 -0
- package/dist/esm/hooks/useRouteExecution.js.map +1 -0
- package/dist/esm/hooks/useRouteExecutionMessage.js +61 -0
- package/dist/esm/hooks/useRouteExecutionMessage.js.map +1 -0
- package/dist/esm/hooks/useRouteRequiredAccountConnection.js +37 -0
- package/dist/esm/hooks/useRouteRequiredAccountConnection.js.map +1 -0
- package/dist/esm/hooks/useRoutes.js +303 -0
- package/dist/esm/hooks/useRoutes.js.map +1 -0
- package/dist/esm/hooks/useScrollableContainer.js +12 -0
- package/dist/esm/hooks/useScrollableContainer.js.map +1 -0
- package/dist/esm/hooks/useSetContentHeight.js +23 -0
- package/dist/esm/hooks/useSetContentHeight.js.map +1 -0
- package/dist/esm/hooks/useSettingMonitor.js +51 -0
- package/dist/esm/hooks/useSettingMonitor.js.map +1 -0
- package/dist/esm/hooks/useSwapOnly.js +9 -0
- package/dist/esm/hooks/useSwapOnly.js.map +1 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.js +51 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -0
- package/dist/esm/hooks/useToAddressRequirements.js +41 -0
- package/dist/esm/hooks/useToAddressRequirements.js.map +1 -0
- package/dist/esm/hooks/useToAddressReset.js +29 -0
- package/dist/esm/hooks/useToAddressReset.js.map +1 -0
- package/dist/esm/hooks/useToken.js +23 -0
- package/dist/esm/hooks/useToken.js.map +1 -0
- package/dist/esm/hooks/useTokenAddressBalance.js +21 -0
- package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -0
- package/dist/esm/hooks/useTokenBalance.js +93 -0
- package/dist/esm/hooks/useTokenBalance.js.map +1 -0
- package/dist/esm/hooks/useTokenBalances.js +111 -0
- package/dist/esm/hooks/useTokenBalances.js.map +1 -0
- package/dist/esm/hooks/useTokenBalancesQueries.js +63 -0
- package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -0
- package/dist/esm/hooks/useTokenRateText.js +36 -0
- package/dist/esm/hooks/useTokenRateText.js.map +1 -0
- package/dist/esm/hooks/useTokenSearch.js +48 -0
- package/dist/esm/hooks/useTokenSearch.js.map +1 -0
- package/dist/esm/hooks/useTokens.js +100 -0
- package/dist/esm/hooks/useTokens.js.map +1 -0
- package/dist/esm/hooks/useTools.js +42 -0
- package/dist/esm/hooks/useTools.js.map +1 -0
- package/dist/esm/hooks/useTransactionDetails.js +49 -0
- package/dist/esm/hooks/useTransactionDetails.js.map +1 -0
- package/dist/esm/hooks/useTransactionHistory.js +68 -0
- package/dist/esm/hooks/useTransactionHistory.js.map +1 -0
- package/dist/esm/hooks/useTransactionList.js +57 -0
- package/dist/esm/hooks/useTransactionList.js.map +1 -0
- package/dist/esm/hooks/useWideVariant.js +13 -0
- package/dist/esm/hooks/useWideVariant.js.map +1 -0
- package/dist/esm/hooks/useWidgetChains.d.ts +12 -0
- package/dist/esm/hooks/useWidgetChains.d.ts.map +1 -0
- package/dist/esm/hooks/useWidgetChains.js +9 -0
- package/dist/esm/hooks/useWidgetChains.js.map +1 -0
- package/dist/esm/hooks/useWidgetEvents.d.ts +10 -0
- package/dist/esm/hooks/useWidgetEvents.d.ts.map +1 -0
- package/dist/esm/hooks/useWidgetEvents.js +8 -0
- package/dist/esm/hooks/useWidgetEvents.js.map +1 -0
- package/dist/esm/i18n/bn.json +362 -0
- package/dist/esm/i18n/de.json +362 -0
- package/dist/esm/i18n/en.json +360 -0
- package/dist/esm/i18n/es.json +362 -0
- package/dist/esm/i18n/fr.json +362 -0
- package/dist/esm/i18n/hi.json +362 -0
- package/dist/esm/i18n/id.json +362 -0
- package/dist/esm/i18n/it.json +362 -0
- package/dist/esm/i18n/ja.json +362 -0
- package/dist/esm/i18n/ko.json +362 -0
- package/dist/esm/i18n/pl.json +362 -0
- package/dist/esm/i18n/pt.json +362 -0
- package/dist/esm/i18n/th.json +362 -0
- package/dist/esm/i18n/tr.json +362 -0
- package/dist/esm/i18n/uk.json +362 -0
- package/dist/esm/i18n/vi.json +362 -0
- package/dist/esm/i18n/zh.json +362 -0
- package/dist/esm/index.d.ts +33 -0
- package/dist/esm/index.js +28 -0
- package/dist/esm/pages/ActivitiesPage/ActiveTransactionItem.js +36 -0
- package/dist/esm/pages/ActivitiesPage/ActiveTransactionItem.js.map +1 -0
- package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js +101 -0
- package/dist/esm/pages/ActivitiesPage/ActivitiesPage.js.map +1 -0
- package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js +55 -0
- package/dist/esm/pages/ActivitiesPage/ActivitiesPageMenuButton.js.map +1 -0
- package/dist/esm/pages/ActivitiesPage/TransactionHistoryEmpty.js +17 -0
- package/dist/esm/pages/ActivitiesPage/TransactionHistoryEmpty.js.map +1 -0
- package/dist/esm/pages/ActivitiesPage/TransactionHistoryItem.js +24 -0
- package/dist/esm/pages/ActivitiesPage/TransactionHistoryItem.js.map +1 -0
- package/dist/esm/pages/LanguagesPage.js +31 -0
- package/dist/esm/pages/LanguagesPage.js.map +1 -0
- package/dist/esm/pages/MainPage/MainPage.js +59 -0
- package/dist/esm/pages/MainPage/MainPage.js.map +1 -0
- package/dist/esm/pages/MainPage/MainWarningMessages.js +16 -0
- package/dist/esm/pages/MainPage/MainWarningMessages.js.map +1 -0
- package/dist/esm/pages/MainPage/ReviewButton.js +60 -0
- package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -0
- package/dist/esm/pages/RoutesPage/RoutesPage.js +74 -0
- package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -0
- package/dist/esm/pages/RoutesPage/RoutesPage.style.js +10 -0
- package/dist/esm/pages/RoutesPage/RoutesPage.style.js.map +1 -0
- package/dist/esm/pages/SelectChainPage/SelectChainPage.js +35 -0
- package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -0
- package/dist/esm/pages/SelectEnabledToolsPage.js +105 -0
- package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -0
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +40 -0
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -0
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +46 -0
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -0
- package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js +176 -0
- package/dist/esm/pages/SendToWallet/BookmarkAddressSheet.js.map +1 -0
- package/dist/esm/pages/SendToWallet/BookmarksPage.js +124 -0
- package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -0
- package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +82 -0
- package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -0
- package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js +106 -0
- package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -0
- package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +124 -0
- package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -0
- package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js +84 -0
- package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -0
- package/dist/esm/pages/SendToWallet/SendToWalletPage.js +237 -0
- package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -0
- package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js +90 -0
- package/dist/esm/pages/SendToWallet/SendToWalletPage.style.js.map +1 -0
- package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +49 -0
- package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -0
- package/dist/esm/pages/SettingsPage/GasPriceSettings.js +56 -0
- package/dist/esm/pages/SettingsPage/GasPriceSettings.js.map +1 -0
- package/dist/esm/pages/SettingsPage/LanguageSetting.js +31 -0
- package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -0
- package/dist/esm/pages/SettingsPage/ResetSettingsButton.js +64 -0
- package/dist/esm/pages/SettingsPage/ResetSettingsButton.js.map +1 -0
- package/dist/esm/pages/SettingsPage/ResetSettingsButton.style.js +12 -0
- package/dist/esm/pages/SettingsPage/ResetSettingsButton.style.js.map +1 -0
- package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js +48 -0
- package/dist/esm/pages/SettingsPage/RoutePrioritySettings.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/BadgedValue.js +13 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/BadgedValue.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js +23 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +47 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js +38 -0
- package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SettingsPage.js +39 -0
- package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +92 -0
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +62 -0
- package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js.map +1 -0
- package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js +75 -0
- package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -0
- package/dist/esm/pages/SettingsPage/ThemeSettings.js +60 -0
- package/dist/esm/pages/SettingsPage/ThemeSettings.js.map +1 -0
- package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js +16 -0
- package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.js.map +1 -0
- package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.style.js +14 -0
- package/dist/esm/pages/TransactionDetailsPage/ContactSupportButton.style.js.map +1 -0
- package/dist/esm/pages/TransactionDetailsPage/ReceiptsCard.js +28 -0
- package/dist/esm/pages/TransactionDetailsPage/ReceiptsCard.js.map +1 -0
- package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +84 -0
- package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -0
- package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js +80 -0
- package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js.map +1 -0
- package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js +65 -0
- package/dist/esm/pages/TransactionDetailsPage/TransferIdCard.js.map +1 -0
- package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js +81 -0
- package/dist/esm/pages/TransactionPage/ConfirmToAddressSheet.js.map +1 -0
- package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js +146 -0
- package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.js.map +1 -0
- package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.style.js +11 -0
- package/dist/esm/pages/TransactionPage/ExchangeRateBottomSheet.style.js.map +1 -0
- package/dist/esm/pages/TransactionPage/ExecutionDoneCard.js +38 -0
- package/dist/esm/pages/TransactionPage/ExecutionDoneCard.js.map +1 -0
- package/dist/esm/pages/TransactionPage/RouteTracker.js +47 -0
- package/dist/esm/pages/TransactionPage/RouteTracker.js.map +1 -0
- package/dist/esm/pages/TransactionPage/StartTransactionButton.js +21 -0
- package/dist/esm/pages/TransactionPage/StartTransactionButton.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +82 -0
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.style.js +44 -0
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.style.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TransactionContent.js +21 -0
- package/dist/esm/pages/TransactionPage/TransactionContent.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TransactionDoneButtons.js +46 -0
- package/dist/esm/pages/TransactionPage/TransactionDoneButtons.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TransactionExecutionContent.js +78 -0
- package/dist/esm/pages/TransactionPage/TransactionExecutionContent.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TransactionFailedButtons.js +80 -0
- package/dist/esm/pages/TransactionPage/TransactionFailedButtons.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TransactionPage.js +79 -0
- package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -0
- package/dist/esm/pages/TransactionPage/TransactionReview.js +115 -0
- package/dist/esm/pages/TransactionPage/TransactionReview.js.map +1 -0
- package/dist/esm/pages/TransactionPage/utils.js +12 -0
- package/dist/esm/pages/TransactionPage/utils.js.map +1 -0
- package/dist/esm/providers/I18nProvider/I18nProvider.js +83 -0
- package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -0
- package/dist/esm/providers/I18nProvider/constants.js +43 -0
- package/dist/esm/providers/I18nProvider/constants.js.map +1 -0
- package/dist/esm/providers/I18nProvider/enResource.d.ts +2 -0
- package/dist/esm/providers/I18nProvider/enResource.js +2 -0
- package/dist/esm/providers/I18nProvider/i18n.js +18 -0
- package/dist/esm/providers/I18nProvider/i18n.js.map +1 -0
- package/dist/esm/providers/I18nProvider/types.d.ts +12 -0
- package/dist/esm/providers/I18nProvider/types.d.ts.map +1 -0
- package/dist/esm/providers/QueryClientProvider.js +15 -0
- package/dist/esm/providers/QueryClientProvider.js.map +1 -0
- package/dist/esm/providers/SDKClientProvider.js +43 -0
- package/dist/esm/providers/SDKClientProvider.js.map +1 -0
- package/dist/esm/providers/ThemeProvider/ThemeProvider.js +25 -0
- package/dist/esm/providers/ThemeProvider/ThemeProvider.js.map +1 -0
- package/dist/esm/providers/WalletProvider/WalletProvider.js +40 -0
- package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -0
- package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +45 -0
- package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -0
- package/dist/esm/providers/WidgetProvider/WidgetProvider.js +43 -0
- package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -0
- package/dist/esm/stores/StoreProvider.js +38 -0
- package/dist/esm/stores/StoreProvider.js.map +1 -0
- package/dist/esm/stores/bookmarks/BookmarkStore.js +28 -0
- package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -0
- package/dist/esm/stores/bookmarks/createBookmarkStore.js +45 -0
- package/dist/esm/stores/bookmarks/createBookmarkStore.js.map +1 -0
- package/dist/esm/stores/bookmarks/types.d.ts +26 -0
- package/dist/esm/stores/bookmarks/types.d.ts.map +1 -0
- package/dist/esm/stores/bookmarks/useBookmarkActions.js +17 -0
- package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -0
- package/dist/esm/stores/bookmarks/useBookmarks.js +18 -0
- package/dist/esm/stores/bookmarks/useBookmarks.js.map +1 -0
- package/dist/esm/stores/chains/ChainOrderStore.js +82 -0
- package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -0
- package/dist/esm/stores/chains/createChainOrderStore.js +87 -0
- package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -0
- package/dist/esm/stores/chains/useChainOrder.js +11 -0
- package/dist/esm/stores/chains/useChainOrder.js.map +1 -0
- package/dist/esm/stores/form/FormStore.js +72 -0
- package/dist/esm/stores/form/FormStore.js.map +1 -0
- package/dist/esm/stores/form/FormStoreContext.js +7 -0
- package/dist/esm/stores/form/FormStoreContext.js.map +1 -0
- package/dist/esm/stores/form/FormUpdater.js +37 -0
- package/dist/esm/stores/form/FormUpdater.js.map +1 -0
- package/dist/esm/stores/form/URLSearchParamsBuilder.js +79 -0
- package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -0
- package/dist/esm/stores/form/createFormStore.js +176 -0
- package/dist/esm/stores/form/createFormStore.js.map +1 -0
- package/dist/esm/stores/form/getDefaultValuesFromQueryString.js +22 -0
- package/dist/esm/stores/form/getDefaultValuesFromQueryString.js.map +1 -0
- package/dist/esm/stores/form/types.d.ts +76 -0
- package/dist/esm/stores/form/types.d.ts.map +1 -0
- package/dist/esm/stores/form/types.js +10 -0
- package/dist/esm/stores/form/types.js.map +1 -0
- package/dist/esm/stores/form/useClearAmountFields.js +14 -0
- package/dist/esm/stores/form/useClearAmountFields.js.map +1 -0
- package/dist/esm/stores/form/useFieldActions.d.ts +7 -0
- package/dist/esm/stores/form/useFieldActions.d.ts.map +1 -0
- package/dist/esm/stores/form/useFieldActions.js +61 -0
- package/dist/esm/stores/form/useFieldActions.js.map +1 -0
- package/dist/esm/stores/form/useFieldValues.d.ts +7 -0
- package/dist/esm/stores/form/useFieldValues.d.ts.map +1 -0
- package/dist/esm/stores/form/useFieldValues.js +9 -0
- package/dist/esm/stores/form/useFieldValues.js.map +1 -0
- package/dist/esm/stores/form/useFormRef.js +36 -0
- package/dist/esm/stores/form/useFormRef.js.map +1 -0
- package/dist/esm/stores/form/useFormStore.js +13 -0
- package/dist/esm/stores/form/useFormStore.js.map +1 -0
- package/dist/esm/stores/form/useTouchedFields.js +9 -0
- package/dist/esm/stores/form/useTouchedFields.js.map +1 -0
- package/dist/esm/stores/header/useHeaderStore.js +62 -0
- package/dist/esm/stores/header/useHeaderStore.js.map +1 -0
- package/dist/esm/stores/inputMode/useInputModeStore.js +20 -0
- package/dist/esm/stores/inputMode/useInputModeStore.js.map +1 -0
- package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js +23 -0
- package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js.map +1 -0
- package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js +57 -0
- package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js.map +1 -0
- package/dist/esm/stores/routes/RouteExecutionStore.js +26 -0
- package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -0
- package/dist/esm/stores/routes/createRouteExecutionStore.js +85 -0
- package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -0
- package/dist/esm/stores/routes/useIntermediateRoutesStore.js +19 -0
- package/dist/esm/stores/routes/useIntermediateRoutesStore.js.map +1 -0
- package/dist/esm/stores/routes/useRouteExecutionIndicator.js +23 -0
- package/dist/esm/stores/routes/useRouteExecutionIndicator.js.map +1 -0
- package/dist/esm/stores/routes/useSetExecutableRoute.js +9 -0
- package/dist/esm/stores/routes/useSetExecutableRoute.js.map +1 -0
- package/dist/esm/stores/routes/utils.js +35 -0
- package/dist/esm/stores/routes/utils.js.map +1 -0
- package/dist/esm/stores/settings/SettingsStore.js +26 -0
- package/dist/esm/stores/settings/SettingsStore.js.map +1 -0
- package/dist/esm/stores/settings/createSettingsStore.js +126 -0
- package/dist/esm/stores/settings/createSettingsStore.js.map +1 -0
- package/dist/esm/stores/settings/types.d.ts +25 -0
- package/dist/esm/stores/settings/types.d.ts.map +1 -0
- package/dist/esm/stores/settings/types.js +6 -0
- package/dist/esm/stores/settings/types.js.map +1 -0
- package/dist/esm/stores/settings/useSettings.js +12 -0
- package/dist/esm/stores/settings/useSettings.js.map +1 -0
- package/dist/esm/stores/settings/useSettingsActions.js +70 -0
- package/dist/esm/stores/settings/useSettingsActions.js.map +1 -0
- package/dist/esm/stores/settings/useSplitModeStore.js +36 -0
- package/dist/esm/stores/settings/useSplitModeStore.js.map +1 -0
- package/dist/esm/stores/settings/utils/getStateValues.js +20 -0
- package/dist/esm/stores/settings/utils/getStateValues.js.map +1 -0
- package/dist/esm/themes/azureLight.d.ts +7 -0
- package/dist/esm/themes/azureLight.d.ts.map +1 -0
- package/dist/esm/themes/azureLight.js +41 -0
- package/dist/esm/themes/azureLight.js.map +1 -0
- package/dist/esm/themes/createTheme.d.ts +8 -0
- package/dist/esm/themes/createTheme.d.ts.map +1 -0
- package/dist/esm/themes/createTheme.js +322 -0
- package/dist/esm/themes/createTheme.js.map +1 -0
- package/dist/esm/themes/jumper.d.ts +7 -0
- package/dist/esm/themes/jumper.d.ts.map +1 -0
- package/dist/esm/themes/jumper.js +58 -0
- package/dist/esm/themes/jumper.js.map +1 -0
- package/dist/esm/themes/palettes.d.ts +54 -0
- package/dist/esm/themes/palettes.d.ts.map +1 -0
- package/dist/esm/themes/palettes.js +43 -0
- package/dist/esm/themes/palettes.js.map +1 -0
- package/dist/esm/themes/types.d.ts +67 -0
- package/dist/esm/themes/types.d.ts.map +1 -0
- package/dist/esm/themes/utils.js +13 -0
- package/dist/esm/themes/utils.js.map +1 -0
- package/dist/esm/themes/watermelonLight.d.ts +7 -0
- package/dist/esm/themes/watermelonLight.d.ts.map +1 -0
- package/dist/esm/themes/watermelonLight.js +45 -0
- package/dist/esm/themes/watermelonLight.js.map +1 -0
- package/dist/esm/themes/windows95.d.ts +7 -0
- package/dist/esm/themes/windows95.d.ts.map +1 -0
- package/dist/esm/themes/windows95.js +76 -0
- package/dist/esm/themes/windows95.js.map +1 -0
- package/dist/esm/types/events.d.ts +96 -0
- package/dist/esm/types/events.d.ts.map +1 -0
- package/dist/esm/types/events.js +26 -0
- package/dist/esm/types/events.js.map +1 -0
- package/dist/esm/types/token.d.ts +13 -0
- package/dist/esm/types/token.d.ts.map +1 -0
- package/dist/esm/types/widget.d.ts +332 -0
- package/dist/esm/types/widget.d.ts.map +1 -0
- package/dist/esm/types/widget.js +11 -0
- package/dist/esm/types/widget.js.map +1 -0
- package/dist/esm/utils/chainType.js +14 -0
- package/dist/esm/utils/chainType.js.map +1 -0
- package/dist/esm/utils/compactNumberFormatter.d.ts +14 -0
- package/dist/esm/utils/compactNumberFormatter.d.ts.map +1 -0
- package/dist/esm/utils/compactNumberFormatter.js +67 -0
- package/dist/esm/utils/compactNumberFormatter.js.map +1 -0
- package/dist/esm/utils/converters.js +168 -0
- package/dist/esm/utils/converters.js.map +1 -0
- package/dist/esm/utils/currencyExtendedFormatter.d.ts +5 -0
- package/dist/esm/utils/currencyExtendedFormatter.d.ts.map +1 -0
- package/dist/esm/utils/currencyExtendedFormatter.js +15 -0
- package/dist/esm/utils/currencyExtendedFormatter.js.map +1 -0
- package/dist/esm/utils/deepEqual.js +32 -0
- package/dist/esm/utils/deepEqual.js.map +1 -0
- package/dist/esm/utils/deepMerge.js +13 -0
- package/dist/esm/utils/deepMerge.js.map +1 -0
- package/dist/esm/utils/elements.js +10 -0
- package/dist/esm/utils/elements.js.map +1 -0
- package/dist/esm/utils/enum.js +6 -0
- package/dist/esm/utils/enum.js.map +1 -0
- package/dist/esm/utils/fees.js +74 -0
- package/dist/esm/utils/fees.js.map +1 -0
- package/dist/esm/utils/format.d.ts +29 -0
- package/dist/esm/utils/format.d.ts.map +1 -0
- package/dist/esm/utils/format.js +100 -0
- package/dist/esm/utils/format.js.map +1 -0
- package/dist/esm/utils/getActionMessage.js +68 -0
- package/dist/esm/utils/getActionMessage.js.map +1 -0
- package/dist/esm/utils/getErrorMessage.js +117 -0
- package/dist/esm/utils/getErrorMessage.js.map +1 -0
- package/dist/esm/utils/getPriceImpact.d.ts +18 -0
- package/dist/esm/utils/getPriceImpact.d.ts.map +1 -0
- package/dist/esm/utils/getPriceImpact.js +12 -0
- package/dist/esm/utils/getPriceImpact.js.map +1 -0
- package/dist/esm/utils/input.js +23 -0
- package/dist/esm/utils/input.js.map +1 -0
- package/dist/esm/utils/item.js +27 -0
- package/dist/esm/utils/item.js.map +1 -0
- package/dist/esm/utils/navigationRoutes.d.ts +27 -0
- package/dist/esm/utils/navigationRoutes.d.ts.map +1 -0
- package/dist/esm/utils/navigationRoutes.js +65 -0
- package/dist/esm/utils/navigationRoutes.js.map +1 -0
- package/dist/esm/utils/percentFormatter.d.ts +11 -0
- package/dist/esm/utils/percentFormatter.d.ts.map +1 -0
- package/dist/esm/utils/percentFormatter.js +23 -0
- package/dist/esm/utils/percentFormatter.js.map +1 -0
- package/dist/esm/utils/prepareActions.js +21 -0
- package/dist/esm/utils/prepareActions.js.map +1 -0
- package/dist/esm/utils/queries.js +6 -0
- package/dist/esm/utils/queries.js.map +1 -0
- package/dist/esm/utils/timer.js +23 -0
- package/dist/esm/utils/timer.js.map +1 -0
- package/dist/esm/utils/token.js +59 -0
- package/dist/esm/utils/token.js.map +1 -0
- package/dist/esm/utils/tokenList.js +147 -0
- package/dist/esm/utils/tokenList.js.map +1 -0
- package/dist/esm/utils/variant.js +10 -0
- package/dist/esm/utils/variant.js.map +1 -0
- package/dist/esm/utils/wallet.js +6 -0
- package/dist/esm/utils/wallet.js.map +1 -0
- package/dist/esm/utils/widgetSize.js +11 -0
- package/dist/esm/utils/widgetSize.js.map +1 -0
- package/package.json +95 -0
- package/src/App.tsx +48 -0
- package/src/AppDefault.tsx +266 -0
- package/src/AppDrawer.tsx +104 -0
- package/src/AppDrawerContext.ts +10 -0
- package/src/AppLayout.tsx +36 -0
- package/src/AppProvider.tsx +36 -0
- package/src/components/ActionRow/ActionRow.style.tsx +21 -0
- package/src/components/ActionRow/ActionRow.tsx +25 -0
- package/src/components/AmountInput/AmountInput.style.tsx +68 -0
- package/src/components/AmountInput/AmountInput.tsx +203 -0
- package/src/components/AmountInput/AmountInputEndAdornment.style.ts +22 -0
- package/src/components/AmountInput/AmountInputEndAdornment.tsx +96 -0
- package/src/components/AmountInput/AmountInputStartAdornment.tsx +26 -0
- package/src/components/AmountInput/PriceFormHelperText.style.tsx +34 -0
- package/src/components/AmountInput/PriceFormHelperText.tsx +135 -0
- package/src/components/AppContainer.tsx +154 -0
- package/src/components/Avatar/AccountAvatar.tsx +50 -0
- package/src/components/Avatar/Avatar.style.tsx +100 -0
- package/src/components/Avatar/Avatar.tsx +50 -0
- package/src/components/Avatar/ChainBadgeContent.tsx +22 -0
- package/src/components/Avatar/SmallAvatar.tsx +27 -0
- package/src/components/Avatar/TokenAvatar.tsx +99 -0
- package/src/components/Avatar/utils.ts +6 -0
- package/src/components/BaseTransactionButton/BaseTransactionButton.tsx +72 -0
- package/src/components/BaseTransactionButton/types.ts +11 -0
- package/src/components/BottomSheet/BottomSheet.tsx +67 -0
- package/src/components/BottomSheet/types.ts +14 -0
- package/src/components/ButtonTertiary.tsx +29 -0
- package/src/components/Card/Card.tsx +81 -0
- package/src/components/Card/CardButton.style.tsx +31 -0
- package/src/components/Card/CardButton.tsx +26 -0
- package/src/components/Card/CardHeader.tsx +28 -0
- package/src/components/Card/CardIconButton.tsx +20 -0
- package/src/components/Card/CardLabel.tsx +80 -0
- package/src/components/Card/CardTitle.tsx +29 -0
- package/src/components/Card/InputCard.tsx +11 -0
- package/src/components/ChainSelect/ChainSelect.style.tsx +84 -0
- package/src/components/ChainSelect/ChainSelect.tsx +183 -0
- package/src/components/ChainSelect/useChainSelect.ts +98 -0
- package/src/components/Chains/AllChainsAvatar.tsx +167 -0
- package/src/components/Chains/ChainList.style.tsx +91 -0
- package/src/components/Chains/ChainList.tsx +89 -0
- package/src/components/Chains/ChainListItem.tsx +83 -0
- package/src/components/Chains/ChainsExpanded.style.tsx +25 -0
- package/src/components/Chains/ChainsExpanded.tsx +31 -0
- package/src/components/Chains/PinChainButton.tsx +55 -0
- package/src/components/Chains/SelectChainExpansionContent.tsx +84 -0
- package/src/components/Chains/SelectChainPageContent.tsx +66 -0
- package/src/components/Chains/VirtualizedChainList.tsx +222 -0
- package/src/components/ContextMenu.style.tsx +13 -0
- package/src/components/ContextMenu.tsx +75 -0
- package/src/components/ContractComponent/ContractComponent.tsx +14 -0
- package/src/components/ContractComponent/ItemPrice.tsx +37 -0
- package/src/components/ContractComponent/NFT/NFT.style.ts +10 -0
- package/src/components/ContractComponent/NFT/NFT.tsx +46 -0
- package/src/components/ContractComponent/NFT/NFTBase.tsx +91 -0
- package/src/components/ContractComponent/NFT/types.ts +19 -0
- package/src/components/Dialog/Dialog.style.tsx +59 -0
- package/src/components/Dialog/Dialog.tsx +49 -0
- package/src/components/EmptyListIndicator/EmptyListIndicator.style.tsx +38 -0
- package/src/components/EmptyListIndicator/EmptyListIndicator.tsx +25 -0
- package/src/components/ExecutionStatusCard/ExecutionChecklist.tsx +61 -0
- package/src/components/ExecutionStatusCard/ExecutionStatusCard.tsx +242 -0
- package/src/components/ExecutionStatusCard/StaggeredRevealTypography.tsx +59 -0
- package/src/components/ExecutionStatusCard/StatusIcon.style.tsx +13 -0
- package/src/components/ExecutionStatusCard/StatusIcon.tsx +99 -0
- package/src/components/ExecutionStatusCard/iconKey.ts +37 -0
- package/src/components/Expansion/Expansion.style.tsx +46 -0
- package/src/components/Expansion/Expansion.tsx +47 -0
- package/src/components/Expansion/ExpansionTransition.tsx +48 -0
- package/src/components/FeeBreakdownTooltip.tsx +68 -0
- package/src/components/Header/ActivitiesButton.style.tsx +67 -0
- package/src/components/Header/ActivitiesButton.tsx +59 -0
- package/src/components/Header/BackButton.tsx +29 -0
- package/src/components/Header/CloseDrawerButton.tsx +35 -0
- package/src/components/Header/DisconnectIconButton.tsx +24 -0
- package/src/components/Header/Header.style.ts +126 -0
- package/src/components/Header/Header.tsx +59 -0
- package/src/components/Header/NavigationHeader.tsx +77 -0
- package/src/components/Header/SettingsButton.style.tsx +62 -0
- package/src/components/Header/SettingsButton.tsx +47 -0
- package/src/components/Header/SplitNavigationTabs.tsx +32 -0
- package/src/components/Header/WalletHeader.tsx +184 -0
- package/src/components/Header/WalletMenu.style.tsx +34 -0
- package/src/components/Header/WalletMenu.tsx +129 -0
- package/src/components/IconCircle/IconCircle.style.tsx +85 -0
- package/src/components/IconCircle/IconCircle.tsx +29 -0
- package/src/components/IconCircle/statusIcons.ts +14 -0
- package/src/components/IconTypography.ts +11 -0
- package/src/components/Initializer.tsx +6 -0
- package/src/components/Input.tsx +14 -0
- package/src/components/ListItem/ListItem.tsx +29 -0
- package/src/components/ListItem/ListItemButton.tsx +12 -0
- package/src/components/ListItemButton.tsx +43 -0
- package/src/components/ListItemText.tsx +14 -0
- package/src/components/Menu.tsx +30 -0
- package/src/components/Messages/AccountDeployedMessage.tsx +28 -0
- package/src/components/Messages/AccountNotDeployedMessage.tsx +22 -0
- package/src/components/Messages/AlertMessage.style.tsx +65 -0
- package/src/components/Messages/AlertMessage.tsx +34 -0
- package/src/components/Messages/FundsSufficiencyMessage.tsx +26 -0
- package/src/components/Messages/GasRefuelMessage.style.ts +23 -0
- package/src/components/Messages/GasRefuelMessage.tsx +81 -0
- package/src/components/Messages/GasSufficiencyMessage.tsx +63 -0
- package/src/components/Messages/MinFromAmountUSDMessage.tsx +35 -0
- package/src/components/Messages/MissingRouteRequiredAccountMessage.tsx +44 -0
- package/src/components/Messages/WarningMessages.tsx +64 -0
- package/src/components/Messages/types.ts +1 -0
- package/src/components/Messages/useMessageQueue.ts +111 -0
- package/src/components/NotFound.tsx +45 -0
- package/src/components/PageContainer.ts +34 -0
- package/src/components/PageEntered.ts +14 -0
- package/src/components/PoweredBy/PoweredBy.style.ts +13 -0
- package/src/components/PoweredBy/PoweredBy.tsx +61 -0
- package/src/components/ProgressToNextUpdate.tsx +92 -0
- package/src/components/ReverseTokensButton/ReverseTokensButton.style.tsx +37 -0
- package/src/components/ReverseTokensButton/ReverseTokensButton.tsx +61 -0
- package/src/components/RouteCard/RouteCard.tsx +128 -0
- package/src/components/RouteCard/RouteCardEssentials.tsx +101 -0
- package/src/components/RouteCard/RouteCardSkeleton.tsx +58 -0
- package/src/components/RouteCard/RouteDetails.style.tsx +43 -0
- package/src/components/RouteCard/RouteDetails.tsx +214 -0
- package/src/components/RouteCard/RouteNotFoundCard.tsx +46 -0
- package/src/components/RouteCard/RouteToken.style.tsx +9 -0
- package/src/components/RouteCard/RouteToken.tsx +68 -0
- package/src/components/RouteCard/RouteTokens.tsx +56 -0
- package/src/components/RouteCard/getMatchingLabels.ts +66 -0
- package/src/components/RouteCard/types.ts +16 -0
- package/src/components/Routes/Routes.tsx +93 -0
- package/src/components/Routes/RoutesContent.tsx +117 -0
- package/src/components/Routes/RoutesExpanded.style.ts +46 -0
- package/src/components/Routes/RoutesExpanded.tsx +102 -0
- package/src/components/Search/SearchInput.style.tsx +43 -0
- package/src/components/Search/SearchInput.tsx +80 -0
- package/src/components/Search/SearchNotFound.style.tsx +34 -0
- package/src/components/Search/SearchNotFound.tsx +22 -0
- package/src/components/SelectChainAndToken.tsx +41 -0
- package/src/components/SelectTokenButton/SelectTokenButton.style.tsx +108 -0
- package/src/components/SelectTokenButton/SelectTokenButton.tsx +100 -0
- package/src/components/SendToWallet/SendToWalletButton.style.tsx +81 -0
- package/src/components/SendToWallet/SendToWalletButton.tsx +179 -0
- package/src/components/SendToWallet/SendToWalletExpandButton.tsx +59 -0
- package/src/components/SettingsListItemButton.tsx +9 -0
- package/src/components/Skeleton/WidgetSkeleton.style.tsx +102 -0
- package/src/components/Skeleton/WidgetSkeleton.tsx +140 -0
- package/src/components/Step/StepActions.style.tsx +33 -0
- package/src/components/Step/StepActions.tsx +329 -0
- package/src/components/StepActions/SentToWalletRow.style.tsx +29 -0
- package/src/components/StepActions/SentToWalletRow.tsx +56 -0
- package/src/components/StepActions/StepActionRow.style.tsx +18 -0
- package/src/components/StepActions/StepActionRow.tsx +30 -0
- package/src/components/StepActions/StepActionsList.tsx +40 -0
- package/src/components/StepActions/executionRows.tsx +86 -0
- package/src/components/Switch.tsx +54 -0
- package/src/components/Tabs/NavigationTabs.tsx +45 -0
- package/src/components/Tabs/Tabs.style.tsx +51 -0
- package/src/components/TextFitter/TextFitter.tsx +87 -0
- package/src/components/TextFitter/types.ts +13 -0
- package/src/components/Timer/ExecutionTimerText.tsx +10 -0
- package/src/components/Timer/StepStatusTimer.style.tsx +98 -0
- package/src/components/Timer/StepStatusTimer.tsx +85 -0
- package/src/components/Token/Token.style.tsx +44 -0
- package/src/components/Token/Token.tsx +317 -0
- package/src/components/TokenList/PinTokenButton.tsx +51 -0
- package/src/components/TokenList/TokenDetailsSheet.tsx +45 -0
- package/src/components/TokenList/TokenDetailsSheetContent.style.tsx +40 -0
- package/src/components/TokenList/TokenDetailsSheetContent.tsx +247 -0
- package/src/components/TokenList/TokenList.style.tsx +44 -0
- package/src/components/TokenList/TokenList.tsx +88 -0
- package/src/components/TokenList/TokenListItem.tsx +418 -0
- package/src/components/TokenList/TokenNotFound.tsx +11 -0
- package/src/components/TokenList/VirtualizedTokenList.tsx +253 -0
- package/src/components/TokenList/types.ts +65 -0
- package/src/components/TokenList/useTokenSelect.ts +135 -0
- package/src/components/TokenRate/TokenRate.style.ts +20 -0
- package/src/components/TokenRate/TokenRate.tsx +62 -0
- package/src/components/Tools/ToolItem.tsx +41 -0
- package/src/components/Tools/Tools.tsx +61 -0
- package/src/components/TransactionCard/ActiveTransactionCard.style.tsx +24 -0
- package/src/components/TransactionCard/ActiveTransactionCard.tsx +81 -0
- package/src/components/TransactionCard/TransactionCard.style.tsx +14 -0
- package/src/components/TransactionCard/TransactionCard.tsx +37 -0
- package/src/components/TransactionCard/TransactionCardSkeleton.tsx +68 -0
- package/src/config/constants.ts +3 -0
- package/src/config/queryClient.ts +21 -0
- package/src/config/version.ts +2 -0
- package/src/hooks/timer/time.ts +39 -0
- package/src/hooks/timer/useExecutionTimer.ts +21 -0
- package/src/hooks/timer/useInterval.ts +21 -0
- package/src/hooks/timer/useTimer.ts +107 -0
- package/src/hooks/timer/validate.ts +15 -0
- package/src/hooks/useAccountsBalancesData.ts +104 -0
- package/src/hooks/useActionMessage.ts +34 -0
- package/src/hooks/useAddressActivity.ts +47 -0
- package/src/hooks/useAddressValidation.ts +101 -0
- package/src/hooks/useAvailableChains.ts +108 -0
- package/src/hooks/useChain.ts +24 -0
- package/src/hooks/useChainSearch.ts +70 -0
- package/src/hooks/useChains.ts +50 -0
- package/src/hooks/useContactSupport.ts +16 -0
- package/src/hooks/useDebouncedWatch.ts +32 -0
- package/src/hooks/useDefaultElementId.ts +6 -0
- package/src/hooks/useExplorer.ts +104 -0
- package/src/hooks/useFilteredByTokenBalances.ts +140 -0
- package/src/hooks/useFromAmountThreshold.ts +38 -0
- package/src/hooks/useFromTokenSufficiency.ts +98 -0
- package/src/hooks/useGasRecommendation.ts +60 -0
- package/src/hooks/useGasRefuel.ts +98 -0
- package/src/hooks/useGasSufficiency.ts +233 -0
- package/src/hooks/useHasChainExpansion.ts +32 -0
- package/src/hooks/useHeader.ts +21 -0
- package/src/hooks/useInitializeSDKProviders.ts +12 -0
- package/src/hooks/useInitializer.ts +16 -0
- package/src/hooks/useIsBatchingSupported.ts +46 -0
- package/src/hooks/useIsContractAddress.ts +39 -0
- package/src/hooks/useLanguages.ts +93 -0
- package/src/hooks/useListHeight.ts +107 -0
- package/src/hooks/useLongPress.ts +60 -0
- package/src/hooks/useNavigateBack.ts +17 -0
- package/src/hooks/usePacedRouteExecution.ts +45 -0
- package/src/hooks/usePacedValue.ts +45 -0
- package/src/hooks/useRouteExecution.ts +246 -0
- package/src/hooks/useRouteExecutionMessage.ts +100 -0
- package/src/hooks/useRouteRequiredAccountConnection.ts +62 -0
- package/src/hooks/useRoutes.ts +578 -0
- package/src/hooks/useScrollableContainer.ts +29 -0
- package/src/hooks/useSetContentHeight.ts +30 -0
- package/src/hooks/useSettingMonitor.ts +93 -0
- package/src/hooks/useSwapOnly.ts +6 -0
- package/src/hooks/useToAddressAutoPopulate.ts +95 -0
- package/src/hooks/useToAddressRequirements.ts +103 -0
- package/src/hooks/useToAddressReset.ts +39 -0
- package/src/hooks/useToken.ts +45 -0
- package/src/hooks/useTokenAddressBalance.ts +32 -0
- package/src/hooks/useTokenBalance.ts +148 -0
- package/src/hooks/useTokenBalances.ts +191 -0
- package/src/hooks/useTokenBalancesQueries.ts +100 -0
- package/src/hooks/useTokenRateText.ts +55 -0
- package/src/hooks/useTokenSearch.ts +98 -0
- package/src/hooks/useTokens.ts +159 -0
- package/src/hooks/useTools.ts +56 -0
- package/src/hooks/useTransactionDetails.ts +93 -0
- package/src/hooks/useTransactionHistory.ts +120 -0
- package/src/hooks/useTransactionList.ts +83 -0
- package/src/hooks/useWideVariant.ts +13 -0
- package/src/hooks/useWidgetChains.ts +16 -0
- package/src/hooks/useWidgetEvents.ts +8 -0
- package/src/i18n/i18next.d.ts +10 -0
- package/src/index.ts +37 -0
- package/src/pages/ActivitiesPage/ActiveTransactionItem.tsx +43 -0
- package/src/pages/ActivitiesPage/ActivitiesPage.tsx +148 -0
- package/src/pages/ActivitiesPage/ActivitiesPageMenuButton.tsx +71 -0
- package/src/pages/ActivitiesPage/TransactionHistoryEmpty.tsx +14 -0
- package/src/pages/ActivitiesPage/TransactionHistoryItem.tsx +30 -0
- package/src/pages/ActivitiesPage/types.ts +16 -0
- package/src/pages/LanguagesPage.tsx +49 -0
- package/src/pages/MainPage/MainPage.tsx +70 -0
- package/src/pages/MainPage/MainWarningMessages.tsx +17 -0
- package/src/pages/MainPage/ReviewButton.tsx +81 -0
- package/src/pages/RoutesPage/RoutesPage.style.ts +9 -0
- package/src/pages/RoutesPage/RoutesPage.tsx +99 -0
- package/src/pages/SelectChainPage/SelectChainPage.tsx +36 -0
- package/src/pages/SelectChainPage/types.ts +5 -0
- package/src/pages/SelectEnabledToolsPage.tsx +131 -0
- package/src/pages/SelectTokenPage/SearchTokenInput.tsx +58 -0
- package/src/pages/SelectTokenPage/SelectTokenPage.tsx +80 -0
- package/src/pages/SendToWallet/BookmarkAddressSheet.tsx +247 -0
- package/src/pages/SendToWallet/BookmarksPage.tsx +145 -0
- package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +107 -0
- package/src/pages/SendToWallet/ConnectedWalletsPage.tsx +134 -0
- package/src/pages/SendToWallet/RecentWalletsPage.tsx +161 -0
- package/src/pages/SendToWallet/SendToConfiguredWalletPage.tsx +110 -0
- package/src/pages/SendToWallet/SendToWalletPage.style.tsx +137 -0
- package/src/pages/SendToWallet/SendToWalletPage.tsx +308 -0
- package/src/pages/SendToWallet/types.ts +4 -0
- package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +59 -0
- package/src/pages/SettingsPage/GasPriceSettings.tsx +47 -0
- package/src/pages/SettingsPage/LanguageSetting.tsx +40 -0
- package/src/pages/SettingsPage/ResetSettingsButton.style.tsx +12 -0
- package/src/pages/SettingsPage/ResetSettingsButton.tsx +83 -0
- package/src/pages/SettingsPage/RoutePrioritySettings.tsx +57 -0
- package/src/pages/SettingsPage/SettingsCard/BadgedValue.tsx +22 -0
- package/src/pages/SettingsPage/SettingsCard/SettingCard.style.tsx +26 -0
- package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +90 -0
- package/src/pages/SettingsPage/SettingsCard/SettingsAccordian.tsx +48 -0
- package/src/pages/SettingsPage/SettingsCard/types.ts +6 -0
- package/src/pages/SettingsPage/SettingsPage.tsx +39 -0
- package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.style.tsx +102 -0
- package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +151 -0
- package/src/pages/SettingsPage/SmallBalanceFilterSettings.tsx +116 -0
- package/src/pages/SettingsPage/ThemeSettings.tsx +85 -0
- package/src/pages/TransactionDetailsPage/ContactSupportButton.style.tsx +12 -0
- package/src/pages/TransactionDetailsPage/ContactSupportButton.tsx +21 -0
- package/src/pages/TransactionDetailsPage/ReceiptsCard.tsx +22 -0
- package/src/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +111 -0
- package/src/pages/TransactionDetailsPage/TransactionDetailsSkeleton.tsx +91 -0
- package/src/pages/TransactionDetailsPage/TransferIdCard.tsx +72 -0
- package/src/pages/TransactionPage/ConfirmToAddressSheet.tsx +96 -0
- package/src/pages/TransactionPage/ExchangeRateBottomSheet.style.tsx +9 -0
- package/src/pages/TransactionPage/ExchangeRateBottomSheet.tsx +214 -0
- package/src/pages/TransactionPage/ExecutionDoneCard.tsx +43 -0
- package/src/pages/TransactionPage/RouteTracker.tsx +68 -0
- package/src/pages/TransactionPage/StartTransactionButton.tsx +27 -0
- package/src/pages/TransactionPage/TokenValueBottomSheet.style.tsx +60 -0
- package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +141 -0
- package/src/pages/TransactionPage/TransactionContent.tsx +42 -0
- package/src/pages/TransactionPage/TransactionDoneButtons.tsx +70 -0
- package/src/pages/TransactionPage/TransactionExecutionContent.tsx +93 -0
- package/src/pages/TransactionPage/TransactionFailedButtons.tsx +105 -0
- package/src/pages/TransactionPage/TransactionPage.tsx +111 -0
- package/src/pages/TransactionPage/TransactionReview.tsx +163 -0
- package/src/pages/TransactionPage/types.ts +7 -0
- package/src/pages/TransactionPage/utils.ts +25 -0
- package/src/providers/I18nProvider/I18nProvider.tsx +133 -0
- package/src/providers/I18nProvider/constants.ts +41 -0
- package/src/providers/I18nProvider/enResource.ts +4 -0
- package/src/providers/I18nProvider/i18n.ts +26 -0
- package/src/providers/I18nProvider/types.ts +36 -0
- package/src/providers/QueryClientProvider.tsx +20 -0
- package/src/providers/SDKClientProvider.tsx +59 -0
- package/src/providers/ThemeProvider/ThemeProvider.tsx +35 -0
- package/src/providers/WalletProvider/WalletProvider.tsx +70 -0
- package/src/providers/WalletProvider/useExternalWalletProvider.ts +79 -0
- package/src/providers/WidgetProvider/WidgetProvider.tsx +49 -0
- package/src/providers/WidgetProvider/types.ts +9 -0
- package/src/stores/StoreProvider.tsx +40 -0
- package/src/stores/bookmarks/BookmarkStore.tsx +38 -0
- package/src/stores/bookmarks/createBookmarkStore.ts +80 -0
- package/src/stores/bookmarks/types.ts +26 -0
- package/src/stores/bookmarks/useBookmarkActions.ts +16 -0
- package/src/stores/bookmarks/useBookmarks.ts +14 -0
- package/src/stores/chains/ChainOrderStore.tsx +165 -0
- package/src/stores/chains/createChainOrderStore.ts +128 -0
- package/src/stores/chains/types.ts +25 -0
- package/src/stores/chains/useChainOrder.ts +20 -0
- package/src/stores/form/FormStore.tsx +133 -0
- package/src/stores/form/FormStoreContext.ts +5 -0
- package/src/stores/form/FormUpdater.tsx +52 -0
- package/src/stores/form/URLSearchParamsBuilder.tsx +93 -0
- package/src/stores/form/createFormStore.ts +237 -0
- package/src/stores/form/getDefaultValuesFromQueryString.ts +48 -0
- package/src/stores/form/types.ts +107 -0
- package/src/stores/form/useClearAmountFields.ts +10 -0
- package/src/stores/form/useFieldActions.ts +93 -0
- package/src/stores/form/useFieldValues.ts +14 -0
- package/src/stores/form/useFormRef.ts +76 -0
- package/src/stores/form/useFormStore.ts +14 -0
- package/src/stores/form/useTouchedFields.ts +8 -0
- package/src/stores/header/types.ts +20 -0
- package/src/stores/header/useHeaderStore.tsx +103 -0
- package/src/stores/inputMode/useInputModeStore.ts +31 -0
- package/src/stores/pinnedTokens/PinnedTokensStore.tsx +38 -0
- package/src/stores/pinnedTokens/createPinnedTokensStore.ts +74 -0
- package/src/stores/pinnedTokens/types.ts +20 -0
- package/src/stores/routes/RouteExecutionStore.tsx +44 -0
- package/src/stores/routes/createRouteExecutionStore.ts +167 -0
- package/src/stores/routes/types.ts +26 -0
- package/src/stores/routes/useIntermediateRoutesStore.ts +29 -0
- package/src/stores/routes/useRouteExecutionIndicator.ts +43 -0
- package/src/stores/routes/useSetExecutableRoute.ts +7 -0
- package/src/stores/routes/utils.ts +63 -0
- package/src/stores/settings/SettingsStore.tsx +45 -0
- package/src/stores/settings/createSettingsStore.ts +219 -0
- package/src/stores/settings/types.ts +66 -0
- package/src/stores/settings/useSettings.ts +16 -0
- package/src/stores/settings/useSettingsActions.ts +165 -0
- package/src/stores/settings/useSplitModeStore.tsx +58 -0
- package/src/stores/settings/utils/getStateValues.ts +17 -0
- package/src/stores/types.ts +7 -0
- package/src/themes/azureLight.ts +61 -0
- package/src/themes/createTheme.ts +489 -0
- package/src/themes/jumper.ts +77 -0
- package/src/themes/palettes.ts +52 -0
- package/src/themes/types.ts +82 -0
- package/src/themes/utils.ts +18 -0
- package/src/themes/watermelonLight.ts +80 -0
- package/src/themes/windows95.ts +133 -0
- package/src/types/events.ts +114 -0
- package/src/types/token.ts +21 -0
- package/src/types/widget.ts +441 -0
- package/src/utils/chainType.ts +10 -0
- package/src/utils/compactNumberFormatter.ts +91 -0
- package/src/utils/converters.ts +238 -0
- package/src/utils/currencyExtendedFormatter.ts +15 -0
- package/src/utils/deepEqual.ts +62 -0
- package/src/utils/deepMerge.ts +14 -0
- package/src/utils/elements.ts +32 -0
- package/src/utils/enum.ts +4 -0
- package/src/utils/fees.ts +136 -0
- package/src/utils/format.ts +195 -0
- package/src/utils/getActionMessage.ts +163 -0
- package/src/utils/getErrorMessage.ts +144 -0
- package/src/utils/getPriceImpact.ts +35 -0
- package/src/utils/input.ts +29 -0
- package/src/utils/item.ts +65 -0
- package/src/utils/navigationRoutes.ts +68 -0
- package/src/utils/percentFormatter.ts +28 -0
- package/src/utils/prepareActions.ts +27 -0
- package/src/utils/queries.ts +2 -0
- package/src/utils/timer.ts +45 -0
- package/src/utils/token.ts +143 -0
- package/src/utils/tokenList.ts +284 -0
- package/src/utils/variant.ts +13 -0
- package/src/utils/wallet.ts +4 -0
- package/src/utils/widgetSize.ts +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTokenBalances.js","names":[],"sources":["../../../src/hooks/useTokenBalances.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport type { FormType } from '../stores/form/types.js'\nimport { usePinnedTokensStore } from '../stores/pinnedTokens/PinnedTokensStore.js'\nimport { useSettings } from '../stores/settings/useSettings.js'\nimport type { TokenAmount } from '../types/token.js'\nimport { formatTokenPrice } from '../utils/format.js'\nimport { isSearchMatch, processTokenBalances } from '../utils/tokenList.js'\nimport { useAccountsBalancesData } from './useAccountsBalancesData.js'\nimport { useTokenBalancesQueries } from './useTokenBalancesQueries.js'\nimport { useTokens } from './useTokens.js'\n\nexport const useTokenBalances = (\n selectedChainId?: number,\n formType?: FormType,\n isAllNetworks?: boolean,\n search?: string\n): {\n tokens: TokenAmount[]\n withCategories: boolean\n withPinnedTokens: boolean\n isTokensLoading: boolean\n isSearchLoading: boolean\n isBalanceLoading: boolean\n} => {\n const { hiddenUI } = useWidgetConfig()\n const {\n allTokens,\n isLoading: isTokensLoading,\n isSearchLoading,\n } = useTokens(formType, search, isAllNetworks ? undefined : selectedChainId)\n\n const { data: accountsWithAllTokens, isLoading: isAccountsLoading } =\n useAccountsBalancesData(selectedChainId, formType, isAllNetworks, allTokens)\n\n const isBalanceLoadingEnabled =\n Boolean(accountsWithAllTokens) && !isAccountsLoading\n\n const { data: allTokensWithBalances, isLoading: isBalanceQueriesLoading } =\n useTokenBalancesQueries(accountsWithAllTokens, isBalanceLoadingEnabled)\n\n const { tokens: configTokens } = useWidgetConfig()\n const { smallBalanceThreshold } = useSettings(['smallBalanceThreshold'])\n\n const pinnedTokens = usePinnedTokensStore((state) => state.pinnedTokens)\n\n const isBalanceLoading =\n (isBalanceQueriesLoading || isAccountsLoading) &&\n !allTokensWithBalances?.length\n\n // Create function to check if token is pinned\n const isPinnedToken = useMemo(() => {\n if (isAllNetworks) {\n // For all networks, check all pinned tokens\n const allPinned: Array<{ chainId: number; tokenAddress: string }> = []\n Object.entries(pinnedTokens).forEach(([chainIdStr, addresses]) => {\n const chainId = Number.parseInt(chainIdStr, 10)\n addresses.forEach((address) => {\n allPinned.push({ chainId, tokenAddress: address })\n })\n })\n const pinnedSet = new Set(\n allPinned.map((p) => `${p.chainId}-${p.tokenAddress.toLowerCase()}`)\n )\n return (chainId: number, tokenAddress: string) => {\n const key = `${chainId}-${tokenAddress.toLowerCase()}`\n return pinnedSet.has(key)\n }\n } else if (selectedChainId) {\n // For single chain, check only selected chain\n const chainPinnedTokens = pinnedTokens[selectedChainId] || []\n const pinnedSet = new Set(\n chainPinnedTokens.map((addr) => addr.toLowerCase())\n )\n return (chainId: number, tokenAddress: string) => {\n return (\n chainId === selectedChainId &&\n pinnedSet.has(tokenAddress.toLowerCase())\n )\n }\n }\n return undefined\n }, [isAllNetworks, selectedChainId, pinnedTokens])\n\n const displayedTokensList = useMemo(() => {\n const tokensByChain = isAllNetworks\n ? Object.values(allTokens ?? {}).flat()\n : selectedChainId\n ? allTokens?.[selectedChainId]\n : undefined\n return tokensByChain?.filter((t) => isSearchMatch(t, search)) ?? []\n }, [allTokens, isAllNetworks, selectedChainId, search])\n\n const displayedTokensWithBalances = useMemo(() => {\n const balancesByChain = isAllNetworks\n ? allTokensWithBalances\n : selectedChainId\n ? allTokensWithBalances?.filter((t) => t.chainId === selectedChainId)\n : undefined\n const displayedTokensSet = new Set(\n displayedTokensList?.map(\n (t) => `${t.chainId}-${t.address.toLowerCase()}`\n ) || []\n )\n\n const hideSmallBalances =\n !!smallBalanceThreshold && !hiddenUI?.hideSmallBalances\n const threshold = hideSmallBalances\n ? Number.parseFloat(smallBalanceThreshold)\n : undefined\n\n if (!balancesByChain) {\n return undefined\n }\n\n return balancesByChain.reduce<typeof balancesByChain>((acc, token) => {\n const tokenKey = `${token.chainId}-${token.address.toLowerCase()}`\n // Check if token is in displayed list and has amount\n const isInDisplayedList = displayedTokensSet.has(tokenKey) && token.amount\n // Check if it matches search (for cached appended tokens)\n const matchesSearch = isSearchMatch(token, search)\n\n // Filter: only include tokens that match our criteria\n if (!isInDisplayedList && !matchesSearch) {\n return acc\n }\n\n // Apply small balance threshold transformation if enabled\n let processedToken = token\n if (\n hideSmallBalances &&\n threshold !== undefined &&\n threshold >= 0 &&\n token.amount\n ) {\n const balanceUSD = formatTokenPrice(\n token.amount,\n token.priceUSD,\n token.decimals\n )\n if (balanceUSD < threshold) {\n processedToken = {\n ...token,\n amount: 0n,\n }\n }\n }\n\n acc.push(processedToken)\n return acc\n }, [])\n }, [\n allTokensWithBalances,\n displayedTokensList,\n search,\n selectedChainId,\n isAllNetworks,\n smallBalanceThreshold,\n hiddenUI,\n ])\n\n const { processedTokens, withCategories, withPinnedTokens } = useMemo(() => {\n return processTokenBalances(\n isBalanceLoading,\n isAllNetworks || !!search,\n configTokens,\n selectedChainId,\n displayedTokensList,\n displayedTokensWithBalances,\n isPinnedToken\n )\n }, [\n isBalanceLoading,\n isAllNetworks,\n configTokens,\n selectedChainId,\n displayedTokensList,\n displayedTokensWithBalances,\n search,\n isPinnedToken,\n ])\n\n return {\n tokens: processedTokens ?? [],\n withCategories,\n withPinnedTokens,\n isTokensLoading,\n isSearchLoading,\n isBalanceLoading,\n }\n}\n"],"mappings":";;;;;;;;;;AAYA,MAAa,oBACX,iBACA,UACA,eACA,WAQG;CACH,MAAM,EAAE,aAAa,gBAAgB;CACrC,MAAM,EACJ,WACA,WAAW,iBACX,oBACE,UAAU,UAAU,QAAQ,gBAAgB,KAAA,IAAY,eAAe;CAE3E,MAAM,EAAE,MAAM,uBAAuB,WAAW,sBAC9C,wBAAwB,iBAAiB,UAAU,eAAe,SAAS;CAK7E,MAAM,EAAE,MAAM,uBAAuB,WAAW,4BAC9C,wBAAwB,uBAHxB,QAAQ,qBAAqB,KAAK,CAAC,iBAGmC;CAExE,MAAM,EAAE,QAAQ,iBAAiB,gBAAgB;CACjD,MAAM,EAAE,0BAA0B,YAAY,CAAC,uBAAuB,CAAC;CAEvE,MAAM,eAAe,sBAAsB,UAAU,MAAM,YAAY;CAEvE,MAAM,oBACH,2BAA2B,sBAC5B,CAAC,uBAAuB;CAG1B,MAAM,gBAAgB,cAAc;EAClC,IAAI,eAAe;GAEjB,MAAM,YAA8D,CAAC;GACrE,OAAO,QAAQ,YAAY,EAAE,SAAS,CAAC,YAAY,eAAe;IAChE,MAAM,UAAU,OAAO,SAAS,YAAY,EAAE;IAC9C,UAAU,SAAS,YAAY;KAC7B,UAAU,KAAK;MAAE;MAAS,cAAc;KAAQ,CAAC;IACnD,CAAC;GACH,CAAC;GACD,MAAM,YAAY,IAAI,IACpB,UAAU,KAAK,MAAM,GAAG,EAAE,QAAQ,GAAG,EAAE,aAAa,YAAY,GAAG,CACrE;GACA,QAAQ,SAAiB,iBAAyB;IAChD,MAAM,MAAM,GAAG,QAAQ,GAAG,aAAa,YAAY;IACnD,OAAO,UAAU,IAAI,GAAG;GAC1B;EACF,OAAO,IAAI,iBAAiB;GAE1B,MAAM,oBAAoB,aAAa,oBAAoB,CAAC;GAC5D,MAAM,YAAY,IAAI,IACpB,kBAAkB,KAAK,SAAS,KAAK,YAAY,CAAC,CACpD;GACA,QAAQ,SAAiB,iBAAyB;IAChD,OACE,YAAY,mBACZ,UAAU,IAAI,aAAa,YAAY,CAAC;GAE5C;EACF;CAEF,GAAG;EAAC;EAAe;EAAiB;CAAY,CAAC;CAEjD,MAAM,sBAAsB,cAAc;EAMxC,QALsB,gBAClB,OAAO,OAAO,aAAa,CAAC,CAAC,EAAE,KAAK,IACpC,kBACE,YAAY,mBACZ,KAAA,IACgB,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;CACpE,GAAG;EAAC;EAAW;EAAe;EAAiB;CAAM,CAAC;CAEtD,MAAM,8BAA8B,cAAc;EAChD,MAAM,kBAAkB,gBACpB,wBACA,kBACE,uBAAuB,QAAQ,MAAM,EAAE,YAAY,eAAe,IAClE,KAAA;EACN,MAAM,qBAAqB,IAAI,IAC7B,qBAAqB,KAClB,MAAM,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,YAAY,GAC/C,KAAK,CAAC,CACR;EAEA,MAAM,oBACJ,CAAC,CAAC,yBAAyB,CAAC,UAAU;EACxC,MAAM,YAAY,oBACd,OAAO,WAAW,qBAAqB,IACvC,KAAA;EAEJ,IAAI,CAAC,iBACH;EAGF,OAAO,gBAAgB,QAAgC,KAAK,UAAU;GACpE,MAAM,WAAW,GAAG,MAAM,QAAQ,GAAG,MAAM,QAAQ,YAAY;GAE/D,MAAM,oBAAoB,mBAAmB,IAAI,QAAQ,KAAK,MAAM;GAEpE,MAAM,gBAAgB,cAAc,OAAO,MAAM;GAGjD,IAAI,CAAC,qBAAqB,CAAC,eACzB,OAAO;GAIT,IAAI,iBAAiB;GACrB,IACE,qBACA,cAAc,KAAA,KACd,aAAa,KACb,MAAM;QAEa,iBACjB,MAAM,QACN,MAAM,UACN,MAAM,QAEK,IAAI,WACf,iBAAiB;KACf,GAAG;KACH,QAAQ;IACV;GAAA;GAIJ,IAAI,KAAK,cAAc;GACvB,OAAO;EACT,GAAG,CAAC,CAAC;CACP,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,iBAAiB,gBAAgB,qBAAqB,cAAc;EAC1E,OAAO,qBACL,kBACA,iBAAiB,CAAC,CAAC,QACnB,cACA,iBACA,qBACA,6BACA,aACF;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,OAAO;EACL,QAAQ,mBAAmB,CAAC;EAC5B;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
2
|
+
import { useSDKClient } from "../providers/SDKClientProvider.js";
|
|
3
|
+
import { getQueryKey } from "../utils/queries.js";
|
|
4
|
+
import { getTokenBalances } from "@lifi/sdk";
|
|
5
|
+
import { useMemo, useRef } from "react";
|
|
6
|
+
import { useQueries } from "@tanstack/react-query";
|
|
7
|
+
//#region src/hooks/useTokenBalancesQueries.ts
|
|
8
|
+
const defaultRefetchInterval = 32e3;
|
|
9
|
+
const useTokenBalancesQueries = (accountsWithTokens, isBalanceLoadingEnabled) => {
|
|
10
|
+
const { keyPrefix } = useWidgetConfig();
|
|
11
|
+
const sdkClient = useSDKClient();
|
|
12
|
+
const firstLoadStartRef = useRef(null);
|
|
13
|
+
return useQueries({
|
|
14
|
+
queries: useMemo(() => {
|
|
15
|
+
if (!accountsWithTokens) return [];
|
|
16
|
+
return Object.entries(accountsWithTokens).flatMap(([accountAddress, chainTokens]) => Object.entries(chainTokens).map(([chainIdStr, tokens]) => {
|
|
17
|
+
const chainId = Number(chainIdStr);
|
|
18
|
+
return {
|
|
19
|
+
queryKey: [
|
|
20
|
+
getQueryKey("token-balances", keyPrefix),
|
|
21
|
+
accountAddress,
|
|
22
|
+
chainId,
|
|
23
|
+
tokens.length
|
|
24
|
+
],
|
|
25
|
+
queryFn: async () => {
|
|
26
|
+
if (!accountAddress || !tokens) return [];
|
|
27
|
+
return await getTokenBalances(sdkClient, accountAddress, tokens);
|
|
28
|
+
},
|
|
29
|
+
enabled: isBalanceLoadingEnabled,
|
|
30
|
+
refetchInterval: defaultRefetchInterval,
|
|
31
|
+
staleTime: defaultRefetchInterval,
|
|
32
|
+
keepPreviousData: true
|
|
33
|
+
};
|
|
34
|
+
}));
|
|
35
|
+
}, [
|
|
36
|
+
accountsWithTokens,
|
|
37
|
+
isBalanceLoadingEnabled,
|
|
38
|
+
keyPrefix,
|
|
39
|
+
sdkClient
|
|
40
|
+
]),
|
|
41
|
+
combine: (results) => {
|
|
42
|
+
const now = Date.now();
|
|
43
|
+
if (results.some((result) => result.isLoading) && firstLoadStartRef.current === null) firstLoadStartRef.current = now;
|
|
44
|
+
const allComplete = results.every((result) => result.isSuccess || result.isError);
|
|
45
|
+
if (allComplete) firstLoadStartRef.current = null;
|
|
46
|
+
const timeSinceStart = firstLoadStartRef.current ? now - firstLoadStartRef.current : 0;
|
|
47
|
+
if (allComplete || timeSinceStart >= 500) return {
|
|
48
|
+
data: results.flatMap((result) => result.data || []).filter((token) => token.amount),
|
|
49
|
+
isLoading: !allComplete,
|
|
50
|
+
isError: results.some((result) => result.isError)
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
data: void 0,
|
|
54
|
+
isLoading: true,
|
|
55
|
+
isError: false
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { useTokenBalancesQueries };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=useTokenBalancesQueries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTokenBalancesQueries.js","names":[],"sources":["../../../src/hooks/useTokenBalancesQueries.ts"],"sourcesContent":["import { getTokenBalances, type TokenExtended } from '@lifi/sdk'\nimport { useQueries } from '@tanstack/react-query'\nimport { useMemo, useRef } from 'react'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport type { TokenAmount, TokenAmountExtended } from '../types/token.js'\nimport { getQueryKey } from '../utils/queries.js'\n\nconst defaultRefetchInterval = 32_000\n\nexport const useTokenBalancesQueries = (\n accountsWithTokens?: Record<string, Record<number, TokenExtended[]>>,\n isBalanceLoadingEnabled?: boolean\n): {\n data: TokenAmount[] | undefined\n isLoading: boolean\n isError: boolean\n} => {\n const { keyPrefix } = useWidgetConfig()\n const sdkClient = useSDKClient()\n const firstLoadStartRef = useRef<number | null>(null)\n\n const queryConfig = useMemo(() => {\n if (!accountsWithTokens) {\n return []\n }\n return Object.entries(accountsWithTokens).flatMap(\n ([accountAddress, chainTokens]) =>\n Object.entries(chainTokens).map(([chainIdStr, tokens]) => {\n const chainId = Number(chainIdStr)\n return {\n queryKey: [\n getQueryKey('token-balances', keyPrefix),\n accountAddress,\n chainId,\n tokens.length,\n ],\n queryFn: async (): Promise<TokenAmountExtended[]> => {\n if (!accountAddress || !tokens) {\n return []\n }\n return await getTokenBalances(sdkClient, accountAddress, tokens)\n },\n enabled: isBalanceLoadingEnabled,\n refetchInterval: defaultRefetchInterval,\n staleTime: defaultRefetchInterval,\n keepPreviousData: true,\n }\n })\n )\n }, [accountsWithTokens, isBalanceLoadingEnabled, keyPrefix, sdkClient])\n\n const result = useQueries({\n queries: queryConfig,\n combine: (results) => {\n const now = Date.now()\n\n const hasLoadingQueries = results.some((result) => result.isLoading)\n if (hasLoadingQueries && firstLoadStartRef.current === null) {\n firstLoadStartRef.current = now\n }\n\n const allComplete = results.every(\n (result) => result.isSuccess || result.isError\n )\n\n // Reset the start time when all queries complete\n if (allComplete) {\n firstLoadStartRef.current = null\n }\n\n // Calculate time since first load started\n const timeSinceStart = firstLoadStartRef.current\n ? now - firstLoadStartRef.current\n : 0\n\n // Return results if all complete OR if 500ms have passed since first query started\n const shouldReturnResults = allComplete || timeSinceStart >= 500\n\n if (shouldReturnResults) {\n const data: TokenAmount[] = results\n .flatMap((result) => result.data || [])\n .filter((token) => token.amount)\n return {\n data,\n isLoading: !allComplete,\n isError: results.some((result) => result.isError),\n }\n }\n\n return {\n data: undefined,\n isLoading: true,\n isError: false,\n }\n },\n })\n\n return result\n}\n"],"mappings":";;;;;;;AAQA,MAAM,yBAAyB;AAE/B,MAAa,2BACX,oBACA,4BAKG;CACH,MAAM,EAAE,cAAc,gBAAgB;CACtC,MAAM,YAAY,aAAa;CAC/B,MAAM,oBAAoB,OAAsB,IAAI;CA8EpD,OA9Ce,WAAW;EACxB,SA/BkB,cAAc;GAChC,IAAI,CAAC,oBACH,OAAO,CAAC;GAEV,OAAO,OAAO,QAAQ,kBAAkB,EAAE,SACvC,CAAC,gBAAgB,iBAChB,OAAO,QAAQ,WAAW,EAAE,KAAK,CAAC,YAAY,YAAY;IACxD,MAAM,UAAU,OAAO,UAAU;IACjC,OAAO;KACL,UAAU;MACR,YAAY,kBAAkB,SAAS;MACvC;MACA;MACA,OAAO;KACT;KACA,SAAS,YAA4C;MACnD,IAAI,CAAC,kBAAkB,CAAC,QACtB,OAAO,CAAC;MAEV,OAAO,MAAM,iBAAiB,WAAW,gBAAgB,MAAM;KACjE;KACA,SAAS;KACT,iBAAiB;KACjB,WAAW;KACX,kBAAkB;IACpB;GACF,CAAC,CACL;EACF,GAAG;GAAC;GAAoB;GAAyB;GAAW;EAAS,CAGhD;EACnB,UAAU,YAAY;GACpB,MAAM,MAAM,KAAK,IAAI;GAGrB,IAD0B,QAAQ,MAAM,WAAW,OAAO,SACtC,KAAK,kBAAkB,YAAY,MACrD,kBAAkB,UAAU;GAG9B,MAAM,cAAc,QAAQ,OACzB,WAAW,OAAO,aAAa,OAAO,OACzC;GAGA,IAAI,aACF,kBAAkB,UAAU;GAI9B,MAAM,iBAAiB,kBAAkB,UACrC,MAAM,kBAAkB,UACxB;GAKJ,IAF4B,eAAe,kBAAkB,KAM3D,OAAO;IACL,MAJ0B,QACzB,SAAS,WAAW,OAAO,QAAQ,CAAC,CAAC,EACrC,QAAQ,UAAU,MAAM,MAEtB;IACH,WAAW,CAAC;IACZ,SAAS,QAAQ,MAAM,WAAW,OAAO,OAAO;GAClD;GAGF,OAAO;IACL,MAAM,KAAA;IACN,WAAW;IACX,SAAS;GACX;EACF;CACF,CAEY;AACd"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { formatUnits } from "@lifi/sdk";
|
|
2
|
+
import { create } from "zustand";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
//#region src/hooks/useTokenRateText.ts
|
|
5
|
+
const useTokenRateStore = create((set) => ({
|
|
6
|
+
isForward: true,
|
|
7
|
+
toggleIsForward: () => set((state) => ({ isForward: !state.isForward }))
|
|
8
|
+
}));
|
|
9
|
+
function useTokenRateText(route) {
|
|
10
|
+
const { t } = useTranslation();
|
|
11
|
+
const { isForward, toggleIsForward } = useTokenRateStore();
|
|
12
|
+
const lastStep = route.steps.at(-1);
|
|
13
|
+
const fromToken = {
|
|
14
|
+
...route.fromToken,
|
|
15
|
+
amount: BigInt(route.fromAmount)
|
|
16
|
+
};
|
|
17
|
+
const toToken = {
|
|
18
|
+
...lastStep?.execution?.toToken ?? lastStep?.action.toToken ?? route.toToken,
|
|
19
|
+
amount: lastStep?.execution?.toAmount ? BigInt(lastStep.execution.toAmount) : BigInt(route.toAmount)
|
|
20
|
+
};
|
|
21
|
+
const fromToRate = Number.parseFloat(formatUnits(toToken.amount, toToken.decimals)) / Number.parseFloat(formatUnits(fromToken.amount, fromToken.decimals));
|
|
22
|
+
const toFromRate = Number.parseFloat(formatUnits(fromToken.amount, fromToken.decimals)) / Number.parseFloat(formatUnits(toToken.amount, toToken.decimals));
|
|
23
|
+
const rateText = isForward ? `1 ${fromToken.symbol} ≈ ${t("format.tokenAmount", { value: fromToRate })} ${toToken.symbol}` : `1 ${toToken.symbol} ≈ ${t("format.tokenAmount", { value: toFromRate })} ${fromToken.symbol}`;
|
|
24
|
+
const toggleRate = (e) => {
|
|
25
|
+
e.stopPropagation();
|
|
26
|
+
toggleIsForward();
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
rateText,
|
|
30
|
+
toggleRate
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { useTokenRateText };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=useTokenRateText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTokenRateText.js","names":[],"sources":["../../../src/hooks/useTokenRateText.ts"],"sourcesContent":["import { formatUnits, type RouteExtended } from '@lifi/sdk'\nimport type { MouseEventHandler } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { create } from 'zustand'\n\ninterface TokenRateState {\n isForward: boolean\n toggleIsForward(): void\n}\n\nconst useTokenRateStore = create<TokenRateState>((set) => ({\n isForward: true,\n toggleIsForward: () => set((state) => ({ isForward: !state.isForward })),\n}))\n\nexport function useTokenRateText(route: RouteExtended): {\n rateText: string\n toggleRate: MouseEventHandler\n} {\n const { t } = useTranslation()\n const { isForward, toggleIsForward } = useTokenRateStore()\n\n const lastStep = route.steps.at(-1)\n\n const fromToken = {\n ...route.fromToken,\n amount: BigInt(route.fromAmount),\n }\n const toToken = {\n ...(lastStep?.execution?.toToken ??\n lastStep?.action.toToken ??\n route.toToken),\n amount: lastStep?.execution?.toAmount\n ? BigInt(lastStep.execution.toAmount)\n : BigInt(route.toAmount),\n }\n\n const fromToRate =\n Number.parseFloat(formatUnits(toToken.amount!, toToken.decimals)) /\n Number.parseFloat(formatUnits(fromToken.amount!, fromToken.decimals))\n const toFromRate =\n Number.parseFloat(formatUnits(fromToken.amount!, fromToken.decimals)) /\n Number.parseFloat(formatUnits(toToken.amount!, toToken.decimals))\n\n const rateText = isForward\n ? `1 ${fromToken.symbol} ≈ ${t('format.tokenAmount', { value: fromToRate })} ${toToken.symbol}`\n : `1 ${toToken.symbol} ≈ ${t('format.tokenAmount', { value: toFromRate })} ${fromToken.symbol}`\n\n const toggleRate: MouseEventHandler = (e) => {\n e.stopPropagation()\n toggleIsForward()\n }\n\n return { rateText: rateText, toggleRate: toggleRate }\n}\n"],"mappings":";;;;AAUA,MAAM,oBAAoB,QAAwB,SAAS;CACzD,WAAW;CACX,uBAAuB,KAAK,WAAW,EAAE,WAAW,CAAC,MAAM,UAAU,EAAE;AACzE,EAAE;AAEF,SAAgB,iBAAiB,OAG/B;CACA,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,EAAE,WAAW,oBAAoB,kBAAkB;CAEzD,MAAM,WAAW,MAAM,MAAM,GAAG,EAAE;CAElC,MAAM,YAAY;EAChB,GAAG,MAAM;EACT,QAAQ,OAAO,MAAM,UAAU;CACjC;CACA,MAAM,UAAU;EACd,GAAI,UAAU,WAAW,WACvB,UAAU,OAAO,WACjB,MAAM;EACR,QAAQ,UAAU,WAAW,WACzB,OAAO,SAAS,UAAU,QAAQ,IAClC,OAAO,MAAM,QAAQ;CAC3B;CAEA,MAAM,aACJ,OAAO,WAAW,YAAY,QAAQ,QAAS,QAAQ,QAAQ,CAAC,IAChE,OAAO,WAAW,YAAY,UAAU,QAAS,UAAU,QAAQ,CAAC;CACtE,MAAM,aACJ,OAAO,WAAW,YAAY,UAAU,QAAS,UAAU,QAAQ,CAAC,IACpE,OAAO,WAAW,YAAY,QAAQ,QAAS,QAAQ,QAAQ,CAAC;CAElE,MAAM,WAAW,YACb,KAAK,UAAU,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,WAAW,CAAC,EAAE,GAAG,QAAQ,WACrF,KAAK,QAAQ,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,WAAW,CAAC,EAAE,GAAG,UAAU;CAEzF,MAAM,cAAiC,MAAM;EAC3C,EAAE,gBAAgB;EAClB,gBAAgB;CAClB;CAEA,OAAO;EAAY;EAAsB;CAAW;AACtD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
2
|
+
import { getConfigItemSets, isFormItemAllowed } from "../utils/item.js";
|
|
3
|
+
import { useSDKClient } from "../providers/SDKClientProvider.js";
|
|
4
|
+
import { getQueryKey } from "../utils/queries.js";
|
|
5
|
+
import { getToken } from "@lifi/sdk";
|
|
6
|
+
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
7
|
+
//#region src/hooks/useTokenSearch.ts
|
|
8
|
+
const useTokenSearch = (chainId, tokenQuery, enabled, formType) => {
|
|
9
|
+
const queryClient = useQueryClient();
|
|
10
|
+
const { tokens: configTokens, keyPrefix } = useWidgetConfig();
|
|
11
|
+
const sdkClient = useSDKClient();
|
|
12
|
+
const { data, isLoading } = useQuery({
|
|
13
|
+
queryKey: [
|
|
14
|
+
getQueryKey("token-search", keyPrefix),
|
|
15
|
+
chainId,
|
|
16
|
+
tokenQuery
|
|
17
|
+
],
|
|
18
|
+
queryFn: async ({ queryKey: [, chainId, tokenQuery], signal }) => {
|
|
19
|
+
const token = await getToken(sdkClient, chainId, tokenQuery, { signal });
|
|
20
|
+
if (token) {
|
|
21
|
+
if (!isFormItemAllowed(token, getConfigItemSets(configTokens, (tokens) => new Set(tokens.filter((t) => t.chainId === token.chainId).map((t) => t.address.toLowerCase())), formType), formType, (t) => t.address.toLowerCase())) return null;
|
|
22
|
+
queryClient.setQueriesData({ queryKey: [getQueryKey("tokens", keyPrefix)] }, (data) => {
|
|
23
|
+
if (!data) return data;
|
|
24
|
+
const chainTokens = data[chainId];
|
|
25
|
+
if (chainTokens?.some((t) => t.address.toLowerCase() === token.address.toLowerCase())) return data;
|
|
26
|
+
return {
|
|
27
|
+
...data,
|
|
28
|
+
[chainId]: [...chainTokens ?? [], {
|
|
29
|
+
...token,
|
|
30
|
+
verified: false
|
|
31
|
+
}]
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return token;
|
|
36
|
+
},
|
|
37
|
+
enabled: Boolean(chainId && tokenQuery && enabled),
|
|
38
|
+
retry: false
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
token: data || void 0,
|
|
42
|
+
isLoading
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { useTokenSearch };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=useTokenSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTokenSearch.js","names":[],"sources":["../../../src/hooks/useTokenSearch.ts"],"sourcesContent":["import {\n type BaseToken,\n type ChainId,\n getToken,\n type TokenExtended,\n} from '@lifi/sdk'\nimport { useQuery, useQueryClient } from '@tanstack/react-query'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport type { FormType } from '../stores/form/types.js'\nimport type { TokensByChain } from '../types/token.js'\nimport { getConfigItemSets, isFormItemAllowed } from '../utils/item.js'\nimport { getQueryKey } from '../utils/queries.js'\n\nexport const useTokenSearch = (\n chainId?: number,\n tokenQuery?: string,\n enabled?: boolean,\n formType?: FormType\n): {\n token: TokenExtended | undefined\n isLoading: boolean\n} => {\n const queryClient = useQueryClient()\n const { tokens: configTokens, keyPrefix } = useWidgetConfig()\n const sdkClient = useSDKClient()\n\n const { data, isLoading } = useQuery({\n queryKey: [getQueryKey('token-search', keyPrefix), chainId, tokenQuery],\n queryFn: async ({ queryKey: [, chainId, tokenQuery], signal }) => {\n const token = await getToken(\n sdkClient,\n chainId as ChainId,\n tokenQuery as string,\n {\n signal,\n }\n )\n\n if (token) {\n // Filter config tokens by chain before checking if token is allowed\n const filteredConfigTokens = getConfigItemSets(\n configTokens,\n (tokens: BaseToken[]) =>\n new Set(\n tokens\n .filter((t) => t.chainId === token.chainId)\n .map((t) => t.address.toLowerCase())\n ),\n formType\n )\n\n // Return undefined if the token is denied\n if (\n !isFormItemAllowed(token, filteredConfigTokens, formType, (t) =>\n t.address.toLowerCase()\n )\n ) {\n return null\n }\n\n // Add token to main tokens cache\n queryClient.setQueriesData<TokensByChain>(\n { queryKey: [getQueryKey('tokens', keyPrefix)] },\n (data) => {\n if (!data) {\n return data\n }\n const chainTokens = data[chainId as number]\n if (\n chainTokens?.some(\n (t) => t.address.toLowerCase() === token.address.toLowerCase()\n )\n ) {\n return data\n }\n // Mark token from search as unverified\n return {\n ...data,\n [chainId as number]: [\n ...(chainTokens ?? []),\n { ...token, verified: false },\n ],\n }\n }\n )\n }\n return token as TokenExtended\n },\n\n enabled: Boolean(chainId && tokenQuery && enabled),\n retry: false,\n })\n return {\n token: data || undefined,\n isLoading,\n }\n}\n"],"mappings":";;;;;;;AAcA,MAAa,kBACX,SACA,YACA,SACA,aAIG;CACH,MAAM,cAAc,eAAe;CACnC,MAAM,EAAE,QAAQ,cAAc,cAAc,gBAAgB;CAC5D,MAAM,YAAY,aAAa;CAE/B,MAAM,EAAE,MAAM,cAAc,SAAS;EACnC,UAAU;GAAC,YAAY,gBAAgB,SAAS;GAAG;GAAS;EAAU;EACtE,SAAS,OAAO,EAAE,UAAU,GAAG,SAAS,aAAa,aAAa;GAChE,MAAM,QAAQ,MAAM,SAClB,WACA,SACA,YACA,EACE,OACF,CACF;GAEA,IAAI,OAAO;IAcT,IACE,CAAC,kBAAkB,OAbQ,kBAC3B,eACC,WACC,IAAI,IACF,OACG,QAAQ,MAAM,EAAE,YAAY,MAAM,OAAO,EACzC,KAAK,MAAM,EAAE,QAAQ,YAAY,CAAC,CACvC,GACF,QAK6C,GAAG,WAAW,MACzD,EAAE,QAAQ,YAAY,CACxB,GAEA,OAAO;IAIT,YAAY,eACV,EAAE,UAAU,CAAC,YAAY,UAAU,SAAS,CAAC,EAAE,IAC9C,SAAS;KACR,IAAI,CAAC,MACH,OAAO;KAET,MAAM,cAAc,KAAK;KACzB,IACE,aAAa,MACV,MAAM,EAAE,QAAQ,YAAY,MAAM,MAAM,QAAQ,YAAY,CAC/D,GAEA,OAAO;KAGT,OAAO;MACL,GAAG;OACF,UAAoB,CACnB,GAAI,eAAe,CAAC,GACpB;OAAE,GAAG;OAAO,UAAU;MAAM,CAC9B;KACF;IACF,CACF;GACF;GACA,OAAO;EACT;EAEA,SAAS,QAAQ,WAAW,cAAc,OAAO;EACjD,OAAO;CACT,CAAC;CACD,OAAO;EACL,OAAO,QAAQ,KAAA;EACf;CACF;AACF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
2
|
+
import { isItemAllowed } from "../utils/item.js";
|
|
3
|
+
import { useSDKClient } from "../providers/SDKClientProvider.js";
|
|
4
|
+
import { getQueryKey } from "../utils/queries.js";
|
|
5
|
+
import { filterAllowedTokens, mergeVerifiedWithSearchTokens } from "../utils/token.js";
|
|
6
|
+
import { defaultChainIdsByType } from "../utils/chainType.js";
|
|
7
|
+
import { ChainType, getToken, getTokens } from "@lifi/sdk";
|
|
8
|
+
import { useMemo } from "react";
|
|
9
|
+
import { useQuery } from "@tanstack/react-query";
|
|
10
|
+
import { useChainTypeFromAddress } from "@lifi/widget-provider";
|
|
11
|
+
//#region src/hooks/useTokens.ts
|
|
12
|
+
const refetchInterval = 3e5;
|
|
13
|
+
const useTokens = (formType, search, chainId) => {
|
|
14
|
+
const { tokens: configTokens, chains: chainsConfig, keyPrefix } = useWidgetConfig();
|
|
15
|
+
const sdkClient = useSDKClient();
|
|
16
|
+
const { getChainTypeFromAddress } = useChainTypeFromAddress();
|
|
17
|
+
const { data: verifiedTokens, isLoading } = useQuery({
|
|
18
|
+
queryKey: [getQueryKey("tokens", keyPrefix)],
|
|
19
|
+
queryFn: async ({ signal }) => {
|
|
20
|
+
const tokensResponse = await getTokens(sdkClient, {
|
|
21
|
+
chainTypes: [
|
|
22
|
+
ChainType.EVM,
|
|
23
|
+
ChainType.SVM,
|
|
24
|
+
ChainType.UTXO,
|
|
25
|
+
ChainType.MVM,
|
|
26
|
+
ChainType.TVM
|
|
27
|
+
].filter((chainType) => isItemAllowed(chainType, chainsConfig?.types)),
|
|
28
|
+
orderBy: "volumeUSD24H",
|
|
29
|
+
extended: true,
|
|
30
|
+
limit: 1e3,
|
|
31
|
+
minPriceUSD: 1e-6
|
|
32
|
+
}, { signal });
|
|
33
|
+
return Object.fromEntries(Object.entries(tokensResponse.tokens).map(([chainId, tokens]) => [chainId, tokens.map((token) => ({
|
|
34
|
+
...token,
|
|
35
|
+
verified: true
|
|
36
|
+
}))]));
|
|
37
|
+
},
|
|
38
|
+
refetchInterval,
|
|
39
|
+
staleTime: refetchInterval
|
|
40
|
+
});
|
|
41
|
+
const { data: searchTokens, isLoading: isSearchLoading } = useQuery({
|
|
42
|
+
queryKey: [
|
|
43
|
+
getQueryKey("tokens-search", keyPrefix),
|
|
44
|
+
search,
|
|
45
|
+
chainId
|
|
46
|
+
],
|
|
47
|
+
queryFn: async ({ queryKey, signal }) => {
|
|
48
|
+
const [, searchQuery, searchChainId] = queryKey;
|
|
49
|
+
const tokensResponse = await getTokens(sdkClient, {
|
|
50
|
+
chainTypes: [
|
|
51
|
+
ChainType.EVM,
|
|
52
|
+
ChainType.SVM,
|
|
53
|
+
ChainType.UTXO,
|
|
54
|
+
ChainType.MVM,
|
|
55
|
+
ChainType.TVM
|
|
56
|
+
].filter((chainType) => isItemAllowed(chainType, chainsConfig?.types)),
|
|
57
|
+
orderBy: "volumeUSD24H",
|
|
58
|
+
extended: true,
|
|
59
|
+
search: searchQuery,
|
|
60
|
+
limit: 1e3,
|
|
61
|
+
minPriceUSD: 1e-6
|
|
62
|
+
}, { signal });
|
|
63
|
+
let _chainId = searchChainId;
|
|
64
|
+
if (!_chainId) {
|
|
65
|
+
const chainType = getChainTypeFromAddress(searchQuery);
|
|
66
|
+
if (chainType && chainType in defaultChainIdsByType) _chainId = defaultChainIdsByType[chainType];
|
|
67
|
+
}
|
|
68
|
+
if (_chainId && searchQuery) {
|
|
69
|
+
if (!(tokensResponse.tokens[_chainId] || []).length) {
|
|
70
|
+
const token = await getToken(sdkClient, _chainId, searchQuery, { signal });
|
|
71
|
+
if (token) tokensResponse.tokens[_chainId] = [token];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return Object.fromEntries(Object.entries(tokensResponse.tokens).map(([chainId, tokens]) => [chainId, tokens.map((token) => ({
|
|
75
|
+
...token,
|
|
76
|
+
verified: false
|
|
77
|
+
}))]));
|
|
78
|
+
},
|
|
79
|
+
enabled: !!search,
|
|
80
|
+
refetchInterval,
|
|
81
|
+
staleTime: refetchInterval
|
|
82
|
+
});
|
|
83
|
+
return {
|
|
84
|
+
allTokens: useMemo(() => {
|
|
85
|
+
return filterAllowedTokens(mergeVerifiedWithSearchTokens(verifiedTokens, searchTokens), configTokens, chainsConfig, formType);
|
|
86
|
+
}, [
|
|
87
|
+
verifiedTokens,
|
|
88
|
+
searchTokens,
|
|
89
|
+
configTokens,
|
|
90
|
+
chainsConfig,
|
|
91
|
+
formType
|
|
92
|
+
]),
|
|
93
|
+
isLoading,
|
|
94
|
+
isSearchLoading
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
//#endregion
|
|
98
|
+
export { useTokens };
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=useTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTokens.js","names":[],"sources":["../../../src/hooks/useTokens.ts"],"sourcesContent":["import {\n ChainType,\n getToken,\n getTokens,\n type TokenExtended,\n type TokensExtendedResponse,\n} from '@lifi/sdk'\nimport { useChainTypeFromAddress } from '@lifi/widget-provider'\nimport { useQuery } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport type { FormType } from '../stores/form/types.js'\nimport type { TokensByChain } from '../types/token.js'\nimport { defaultChainIdsByType } from '../utils/chainType.js'\nimport { isItemAllowed } from '../utils/item.js'\nimport { getQueryKey } from '../utils/queries.js'\nimport {\n filterAllowedTokens,\n mergeVerifiedWithSearchTokens,\n} from '../utils/token.js'\n\nconst refetchInterval = 300_000\n\nexport const useTokens = (\n formType?: FormType,\n search?: string,\n chainId?: number\n): {\n allTokens: Record<number, TokenExtended[]> | undefined\n isLoading: boolean\n isSearchLoading: boolean\n} => {\n const {\n tokens: configTokens,\n chains: chainsConfig,\n keyPrefix,\n } = useWidgetConfig()\n const sdkClient = useSDKClient()\n const { getChainTypeFromAddress } = useChainTypeFromAddress()\n\n // Main tokens cache - verified tokens from API\n const { data: verifiedTokens, isLoading } = useQuery({\n queryKey: [getQueryKey('tokens', keyPrefix)],\n queryFn: async ({ signal }) => {\n const chainTypes = [\n ChainType.EVM,\n ChainType.SVM,\n ChainType.UTXO,\n ChainType.MVM,\n ChainType.TVM,\n ].filter((chainType) => isItemAllowed(chainType, chainsConfig?.types))\n\n const tokensResponse: TokensExtendedResponse = await getTokens(\n sdkClient,\n {\n chainTypes,\n orderBy: 'volumeUSD24H',\n extended: true,\n limit: 1000,\n minPriceUSD: 0.000001,\n },\n { signal }\n )\n\n // Mark all tokens as verified\n const tokens: TokensByChain = Object.fromEntries(\n Object.entries(tokensResponse.tokens).map(([chainId, tokens]) => [\n chainId,\n tokens.map((token) => ({ ...token, verified: true })),\n ])\n )\n\n return tokens\n },\n refetchInterval,\n staleTime: refetchInterval,\n })\n\n // Search tokens cache - unverified tokens from search\n const { data: searchTokens, isLoading: isSearchLoading } = useQuery({\n queryKey: [getQueryKey('tokens-search', keyPrefix), search, chainId],\n queryFn: async ({ queryKey, signal }) => {\n const [, searchQuery, searchChainId] = queryKey as [\n string,\n string,\n number,\n ]\n const chainTypes = [\n ChainType.EVM,\n ChainType.SVM,\n ChainType.UTXO,\n ChainType.MVM,\n ChainType.TVM,\n ].filter((chainType) => isItemAllowed(chainType, chainsConfig?.types))\n\n const tokensResponse: TokensExtendedResponse = await getTokens(\n sdkClient,\n {\n chainTypes,\n orderBy: 'volumeUSD24H',\n extended: true,\n search: searchQuery,\n limit: 1000,\n minPriceUSD: 0.000001,\n },\n { signal }\n )\n\n // If the chainId is not provided, try to get it from the search query\n let _chainId = searchChainId\n if (!_chainId) {\n const chainType = getChainTypeFromAddress(searchQuery)\n if (chainType && chainType in defaultChainIdsByType) {\n _chainId = defaultChainIdsByType[chainType]\n }\n }\n\n // Fallback: If the main search returned no tokens for the specific chainId,\n // fetch a single token using the /token endpoint\n if (_chainId && searchQuery) {\n const existingTokens = tokensResponse.tokens[_chainId] || []\n if (!existingTokens.length) {\n const token = await getToken(sdkClient, _chainId, searchQuery, {\n signal,\n })\n if (token) {\n tokensResponse.tokens[_chainId] = [token]\n }\n }\n }\n\n // Mark all search tokens as unverified\n const tokens: TokensByChain = Object.fromEntries(\n Object.entries(tokensResponse.tokens).map(([chainId, tokens]) => [\n chainId,\n tokens.map((token) => ({ ...token, verified: false })),\n ])\n )\n\n return tokens\n },\n enabled: !!search,\n refetchInterval,\n staleTime: refetchInterval,\n })\n\n // Merge tokens at read time - single place where caches are combined\n const allTokens = useMemo(() => {\n const merged = mergeVerifiedWithSearchTokens(verifiedTokens, searchTokens)\n return filterAllowedTokens(merged, configTokens, chainsConfig, formType)\n }, [verifiedTokens, searchTokens, configTokens, chainsConfig, formType])\n\n return {\n allTokens,\n isLoading,\n isSearchLoading,\n }\n}\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,kBAAkB;AAExB,MAAa,aACX,UACA,QACA,YAKG;CACH,MAAM,EACJ,QAAQ,cACR,QAAQ,cACR,cACE,gBAAgB;CACpB,MAAM,YAAY,aAAa;CAC/B,MAAM,EAAE,4BAA4B,wBAAwB;CAG5D,MAAM,EAAE,MAAM,gBAAgB,cAAc,SAAS;EACnD,UAAU,CAAC,YAAY,UAAU,SAAS,CAAC;EAC3C,SAAS,OAAO,EAAE,aAAa;GAS7B,MAAM,iBAAyC,MAAM,UACnD,WACA;IACE,YAXe;KACjB,UAAU;KACV,UAAU;KACV,UAAU;KACV,UAAU;KACV,UAAU;IACZ,EAAE,QAAQ,cAAc,cAAc,WAAW,cAAc,KAAK,CAKvD;IACT,SAAS;IACT,UAAU;IACV,OAAO;IACP,aAAa;GACf,GACA,EAAE,OAAO,CACX;GAUA,OAP8B,OAAO,YACnC,OAAO,QAAQ,eAAe,MAAM,EAAE,KAAK,CAAC,SAAS,YAAY,CAC/D,SACA,OAAO,KAAK,WAAW;IAAE,GAAG;IAAO,UAAU;GAAK,EAAE,CACtD,CAAC,CAGS;EACd;EACA;EACA,WAAW;CACb,CAAC;CAGD,MAAM,EAAE,MAAM,cAAc,WAAW,oBAAoB,SAAS;EAClE,UAAU;GAAC,YAAY,iBAAiB,SAAS;GAAG;GAAQ;EAAO;EACnE,SAAS,OAAO,EAAE,UAAU,aAAa;GACvC,MAAM,GAAG,aAAa,iBAAiB;GAavC,MAAM,iBAAyC,MAAM,UACnD,WACA;IACE,YAXe;KACjB,UAAU;KACV,UAAU;KACV,UAAU;KACV,UAAU;KACV,UAAU;IACZ,EAAE,QAAQ,cAAc,cAAc,WAAW,cAAc,KAAK,CAKvD;IACT,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,aAAa;GACf,GACA,EAAE,OAAO,CACX;GAGA,IAAI,WAAW;GACf,IAAI,CAAC,UAAU;IACb,MAAM,YAAY,wBAAwB,WAAW;IACrD,IAAI,aAAa,aAAa,uBAC5B,WAAW,sBAAsB;GAErC;GAIA,IAAI,YAAY;QAEV,EADmB,eAAe,OAAO,aAAa,CAAC,GACvC,QAAQ;KAC1B,MAAM,QAAQ,MAAM,SAAS,WAAW,UAAU,aAAa,EAC7D,OACF,CAAC;KACD,IAAI,OACF,eAAe,OAAO,YAAY,CAAC,KAAK;IAE5C;;GAWF,OAP8B,OAAO,YACnC,OAAO,QAAQ,eAAe,MAAM,EAAE,KAAK,CAAC,SAAS,YAAY,CAC/D,SACA,OAAO,KAAK,WAAW;IAAE,GAAG;IAAO,UAAU;GAAM,EAAE,CACvD,CAAC,CAGS;EACd;EACA,SAAS,CAAC,CAAC;EACX;EACA,WAAW;CACb,CAAC;CAQD,OAAO;EACL,WANgB,cAAc;GAE9B,OAAO,oBADQ,8BAA8B,gBAAgB,YAC7B,GAAG,cAAc,cAAc,QAAQ;EACzE,GAAG;GAAC;GAAgB;GAAc;GAAc;GAAc;EAAQ,CAG5D;EACR;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useSettingsStoreContext } from "../stores/settings/SettingsStore.js";
|
|
2
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
3
|
+
import { getConfigItemSets, isItemAllowedForSets } from "../utils/item.js";
|
|
4
|
+
import { useSDKClient } from "../providers/SDKClientProvider.js";
|
|
5
|
+
import { getQueryKey } from "../utils/queries.js";
|
|
6
|
+
import { getTools } from "@lifi/sdk";
|
|
7
|
+
import { useQuery } from "@tanstack/react-query";
|
|
8
|
+
//#region src/hooks/useTools.ts
|
|
9
|
+
const useTools = () => {
|
|
10
|
+
const { bridges, exchanges, keyPrefix } = useWidgetConfig();
|
|
11
|
+
const settingsStore = useSettingsStoreContext();
|
|
12
|
+
const sdkClient = useSDKClient();
|
|
13
|
+
const { data } = useQuery({
|
|
14
|
+
queryKey: [
|
|
15
|
+
getQueryKey("tools", keyPrefix),
|
|
16
|
+
bridges?.allow,
|
|
17
|
+
bridges?.deny,
|
|
18
|
+
exchanges?.allow,
|
|
19
|
+
exchanges?.deny
|
|
20
|
+
],
|
|
21
|
+
queryFn: async () => {
|
|
22
|
+
const tools = await getTools(sdkClient);
|
|
23
|
+
const bridgesConfigSets = getConfigItemSets(bridges, (bridges) => new Set(bridges));
|
|
24
|
+
const exchangesConfigSets = getConfigItemSets(exchanges, (exchanges) => new Set(exchanges));
|
|
25
|
+
const result = {
|
|
26
|
+
bridges: tools.bridges.filter((bridge) => isItemAllowedForSets(bridge.key, bridgesConfigSets)),
|
|
27
|
+
exchanges: tools.exchanges.filter((exchange) => isItemAllowedForSets(exchange.key, exchangesConfigSets))
|
|
28
|
+
};
|
|
29
|
+
const { initializeTools } = settingsStore.getState();
|
|
30
|
+
initializeTools("Bridges", result.bridges.map((bridge) => bridge.key));
|
|
31
|
+
initializeTools("Exchanges", result.exchanges.map((exchange) => exchange.key));
|
|
32
|
+
return result;
|
|
33
|
+
},
|
|
34
|
+
refetchInterval: 18e4,
|
|
35
|
+
staleTime: 18e4
|
|
36
|
+
});
|
|
37
|
+
return { tools: data };
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { useTools };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=useTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTools.js","names":[],"sources":["../../../src/hooks/useTools.ts"],"sourcesContent":["import { getTools, type ToolsResponse } from '@lifi/sdk'\nimport { useQuery } from '@tanstack/react-query'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { useSettingsStoreContext } from '../stores/settings/SettingsStore.js'\nimport { getConfigItemSets, isItemAllowedForSets } from '../utils/item.js'\nimport { getQueryKey } from '../utils/queries.js'\n\nexport const useTools = (): { tools: ToolsResponse | undefined } => {\n const { bridges, exchanges, keyPrefix } = useWidgetConfig()\n const settingsStore = useSettingsStoreContext()\n const sdkClient = useSDKClient()\n\n const { data } = useQuery({\n queryKey: [\n getQueryKey('tools', keyPrefix),\n bridges?.allow,\n bridges?.deny,\n exchanges?.allow,\n exchanges?.deny,\n ],\n queryFn: async (): Promise<ToolsResponse> => {\n const tools = await getTools(sdkClient)\n const bridgesConfigSets = getConfigItemSets(\n bridges,\n (bridges) => new Set(bridges)\n )\n const exchangesConfigSets = getConfigItemSets(\n exchanges,\n (exchanges) => new Set(exchanges)\n )\n const result = {\n bridges: tools.bridges.filter((bridge) =>\n isItemAllowedForSets(bridge.key, bridgesConfigSets)\n ),\n exchanges: tools.exchanges.filter((exchange) =>\n isItemAllowedForSets(exchange.key, exchangesConfigSets)\n ),\n }\n const { initializeTools } = settingsStore.getState()\n initializeTools(\n 'Bridges',\n result.bridges.map((bridge) => bridge.key)\n )\n initializeTools(\n 'Exchanges',\n result.exchanges.map((exchange) => exchange.key)\n )\n return result\n },\n refetchInterval: 180_000,\n staleTime: 180_000,\n })\n\n return { tools: data }\n}\n"],"mappings":";;;;;;;;AAQA,MAAa,iBAAuD;CAClE,MAAM,EAAE,SAAS,WAAW,cAAc,gBAAgB;CAC1D,MAAM,gBAAgB,wBAAwB;CAC9C,MAAM,YAAY,aAAa;CAE/B,MAAM,EAAE,SAAS,SAAS;EACxB,UAAU;GACR,YAAY,SAAS,SAAS;GAC9B,SAAS;GACT,SAAS;GACT,WAAW;GACX,WAAW;EACb;EACA,SAAS,YAAoC;GAC3C,MAAM,QAAQ,MAAM,SAAS,SAAS;GACtC,MAAM,oBAAoB,kBACxB,UACC,YAAY,IAAI,IAAI,OAAO,CAC9B;GACA,MAAM,sBAAsB,kBAC1B,YACC,cAAc,IAAI,IAAI,SAAS,CAClC;GACA,MAAM,SAAS;IACb,SAAS,MAAM,QAAQ,QAAQ,WAC7B,qBAAqB,OAAO,KAAK,iBAAiB,CACpD;IACA,WAAW,MAAM,UAAU,QAAQ,aACjC,qBAAqB,SAAS,KAAK,mBAAmB,CACxD;GACF;GACA,MAAM,EAAE,oBAAoB,cAAc,SAAS;GACnD,gBACE,WACA,OAAO,QAAQ,KAAK,WAAW,OAAO,GAAG,CAC3C;GACA,gBACE,aACA,OAAO,UAAU,KAAK,aAAa,SAAS,GAAG,CACjD;GACA,OAAO;EACT;EACA,iBAAiB;EACjB,WAAW;CACb,CAAC;CAED,OAAO,EAAE,OAAO,KAAK;AACvB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
2
|
+
import { useSDKClient } from "../providers/SDKClientProvider.js";
|
|
3
|
+
import { getQueryKey } from "../utils/queries.js";
|
|
4
|
+
import { getStatus } from "@lifi/sdk";
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
import { keepPreviousData, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
7
|
+
import { useAccount } from "@lifi/wallet-management";
|
|
8
|
+
//#region src/hooks/useTransactionDetails.ts
|
|
9
|
+
const useTransactionDetails = (transactionHash) => {
|
|
10
|
+
const { account, accounts } = useAccount();
|
|
11
|
+
const queryClient = useQueryClient();
|
|
12
|
+
const { keyPrefix } = useWidgetConfig();
|
|
13
|
+
const sdkClient = useSDKClient();
|
|
14
|
+
const transactionHistoryQueryKey = useMemo(() => getQueryKey("transaction-history", keyPrefix), [keyPrefix]);
|
|
15
|
+
const { data, isLoading } = useQuery({
|
|
16
|
+
queryKey: [transactionHistoryQueryKey, transactionHash],
|
|
17
|
+
queryFn: async ({ queryKey: [, transactionHash], signal }) => {
|
|
18
|
+
if (transactionHash) {
|
|
19
|
+
for (const account of accounts) {
|
|
20
|
+
const transaction = queryClient.getQueryData([transactionHistoryQueryKey, account.address])?.find((t) => t.sending.txHash === transactionHash);
|
|
21
|
+
if (transaction) return transaction;
|
|
22
|
+
}
|
|
23
|
+
const transaction = await getStatus(sdkClient, { txHash: transactionHash }, { signal });
|
|
24
|
+
const fromAddress = transaction?.fromAddress;
|
|
25
|
+
if (fromAddress) queryClient.setQueryData([transactionHistoryQueryKey, fromAddress], (data) => {
|
|
26
|
+
return [...data, transaction];
|
|
27
|
+
});
|
|
28
|
+
return transaction;
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
refetchInterval: 3e5,
|
|
32
|
+
enabled: account.isConnected && Boolean(transactionHash),
|
|
33
|
+
initialData: () => {
|
|
34
|
+
for (const account of accounts) {
|
|
35
|
+
const transaction = queryClient.getQueryData([transactionHistoryQueryKey, account.address])?.find((t) => t.sending.txHash === transactionHash);
|
|
36
|
+
if (transaction) return transaction;
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
placeholderData: keepPreviousData
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
transaction: data,
|
|
43
|
+
isLoading
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { useTransactionDetails };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=useTransactionDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransactionDetails.js","names":[],"sources":["../../../src/hooks/useTransactionDetails.ts"],"sourcesContent":["import type { FullStatusData } from '@lifi/sdk'\nimport { getStatus, type StatusResponse } from '@lifi/sdk'\nimport { useAccount } from '@lifi/wallet-management'\nimport {\n keepPreviousData,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { getQueryKey } from '../utils/queries.js'\n\nexport const useTransactionDetails = (\n transactionHash?: string\n): {\n transaction: StatusResponse | undefined\n isLoading: boolean\n} => {\n const { account, accounts } = useAccount()\n const queryClient = useQueryClient()\n const { keyPrefix } = useWidgetConfig()\n const sdkClient = useSDKClient()\n\n const transactionHistoryQueryKey = useMemo(\n () => getQueryKey('transaction-history', keyPrefix),\n [keyPrefix]\n )\n\n const { data, isLoading } = useQuery({\n queryKey: [transactionHistoryQueryKey, transactionHash],\n queryFn: async ({ queryKey: [, transactionHash], signal }) => {\n if (transactionHash) {\n for (const account of accounts) {\n const cachedHistory = queryClient.getQueryData<StatusResponse[]>([\n transactionHistoryQueryKey,\n account.address,\n ])\n\n const transaction = cachedHistory?.find(\n (t) => t.sending.txHash === transactionHash\n )\n\n if (transaction) {\n return transaction\n }\n }\n\n const transaction = await getStatus(\n sdkClient,\n {\n txHash: transactionHash,\n },\n { signal }\n )\n\n const fromAddress = (transaction as FullStatusData)?.fromAddress\n\n if (fromAddress) {\n queryClient.setQueryData<StatusResponse[]>(\n [transactionHistoryQueryKey, fromAddress],\n (data) => {\n return [...data!, transaction!]\n }\n )\n }\n\n return transaction\n }\n },\n refetchInterval: 300_000,\n enabled: account.isConnected && Boolean(transactionHash),\n initialData: () => {\n for (const account of accounts) {\n const transaction = queryClient\n .getQueryData<StatusResponse[]>([\n transactionHistoryQueryKey,\n account.address,\n ])\n ?.find((t) => t.sending.txHash === transactionHash)\n if (transaction) {\n return transaction\n }\n }\n },\n placeholderData: keepPreviousData,\n })\n\n return {\n transaction: data,\n isLoading,\n }\n}\n"],"mappings":";;;;;;;;AAaA,MAAa,yBACX,oBAIG;CACH,MAAM,EAAE,SAAS,aAAa,WAAW;CACzC,MAAM,cAAc,eAAe;CACnC,MAAM,EAAE,cAAc,gBAAgB;CACtC,MAAM,YAAY,aAAa;CAE/B,MAAM,6BAA6B,cAC3B,YAAY,uBAAuB,SAAS,GAClD,CAAC,SAAS,CACZ;CAEA,MAAM,EAAE,MAAM,cAAc,SAAS;EACnC,UAAU,CAAC,4BAA4B,eAAe;EACtD,SAAS,OAAO,EAAE,UAAU,GAAG,kBAAkB,aAAa;GAC5D,IAAI,iBAAiB;IACnB,KAAK,MAAM,WAAW,UAAU;KAM9B,MAAM,cALgB,YAAY,aAA+B,CAC/D,4BACA,QAAQ,OACV,CAEgC,GAAG,MAChC,MAAM,EAAE,QAAQ,WAAW,eAC9B;KAEA,IAAI,aACF,OAAO;IAEX;IAEA,MAAM,cAAc,MAAM,UACxB,WACA,EACE,QAAQ,gBACV,GACA,EAAE,OAAO,CACX;IAEA,MAAM,cAAe,aAAgC;IAErD,IAAI,aACF,YAAY,aACV,CAAC,4BAA4B,WAAW,IACvC,SAAS;KACR,OAAO,CAAC,GAAG,MAAO,WAAY;IAChC,CACF;IAGF,OAAO;GACT;EACF;EACA,iBAAiB;EACjB,SAAS,QAAQ,eAAe,QAAQ,eAAe;EACvD,mBAAmB;GACjB,KAAK,MAAM,WAAW,UAAU;IAC9B,MAAM,cAAc,YACjB,aAA+B,CAC9B,4BACA,QAAQ,OACV,CAAC,GACC,MAAM,MAAM,EAAE,QAAQ,WAAW,eAAe;IACpD,IAAI,aACF,OAAO;GAEX;EACF;EACA,iBAAiB;CACnB,CAAC;CAED,OAAO;EACL,aAAa;EACb;CACF;AACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
2
|
+
import { useSDKClient } from "../providers/SDKClientProvider.js";
|
|
3
|
+
import { getQueryKey } from "../utils/queries.js";
|
|
4
|
+
import { getSourceTxHash } from "../stores/routes/utils.js";
|
|
5
|
+
import { useRouteExecutionStoreContext } from "../stores/routes/RouteExecutionStore.js";
|
|
6
|
+
import { useTools } from "./useTools.js";
|
|
7
|
+
import { buildRouteFromTxHistory } from "../utils/converters.js";
|
|
8
|
+
import { getTransactionHistory } from "@lifi/sdk";
|
|
9
|
+
import { useEffect, useMemo } from "react";
|
|
10
|
+
import { useQueries } from "@tanstack/react-query";
|
|
11
|
+
import { useAccount } from "@lifi/wallet-management";
|
|
12
|
+
//#region src/hooks/useTransactionHistory.ts
|
|
13
|
+
const useTransactionHistory = () => {
|
|
14
|
+
const store = useRouteExecutionStoreContext();
|
|
15
|
+
const { accounts } = useAccount();
|
|
16
|
+
const { keyPrefix } = useWidgetConfig();
|
|
17
|
+
const sdkClient = useSDKClient();
|
|
18
|
+
const { tools } = useTools();
|
|
19
|
+
const { data: routeExecutions, isLoading } = useQueries({
|
|
20
|
+
queries: accounts.map((account) => ({
|
|
21
|
+
queryKey: [getQueryKey("transaction-history", keyPrefix), account.address],
|
|
22
|
+
queryFn: (async ({ queryKey: [, accountAddress], signal }) => {
|
|
23
|
+
if (!accountAddress) return [];
|
|
24
|
+
const date = /* @__PURE__ */ new Date();
|
|
25
|
+
date.setFullYear(date.getFullYear() - 10);
|
|
26
|
+
return (await getTransactionHistory(sdkClient, {
|
|
27
|
+
wallet: accountAddress,
|
|
28
|
+
fromTimestamp: Math.floor(date.getTime() / 1e3),
|
|
29
|
+
toTimestamp: Math.floor(Date.now() / 1e3)
|
|
30
|
+
}, { signal })).transfers;
|
|
31
|
+
}),
|
|
32
|
+
refetchInterval: 3e5,
|
|
33
|
+
enabled: Boolean(account.address)
|
|
34
|
+
})),
|
|
35
|
+
combine: (results) => {
|
|
36
|
+
const uniqueTransactions = /* @__PURE__ */ new Map();
|
|
37
|
+
results.forEach((result) => {
|
|
38
|
+
if (result.data) result.data.forEach((transaction) => {
|
|
39
|
+
if (transaction?.transactionId && transaction?.receiving?.chainId && transaction?.sending.chainId) uniqueTransactions.set(transaction.transactionId, transaction);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
data: Array.from(uniqueTransactions.values()).flatMap((transaction) => {
|
|
44
|
+
const routeExecution = buildRouteFromTxHistory(transaction, tools);
|
|
45
|
+
return routeExecution ? [routeExecution] : [];
|
|
46
|
+
}),
|
|
47
|
+
isLoading: results.some((result) => result.isLoading)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const apiTxHashes = useMemo(() => new Set(routeExecutions.map((r) => getSourceTxHash(r.route))), [routeExecutions]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (!apiTxHashes.size) return;
|
|
54
|
+
const { routes, deleteRoute } = store.getState();
|
|
55
|
+
for (const [id, routeExecution] of Object.entries(routes)) {
|
|
56
|
+
const txHash = getSourceTxHash(routeExecution?.route);
|
|
57
|
+
if (txHash && apiTxHashes.has(txHash)) deleteRoute(id);
|
|
58
|
+
}
|
|
59
|
+
}, [apiTxHashes, store]);
|
|
60
|
+
return {
|
|
61
|
+
data: routeExecutions,
|
|
62
|
+
isLoading
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//#endregion
|
|
66
|
+
export { useTransactionHistory };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=useTransactionHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransactionHistory.js","names":[],"sources":["../../../src/hooks/useTransactionHistory.ts"],"sourcesContent":["import type { FullStatusData, StatusResponse } from '@lifi/sdk'\nimport { getTransactionHistory } from '@lifi/sdk'\nimport { useAccount } from '@lifi/wallet-management'\nimport type { QueryFunction } from '@tanstack/react-query'\nimport { useQueries } from '@tanstack/react-query'\nimport { useEffect, useMemo } from 'react'\nimport { useSDKClient } from '../providers/SDKClientProvider.js'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\nimport { useRouteExecutionStoreContext } from '../stores/routes/RouteExecutionStore.js'\nimport type {\n RouteExecution,\n RouteExecutionState,\n} from '../stores/routes/types.js'\nimport { getSourceTxHash } from '../stores/routes/utils.js'\nimport { buildRouteFromTxHistory } from '../utils/converters.js'\nimport { getQueryKey } from '../utils/queries.js'\nimport { useTools } from './useTools.js'\n\nexport const useTransactionHistory = (): {\n data: RouteExecution[]\n isLoading: boolean\n} => {\n const store = useRouteExecutionStoreContext()\n const { accounts } = useAccount()\n const { keyPrefix } = useWidgetConfig()\n const sdkClient = useSDKClient()\n const { tools } = useTools()\n\n const { data: routeExecutions, isLoading } = useQueries({\n queries: accounts.map((account) => ({\n queryKey: [\n getQueryKey('transaction-history', keyPrefix),\n account.address,\n ],\n queryFn: (async ({ queryKey: [, accountAddress], signal }) => {\n if (!accountAddress) {\n return []\n }\n const date = new Date()\n date.setFullYear(date.getFullYear() - 10)\n\n const response = await getTransactionHistory(\n sdkClient,\n {\n wallet: accountAddress,\n fromTimestamp: Math.floor(date.getTime() / 1000),\n toTimestamp: Math.floor(Date.now() / 1000),\n },\n { signal }\n )\n\n return response.transfers\n }) as QueryFunction<StatusResponse[], (string | undefined)[], never>,\n refetchInterval: 300_000,\n enabled: Boolean(account.address),\n })),\n combine: (results) => {\n const uniqueTransactions = new Map<string, StatusResponse>()\n results.forEach((result) => {\n if (result.data) {\n result.data.forEach((transaction) => {\n if (\n (transaction as FullStatusData)?.transactionId &&\n (transaction as FullStatusData)?.receiving?.chainId &&\n transaction?.sending.chainId\n ) {\n uniqueTransactions.set(\n (transaction as FullStatusData).transactionId,\n transaction\n )\n }\n })\n }\n })\n // Convert raw API transactions into RouteExecution objects.\n const data = Array.from(uniqueTransactions.values()).flatMap(\n (transaction) => {\n const routeExecution = buildRouteFromTxHistory(\n transaction as FullStatusData,\n tools\n )\n return routeExecution ? [routeExecution] : []\n }\n )\n return {\n data,\n isLoading: results.some((result) => result.isLoading),\n }\n },\n })\n\n // Stable Set — only recreated when data actually changes (TanStack Query structural sharing).\n const apiTxHashes = useMemo(\n () => new Set(routeExecutions.map((r) => getSourceTxHash(r.route))),\n [routeExecutions]\n )\n\n // Remove local store routes already indexed by the API to avoid duplicates.\n // Must be in an effect — combine runs during render, so store mutations there\n // would trigger \"Cannot update a component while rendering\" in concurrent mode.\n useEffect(() => {\n if (!apiTxHashes.size) {\n return\n }\n const { routes, deleteRoute } = store.getState() as RouteExecutionState\n for (const [id, routeExecution] of Object.entries(routes)) {\n const txHash = getSourceTxHash(\n (routeExecution as RouteExecution | undefined)?.route\n )\n if (txHash && apiTxHashes.has(txHash)) {\n deleteRoute(id)\n }\n }\n }, [apiTxHashes, store])\n\n return {\n data: routeExecutions,\n isLoading,\n }\n}\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAa,8BAGR;CACH,MAAM,QAAQ,8BAA8B;CAC5C,MAAM,EAAE,aAAa,WAAW;CAChC,MAAM,EAAE,cAAc,gBAAgB;CACtC,MAAM,YAAY,aAAa;CAC/B,MAAM,EAAE,UAAU,SAAS;CAE3B,MAAM,EAAE,MAAM,iBAAiB,cAAc,WAAW;EACtD,SAAS,SAAS,KAAK,aAAa;GAClC,UAAU,CACR,YAAY,uBAAuB,SAAS,GAC5C,QAAQ,OACV;GACA,UAAU,OAAO,EAAE,UAAU,GAAG,iBAAiB,aAAa;IAC5D,IAAI,CAAC,gBACH,OAAO,CAAC;IAEV,MAAM,uBAAO,IAAI,KAAK;IACtB,KAAK,YAAY,KAAK,YAAY,IAAI,EAAE;IAYxC,QAAO,MAVgB,sBACrB,WACA;KACE,QAAQ;KACR,eAAe,KAAK,MAAM,KAAK,QAAQ,IAAI,GAAI;KAC/C,aAAa,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI;IAC3C,GACA,EAAE,OAAO,CACX,GAEgB;GAClB;GACA,iBAAiB;GACjB,SAAS,QAAQ,QAAQ,OAAO;EAClC,EAAE;EACF,UAAU,YAAY;GACpB,MAAM,qCAAqB,IAAI,IAA4B;GAC3D,QAAQ,SAAS,WAAW;IAC1B,IAAI,OAAO,MACT,OAAO,KAAK,SAAS,gBAAgB;KACnC,IACG,aAAgC,iBAChC,aAAgC,WAAW,WAC5C,aAAa,QAAQ,SAErB,mBAAmB,IAChB,YAA+B,eAChC,WACF;IAEJ,CAAC;GAEL,CAAC;GAWD,OAAO;IACL,MAVW,MAAM,KAAK,mBAAmB,OAAO,CAAC,EAAE,SAClD,gBAAgB;KACf,MAAM,iBAAiB,wBACrB,aACA,KACF;KACA,OAAO,iBAAiB,CAAC,cAAc,IAAI,CAAC;IAC9C,CAGG;IACH,WAAW,QAAQ,MAAM,WAAW,OAAO,SAAS;GACtD;EACF;CACF,CAAC;CAGD,MAAM,cAAc,cACZ,IAAI,IAAI,gBAAgB,KAAK,MAAM,gBAAgB,EAAE,KAAK,CAAC,CAAC,GAClE,CAAC,eAAe,CAClB;CAKA,gBAAgB;EACd,IAAI,CAAC,YAAY,MACf;EAEF,MAAM,EAAE,QAAQ,gBAAgB,MAAM,SAAS;EAC/C,KAAK,MAAM,CAAC,IAAI,mBAAmB,OAAO,QAAQ,MAAM,GAAG;GACzD,MAAM,SAAS,gBACZ,gBAA+C,KAClD;GACA,IAAI,UAAU,YAAY,IAAI,MAAM,GAClC,YAAY,EAAE;EAElB;CACF,GAAG,CAAC,aAAa,KAAK,CAAC;CAEvB,OAAO;EACL,MAAM;EACN;CACF;AACF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { hasEnumFlag } from "../utils/enum.js";
|
|
2
|
+
import { getSourceTxHash } from "../stores/routes/utils.js";
|
|
3
|
+
import { useRouteExecutionStore } from "../stores/routes/RouteExecutionStore.js";
|
|
4
|
+
import { useTransactionHistory } from "./useTransactionHistory.js";
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
import { useAccount } from "@lifi/wallet-management";
|
|
7
|
+
//#region src/hooks/useTransactionList.ts
|
|
8
|
+
const routesSelector = (state) => state.routes;
|
|
9
|
+
const useTransactionList = () => {
|
|
10
|
+
const { accounts } = useAccount();
|
|
11
|
+
const accountAddresses = useMemo(() => accounts.map((account) => account.address), [accounts]);
|
|
12
|
+
const { data: apiRouteExecutions, isLoading } = useTransactionHistory();
|
|
13
|
+
const routes = useRouteExecutionStore(routesSelector);
|
|
14
|
+
return {
|
|
15
|
+
items: useMemo(() => {
|
|
16
|
+
const apiTxHashes = new Set(apiRouteExecutions.map((r) => getSourceTxHash(r.route)));
|
|
17
|
+
const activeItems = [];
|
|
18
|
+
const localItems = [];
|
|
19
|
+
for (const r of Object.values(routes)) {
|
|
20
|
+
if (!accountAddresses.includes(r.route.fromAddress)) continue;
|
|
21
|
+
if (apiTxHashes.has(getSourceTxHash(r.route))) continue;
|
|
22
|
+
const startedAt = r.route.steps[0]?.execution?.startedAt ?? 0;
|
|
23
|
+
if (r.status === 2 || r.status === 8) activeItems.push({
|
|
24
|
+
type: "active",
|
|
25
|
+
routeId: r.route.id,
|
|
26
|
+
startedAt
|
|
27
|
+
});
|
|
28
|
+
else if (hasEnumFlag(r.status, 4)) localItems.push({
|
|
29
|
+
type: "local",
|
|
30
|
+
routeExecution: r,
|
|
31
|
+
txHash: getSourceTxHash(r.route) ?? "",
|
|
32
|
+
startedAt
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const historyItems = apiRouteExecutions.map((routeExecution) => ({
|
|
36
|
+
type: "history",
|
|
37
|
+
routeExecution,
|
|
38
|
+
txHash: getSourceTxHash(routeExecution.route) ?? "",
|
|
39
|
+
startedAt: routeExecution.route.steps[0]?.execution?.startedAt ?? 0
|
|
40
|
+
}));
|
|
41
|
+
return [
|
|
42
|
+
...activeItems,
|
|
43
|
+
...localItems,
|
|
44
|
+
...historyItems
|
|
45
|
+
].sort((a, b) => b.startedAt - a.startedAt);
|
|
46
|
+
}, [
|
|
47
|
+
accountAddresses,
|
|
48
|
+
apiRouteExecutions,
|
|
49
|
+
routes
|
|
50
|
+
]),
|
|
51
|
+
isLoading
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { useTransactionList };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=useTransactionList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTransactionList.js","names":[],"sources":["../../../src/hooks/useTransactionList.ts"],"sourcesContent":["import { useAccount } from '@lifi/wallet-management'\nimport { useMemo } from 'react'\nimport type {\n ActiveItem,\n HistoryItem,\n LocalItem,\n TransactionListItem,\n} from '../pages/ActivitiesPage/types.js'\nimport { useRouteExecutionStore } from '../stores/routes/RouteExecutionStore.js'\nimport type {\n RouteExecution,\n RouteExecutionState,\n} from '../stores/routes/types.js'\nimport { RouteExecutionStatus } from '../stores/routes/types.js'\nimport { getSourceTxHash } from '../stores/routes/utils.js'\nimport { hasEnumFlag } from '../utils/enum.js'\nimport { useTransactionHistory } from './useTransactionHistory.js'\n\nconst routesSelector = (state: RouteExecutionState) => state.routes\n\nexport const useTransactionList = (): {\n items: TransactionListItem[]\n isLoading: boolean\n} => {\n const { accounts } = useAccount()\n const accountAddresses = useMemo(\n () => accounts.map((account) => account.address),\n [accounts]\n )\n\n const { data: apiRouteExecutions, isLoading } = useTransactionHistory()\n const routes = useRouteExecutionStore(routesSelector)\n\n const items = useMemo<TransactionListItem[]>(() => {\n const apiTxHashes = new Set(\n apiRouteExecutions.map((r) => getSourceTxHash(r.route))\n )\n\n const activeItems: ActiveItem[] = []\n const localItems: LocalItem[] = []\n\n for (const r of Object.values(routes) as RouteExecution[]) {\n if (!accountAddresses.includes(r.route.fromAddress)) {\n continue\n }\n // Guard against duplicates on the render before the store deletion\n // from useTransactionHistory's combine propagates.\n if (apiTxHashes.has(getSourceTxHash(r.route))) {\n continue\n }\n const startedAt = r.route.steps[0]?.execution?.startedAt ?? 0\n if (\n r.status === RouteExecutionStatus.Pending ||\n r.status === RouteExecutionStatus.Failed\n ) {\n activeItems.push({ type: 'active', routeId: r.route.id, startedAt })\n } else if (hasEnumFlag(r.status, RouteExecutionStatus.Done)) {\n localItems.push({\n type: 'local',\n routeExecution: r,\n txHash: getSourceTxHash(r.route) ?? '',\n // store startedAt is already in ms\n startedAt,\n })\n }\n }\n\n const historyItems: HistoryItem[] = apiRouteExecutions.map(\n (routeExecution) => ({\n type: 'history',\n routeExecution,\n txHash: getSourceTxHash(routeExecution.route) ?? '',\n startedAt: routeExecution.route.steps[0]?.execution?.startedAt ?? 0,\n })\n )\n\n return [...activeItems, ...localItems, ...historyItems].sort(\n (a, b) => b.startedAt - a.startedAt\n )\n }, [accountAddresses, apiRouteExecutions, routes])\n\n return { items, isLoading }\n}\n"],"mappings":";;;;;;;AAkBA,MAAM,kBAAkB,UAA+B,MAAM;AAE7D,MAAa,2BAGR;CACH,MAAM,EAAE,aAAa,WAAW;CAChC,MAAM,mBAAmB,cACjB,SAAS,KAAK,YAAY,QAAQ,OAAO,GAC/C,CAAC,QAAQ,CACX;CAEA,MAAM,EAAE,MAAM,oBAAoB,cAAc,sBAAsB;CACtE,MAAM,SAAS,uBAAuB,cAAc;CAkDpD,OAAO;EAAE,OAhDK,cAAqC;GACjD,MAAM,cAAc,IAAI,IACtB,mBAAmB,KAAK,MAAM,gBAAgB,EAAE,KAAK,CAAC,CACxD;GAEA,MAAM,cAA4B,CAAC;GACnC,MAAM,aAA0B,CAAC;GAEjC,KAAK,MAAM,KAAK,OAAO,OAAO,MAAM,GAAuB;IACzD,IAAI,CAAC,iBAAiB,SAAS,EAAE,MAAM,WAAW,GAChD;IAIF,IAAI,YAAY,IAAI,gBAAgB,EAAE,KAAK,CAAC,GAC1C;IAEF,MAAM,YAAY,EAAE,MAAM,MAAM,IAAI,WAAW,aAAa;IAC5D,IACE,EAAE,WAAA,KACF,EAAE,WAAA,GAEF,YAAY,KAAK;KAAE,MAAM;KAAU,SAAS,EAAE,MAAM;KAAI;IAAU,CAAC;SAC9D,IAAI,YAAY,EAAE,QAAA,CAAiC,GACxD,WAAW,KAAK;KACd,MAAM;KACN,gBAAgB;KAChB,QAAQ,gBAAgB,EAAE,KAAK,KAAK;KAEpC;IACF,CAAC;GAEL;GAEA,MAAM,eAA8B,mBAAmB,KACpD,oBAAoB;IACnB,MAAM;IACN;IACA,QAAQ,gBAAgB,eAAe,KAAK,KAAK;IACjD,WAAW,eAAe,MAAM,MAAM,IAAI,WAAW,aAAa;GACpE,EACF;GAEA,OAAO;IAAC,GAAG;IAAa,GAAG;IAAY,GAAG;GAAY,EAAE,MACrD,GAAG,MAAM,EAAE,YAAY,EAAE,SAC5B;EACF,GAAG;GAAC;GAAkB;GAAoB;EAAM,CAEnC;EAAG;CAAU;AAC5B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useWidgetConfig } from "../providers/WidgetProvider/WidgetProvider.js";
|
|
2
|
+
import { useMediaQuery } from "@mui/material";
|
|
3
|
+
//#region src/hooks/useWideVariant.ts
|
|
4
|
+
const defaultExpandableWidth = 852;
|
|
5
|
+
const useWideVariant = () => {
|
|
6
|
+
const { variant, showSingleRoute } = useWidgetConfig();
|
|
7
|
+
const expandableAllowed = useMediaQuery((theme) => theme.breakpoints.up(defaultExpandableWidth));
|
|
8
|
+
return variant === "wide" && expandableAllowed && !showSingleRoute;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { useWideVariant };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=useWideVariant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWideVariant.js","names":[],"sources":["../../../src/hooks/useWideVariant.ts"],"sourcesContent":["import type { Theme } from '@mui/material'\nimport { useMediaQuery } from '@mui/material'\nimport { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'\n\nconst defaultExpandableWidth = 852\n\nexport const useWideVariant = (): boolean => {\n const { variant, showSingleRoute } = useWidgetConfig()\n const expandableAllowed = useMediaQuery((theme: Theme) =>\n theme.breakpoints.up(defaultExpandableWidth)\n )\n return variant === 'wide' && expandableAllowed && !showSingleRoute\n}\n"],"mappings":";;;AAIA,MAAM,yBAAyB;AAE/B,MAAa,uBAAgC;CAC3C,MAAM,EAAE,SAAS,oBAAoB,gBAAgB;CACrD,MAAM,oBAAoB,eAAe,UACvC,MAAM,YAAY,GAAG,sBAAsB,CAC7C;CACA,OAAO,YAAY,UAAU,qBAAqB,CAAC;AACrD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WidgetConfig } from "../types/widget.js";
|
|
2
|
+
import { ExtendedChain } from "@lifi/sdk";
|
|
3
|
+
|
|
4
|
+
//#region src/hooks/useWidgetChains.d.ts
|
|
5
|
+
declare const useWidgetChains: (widgetConfig: WidgetConfig) => {
|
|
6
|
+
chains: ExtendedChain[] | undefined;
|
|
7
|
+
getChainById: (chainId?: number, chains?: ExtendedChain[]) => ExtendedChain | undefined;
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { useWidgetChains };
|
|
12
|
+
//# sourceMappingURL=useWidgetChains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetChains.d.ts","names":[],"sources":["../../../src/hooks/useWidgetChains.ts"],"mappings":";;;;cAIa,eAAA,GACX,YAAA,EAAc,YAAA;EAEd,MAAA,EAAQ,aAAA;EACR,YAAA,GACE,OAAA,WACA,MAAA,GAAS,aAAA,OACN,aAAA;EACL,SAAA;AAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useAvailableChains } from "./useAvailableChains.js";
|
|
2
|
+
//#region src/hooks/useWidgetChains.ts
|
|
3
|
+
const useWidgetChains = (widgetConfig) => {
|
|
4
|
+
return useAvailableChains(void 0, widgetConfig);
|
|
5
|
+
};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { useWidgetChains };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=useWidgetChains.js.map
|