@rango-dev/widget-embedded 0.17.1-next.3 → 0.17.1-next.31
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.styles.d.ts +370 -56
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +0 -2
- 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/HeaderButtons/HomeButtons.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/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +1 -1
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -1
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +1727 -0
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
- package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts +633 -3
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
- package/dist/components/Quote/Quote.types.d.ts +0 -1
- package/dist/components/Quote/Quote.types.d.ts.map +1 -1
- package/dist/components/Quote/QuoteSummary.styles.d.ts +157 -0
- package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +1 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +1 -1
- package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts +628 -0
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
- package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
- package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts +157 -0
- 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.helpers.d.ts +2 -2
- package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.styles.d.ts +942 -0
- package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.types.d.ts +3 -9
- package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
- package/dist/components/TokenList/index.d.ts +0 -1
- package/dist/components/TokenList/index.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.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +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/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.map +1 -1
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +316 -0
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -1
- package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +3 -0
- package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -1
- 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.helpers.d.ts +20 -0
- package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts.map +1 -0
- package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +21 -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/useConfirmSwap.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +6 -3
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -1
- 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 +3 -5
- 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.map +1 -1
- package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
- package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
- package/dist/hooks/useTheme.d.ts +1 -1
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/index.d.ts +20 -8
- 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 +47 -0
- package/dist/store/AppStore.d.ts.map +1 -0
- package/dist/store/app.d.ts +41 -22
- package/dist/store/app.d.ts.map +1 -1
- package/dist/store/notification.d.ts +4 -3
- package/dist/store/notification.d.ts.map +1 -1
- package/dist/store/quote.d.ts +23 -16
- package/dist/store/quote.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/slices/settings.d.ts +39 -0
- package/dist/store/slices/settings.d.ts.map +1 -0
- package/dist/store/ui.d.ts +2 -1
- package/dist/store/ui.d.ts.map +1 -1
- package/dist/store/wallets.d.ts +14 -9
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/types/config.d.ts +38 -5
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/swap.d.ts +4 -14
- package/dist/types/swap.d.ts.map +1 -1
- package/dist/types/wallets.d.ts +15 -1
- package/dist/types/wallets.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/providers.d.ts +2 -2
- package/dist/utils/providers.d.ts.map +1 -1
- package/dist/utils/queue.d.ts +2 -2
- package/dist/utils/queue.d.ts.map +1 -1
- package/dist/utils/quote.d.ts +1 -1
- package/dist/utils/quote.d.ts.map +1 -1
- package/dist/utils/settings.d.ts +6 -2
- package/dist/utils/settings.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +16 -7
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/time.d.ts +1 -1
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts +7 -9
- package/dist/utils/wallets.d.ts.map +1 -1
- package/package.json +12 -10
- 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.styles.ts +2 -2
- package/src/components/BlockchainList/BlockchainList.tsx +4 -4
- package/src/components/BlockchainsSection/BlockchainsSection.tsx +4 -4
- package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +12 -6
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +20 -21
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +0 -2
- package/src/components/ConfirmWalletsModal/WalletList.tsx +6 -5
- package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
- package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
- package/src/components/Layout/Layout.tsx +20 -7
- package/src/components/Layout/Layout.types.ts +2 -2
- package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +14 -7
- package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +63 -60
- package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +17 -8
- package/src/components/NoResult/NoResult.helpers.ts +12 -12
- package/src/components/NoResult/NoResult.tsx +6 -6
- package/src/components/NotificationContent/NotificationContent.tsx +5 -3
- package/src/components/Quote/Quote.styles.ts +42 -12
- package/src/components/Quote/Quote.tsx +106 -37
- package/src/components/Quote/Quote.types.ts +0 -1
- package/src/components/Quote/QuoteSkeleton.tsx +1 -1
- package/src/components/Quote/QuoteSummary.styles.ts +9 -8
- package/src/components/Quote/QuoteSummary.tsx +2 -2
- package/src/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx +1 -1
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +11 -4
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts +8 -1
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +13 -13
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +1 -0
- package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +3 -3
- package/src/components/Slippage/Slippage.tsx +3 -5
- package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -7
- package/src/components/SwapDetails/SwapDetails.helpers.tsx +1 -1
- package/src/components/SwapDetails/SwapDetails.styles.ts +37 -33
- package/src/components/SwapDetails/SwapDetails.tsx +33 -45
- package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +1 -1
- package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
- package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
- package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +1 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +1 -1
- package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +1 -1
- package/src/components/SwapsGroup/SwapsGroup.styles.ts +10 -1
- package/src/components/SwapsGroup/SwapsGroup.tsx +3 -5
- package/src/components/TokenList/TokenList.helpers.ts +2 -2
- package/src/components/TokenList/TokenList.styles.ts +58 -37
- package/src/components/TokenList/TokenList.tsx +28 -23
- package/src/components/TokenList/TokenList.types.ts +3 -10
- package/src/components/TokenList/index.ts +0 -1
- package/src/components/UpdateUrl.tsx +23 -18
- package/src/components/WidgetEvents.tsx +4 -2
- package/src/constants/errors.ts +9 -5
- package/src/constants/index.ts +1 -0
- package/src/constants/navigationRoutes.ts +7 -8
- package/src/constants/searchParams.ts +1 -0
- package/src/containers/App/App.styles.ts +18 -0
- package/src/containers/App/App.tsx +52 -0
- package/src/containers/App/index.ts +1 -0
- package/src/containers/QuoteInfo/QuoteInfo.styles.ts +17 -1
- package/src/containers/QuoteInfo/QuoteInfo.tsx +44 -43
- package/src/containers/QuoteInfo/QuoteInfo.types.ts +3 -0
- package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +48 -34
- 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.helpers.ts +64 -0
- package/src/containers/WidgetInfo/WidgetInfo.tsx +62 -0
- package/src/containers/WidgetInfo/WidgetInfo.types.ts +21 -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/useConfirmSwap.helpers.ts +15 -11
- package/src/hooks/useConfirmSwap/useConfirmSwap.ts +25 -24
- package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +1 -1
- package/src/hooks/useForceAutoConnect.ts +27 -0
- package/src/hooks/useLanguage.ts +4 -5
- 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 +15 -6
- package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
- package/src/hooks/useSwapInput.ts +89 -30
- package/src/hooks/useSyncStoresWithConfig.ts +38 -22
- package/src/hooks/useTheme.ts +4 -5
- package/src/hooks/useWalletList.ts +3 -5
- package/src/index.ts +53 -5
- package/src/pages/ConfirmSwapPage.tsx +61 -41
- package/src/pages/HistoryPage.tsx +2 -7
- package/src/pages/Home.tsx +58 -88
- package/src/pages/LanguagePage.tsx +0 -5
- package/src/pages/LiquiditySourcePage.tsx +24 -37
- package/src/pages/SelectBlockchainPage.tsx +28 -21
- package/src/pages/SelectSwapItemsPage.tsx +10 -27
- package/src/pages/SettingsPage.tsx +28 -24
- package/src/pages/SwapDetailsPage.tsx +6 -7
- package/src/pages/ThemePage.tsx +2 -7
- package/src/pages/WalletsPage.tsx +4 -15
- package/src/services/httpService.ts +1 -1
- package/src/store/AppStore.tsx +41 -0
- package/src/store/app.ts +44 -6
- package/src/store/quote.ts +29 -26
- package/src/store/slices/config.ts +25 -15
- package/src/store/slices/data.ts +64 -29
- package/src/store/slices/settings.ts +168 -0
- package/src/store/wallets.ts +68 -37
- package/src/types/config.ts +50 -5
- package/src/types/swap.ts +4 -13
- package/src/types/wallets.ts +18 -1
- package/src/utils/colors.ts +2 -1
- package/src/utils/configs.ts +2 -1
- package/src/utils/date.ts +1 -1
- package/src/utils/meta.ts +8 -1
- package/src/utils/providers.ts +8 -5
- package/src/utils/queue.ts +2 -2
- package/src/utils/quote.ts +7 -7
- package/src/utils/settings.ts +17 -10
- package/src/utils/swap.ts +59 -55
- package/src/utils/time.ts +1 -1
- package/src/utils/wallets.ts +107 -149
- 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/store/meta.d.ts +0 -23
- package/dist/store/meta.d.ts.map +0 -1
- package/dist/store/settings.d.ts +0 -81
- package/dist/store/settings.d.ts.map +0 -1
- package/src/Widget.tsx +0 -119
- package/src/store/meta.ts +0 -39
- package/src/store/settings.ts +0 -158
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
|
});
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type { ConfigSlice } from './config';
|
|
2
|
+
import type { WidgetConfig } from '../../types';
|
|
3
|
+
import type { SwapperMeta } from 'rango-sdk';
|
|
4
|
+
import type { StateCreator } from 'zustand';
|
|
5
|
+
|
|
6
|
+
import { type Language } from '@rango-dev/ui';
|
|
7
|
+
|
|
8
|
+
import { BLOCKCHAIN_LIST_SIZE } from '../../constants/configs';
|
|
9
|
+
import { DEFAULT_LANGUAGE } from '../../constants/languages';
|
|
10
|
+
import { DEFAULT_SLIPPAGE } from '../../constants/swapSettings';
|
|
11
|
+
import { removeDuplicateFrom } from '../../utils/common';
|
|
12
|
+
import { isFeatureHidden } from '../../utils/settings';
|
|
13
|
+
|
|
14
|
+
export type ThemeMode = 'auto' | 'dark' | 'light';
|
|
15
|
+
|
|
16
|
+
export interface SettingsSlice {
|
|
17
|
+
theme: ThemeMode;
|
|
18
|
+
language: Language;
|
|
19
|
+
disabledLiquiditySources: string[];
|
|
20
|
+
/** Keeping a history of blockchains that user has selected (in Swap process) */
|
|
21
|
+
preferredBlockchains: string[];
|
|
22
|
+
slippage: number;
|
|
23
|
+
customSlippage: number | null;
|
|
24
|
+
infiniteApprove: boolean;
|
|
25
|
+
affiliateRef: string | null;
|
|
26
|
+
affiliatePercent: number | null;
|
|
27
|
+
affiliateWallets: { [key: string]: string } | null;
|
|
28
|
+
|
|
29
|
+
setSlippage: (slippage: number) => void;
|
|
30
|
+
setCustomSlippage: (customSlippage: number | null) => void;
|
|
31
|
+
toggleInfiniteApprove: () => void;
|
|
32
|
+
toggleLiquiditySource: (name: string) => void;
|
|
33
|
+
setTheme: (theme: ThemeMode) => void;
|
|
34
|
+
setLanguage: (language: Language) => void;
|
|
35
|
+
toggleAllLiquiditySources: (
|
|
36
|
+
swappers: SwapperMeta[],
|
|
37
|
+
shouldReset?: boolean
|
|
38
|
+
) => void;
|
|
39
|
+
setAffiliateRef: (affiliateRef: string | null) => void;
|
|
40
|
+
setAffiliatePercent: (affiliatePercent: number | null) => void;
|
|
41
|
+
setAffiliateWallets: (
|
|
42
|
+
affiliateWallets: { [key: string]: string } | null
|
|
43
|
+
) => void;
|
|
44
|
+
addPreferredBlockchain: (blockchain: string) => void;
|
|
45
|
+
updateSettings: (config: WidgetConfig) => void;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const createSettingsSlice: StateCreator<
|
|
49
|
+
SettingsSlice & ConfigSlice,
|
|
50
|
+
[],
|
|
51
|
+
[],
|
|
52
|
+
SettingsSlice
|
|
53
|
+
> = (set, get) => ({
|
|
54
|
+
disabledLiquiditySources: [],
|
|
55
|
+
theme: 'auto',
|
|
56
|
+
language: DEFAULT_LANGUAGE,
|
|
57
|
+
preferredBlockchains: [],
|
|
58
|
+
slippage: DEFAULT_SLIPPAGE,
|
|
59
|
+
customSlippage: null,
|
|
60
|
+
infiniteApprove: false,
|
|
61
|
+
affiliateRef: null,
|
|
62
|
+
affiliatePercent: null,
|
|
63
|
+
affiliateWallets: null,
|
|
64
|
+
|
|
65
|
+
addPreferredBlockchain: (blockchain) => {
|
|
66
|
+
const currentPreferredBlockchains = get().preferredBlockchains;
|
|
67
|
+
|
|
68
|
+
const noNeedToDoAnything = currentPreferredBlockchains.find(
|
|
69
|
+
(preferredBlockchain, index) => {
|
|
70
|
+
const isSameBlockchain = preferredBlockchain === blockchain;
|
|
71
|
+
const isInVisibleList = index <= BLOCKCHAIN_LIST_SIZE - 1;
|
|
72
|
+
|
|
73
|
+
return isSameBlockchain && isInVisibleList;
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
if (noNeedToDoAnything) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const nextPreferredBlockchains: string[] =
|
|
82
|
+
currentPreferredBlockchains.filter((preferredBlockchain) => {
|
|
83
|
+
const isSameBlockchain = preferredBlockchain === blockchain;
|
|
84
|
+
|
|
85
|
+
return !isSameBlockchain;
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
set(() => ({
|
|
89
|
+
preferredBlockchains: [blockchain, ...nextPreferredBlockchains],
|
|
90
|
+
}));
|
|
91
|
+
},
|
|
92
|
+
setSlippage: (slippage) =>
|
|
93
|
+
set(() => ({
|
|
94
|
+
slippage: slippage,
|
|
95
|
+
})),
|
|
96
|
+
setCustomSlippage: (customSlippage) =>
|
|
97
|
+
set(() => ({
|
|
98
|
+
customSlippage: customSlippage,
|
|
99
|
+
})),
|
|
100
|
+
setAffiliateRef: (affiliateRef) =>
|
|
101
|
+
set(() => ({
|
|
102
|
+
affiliateRef,
|
|
103
|
+
})),
|
|
104
|
+
setAffiliatePercent: (affiliatePercent) =>
|
|
105
|
+
set(() => ({
|
|
106
|
+
affiliatePercent,
|
|
107
|
+
})),
|
|
108
|
+
|
|
109
|
+
setAffiliateWallets: (affiliateWallets) =>
|
|
110
|
+
set(() => ({
|
|
111
|
+
affiliateWallets,
|
|
112
|
+
})),
|
|
113
|
+
toggleAllLiquiditySources: (swappers, shouldReset) =>
|
|
114
|
+
set((state) => {
|
|
115
|
+
if (shouldReset) {
|
|
116
|
+
return { disabledLiquiditySources: [] };
|
|
117
|
+
}
|
|
118
|
+
const swappersGroup = removeDuplicateFrom(
|
|
119
|
+
swappers.map((swapper) => swapper.swapperGroup)
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
if (swappersGroup.length === state.disabledLiquiditySources.length) {
|
|
123
|
+
return { disabledLiquiditySources: [] };
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
disabledLiquiditySources: swappersGroup,
|
|
128
|
+
};
|
|
129
|
+
}),
|
|
130
|
+
toggleInfiniteApprove: () =>
|
|
131
|
+
set((state) => ({
|
|
132
|
+
infiniteApprove: !state.infiniteApprove,
|
|
133
|
+
})),
|
|
134
|
+
toggleLiquiditySource: (name) =>
|
|
135
|
+
set((state) => {
|
|
136
|
+
if (state.disabledLiquiditySources.includes(name)) {
|
|
137
|
+
return {
|
|
138
|
+
disabledLiquiditySources: state.disabledLiquiditySources.filter(
|
|
139
|
+
(liquiditySource) => liquiditySource != name
|
|
140
|
+
),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
disabledLiquiditySources: state.disabledLiquiditySources.concat(name),
|
|
145
|
+
};
|
|
146
|
+
}),
|
|
147
|
+
setTheme: (theme) =>
|
|
148
|
+
set(() => ({
|
|
149
|
+
theme,
|
|
150
|
+
})),
|
|
151
|
+
setLanguage: (language) =>
|
|
152
|
+
set(() => ({
|
|
153
|
+
language,
|
|
154
|
+
})),
|
|
155
|
+
updateSettings: (nextConfig: WidgetConfig) => {
|
|
156
|
+
const { features } = nextConfig;
|
|
157
|
+
|
|
158
|
+
const isThemeHidden = isFeatureHidden('theme', features);
|
|
159
|
+
const isLanguageHidden = isFeatureHidden('language', features);
|
|
160
|
+
const isLiquidityHidden = isFeatureHidden('liquiditySource', features);
|
|
161
|
+
|
|
162
|
+
set({
|
|
163
|
+
...(isThemeHidden && { theme: 'auto' }),
|
|
164
|
+
...(isLanguageHidden && { language: DEFAULT_LANGUAGE }),
|
|
165
|
+
...(isLiquidityHidden && { disabledLiquiditySources: [] }),
|
|
166
|
+
});
|
|
167
|
+
},
|
|
168
|
+
});
|
package/src/store/wallets.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import type { Wallet } from '../types';
|
|
1
|
+
import type { Balance, TokensBalance, 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';
|
|
6
7
|
|
|
7
8
|
import { httpService } from '../services/httpService';
|
|
8
9
|
import {
|
|
10
|
+
createTokenHash,
|
|
9
11
|
isAccountAndWalletMatched,
|
|
10
12
|
makeBalanceFor,
|
|
13
|
+
makeTokensBalance,
|
|
11
14
|
resetConnectedWalletState,
|
|
12
15
|
} from '../utils/wallets';
|
|
13
16
|
|
|
14
|
-
import { useMetaStore } from './meta';
|
|
15
17
|
import createSelectors from './selectors';
|
|
16
18
|
|
|
17
19
|
export type TokenBalance = {
|
|
@@ -33,25 +35,31 @@ export interface ConnectedWallet extends Wallet {
|
|
|
33
35
|
loading: boolean;
|
|
34
36
|
error: boolean;
|
|
35
37
|
}
|
|
36
|
-
|
|
37
38
|
interface WalletsStore {
|
|
38
39
|
connectedWallets: ConnectedWallet[];
|
|
40
|
+
balances: TokensBalance;
|
|
39
41
|
customDestination: string;
|
|
40
42
|
loading: boolean;
|
|
41
|
-
connectWallet: (accounts: Wallet[]) => void;
|
|
43
|
+
connectWallet: (accounts: Wallet[], tokens: Token[]) => void;
|
|
42
44
|
disconnectWallet: (walletType: WalletType) => void;
|
|
43
45
|
selectWallets: (wallets: { walletType: string; chain: string }[]) => void;
|
|
44
46
|
clearConnectedWallet: () => void;
|
|
45
|
-
getWalletsDetails: (
|
|
47
|
+
getWalletsDetails: (
|
|
48
|
+
accounts: Wallet[],
|
|
49
|
+
tokens: Token[],
|
|
50
|
+
shouldRetry?: boolean
|
|
51
|
+
) => void;
|
|
52
|
+
getBalanceFor: (token: Token) => Balance | null;
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
export const useWalletsStore = createSelectors(
|
|
49
56
|
create<WalletsStore>()(
|
|
50
57
|
subscribeWithSelector((set, get) => ({
|
|
51
58
|
connectedWallets: [],
|
|
59
|
+
balances: {},
|
|
52
60
|
customDestination: '',
|
|
53
61
|
loading: false,
|
|
54
|
-
connectWallet: (accounts) => {
|
|
62
|
+
connectWallet: (accounts, tokens) => {
|
|
55
63
|
const getWalletsDetails = get().getWalletsDetails;
|
|
56
64
|
set((state) => ({
|
|
57
65
|
loading: true,
|
|
@@ -77,7 +85,7 @@ export const useWalletsStore = createSelectors(
|
|
|
77
85
|
})
|
|
78
86
|
),
|
|
79
87
|
}));
|
|
80
|
-
getWalletsDetails(accounts);
|
|
88
|
+
getWalletsDetails(accounts, tokens);
|
|
81
89
|
},
|
|
82
90
|
disconnectWallet: (walletType) => {
|
|
83
91
|
set((state) => {
|
|
@@ -88,21 +96,27 @@ export const useWalletsStore = createSelectors(
|
|
|
88
96
|
connectedWallet.walletType !== walletType
|
|
89
97
|
)
|
|
90
98
|
.map((selectedWallet) => selectedWallet.chain);
|
|
99
|
+
|
|
100
|
+
const connectedWallets = state.connectedWallets
|
|
101
|
+
.filter(
|
|
102
|
+
(connectedWallet) => connectedWallet.walletType !== walletType
|
|
103
|
+
)
|
|
104
|
+
.map((connectedWallet) => {
|
|
105
|
+
const anyWalletSelectedForBlockchain = selectedWallets.includes(
|
|
106
|
+
connectedWallet.chain
|
|
107
|
+
);
|
|
108
|
+
if (anyWalletSelectedForBlockchain) {
|
|
109
|
+
return connectedWallet;
|
|
110
|
+
}
|
|
111
|
+
selectedWallets.push(connectedWallet.chain);
|
|
112
|
+
return { ...connectedWallet, selected: true };
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
const balances = makeTokensBalance(connectedWallets);
|
|
116
|
+
|
|
91
117
|
return {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
(connectedWallet) => connectedWallet.walletType !== walletType
|
|
95
|
-
)
|
|
96
|
-
.map((connectedWallet) => {
|
|
97
|
-
const anyWalletSelectedForBlockchain = selectedWallets.includes(
|
|
98
|
-
connectedWallet.chain
|
|
99
|
-
);
|
|
100
|
-
if (anyWalletSelectedForBlockchain) {
|
|
101
|
-
return connectedWallet;
|
|
102
|
-
}
|
|
103
|
-
selectedWallets.push(connectedWallet.chain);
|
|
104
|
-
return { ...connectedWallet, selected: true };
|
|
105
|
-
}),
|
|
118
|
+
balances,
|
|
119
|
+
connectedWallets,
|
|
106
120
|
};
|
|
107
121
|
});
|
|
108
122
|
},
|
|
@@ -135,9 +149,8 @@ export const useWalletsStore = createSelectors(
|
|
|
135
149
|
connectedWallets: [],
|
|
136
150
|
selectedWallets: [],
|
|
137
151
|
})),
|
|
138
|
-
getWalletsDetails: async (accounts, shouldRetry = true) => {
|
|
152
|
+
getWalletsDetails: async (accounts, tokens, shouldRetry = true) => {
|
|
139
153
|
const getWalletsDetails = get().getWalletsDetails;
|
|
140
|
-
const { tokens } = useMetaStore.getState().meta;
|
|
141
154
|
set((state) => ({
|
|
142
155
|
loading: true,
|
|
143
156
|
connectedWallets: state.connectedWallets.map((wallet) => {
|
|
@@ -156,9 +169,8 @@ export const useWalletsStore = createSelectors(
|
|
|
156
169
|
const response = await httpService().getWalletsDetails(data);
|
|
157
170
|
const retrievedBalance = response.wallets;
|
|
158
171
|
if (retrievedBalance) {
|
|
159
|
-
set((state) =>
|
|
160
|
-
|
|
161
|
-
connectedWallets: state.connectedWallets.map(
|
|
172
|
+
set((state) => {
|
|
173
|
+
const connectedWallets = state.connectedWallets.map(
|
|
162
174
|
(connectedWallet) => {
|
|
163
175
|
const matchedAccount = accounts.find((account) =>
|
|
164
176
|
isAccountAndWalletMatched(account, connectedWallet)
|
|
@@ -173,7 +185,7 @@ export const useWalletsStore = createSelectors(
|
|
|
173
185
|
matchedAccount &&
|
|
174
186
|
shouldRetry
|
|
175
187
|
) {
|
|
176
|
-
getWalletsDetails([matchedAccount], false);
|
|
188
|
+
getWalletsDetails([matchedAccount], tokens, false);
|
|
177
189
|
}
|
|
178
190
|
return matchedAccount && retrievedBalanceAccount
|
|
179
191
|
? {
|
|
@@ -183,30 +195,49 @@ export const useWalletsStore = createSelectors(
|
|
|
183
195
|
retrievedBalanceAccount,
|
|
184
196
|
tokens
|
|
185
197
|
),
|
|
198
|
+
loading: false,
|
|
186
199
|
}
|
|
187
200
|
: connectedWallet;
|
|
188
201
|
}
|
|
189
|
-
)
|
|
190
|
-
|
|
202
|
+
);
|
|
203
|
+
|
|
204
|
+
const balances = makeTokensBalance(connectedWallets);
|
|
205
|
+
|
|
206
|
+
return {
|
|
207
|
+
loading: false,
|
|
208
|
+
balances,
|
|
209
|
+
connectedWallets,
|
|
210
|
+
};
|
|
211
|
+
});
|
|
191
212
|
} else {
|
|
192
213
|
throw new Error('Wallet not found');
|
|
193
214
|
}
|
|
194
215
|
} catch (error) {
|
|
195
|
-
set((state) =>
|
|
196
|
-
|
|
197
|
-
connectedWallets: state.connectedWallets.map((balance) => {
|
|
216
|
+
set((state) => {
|
|
217
|
+
const connectedWallets = state.connectedWallets.map((balance) => {
|
|
198
218
|
return accounts.find((account) =>
|
|
199
219
|
isAccountAndWalletMatched(account, balance)
|
|
200
220
|
)
|
|
201
221
|
? resetConnectedWalletState(balance)
|
|
202
222
|
: balance;
|
|
203
|
-
})
|
|
204
|
-
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
const balances = makeTokensBalance(connectedWallets);
|
|
226
|
+
|
|
227
|
+
return {
|
|
228
|
+
loading: false,
|
|
229
|
+
balances,
|
|
230
|
+
connectedWallets,
|
|
231
|
+
};
|
|
232
|
+
});
|
|
205
233
|
}
|
|
206
234
|
},
|
|
235
|
+
getBalanceFor: (token) => {
|
|
236
|
+
const { balances } = get();
|
|
237
|
+
const tokenHash = createTokenHash(token);
|
|
238
|
+
const balance = balances[tokenHash];
|
|
239
|
+
return balance ?? null;
|
|
240
|
+
},
|
|
207
241
|
}))
|
|
208
242
|
)
|
|
209
243
|
);
|
|
210
|
-
|
|
211
|
-
export const fetchingBalanceSelector = (state: WalletsStore) =>
|
|
212
|
-
!!state.connectedWallets.find((wallet) => wallet.loading);
|
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,47 @@ export type BlockchainAndTokenConfig = {
|
|
|
85
85
|
tokens?: Asset[];
|
|
86
86
|
};
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* `Features`
|
|
90
|
+
*
|
|
91
|
+
* @property {'visible' | 'hidden'} [theme]
|
|
92
|
+
* - The visibility state for the theme feature. Optional property.
|
|
93
|
+
*
|
|
94
|
+
* @property {'visible' | 'hidden'} [language]
|
|
95
|
+
* - The visibility state for the language feature. Optional property.
|
|
96
|
+
*
|
|
97
|
+
* @property {'disabled' | 'enabled'} [experimentalRoute]
|
|
98
|
+
* - The enablement state for the experimental route feature. Optional property.
|
|
99
|
+
*
|
|
100
|
+
* @property {'visible' | 'hidden'} [connectWalletButton]
|
|
101
|
+
* - The visibility state for the connect wallet button feature. Optional property.
|
|
102
|
+
*
|
|
103
|
+
* @property {'visible' | 'hidden'} [notification]
|
|
104
|
+
* - The visibility state for the notification feature. Optional property.
|
|
105
|
+
*
|
|
106
|
+
* @property {'visible' | 'hidden'} [liquiditySource]
|
|
107
|
+
* - The visibility state for the liquiditySource feature. Optional property.
|
|
108
|
+
*/
|
|
109
|
+
export type Features = Partial<
|
|
110
|
+
Record<
|
|
111
|
+
| 'theme'
|
|
112
|
+
| 'language'
|
|
113
|
+
| 'connectWalletButton'
|
|
114
|
+
| 'notification'
|
|
115
|
+
| 'liquiditySource',
|
|
116
|
+
'visible' | 'hidden'
|
|
117
|
+
>
|
|
118
|
+
> &
|
|
119
|
+
Partial<Record<'experimentalRoute', 'disabled' | 'enabled'>>;
|
|
120
|
+
|
|
88
121
|
/**
|
|
89
122
|
* The type WidgetConfig defines the configuration options for a widget, including API key, affiliate
|
|
90
123
|
* reference, amount, blockchain and token configurations, liquidity sources, wallet types, language,
|
|
91
124
|
* and theme.
|
|
92
125
|
*
|
|
93
126
|
* @property {string} apiKey - The API key used to communicate with Rango API
|
|
94
|
-
* @property {
|
|
127
|
+
* @property {string} apiUrl - The API url used to set custom API url
|
|
128
|
+
* @property {WidgetAffiliate} affiliate - If you want to charge users fee per transaction, you should
|
|
95
129
|
* pass `WidgetAffiliate` including affiliateRef, affiliatePercent, and affiliateWallets.
|
|
96
130
|
* @property {number} amount - The default input amount.
|
|
97
131
|
* @property {BlockchainAndTokenConfig} from - The `from` property is an optional property of type
|
|
@@ -121,13 +155,23 @@ export type BlockchainAndTokenConfig = {
|
|
|
121
155
|
* If `externalWallets` is `true`, you should add `WidgetWallets` to your app.
|
|
122
156
|
* @property {Asset} pinnedTokens - The `pinnedTokens` property is an optional array of `Asset` objects that
|
|
123
157
|
* you could use to pin tokens of your choice to the top of the token list.
|
|
124
|
-
* @property {boolean}
|
|
158
|
+
* @property {boolean} enableNewLiquiditySources - The `enableNewLiquiditySources` property is a boolean value that when you
|
|
125
159
|
* set it to true, whenever a new liquidity source is added, it will be added to your list as well.
|
|
160
|
+
* @property {Features} features - An optional object for configuring the visibility or enablement of various features.
|
|
161
|
+
* Keys include:
|
|
162
|
+
* - 'notification': Visibility state for the notification icon.
|
|
163
|
+
* - 'theme': Visibility state for the theme.
|
|
164
|
+
* - 'liquiditySource': Visibility state for liquidity source.
|
|
165
|
+
* - 'connectWalletButton': Visibility state for the wallet connect icon.
|
|
166
|
+
* - 'language': Visibility state for the language.
|
|
167
|
+
* - 'experimentalRoute': Enablement state for the experimental route.
|
|
126
168
|
*/
|
|
169
|
+
|
|
127
170
|
export type WidgetConfig = {
|
|
128
171
|
apiKey: string;
|
|
172
|
+
apiUrl?: string;
|
|
129
173
|
walletConnectProjectId?: string;
|
|
130
|
-
affiliate?:
|
|
174
|
+
affiliate?: WidgetAffiliate;
|
|
131
175
|
amount?: number;
|
|
132
176
|
from?: BlockchainAndTokenConfig;
|
|
133
177
|
to?: BlockchainAndTokenConfig;
|
|
@@ -139,5 +183,6 @@ export type WidgetConfig = {
|
|
|
139
183
|
theme?: WidgetTheme;
|
|
140
184
|
externalWallets?: boolean;
|
|
141
185
|
pinnedTokens?: Asset[];
|
|
142
|
-
|
|
186
|
+
enableNewLiquiditySources?: boolean;
|
|
187
|
+
features?: Features;
|
|
143
188
|
};
|
package/src/types/swap.ts
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
import type { SwapSavedSettings } from 'rango-types
|
|
1
|
+
import type { SwapSavedSettings } from 'rango-types';
|
|
2
2
|
|
|
3
3
|
export type PendingSwapSettings = Omit<
|
|
4
4
|
SwapSavedSettings,
|
|
5
5
|
'disabledSwappersIds'
|
|
6
6
|
>;
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
SWAP = 'swap',
|
|
11
|
-
NEEDTOCONFIRM = 'needToConfirm',
|
|
12
|
-
WARNING = 'warning',
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export type SwapButtonState = (
|
|
16
|
-
| { disabled: true }
|
|
17
|
-
| { disabled: false; hasWarning?: boolean }
|
|
18
|
-
) & {
|
|
8
|
+
export type SwapButtonState = {
|
|
9
|
+
disabled: boolean;
|
|
19
10
|
title: string;
|
|
20
|
-
|
|
11
|
+
action: 'connect-wallet' | 'confirm-warning' | 'confirm-swap';
|
|
21
12
|
};
|
|
22
13
|
|
|
23
14
|
export type ConvertedToken = {
|
package/src/types/wallets.ts
CHANGED
|
@@ -1,7 +1,24 @@
|
|
|
1
|
-
import { WalletType } from '@rango-dev/wallets-shared';
|
|
1
|
+
import type { WalletType } from '@rango-dev/wallets-shared';
|
|
2
2
|
|
|
3
3
|
export interface Wallet {
|
|
4
4
|
chain: string;
|
|
5
5
|
address: string;
|
|
6
6
|
walletType: WalletType;
|
|
7
7
|
}
|
|
8
|
+
|
|
9
|
+
export type Balance = {
|
|
10
|
+
amount: string;
|
|
11
|
+
decimals: number;
|
|
12
|
+
usdValue: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
type Blockchain = string;
|
|
16
|
+
type TokenSymbol = string;
|
|
17
|
+
type Address = string;
|
|
18
|
+
|
|
19
|
+
/** `blockchain-symbol-Address` */
|
|
20
|
+
export type TokenHash = `${Blockchain}-${TokenSymbol}-${Address}`;
|
|
21
|
+
|
|
22
|
+
export type TokensBalance = {
|
|
23
|
+
[key: TokenHash]: Balance;
|
|
24
|
+
};
|
package/src/utils/colors.ts
CHANGED
|
@@ -31,7 +31,7 @@ export const generateRangeColors = (name: string, color: string) => {
|
|
|
31
31
|
const NUMBER_OF_COLORS = 10;
|
|
32
32
|
const HALF_NUMBER_OF_COLORS = 5;
|
|
33
33
|
const COLOR_SUFFIX = 100;
|
|
34
|
-
const AMT =
|
|
34
|
+
const AMT = 25;
|
|
35
35
|
|
|
36
36
|
let colors = { [name]: color };
|
|
37
37
|
for (let i = 1; i < NUMBER_OF_COLORS; i++) {
|
|
@@ -60,6 +60,7 @@ export const generateRangeColors = (name: string, color: string) => {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
+
|
|
63
64
|
return colors;
|
|
64
65
|
};
|
|
65
66
|
export const generateColors = (
|
package/src/utils/configs.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { RANGO_PUBLIC_API_KEY } from '../constants';
|
|
|
2
2
|
|
|
3
3
|
export interface Configs {
|
|
4
4
|
API_KEY: string;
|
|
5
|
+
BASE_URL?: string;
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
let configs: Configs = {
|
|
@@ -9,7 +10,7 @@ let configs: Configs = {
|
|
|
9
10
|
};
|
|
10
11
|
|
|
11
12
|
export function getConfig(name: keyof Configs) {
|
|
12
|
-
return configs[name];
|
|
13
|
+
return configs[name] || '';
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export function setConfig(name: keyof Configs, value: any) {
|
package/src/utils/date.ts
CHANGED