JS Filter
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
package ethpipe
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sync/atomic"
|
||||
@ -119,6 +120,28 @@ func (self *JSPipe) EachStorage(addr string) string {
|
||||
return string(valuesJson)
|
||||
}
|
||||
|
||||
func (self *JSPipe) ToAscii(str string) string {
|
||||
padded := ethutil.RightPadBytes([]byte(str), 32)
|
||||
|
||||
return "0x" + ethutil.Bytes2Hex(padded)
|
||||
}
|
||||
|
||||
func (self *JSPipe) FromAscii(str string) string {
|
||||
if ethutil.IsHex(str) {
|
||||
str = str[2:]
|
||||
}
|
||||
|
||||
return string(bytes.Trim(ethutil.Hex2Bytes(str), "\x00"))
|
||||
}
|
||||
|
||||
func (self *JSPipe) FromNumber(str string) string {
|
||||
if ethutil.IsHex(str) {
|
||||
str = str[2:]
|
||||
}
|
||||
|
||||
return ethutil.BigD(ethutil.Hex2Bytes(str)).String()
|
||||
}
|
||||
|
||||
func (self *JSPipe) Transact(key, toStr, valueStr, gasStr, gasPriceStr, codeStr string) (*JSReceipt, error) {
|
||||
var hash []byte
|
||||
var contractCreation bool
|
||||
@ -200,8 +223,7 @@ func (self *JSPipe) Watch(object map[string]interface{}) *JSFilter {
|
||||
|
||||
func (self *JSPipe) Messages(object map[string]interface{}) string {
|
||||
filter := self.Watch(object)
|
||||
|
||||
defer filter.Uninstall()
|
||||
filter.Uninstall()
|
||||
|
||||
return filter.Messages()
|
||||
|
||||
@ -247,8 +269,8 @@ func (self *JSFilter) Messages() string {
|
||||
}
|
||||
|
||||
func (self *JSFilter) mainLoop() {
|
||||
blockChan := make(chan ethreact.Event, 1)
|
||||
messageChan := make(chan ethreact.Event, 1)
|
||||
blockChan := make(chan ethreact.Event, 5)
|
||||
messageChan := make(chan ethreact.Event, 5)
|
||||
// Subscribe to events
|
||||
reactor := self.eth.Reactor()
|
||||
reactor.Subscribe("newBlock", blockChan)
|
||||
@ -267,8 +289,11 @@ out:
|
||||
case msg := <-messageChan:
|
||||
if messages, ok := msg.Resource.(ethstate.Messages); ok {
|
||||
if self.MessageCallback != nil {
|
||||
println("messages!")
|
||||
msgs := self.FilterMessages(messages)
|
||||
self.MessageCallback(msgs)
|
||||
if len(msgs) > 0 {
|
||||
self.MessageCallback(msgs)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user