@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.
Files changed (61) hide show
  1. package/dist/App.d.ts +3 -3
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/components/AppRouter.d.ts +1 -7
  4. package/dist/components/AppRouter.d.ts.map +1 -1
  5. package/dist/components/AppRoutes.d.ts +2 -2
  6. package/dist/components/AppRoutes.d.ts.map +1 -1
  7. package/dist/components/Layout.d.ts +3 -3
  8. package/dist/components/Layout.d.ts.map +1 -1
  9. package/dist/hooks/useConfirmSwap.d.ts.map +1 -1
  10. package/dist/hooks/useTheme.d.ts +2 -5
  11. package/dist/hooks/useTheme.d.ts.map +1 -1
  12. package/dist/lib.d.ts +2 -2
  13. package/dist/lib.d.ts.map +1 -1
  14. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  15. package/dist/pages/Home.d.ts +1 -7
  16. package/dist/pages/Home.d.ts.map +1 -1
  17. package/dist/pages/LiquiditySourcesPage.d.ts +1 -2
  18. package/dist/pages/LiquiditySourcesPage.d.ts.map +1 -1
  19. package/dist/pages/SelectChainPage.d.ts +1 -2
  20. package/dist/pages/SelectChainPage.d.ts.map +1 -1
  21. package/dist/pages/SelectTokenPage.d.ts +2 -2
  22. package/dist/pages/SelectTokenPage.d.ts.map +1 -1
  23. package/dist/pages/SettingsPage.d.ts +1 -2
  24. package/dist/pages/SettingsPage.d.ts.map +1 -1
  25. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  26. package/dist/pages/WalletsPage.d.ts +1 -1
  27. package/dist/pages/WalletsPage.d.ts.map +1 -1
  28. package/dist/store/bestRoute.d.ts.map +1 -1
  29. package/dist/store/settings.d.ts +2 -0
  30. package/dist/store/settings.d.ts.map +1 -1
  31. package/dist/types/config.d.ts +26 -29
  32. package/dist/types/config.d.ts.map +1 -1
  33. package/dist/utils/swap.d.ts +2 -6
  34. package/dist/utils/swap.d.ts.map +1 -1
  35. package/dist/widget-embedded.cjs.development.js +87 -159
  36. package/dist/widget-embedded.cjs.development.js.map +1 -1
  37. package/dist/widget-embedded.cjs.production.min.js +87 -159
  38. package/dist/widget-embedded.cjs.production.min.js.map +1 -1
  39. package/dist/widget-embedded.esm.js +86 -158
  40. package/dist/widget-embedded.esm.js.map +1 -1
  41. package/package.json +6 -4
  42. package/readme.md +1 -1
  43. package/src/App.tsx +21 -13
  44. package/src/components/AppRouter.tsx +7 -16
  45. package/src/components/AppRoutes.tsx +13 -32
  46. package/src/components/Layout.tsx +32 -23
  47. package/src/hooks/useConfirmSwap.ts +5 -4
  48. package/src/hooks/useTheme.ts +15 -9
  49. package/src/lib.tsx +30 -36
  50. package/src/pages/ConfirmSwapPage.tsx +2 -0
  51. package/src/pages/Home.tsx +2 -8
  52. package/src/pages/LiquiditySourcesPage.tsx +3 -6
  53. package/src/pages/SelectChainPage.tsx +6 -6
  54. package/src/pages/SelectTokenPage.tsx +16 -18
  55. package/src/pages/SettingsPage.tsx +8 -18
  56. package/src/pages/SwapDetailsPage.tsx +2 -4
  57. package/src/pages/WalletsPage.tsx +2 -2
  58. package/src/store/bestRoute.ts +3 -2
  59. package/src/store/settings.ts +7 -0
  60. package/src/types/config.ts +27 -29
  61. 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(props) {
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: 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, Object.assign({}, props));
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 !== 'all' ? uniqueSwappersGroups.filter(item => supportedSwappers.filter(s => s.title === item.title && s.type === item.type).length > 0) : uniqueSwappersGroups,
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 === 'all' ? useMetaStore.use.meta().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 === 'all' ? sourceTokens : sourceTokens.filter(token => supportedTokens.some(supportedToken => tokensAreEqual(supportedToken, token)));
2612
- const supportedDestinationTokens = supportedTokens === 'all' ? destinationTokens : destinationTokens.filter(token => supportedTokens.some(supportedToken => tokensAreEqual(supportedToken, token)));
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 !== 'all' && uniqueSwappersGroups.filter(item => supportedSwappers.filter(s => s.title === item.title && s.type === item.type).length > 0);
2666
- const supportedUniqueSwappersGroups = supportedSwappers !== 'all' ? uniqueSwappersGroups.filter(item => supportedSwappers.filter(s => s.title === item.title && s.type === item.type).length > 0) : uniqueSwappersGroups;
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 === 'all' ? Object.values(walletsShared.WalletType) : 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
- // @ts-ignore
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
- configs
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: configs?.fromChains || 'all'
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: configs?.toChains || 'all'
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: configs?.fromTokens || 'all'
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: configs?.toTokens || 'all'
2928
+ supportedTokens: config?.to?.tokens
3002
2929
  })
