|
|
@ -38,31 +38,19 @@ func (self *JSBlock) GetTransaction(hash string) otto.Value { |
|
|
|
return self.eth.toVal(self.JSBlock.GetTransaction(hash)) |
|
|
|
return self.eth.toVal(self.JSBlock.GetTransaction(hash)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
type JSMessage struct { |
|
|
|
type JSLog struct { |
|
|
|
To string `json:"to"` |
|
|
|
Address string `json:address` |
|
|
|
From string `json:"from"` |
|
|
|
Topics []string `json:topics` |
|
|
|
Input string `json:"input"` |
|
|
|
Number int32 `json:number` |
|
|
|
Output string `json:"output"` |
|
|
|
Data string `json:data` |
|
|
|
Path int `json:"path"` |
|
|
|
} |
|
|
|
Origin string `json:"origin"` |
|
|
|
|
|
|
|
Timestamp int32 `json:"timestamp"` |
|
|
|
func NewJSLog(log state.Log) JSLog { |
|
|
|
Coinbase string `json:"coinbase"` |
|
|
|
return JSLog{ |
|
|
|
Block string `json:"block"` |
|
|
|
Address: ethutil.Bytes2Hex(log.Address()), |
|
|
|
Number int32 `json:"number"` |
|
|
|
Topics: nil, //ethutil.Bytes2Hex(log.Address()),
|
|
|
|
} |
|
|
|
Number: 0, |
|
|
|
|
|
|
|
Data: ethutil.Bytes2Hex(log.Data()), |
|
|
|
func NewJSMessage(message *state.Message) JSMessage { |
|
|
|
|
|
|
|
return JSMessage{ |
|
|
|
|
|
|
|
To: ethutil.Bytes2Hex(message.To), |
|
|
|
|
|
|
|
From: ethutil.Bytes2Hex(message.From), |
|
|
|
|
|
|
|
Input: ethutil.Bytes2Hex(message.Input), |
|
|
|
|
|
|
|
Output: ethutil.Bytes2Hex(message.Output), |
|
|
|
|
|
|
|
Path: message.Path, |
|
|
|
|
|
|
|
Origin: ethutil.Bytes2Hex(message.Origin), |
|
|
|
|
|
|
|
Timestamp: int32(message.Timestamp), |
|
|
|
|
|
|
|
Coinbase: ethutil.Bytes2Hex(message.Origin), |
|
|
|
|
|
|
|
Block: ethutil.Bytes2Hex(message.Block), |
|
|
|
|
|
|
|
Number: int32(message.Number.Int64()), |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -120,13 +108,13 @@ func (self *JSEthereum) toVal(v interface{}) otto.Value { |
|
|
|
func (self *JSEthereum) Messages(object map[string]interface{}) otto.Value { |
|
|
|
func (self *JSEthereum) Messages(object map[string]interface{}) otto.Value { |
|
|
|
filter := ui.NewFilterFromMap(object, self.ethereum) |
|
|
|
filter := ui.NewFilterFromMap(object, self.ethereum) |
|
|
|
|
|
|
|
|
|
|
|
messages := filter.Find() |
|
|
|
logs := filter.Find() |
|
|
|
var msgs []JSMessage |
|
|
|
var jslogs []JSLog |
|
|
|
for _, m := range messages { |
|
|
|
for _, m := range logs { |
|
|
|
msgs = append(msgs, NewJSMessage(m)) |
|
|
|
jslogs = append(jslogs, NewJSLog(m)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
v, _ := self.vm.ToValue(msgs) |
|
|
|
v, _ := self.vm.ToValue(jslogs) |
|
|
|
|
|
|
|
|
|
|
|
return v |
|
|
|
return v |
|
|
|
} |
|
|
|
} |
|
|
|