fix saving sha3 computation

pull/7/head
yann300 7 years ago
parent cd500e7a4d
commit a01abbc04d
  1. 16
      remix-lib/src/web3Provider/web3VmProvider.js

@ -139,9 +139,13 @@ web3VmProvider.prototype.pushTrace = function (self, data) {
console.log('no tx processing') console.log('no tx processing')
return return
} }
if (this.previousDepth > depth) { var previousopcode
if (self.vmTraces[self.processingHash] && self.vmTraces[self.processingHash].structLogs[this.processingIndex - 1]) {
previousopcode = self.vmTraces[self.processingHash].structLogs[this.processingIndex - 1]
}
if (this.previousDepth > depth && previousopcode) {
// returning from context, set error it is not STOP, RETURN // returning from context, set error it is not STOP, RETURN
var previousopcode = self.vmTraces[self.processingHash].structLogs[this.processingIndex - 1]
previousopcode.invalidDepthChange = previousopcode.op !== 'RETURN' && previousopcode.op !== 'STOP' previousopcode.invalidDepthChange = previousopcode.op !== 'RETURN' && previousopcode.op !== 'STOP'
} }
var step = { var step = {
@ -169,14 +173,14 @@ web3VmProvider.prototype.pushTrace = function (self, data) {
} }
} }
} }
if (traceHelper.isSHA3Instruction(step)) { if (previousopcode && traceHelper.isSHA3Instruction(previousopcode)) {
var sha3Input = getSha3Input(step.stack, step.memory) var preimage = getSha3Input(previousopcode.stack, previousopcode.memory)
var preimage = sha3Input var imageHash = step.stack[step.stack.length - 1].replace('0x', '')
var imageHash = ethutil.sha3('0x' + sha3Input).toString('hex')
self.sha3Preimages[imageHash] = { self.sha3Preimages[imageHash] = {
'preimage': preimage 'preimage': preimage
} }
} }
this.processingIndex++ this.processingIndex++
this.previousDepth = depth this.previousDepth = depth
} }

Loading…
Cancel
Save