3003
2930
  }, {
3004
2931
  path: getAbsolutePath(navigationRoutes.settings),
3005
2932
  element: React__default.createElement(SettingsPage, {
3006
- supportedSwappers: configs?.liquiditySources || 'all'
2933
+ supportedSwappers: config?.liquiditySources
3007
2934
  })
3008
2935
  }, {
3009
2936
  path: getAbsolutePath(navigationRoutes.liquiditySources),
3010
2937
  element: React__default.createElement(LiquiditySourcePage, {
3011
- supportedSwappers: configs?.liquiditySources || 'all'
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: configs?.wallets || 'all',
3023
- multiWallets: typeof configs?.multiWallets === 'undefined' ? true : configs.multiWallets
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
- configs
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
- setToChain(configs?.toChain || null);
3074
- setToToken(configs?.toToken || null);
3075
- }, [configs?.toChain, configs?.toToken]);
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(configs?.fromAmount?.toString() || '');
3078
- }, [configs?.fromAmount]);
3011
+ setInputAmount(config?.amount?.toString() || '');
3012
+ }, [config?.amount]);
3079
3013
  React.useEffect(() => {
3080
- setFromToken(configs?.fromToken || null);
3081
- setFromChain(configs?.fromChain || null);
3082
- }, [configs?.fromToken, configs?.fromChain]);
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
- setToChain(null);
3085
- setFromChain(null);
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
- configs: configs
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
- primary = '#5FA425',
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
- configs
3343
+ config
3405
3344
  } = _ref;
3406
3345
  globalStyles();
3407
- globalFont(configs?.fontFamily || 'Roboto');
3346
+ globalFont(config?.theme?.fontFamily || 'Roboto');
3408
3347
  const {
3409
3348
  activeTheme
3410
3349
  } = useTheme({
3411
- ...configs.colors,
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
- if (configs.theme !== 'auto') setTheme(configs.theme);
3452
- }, [configs.theme]);
3453
- React.useEffect(() => {
3454
- const wallets = configs.wallets;
3388
+ const wallets = config?.wallets;
3455
3389
  clearConnectedWallet();
3456
- providers = wallets === 'all' ? providerAll.allProviders() : providerAll.allProviders().filter(provider => {
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
- }, [configs?.wallets]);
3394
+ }, [config?.wallets]);
3461
3395
  React.useEffect(() => {
3462
- changeLanguage(configs?.languege);
3463
- }, [configs?.languege]);
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
- style: {
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
- configs: configs
3414
+ config: config
3487
3415
  }))))));
3488
3416
  };
3489
3417