Added Number to logs

This commit is contained in:
obscuren 2015-02-22 13:24:26 +01:00
parent 483d96a89d
commit bba85a2074
4 changed files with 17 additions and 3 deletions

View File

@ -84,6 +84,7 @@ type Log struct {
Address string `json:"address"`
Topic []string `json:"topics"`
Data string `json:"data"`
Number uint64 `json:"number"`
}
func toLogs(logs state.Logs) (ls []Log) {
@ -94,6 +95,7 @@ func toLogs(logs state.Logs) (ls []Log) {
l.Topic = make([]string, len(log.Topics()))
l.Address = toHex(log.Address())
l.Data = toHex(log.Data())
l.Number = log.Number()
for j, topic := range log.Topics() {
l.Topic[j] = toHex(topic)
}

View File

@ -12,16 +12,19 @@ type Log interface {
Address() []byte
Topics() [][]byte
Data() []byte
Number() uint64
}
type StateLog struct {
address []byte
topics [][]byte
data []byte
number uint64
}
func NewLog(address []byte, topics [][]byte, data []byte) *StateLog {
return &StateLog{address, topics, data}
func NewLog(address []byte, topics [][]byte, data []byte, number uint64) *StateLog {
return &StateLog{address, topics, data, number}
}
func (self *StateLog) Address() []byte {
@ -36,6 +39,10 @@ func (self *StateLog) Data() []byte {
return self.data
}
func (self *StateLog) Number() uint64 {
return self.number
}
func NewLogFromValue(decoder *ethutil.Value) *StateLog {
log := &StateLog{
address: decoder.Get(0).Bytes(),

View File

@ -54,6 +54,7 @@ type Log struct {
address []byte
topics [][]byte
data []byte
log uint64
}
func (self *Log) Address() []byte {
@ -68,6 +69,10 @@ func (self *Log) Data() []byte {
return self.data
}
func (self *Log) Number() uint64 {
return self.log
}
func (self *Log) RlpData() interface{} {
return []interface{}{self.address, ethutil.ByteSliceToInterface(self.topics), self.data}
}

View File

@ -578,7 +578,7 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
}
data := mem.Get(mStart.Int64(), mSize.Int64())
log := &Log{context.Address(), topics, data}
log := &Log{context.Address(), topics, data, self.env.BlockNumber().Uint64()}
self.env.AddLog(log)
self.Printf(" => %v", log)