remove outofgas checking

pull/7/head
yann300 8 years ago
parent 7a434782be
commit 2517e200e9
  1. 9
      src/trace/traceAnalyser.js
  2. 12
      src/trace/traceCache.js

@ -90,7 +90,6 @@ TraceAnalyser.prototype.buildStorage = function (index, step, context) {
}
TraceAnalyser.prototype.buildDepth = function (index, step, tx, callStack, context) {
var outOfGas = runOutOfGas(step)
if (traceHelper.isCallInstruction(step) && !traceHelper.isCallToPrecompiledContract(index, this.trace)) {
var newAddress
if (traceHelper.isCreateInstruction(step)) {
@ -111,10 +110,10 @@ TraceAnalyser.prototype.buildDepth = function (index, step, tx, callStack, conte
this.traceCache.pushSteps(index, context.currentCallIndex)
context.lastCallIndex = context.currentCallIndex
context.currentCallIndex = 0
} else if (traceHelper.isReturnInstruction(step) || traceHelper.isStopInstruction(step) || outOfGas || step.error || step.invalidDepthChange) {
} else if (traceHelper.isReturnInstruction(step) || traceHelper.isStopInstruction(step) || step.error || step.invalidDepthChange) {
if (index < this.trace.length) {
callStack.pop()
this.traceCache.pushCall(step, index + 1, null, callStack.slice(0), outOfGas || step.error || step.invalidDepthChange, outOfGas)
this.traceCache.pushCall(step, index + 1, null, callStack.slice(0), step.error || step.invalidDepthChange)
this.buildCalldata(index, step, tx, false)
this.traceCache.pushSteps(index, context.currentCallIndex)
context.currentCallIndex = context.lastCallIndex + 1
@ -126,8 +125,4 @@ TraceAnalyser.prototype.buildDepth = function (index, step, tx, callStack, conte
return context
}
function runOutOfGas (step) {
return parseInt(step.gas) - parseInt(step.gasCost) < 0
}
module.exports = TraceAnalyser

@ -33,12 +33,16 @@ TraceCache.prototype.pushMemoryChanges = function (value) {
this.memoryChanges.push(value)
}
TraceCache.prototype.pushCall = function (step, index, address, callStack, reverted, outOfGas) {
if (step.op === 'RETURN' || step.op === 'STOP' || reverted) {
// outOfGas has been removed because gas left logging is apparently made differently
// in the vm/geth/eth. TODO add the error property (with about the error in all clients)
TraceCache.prototype.pushCall = function (step, index, address, callStack, reverted) {
var validReturnStep = step.op === 'RETURN' || step.op === 'STOP'
if (validReturnStep || reverted) {
if (this.currentCall) {
this.currentCall.call.return = index - 1
this.currentCall.call.reverted = reverted
this.currentCall.call.outOfGas = outOfGas
if (!validReturnStep) {
this.currentCall.call.reverted = reverted
}
var parent = this.currentCall.parent
this.currentCall = parent ? { call: parent.call, parent: parent.parent } : null
}

Loading…
Cancel
Save