From 3043b233ea4df9b630638d75f3589b94653ccfa9 Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 4 Dec 2014 12:35:23 +0100 Subject: Log is now interface --- vm/environment.go | 24 +++++++++++++++++++++++- vm/vm_debug.go | 4 ++-- 2 files changed, 25 insertions(+), 3 deletions(-) (limited to 'vm') diff --git a/vm/environment.go b/vm/environment.go index 9e129b6ee..d77fb1419 100644 --- a/vm/environment.go +++ b/vm/environment.go @@ -20,7 +20,7 @@ type Environment interface { BlockHash() []byte GasLimit() *big.Int Transfer(from, to Account, amount *big.Int) error - AddLog(*state.Log) + AddLog(state.Log) Depth() int SetDepth(i int) @@ -52,3 +52,25 @@ func Transfer(from, to Account, amount *big.Int) error { return nil } + +type Log struct { + address []byte + topics [][]byte + data []byte +} + +func (self *Log) Address() []byte { + return self.address +} + +func (self *Log) Topics() [][]byte { + return self.topics +} + +func (self *Log) Data() []byte { + return self.data +} + +func (self *Log) RlpData() interface{} { + return []interface{}{self.address, ethutil.ByteSliceToInterface(self.topics), self.data} +} diff --git a/vm/vm_debug.go b/vm/vm_debug.go index 62b1f121c..0a541a769 100644 --- a/vm/vm_debug.go +++ b/vm/vm_debug.go @@ -35,7 +35,7 @@ func NewDebugVm(env Environment) *DebugVm { lt = LogTyDiff } - return &DebugVm{env: env, logTy: lt, Recoverable: false} + return &DebugVm{env: env, logTy: lt, Recoverable: true} } func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) { @@ -750,7 +750,7 @@ func (self *DebugVm) Run(me, caller ClosureRef, code []byte, value, gas, price * topics[i] = ethutil.LeftPadBytes(stack.Pop().Bytes(), 32) } - log := &state.Log{closure.Address(), topics, data} + log := &Log{closure.Address(), topics, data} self.env.AddLog(log) self.Printf(" => %v", log) -- cgit v1.2.3