diff --git a/src/app/transactions/[hash]/page.tsx b/src/app/transactions/[hash]/page.tsx index 5911ad7..843731a 100644 --- a/src/app/transactions/[hash]/page.tsx +++ b/src/app/transactions/[hash]/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { CircleCheck, CircleX } from "lucide-react"; +import { CircleCheck, CircleX, ChevronDown } from "lucide-react"; import { useCallback, useEffect, useState } from "react"; import { useParams } from "next/navigation"; import TimeAgo from "react-timeago"; @@ -14,6 +14,7 @@ interface Transaction { sender: string; methodId: string; nonce: string; + argsFields: string[]; executionResult: { status: boolean; statusMessage?: string; @@ -38,6 +39,7 @@ export default function TransactionDetail() { const params = useParams<{ hash: string }>(); const [data, setData] = useState(); const [loading, setLoading] = useState(true); + const [argsExpanded, setArgsExpanded] = useState(false); const query = useCallback(async () => { setLoading(true); const queryStr = `query GetTransaction($hash: String!) { @@ -46,6 +48,7 @@ export default function TransactionDetail() { methodId sender nonce + argsFields executionResult { status statusMessage @@ -81,6 +84,38 @@ export default function TransactionDetail() { void query(); }, []); + const ArgsFieldsDisplay = () => { + if ( + !data?.transaction?.argsFields || + data.transaction.argsFields.length === 0 + ) { + return "—"; + } + + return ( +
+ + {argsExpanded && ( +
+            {JSON.stringify(data.transaction.argsFields, null, 2)}
+          
+ )} +
+ ); + }; + const getStatus = (tx: Transaction | undefined) => { const batch = tx?.executionResult?.block?.batch; @@ -135,9 +170,19 @@ export default function TransactionDetail() { }, { label: "Created", - value: data?.transaction?.executionResult?.block?.createdAt - ? - : "—", + value: data?.transaction?.executionResult?.block?.createdAt ? ( + + ) : ( + "—" + ), + }, + { + label: "Args Fields", + value: , + fullWidth: true, }, ]; diff --git a/src/components/details/layout.tsx b/src/components/details/layout.tsx index a7cd946..fb4a0cf 100644 --- a/src/components/details/layout.tsx +++ b/src/components/details/layout.tsx @@ -14,6 +14,7 @@ export interface DetailsLayoutProps { label: string; value: string | JSX.Element; link?: string; + fullWidth?: boolean; }[]; loading: boolean; } @@ -39,7 +40,7 @@ export function DetailsLayout({ {/* Details */}
{details.map((detail, i) => ( -
+