Skip to content

Commit 143e9d5

Browse files
committed
Unify sponsored transactions into GasMetricsChartCard
Added 'sponsoredTransactions' as a metric type to GasMetricsChartCard and removed the separate SponsoredTransactionsChartCard from aa-analytics.tsx. This simplifies the analytics UI by consolidating related metrics into a single chart component.
1 parent a93ef8f commit 143e9d5

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/AccountAbstractionAnalytics/GasMetricsChartCard.tsx

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ type ChartData = Record<string, number> & {
2020
time: string;
2121
};
2222

23-
type MetricType = "gasUnits" | "avgGasPrice" | "costPerGasUnit";
23+
type MetricType =
24+
| "sponsoredTransactions"
25+
| "gasUnits"
26+
| "avgGasPrice"
27+
| "costPerGasUnit";
2428

2529
export function GasMetricsChartCard(props: {
2630
userOpStats: UserOpStats[];
@@ -29,7 +33,9 @@ export function GasMetricsChartCard(props: {
2933
const { userOpStats } = props;
3034
const topChainsToShow = 10;
3135
const chainsStore = useAllChainsData();
32-
const [metricType, setMetricType] = useState<MetricType>("gasUnits");
36+
const [metricType, setMetricType] = useState<MetricType>(
37+
"sponsoredTransactions",
38+
);
3339

3440
const { chartConfig, chartData } = useMemo(() => {
3541
const _chartConfig: ChartConfig = {};
@@ -44,7 +50,9 @@ export function GasMetricsChartCard(props: {
4450
const chainName = chain?.name || chainId || "Unknown";
4551

4652
let value: number;
47-
if (metricType === "gasUnits") {
53+
if (metricType === "sponsoredTransactions") {
54+
value = stat.successful;
55+
} else if (metricType === "gasUnits") {
4856
value = stat.gasUnits;
4957
} else if (metricType === "avgGasPrice") {
5058
value = stat.avgGasPrice;
@@ -121,6 +129,12 @@ export function GasMetricsChartCard(props: {
121129
});
122130

123131
const metricConfig = {
132+
sponsoredTransactions: {
133+
title: "Sponsored Transactions",
134+
description: "Total number of sponsored transactions",
135+
fileName: "Sponsored Transactions",
136+
formatter: (value: number) => formatTickerNumber(value),
137+
},
124138
gasUnits: {
125139
title: "Gas Units Consumed",
126140
description: "Total gas units consumed by sponsored transactions",
@@ -149,7 +163,9 @@ export function GasMetricsChartCard(props: {
149163
},
150164
};
151165

152-
const config = metricConfig[metricType];
166+
const config =
167+
metricConfig[metricType as keyof typeof metricConfig] ||
168+
metricConfig.sponsoredTransactions;
153169

154170
return (
155171
<ThirdwebBarChart
@@ -167,6 +183,15 @@ export function GasMetricsChartCard(props: {
167183
</p>
168184
</div>
169185
<div className="flex gap-2 flex-wrap">
186+
<Button
187+
onClick={() => setMetricType("sponsoredTransactions")}
188+
size="sm"
189+
variant={
190+
metricType === "sponsoredTransactions" ? "default" : "outline"
191+
}
192+
>
193+
Transactions
194+
</Button>
170195
<Button
171196
onClick={() => setMetricType("gasUnits")}
172197
size="sm"

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/account-abstraction/aa-analytics.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { IntervalSelector } from "@/components/analytics/interval-selector";
1212
import { SponsoredTransactionsTable } from "@/components/sponsored-transactions-table/SponsoredTransactionsTable";
1313
import type { UserOpStats } from "@/types/analytics";
1414
import { GasMetricsChartCard } from "./AccountAbstractionAnalytics/GasMetricsChartCard";
15-
import { SponsoredTransactionsChartCard } from "./AccountAbstractionAnalytics/SponsoredTransactionsChartCard";
1615
import { TotalSponsoredChartCard } from "./AccountAbstractionAnalytics/TotalSponsoredChartCard";
1716
import { searchParams } from "./search-params";
1817

@@ -101,11 +100,6 @@ export function AccountAbstractionAnalytics(props: {
101100
userOpStats={props.userOpStats}
102101
/>
103102

104-
<SponsoredTransactionsChartCard
105-
isPending={isLoading}
106-
userOpStats={props.userOpStats}
107-
/>
108-
109103
<GasMetricsChartCard
110104
isPending={isLoading}
111105
userOpStats={props.userOpStats}

0 commit comments

Comments
 (0)