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"`
|
Address string `json:"address"`
|
||||||
Topic []string `json:"topics"`
|
Topic []string `json:"topics"`
|
||||||
Data string `json:"data"`
|
Data string `json:"data"`
|
||||||
|
Number uint64 `json:"number"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func toLogs(logs state.Logs) (ls []Log) {
|
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.Topic = make([]string, len(log.Topics()))
|
||||||
l.Address = toHex(log.Address())
|
l.Address = toHex(log.Address())
|
||||||
l.Data = toHex(log.Data())
|
l.Data = toHex(log.Data())
|
||||||
|
l.Number = log.Number()
|
||||||
for j, topic := range log.Topics() {
|
for j, topic := range log.Topics() {
|
||||||
l.Topic[j] = toHex(topic)
|
l.Topic[j] = toHex(topic)
|
||||||
}
|
}
|
||||||
|
11
state/log.go
11
state/log.go
@ -12,16 +12,19 @@ type Log interface {
|
|||||||
Address() []byte
|
Address() []byte
|
||||||
Topics() [][]byte
|
Topics() [][]byte
|
||||||
Data() []byte
|
Data() []byte
|
||||||
|
|
||||||
|
Number() uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type StateLog struct {
|
type StateLog struct {
|
||||||
address []byte
|
address []byte
|
||||||
topics [][]byte
|
topics [][]byte
|
||||||
data []byte
|
data []byte
|
||||||
|
number uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLog(address []byte, topics [][]byte, data []byte) *StateLog {
|
func NewLog(address []byte, topics [][]byte, data []byte, number uint64) *StateLog {
|
||||||
return &StateLog{address, topics, data}
|
return &StateLog{address, topics, data, number}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *StateLog) Address() []byte {
|
func (self *StateLog) Address() []byte {
|
||||||
@ -36,6 +39,10 @@ func (self *StateLog) Data() []byte {
|
|||||||
return self.data
|
return self.data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *StateLog) Number() uint64 {
|
||||||
|
return self.number
|
||||||
|
}
|
||||||
|
|
||||||
func NewLogFromValue(decoder *ethutil.Value) *StateLog {
|
func NewLogFromValue(decoder *ethutil.Value) *StateLog {
|
||||||
log := &StateLog{
|
log := &StateLog{
|
||||||
address: decoder.Get(0).Bytes(),
|
address: decoder.Get(0).Bytes(),
|
||||||
|
@ -54,6 +54,7 @@ type Log struct {
|
|||||||
address []byte
|
address []byte
|
||||||
topics [][]byte
|
topics [][]byte
|
||||||
data []byte
|
data []byte
|
||||||
|
log uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *Log) Address() []byte {
|
func (self *Log) Address() []byte {
|
||||||
@ -68,6 +69,10 @@ func (self *Log) Data() []byte {
|
|||||||
return self.data
|
return self.data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *Log) Number() uint64 {
|
||||||
|
return self.log
|
||||||
|
}
|
||||||
|
|
||||||
func (self *Log) RlpData() interface{} {
|
func (self *Log) RlpData() interface{} {
|
||||||
return []interface{}{self.address, ethutil.ByteSliceToInterface(self.topics), self.data}
|
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())
|
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.env.AddLog(log)
|
||||||
|
|
||||||
self.Printf(" => %v", log)
|
self.Printf(" => %v", log)
|
||||||
|
Loading…
Reference in New Issue
Block a user