@rango-dev/widget-embedded 0.17.1-next.2 → 0.17.1-next.21
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/dist/QueueManager.d.ts +5 -2
- package/dist/QueueManager.d.ts.map +1 -1
- package/dist/components/AppRouter.d.ts +0 -2
- package/dist/components/AppRouter.d.ts.map +1 -1
- package/dist/components/AppRoutes.d.ts +1 -6
- package/dist/components/AppRoutes.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +1 -3
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +1 -3
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -4
- package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
- package/dist/components/Layout/Layout.d.ts.map +1 -1
- package/dist/components/Layout/Layout.types.d.ts +2 -2
- package/dist/components/Layout/Layout.types.d.ts.map +1 -1
- package/dist/components/NoResult/NoResult.d.ts +4 -0
- package/dist/components/NoResult/NoResult.d.ts.map +1 -0
- package/dist/components/NoResult/NoResult.helpers.d.ts +4 -0
- package/dist/components/NoResult/NoResult.helpers.d.ts.map +1 -0
- package/dist/components/{NoRoutes/NoRoutes.styles.d.ts → NoResult/NoResult.styles.d.ts} +1 -1
- package/dist/components/{NoRoutes/NoRoutes.styles.d.ts.map → NoResult/NoResult.styles.d.ts.map} +1 -1
- package/dist/components/{NoRoutes/NoRoutes.types.d.ts → NoResult/NoResult.types.d.ts} +3 -3
- package/dist/components/NoResult/NoResult.types.d.ts.map +1 -0
- package/dist/components/NoResult/index.d.ts +2 -0
- package/dist/components/NoResult/index.d.ts.map +1 -0
- package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts +4 -0
- package/dist/components/Quote/Quote.d.ts.map +1 -0
- package/dist/components/Quote/Quote.styles.d.ts +1588 -0
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -0
- package/dist/components/Quote/Quote.types.d.ts +21 -0
- package/dist/components/Quote/Quote.types.d.ts.map +1 -0
- package/dist/components/Quote/QuoteSkeleton.d.ts +4 -0
- package/dist/components/Quote/QuoteSkeleton.d.ts.map +1 -0
- package/dist/components/Quote/QuoteSkeleton.styles.d.ts +319 -0
- package/dist/components/Quote/QuoteSkeleton.styles.d.ts.map +1 -0
- package/dist/components/Quote/QuoteSkeleton.types.d.ts +6 -0
- package/dist/components/Quote/QuoteSkeleton.types.d.ts.map +1 -0
- package/dist/components/Quote/QuoteSummary.d.ts +11 -0
- package/dist/components/Quote/QuoteSummary.d.ts.map +1 -0
- package/dist/components/Quote/QuoteSummary.styles.d.ts +158 -0
- package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -0
- package/dist/components/Quote/index.d.ts +4 -0
- package/dist/components/Quote/index.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts +11 -0
- package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts +4 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts +4 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts +9 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -0
- package/dist/components/{RouteErrors/RouteErrors.styles.d.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts} +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +23 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts +11 -0
- package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts +11 -0
- package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts.map +1 -0
- package/dist/components/QuoteWarningsAndErrors/index.d.ts +2 -0
- package/dist/components/QuoteWarningsAndErrors/index.d.ts.map +1 -0
- package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
- package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
- package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
- package/dist/components/UpdateUrl.d.ts +1 -6
- package/dist/components/UpdateUrl.d.ts.map +1 -1
- package/dist/components/WidgetEvents.d.ts.map +1 -1
- package/dist/constants/errors.d.ts +4 -4
- package/dist/constants/errors.d.ts.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/messages.d.ts +1 -1
- package/dist/constants/navigationRoutes.d.ts +1 -2
- package/dist/constants/navigationRoutes.d.ts.map +1 -1
- package/dist/constants/searchParams.d.ts +2 -1
- package/dist/constants/searchParams.d.ts.map +1 -1
- package/dist/constants/warnings.d.ts +2 -2
- package/dist/constants/warnings.d.ts.map +1 -1
- package/dist/containers/App/App.d.ts +3 -0
- package/dist/containers/App/App.d.ts.map +1 -0
- package/dist/containers/App/App.styles.d.ts +158 -0
- package/dist/containers/App/App.styles.d.ts.map +1 -0
- package/dist/containers/App/index.d.ts +2 -0
- package/dist/containers/App/index.d.ts.map +1 -0
- package/dist/containers/QuoteInfo/QuoteInfo.d.ts +4 -0
- package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -0
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +788 -0
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -0
- package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +20 -0
- package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -0
- package/dist/containers/QuoteInfo/index.d.ts +2 -0
- package/dist/containers/QuoteInfo/index.d.ts.map +1 -0
- package/dist/containers/Wallets/Wallets.d.ts +6 -0
- package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
- package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
- package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
- package/dist/containers/Wallets/index.d.ts +2 -0
- package/dist/containers/Wallets/index.d.ts.map +1 -0
- package/dist/containers/Widget/Widget.d.ts +5 -0
- package/dist/containers/Widget/Widget.d.ts.map +1 -0
- package/dist/containers/Widget/Widget.types.d.ts +5 -0
- package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
- package/dist/containers/Widget/index.d.ts +3 -0
- package/dist/containers/Widget/index.d.ts.map +1 -0
- package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
- package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
- package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +14 -0
- package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
- package/dist/containers/WidgetInfo/index.d.ts +2 -0
- package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
- package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
- package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
- package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
- package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
- package/dist/containers/WidgetProvider/index.d.ts +2 -0
- package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
- package/dist/hooks/useConfirmSwap/index.d.ts +2 -0
- package/dist/hooks/useConfirmSwap/index.d.ts.map +1 -0
- package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts +3 -0
- package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -0
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +19 -0
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -0
- package/dist/hooks/{useConfirmSwap.d.ts → useConfirmSwap/useConfirmSwap.types.d.ts} +5 -7
- package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -0
- package/dist/hooks/{useFetchBestRoute.d.ts → useFetchQuote.d.ts} +3 -3
- package/dist/hooks/useFetchQuote.d.ts.map +1 -0
- package/dist/hooks/useForceAutoConnect.d.ts +2 -0
- package/dist/hooks/useForceAutoConnect.d.ts.map +1 -0
- package/dist/hooks/useLanguage.d.ts +1 -1
- package/dist/hooks/useLanguage.d.ts.map +1 -1
- package/dist/hooks/useNavigateBack.d.ts +1 -3
- package/dist/hooks/useNavigateBack.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +5 -7
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
- package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
- package/dist/hooks/useSwapInput.d.ts +4 -2
- package/dist/hooks/useSwapInput.d.ts.map +1 -1
- package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
- package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/pages/ConfirmSwapPage.d.ts +1 -6
- package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
- package/dist/pages/HistoryPage.d.ts.map +1 -1
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/pages/LanguagePage.d.ts.map +1 -1
- package/dist/pages/LiquiditySourcePage.d.ts +1 -2
- package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
- package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
- package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
- package/dist/pages/SettingsPage.d.ts +1 -6
- package/dist/pages/SettingsPage.d.ts.map +1 -1
- package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
- package/dist/pages/ThemePage.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts +1 -8
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/store/AppStore.d.ts +11 -0
- package/dist/store/AppStore.d.ts.map +1 -0
- package/dist/store/app.d.ts +5 -23
- package/dist/store/app.d.ts.map +1 -1
- package/dist/store/{bestRoute.d.ts → quote.d.ts} +39 -27
- package/dist/store/quote.d.ts.map +1 -0
- package/dist/store/settings.d.ts +3 -2
- package/dist/store/settings.d.ts.map +1 -1
- package/dist/store/slices/config.d.ts +3 -2
- package/dist/store/slices/config.d.ts.map +1 -1
- package/dist/store/slices/data.d.ts +3 -0
- package/dist/store/slices/data.d.ts.map +1 -1
- package/dist/store/wallets.d.ts +5 -4
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/types/config.d.ts +19 -5
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/quote.d.ts +82 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/swap.d.ts +3 -13
- package/dist/types/swap.d.ts.map +1 -1
- package/dist/utils/colors.d.ts.map +1 -1
- package/dist/utils/configs.d.ts +1 -0
- package/dist/utils/configs.d.ts.map +1 -1
- package/dist/utils/meta.d.ts +2 -1
- package/dist/utils/meta.d.ts.map +1 -1
- package/dist/utils/numbers.d.ts +1 -1
- package/dist/utils/numbers.d.ts.map +1 -1
- package/dist/utils/{routing.d.ts → quote.d.ts} +16 -12
- package/dist/utils/quote.d.ts.map +1 -0
- package/dist/utils/settings.d.ts +3 -2
- package/dist/utils/settings.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +34 -23
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts +2 -2
- package/dist/utils/wallets.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/QueueManager.tsx +18 -17
- package/src/components/AppRouter.tsx +8 -32
- package/src/components/AppRoutes.tsx +57 -69
- package/src/components/BlockchainList/BlockchainList.tsx +4 -4
- package/src/components/BlockchainsSection/BlockchainsSection.tsx +7 -7
- package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +2 -64
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +39 -45
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +1 -3
- package/src/components/ConfirmWalletsModal/WalletList.tsx +6 -5
- package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
- package/src/components/Layout/Layout.tsx +10 -7
- package/src/components/Layout/Layout.types.ts +2 -2
- package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +3 -3
- package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +6 -6
- package/src/components/{NoRoutes/NoRoutes.helper.ts → NoResult/NoResult.helpers.ts} +23 -16
- package/src/components/{NoRoutes/NoRoutes.styles.ts → NoResult/NoResult.styles.ts} +2 -0
- package/src/components/{NoRoutes/NoRoutes.tsx → NoResult/NoResult.tsx} +10 -12
- package/src/components/{NoRoutes/NoRoutes.types.ts → NoResult/NoResult.types.ts} +3 -2
- package/src/components/NoResult/index.ts +1 -0
- package/src/components/NotificationContent/NotificationContent.tsx +5 -3
- package/src/components/Quote/Quote.styles.ts +239 -0
- package/src/components/Quote/Quote.tsx +413 -0
- package/src/components/Quote/Quote.types.ts +15 -0
- package/src/components/Quote/QuoteSkeleton.styles.ts +110 -0
- package/src/components/Quote/QuoteSkeleton.tsx +108 -0
- package/src/components/Quote/QuoteSkeleton.types.ts +5 -0
- package/src/components/Quote/QuoteSummary.styles.ts +15 -0
- package/src/components/Quote/QuoteSummary.tsx +46 -0
- package/src/components/Quote/index.ts +3 -0
- package/src/components/QuoteWarningsAndErrors/HighValueLossWarningModal.tsx +107 -0
- package/src/components/{RouteErrors/RouteErrorsModalItem.tsx → QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx} +4 -4
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +74 -0
- package/src/components/{RouteErrors/RouteErrors.styles.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts} +8 -1
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +103 -0
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +25 -0
- package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +77 -0
- package/src/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.tsx +38 -0
- package/src/components/QuoteWarningsAndErrors/index.ts +1 -0
- package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +0 -4
- package/src/components/SwapDetails/SwapDetails.tsx +17 -24
- package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
- package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
- package/src/components/SwapsGroup/SwapsGroup.styles.ts +8 -1
- package/src/components/SwapsGroup/SwapsGroup.tsx +0 -2
- package/src/components/SwitchFromAndTo.tsx +2 -2
- package/src/components/TokenList/TokenList.styles.ts +14 -2
- package/src/components/TokenList/TokenList.tsx +6 -7
- package/src/components/UpdateUrl.tsx +36 -29
- package/src/components/WidgetEvents.tsx +4 -2
- package/src/constants/errors.ts +17 -15
- package/src/constants/index.ts +1 -0
- package/src/constants/messages.ts +1 -1
- package/src/constants/navigationRoutes.ts +7 -8
- package/src/constants/searchParams.ts +1 -0
- package/src/constants/warnings.ts +7 -7
- package/src/containers/App/App.styles.ts +18 -0
- package/src/containers/App/App.tsx +55 -0
- package/src/containers/App/index.ts +1 -0
- package/src/containers/QuoteInfo/QuoteInfo.styles.ts +31 -0
- package/src/containers/QuoteInfo/QuoteInfo.tsx +98 -0
- package/src/containers/QuoteInfo/QuoteInfo.types.ts +20 -0
- package/src/containers/QuoteInfo/index.ts +1 -0
- package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +40 -32
- package/src/containers/Wallets/Wallets.types.ts +12 -0
- package/src/containers/Wallets/index.ts +1 -0
- package/src/containers/Widget/Widget.tsx +19 -0
- package/src/containers/Widget/Widget.types.ts +5 -0
- package/src/containers/Widget/index.ts +2 -0
- package/src/containers/WidgetInfo/WidgetInfo.tsx +47 -0
- package/src/containers/WidgetInfo/WidgetInfo.types.ts +14 -0
- package/src/containers/WidgetInfo/index.ts +1 -0
- package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
- package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
- package/src/containers/WidgetProvider/index.ts +1 -0
- package/src/hooks/useConfirmSwap/index.ts +1 -0
- package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +172 -0
- package/src/hooks/useConfirmSwap/useConfirmSwap.ts +137 -0
- package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +19 -0
- package/src/hooks/{useFetchBestRoute.ts → useFetchQuote.ts} +3 -3
- package/src/hooks/useForceAutoConnect.ts +27 -0
- package/src/hooks/useLanguage.ts +2 -2
- package/src/hooks/useNavigateBack.ts +3 -52
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +13 -4
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
- package/src/hooks/useSwapInput.ts +139 -46
- package/src/hooks/useSyncStoresWithConfig.ts +22 -19
- package/src/hooks/useWalletList.ts +3 -5
- package/src/index.ts +14 -3
- package/src/pages/ConfirmSwapPage.tsx +95 -248
- package/src/pages/HistoryPage.tsx +1 -5
- package/src/pages/Home.tsx +75 -270
- package/src/pages/LanguagePage.tsx +0 -5
- package/src/pages/LiquiditySourcePage.tsx +22 -35
- package/src/pages/SelectBlockchainPage.tsx +31 -24
- package/src/pages/SelectSwapItemsPage.tsx +9 -23
- package/src/pages/SettingsPage.tsx +8 -15
- package/src/pages/SwapDetailsPage.tsx +6 -7
- package/src/pages/ThemePage.tsx +0 -4
- package/src/pages/WalletsPage.tsx +4 -15
- package/src/services/httpService.ts +1 -1
- package/src/store/AppStore.tsx +35 -0
- package/src/store/app.ts +18 -6
- package/src/store/{bestRoute.ts → quote.ts} +68 -60
- package/src/store/settings.ts +7 -4
- package/src/store/slices/config.ts +25 -15
- package/src/store/slices/data.ts +64 -29
- package/src/store/wallets.ts +12 -8
- package/src/types/config.ts +20 -5
- package/src/types/index.ts +1 -1
- package/src/types/quote.ts +107 -0
- package/src/types/swap.ts +3 -12
- package/src/utils/colors.ts +2 -1
- package/src/utils/configs.ts +2 -1
- package/src/utils/meta.ts +8 -1
- package/src/utils/numbers.ts +1 -1
- package/src/utils/quote.ts +338 -0
- package/src/utils/settings.ts +8 -7
- package/src/utils/swap.ts +153 -116
- package/src/utils/wallets.ts +29 -17
- package/dist/Wallets.d.ts +0 -17
- package/dist/Wallets.d.ts.map +0 -1
- package/dist/Widget.d.ts +0 -9
- package/dist/Widget.d.ts.map +0 -1
- package/dist/components/NoRoutes/NoRoutes.d.ts +0 -4
- package/dist/components/NoRoutes/NoRoutes.d.ts.map +0 -1
- package/dist/components/NoRoutes/NoRoutes.helper.d.ts +0 -3
- package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +0 -1
- package/dist/components/NoRoutes/NoRoutes.types.d.ts.map +0 -1
- package/dist/components/NoRoutes/index.d.ts +0 -2
- package/dist/components/NoRoutes/index.d.ts.map +0 -1
- package/dist/components/RouteErrors/RouteErrors.d.ts +0 -4
- package/dist/components/RouteErrors/RouteErrors.d.ts.map +0 -1
- package/dist/components/RouteErrors/RouteErrors.styles.d.ts.map +0 -1
- package/dist/components/RouteErrors/RouteErrors.types.d.ts +0 -24
- package/dist/components/RouteErrors/RouteErrors.types.d.ts.map +0 -1
- package/dist/components/RouteErrors/RouteErrorsModal.d.ts +0 -4
- package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +0 -1
- package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts +0 -4
- package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts.map +0 -1
- package/dist/components/RouteErrors/index.d.ts +0 -2
- package/dist/components/RouteErrors/index.d.ts.map +0 -1
- package/dist/hooks/useConfirmSwap.d.ts.map +0 -1
- package/dist/hooks/useFetchBestRoute.d.ts.map +0 -1
- package/dist/store/bestRoute.d.ts.map +0 -1
- package/dist/store/meta.d.ts +0 -23
- package/dist/store/meta.d.ts.map +0 -1
- package/dist/types/routing.d.ts +0 -65
- package/dist/types/routing.d.ts.map +0 -1
- package/dist/utils/routing.d.ts.map +0 -1
- package/src/Widget.tsx +0 -119
- package/src/components/NoRoutes/index.ts +0 -1
- package/src/components/RouteErrors/RouteErrors.tsx +0 -79
- package/src/components/RouteErrors/RouteErrors.types.ts +0 -29
- package/src/components/RouteErrors/RouteErrorsModal.tsx +0 -129
- package/src/components/RouteErrors/index.ts +0 -1
- package/src/hooks/useConfirmSwap.ts +0 -303
- package/src/store/meta.ts +0 -39
- package/src/types/routing.ts +0 -77
- package/src/utils/routing.ts +0 -321
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { TokenWithBalance } from '../components/TokenList';
|
|
2
2
|
import type { Wallet } from '../types';
|
|
3
3
|
import type { PendingSwap } from '@rango-dev/queue-manager-rango-preset/dist/shared';
|
|
4
|
-
import type {
|
|
4
|
+
import type {
|
|
5
|
+
BestRouteResponse,
|
|
6
|
+
BlockchainMeta,
|
|
7
|
+
MetaResponse,
|
|
8
|
+
Token,
|
|
9
|
+
} from 'rango-sdk';
|
|
5
10
|
|
|
6
11
|
import BigNumber from 'bignumber.js';
|
|
7
12
|
import { create } from 'zustand';
|
|
@@ -9,21 +14,24 @@ import { subscribeWithSelector } from 'zustand/middleware';
|
|
|
9
14
|
|
|
10
15
|
import { ZERO } from '../constants/numbers';
|
|
11
16
|
import { isPositiveNumber } from '../utils/numbers';
|
|
12
|
-
import {
|
|
13
|
-
createRetryRoute,
|
|
14
|
-
getBestRouteToTokenUsdPrice,
|
|
15
|
-
} from '../utils/routing';
|
|
17
|
+
import { createRetryQuote, getQuoteToTokenUsdPrice } from '../utils/quote';
|
|
16
18
|
import { calcOutputUsdValue } from '../utils/swap';
|
|
17
19
|
|
|
18
|
-
import { useMetaStore } from './meta';
|
|
19
20
|
import createSelectors from './selectors';
|
|
20
21
|
|
|
21
|
-
const getUsdValue = (
|
|
22
|
+
export const getUsdValue = (
|
|
23
|
+
token: Token | null,
|
|
24
|
+
amount: string
|
|
25
|
+
): BigNumber | null =>
|
|
22
26
|
token?.usdPrice
|
|
23
27
|
? new BigNumber(amount || ZERO).multipliedBy(token?.usdPrice || 0)
|
|
24
28
|
: null;
|
|
25
29
|
|
|
26
|
-
export
|
|
30
|
+
export type Meta = Pick<MetaResponse, 'blockchains' | 'tokens'>;
|
|
31
|
+
|
|
32
|
+
export type SetTokenParams = { token: Token; meta: Meta } | { token: null };
|
|
33
|
+
|
|
34
|
+
export interface QuoteState {
|
|
27
35
|
fromBlockchain: BlockchainMeta | null;
|
|
28
36
|
toBlockchain: BlockchainMeta | null;
|
|
29
37
|
inputAmount: string;
|
|
@@ -32,30 +40,32 @@ export interface RouteState {
|
|
|
32
40
|
outputUsdValue: BigNumber | null;
|
|
33
41
|
fromToken: TokenWithBalance | null;
|
|
34
42
|
toToken: TokenWithBalance | null;
|
|
35
|
-
|
|
43
|
+
quoteWalletsConfirmed: boolean;
|
|
36
44
|
selectedWallets: Wallet[];
|
|
37
|
-
|
|
45
|
+
quoteWarningsConfirmed: boolean;
|
|
46
|
+
resetQuote: () => void;
|
|
38
47
|
resetToBlockchain: () => void;
|
|
39
48
|
resetFromBlockchain: () => void;
|
|
40
49
|
setFromBlockchain: (chain: BlockchainMeta | null) => void;
|
|
41
50
|
setToBlockchain: (chian: BlockchainMeta | null) => void;
|
|
42
51
|
|
|
43
|
-
setFromToken: (
|
|
44
|
-
setToToken: (
|
|
52
|
+
setFromToken: (params: SetTokenParams) => void;
|
|
53
|
+
setToToken: (params: SetTokenParams) => void;
|
|
45
54
|
setInputAmount: (amount: string) => void;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
retry: (pendingSwap: PendingSwap) => void;
|
|
55
|
+
quote: BestRouteResponse | null;
|
|
56
|
+
setQuote: (quote: BestRouteResponse | null) => void;
|
|
57
|
+
retry: (pendingSwap: PendingSwap, meta: Meta) => void;
|
|
49
58
|
switchFromAndTo: () => void;
|
|
50
|
-
|
|
59
|
+
setQuoteWalletConfirmed: (flag: boolean) => void;
|
|
51
60
|
setSelectedWallets: (wallets: Wallet[]) => void;
|
|
52
61
|
customDestination: string;
|
|
53
62
|
setCustomDestination: (address: string) => void;
|
|
54
|
-
|
|
63
|
+
resetQuoteWallets: () => void;
|
|
64
|
+
setQuoteWarningsConfirmed: (flag: boolean) => void;
|
|
55
65
|
}
|
|
56
66
|
|
|
57
|
-
export const
|
|
58
|
-
create<
|
|
67
|
+
export const useQuoteStore = createSelectors(
|
|
68
|
+
create<QuoteState>()(
|
|
59
69
|
subscribeWithSelector((set) => ({
|
|
60
70
|
fromBlockchain: null,
|
|
61
71
|
fromToken: null,
|
|
@@ -65,37 +75,38 @@ export const useBestRouteStore = createSelectors(
|
|
|
65
75
|
outputUsdValue: new BigNumber(0),
|
|
66
76
|
toBlockchain: null,
|
|
67
77
|
toToken: null,
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
quote: null,
|
|
79
|
+
quoteWalletsConfirmed: false,
|
|
70
80
|
selectedWallets: [],
|
|
71
81
|
customDestination: '',
|
|
72
|
-
|
|
82
|
+
quoteWarningsConfirmed: false,
|
|
83
|
+
setQuote: (quote) =>
|
|
73
84
|
set((state) => {
|
|
74
85
|
let outputAmount: BigNumber | null = null;
|
|
75
86
|
let outputUsdValue: BigNumber = ZERO;
|
|
76
87
|
if (!isPositiveNumber(state.inputAmount)) {
|
|
77
88
|
return {};
|
|
78
89
|
}
|
|
79
|
-
if (!!
|
|
80
|
-
outputAmount = !!
|
|
81
|
-
? new BigNumber(
|
|
90
|
+
if (!!quote) {
|
|
91
|
+
outputAmount = !!quote.result?.outputAmount
|
|
92
|
+
? new BigNumber(quote.result?.outputAmount)
|
|
82
93
|
: null;
|
|
83
94
|
outputUsdValue = calcOutputUsdValue(
|
|
84
|
-
|
|
85
|
-
|
|
95
|
+
quote.result?.outputAmount,
|
|
96
|
+
getQuoteToTokenUsdPrice(quote) || state.toToken?.usdPrice
|
|
86
97
|
);
|
|
87
98
|
}
|
|
88
99
|
return {
|
|
89
|
-
|
|
90
|
-
...(!!
|
|
100
|
+
quote: quote,
|
|
101
|
+
...(!!quote && {
|
|
91
102
|
outputAmount,
|
|
92
103
|
outputUsdValue,
|
|
93
104
|
}),
|
|
94
105
|
};
|
|
95
106
|
}),
|
|
96
|
-
|
|
107
|
+
resetQuote: () =>
|
|
97
108
|
set(() => ({
|
|
98
|
-
|
|
109
|
+
quote: null,
|
|
99
110
|
outputAmount: null,
|
|
100
111
|
outputUsdValue: new BigNumber(0),
|
|
101
112
|
})),
|
|
@@ -108,7 +119,7 @@ export const useBestRouteStore = createSelectors(
|
|
|
108
119
|
return {
|
|
109
120
|
fromBlockchain: chain,
|
|
110
121
|
...(state.fromToken && {
|
|
111
|
-
|
|
122
|
+
quote: null,
|
|
112
123
|
fromToken: null,
|
|
113
124
|
outputAmount: null,
|
|
114
125
|
outputUsdValue: null,
|
|
@@ -116,18 +127,17 @@ export const useBestRouteStore = createSelectors(
|
|
|
116
127
|
};
|
|
117
128
|
});
|
|
118
129
|
},
|
|
119
|
-
setFromToken: (
|
|
120
|
-
const { blockchains } = useMetaStore.getState().meta;
|
|
130
|
+
setFromToken: (params) => {
|
|
121
131
|
return set((state) => ({
|
|
122
|
-
fromToken: token,
|
|
123
|
-
...(token && {
|
|
132
|
+
fromToken: params.token,
|
|
133
|
+
...(params.token && {
|
|
124
134
|
fromBlockchain:
|
|
125
|
-
blockchains.find(
|
|
126
|
-
(blockchain) => blockchain.name === token.blockchain
|
|
135
|
+
params.meta.blockchains.find(
|
|
136
|
+
(blockchain) => blockchain.name === params.token.blockchain
|
|
127
137
|
) ?? null,
|
|
128
138
|
}),
|
|
129
139
|
...(!!state.inputAmount && {
|
|
130
|
-
inputUsdValue: getUsdValue(token, state.inputAmount),
|
|
140
|
+
inputUsdValue: getUsdValue(params.token, state.inputAmount),
|
|
131
141
|
}),
|
|
132
142
|
}));
|
|
133
143
|
},
|
|
@@ -140,7 +150,7 @@ export const useBestRouteStore = createSelectors(
|
|
|
140
150
|
return {
|
|
141
151
|
toBlockchain: chain,
|
|
142
152
|
...(state.toToken && {
|
|
143
|
-
|
|
153
|
+
quote: null,
|
|
144
154
|
toToken: null,
|
|
145
155
|
outputAmount: null,
|
|
146
156
|
outputUsdValue: null,
|
|
@@ -148,14 +158,13 @@ export const useBestRouteStore = createSelectors(
|
|
|
148
158
|
};
|
|
149
159
|
});
|
|
150
160
|
},
|
|
151
|
-
setToToken: (
|
|
152
|
-
const { blockchains } = useMetaStore.getState().meta;
|
|
161
|
+
setToToken: (params) => {
|
|
153
162
|
return set(() => ({
|
|
154
|
-
toToken: token,
|
|
155
|
-
...(token && {
|
|
163
|
+
toToken: params.token,
|
|
164
|
+
...(params.token && {
|
|
156
165
|
toBlockchain:
|
|
157
|
-
blockchains.find(
|
|
158
|
-
(blockchain) => blockchain.name === token.blockchain
|
|
166
|
+
params.meta.blockchains.find(
|
|
167
|
+
(blockchain) => blockchain.name === params.token.blockchain
|
|
159
168
|
) ?? null,
|
|
160
169
|
}),
|
|
161
170
|
}));
|
|
@@ -166,24 +175,22 @@ export const useBestRouteStore = createSelectors(
|
|
|
166
175
|
...(!amount && {
|
|
167
176
|
outputAmount: new BigNumber(0),
|
|
168
177
|
outputUsdValue: new BigNumber(0),
|
|
169
|
-
|
|
178
|
+
quote: null,
|
|
170
179
|
}),
|
|
171
180
|
...(!!state.fromToken && {
|
|
172
181
|
inputUsdValue: getUsdValue(state.fromToken, amount),
|
|
173
182
|
}),
|
|
174
183
|
}));
|
|
175
184
|
},
|
|
176
|
-
retry: (pendingSwap) => {
|
|
177
|
-
const { tokens, blockchains } =
|
|
178
|
-
|
|
185
|
+
retry: (pendingSwap, meta) => {
|
|
186
|
+
const { tokens, blockchains } = meta;
|
|
179
187
|
const {
|
|
180
188
|
fromBlockchain,
|
|
181
189
|
fromToken,
|
|
182
190
|
toBlockchain,
|
|
183
191
|
toToken,
|
|
184
192
|
inputAmount,
|
|
185
|
-
} =
|
|
186
|
-
|
|
193
|
+
} = createRetryQuote(pendingSwap, blockchains, tokens);
|
|
187
194
|
set({
|
|
188
195
|
fromBlockchain,
|
|
189
196
|
fromToken,
|
|
@@ -193,7 +200,7 @@ export const useBestRouteStore = createSelectors(
|
|
|
193
200
|
outputUsdValue: new BigNumber(0),
|
|
194
201
|
toBlockchain,
|
|
195
202
|
toToken,
|
|
196
|
-
|
|
203
|
+
quote: null,
|
|
197
204
|
});
|
|
198
205
|
},
|
|
199
206
|
switchFromAndTo: () =>
|
|
@@ -208,14 +215,13 @@ export const useBestRouteStore = createSelectors(
|
|
|
208
215
|
state.outputAmount?.toString() || ''
|
|
209
216
|
),
|
|
210
217
|
})),
|
|
211
|
-
|
|
212
218
|
resetFromBlockchain: () =>
|
|
213
219
|
set(() => ({
|
|
214
220
|
fromToken: null,
|
|
215
221
|
fromBlockchain: null,
|
|
216
222
|
outputAmount: null,
|
|
217
223
|
outputUsdValue: null,
|
|
218
|
-
|
|
224
|
+
quote: null,
|
|
219
225
|
})),
|
|
220
226
|
resetToBlockchain: () =>
|
|
221
227
|
set(() => ({
|
|
@@ -223,20 +229,22 @@ export const useBestRouteStore = createSelectors(
|
|
|
223
229
|
toBlockchain: null,
|
|
224
230
|
outputAmount: null,
|
|
225
231
|
outputUsdValue: null,
|
|
226
|
-
|
|
232
|
+
quote: null,
|
|
227
233
|
})),
|
|
228
|
-
|
|
234
|
+
setQuoteWalletConfirmed: (flag) =>
|
|
229
235
|
set({
|
|
230
|
-
|
|
236
|
+
quoteWalletsConfirmed: flag,
|
|
231
237
|
}),
|
|
232
238
|
setSelectedWallets: (wallets) => set({ selectedWallets: wallets }),
|
|
233
239
|
setCustomDestination: (address) => set({ customDestination: address }),
|
|
234
|
-
|
|
240
|
+
resetQuoteWallets: () =>
|
|
235
241
|
set({
|
|
236
|
-
|
|
242
|
+
quoteWalletsConfirmed: false,
|
|
237
243
|
selectedWallets: [],
|
|
238
244
|
customDestination: '',
|
|
239
245
|
}),
|
|
246
|
+
setQuoteWarningsConfirmed: (flag) =>
|
|
247
|
+
set({ quoteWarningsConfirmed: flag }),
|
|
240
248
|
}))
|
|
241
249
|
)
|
|
242
250
|
);
|
package/src/store/settings.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SwapperMeta } from 'rango-sdk';
|
|
2
|
+
|
|
1
3
|
import { type Language } from '@rango-dev/ui';
|
|
2
4
|
import { create } from 'zustand';
|
|
3
5
|
import { persist, subscribeWithSelector } from 'zustand/middleware';
|
|
@@ -7,7 +9,6 @@ import { DEFAULT_LANGUAGE } from '../constants/languages';
|
|
|
7
9
|
import { DEFAULT_SLIPPAGE } from '../constants/swapSettings';
|
|
8
10
|
import { removeDuplicateFrom } from '../utils/common';
|
|
9
11
|
|
|
10
|
-
import { useMetaStore } from './meta';
|
|
11
12
|
import createSelectors from './selectors';
|
|
12
13
|
|
|
13
14
|
export type ThemeMode = 'auto' | 'dark' | 'light';
|
|
@@ -31,7 +32,10 @@ export interface SettingsState {
|
|
|
31
32
|
toggleLiquiditySource: (name: string) => void;
|
|
32
33
|
setTheme: (theme: ThemeMode) => void;
|
|
33
34
|
setLanguage: (language: Language) => void;
|
|
34
|
-
toggleAllLiquiditySources: (
|
|
35
|
+
toggleAllLiquiditySources: (
|
|
36
|
+
swappers: SwapperMeta[],
|
|
37
|
+
shouldReset?: boolean
|
|
38
|
+
) => void;
|
|
35
39
|
setAffiliateRef: (affiliateRef: string | null) => void;
|
|
36
40
|
setAffiliatePercent: (affiliatePercent: number | null) => void;
|
|
37
41
|
setAffiliateWallets: (
|
|
@@ -102,12 +106,11 @@ export const useSettingsStore = createSelectors(
|
|
|
102
106
|
set(() => ({
|
|
103
107
|
affiliateWallets,
|
|
104
108
|
})),
|
|
105
|
-
toggleAllLiquiditySources: (shouldReset
|
|
109
|
+
toggleAllLiquiditySources: (swappers, shouldReset) =>
|
|
106
110
|
set((state) => {
|
|
107
111
|
if (shouldReset) {
|
|
108
112
|
return { disabledLiquiditySources: [] };
|
|
109
113
|
}
|
|
110
|
-
const { swappers } = useMetaStore.getState().meta;
|
|
111
114
|
const swappersGroup = removeDuplicateFrom(
|
|
112
115
|
swappers.map((swapper) => swapper.swapperGroup)
|
|
113
116
|
);
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { WidgetConfig } from '../../types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { StateCreatorWithInitialData } from '../app';
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
export const DEFAULT_CONFIG: WidgetConfig = {
|
|
5
|
+
apiKey: '',
|
|
6
|
+
multiWallets: true,
|
|
7
|
+
enableNewLiquiditySources: true,
|
|
8
|
+
};
|
|
5
9
|
|
|
6
10
|
export type ConfigSlice = {
|
|
7
11
|
config: WidgetConfig;
|
|
@@ -9,18 +13,24 @@ export type ConfigSlice = {
|
|
|
9
13
|
updateConfig: (config: WidgetConfig) => void;
|
|
10
14
|
};
|
|
11
15
|
|
|
12
|
-
export const createConfigSlice:
|
|
13
|
-
|
|
16
|
+
export const createConfigSlice: StateCreatorWithInitialData<
|
|
17
|
+
WidgetConfig,
|
|
18
|
+
ConfigSlice,
|
|
19
|
+
ConfigSlice
|
|
20
|
+
> = (initialData, set, get) => {
|
|
21
|
+
return {
|
|
22
|
+
config: { ...DEFAULT_CONFIG, ...initialData },
|
|
14
23
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
24
|
+
// Actions
|
|
25
|
+
updateConfig: (nextConfig: WidgetConfig) => {
|
|
26
|
+
const currentConfig = get().config;
|
|
18
27
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
28
|
+
set({
|
|
29
|
+
config: {
|
|
30
|
+
...currentConfig,
|
|
31
|
+
...nextConfig,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
};
|
package/src/store/slices/data.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { StateCreator } from 'zustand';
|
|
|
6
6
|
|
|
7
7
|
import { httpService as sdk } from '../../services/httpService';
|
|
8
8
|
import { containsText } from '../../utils/common';
|
|
9
|
+
import { sortLiquiditySourcesByGroupTitle } from '../../utils/settings';
|
|
9
10
|
import { tokensAreEqual } from '../../utils/wallets';
|
|
10
11
|
|
|
11
12
|
type BlockchainOptions = {
|
|
@@ -18,15 +19,16 @@ type TokenOptions = {
|
|
|
18
19
|
blockchain?: string;
|
|
19
20
|
searchFor?: string;
|
|
20
21
|
};
|
|
21
|
-
|
|
22
|
+
export type FetchStatus = 'loading' | 'success' | 'failed';
|
|
22
23
|
export interface DataSlice {
|
|
23
24
|
_blockchains: BlockchainMeta[];
|
|
24
25
|
_tokens: Token[];
|
|
25
26
|
_popularTokens: Token[];
|
|
26
27
|
_swappers: SwapperMeta[];
|
|
27
|
-
|
|
28
|
+
fetchStatus: FetchStatus;
|
|
28
29
|
blockchains: (options?: BlockchainOptions) => BlockchainMeta[];
|
|
29
30
|
tokens: (options?: TokenOptions) => Token[];
|
|
31
|
+
swappers: () => SwapperMeta[];
|
|
30
32
|
isTokenPinned: (token: Token) => boolean;
|
|
31
33
|
|
|
32
34
|
fetch: () => Promise<void>;
|
|
@@ -43,7 +45,7 @@ export const createDataSlice: StateCreator<
|
|
|
43
45
|
_tokens: [],
|
|
44
46
|
_popularTokens: [],
|
|
45
47
|
_swappers: [],
|
|
46
|
-
|
|
48
|
+
fetchStatus: 'loading',
|
|
47
49
|
// Selectors
|
|
48
50
|
blockchains: (options) => {
|
|
49
51
|
const blockchainsFromState = get()._blockchains;
|
|
@@ -163,41 +165,74 @@ export const createDataSlice: StateCreator<
|
|
|
163
165
|
);
|
|
164
166
|
return pinned;
|
|
165
167
|
},
|
|
168
|
+
swappers: () => {
|
|
169
|
+
const {
|
|
170
|
+
config: { enableNewLiquiditySources, liquiditySources },
|
|
171
|
+
} = get();
|
|
172
|
+
|
|
173
|
+
/*
|
|
174
|
+
* If the enableNewLiquiditySources flag is set to true, we return all swappers that are not included in the config.
|
|
175
|
+
* Otherwise, we return all swappers that are included in the config.
|
|
176
|
+
*/
|
|
177
|
+
const swappers = get()._swappers.filter((swapper) => {
|
|
178
|
+
const swapperGroupIncludedInLiquiditySources = liquiditySources?.includes(
|
|
179
|
+
swapper.swapperGroup
|
|
180
|
+
);
|
|
181
|
+
|
|
182
|
+
const shouldExcludeLiquiditySources =
|
|
183
|
+
enableNewLiquiditySources ||
|
|
184
|
+
!liquiditySources ||
|
|
185
|
+
liquiditySources.length === 0;
|
|
186
|
+
|
|
187
|
+
return shouldExcludeLiquiditySources
|
|
188
|
+
? !swapperGroupIncludedInLiquiditySources
|
|
189
|
+
: swapperGroupIncludedInLiquiditySources;
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
const sortedSwappers = swappers.sort(sortLiquiditySourcesByGroupTitle);
|
|
166
193
|
|
|
194
|
+
return sortedSwappers;
|
|
195
|
+
},
|
|
167
196
|
// Actions
|
|
168
197
|
fetch: async () => {
|
|
169
|
-
|
|
198
|
+
try {
|
|
199
|
+
const response = await sdk().getAllMetadata();
|
|
170
200
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
201
|
+
set({ fetchStatus: 'success' });
|
|
202
|
+
const blockchains: BlockchainMeta[] = [];
|
|
203
|
+
const tokens: Token[] = [];
|
|
204
|
+
const popularTokens: Token[] = response.popularTokens;
|
|
205
|
+
const swappers: SwapperMeta[] = response.swappers;
|
|
175
206
|
|
|
176
|
-
|
|
207
|
+
const blockchainsWithAtLeastOneToken = new Set();
|
|
177
208
|
|
|
178
|
-
|
|
179
|
-
|
|
209
|
+
response.tokens.forEach((token) => {
|
|
210
|
+
blockchainsWithAtLeastOneToken.add(token.blockchain);
|
|
180
211
|
|
|
181
|
-
|
|
182
|
-
|
|
212
|
+
tokens.push(token);
|
|
213
|
+
});
|
|
183
214
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
215
|
+
response.blockchains.forEach((blockchain) => {
|
|
216
|
+
if (
|
|
217
|
+
blockchain.enabled &&
|
|
218
|
+
blockchainsWithAtLeastOneToken.has(blockchain.name)
|
|
219
|
+
) {
|
|
220
|
+
blockchains.push(blockchain);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
192
223
|
|
|
193
|
-
|
|
194
|
-
|
|
224
|
+
// Sort
|
|
225
|
+
blockchains.sort((a, b) => a.sort - b.sort);
|
|
195
226
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
227
|
+
set({
|
|
228
|
+
_blockchains: blockchains,
|
|
229
|
+
_tokens: tokens,
|
|
230
|
+
_popularTokens: popularTokens,
|
|
231
|
+
_swappers: swappers,
|
|
232
|
+
});
|
|
233
|
+
} catch (error) {
|
|
234
|
+
set({ fetchStatus: 'failed' });
|
|
235
|
+
throw error;
|
|
236
|
+
}
|
|
202
237
|
},
|
|
203
238
|
});
|
package/src/store/wallets.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Wallet } from '../types';
|
|
2
2
|
import type { WalletType } from '@rango-dev/wallets-shared';
|
|
3
|
+
import type { Token } from 'rango-sdk';
|
|
3
4
|
|
|
4
5
|
import { create } from 'zustand';
|
|
5
6
|
import { subscribeWithSelector } from 'zustand/middleware';
|
|
@@ -11,7 +12,6 @@ import {
|
|
|
11
12
|
resetConnectedWalletState,
|
|
12
13
|
} from '../utils/wallets';
|
|
13
14
|
|
|
14
|
-
import { useMetaStore } from './meta';
|
|
15
15
|
import createSelectors from './selectors';
|
|
16
16
|
|
|
17
17
|
export type TokenBalance = {
|
|
@@ -38,11 +38,15 @@ interface WalletsStore {
|
|
|
38
38
|
connectedWallets: ConnectedWallet[];
|
|
39
39
|
customDestination: string;
|
|
40
40
|
loading: boolean;
|
|
41
|
-
connectWallet: (accounts: Wallet[]) => void;
|
|
41
|
+
connectWallet: (accounts: Wallet[], tokens: Token[]) => void;
|
|
42
42
|
disconnectWallet: (walletType: WalletType) => void;
|
|
43
43
|
selectWallets: (wallets: { walletType: string; chain: string }[]) => void;
|
|
44
44
|
clearConnectedWallet: () => void;
|
|
45
|
-
getWalletsDetails: (
|
|
45
|
+
getWalletsDetails: (
|
|
46
|
+
accounts: Wallet[],
|
|
47
|
+
tokens: Token[],
|
|
48
|
+
shouldRetry?: boolean
|
|
49
|
+
) => void;
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
export const useWalletsStore = createSelectors(
|
|
@@ -51,7 +55,7 @@ export const useWalletsStore = createSelectors(
|
|
|
51
55
|
connectedWallets: [],
|
|
52
56
|
customDestination: '',
|
|
53
57
|
loading: false,
|
|
54
|
-
connectWallet: (accounts) => {
|
|
58
|
+
connectWallet: (accounts, tokens) => {
|
|
55
59
|
const getWalletsDetails = get().getWalletsDetails;
|
|
56
60
|
set((state) => ({
|
|
57
61
|
loading: true,
|
|
@@ -77,7 +81,7 @@ export const useWalletsStore = createSelectors(
|
|
|
77
81
|
})
|
|
78
82
|
),
|
|
79
83
|
}));
|
|
80
|
-
getWalletsDetails(accounts);
|
|
84
|
+
getWalletsDetails(accounts, tokens);
|
|
81
85
|
},
|
|
82
86
|
disconnectWallet: (walletType) => {
|
|
83
87
|
set((state) => {
|
|
@@ -135,9 +139,8 @@ export const useWalletsStore = createSelectors(
|
|
|
135
139
|
connectedWallets: [],
|
|
136
140
|
selectedWallets: [],
|
|
137
141
|
})),
|
|
138
|
-
getWalletsDetails: async (accounts, shouldRetry = true) => {
|
|
142
|
+
getWalletsDetails: async (accounts, tokens, shouldRetry = true) => {
|
|
139
143
|
const getWalletsDetails = get().getWalletsDetails;
|
|
140
|
-
const { tokens } = useMetaStore.getState().meta;
|
|
141
144
|
set((state) => ({
|
|
142
145
|
loading: true,
|
|
143
146
|
connectedWallets: state.connectedWallets.map((wallet) => {
|
|
@@ -173,7 +176,7 @@ export const useWalletsStore = createSelectors(
|
|
|
173
176
|
matchedAccount &&
|
|
174
177
|
shouldRetry
|
|
175
178
|
) {
|
|
176
|
-
getWalletsDetails([matchedAccount], false);
|
|
179
|
+
getWalletsDetails([matchedAccount], tokens, false);
|
|
177
180
|
}
|
|
178
181
|
return matchedAccount && retrievedBalanceAccount
|
|
179
182
|
? {
|
|
@@ -183,6 +186,7 @@ export const useWalletsStore = createSelectors(
|
|
|
183
186
|
retrievedBalanceAccount,
|
|
184
187
|
tokens
|
|
185
188
|
),
|
|
189
|
+
loading: false,
|
|
186
190
|
}
|
|
187
191
|
: connectedWallet;
|
|
188
192
|
}
|
package/src/types/config.ts
CHANGED
|
@@ -61,7 +61,7 @@ export type WidgetTheme = {
|
|
|
61
61
|
* @property {{ [key: string]: string }} wallets - If you want to change the default affiliate wallet
|
|
62
62
|
* addresses, you can provide new values here. (Map of route blockchains to affiliate address)
|
|
63
63
|
*/
|
|
64
|
-
export type
|
|
64
|
+
export type WidgetAffiliate = {
|
|
65
65
|
ref?: string;
|
|
66
66
|
percent?: number;
|
|
67
67
|
wallets?: { [key: string]: string };
|
|
@@ -85,13 +85,24 @@ export type BlockchainAndTokenConfig = {
|
|
|
85
85
|
tokens?: Asset[];
|
|
86
86
|
};
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* `ExperimentalFeatures`
|
|
90
|
+
*
|
|
91
|
+
* @property {boolean} routing
|
|
92
|
+
*- This property is optional and sets experimental in quote api.
|
|
93
|
+
*/
|
|
94
|
+
type ExperimentalFeatures = {
|
|
95
|
+
routing?: boolean;
|
|
96
|
+
};
|
|
97
|
+
|
|
88
98
|
/**
|
|
89
99
|
* The type WidgetConfig defines the configuration options for a widget, including API key, affiliate
|
|
90
100
|
* reference, amount, blockchain and token configurations, liquidity sources, wallet types, language,
|
|
91
101
|
* and theme.
|
|
92
102
|
*
|
|
93
103
|
* @property {string} apiKey - The API key used to communicate with Rango API
|
|
94
|
-
* @property {
|
|
104
|
+
* @property {string} apiUrl - The API url used to set custom API url
|
|
105
|
+
* @property {WidgetAffiliate} affiliate - If you want to charge users fee per transaction, you should
|
|
95
106
|
* pass `WidgetAffiliate` including affiliateRef, affiliatePercent, and affiliateWallets.
|
|
96
107
|
* @property {number} amount - The default input amount.
|
|
97
108
|
* @property {BlockchainAndTokenConfig} from - The `from` property is an optional property of type
|
|
@@ -121,13 +132,16 @@ export type BlockchainAndTokenConfig = {
|
|
|
121
132
|
* If `externalWallets` is `true`, you should add `WidgetWallets` to your app.
|
|
122
133
|
* @property {Asset} pinnedTokens - The `pinnedTokens` property is an optional array of `Asset` objects that
|
|
123
134
|
* you could use to pin tokens of your choice to the top of the token list.
|
|
124
|
-
* @property {boolean}
|
|
135
|
+
* @property {boolean} enableNewLiquiditySources - The `enableNewLiquiditySources` property is a boolean value that when you
|
|
125
136
|
* set it to true, whenever a new liquidity source is added, it will be added to your list as well.
|
|
137
|
+
* @property {ExperimentalFeatures} experimental - The `experimental` property is an optional object that specifies some experimental features.
|
|
126
138
|
*/
|
|
139
|
+
|
|
127
140
|
export type WidgetConfig = {
|
|
128
141
|
apiKey: string;
|
|
142
|
+
apiUrl?: string;
|
|
129
143
|
walletConnectProjectId?: string;
|
|
130
|
-
affiliate?:
|
|
144
|
+
affiliate?: WidgetAffiliate;
|
|
131
145
|
amount?: number;
|
|
132
146
|
from?: BlockchainAndTokenConfig;
|
|
133
147
|
to?: BlockchainAndTokenConfig;
|
|
@@ -139,5 +153,6 @@ export type WidgetConfig = {
|
|
|
139
153
|
theme?: WidgetTheme;
|
|
140
154
|
externalWallets?: boolean;
|
|
141
155
|
pinnedTokens?: Asset[];
|
|
142
|
-
|
|
156
|
+
enableNewLiquiditySources?: boolean;
|
|
157
|
+
experimental?: ExperimentalFeatures;
|
|
143
158
|
};
|
package/src/types/index.ts
CHANGED