internal/ethapi: Fix bug in opCodeWrapper usage
This commit is contained in:
parent
a2b2c8adc9
commit
8923325d5c
@ -284,8 +284,10 @@ func (jst *JavascriptTracer) CaptureState(env vm.Environment, pc uint64, op vm.O
|
|||||||
jst.stack.stack = stack
|
jst.stack.stack = stack
|
||||||
jst.db.db = env.Db()
|
jst.db.db = env.Db()
|
||||||
|
|
||||||
|
ocw := &opCodeWrapper{op}
|
||||||
|
|
||||||
jst.log["pc"] = pc
|
jst.log["pc"] = pc
|
||||||
jst.log["op"] = &opCodeWrapper{op}
|
jst.log["op"] = ocw.toValue(jst.vm)
|
||||||
jst.log["gas"] = gas.Int64()
|
jst.log["gas"] = gas.Int64()
|
||||||
jst.log["gasPrice"] = cost.Int64()
|
jst.log["gasPrice"] = cost.Int64()
|
||||||
jst.log["memory"] = jst.memvalue
|
jst.log["memory"] = jst.memvalue
|
||||||
|
@ -19,6 +19,7 @@ package ethapi
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -140,12 +141,26 @@ func TestStack(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
value, ok := ret.([]int)
|
expected := []int{0, 1, 2}
|
||||||
if !ok {
|
if !reflect.DeepEqual(ret, expected) {
|
||||||
t.Errorf("Expected return value to be []int, was %T", ret)
|
t.Errorf("Expected return value to be %#v, got %#v", expected, ret)
|
||||||
}
|
}
|
||||||
if len(value) != 3 || value[0] != 0 || value[1] != 1 || value[2] != 2 {
|
}
|
||||||
t.Errorf("Expected return value to be [0 1 2], got %v", value)
|
|
||||||
|
func TestOpcodes(t *testing.T) {
|
||||||
|
tracer, err := NewJavascriptTracer("{opcodes: [], step: function(log) { this.opcodes.push(log.op.toString()); }, result: function() { return this.opcodes; }}")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret, err := runTrace(tracer)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
expected := []string{"PUSH1", "PUSH1", "STOP"}
|
||||||
|
if !reflect.DeepEqual(ret, expected) {
|
||||||
|
t.Errorf("Expected return value to be %#v, got %#v", expected, ret)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user