@rango-dev/widget-embedded 0.1.11-next.10 → 0.1.11-next.11

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.
@@ -421,7 +421,7 @@ function LimitErrorMessage(bestRoute) {
421
421
  recommendation
422
422
  };
423
423
  }
424
- function getSwapButtonState(loadingMetaStatus, accounts, loading, bestRoute, hasLimitError, highValueLoss, priceImpactCanNotBeComputed, needsToWarnEthOnPath, inputIsZero) {
424
+ function getSwapButtonState(loadingMetaStatus, accounts, loading, bestRoute, hasLimitError, highValueLoss, priceImpactCanNotBeComputed, needsToWarnEthOnPath, inputAmount) {
425
425
  if (loadingMetaStatus !== 'success') return {
426
426
  title: 'Connect Wallet',
427
427
  disabled: true
@@ -433,7 +433,7 @@ function getSwapButtonState(loadingMetaStatus, accounts, loading, bestRoute, has
433
433
  if (loading) return {
434
434
  title: 'Finding Best Route...',
435
435
  disabled: true
436
- };else if (inputIsZero) return {
436
+ };else if (!inputAmount || inputAmount === '0') return {
437
437
  title: 'Enter an amount',
438
438
  disabled: true
439
439
  };else if (!bestRoute || !bestRoute.result) return {
@@ -502,7 +502,7 @@ function hasProperSlippage(userSlippage, minRequiredSlippage) {
502
502
  if (!minRequiredSlippage) return true;
503
503
  return parseFloat(userSlippage) >= parseFloat(minRequiredSlippage);
504
504
  }
505
- function createBestRouteRequestBody(fromToken, toToken, inputAmount, wallets, selectedWallets, disabledLiquiditySources, slippage, checkPrerequisites, affiliateRef) {
505
+ function createBestRouteRequestBody(fromToken, toToken, inputAmount, wallets, selectedWallets, disabledLiquiditySources, slippage, affiliateRef, initialRoute) {
506
506
  const selectedWalletsMap = selectedWallets.reduce((selectedWalletsMap, selectedWallet) => (selectedWalletsMap[selectedWallet.chain] = selectedWallet.address, selectedWalletsMap), {});
507
507
  const connectedWallets = [];
508
508
  wallets.forEach(wallet => {
@@ -512,7 +512,8 @@ function createBestRouteRequestBody(fromToken, toToken, inputAmount, wallets, se
512
512
  addresses: [wallet.address]
513
513
  });
514
514
  });
515
- const filteredBlockchains = selectedWallets.map(wallet => wallet.chain);
515
+ const checkPrerequisites = !!initialRoute;
516
+ const filteredBlockchains = removeDuplicateFrom((initialRoute?.result?.swaps || []).reduce((blockchains, swap) => (blockchains.push(swap.from.blockchain, swap.to.blockchain), blockchains), []));
516
517
  const requestBody = {
517
518
  amount: inputAmount.toString(),
518
519
  affiliateRef,
@@ -859,7 +860,7 @@ const useWalletsStore = /*#__PURE__*/createSelectors( /*#__PURE__*/create()( /*#
859
860
  }
860
861
  });
861
862
  return {
862
- selectedWallets: selectedWallets
863
+ selectedWallets: state.selectedWallets.concat(selectedWallets)
863
864
  };
864
865
  }),
865
866
  setSelectedWallet: wallet => set(state => ({
@@ -1050,7 +1051,7 @@ const bestRoute = (bestRouteStore, settingsStore) => {
1050
1051
  abortController?.abort();
1051
1052
  abortController = new AbortController();
1052
1053
  const userSlippage = !!customSlippage ? customSlippage : slippage;
1053
- const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, [], [], disabledLiquiditySources, userSlippage, false, affiliateRef);
1054
+ const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, [], [], disabledLiquiditySources, userSlippage, affiliateRef);
1054
1055
  if (!bestRouteStore.getState().loading) bestRouteStore.setState({
1055
1056
  loading: true,
1056
1057
  bestRoute: null,
@@ -1084,7 +1085,9 @@ const bestRoute = (bestRouteStore, settingsStore) => {
1084
1085
  inputAmount,
1085
1086
  inputUsdValue
1086
1087
  } = useBestRouteStore.getState();
1087
- if (!inputAmount || inputAmount === '0' || inputUsdValue.eq(0)) return;
1088
+ if (!inputAmount || inputAmount === '0' || inputUsdValue.eq(0)) return bestRouteStore.setState({
1089
+ loading: false
1090
+ });
1088
1091
  if (tokensAreEqual(fromToken, toToken)) return bestRouteStore.setState({
1089
1092
  loading: false,
1090
1093
  bestRoute: null,
@@ -1397,6 +1400,7 @@ function TokenInfo(props) {
1397
1400
  const bestRoute = useBestRouteStore.use.bestRoute();
1398
1401
  const inputAmount = useBestRouteStore.use.inputAmount();
1399
1402
  const balances = useWalletsStore.use.balances();
1403
+ const fetchingBestRoute = useBestRouteStore.use.loading();
1400
1404
  const navigate = useNavigate();
1401
1405
  const {
1402
1406
  t
@@ -1505,7 +1509,7 @@ function TokenInfo(props) {
1505
1509
  } : undefined
1506
1510
  }) : React.createElement(OutputContainer, null, React.createElement(Typography, {
1507
1511
  variant: "h4"
1508
- }, bestRoute ? `≈ ${numberToString(props.outputAmount)}` : inputAmount ? '?' : '0'))))));
1512
+ }, fetchingBestRoute && '?', !!bestRoute?.result && `≈ ${numberToString(props.outputAmount)}`, (!inputAmount || inputAmount === '0') && '0'))))));
1509
1513
  }
1510
1514
 
1511
1515
  const Container$1 = /*#__PURE__*/styled$1('div', {
@@ -1689,8 +1693,7 @@ function Home() {
1689
1693
  swap
1690
1694
  } = LimitErrorMessage(bestRoute);
1691
1695
  const priceImpactCanNotBeComputed = !canComputePriceImpact(bestRoute, inputAmount, inputUsdValue, outputUsdValue);
1692
- const inputIsZero = inputAmount === '0';
1693
- const swapButtonState = getSwapButtonState(loadingMetaStatus, accounts, fetchingBestRoute, bestRoute, hasLimitError(bestRoute), highValueLoss, priceImpactCanNotBeComputed, needsToWarnEthOnPath, inputIsZero);
1696
+ const swapButtonState = getSwapButtonState(loadingMetaStatus, accounts, fetchingBestRoute, bestRoute, hasLimitError(bestRoute), highValueLoss, priceImpactCanNotBeComputed, needsToWarnEthOnPath, inputAmount);
1694
1697
  const totalFeeInUsd = getTotalFeeInUsd(bestRoute, tokens);
1695
1698
  const highFee = hasHighFee(totalFeeInUsd);
1696
1699
  useEffect(() => {
@@ -2052,7 +2055,7 @@ function useConfirmSwap() {
2052
2055
  }
2053
2056
  abortControllerRef.current = new AbortController();
2054
2057
  setLoading(true);
2055
- const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, accounts, selectedWallets, disabledLiquiditySources, userSlippage, true, affiliateRef);
2058
+ const requestBody = createBestRouteRequestBody(fromToken, toToken, inputAmount, accounts, selectedWallets, disabledLiquiditySources, userSlippage, affiliateRef, initialRoute);
2056
2059
  try {
2057
2060
  const confiremedRoute = await httpService().getBestRoute(requestBody, {
2058
2061
  signal: abortControllerRef.current?.signal
@@ -2295,6 +2298,7 @@ function ConfirmSwapPage() {
2295
2298
  const customSlippage = useSettingsStore.use.customSlippage();
2296
2299
  const inputUsdValue = useBestRouteStore.use.inputUsdValue();
2297
2300
  const outputUsdValue = useBestRouteStore.use.outputUsdValue();
2301
+ const setInputAmount = useBestRouteStore.use.setInputAmount();
2298
2302
  const bestRouteloadingStatus = getBestRouteStatus(fetchingBestRoute, !!fetchingBestRouteError);
2299
2303
  const {
2300
2304
  manager
@@ -2325,10 +2329,7 @@ function ConfirmSwapPage() {
2325
2329
  getKeplrCompatibleConnectedWallets(selectableWallets).forEach(compatibleWallet => connect?.(compatibleWallet, network));
2326
2330
  };
2327
2331
  const totalFeeInUsd = getTotalFeeInUsd(bestRoute, tokens);
2328
- return React.createElement(ConfirmSwap
2329
- // @ts-ignore
2330
- , {
2331
- // @ts-ignore
2332
+ return React.createElement(ConfirmSwap, {
2332
2333
  requiredWallets: getRequiredChains(bestRoute),
2333
2334
  selectableWallets: selectableWallets,
2334
2335
  onBack: navigateBackFrom.bind(null, navigationRoutes.confirmSwap),
@@ -2337,15 +2338,14 @@ function ConfirmSwapPage() {
2337
2338
  if (swap) {
2338
2339
  manager?.create('swap', {
2339
2340
  swapDetails: swap
2340
- },
2341
- // @ts-ignore
2342
- {
2341
+ }, {
2343
2342
  id: swap.requestId
2344
2343
  });
2345
2344
  setSelectedSwap(swap.requestId);
2346
2345
  navigate(navigationRoutes.swaps + `/${swap.requestId}`, {
2347
2346
  replace: true
2348
2347
  });
2348
+ setInputAmount('');
2349
2349
  }
2350
2350
  });
2351
2351
  },