Neanderthals Programming Machines
Have ideas to improve npm?Join in the discussion! »

remix-debug

0.0.6 • Public • Published

remix-debug

remix-debug wrap other remix-* libraries and can be used to debug Ethereum transactions.

Installation

npm install remix-debug

Development

var Debugger = require('remix-debug').EthDebugger
var BreakpointManager = require('remix-debug').EthDebugger
 
var debugger = new Debugger({
  compilationResult: () => {
    return compilationResult // that helps resolving source location
  }
})
 
debugger.addProvider(web3, 'web3')
debugger.switchProvider('web3')
 
var breakPointManager = new remixCore.code.BreakpointManager(this.debugger, (sourceLocation) => {
    // return offsetToLineColumn
})
debugger.setBreakpointManager(breakPointManager)
breakPointManager.add({fileName, row})
breakPointManager.add({fileName, row})
 
debugger.debug(<tx_hash>)
 
// this.traceManager.getCurrentCalledAddressAt
 
debugger.event.register('newTraceLoaded', () => {
  // start doing basic stuff like retrieving step details
  debugger.traceManager.getCallStackAt(34, (error, callstack) => {})
})
 
debugger.callTree.register('callTreeReady', () => {
  // start doing more complex stuff like resolvng local variables
  breakPointManager.jumpNextBreakpoint(true)
  
  var storageView = debugger.storageViewAt(38, <contract address>, 
  storageView.storageSlot(0, (error, storage) => {})
  storageView.storageRange(error, storage) => {}) // retrieve 0 => 1000 slots
 
  debugger.extractStateAt(23, (error, state) => {
    debugger.decodeStateAt(23, state, (error, decodedState) => {})
  })
  
  debugger.sourceLocationFromVMTraceIndex(<contract address>, 23, (error, location) => {
    debugger.decodeLocalsAt(23, location, (error, decodedlocals) => {})
  })
  
  debugger.extractLocalsAt(23, (null, locals) => {})
  
})

Keywords

none

Install

npm i [email protected]

Version

0.0.6

License

MIT

Unpacked Size

22.5 kB

Total Files

7

Last publish

Collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar