diff options
Diffstat (limited to 'core/state/log.go')
-rw-r--r-- | core/state/log.go | 88 |
1 files changed, 16 insertions, 72 deletions
diff --git a/core/state/log.go b/core/state/log.go index f8aa4c08c..a7aa784e2 100644 --- a/core/state/log.go +++ b/core/state/log.go @@ -8,87 +8,31 @@ import ( "github.com/ethereum/go-ethereum/rlp" ) -type Log interface { - Address() common.Address - Topics() []common.Hash - Data() []byte +type Log struct { + Address common.Address + Topics []common.Hash + Data []byte + Number uint64 - Number() uint64 + TxHash common.Hash + TxIndex uint + BlockHash common.Hash + Index uint } -type StateLog struct { - address common.Address - topics []common.Hash - data []byte - number uint64 +func NewLog(address common.Address, topics []common.Hash, data []byte, number uint64) *Log { + return &Log{Address: address, Topics: topics, Data: data, Number: number} } -func NewLog(address common.Address, topics []common.Hash, data []byte, number uint64) *StateLog { - return &StateLog{address, topics, data, number} +func (self *Log) EncodeRLP(w io.Writer) error { + return rlp.Encode(w, []interface{}{self.Address, self.Topics, self.Data}) } -func (self *StateLog) Address() common.Address { - return self.address +func (self *Log) String() string { + return fmt.Sprintf(`log: %x %x %x`, self.Address, self.Topics, self.Data) } -func (self *StateLog) Topics() []common.Hash { - return self.topics -} - -func (self *StateLog) Data() []byte { - return self.data -} - -func (self *StateLog) Number() uint64 { - return self.number -} - -/* -func NewLogFromValue(decoder *common.Value) *StateLog { - var extlog struct { - - } - - log := &StateLog{ - 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 *StateLog) EncodeRLP(w io.Writer) error { - return rlp.Encode(w, []interface{}{self.address, self.topics, self.data}) -} - -/* -func (self *StateLog) RlpData() interface{} { - return []interface{}{self.address, common.ByteSliceToInterface(self.topics), self.data} -} -*/ - -func (self *StateLog) String() string { - return fmt.Sprintf(`log: %x %x %x`, self.address, 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 -} -*/ +type Logs []*Log func (self Logs) String() (ret string) { for _, log := range self { |