// The right ("Logs") column of the inspector's Programs & Logs row: the Simulation control sits above
// its own results (Logs, then CU profiling), so the simulation lives TOGETHER with the logs it produces
// — mirroring the transaction details page's ProgramLogSection + CUProfilingSection sticky panel. Each
// block keeps its own anchor id (`simulation` / `logs` / `cu-profiling`) for tab navigation. Simulation
// state is owned by the page (LoadedView) and passed in, so this panel and the Account List's "Change"
// column react to the same run.
import { CollapsibleSection } from '@components/shared/ui/collapsible-section';
import { cn } from '@components/shared/utils';
import { useCluster } from '@providers/cluster';
import type { VersionedMessage } from '@solana/web3.js';
import React from 'react';
import { ProgramLogsCardBody } from '@/app/components/ProgramLogsCardBody';
import { Badge } from '@/app/components/shared/ui/badge';
import { type SimulationState } from '@/app/features/instruction-simulation/model/use-simulation';
import { useSimulationInstructionNames } from '@/app/features/instruction-simulation/model/use-simulation-instruction-names';
import { BaseSimulatorCUProfilingCard } from '@/app/features/instruction-simulation/ui/BaseSimulatorCUProfilingCard';
import { LastSimulatedAt } from '@/app/features/instruction-simulation/ui/LastSimulatedAt';
import { SIM_ZONE_STYLE } from '@/app/features/instruction-simulation/ui/sim-zone-style';
import { SimulateButton } from '@/app/features/instruction-simulation/ui/SimulateButton';
function SimulatedTitle({ children }: { children: React.ReactNode }) {
return (
{children}
Simulation is free and will run this transaction against the latest confirmed ledger state.
No state changes will be persisted and all signature checks will be disabled.