pull/1/head
Iuri Matias 6 years ago committed by yann300
parent c2be6045ae
commit 0f875dd95c
  1. 47
      src/app/debugger/debuggerUI/vmDebugger/SolidityState.js
  2. 12
      src/app/debugger/debuggerUI/vmDebugger/StepDetail.js

@ -13,6 +13,7 @@ function SolidityState (_parent, _traceManager, _codeManager, _solidityProxy) {
this.solidityProxy = _solidityProxy this.solidityProxy = _solidityProxy
this.basicPanel = new DropdownPanel('Solidity State', { this.basicPanel = new DropdownPanel('Solidity State', {
json: true, json: true,
// TODO: used by TreeView ui
formatSelf: solidityTypeFormatter.formatSelf, formatSelf: solidityTypeFormatter.formatSelf,
extractData: solidityTypeFormatter.extractData extractData: solidityTypeFormatter.extractData
}) })
@ -24,11 +25,10 @@ function SolidityState (_parent, _traceManager, _codeManager, _solidityProxy) {
} }
SolidityState.prototype.render = function () { SolidityState.prototype.render = function () {
if (!this.view) { if (this.view) return
this.view = yo`<div id='soliditystate' > this.view = yo`<div id='soliditystate' >
${this.basicPanel.render()} ${this.basicPanel.render()}
</div>` </div>`
}
return this.view return this.view
} }
@ -63,41 +63,30 @@ SolidityState.prototype.init = function () {
function decode (self, index) { function decode (self, index) {
self.traceManager.getCurrentCalledAddressAt(self.parent.currentStepIndex, (error, address) => { self.traceManager.getCurrentCalledAddressAt(self.parent.currentStepIndex, (error, address) => {
if (error) { if (error) {
self.basicPanel.update({}) return self.basicPanel.update({})
console.log(error) }
} else { if (self.stateVariablesByAddresses[address]) {
if (self.stateVariablesByAddresses[address]) { return extractStateVariables(self, self.stateVariablesByAddresses[address], address)
extractStateVariables(self, self.stateVariablesByAddresses[address], address)
} else {
self.solidityProxy.extractStateVariablesAt(index, function (error, stateVars) {
if (error) {
self.basicPanel.update({})
console.log(error)
} else {
self.stateVariablesByAddresses[address] = stateVars
extractStateVariables(self, stateVars, address)
}
})
}
} }
self.solidityProxy.extractStateVariablesAt(index, function (error, stateVars) {
if (error) {
return self.basicPanel.update({})
}
self.stateVariablesByAddresses[address] = stateVars
extractStateVariables(self, stateVars, address)
})
}) })
} }
function extractStateVariables (self, stateVars, address) { function extractStateVariables (self, stateVars, address) {
var storageViewer = new StorageViewer({ var storageViewer = new StorageViewer({ stepIndex: self.parent.currentStepIndex, tx: self.parent.tx, address: address }, self.storageResolver, self.traceManager)
stepIndex: self.parent.currentStepIndex,
tx: self.parent.tx,
address: address
}, self.storageResolver, self.traceManager)
stateDecoder.decodeState(stateVars, storageViewer).then((result) => { stateDecoder.decodeState(stateVars, storageViewer).then((result) => {
self.basicPanel.setMessage('') self.basicPanel.setMessage('')
if (!result.error) { if (result.error) {
self.basicPanel.update(result) return self.basicPanel.setMessage(result.error)
} else {
self.basicPanel.setMessage(result.error)
} }
self.basicPanel.update(result)
}) })
} }
module.exports = SolidityState module.exports = SolidityState

@ -1,19 +1,13 @@
var yo = require('yo-yo') var yo = require('yo-yo')
var DropdownPanel = require('./DropdownPanel') var DropdownPanel = require('./DropdownPanel')
function StepDetail (_parentUI, _traceManager) { function StepDetail () {
this.basicPanel = new DropdownPanel('Step detail', {json: true, displayContentOnly: true}) this.basicPanel = new DropdownPanel('Step detail', {json: true, displayContentOnly: true})
this.detail = { 'vm trace step': '-', 'execution step': '-', 'add memory': '', 'gas': '', 'remaining gas': '-', 'loaded address': '-' }
this.detail = {
'vm trace step': '-', 'execution step': '-', 'add memory': '', 'gas': '', 'remaining gas': '-', 'loaded address': '-'
}
this.view
} }
StepDetail.prototype.reset = function () { StepDetail.prototype.reset = function () {
this.detail = { this.detail = { 'vm trace step': '-', 'execution step': '-', 'add memory': '', 'gas': '', 'remaining gas': '-', 'loaded address': '-' }
'vm trace step': '-', 'execution step': '-', 'add memory': '', 'gas': '', 'remaining gas': '-', 'loaded address': '-'
}
this.basicPanel.update(this.detail) this.basicPanel.update(this.detail)
} }

Loading…
Cancel
Save