@rango-dev/widget-embedded 0.1.11-next.0 → 0.1.11-next.4
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/App.d.ts +3 -3
- package/dist/App.d.ts.map +1 -1
- package/dist/components/AppRouter.d.ts +1 -7
- package/dist/components/AppRouter.d.ts.map +1 -1
- package/dist/components/AppRoutes.d.ts +2 -2
- package/dist/components/AppRoutes.d.ts.map +1 -1
- package/dist/components/Layout.d.ts +3 -3
- package/dist/components/Layout.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap.d.ts.map +1 -1
- package/dist/hooks/useTheme.d.ts +2 -5
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/lib.d.ts +2 -2
- package/dist/lib.d.ts.map +1 -1
- package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
- package/dist/pages/Home.d.ts +1 -7
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/pages/LiquiditySourcesPage.d.ts +1 -2
- package/dist/pages/LiquiditySourcesPage.d.ts.map +1 -1
- package/dist/pages/SelectChainPage.d.ts +1 -2
- package/dist/pages/SelectChainPage.d.ts.map +1 -1
- package/dist/pages/SelectTokenPage.d.ts +2 -2
- package/dist/pages/SelectTokenPage.d.ts.map +1 -1
- package/dist/pages/SettingsPage.d.ts +1 -2
- package/dist/pages/SettingsPage.d.ts.map +1 -1
- package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
- package/dist/pages/WalletsPage.d.ts +1 -1
- package/dist/pages/WalletsPage.d.ts.map +1 -1
- package/dist/store/bestRoute.d.ts.map +1 -1
- package/dist/store/settings.d.ts +2 -0
- package/dist/store/settings.d.ts.map +1 -1
- package/dist/types/config.d.ts +26 -29
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/swap.d.ts +2 -6
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/widget-embedded.cjs.development.js +87 -159
- package/dist/widget-embedded.cjs.development.js.map +1 -1
- package/dist/widget-embedded.cjs.production.min.js +87 -159
- package/dist/widget-embedded.cjs.production.min.js.map +1 -1
- package/dist/widget-embedded.esm.js +86 -158
- package/dist/widget-embedded.esm.js.map +1 -1
- package/package.json +6 -4
- package/readme.md +1 -1
- package/src/App.tsx +21 -13
- package/src/components/AppRouter.tsx +7 -16
- package/src/components/AppRoutes.tsx +13 -32
- package/src/components/Layout.tsx +32 -23
- package/src/hooks/useConfirmSwap.ts +5 -4
- package/src/hooks/useTheme.ts +15 -9
- package/src/lib.tsx +30 -36
- package/src/pages/ConfirmSwapPage.tsx +2 -0
- package/src/pages/Home.tsx +2 -8
- package/src/pages/LiquiditySourcesPage.tsx +3 -6
- package/src/pages/SelectChainPage.tsx +6 -6
- package/src/pages/SelectTokenPage.tsx +16 -18
- package/src/pages/SettingsPage.tsx +8 -18
- package/src/pages/SwapDetailsPage.tsx +2 -4
- package/src/pages/WalletsPage.tsx +2 -2
- package/src/store/bestRoute.ts +3 -2
- package/src/store/settings.ts +7 -0
- package/src/types/config.ts +27 -29
- package/src/utils/swap.ts +3 -96
|
@@ -470,80 +470,6 @@ function getSwapButtonState(loadingMetaStatus, accounts, loading, bestRoute, has
|
|
|
470
470
|
function canComputePriceImpact(bestRoute, inputAmount, inputUsdValue, outputUsdValue) {
|
|
471
471
|
return !((inputUsdValue.lte(ZERO) || outputUsdValue.lte(ZERO)) && !!bestRoute?.result && !!inputAmount && inputAmount !== '0' && parseFloat(inputAmount || '0') !== 0 && !!bestRoute.result);
|
|
472
472
|
}
|
|
473
|
-
function calculatePendingSwap(inputAmount, bestRoute, wallets, settings, validateBalanceOrFee, meta) {
|
|
474
|
-
const simulationResult = bestRoute.result;
|
|
475
|
-
if (!simulationResult) throw Error('Simulation result should not be null');
|
|
476
|
-
return {
|
|
477
|
-
creationTime: new Date().getTime().toString(),
|
|
478
|
-
finishTime: null,
|
|
479
|
-
requestId: bestRoute.requestId || '',
|
|
480
|
-
inputAmount: inputAmount,
|
|
481
|
-
//@ts-ignore
|
|
482
|
-
wallets,
|
|
483
|
-
status: 'running',
|
|
484
|
-
isPaused: false,
|
|
485
|
-
extraMessage: null,
|
|
486
|
-
extraMessageSeverity: null,
|
|
487
|
-
extraMessageDetail: null,
|
|
488
|
-
extraMessageErrorCode: null,
|
|
489
|
-
networkStatusExtraMessage: null,
|
|
490
|
-
networkStatusExtraMessageDetail: null,
|
|
491
|
-
lastNotificationTime: null,
|
|
492
|
-
//@ts-ignore
|
|
493
|
-
settings: settings,
|
|
494
|
-
simulationResult: simulationResult,
|
|
495
|
-
validateBalanceOrFee,
|
|
496
|
-
//@ts-ignore
|
|
497
|
-
steps: bestRoute.result?.swaps?.map((swap, index) => {
|
|
498
|
-
const swapper = meta.swappers.find(swapper => swapper.id === swap.swapperId);
|
|
499
|
-
const swapperType = swapper?.types[0];
|
|
500
|
-
const fromBlockchain = meta.blockchains.find(blockchain => blockchain.name === swap.from.blockchain);
|
|
501
|
-
const toBlockchain = meta.blockchains.find(blockchain => blockchain.name === swap.to.blockchain);
|
|
502
|
-
return {
|
|
503
|
-
id: index + 1,
|
|
504
|
-
fromBlockchain: swap.from.blockchain,
|
|
505
|
-
fromSymbol: swap.from.symbol,
|
|
506
|
-
fromSymbolAddress: swap.from.address,
|
|
507
|
-
fromDecimals: swap.from.decimals,
|
|
508
|
-
fromAmountPrecision: swap.fromAmountPrecision,
|
|
509
|
-
fromAmountMinValue: swap.fromAmountMinValue,
|
|
510
|
-
fromAmountMaxValue: swap.fromAmountMaxValue,
|
|
511
|
-
toBlockchain: swap.to.blockchain,
|
|
512
|
-
fromLogo: swap.from.logo,
|
|
513
|
-
toSymbol: swap.to.symbol,
|
|
514
|
-
toSymbolAddress: swap.to.address,
|
|
515
|
-
toDecimals: swap.to.decimals,
|
|
516
|
-
toLogo: swap.to.logo,
|
|
517
|
-
startTransactionTime: new Date().getTime(),
|
|
518
|
-
swapperId: swap.swapperId,
|
|
519
|
-
feeInUsd: numberToString(getUsdFeeOfStep(swap, meta.tokens), null, 2),
|
|
520
|
-
expectedOutputAmountHumanReadable: swap.toAmount,
|
|
521
|
-
outputAmount: '',
|
|
522
|
-
status: 'created',
|
|
523
|
-
networkStatus: null,
|
|
524
|
-
executedTransactionId: null,
|
|
525
|
-
externalTransactionId: null,
|
|
526
|
-
explorerUrl: null,
|
|
527
|
-
trackingCode: null,
|
|
528
|
-
cosmosTransaction: null,
|
|
529
|
-
solanaTransaction: null,
|
|
530
|
-
starknetTransaction: null,
|
|
531
|
-
starknetApprovalTransaction: null,
|
|
532
|
-
tronTransaction: null,
|
|
533
|
-
tronApprovalTransaction: null,
|
|
534
|
-
evmTransaction: null,
|
|
535
|
-
evmApprovalTransaction: null,
|
|
536
|
-
transferTransaction: null,
|
|
537
|
-
diagnosisUrl: null,
|
|
538
|
-
internalSteps: null,
|
|
539
|
-
fromBlockchainLogo: fromBlockchain?.logo || '',
|
|
540
|
-
toBlockchainLogo: toBlockchain?.logo || '',
|
|
541
|
-
swapperLogo: swapper?.logo || '',
|
|
542
|
-
swapperType: swapperType || ''
|
|
543
|
-
};
|
|
544
|
-
}) || []
|
|
545
|
-
};
|
|
546
|
-
}
|
|
547
473
|
function requiredWallets(route) {
|
|
548
474
|
const wallets = [];
|
|
549
475
|
route?.result?.swaps.forEach(swap => {
|
|
@@ -585,7 +511,7 @@ function hasProperSlippage(userSlippage, minRequiredSlippage) {
|
|
|
585
511
|
if (!minRequiredSlippage) return true;
|
|
586
512
|
return parseFloat(userSlippage) >= parseFloat(minRequiredSlippage);
|
|
587
513
|
}
|
|
588
|
-
function createBestRouteRequestBody(fromToken, toToken, inputAmount, wallets, selectedWallets, disabledLiquiditySources, slippage, checkPrerequisites) {
|
|
514
|
+
function createBestRouteRequestBody(fromToken, toToken, inputAmount, wallets, selectedWallets, disabledLiquiditySources, slippage, checkPrerequisites, affiliateRef) {
|
|
589
515
|
const selectedWalletsMap = selectedWallets.reduce((selectedWalletsMap, selectedWallet) => (selectedWalletsMap[selectedWallet.chain] = selectedWallet.address, selectedWalletsMap), {});
|
|
590
516
|
const connectedWallets = [];
|
|
591
517
|
wallets.forEach(wallet => {
|
|
@@ -598,6 +524,7 @@ function createBestRouteRequestBody(fromToken, toToken, inputAmount, wallets, se
|
|
|
598
524
|
const filteredBlockchains = selectedWallets.map(wallet => wallet.chain);
|
|
599
525
|
const requestBody = {
|
|
600
526
|
amount: inputAmount.toString(),
|
|
527
|
+
affiliateRef,
|
|
601
528
|
checkPrerequisites,
|
|
602
529
|
from: {
|
|
603
530
|
address: fromToken.address,
|
|
@@ -822,6 +749,7 @@ const useSettingsStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.crea
|
|
|
822
749
|
slippage: DEFAULT_SLIPPAGE,
|
|
823
750
|
customSlippage: null,
|
|
824
751
|
infiniteApprove: false,
|
|
752
|
+
affiliateRef: null,
|
|
825
753
|
disabledLiquiditySources: [],
|
|
826
754
|
theme: 'auto',
|
|
827
755
|
setSlippage: slippage => set(() => ({
|
|
@@ -830,6 +758,9 @@ const useSettingsStore = /*#__PURE__*/createSelectors( /*#__PURE__*/zustand.crea
|
|
|
830
758
|
setCustomSlippage: customSlippage => set(() => ({
|
|
831
759
|
customSlippage: customSlippage
|
|
832
760
|
})),
|
|
761
|
+
setAffiliateRef: affiliateRef => set(() => ({
|
|
762
|
+
affiliateRef
|
|
763
|
+
})),
|
|
833
764
|
toggleAllLiquiditySources: () => set(state => {
|
|
834
765
|
const {
|
|
835
766
|
swappers
|
|
@@ -1108,13 +1039,14 @@ const bestRoute = (bestRouteStore, settingsStore) => {
|
|
|
1108
1039
|
const {
|
|
1109
1040
|
slippage,
|
|
1110
1041
|
customSlippage,
|
|
1111
|
-
disabledLiquiditySources
|
|
1042
|
+
disabledLiquiditySources,
|
|
1043
|
+
affiliateRef
|
|
1112
1044
|
} = settingsStore.getState();
|
|
1113
1045
|
if (!fromToken || !toToken || !inputAmount || inputAmount === '0') return;
|
|
1114
1046
|
abortController?.abort();
|
|
1115
1047
|
abortController = new AbortController();
|
|
1116
1048
|
const userSlippage = !!customSlippage ? customSlippage : slippage;
|
|
1117
|
-
const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, [], [], disabledLiquiditySources, userSlippage, false);
|
|
1049
|
+
const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, [], [], disabledLiquiditySources, userSlippage, false, affiliateRef);
|
|
1118
1050
|
if (!bestRouteStore.getState().loading) bestRouteStore.setState({
|
|
1119
1051
|
loading: true,
|
|
1120
1052
|
bestRoute: null,
|
|
@@ -1722,10 +1654,7 @@ const Alerts = /*#__PURE__*/ui.styled('div', {
|
|
|
1722
1654
|
width: '100%',
|
|
1723
1655
|
paddingTop: '$16'
|
|
1724
1656
|
});
|
|
1725
|
-
function Home(
|
|
1726
|
-
const {
|
|
1727
|
-
title = 'SWAP'
|
|
1728
|
-
} = props;
|
|
1657
|
+
function Home() {
|
|
1729
1658
|
const isRouterInContext = reactRouterDom.useInRouterContext();
|
|
1730
1659
|
const navigate = reactRouterDom.useNavigate();
|
|
1731
1660
|
const [count, setCount] = React.useState(0);
|
|
@@ -1766,7 +1695,7 @@ function Home(props) {
|
|
|
1766
1695
|
return setCurrentPage.bind(null, '');
|
|
1767
1696
|
}, []);
|
|
1768
1697
|
return React__default.createElement(Container$2, null, React__default.createElement(ui.Header, {
|
|
1769
|
-
title:
|
|
1698
|
+
title: "SWAP",
|
|
1770
1699
|
suffix: React__default.createElement(HeaderButtons, {
|
|
1771
1700
|
onClickRefresh: !!bestRoute ? fetchBestRoute : undefined
|
|
1772
1701
|
})
|
|
@@ -1827,8 +1756,7 @@ function Home(props) {
|
|
|
1827
1756
|
|
|
1828
1757
|
const Route = _ref => {
|
|
1829
1758
|
let {
|
|
1830
|
-
children
|
|
1831
|
-
...props
|
|
1759
|
+
children
|
|
1832
1760
|
} = _ref;
|
|
1833
1761
|
const location = reactRouter.useLocation();
|
|
1834
1762
|
const navigate = reactRouter.useNavigate();
|
|
@@ -1839,7 +1767,7 @@ const Route = _ref => {
|
|
|
1839
1767
|
});
|
|
1840
1768
|
ref.current = false;
|
|
1841
1769
|
}, []);
|
|
1842
|
-
if (location.pathname === navigationRoutes.confirmSwap && ref.current) return React__default.createElement(Home,
|
|
1770
|
+
if (location.pathname === navigationRoutes.confirmSwap && ref.current) return React__default.createElement(Home, null);
|
|
1843
1771
|
return React__default.createElement(React__default.Fragment, null, " ", children);
|
|
1844
1772
|
};
|
|
1845
1773
|
function AppRouter(_ref2) {
|
|
@@ -2083,6 +2011,7 @@ function useConfirmSwap() {
|
|
|
2083
2011
|
const initialRoute = useBestRouteStore.use.bestRoute();
|
|
2084
2012
|
const setBestRoute = useBestRouteStore.use.setBestRoute();
|
|
2085
2013
|
const inputUsdValue = useBestRouteStore.use.inputUsdValue();
|
|
2014
|
+
const affiliateRef = useSettingsStore.use.affiliateRef();
|
|
2086
2015
|
const accounts = useWalletsStore.use.accounts();
|
|
2087
2016
|
const selectedWallets = useWalletsStore.use.selectedWallets();
|
|
2088
2017
|
const meta = useMetaStore.use.meta();
|
|
@@ -2115,15 +2044,14 @@ function useConfirmSwap() {
|
|
|
2115
2044
|
if (warnings.length > 0) setWarnings([]);
|
|
2116
2045
|
proceedAnywayRef.current = false;
|
|
2117
2046
|
if (confiremedRouteRef.current) {
|
|
2118
|
-
const newSwap = calculatePendingSwap(inputAmount.toString(), confiremedRouteRef.current, getWalletsForNewSwap(selectedWallets), swapSettings, false, meta);
|
|
2119
|
-
//@ts-ignore
|
|
2047
|
+
const newSwap = queueManagerRangoPreset.calculatePendingSwap(inputAmount.toString(), confiremedRouteRef.current, getWalletsForNewSwap(selectedWallets), swapSettings, false, meta);
|
|
2120
2048
|
return newSwap;
|
|
2121
2049
|
}
|
|
2122
2050
|
return;
|
|
2123
2051
|
}
|
|
2124
2052
|
abortControllerRef.current = new AbortController();
|
|
2125
2053
|
setLoading(true);
|
|
2126
|
-
const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, accounts, selectedWallets, disabledLiquiditySources, userSlippage, true);
|
|
2054
|
+
const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, accounts, selectedWallets, disabledLiquiditySources, userSlippage, true, affiliateRef);
|
|
2127
2055
|
try {
|
|
2128
2056
|
const confiremedRoute = await httpService.getBestRoute(requestBody, {
|
|
2129
2057
|
signal: abortControllerRef.current?.signal
|
|
@@ -2178,8 +2106,7 @@ function useConfirmSwap() {
|
|
|
2178
2106
|
slippage: userSlippage.toString(),
|
|
2179
2107
|
disabledSwappersGroups: disabledLiquiditySources
|
|
2180
2108
|
};
|
|
2181
|
-
const newSwap = calculatePendingSwap(inputAmount.toString(), confiremedRoute, getWalletsForNewSwap(selectedWallets), swapSettings, false, meta);
|
|
2182
|
-
//@ts-ignore
|
|
2109
|
+
const newSwap = queueManagerRangoPreset.calculatePendingSwap(inputAmount.toString(), confiremedRoute, getWalletsForNewSwap(selectedWallets), swapSettings, false, meta);
|
|
2183
2110
|
return newSwap;
|
|
2184
2111
|
} else if (!proceedAnywayRef.current) {
|
|
2185
2112
|
proceedAnywayRef.current = true;
|
|
@@ -2397,7 +2324,10 @@ function ConfirmSwapPage() {
|
|
|
2397
2324
|
getKeplrCompatibleConnectedWallets(selectableWallets).forEach(compatibleWallet => connect?.(compatibleWallet, network));
|
|
2398
2325
|
};
|
|
2399
2326
|
const totalFeeInUsd = getTotalFeeInUsd(bestRoute, tokens);
|
|
2400
|
-
return React__default.createElement(ui.ConfirmSwap
|
|
2327
|
+
return React__default.createElement(ui.ConfirmSwap
|
|
2328
|
+
// @ts-ignore
|
|
2329
|
+
, {
|
|
2330
|
+
// @ts-ignore
|
|
2401
2331
|
requiredWallets: getRequiredChains(bestRoute),
|
|
2402
2332
|
selectableWallets: selectableWallets,
|
|
2403
2333
|
onBack: navigateBackFrom.bind(null, navigationRoutes.confirmSwap),
|
|
@@ -2406,7 +2336,9 @@ function ConfirmSwapPage() {
|
|
|
2406
2336
|
if (swap) {
|
|
2407
2337
|
manager?.create('swap', {
|
|
2408
2338
|
swapDetails: swap
|
|
2409
|
-
},
|
|
2339
|
+
},
|
|
2340
|
+
// @ts-ignore
|
|
2341
|
+
{
|
|
2410
2342
|
id: swap.requestId
|
|
2411
2343
|
});
|
|
2412
2344
|
setSelectedSwap(swap.requestId);
|
|
@@ -2564,7 +2496,7 @@ function LiquiditySourcePage(_ref) {
|
|
|
2564
2496
|
});
|
|
2565
2497
|
return React__default.createElement(ui.LiquiditySourcesSelector, {
|
|
2566
2498
|
toggleAll: toggleAllLiquiditySources,
|
|
2567
|
-
list: supportedSwappers
|
|
2499
|
+
list: supportedSwappers ? uniqueSwappersGroups.filter(item => supportedSwappers.filter(s => s === item.title).length > 0) : uniqueSwappersGroups,
|
|
2568
2500
|
onChange: liquiditySource => toggleLiquiditySource(liquiditySource.title),
|
|
2569
2501
|
onBack: navigateBackFrom.bind(null, navigationRoutes.liquiditySources),
|
|
2570
2502
|
loadingStatus: loadingMetaStatus
|
|
@@ -2576,7 +2508,7 @@ function SelectChainPage(props) {
|
|
|
2576
2508
|
type,
|
|
2577
2509
|
supportedChains
|
|
2578
2510
|
} = props;
|
|
2579
|
-
const blockchains = supportedChains
|
|
2511
|
+
const blockchains = supportedChains ? useMetaStore.use.meta().blockchains.filter(chain => supportedChains.includes(chain.name)) : useMetaStore.use.meta().blockchains;
|
|
2580
2512
|
const loadingStatus = useMetaStore.use.loadingStatus();
|
|
2581
2513
|
const fromChain = useBestRouteStore.use.fromChain();
|
|
2582
2514
|
const toChain = useBestRouteStore.use.toChain();
|
|
@@ -2608,8 +2540,8 @@ function SelectTokenPage(props) {
|
|
|
2608
2540
|
} = props;
|
|
2609
2541
|
const sourceTokens = useBestRouteStore.use.sourceTokens();
|
|
2610
2542
|
const destinationTokens = useBestRouteStore.use.destinationTokens();
|
|
2611
|
-
const supportedSourceTokens = supportedTokens
|
|
2612
|
-
const supportedDestinationTokens = supportedTokens
|
|
2543
|
+
const supportedSourceTokens = supportedTokens ? sourceTokens.filter(token => supportedTokens.some(supportedToken => tokensAreEqual(supportedToken, token))) : sourceTokens;
|
|
2544
|
+
const supportedDestinationTokens = supportedTokens ? destinationTokens.filter(token => supportedTokens.some(supportedToken => tokensAreEqual(supportedToken, token))) : destinationTokens;
|
|
2613
2545
|
const fromToken = useBestRouteStore.use.fromToken();
|
|
2614
2546
|
const toToken = useBestRouteStore.use.toToken();
|
|
2615
2547
|
const setFromToken = useBestRouteStore.use.setFromToken();
|
|
@@ -2662,8 +2594,8 @@ function SettingsPage(_ref) {
|
|
|
2662
2594
|
}
|
|
2663
2595
|
}
|
|
2664
2596
|
});
|
|
2665
|
-
supportedSwappers
|
|
2666
|
-
const supportedUniqueSwappersGroups = supportedSwappers
|
|
2597
|
+
supportedSwappers && uniqueSwappersGroups.filter(item => supportedSwappers.filter(s => s === item.title).length > 0);
|
|
2598
|
+
const supportedUniqueSwappersGroups = supportedSwappers ? uniqueSwappersGroups.filter(item => supportedSwappers.filter(s => s === item.title).length > 0) : uniqueSwappersGroups;
|
|
2667
2599
|
return React__default.createElement(ui.Settings, {
|
|
2668
2600
|
slippages: SLIPPAGES,
|
|
2669
2601
|
selectedSlippage: slippage,
|
|
@@ -2716,7 +2648,7 @@ function WalletsPage(_ref) {
|
|
|
2716
2648
|
getWalletInfo,
|
|
2717
2649
|
connect
|
|
2718
2650
|
} = walletsCore.useWallets();
|
|
2719
|
-
const wallets = getlistWallet(state, getWalletInfo, supportedWallets
|
|
2651
|
+
const wallets = getlistWallet(state, getWalletInfo, supportedWallets || Object.values(walletsShared.WalletType));
|
|
2720
2652
|
const walletsRef = React.useRef();
|
|
2721
2653
|
let sortedWallets = walletsShared.detectMobileScreens() ? wallets.filter(wallet => wallet.showOnMobile) : wallets;
|
|
2722
2654
|
sortedWallets = sortWalletsBasedOnState(sortedWallets);
|
|
@@ -2925,7 +2857,7 @@ function SwapDetailsPage() {
|
|
|
2925
2857
|
}), React__default.createElement(TokenPreview, {
|
|
2926
2858
|
chain: {
|
|
2927
2859
|
displayName: lastStep?.toBlockchain || '',
|
|
2928
|
-
|
|
2860
|
+
//@ts-ignore
|
|
2929
2861
|
logo: lastStep?.toBlockchainLogo || ''
|
|
2930
2862
|
},
|
|
2931
2863
|
token: {
|
|
@@ -2937,7 +2869,6 @@ function SwapDetailsPage() {
|
|
|
2937
2869
|
loadingStatus: 'success'
|
|
2938
2870
|
})),
|
|
2939
2871
|
//todo: move PendingSwap type to rango-types
|
|
2940
|
-
//@ts-ignore
|
|
2941
2872
|
pendingSwap: swap,
|
|
2942
2873
|
onCopy: handleCopy,
|
|
2943
2874
|
isCopied: isCopied,
|
|
@@ -2967,48 +2898,44 @@ function SwapDetailsPage() {
|
|
|
2967
2898
|
const getAbsolutePath = path => path.replace('/', '');
|
|
2968
2899
|
function AppRoutes(props) {
|
|
2969
2900
|
const {
|
|
2970
|
-
|
|
2901
|
+
config
|
|
2971
2902
|
} = props;
|
|
2972
2903
|
return reactRouterDom.useRoutes([{
|
|
2973
2904
|
path: getAbsolutePath(navigationRoutes.home),
|
|
2974
|
-
element: React__default.createElement(Home,
|
|
2975
|
-
title: configs?.title,
|
|
2976
|
-
titleSize: configs?.titleSize,
|
|
2977
|
-
titleWeight: configs?.titleWeight
|
|
2978
|
-
})
|
|
2905
|
+
element: React__default.createElement(Home, null)
|
|
2979
2906
|
}, {
|
|
2980
2907
|
path: getAbsolutePath(navigationRoutes.fromChain),
|
|
2981
2908
|
element: React__default.createElement(SelectChainPage, {
|
|
2982
2909
|
type: "from",
|
|
2983
|
-
supportedChains:
|
|
2910
|
+
supportedChains: config?.from?.blockchains
|
|
2984
2911
|
})
|
|
2985
2912
|
}, {
|
|
2986
2913
|
path: getAbsolutePath(navigationRoutes.toChain),
|
|
2987
2914
|
element: React__default.createElement(SelectChainPage, {
|
|
2988
2915
|
type: "to",
|
|
2989
|
-
supportedChains:
|
|
2916
|
+
supportedChains: config?.to?.blockchains
|
|
2990
2917
|
})
|
|
2991
2918
|
}, {
|
|
2992
2919
|
path: getAbsolutePath(navigationRoutes.fromToken),
|
|
2993
2920
|
element: React__default.createElement(SelectTokenPage, {
|
|
2994
2921
|
type: "from",
|
|
2995
|
-
supportedTokens:
|
|
2922
|
+
supportedTokens: config?.from?.tokens
|
|
2996
2923
|
})
|
|
2997
2924
|
}, {
|
|
2998
2925
|
path: getAbsolutePath(navigationRoutes.toToken),
|
|
2999
2926
|
element: React__default.createElement(SelectTokenPage, {
|
|
3000
2927
|
type: "to",
|
|
3001
|
-
supportedTokens:
|
|
2928
|
+
supportedTokens: config?.to?.tokens
|
|
3002
2929
|
})
|
|
3003
2930
|
}, {
|
|
3004
2931
|
path: getAbsolutePath(navigationRoutes.settings),
|
|
3005
2932
|
element: React__default.createElement(SettingsPage, {
|
|
3006
|
-
supportedSwappers:
|
|
2933
|
+
supportedSwappers: config?.liquiditySources
|
|
3007
2934
|
})
|
|
3008
2935
|
}, {
|
|
3009
2936
|
path: getAbsolutePath(navigationRoutes.liquiditySources),
|
|
3010
2937
|
element: React__default.createElement(LiquiditySourcePage, {
|
|
3011
|
-
supportedSwappers:
|
|
2938
|
+
supportedSwappers: config?.liquiditySources
|
|
3012
2939
|
})
|
|
3013
2940
|
}, {
|
|
3014
2941
|
path: getAbsolutePath(navigationRoutes.swaps),
|
|
@@ -3019,8 +2946,8 @@ function AppRoutes(props) {
|
|
|
3019
2946
|
}, {
|
|
3020
2947
|
path: getAbsolutePath(navigationRoutes.wallets),
|
|
3021
2948
|
element: React__default.createElement(WalletsPage, {
|
|
3022
|
-
supportedWallets:
|
|
3023
|
-
multiWallets: typeof
|
|
2949
|
+
supportedWallets: config?.wallets,
|
|
2950
|
+
multiWallets: typeof config?.multiWallets === 'undefined' ? true : config.multiWallets
|
|
3024
2951
|
})
|
|
3025
2952
|
}, {
|
|
3026
2953
|
path: getAbsolutePath(navigationRoutes.confirmSwap),
|
|
@@ -3045,7 +2972,7 @@ const WalletImage = /*#__PURE__*/ui.styled('img', {
|
|
|
3045
2972
|
});
|
|
3046
2973
|
function Layout(_ref) {
|
|
3047
2974
|
let {
|
|
3048
|
-
|
|
2975
|
+
config
|
|
3049
2976
|
} = _ref;
|
|
3050
2977
|
const navigate = reactRouterDom.useNavigate();
|
|
3051
2978
|
const {
|
|
@@ -3057,11 +2984,16 @@ function Layout(_ref) {
|
|
|
3057
2984
|
getWalletInfo
|
|
3058
2985
|
} = walletsCore.useWallets();
|
|
3059
2986
|
const connectedWalletsImages = removeDuplicateFrom(getSelectableWallets(accounts, selectedWallets, getWalletInfo).map(w => w.image));
|
|
2987
|
+
const {
|
|
2988
|
+
blockchains,
|
|
2989
|
+
tokens
|
|
2990
|
+
} = useMetaStore.use.meta();
|
|
3060
2991
|
const setFromChain = useBestRouteStore.use.setFromChain();
|
|
3061
2992
|
const setFromToken = useBestRouteStore.use.setFromToken();
|
|
3062
2993
|
const setToChain = useBestRouteStore.use.setToChain();
|
|
3063
2994
|
const setToToken = useBestRouteStore.use.setToToken();
|
|
3064
2995
|
const setInputAmount = useBestRouteStore.use.setInputAmount();
|
|
2996
|
+
const setAffiliateRef = useSettingsStore.use.setAffiliateRef();
|
|
3065
2997
|
const totalBalance = calculateWalletUsdValue(balances);
|
|
3066
2998
|
const connectWalletsButtonDisabled = useUiStore.use.connectWalletsButtonDisabled();
|
|
3067
2999
|
const loadingMetaStatus = useMetaStore.use.loadingStatus();
|
|
@@ -3070,22 +3002,23 @@ function Layout(_ref) {
|
|
|
3070
3002
|
t
|
|
3071
3003
|
} = reactI18next.useTranslation();
|
|
3072
3004
|
React.useEffect(() => {
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3005
|
+
const chain = blockchains.find(chain => chain.name === config?.to?.blockchain);
|
|
3006
|
+
const token = tokens.find(t => tokensAreEqual(t, config?.to?.token || null));
|
|
3007
|
+
setToChain(chain || null);
|
|
3008
|
+
setToToken(token || null);
|
|
3009
|
+
}, [config?.to?.token, config?.to?.blockchain]);
|
|
3076
3010
|
React.useEffect(() => {
|
|
3077
|
-
setInputAmount(
|
|
3078
|
-
}, [
|
|
3011
|
+
setInputAmount(config?.amount?.toString() || '');
|
|
3012
|
+
}, [config?.amount]);
|
|
3079
3013
|
React.useEffect(() => {
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3014
|
+
const chain = blockchains.find(chain => chain.name === config?.from?.blockchain);
|
|
3015
|
+
const token = tokens.find(t => tokensAreEqual(t, config?.from?.token || null));
|
|
3016
|
+
setFromChain(chain || null);
|
|
3017
|
+
setFromToken(token || null);
|
|
3018
|
+
}, [config?.from?.token, config?.from?.blockchain]);
|
|
3083
3019
|
React.useEffect(() => {
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
setFromToken(null);
|
|
3087
|
-
setToToken(null);
|
|
3088
|
-
}, [configs?.fromChains, configs?.toChains, configs?.fromTokens, configs?.toTokens]);
|
|
3020
|
+
setAffiliateRef(config?.affiliateRef || null);
|
|
3021
|
+
}, [config?.affiliateRef]);
|
|
3089
3022
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(Header, null, React__default.createElement(ui.Button, {
|
|
3090
3023
|
size: "small",
|
|
3091
3024
|
suffix: React__default.createElement(ui.AddWalletIcon, {
|
|
@@ -3106,7 +3039,7 @@ function Layout(_ref) {
|
|
|
3106
3039
|
}, React__default.createElement(ui.Typography, {
|
|
3107
3040
|
variant: "body2"
|
|
3108
3041
|
}, !accounts?.length ? t('Connect Wallet') : `$${totalBalance || 0}`), fetchingBalance && React__default.createElement(ui.Spinner, null)))), React__default.createElement(AppRoutes, {
|
|
3109
|
-
|
|
3042
|
+
config: config
|
|
3110
3043
|
}));
|
|
3111
3044
|
}
|
|
3112
3045
|
|
|
@@ -3149,17 +3082,20 @@ function usePrevious(value) {
|
|
|
3149
3082
|
|
|
3150
3083
|
function useTheme(_ref) {
|
|
3151
3084
|
let {
|
|
3152
|
-
|
|
3153
|
-
background = '#fff',
|
|
3154
|
-
foreground = '#000',
|
|
3155
|
-
error = '#FF0000',
|
|
3156
|
-
warning = '#F5A623',
|
|
3157
|
-
success = '#0070F3',
|
|
3085
|
+
colors: themeColors,
|
|
3158
3086
|
fontFamily = 'Robot',
|
|
3159
|
-
borderRadius = 8
|
|
3087
|
+
borderRadius = 8,
|
|
3088
|
+
mode = 'auto'
|
|
3160
3089
|
} = _ref;
|
|
3161
3090
|
const theme = useSettingsStore.use.theme();
|
|
3162
3091
|
const fetchMeta = useMetaStore.use.fetchMeta();
|
|
3092
|
+
const setTheme = useSettingsStore.use.setTheme();
|
|
3093
|
+
const primary = themeColors?.primary || '#5FA425',
|
|
3094
|
+
background = themeColors?.background || '#fff',
|
|
3095
|
+
foreground = themeColors?.foreground || '#000',
|
|
3096
|
+
error = themeColors?.error || '#FF0000',
|
|
3097
|
+
warning = themeColors?.warning || '#F5A623',
|
|
3098
|
+
success = themeColors?.success || '#0070F3';
|
|
3163
3099
|
const colors = {
|
|
3164
3100
|
neutrals200: '#FAFAFA',
|
|
3165
3101
|
neutrals300: '#f2f2f2',
|
|
@@ -3237,6 +3173,9 @@ function useTheme(_ref) {
|
|
|
3237
3173
|
window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', switchTheme);
|
|
3238
3174
|
};
|
|
3239
3175
|
}, []);
|
|
3176
|
+
React.useEffect(() => {
|
|
3177
|
+
if (mode !== 'auto') setTheme(mode);
|
|
3178
|
+
}, [mode]);
|
|
3240
3179
|
const prevFont = usePrevious(fontFamily);
|
|
3241
3180
|
React.useLayoutEffect(() => {
|
|
3242
3181
|
const {
|
|
@@ -3401,29 +3340,27 @@ function QueueManager(props) {
|
|
|
3401
3340
|
|
|
3402
3341
|
const SwapBox = _ref => {
|
|
3403
3342
|
let {
|
|
3404
|
-
|
|
3343
|
+
config
|
|
3405
3344
|
} = _ref;
|
|
3406
3345
|
globalStyles();
|
|
3407
|
-
globalFont(
|
|
3346
|
+
globalFont(config?.theme?.fontFamily || 'Roboto');
|
|
3408
3347
|
const {
|
|
3409
3348
|
activeTheme
|
|
3410
3349
|
} = useTheme({
|
|
3411
|
-
...
|
|
3412
|
-
borderRadius: configs?.borderRadius,
|
|
3413
|
-
fontFamily: configs?.fontFamily
|
|
3350
|
+
...config?.theme
|
|
3414
3351
|
});
|
|
3415
3352
|
const {
|
|
3416
3353
|
blockchains
|
|
3417
3354
|
} = useMetaStore.use.meta();
|
|
3418
3355
|
const disconnectWallet = useWalletsStore.use.disconnectWallet();
|
|
3419
3356
|
const connectWallet = useWalletsStore.use.connectWallet();
|
|
3420
|
-
const setTheme = useSettingsStore.use.setTheme();
|
|
3421
3357
|
const {
|
|
3422
3358
|
changeLanguage
|
|
3423
3359
|
} = useSelectLanguage();
|
|
3424
3360
|
const clearConnectedWallet = useWalletsStore.use.clearConnectedWallet();
|
|
3425
3361
|
const [lastConnectedWalletWithNetwork, setLastConnectedWalletWithNetwork] = React.useState('');
|
|
3426
3362
|
const [disconnectedWallet, setDisconnectedWallet] = React.useState();
|
|
3363
|
+
const currentPage = useUiStore.use.currentPage();
|
|
3427
3364
|
const evmBasedChainNames = blockchains.filter(rangoSdk.isEvmBlockchain).map(chain => chain.name);
|
|
3428
3365
|
const onUpdateState = (type, event, value, state, supportedChains) => {
|
|
3429
3366
|
if (event === walletsCore.Events.ACCOUNTS) {
|
|
@@ -3448,19 +3385,16 @@ const SwapBox = _ref => {
|
|
|
3448
3385
|
};
|
|
3449
3386
|
let providers = providerAll.allProviders();
|
|
3450
3387
|
React.useEffect(() => {
|
|
3451
|
-
|
|
3452
|
-
}, [configs.theme]);
|
|
3453
|
-
React.useEffect(() => {
|
|
3454
|
-
const wallets = configs.wallets;
|
|
3388
|
+
const wallets = config?.wallets;
|
|
3455
3389
|
clearConnectedWallet();
|
|
3456
|
-
providers = wallets
|
|
3390
|
+
providers = !wallets ? providerAll.allProviders() : providerAll.allProviders().filter(provider => {
|
|
3457
3391
|
const type = provider.config.type;
|
|
3458
3392
|
return wallets.find(w => w === type);
|
|
3459
3393
|
});
|
|
3460
|
-
}, [
|
|
3394
|
+
}, [config?.wallets]);
|
|
3461
3395
|
React.useEffect(() => {
|
|
3462
|
-
changeLanguage(
|
|
3463
|
-
}, [
|
|
3396
|
+
changeLanguage(config?.language || 'en');
|
|
3397
|
+
}, [config?.language]);
|
|
3464
3398
|
return React__default.createElement(walletsCore.Provider, {
|
|
3465
3399
|
allBlockChains: blockchains,
|
|
3466
3400
|
providers: providers,
|
|
@@ -3469,21 +3403,15 @@ const SwapBox = _ref => {
|
|
|
3469
3403
|
id: "pageContainer",
|
|
3470
3404
|
className: activeTheme
|
|
3471
3405
|
}, React__default.createElement(QueueManager, null, React__default.createElement(ui.SwapContainer, {
|
|
3472
|
-
|
|
3473
|
-
width: configs?.width || 'auto',
|
|
3474
|
-
height: configs?.height || 'auto'
|
|
3475
|
-
}
|
|
3406
|
+
fixedHeight: currentPage !== navigationRoutes.home
|
|
3476
3407
|
}, React__default.createElement(AppRouter, {
|
|
3477
|
-
title: configs.title,
|
|
3478
|
-
titleSize: configs.titleSize,
|
|
3479
|
-
titleWeight: configs.titleWeight,
|
|
3480
3408
|
lastConnectedWallet: lastConnectedWalletWithNetwork,
|
|
3481
3409
|
disconnectedWallet: disconnectedWallet,
|
|
3482
3410
|
clearDisconnectedWallet: () => {
|
|
3483
3411
|
setDisconnectedWallet(undefined);
|
|
3484
3412
|
}
|
|
3485
3413
|
}, React__default.createElement(Layout, {
|
|
3486
|
-
|
|
3414
|
+
config: config
|
|
3487
3415
|
}))))));
|
|
3488
3416
|
};
|
|
3489
3417
|
|