@rango-dev/widget-embedded 0.22.4-next.0 → 0.22.4-next.10
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.map +1 -1
- package/dist/components/AppRoutes.d.ts.map +1 -1
- package/dist/components/BlockchainList/BlockchainList.styles.d.ts +3 -0
- package/dist/components/BlockchainList/BlockchainList.styles.d.ts.map +1 -1
- package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +1 -0
- package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +2 -2
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +15 -0
- 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/WalletList.d.ts.map +1 -1
- package/dist/components/ConfirmWalletsModal/WalletList.styles.d.ts +3 -0
- package/dist/components/ConfirmWalletsModal/WalletList.styles.d.ts.map +1 -1
- package/dist/components/CustomCollapsible/CustomCollapsible.styles.d.ts +4 -0
- package/dist/components/CustomCollapsible/CustomCollapsible.styles.d.ts.map +1 -1
- package/dist/components/HeaderButtons/HeaderButtons.d.ts +4 -0
- package/dist/components/HeaderButtons/HeaderButtons.d.ts.map +1 -0
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts +5 -0
- package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts.map +1 -1
- package/dist/components/HeaderButtons/HeaderButtons.types.d.ts +3 -2
- package/dist/components/HeaderButtons/HeaderButtons.types.d.ts.map +1 -1
- package/dist/components/HeaderButtons/index.d.ts +1 -1
- package/dist/components/HeaderButtons/index.d.ts.map +1 -1
- package/dist/components/HistoryGroupedList/HistoryGroupedList.styles.d.ts +6 -0
- package/dist/components/HistoryGroupedList/HistoryGroupedList.styles.d.ts.map +1 -1
- package/dist/components/Layout/Layout.d.ts.map +1 -1
- package/dist/components/Layout/Layout.styles.d.ts +3 -0
- package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
- package/dist/components/Layout/Layout.types.d.ts +1 -0
- package/dist/components/Layout/Layout.types.d.ts.map +1 -1
- package/dist/components/Layout/PageContainer.d.ts +1 -0
- package/dist/components/Layout/PageContainer.d.ts.map +1 -1
- package/dist/components/Layout/ScrollableArea.d.ts +1 -0
- package/dist/components/Layout/ScrollableArea.d.ts.map +1 -1
- package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.d.ts +1 -0
- package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.d.ts.map +1 -1
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +14 -0
- package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
- package/dist/components/NoResult/NoResult.styles.d.ts +3 -0
- package/dist/components/NoResult/NoResult.styles.d.ts.map +1 -1
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts +4 -0
- package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +1 -1
- package/dist/components/Quote/Quote.d.ts.map +1 -1
- package/dist/components/Quote/Quote.styles.d.ts +1136 -25
- package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
- package/dist/components/Quote/Quote.types.d.ts +12 -7
- package/dist/components/Quote/Quote.types.d.ts.map +1 -1
- package/dist/components/Quote/QuoteCostDetails.d.ts.map +1 -1
- package/dist/components/Quote/QuoteCostDetails.styles.d.ts +5 -0
- package/dist/components/Quote/QuoteCostDetails.styles.d.ts.map +1 -1
- package/dist/components/Quote/QuoteSummary.styles.d.ts +2 -0
- package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -1
- package/dist/components/Quote/QuoteTrigger .d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts +4 -0
- package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts +1 -1
- package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts +20 -10
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts +1 -1
- package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts.map +1 -1
- package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts +5 -0
- package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts.map +1 -1
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts +4 -0
- package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
- package/dist/components/SearchInput/SearchInput.styles.d.ts +1 -0
- package/dist/components/SearchInput/SearchInput.styles.d.ts.map +1 -1
- package/dist/components/SettingsContainer/SettingsContainer.style.d.ts +3 -0
- package/dist/components/SettingsContainer/SettingsContainer.style.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.styles.d.ts +5 -0
- package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts +13 -0
- package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.d.ts +1 -0
- package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts +2 -1
- package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts +1 -0
- package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts.map +1 -1
- package/dist/components/SwapDetailsModal/index.d.ts +1 -1
- package/dist/components/SwapDetailsModal/index.d.ts.map +1 -1
- package/dist/components/TokenList/TokenList.styles.d.ts +17 -0
- package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
- package/dist/components/WalletModal/WalletModalContent.styles.d.ts +4 -0
- package/dist/components/WalletModal/WalletModalContent.styles.d.ts.map +1 -1
- package/dist/constants/languages.d.ts.map +1 -1
- package/dist/constants/navigationRoutes.d.ts +1 -0
- package/dist/constants/navigationRoutes.d.ts.map +1 -1
- package/dist/constants/quote.d.ts +5 -1
- package/dist/constants/quote.d.ts.map +1 -1
- package/dist/containers/App/App.styles.d.ts +1 -0
- package/dist/containers/App/App.styles.d.ts.map +1 -1
- package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -1
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +3 -0
- package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -1
- package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +6 -3
- package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -1
- package/dist/containers/Wallets/Wallets.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +5 -4
- 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/useFetch.d.ts +12 -0
- package/dist/hooks/useFetch.d.ts.map +1 -0
- package/dist/hooks/useFetchAllQuotes.d.ts +4 -0
- package/dist/hooks/useFetchAllQuotes.d.ts.map +1 -0
- package/dist/hooks/useFetchConfirmQuote.d.ts +4 -0
- package/dist/hooks/useFetchConfirmQuote.d.ts.map +1 -0
- package/dist/hooks/useSwapInput.d.ts +5 -5
- package/dist/hooks/useSwapInput.d.ts.map +1 -1
- package/dist/hooks/useWalletList.d.ts +1 -0
- package/dist/hooks/useWalletList.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
- package/dist/pages/Routes.d.ts +3 -0
- package/dist/pages/Routes.d.ts.map +1 -0
- package/dist/pages/SettingsPage.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/store/AppStore.d.ts +2 -2
- package/dist/store/app.d.ts +2 -2
- package/dist/store/quote.d.ts +32 -10
- package/dist/store/quote.d.ts.map +1 -1
- package/dist/store/wallets.d.ts +0 -2
- package/dist/store/wallets.d.ts.map +1 -1
- package/dist/types/quote.d.ts +19 -1
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/utils/quote.d.ts +12 -9
- package/dist/utils/quote.d.ts.map +1 -1
- package/dist/utils/settings.d.ts +2 -3
- package/dist/utils/settings.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +18 -18
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/wallets.d.ts +4 -3
- package/dist/utils/wallets.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/QueueManager.tsx +0 -3
- package/src/components/AppRoutes.tsx +5 -0
- package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +3 -3
- package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +22 -19
- package/src/components/ConfirmWalletsModal/WalletList.tsx +24 -18
- package/src/components/HeaderButtons/{HomeButtons.tsx → HeaderButtons.tsx} +39 -26
- package/src/components/HeaderButtons/HeaderButtons.types.ts +3 -2
- package/src/components/HeaderButtons/index.ts +1 -1
- package/src/components/Layout/Layout.tsx +13 -1
- package/src/components/Layout/Layout.types.ts +1 -0
- package/src/components/Quote/Quote.styles.ts +133 -38
- package/src/components/Quote/Quote.tsx +77 -18
- package/src/components/Quote/Quote.types.ts +13 -7
- package/src/components/Quote/QuoteCostDetails.tsx +9 -4
- package/src/components/Quote/QuoteTrigger .tsx +7 -3
- package/src/components/QuoteSkeleton/QuoteSkeleton.tsx +2 -2
- package/src/components/QuoteSkeleton/QuoteSkeleton.types.ts +1 -1
- package/src/components/QuoteSkeleton/QuoteSummarySkeleton.styles.ts +10 -12
- package/src/components/QuoteSkeleton/QuoteSummarySkeleton.tsx +28 -9
- package/src/components/QuoteSkeleton/QuoteSummarySkeleton.types.ts +1 -1
- package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +19 -19
- package/src/components/SwapDetails/SwapDetails.tsx +1 -1
- package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.types.ts +1 -1
- package/src/components/SwapDetailsModal/index.ts +1 -1
- package/src/constants/languages.ts +2 -1
- package/src/constants/navigationRoutes.ts +1 -0
- package/src/constants/quote.ts +17 -1
- package/src/containers/QuoteInfo/QuoteInfo.tsx +32 -7
- package/src/containers/QuoteInfo/QuoteInfo.types.ts +6 -3
- package/src/containers/Wallets/Wallets.tsx +5 -11
- package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +36 -20
- package/src/hooks/useConfirmSwap/useConfirmSwap.ts +76 -78
- package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +1 -1
- package/src/hooks/useFetch.ts +48 -0
- package/src/hooks/useFetchAllQuotes.ts +21 -0
- package/src/hooks/useFetchConfirmQuote.ts +21 -0
- package/src/hooks/useSwapInput.ts +59 -31
- package/src/hooks/useWalletList.ts +5 -3
- package/src/pages/ConfirmSwapPage.tsx +12 -9
- package/src/pages/Home.tsx +25 -15
- package/src/pages/LiquiditySourcePage.tsx +3 -5
- package/src/pages/Routes.tsx +131 -0
- package/src/pages/SettingsPage.tsx +11 -13
- package/src/pages/WalletsPage.tsx +24 -18
- package/src/store/quote.ts +60 -22
- package/src/store/wallets.ts +0 -2
- package/src/types/quote.ts +27 -1
- package/src/utils/quote.ts +129 -67
- package/src/utils/settings.ts +2 -4
- package/src/utils/swap.ts +37 -77
- package/src/utils/wallets.ts +14 -9
- package/dist/components/HeaderButtons/HomeButtons.d.ts +0 -4
- package/dist/components/HeaderButtons/HomeButtons.d.ts.map +0 -1
- package/dist/hooks/useFetchQuote.d.ts +0 -9
- package/dist/hooks/useFetchQuote.d.ts.map +0 -1
- package/src/hooks/useFetchQuote.ts +0 -38
|
@@ -9,12 +9,13 @@ import {
|
|
|
9
9
|
type WalletType,
|
|
10
10
|
WalletTypes,
|
|
11
11
|
} from '@rango-dev/wallets-shared';
|
|
12
|
-
import { useEffect, useState } from 'react';
|
|
12
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
13
13
|
|
|
14
14
|
import { useAppStore } from '../store/AppStore';
|
|
15
15
|
import { useWalletsStore } from '../store/wallets';
|
|
16
16
|
import { configWalletsToWalletName } from '../utils/providers';
|
|
17
17
|
import {
|
|
18
|
+
hashWalletsState,
|
|
18
19
|
isExperimentalChain,
|
|
19
20
|
mapWalletTypesToWalletInfo,
|
|
20
21
|
sortWalletsBasedOnConnectionState,
|
|
@@ -87,14 +88,14 @@ export function useWalletList(params: Params) {
|
|
|
87
88
|
}
|
|
88
89
|
};
|
|
89
90
|
|
|
90
|
-
const disconnectConnectingWallets = () => {
|
|
91
|
+
const disconnectConnectingWallets = useCallback(() => {
|
|
91
92
|
const connectingWallets =
|
|
92
93
|
wallets?.filter((wallet) => wallet.state === WalletState.CONNECTING) ||
|
|
93
94
|
[];
|
|
94
95
|
for (const wallet of connectingWallets) {
|
|
95
96
|
void disconnect(wallet.type);
|
|
96
97
|
}
|
|
97
|
-
};
|
|
98
|
+
}, [hashWalletsState(wallets)]);
|
|
98
99
|
|
|
99
100
|
useEffect(() => {
|
|
100
101
|
return () => {
|
|
@@ -141,5 +142,6 @@ export function useWalletList(params: Params) {
|
|
|
141
142
|
),
|
|
142
143
|
error,
|
|
143
144
|
handleClick,
|
|
145
|
+
disconnectConnectingWallets,
|
|
144
146
|
};
|
|
145
147
|
}
|
|
@@ -72,7 +72,7 @@ const descriptionStyles = css({
|
|
|
72
72
|
export function ConfirmSwapPage() {
|
|
73
73
|
//TODO: move component's logics to a custom hook
|
|
74
74
|
const {
|
|
75
|
-
|
|
75
|
+
selectedQuote,
|
|
76
76
|
setInputAmount,
|
|
77
77
|
selectedWallets,
|
|
78
78
|
quoteWalletsConfirmed,
|
|
@@ -102,7 +102,6 @@ export function ConfirmSwapPage() {
|
|
|
102
102
|
error: null,
|
|
103
103
|
warnings: null,
|
|
104
104
|
});
|
|
105
|
-
|
|
106
105
|
const [showQuoteWarningModal, setShowQuoteWarningModal] = useState(false);
|
|
107
106
|
|
|
108
107
|
const onConfirmSwap: ConfirmSwap['fetch'] = async ({
|
|
@@ -110,6 +109,7 @@ export function ConfirmSwapPage() {
|
|
|
110
109
|
customDestination,
|
|
111
110
|
}) => {
|
|
112
111
|
const result = await confirmSwap?.({ selectedWallets, customDestination });
|
|
112
|
+
|
|
113
113
|
setConfirmSwapResult(result);
|
|
114
114
|
return result;
|
|
115
115
|
};
|
|
@@ -212,12 +212,12 @@ export function ConfirmSwapPage() {
|
|
|
212
212
|
let quoteWalletsChanged = false;
|
|
213
213
|
|
|
214
214
|
if (quoteChanged) {
|
|
215
|
-
let requiredWallets = getRequiredWallets(
|
|
215
|
+
let requiredWallets = getRequiredWallets(selectedQuote?.swaps || null);
|
|
216
216
|
|
|
217
217
|
const lastStepToBlockchain =
|
|
218
|
-
|
|
218
|
+
selectedQuote?.swaps[selectedQuote.swaps.length - 1].to.blockchain;
|
|
219
219
|
|
|
220
|
-
const isLastWalletRequired = !!
|
|
220
|
+
const isLastWalletRequired = !!selectedQuote?.swaps.find(
|
|
221
221
|
(swap) => swap.from.blockchain === lastStepToBlockchain
|
|
222
222
|
);
|
|
223
223
|
|
|
@@ -240,7 +240,7 @@ export function ConfirmSwapPage() {
|
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
-
if (
|
|
243
|
+
if (selectedQuote && (selectedWalletDisconnected || quoteWalletsChanged)) {
|
|
244
244
|
queueMicrotask(() => flushSync(setShowWallets.bind(null, true)));
|
|
245
245
|
setQuoteWalletConfirmed(false);
|
|
246
246
|
}
|
|
@@ -251,7 +251,7 @@ export function ConfirmSwapPage() {
|
|
|
251
251
|
]);
|
|
252
252
|
|
|
253
253
|
useLayoutEffect(() => {
|
|
254
|
-
if (!
|
|
254
|
+
if (!selectedQuote) {
|
|
255
255
|
navigate(`../${location.search}`);
|
|
256
256
|
}
|
|
257
257
|
}, []);
|
|
@@ -277,6 +277,7 @@ export function ConfirmSwapPage() {
|
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
if (quoteWarning || quoteError) {
|
|
280
|
+
const settings_url = `../${navigationRoutes.settings}`;
|
|
280
281
|
alerts.push(
|
|
281
282
|
<QuoteWarningsAndErrors
|
|
282
283
|
warning={quoteWarning}
|
|
@@ -291,7 +292,7 @@ export function ConfirmSwapPage() {
|
|
|
291
292
|
setShowQuoteWarningModal(false);
|
|
292
293
|
await addNewSwap();
|
|
293
294
|
}}
|
|
294
|
-
onChangeSettings={() => navigate(
|
|
295
|
+
onChangeSettings={() => navigate(settings_url)}
|
|
295
296
|
/>
|
|
296
297
|
);
|
|
297
298
|
}
|
|
@@ -375,9 +376,11 @@ export function ConfirmSwapPage() {
|
|
|
375
376
|
{alerts.length > 0 ? <Divider size={10} /> : null}
|
|
376
377
|
|
|
377
378
|
<QuoteInfo
|
|
378
|
-
quote={
|
|
379
|
+
quote={selectedQuote}
|
|
379
380
|
type="swap-preview"
|
|
380
381
|
expanded={true}
|
|
382
|
+
selected
|
|
383
|
+
tagHidden
|
|
381
384
|
error={confirmSwapResult.error}
|
|
382
385
|
loading={fetchingConfirmationQuote}
|
|
383
386
|
warning={confirmSwapResult.warnings?.quote ?? null}
|
package/src/pages/Home.tsx
CHANGED
|
@@ -3,7 +3,7 @@ import { Button, Divider, styled, SwapInput, WarningIcon } from '@rango-dev/ui';
|
|
|
3
3
|
import React, { useEffect, useState } from 'react';
|
|
4
4
|
import { useNavigate } from 'react-router-dom';
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { HeaderButtons } from '../components/HeaderButtons';
|
|
7
7
|
import { Layout, PageContainer } from '../components/Layout';
|
|
8
8
|
import { QuoteWarningsAndErrors } from '../components/QuoteWarningsAndErrors';
|
|
9
9
|
import { SwitchFromAndToButton } from '../components/SwitchFromAndTo';
|
|
@@ -41,12 +41,6 @@ const InputsContainer = styled('div', {
|
|
|
41
41
|
});
|
|
42
42
|
export function Home() {
|
|
43
43
|
const navigate = useNavigate();
|
|
44
|
-
const {
|
|
45
|
-
fetch: fetchQuote,
|
|
46
|
-
loading,
|
|
47
|
-
error: quoteError,
|
|
48
|
-
warning: quoteWarning,
|
|
49
|
-
} = useSwapInput();
|
|
50
44
|
const {
|
|
51
45
|
fromToken,
|
|
52
46
|
fromBlockchain,
|
|
@@ -57,10 +51,16 @@ export function Home() {
|
|
|
57
51
|
inputUsdValue,
|
|
58
52
|
outputAmount,
|
|
59
53
|
outputUsdValue,
|
|
60
|
-
|
|
54
|
+
selectedQuote,
|
|
55
|
+
refetchQuote,
|
|
56
|
+
error: quoteError,
|
|
57
|
+
warning: quoteWarning,
|
|
58
|
+
quotes,
|
|
61
59
|
resetQuoteWallets,
|
|
62
60
|
setQuoteWarningsConfirmed,
|
|
61
|
+
updateQuotePartialState,
|
|
63
62
|
} = useQuoteStore();
|
|
63
|
+
const { fetch: fetchQuote, loading } = useSwapInput({ refetchQuote });
|
|
64
64
|
|
|
65
65
|
const { config, fetchStatus: fetchMetaStatus } = useAppStore();
|
|
66
66
|
|
|
@@ -74,13 +74,13 @@ export function Home() {
|
|
|
74
74
|
const needsToWarnEthOnPath = false;
|
|
75
75
|
|
|
76
76
|
const priceImpactInputCanNotBeComputed = !canComputePriceImpact(
|
|
77
|
-
|
|
77
|
+
selectedQuote,
|
|
78
78
|
inputAmount,
|
|
79
79
|
inputUsdValue
|
|
80
80
|
);
|
|
81
81
|
|
|
82
82
|
const priceImpactOutputCanNotBeComputed = !canComputePriceImpact(
|
|
83
|
-
|
|
83
|
+
selectedQuote,
|
|
84
84
|
inputAmount,
|
|
85
85
|
outputUsdValue
|
|
86
86
|
);
|
|
@@ -89,7 +89,7 @@ export function Home() {
|
|
|
89
89
|
fetchMetaStatus,
|
|
90
90
|
fetchingQuote: loading,
|
|
91
91
|
inputAmount,
|
|
92
|
-
quote,
|
|
92
|
+
quote: selectedQuote,
|
|
93
93
|
anyWalletConnected: connectedWallets.length > 0,
|
|
94
94
|
error: quoteError,
|
|
95
95
|
warning: quoteWarning,
|
|
@@ -115,6 +115,7 @@ export function Home() {
|
|
|
115
115
|
|
|
116
116
|
useEffect(() => {
|
|
117
117
|
resetQuoteWallets();
|
|
118
|
+
updateQuotePartialState('refetchQuote', true);
|
|
118
119
|
}, []);
|
|
119
120
|
|
|
120
121
|
const percentageChange =
|
|
@@ -153,9 +154,9 @@ export function Home() {
|
|
|
153
154
|
hasBackButton: false,
|
|
154
155
|
title: config.title || i18n.t('Swap'),
|
|
155
156
|
suffix: (
|
|
156
|
-
<
|
|
157
|
+
<HeaderButtons
|
|
157
158
|
onClickRefresh={
|
|
158
|
-
(!!
|
|
159
|
+
(!!selectedQuote || quoteError) && !showQuoteWarningModal
|
|
159
160
|
? fetchQuote
|
|
160
161
|
: undefined
|
|
161
162
|
}
|
|
@@ -210,7 +211,7 @@ export function Home() {
|
|
|
210
211
|
<SwitchFromAndToButton />
|
|
211
212
|
</FromContainer>
|
|
212
213
|
<SwapInput
|
|
213
|
-
sharpBottomStyle={!!
|
|
214
|
+
sharpBottomStyle={!!selectedQuote || fetchingQuote}
|
|
214
215
|
label={i18n.t('To')}
|
|
215
216
|
mode="To"
|
|
216
217
|
fetchingQuote={fetchingQuote}
|
|
@@ -257,11 +258,20 @@ export function Home() {
|
|
|
257
258
|
</InputsContainer>
|
|
258
259
|
<Divider size="2" />
|
|
259
260
|
<QuoteInfo
|
|
260
|
-
quote={
|
|
261
|
+
quote={selectedQuote}
|
|
261
262
|
loading={fetchingQuote}
|
|
262
263
|
error={quoteError}
|
|
264
|
+
tagHidden={false}
|
|
263
265
|
warning={quoteWarning}
|
|
264
266
|
type="basic"
|
|
267
|
+
onClickAllRoutes={
|
|
268
|
+
!!quotes && quotes.results.length > 1
|
|
269
|
+
? () => {
|
|
270
|
+
updateQuotePartialState('refetchQuote', false);
|
|
271
|
+
navigate(navigationRoutes.routes);
|
|
272
|
+
}
|
|
273
|
+
: undefined
|
|
274
|
+
}
|
|
265
275
|
/>
|
|
266
276
|
{quoteWarning || quoteError ? (
|
|
267
277
|
<>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
UniqueSwappersGroupType,
|
|
4
|
-
} from '../utils/settings';
|
|
1
|
+
import type { UniqueSwappersGroupType } from '../utils/settings';
|
|
2
|
+
import type { SwapperType } from 'rango-sdk';
|
|
5
3
|
|
|
6
4
|
import { i18n } from '@lingui/core';
|
|
7
5
|
import {
|
|
@@ -41,7 +39,7 @@ export function LiquiditySourcePage({ sourceType }: PropTypes) {
|
|
|
41
39
|
getUniqueSwappersGroups(swappers, disabledLiquiditySources);
|
|
42
40
|
|
|
43
41
|
const types = { Exchanges: i18n.t('Exchanges'), Bridges: i18n.t('Bridges') };
|
|
44
|
-
const validTypes: Array<
|
|
42
|
+
const validTypes: Array<SwapperType> = [];
|
|
45
43
|
if (sourceType === 'Exchanges') {
|
|
46
44
|
validTypes.push('DEX');
|
|
47
45
|
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { SelectedQuote } from '../types';
|
|
2
|
+
import type { MultiRouteSimulationResult } from 'rango-sdk';
|
|
3
|
+
|
|
4
|
+
import { i18n } from '@lingui/core';
|
|
5
|
+
import { Divider } from '@rango-dev/ui';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { useNavigate } from 'react-router-dom';
|
|
8
|
+
|
|
9
|
+
import { HeaderButtons } from '../components/HeaderButtons';
|
|
10
|
+
import { Layout, PageContainer } from '../components/Layout';
|
|
11
|
+
import { QuoteSkeleton } from '../components/QuoteSkeleton';
|
|
12
|
+
import { navigationRoutes } from '../constants/navigationRoutes';
|
|
13
|
+
import { QuoteInfo } from '../containers/QuoteInfo';
|
|
14
|
+
import { getQuoteError } from '../hooks/useConfirmSwap/useConfirmSwap.helpers';
|
|
15
|
+
import { useNavigateBack } from '../hooks/useNavigateBack';
|
|
16
|
+
import { useSwapInput } from '../hooks/useSwapInput';
|
|
17
|
+
import { useAppStore } from '../store/AppStore';
|
|
18
|
+
import { useQuoteStore } from '../store/quote';
|
|
19
|
+
import { generateQuoteWarnings } from '../utils/quote';
|
|
20
|
+
|
|
21
|
+
const ITEM_SKELETON_COUNT = 3;
|
|
22
|
+
export function RoutesPage() {
|
|
23
|
+
const navigate = useNavigate();
|
|
24
|
+
const navigateBack = useNavigateBack();
|
|
25
|
+
|
|
26
|
+
const {
|
|
27
|
+
selectedQuote,
|
|
28
|
+
quotes,
|
|
29
|
+
refetchQuote,
|
|
30
|
+
setSelectedQuote,
|
|
31
|
+
updateQuotePartialState,
|
|
32
|
+
fromToken,
|
|
33
|
+
toToken,
|
|
34
|
+
error: quoteError,
|
|
35
|
+
} = useQuoteStore();
|
|
36
|
+
const { slippage, customSlippage } = useAppStore();
|
|
37
|
+
const tokens = useAppStore().tokens();
|
|
38
|
+
|
|
39
|
+
const userSlippage = customSlippage ?? slippage;
|
|
40
|
+
|
|
41
|
+
const { fetch: fetchQuote, loading: fetchingQuote } = useSwapInput({
|
|
42
|
+
refetchQuote,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const onClickOnQuote = (quote: SelectedQuote) => {
|
|
46
|
+
setSelectedQuote(quote);
|
|
47
|
+
updateQuotePartialState('refetchQuote', false);
|
|
48
|
+
navigateBack();
|
|
49
|
+
};
|
|
50
|
+
const getQuoteWarning = (quote: MultiRouteSimulationResult) => {
|
|
51
|
+
if (!fromToken || !toToken || !quotes) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const mergedQuote: SelectedQuote = {
|
|
55
|
+
requestAmount: quotes.requestAmount, // Assuming quotes is an array
|
|
56
|
+
...quote,
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return generateQuoteWarnings(mergedQuote, {
|
|
60
|
+
fromToken,
|
|
61
|
+
toToken,
|
|
62
|
+
userSlippage,
|
|
63
|
+
tokens,
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
const settings_url = `../${navigationRoutes.settings}`;
|
|
67
|
+
const wallets_url = `../${navigationRoutes.wallets}`;
|
|
68
|
+
return (
|
|
69
|
+
<Layout
|
|
70
|
+
header={{
|
|
71
|
+
onWallet: () => {
|
|
72
|
+
navigate(wallets_url);
|
|
73
|
+
},
|
|
74
|
+
onBack: () => {
|
|
75
|
+
updateQuotePartialState('refetchQuote', false);
|
|
76
|
+
},
|
|
77
|
+
title: i18n.t('Routes'),
|
|
78
|
+
suffix: (
|
|
79
|
+
<HeaderButtons
|
|
80
|
+
onClickRefresh={
|
|
81
|
+
!!selectedQuote || quoteError ? fetchQuote : undefined
|
|
82
|
+
}
|
|
83
|
+
hidden={['notifications', 'history']}
|
|
84
|
+
onClickSettings={() => navigate(settings_url)}
|
|
85
|
+
/>
|
|
86
|
+
),
|
|
87
|
+
}}>
|
|
88
|
+
<PageContainer>
|
|
89
|
+
{fetchingQuote
|
|
90
|
+
? Array.from({ length: ITEM_SKELETON_COUNT }, (_, index) => (
|
|
91
|
+
<React.Fragment key={index}>
|
|
92
|
+
<QuoteSkeleton
|
|
93
|
+
tagHidden={false}
|
|
94
|
+
type="list-item"
|
|
95
|
+
expanded={false}
|
|
96
|
+
/>
|
|
97
|
+
<Divider size={16} />
|
|
98
|
+
</React.Fragment>
|
|
99
|
+
))
|
|
100
|
+
: !!quotes &&
|
|
101
|
+
quotes.results?.map((quote) => {
|
|
102
|
+
const quoteWarning = getQuoteWarning(quote);
|
|
103
|
+
const quoteError = getQuoteError(quote.swaps);
|
|
104
|
+
|
|
105
|
+
return (
|
|
106
|
+
<React.Fragment key={quote.requestId}>
|
|
107
|
+
<QuoteInfo
|
|
108
|
+
selected={selectedQuote?.requestId === quote.requestId}
|
|
109
|
+
tagHidden={false}
|
|
110
|
+
quote={{ ...quote, requestAmount: quotes.requestAmount }}
|
|
111
|
+
loading={fetchingQuote}
|
|
112
|
+
error={quoteError?.options || null}
|
|
113
|
+
warning={quoteWarning}
|
|
114
|
+
onClick={(quote) => {
|
|
115
|
+
updateQuotePartialState('warning', quoteWarning);
|
|
116
|
+
updateQuotePartialState(
|
|
117
|
+
'error',
|
|
118
|
+
quoteError?.options || null
|
|
119
|
+
);
|
|
120
|
+
onClickOnQuote(quote);
|
|
121
|
+
}}
|
|
122
|
+
type="list-item"
|
|
123
|
+
/>
|
|
124
|
+
<Divider size={16} />
|
|
125
|
+
</React.Fragment>
|
|
126
|
+
);
|
|
127
|
+
})}
|
|
128
|
+
</PageContainer>
|
|
129
|
+
</Layout>
|
|
130
|
+
);
|
|
131
|
+
}
|
|
@@ -129,18 +129,16 @@ export function SettingsPage() {
|
|
|
129
129
|
onClick: () => navigate(navigationRoutes.exchanges),
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
* };
|
|
143
|
-
*/
|
|
132
|
+
const languageItem = {
|
|
133
|
+
id: 'language-item',
|
|
134
|
+
title: (
|
|
135
|
+
<Typography variant="title" size="xmedium">
|
|
136
|
+
{i18n.t('Language')}
|
|
137
|
+
</Typography>
|
|
138
|
+
),
|
|
139
|
+
end: <ChevronRightIcon color="gray" />,
|
|
140
|
+
onClick: () => navigate(navigationRoutes.languages),
|
|
141
|
+
};
|
|
144
142
|
|
|
145
143
|
const themeItem = {
|
|
146
144
|
id: 'theme-item',
|
|
@@ -185,7 +183,7 @@ export function SettingsPage() {
|
|
|
185
183
|
const settingItems = isLiquidityHidden ? [] : [bridgeItem, exchangeItem];
|
|
186
184
|
|
|
187
185
|
if (!isLanguageHidden) {
|
|
188
|
-
|
|
186
|
+
settingItems.push(languageItem);
|
|
189
187
|
}
|
|
190
188
|
if (!theme?.singleTheme && !isThemeHidden) {
|
|
191
189
|
settingItems.push(themeItem);
|
|
@@ -35,23 +35,29 @@ export function WalletsPage() {
|
|
|
35
35
|
let modalTimerId: ReturnType<typeof setTimeout> | null = null;
|
|
36
36
|
const isActiveTab = useUiStore.use.isActiveTab();
|
|
37
37
|
|
|
38
|
-
const { list, handleClick, error } =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
38
|
+
const { list, handleClick, error, disconnectConnectingWallets } =
|
|
39
|
+
useWalletList({
|
|
40
|
+
config,
|
|
41
|
+
onBeforeConnect: (type) => {
|
|
42
|
+
modalTimerId = setTimeout(() => {
|
|
43
|
+
setOpenModal(true);
|
|
44
|
+
setSelectedWalletType(type);
|
|
45
|
+
}, TIME_TO_IGNORE_MODAL);
|
|
46
|
+
},
|
|
47
|
+
onConnect: () => {
|
|
48
|
+
if (modalTimerId) {
|
|
49
|
+
clearTimeout(modalTimerId);
|
|
50
|
+
}
|
|
51
|
+
setTimeout(() => {
|
|
52
|
+
setOpenModal(false);
|
|
53
|
+
}, TIME_TO_CLOSE_MODAL);
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const handleCloseWalletModal = () => {
|
|
58
|
+
disconnectConnectingWallets();
|
|
59
|
+
setOpenModal(false);
|
|
60
|
+
};
|
|
55
61
|
|
|
56
62
|
const selectedWallet = list.find(
|
|
57
63
|
(wallet) => wallet.type === selectedWalletType
|
|
@@ -87,7 +93,7 @@ export function WalletsPage() {
|
|
|
87
93
|
})}
|
|
88
94
|
<WalletModal
|
|
89
95
|
open={!!openModal}
|
|
90
|
-
onClose={
|
|
96
|
+
onClose={handleCloseWalletModal}
|
|
91
97
|
image={selectedWalletImage}
|
|
92
98
|
state={selectedWalletState}
|
|
93
99
|
error={error}
|
package/src/store/quote.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { Wallet } from '../types';
|
|
1
|
+
import type { QuoteError, QuoteWarning, SelectedQuote, Wallet } from '../types';
|
|
2
2
|
import type {
|
|
3
|
-
BestRouteResponse,
|
|
4
3
|
BlockchainMeta,
|
|
5
4
|
MetaResponse,
|
|
5
|
+
MultiRouteResponse,
|
|
6
|
+
PreferenceType,
|
|
6
7
|
Token,
|
|
7
8
|
} from 'rango-sdk';
|
|
8
9
|
import type { PendingSwap } from 'rango-types';
|
|
@@ -30,6 +31,14 @@ export type Meta = Pick<MetaResponse, 'blockchains' | 'tokens'>;
|
|
|
30
31
|
|
|
31
32
|
export type SetTokenParams = { token: Token; meta: Meta } | { token: null };
|
|
32
33
|
|
|
34
|
+
type SomeQuoteState = {
|
|
35
|
+
quotes: MultiRouteResponse | null;
|
|
36
|
+
sortStrategy: PreferenceType;
|
|
37
|
+
refetchQuote: boolean;
|
|
38
|
+
error: QuoteError | null;
|
|
39
|
+
warning: QuoteWarning | null;
|
|
40
|
+
};
|
|
41
|
+
|
|
33
42
|
export interface QuoteState {
|
|
34
43
|
fromBlockchain: BlockchainMeta | null;
|
|
35
44
|
toBlockchain: BlockchainMeta | null;
|
|
@@ -38,27 +47,37 @@ export interface QuoteState {
|
|
|
38
47
|
outputAmount: BigNumber | null;
|
|
39
48
|
outputUsdValue: BigNumber | null;
|
|
40
49
|
fromToken: Token | null;
|
|
50
|
+
sortStrategy: PreferenceType;
|
|
41
51
|
toToken: Token | null;
|
|
42
52
|
quoteWalletsConfirmed: boolean;
|
|
43
53
|
selectedWallets: Wallet[];
|
|
44
54
|
quoteWarningsConfirmed: boolean;
|
|
55
|
+
refetchQuote: boolean;
|
|
56
|
+
selectedQuote: SelectedQuote | null;
|
|
57
|
+
quotes: MultiRouteResponse | null;
|
|
58
|
+
customDestination: string | null;
|
|
59
|
+
error: QuoteError | null;
|
|
60
|
+
warning: QuoteWarning | null;
|
|
45
61
|
resetQuote: () => void;
|
|
62
|
+
resetAlerts: () => void;
|
|
63
|
+
|
|
46
64
|
resetToBlockchain: () => void;
|
|
47
65
|
resetFromBlockchain: () => void;
|
|
48
66
|
setFromBlockchain: (chain: BlockchainMeta | null) => void;
|
|
49
67
|
setToBlockchain: (chian: BlockchainMeta | null) => void;
|
|
50
|
-
|
|
51
68
|
setFromToken: (params: SetTokenParams) => void;
|
|
52
69
|
setToToken: (params: SetTokenParams) => void;
|
|
70
|
+
updateQuotePartialState: <K extends keyof SomeQuoteState>(
|
|
71
|
+
key: K,
|
|
72
|
+
value: SomeQuoteState[K]
|
|
73
|
+
) => void;
|
|
53
74
|
setInputAmount: (amount: string) => void;
|
|
54
|
-
quote:
|
|
55
|
-
setQuote: (quote: BestRouteResponse | null) => void;
|
|
75
|
+
setSelectedQuote: (quote: SelectedQuote | null) => void;
|
|
56
76
|
retry: (pendingSwap: PendingSwap, meta: Meta) => void;
|
|
57
77
|
switchFromAndTo: () => void;
|
|
58
78
|
setQuoteWalletConfirmed: (flag: boolean) => void;
|
|
59
79
|
setSelectedWallets: (wallets: Wallet[]) => void;
|
|
60
|
-
|
|
61
|
-
setCustomDestination: (address: string) => void;
|
|
80
|
+
setCustomDestination: (address: string | null) => void;
|
|
62
81
|
resetQuoteWallets: () => void;
|
|
63
82
|
setQuoteWarningsConfirmed: (flag: boolean) => void;
|
|
64
83
|
}
|
|
@@ -74,12 +93,22 @@ export const useQuoteStore = createSelectors(
|
|
|
74
93
|
outputUsdValue: new BigNumber(0),
|
|
75
94
|
toBlockchain: null,
|
|
76
95
|
toToken: null,
|
|
77
|
-
|
|
96
|
+
refetchQuote: true,
|
|
97
|
+
sortStrategy: 'SMART',
|
|
98
|
+
selectedQuote: null,
|
|
99
|
+
quotes: null,
|
|
100
|
+
error: null,
|
|
101
|
+
warning: null,
|
|
78
102
|
quoteWalletsConfirmed: false,
|
|
79
103
|
selectedWallets: [],
|
|
80
|
-
customDestination:
|
|
104
|
+
customDestination: null,
|
|
81
105
|
quoteWarningsConfirmed: false,
|
|
82
|
-
|
|
106
|
+
updateQuotePartialState: (key, value) =>
|
|
107
|
+
set((state) => ({
|
|
108
|
+
...state,
|
|
109
|
+
[key]: value,
|
|
110
|
+
})),
|
|
111
|
+
setSelectedQuote: (quote) =>
|
|
83
112
|
set((state) => {
|
|
84
113
|
let outputAmount: BigNumber | null = null;
|
|
85
114
|
let outputUsdValue: BigNumber = ZERO;
|
|
@@ -87,27 +116,36 @@ export const useQuoteStore = createSelectors(
|
|
|
87
116
|
return {};
|
|
88
117
|
}
|
|
89
118
|
if (!!quote) {
|
|
90
|
-
outputAmount = !!quote
|
|
91
|
-
? new BigNumber(quote
|
|
119
|
+
outputAmount = !!quote?.outputAmount
|
|
120
|
+
? new BigNumber(quote?.outputAmount)
|
|
92
121
|
: null;
|
|
93
122
|
outputUsdValue = calcOutputUsdValue(
|
|
94
|
-
quote
|
|
123
|
+
quote?.outputAmount,
|
|
95
124
|
getQuoteToTokenUsdPrice(quote) || state.toToken?.usdPrice
|
|
96
125
|
);
|
|
97
126
|
}
|
|
98
127
|
return {
|
|
99
|
-
|
|
128
|
+
selectedQuote: quote,
|
|
100
129
|
...(!!quote && {
|
|
101
130
|
outputAmount,
|
|
102
131
|
outputUsdValue,
|
|
103
132
|
}),
|
|
104
133
|
};
|
|
105
134
|
}),
|
|
135
|
+
resetAlerts: () =>
|
|
136
|
+
set(() => ({
|
|
137
|
+
error: null,
|
|
138
|
+
warning: null,
|
|
139
|
+
})),
|
|
106
140
|
resetQuote: () =>
|
|
107
141
|
set(() => ({
|
|
108
|
-
|
|
142
|
+
selectedQuote: null,
|
|
109
143
|
outputAmount: null,
|
|
110
144
|
outputUsdValue: new BigNumber(0),
|
|
145
|
+
quotes: null,
|
|
146
|
+
refetchQuote: true,
|
|
147
|
+
error: null,
|
|
148
|
+
warning: null,
|
|
111
149
|
})),
|
|
112
150
|
setFromBlockchain: (chain) => {
|
|
113
151
|
set((state) => {
|
|
@@ -118,7 +156,7 @@ export const useQuoteStore = createSelectors(
|
|
|
118
156
|
return {
|
|
119
157
|
fromBlockchain: chain,
|
|
120
158
|
...(state.fromToken && {
|
|
121
|
-
|
|
159
|
+
selectedQuote: null,
|
|
122
160
|
fromToken: null,
|
|
123
161
|
outputAmount: null,
|
|
124
162
|
outputUsdValue: null,
|
|
@@ -149,7 +187,7 @@ export const useQuoteStore = createSelectors(
|
|
|
149
187
|
return {
|
|
150
188
|
toBlockchain: chain,
|
|
151
189
|
...(state.toToken && {
|
|
152
|
-
|
|
190
|
+
selectedQuote: null,
|
|
153
191
|
toToken: null,
|
|
154
192
|
outputAmount: null,
|
|
155
193
|
outputUsdValue: null,
|
|
@@ -174,7 +212,7 @@ export const useQuoteStore = createSelectors(
|
|
|
174
212
|
...(!amount && {
|
|
175
213
|
outputAmount: new BigNumber(0),
|
|
176
214
|
outputUsdValue: new BigNumber(0),
|
|
177
|
-
|
|
215
|
+
selectedQuote: null,
|
|
178
216
|
}),
|
|
179
217
|
...(!!state.fromToken && {
|
|
180
218
|
inputUsdValue: getUsdValue(state.fromToken, amount),
|
|
@@ -199,7 +237,7 @@ export const useQuoteStore = createSelectors(
|
|
|
199
237
|
outputUsdValue: new BigNumber(0),
|
|
200
238
|
toBlockchain,
|
|
201
239
|
toToken,
|
|
202
|
-
|
|
240
|
+
selectedQuote: null,
|
|
203
241
|
});
|
|
204
242
|
},
|
|
205
243
|
switchFromAndTo: () =>
|
|
@@ -220,7 +258,7 @@ export const useQuoteStore = createSelectors(
|
|
|
220
258
|
fromBlockchain: null,
|
|
221
259
|
outputAmount: null,
|
|
222
260
|
outputUsdValue: null,
|
|
223
|
-
|
|
261
|
+
selectedQuote: null,
|
|
224
262
|
})),
|
|
225
263
|
resetToBlockchain: () =>
|
|
226
264
|
set(() => ({
|
|
@@ -228,7 +266,7 @@ export const useQuoteStore = createSelectors(
|
|
|
228
266
|
toBlockchain: null,
|
|
229
267
|
outputAmount: null,
|
|
230
268
|
outputUsdValue: null,
|
|
231
|
-
|
|
269
|
+
selectedQuote: null,
|
|
232
270
|
})),
|
|
233
271
|
setQuoteWalletConfirmed: (flag) =>
|
|
234
272
|
set({
|
|
@@ -240,7 +278,7 @@ export const useQuoteStore = createSelectors(
|
|
|
240
278
|
set({
|
|
241
279
|
quoteWalletsConfirmed: false,
|
|
242
280
|
selectedWallets: [],
|
|
243
|
-
customDestination:
|
|
281
|
+
customDestination: null,
|
|
244
282
|
}),
|
|
245
283
|
setQuoteWarningsConfirmed: (flag) =>
|
|
246
284
|
set({ quoteWarningsConfirmed: flag }),
|