-
+
{wallet.metadata.label}
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx
index 78816b1bf78..863ef305e44 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx
@@ -38,6 +38,7 @@ import { useAllChainsData } from "hooks/chains/allChains";
import { ExternalLinkIcon, InfoIcon } from "lucide-react";
import Link from "next/link";
import { useState } from "react";
+import type { ThirdwebClient } from "thirdweb";
import type { Wallet } from "../../server-wallets/wallet-table/types";
import type {
Transaction,
@@ -51,6 +52,7 @@ export function TransactionsTableUI(props: {
project: Project;
teamSlug: string;
wallets?: Wallet[];
+ client: ThirdwebClient;
}) {
const router = useDashboardRouter();
const [autoUpdate, setAutoUpdate] = useState(true);
@@ -164,7 +166,14 @@ export function TransactionsTableUI(props: {
{/* From Address */}
- {tx.from ? : "N/A"}
+ {tx.from ? (
+
+ ) : (
+ "N/A"
+ )}
{/* Tx Hash */}
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table.tsx
index c19c4addab5..cc3ede7eecc 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table.tsx
@@ -2,6 +2,7 @@
import { engineCloudProxy } from "@/actions/proxies";
import type { Project } from "@/api/projects";
+import type { ThirdwebClient } from "thirdweb";
import type { Wallet } from "../../server-wallets/wallet-table/types";
import { TransactionsTableUI } from "./tx-table-ui";
import type { TransactionsResponse } from "./types";
@@ -10,6 +11,7 @@ export function TransactionsTable(props: {
project: Project;
wallets?: Wallet[];
teamSlug: string;
+ client: ThirdwebClient;
}) {
return (
);
}
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx
index e9585da0a9d..9a184cd991c 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx
@@ -1,5 +1,6 @@
import { getProject } from "@/api/projects";
import { NEXT_PUBLIC_THIRDWEB_VAULT_URL } from "@/constants/public-envs";
+import { getClientThirdwebClient } from "@/constants/thirdweb-client.client";
import { createVaultClient, listEoas } from "@thirdweb-dev/vault-sdk";
import { notFound, redirect } from "next/navigation";
import { getAuthToken } from "../../../../../../api/lib/getAuthToken";
@@ -77,6 +78,11 @@ export default async function TransactionsAnalyticsPage(props: {
}
const hasTransactions = initialData ? initialData.totalCount > 0 : false;
+ const client = getClientThirdwebClient({
+ jwt: authToken,
+ teamId: project.teamId,
+ });
+
return (
);
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx
index 4909e7e03d1..517dfb692eb 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx
@@ -2,6 +2,7 @@ import { getProject } from "@/api/projects";
import { NEXT_PUBLIC_THIRDWEB_VAULT_URL } from "@/constants/public-envs";
import { createVaultClient, listEoas } from "@thirdweb-dev/vault-sdk";
import { notFound } from "next/navigation";
+import { getClientThirdwebClient } from "../../../../../../../../../@/constants/thirdweb-client.client";
import { getAuthToken } from "../../../../../../../api/lib/getAuthToken";
import type { Wallet } from "./wallet-table/types";
import { ServerWalletsTable } from "./wallet-table/wallet-table";
@@ -25,6 +26,11 @@ export default async function TransactionsServerWalletsPage(props: {
notFound();
}
+ const client = getClientThirdwebClient({
+ jwt: authToken,
+ teamId: project.teamId,
+ });
+
const projectEngineCloudService = project.services.find(
(service) => service.name === "engineCloud",
);
@@ -57,6 +63,7 @@ export default async function TransactionsServerWalletsPage(props: {
) : (
{showSigners ? (
-
+
) : (
-
+
)}
{wallet.metadata.label || "none"}
@@ -194,10 +196,15 @@ export function ServerWalletsTableUI({
);
}
-export function SmartAccountCell({ wallet }: { wallet: Wallet }) {
+export function SmartAccountCell({
+ wallet,
+ client,
+}: {
+ wallet: Wallet;
+ client: ThirdwebClient;
+}) {
const chainId = 1; // TODO: add chain switcher for balance + smart account address
const chain = useV5DashboardChain(chainId);
- const client = useThirdwebClient();
const smartAccountAddressQuery = useQuery({
queryKey: ["smart-account-address", wallet.address],
@@ -216,7 +223,10 @@ export function SmartAccountCell({ wallet }: { wallet: Wallet }) {
{smartAccountAddressQuery.data ? (
-
+
Smart Account
) : (
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table.tsx
index 2ce07f52645..bd2bc6194be 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table.tsx
@@ -1,4 +1,5 @@
import type { Project } from "@/api/projects";
+import type { ThirdwebClient } from "thirdweb";
import type { Wallet } from "./types";
import { ServerWalletsTableUI } from "./wallet-table-ui.client";
@@ -10,6 +11,7 @@ export function ServerWalletsTable({
totalPages,
totalRecords,
managementAccessToken,
+ client,
}: {
wallets: Wallet[];
project: Project;
@@ -18,6 +20,7 @@ export function ServerWalletsTable({
totalRecords: number;
currentPage: number;
totalPages: number;
+ client: ThirdwebClient;
}) {
return (
);
}
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/page.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/page.tsx
index 88c9fdb5b41..85d5001fd0c 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/page.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/page.tsx
@@ -1,5 +1,8 @@
import { getProject } from "@/api/projects";
+import { getClientThirdwebClient } from "@/constants/thirdweb-client.client";
import { notFound, redirect } from "next/navigation";
+import { getAuthToken } from "../../../../../../../../api/lib/getAuthToken";
+import { loginRedirect } from "../../../../../../../../login/loginRedirect";
import { getSingleTransaction } from "../../lib/analytics";
import { TransactionDetailsUI } from "./transaction-details-ui";
@@ -10,7 +13,14 @@ export default async function TransactionPage({
}) {
const { team_slug, project_slug, id } = await params;
- const project = await getProject(team_slug, project_slug);
+ const [authToken, project] = await Promise.all([
+ getAuthToken(),
+ getProject(team_slug, project_slug),
+ ]);
+
+ if (!authToken) {
+ loginRedirect(`/team/${team_slug}/${project_slug}/engine/cloud/tx/${id}`);
+ }
if (!project) {
redirect(`/team/${team_slug}`);
@@ -22,6 +32,11 @@ export default async function TransactionPage({
transactionId: id,
});
+ const client = getClientThirdwebClient({
+ jwt: authToken,
+ teamId: project.teamId,
+ });
+
if (!transactionData) {
notFound();
}
@@ -31,6 +46,7 @@ export default async function TransactionPage({
diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx
index 38e86e2a952..9a6ed294e79 100644
--- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx
+++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx
@@ -8,24 +8,24 @@ import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { CodeClient } from "@/components/ui/code/code.client";
import { ToolTipLabel } from "@/components/ui/tooltip";
-import { useThirdwebClient } from "@/constants/thirdweb.client";
import { ChainIconClient } from "components/icons/ChainIcon";
import { format, formatDistanceToNowStrict } from "date-fns";
import { useAllChainsData } from "hooks/chains/allChains";
import { ExternalLinkIcon, InfoIcon } from "lucide-react";
import Link from "next/link";
-import { toEther } from "thirdweb";
+import { type ThirdwebClient, toEther } from "thirdweb";
import { statusDetails } from "../../analytics/tx-table/tx-table-ui";
import type { Transaction } from "../../analytics/tx-table/types";
export function TransactionDetailsUI({
transaction,
+ client,
}: {
transaction: Transaction;
teamSlug: string;
+ client: ThirdwebClient;
project: Project;
}) {
- const thirdwebClient = useThirdwebClient();
const { idToChain } = useAllChainsData();
// Extract relevant data from transaction
@@ -181,7 +181,7 @@ export function TransactionDetailsUI({
{chain.name}
@@ -203,7 +203,7 @@ export function TransactionDetailsUI({
Sender Address
-
+
@@ -212,7 +212,7 @@ export function TransactionDetailsUI({
Signer Address