Added Number to logs

pull/368/head
obscuren 10 years ago
parent 483d96a89d
commit bba85a2074
  1. 2
      rpc/util.go
  2. 11
      state/log.go
  3. 5
      vm/environment.go
  4. 2
      vm/vm.go

@ -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)
}

@ -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(),

@ -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}
}

@ -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)

Loading…
Cancel
Save