From fac049d65c74e540dc5faab3059715c7a26a9bf0 Mon Sep 17 00:00:00 2001
From: neocybereth
Date: Mon, 17 Nov 2025 21:26:41 +1300
Subject: [PATCH 1/5] fix: remove header and add masp sycn cover
---
apps/namadillo/src/App/Swap/SwapHeader.tsx | 6 ------
apps/namadillo/src/App/Swap/SwapModule.tsx | 4 ++++
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/apps/namadillo/src/App/Swap/SwapHeader.tsx b/apps/namadillo/src/App/Swap/SwapHeader.tsx
index d1c8e599fc..7370cb20e7 100644
--- a/apps/namadillo/src/App/Swap/SwapHeader.tsx
+++ b/apps/namadillo/src/App/Swap/SwapHeader.tsx
@@ -1,13 +1,7 @@
-import { SwapIcon } from "App/Icons/SwapIcon";
-
export const SwapHeader = (): JSX.Element => {
return (
);
};
diff --git a/apps/namadillo/src/App/Swap/SwapModule.tsx b/apps/namadillo/src/App/Swap/SwapModule.tsx
index 527728f44e..7481fb0c9f 100644
--- a/apps/namadillo/src/App/Swap/SwapModule.tsx
+++ b/apps/namadillo/src/App/Swap/SwapModule.tsx
@@ -1,4 +1,6 @@
import { Panel } from "@namada/components";
+import { MaspSyncCover } from "App/Common/MaspSyncCover";
+import { useRequiresNewShieldedSync } from "hooks/useRequiresNewShieldedSync";
import { useAtomValue } from "jotai";
import { Link } from "react-router-dom";
import { swapStatusAtom } from "./state/atoms";
@@ -12,6 +14,7 @@ import { SwapSuccess } from "./SwapSuccess";
// and pass the shared state(accounts, fees, etc.) as props to the module components
export const SwapModule = (): JSX.Element => {
const status = useAtomValue(swapStatusAtom);
+ const requiresNewShieldedSync = useRequiresNewShieldedSync();
return (
@@ -44,6 +47,7 @@ export const SwapModule = (): JSX.Element => {
)}
+ {requiresNewShieldedSync && }
);
};
From 173981bb260933a107133b3534098183088536a9 Mon Sep 17 00:00:00 2001
From: neocybereth
Date: Mon, 17 Nov 2025 21:27:53 +1300
Subject: [PATCH 2/5] fix: remove tooltip of addy
---
.../src/App/Common/SelectedAsset.tsx | 41 ++++++++-----------
1 file changed, 18 insertions(+), 23 deletions(-)
diff --git a/apps/namadillo/src/App/Common/SelectedAsset.tsx b/apps/namadillo/src/App/Common/SelectedAsset.tsx
index e0729cd86a..3b2d738b3b 100644
--- a/apps/namadillo/src/App/Common/SelectedAsset.tsx
+++ b/apps/namadillo/src/App/Common/SelectedAsset.tsx
@@ -1,4 +1,4 @@
-import { SkeletonLoading, Tooltip } from "@namada/components";
+import { SkeletonLoading } from "@namada/components";
import { EmptyResourceIcon } from "App/Transfer/EmptyResourceIcon";
import clsx from "clsx";
import { getAssetImageUrl } from "integrations/utils";
@@ -53,29 +53,24 @@ export const SelectedAsset = ({
)}
{asset && (
-
-
- {asset.address}
-
-
-
-
- {asset.symbol}
- {!isDisabled && (
-
-
-
- )}
-
+
+
+
+ {asset.symbol}
+ {!isDisabled && (
+
+
+
+ )}
-
+
)}
);
From ae2778fc580708026e3ab05a44e1d64b6871032d Mon Sep 17 00:00:00 2001
From: neocybereth
Date: Mon, 17 Nov 2025 21:45:38 +1300
Subject: [PATCH 3/5] fix: add separation between tokens with balance and not
in Selected Asset Modal
---
.../src/App/Common/SelectAssetModal.tsx | 137 ++++++++++++------
1 file changed, 90 insertions(+), 47 deletions(-)
diff --git a/apps/namadillo/src/App/Common/SelectAssetModal.tsx b/apps/namadillo/src/App/Common/SelectAssetModal.tsx
index bb9cb9c705..5d490aee1f 100644
--- a/apps/namadillo/src/App/Common/SelectAssetModal.tsx
+++ b/apps/namadillo/src/App/Common/SelectAssetModal.tsx
@@ -36,13 +36,74 @@ export const SelectAssetModal = ({
const [filter, setFilter] = useState("");
- const filteredAssets = useMemo(() => {
- return assets.filter(
+ const { assetsWithBalance, assetsWithoutBalance } = useMemo(() => {
+ const filtered = assets.filter(
(asset) =>
asset.name.toLowerCase().indexOf(filter.toLowerCase()) >= 0 ||
asset.symbol.toLowerCase().indexOf(filter.toLowerCase()) >= 0
);
- }, [assets, filter]);
+
+ const withBalance: Asset[] = [];
+ const withoutBalance: Asset[] = [];
+
+ filtered.forEach((asset) => {
+ const tokenAddress =
+ ibcTransfer === "deposit" ? asset.base : (asset as NamadaAsset).address;
+
+ const balance = balances?.[tokenAddress];
+ const hasBalance = balance && balance[0].gt(0);
+
+ if (hasBalance) {
+ withBalance.push(asset);
+ } else {
+ withoutBalance.push(asset);
+ }
+ });
+
+ return {
+ assetsWithBalance: withBalance,
+ assetsWithoutBalance: withoutBalance,
+ };
+ }, [assets, filter, balances, ibcTransfer]);
+
+ const renderAssetItem = (asset: Asset): JSX.Element => {
+ // Fpr IbcTransfer(Deposits), we consider base denom as a token address.
+ const tokenAddress =
+ ibcTransfer === "deposit" ? asset.base : (asset as NamadaAsset).address;
+
+ const disabled =
+ !namTransfersEnabled && asset.address === nativeTokenAddress;
+
+ return (
+
+
+
+ );
+ };
+
+ const hasAnyAssets =
+ assetsWithBalance.length > 0 || assetsWithoutBalance.length > 0;
return (
@@ -50,51 +111,33 @@ export const SelectAssetModal = ({
-
- {filteredAssets.map((asset) => {
- // Fpr IbcTransfer(Deposits), we consider base denom as a token address.
- const tokenAddress =
- ibcTransfer === "deposit" ?
- asset.base
- : (asset as NamadaAsset).address;
-
- const disabled =
- !namTransfersEnabled && asset.address === nativeTokenAddress;
- return (
-
-
-
- );
- })}
- {filteredAssets.length === 0 && (
- There are no available assets
+
+ {assetsWithBalance.length > 0 && (
+ <>
+
+ Your tokens
+
+
+ {assetsWithBalance.map(renderAssetItem)}
+
+ >
+ )}
+
+ {assetsWithoutBalance.length > 0 && (
+ <>
+
+ All tokens
+
+
+ {assetsWithoutBalance.map(renderAssetItem)}
+
+ >
)}
-
+
+ {!hasAnyAssets && (
+
There are no available assets
+ )}
+
);
};
From 00d0534e021344f9651b19e3731572886b5bf0aa Mon Sep 17 00:00:00 2001
From: neocybereth
Date: Tue, 18 Nov 2025 12:18:52 +1300
Subject: [PATCH 4/5] fix: update image size
---
apps/namadillo/src/App/Common/SelectedAsset.tsx | 5 ++++-
apps/namadillo/src/App/Swap/SwapSource.tsx | 1 +
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/apps/namadillo/src/App/Common/SelectedAsset.tsx b/apps/namadillo/src/App/Common/SelectedAsset.tsx
index 3b2d738b3b..0494098ddf 100644
--- a/apps/namadillo/src/App/Common/SelectedAsset.tsx
+++ b/apps/namadillo/src/App/Common/SelectedAsset.tsx
@@ -8,6 +8,7 @@ import { Asset } from "types";
type SelectedAssetProps = {
asset?: Asset;
isLoading?: boolean;
+ imageSize?: "small" | "large";
isDisabled?: boolean;
onClick?: () => void;
};
@@ -15,6 +16,7 @@ type SelectedAssetProps = {
export const SelectedAsset = ({
asset,
isLoading,
+ imageSize = "small",
isDisabled,
onClick,
}: SelectedAssetProps): JSX.Element => {
@@ -56,7 +58,8 @@ export const SelectedAsset = ({
Date: Tue, 18 Nov 2025 12:23:52 +1300
Subject: [PATCH 5/5] fix: shielded swap history
---
.../Transactions/LocalStorageTransactionCard.tsx | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx b/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx
index 73d859b33b..b68eaee02c 100644
--- a/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx
+++ b/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx
@@ -201,9 +201,19 @@ export const LocalStorageTransactionCard = ({
To
- {isShieldedAddress(receiver ?? "") ?
+ {(
+ isShieldedAddress(receiver ?? "") ||
+ transaction.type === "ShieldedOsmosisSwap"
+ ) ?
Shielded