'use strict' var yo = require('yo-yo') var DropdownPanel = require('./DropdownPanel') function StepDetail (_parent, _traceManager) { this.parent = _parent this.traceManager = _traceManager this.basicPanel = new DropdownPanel('Step detail', {json: true}) this.detail = initDetail() this.view this.init() } StepDetail.prototype.render = function () { return yo`
${this.basicPanel.render()}
` } StepDetail.prototype.init = function () { var self = this this.parent.event.register('traceUnloaded', this, function () { self.detail = initDetail() self.basicPanel.update(self.detail) }) this.parent.event.register('newTraceLoaded', this, function () { self.detail = initDetail() self.basicPanel.update(self.detail) }) this.parent.event.register('indexChanged', this, function (index) { if (index < 0) return self.detail['vm trace step'] = index self.traceManager.getCurrentStep(index, function (error, step) { if (error) { console.log(error) self.detail['execution step'] = '-' } else { self.detail['execution step'] = step } self.basicPanel.update(self.detail) }) self.traceManager.getMemExpand(index, function (error, addmem) { if (error) { console.log(error) self.detail['add memory'] = '-' } else { self.detail['add memory'] = addmem } self.basicPanel.update(self.detail) }) self.traceManager.getStepCost(index, function (error, gas) { if (error) { console.log(error) self.detail.gas = '-' } else { self.detail.gas = gas } self.basicPanel.update(self.detail) }) self.traceManager.getCurrentCalledAddressAt(index, function (error, address) { if (error) { console.log(error) self.detail['loaded address'] = '-' } else { self.detail['loaded address'] = address } self.basicPanel.update(self.detail) }) self.traceManager.getRemainingGas(index, function (error, remaingas) { if (error) { console.log(error) self.detail['remaining gas'] = '-' } else { self.detail['remaining gas'] = remaingas } self.basicPanel.update(self.detail) }) }) } module.exports = StepDetail function initDetail () { return { 'vm trace step': '-', 'execution step': '-', 'add memory': '', 'gas': '', 'remaining gas': '-', 'loaded address': '-' } }