import { EvmAddress } from '@/components/blocks/evm-address/evm-address'; import { TransactionHash } from '@/components/blocks/transaction-hash/transaction-hash'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; import { formatDate } from '@/lib/date'; import { formatNumber } from '@/lib/number'; import { type Address, parseEther } from 'viem'; import type { TransactionListItem } from './transactions-table-data'; export function TransactionDetailSheet({ transactionHash, address, createdAt, from, functionName, metadata, receipt, }: TransactionListItem) { return ( Transaction details
Transaction
Contract:
From:
Function:
{functionName}
Created At:
{createdAt ? formatDate(createdAt) : 'N/A'}
Transaction Hash:
{metadata && ( <>
Metadata:
{JSON.stringify(metadata, null, 2)}
)}
{receipt && ( Receipt
Status:
{receipt.status ? 'Success' : 'Failed'}
{receipt.revertReasonDecoded && ( <>
Revert Reason:
{receipt.revertReasonDecoded}
)}
Block Number:
{receipt.blockNumber}
Block Hash:
Gas Used:
{formatNumber(receipt.gasUsed, { decimals: 0 })}
{receipt.blobGasUsed && ( <>
Blob Gas Used:
{formatNumber(receipt.blobGasUsed, { decimals: 0 })}
)} {receipt.blobGasPrice && ( <>
Blob Gas Price:
{formatNumber(receipt.blobGasPrice, { decimals: 0 })}
)}
Effective Gas Price:
{parseEther(receipt.effectiveGasPrice)}
Transaction Index:
{receipt.transactionIndex}
Type:
{receipt.type}
)}
); }