import { Compilation } from "@truffle/codec/dist/lib/compilations"; export interface Breakpoint { compilationId: string; sourcePath: string; line: number; } export declare enum Command { Initialize = "initialize", StepOver = "stepOver", StepInto = "stepInto", StepOut = "stepOut", StepNext = "stepNext", StepInstruction = "stepInstruction", AddBreakpoint = "setBreakpoint", RemoveBreakpoint = "removeBreakpoint", ContinueUntilBreakpoint = "continueUntilBreakpoint", RemoveAllBreakpoints = "removeAllBreakpoints", Variables = "variables", Stacktrace = "stacktrace", Reset = "reset", RunToEnd = "runToEnd", Evaluate = "evaluate", Step = "step", CallTrace = "callTrace" } export interface InitArguments { providerURL: string; txnHash: string; chainId: string; shimmedCompilations: Compilation[]; storageLookup: boolean; disableOptimizer: boolean; codeOverrides?: Record; } export interface Location { lines?: Lines; compilationId?: string; length?: number; sourcePath?: string; instructionIndex: number; } export interface Variables { builtin: Variable[]; global: Variable[]; contract: Variable[]; local: Variable[]; } export interface Variable { name: string; raw: any; } export interface Stackframe { functionName?: string; contractName: string; address: string; isConstructor: boolean; type: string; location: { source: { id: string; sourcePath: string; internal: boolean; }; sourceRange: { start: number; length: number; lines: Lines; }; node: { id: number; }; }; } export interface Lines { start: Line; end: Line; } export interface Line { line: number; column: number; } export interface TransactionInfo { block: any; chainID: number; code: any; transaction: any; transactionReceipt: any; } export interface Instruction { pc: number; opcode: string; gas_left: number; } export interface CallTrace { calls: Call[]; } export interface ExternalCall { from: string; to: string; op: string; pc: number; location?: Location; functionName?: string; inputs: any[]; calls: Call[]; returnValue?: any; contractName?: string; gas?: number; error?: string; depth: number; } export interface InternalCall { op: string; pc: number; location?: Location; functionName?: string; inputs: any[]; calls: Call[]; returnValue?: any; depth: number; } export type Call = ExternalCall | InternalCall;