remix-debug/src/Ethdebugger.js
function Ethdebugger (opts) {
  this.opts = opts || {}
  if (!this.opts.compilationResult) this.opts.compilationResult = () => { return null }

  this.web3 = opts.web3

  this.event = new EventManager()

  this.tx

  this.traceManager = new TraceManager({web3: this.web3})
  this.codeManager = new CodeManager(this.traceManager)
  this.solidityProxy = new SolidityProxy(this.traceManager, this.codeManager)
  this.storageResolver = null

  this.callTree = new InternalCallTree(this.event, this.traceManager, this.solidityProxy, this.codeManager, { includeLocalVariables: true })
}
function Ethdebugger (opts) {
  this.opts = opts || {}
  if (!this.opts.compilationResult) this.opts.compilationResult = () => { return null }

  this.web3 = opts.web3

  this.event = new EventManager()

  this.tx

  this.traceManager = new TraceManager({web3: this.web3})
  this.codeManager = new CodeManager(this.traceManager)
  this.solidityProxy = new SolidityProxy(this.traceManager, this.codeManager)
  this.storageResolver = null

  this.callTree = new InternalCallTree(this.event, this.traceManager, this.solidityProxy, this.codeManager, { includeLocalVariables: true })
}
function Ethdebugger ( opts ) { this . opts = opts || { } if ( ! this . opts . compilationResult ) this . opts . compilationResult = ( ) => { return null } this . web3 = opts . web3 this . event = new EventManager ( ) this . tx this . traceManager = new TraceManager ( { web3 : this . web3 } ) this . codeManager = new CodeManager ( this . traceManager ) this . solidityProxy = new SolidityProxy ( this . traceManager , this . codeManager ) this . storageResolver = null this . callTree = new InternalCallTree ( this . event , this . traceManager , this . solidityProxy , this . codeManager , { includeLocalVariables : true } ) }
Ethdebugger is a wrapper around a few classes that helps debugging a transaction

- Web3Providers - define which environment (web3) the transaction will be retrieved from
- TraceManager - Load / Analyze the trace and retrieve details of specific test
- CodeManager - Retrieve loaded byte code and help to resolve AST item from vmtrace index
- SolidityProxy - Basically used to extract state variable from AST
- Breakpoint Manager - Used to add / remove / jumpto breakpoint
- InternalCallTree - Used to retrieved local variables
- StorageResolver - Help resolving the storage accross different steps

@param {Map} opts  -  { function compilationResult } //
Ethdebugger is a wrapper around a few classes that helps debugging a transaction