@ -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 * State Log) 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 {