|
|
@ -58,10 +58,10 @@ module.exports = { |
|
|
|
for (var k in this.trace) { |
|
|
|
for (var k in this.trace) { |
|
|
|
var step = this.trace[k] |
|
|
|
var step = this.trace[k] |
|
|
|
|
|
|
|
|
|
|
|
this.calldata(k, step) |
|
|
|
this.buildCalldata(k, step) |
|
|
|
this.memory(k, step) |
|
|
|
this.buildMemory(k, step) |
|
|
|
currentStorageAddress = this.storage(k, step, currentStorageAddress) |
|
|
|
currentStorageAddress = this.buildStorage(k, step, currentStorageAddress) |
|
|
|
var depth = this.depth(k, step, currentDepth, callStack) |
|
|
|
var depth = this.buildDepth(k, step, currentDepth, callStack) |
|
|
|
if (depth) { |
|
|
|
if (depth) { |
|
|
|
currentDepth = depth |
|
|
|
currentDepth = depth |
|
|
|
} |
|
|
|
} |
|
|
@ -69,19 +69,19 @@ module.exports = { |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// compute trace section
|
|
|
|
// compute trace section
|
|
|
|
calldata: function (index, step) { |
|
|
|
buildCalldata: function (index, step) { |
|
|
|
if (step.calldata) { |
|
|
|
if (step.calldata) { |
|
|
|
this.callDataChanges.push(index) |
|
|
|
this.callDataChanges.push(index) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
memory: function (index, step) { |
|
|
|
buildMemory: function (index, step) { |
|
|
|
if (step.memory) { |
|
|
|
if (step.memory) { |
|
|
|
this.memoryChanges.push(index) |
|
|
|
this.memoryChanges.push(index) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
storage: function (index, step, currentAddress) { |
|
|
|
buildStorage: function (index, step, currentAddress) { |
|
|
|
var change = false |
|
|
|
var change = false |
|
|
|
if (step.address) { |
|
|
|
if (step.address) { |
|
|
|
// new context
|
|
|
|
// new context
|
|
|
@ -111,7 +111,7 @@ module.exports = { |
|
|
|
return currentAddress |
|
|
|
return currentAddress |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
depth: function (index, step, currentDepth, callStack) { |
|
|
|
buildDepth: function (index, step, currentDepth, callStack) { |
|
|
|
if (step.depth === undefined) return |
|
|
|
if (step.depth === undefined) return |
|
|
|
if (step.depth > currentDepth) { |
|
|
|
if (step.depth > currentDepth) { |
|
|
|
if (index === 0) { |
|
|
|
if (index === 0) { |
|
|
|