diff options
author | obscuren <geffobscura@gmail.com> | 2014-04-12 12:13:42 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-04-12 12:13:42 +0800 |
commit | 086acd122b59071255b0c1cfae569748b1d7427a (patch) | |
tree | 6ff564b1720298085ad89de53a2b4e4f0db21ca7 /ethchain | |
parent | 116516158da637cde50d27d600db6661732fc402 (diff) | |
download | go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.tar go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.tar.gz go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.tar.bz2 go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.tar.lz go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.tar.xz go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.tar.zst go-tangerine-086acd122b59071255b0c1cfae569748b1d7427a.zip |
Added pre processing of script data
Diffstat (limited to 'ethchain')
-rw-r--r-- | ethchain/closure.go | 2 | ||||
-rw-r--r-- | ethchain/vm.go | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/ethchain/closure.go b/ethchain/closure.go index de2196499..0fbe48f92 100644 --- a/ethchain/closure.go +++ b/ethchain/closure.go @@ -69,7 +69,7 @@ func (c *Closure) Address() []byte { return c.object.Address() } -type DebugHook func(op OpCode, mem *Memory, stack *Stack) +type DebugHook func(step int, op OpCode, mem *Memory, stack *Stack) func (c *Closure) Call(vm *Vm, args []byte, hook DebugHook) []byte { c.Args = args diff --git a/ethchain/vm.go b/ethchain/vm.go index fbe0d0439..b88cd2861 100644 --- a/ethchain/vm.go +++ b/ethchain/vm.go @@ -312,6 +312,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) []byte { stack.Push(val) pc.Add(pc, big.NewInt(31)) + step++ case oPUSH20: pc.Add(pc, ethutil.Big1) data := closure.Gets(pc, big.NewInt(20)) @@ -321,7 +322,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) []byte { stack.Push(val) pc.Add(pc, big.NewInt(19)) - + step++ case oPOP: stack.Pop() case oDUP: @@ -410,7 +411,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) []byte { pc.Add(pc, ethutil.Big1) if hook != nil { - hook(op, mem, stack) + hook(step-1, op, mem, stack) } } } |