import React from "react"; import { SignatureProps } from "pages/TransactionDetailsPage"; import { useTransactionDetails } from "providers/transactions"; import { ProgramLogsCardBody } from "components/ProgramLogsCardBody"; import { parseProgramLogs } from "utils/program-logs"; import { useCluster } from "providers/cluster"; import { TableCardBody } from "components/common/TableCardBody"; export function ProgramLogSection({ signature }: SignatureProps) { const [showRaw, setShowRaw] = React.useState(false); const { cluster, url } = useCluster(); const details = useTransactionDetails(signature); const transactionWithMeta = details?.data?.transactionWithMeta; if (!transactionWithMeta) return null; const message = transactionWithMeta.transaction.message; const logMessages = transactionWithMeta.meta?.logMessages || null; const err = transactionWithMeta.meta?.err || null; let prettyLogs = null; if (logMessages !== null) { prettyLogs = parseProgramLogs(logMessages, err, cluster); } return ( <>

Program Instruction Logs

{prettyLogs !== null ? ( showRaw ? ( ) : ( ) ) : (
Logs not supported for this transaction
)}
); } const RawProgramLogs = ({ raw }: { raw: string[] }) => { return (
{JSON.stringify(raw, null, 2)}
); };