Skip to content

Commit 0046018

Browse files
committed
[TOOL-3581] Dashboard: Fix project overview page crashing because of ContractDistributionCard (#6392)
1 parent cbc0eff commit 0046018

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

apps/dashboard/src/app/team/[team_slug]/[project_slug]/components/Transactions/TransactionCharts.tsx

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ async function ChainDistributionCard({ data }: { data: TransactionStats[] }) {
6666
async function ContractDistributionCard({
6767
data,
6868
}: { data: TransactionStats[] }) {
69-
const reducedData = await Promise.all(
69+
const _reducedData = await Promise.all(
7070
Object.entries(
7171
data
7272
.filter((d) => d.contractAddress)
@@ -83,25 +83,36 @@ async function ContractDistributionCard({
8383
.sort((a, b) => b[1] - a[1])
8484
.slice(0, 10) // only top ten
8585
.map(async ([key, value]) => {
86-
const [chainId, contractAddress] = key.split(":");
87-
// eslint-disable-next-line no-restricted-syntax
88-
const chain = defineChain(Number(chainId));
89-
const chainMeta = await getChainMetadata(chain).catch(() => undefined);
90-
const contractData = await fetchDashboardContractMetadata(
91-
getContract({
92-
chain,
93-
address: contractAddress as string, // we filter above
94-
client: getThirdwebClient(),
95-
}),
96-
).catch(() => undefined);
97-
return {
98-
label: `${contractData?.name} (${chainMeta?.slug || chainId})`,
99-
link: `/${chainId}/${contractAddress}`,
100-
value,
101-
};
86+
try {
87+
const [chainId, contractAddress] = key.split(":");
88+
if (Number(chainId) === 0) {
89+
return undefined;
90+
}
91+
// eslint-disable-next-line no-restricted-syntax
92+
const chain = defineChain(Number(chainId));
93+
const chainMeta = await getChainMetadata(chain).catch(
94+
() => undefined,
95+
);
96+
const contractData = await fetchDashboardContractMetadata(
97+
getContract({
98+
chain,
99+
address: contractAddress as string, // we filter above
100+
client: getThirdwebClient(),
101+
}),
102+
).catch(() => undefined);
103+
return {
104+
label: `${contractData?.name} (${chainMeta?.slug || chainId})`,
105+
link: `/${chainId}/${contractAddress}`,
106+
value,
107+
};
108+
} catch {
109+
return undefined;
110+
}
102111
}),
103112
);
104113

114+
const reducedData = _reducedData.filter((d) => !!d);
115+
105116
const aggregateFn = () =>
106117
new Set(
107118
data

0 commit comments

Comments
 (0)