forked from cerc-io/plugeth
Added Number to logs
This commit is contained in:
parent
483d96a89d
commit
bba85a2074
@ -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)
|
||||
}
|
||||
|
11
state/log.go
11
state/log.go
@ -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}
|
||||
}
|
||||
|
2
vm/vm.go
2
vm/vm.go
@ -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…
Reference in New Issue
Block a user