diff options
author | obscuren <geffobscura@gmail.com> | 2014-10-29 17:34:40 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-10-29 17:34:40 +0800 |
commit | fb4113dab4df8480c77bdcb707fa6b5408755b79 (patch) | |
tree | b369bb26e7b96826120fb08ff61739326add0e92 /vm/log.go | |
parent | 665a44646e9453e37c8a73bdd2c94ba7dc1e7c0a (diff) | |
download | go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.gz go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.bz2 go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.lz go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.xz go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.tar.zst go-tangerine-fb4113dab4df8480c77bdcb707fa6b5408755b79.zip |
PoC 7 updates
* Bloom
* Block restructure
* Receipts
Diffstat (limited to 'vm/log.go')
-rw-r--r-- | vm/log.go | 33 |
1 files changed, 31 insertions, 2 deletions
@@ -1,9 +1,38 @@ package vm -import "math/big" +import "github.com/ethereum/go-ethereum/ethutil" type Log struct { Address []byte - Topics []*big.Int + Topics [][]byte Data []byte } + +func NewLogFromValue(decoder *ethutil.Value) Log { + log := Log{ + Address: decoder.Get(0).Bytes(), + Data: decoder.Get(2).Bytes(), + } + + it := decoder.Get(1).NewIterator() + for it.Next() { + log.Topics = append(log.Topics, it.Value().Bytes()) + } + + return log +} + +func (self Log) RlpData() interface{} { + return []interface{}{self.Address, ethutil.ByteSliceToInterface(self.Topics), self.Data} +} + +type Logs []Log + +func (self Logs) RlpData() interface{} { + data := make([]interface{}, len(self)) + for i, log := range self { + data[i] = log.RlpData() + } + + return data +} |