Fixed minor issues with filtering
This commit is contained in:
parent
0eb1db0d17
commit
fb49e5565a
@ -3,7 +3,11 @@ var Filter = function(options) {
|
||||
this.seed = Math.floor(Math.random() * 1000000);
|
||||
this.options = options;
|
||||
|
||||
eth.registerFilter(options, this.seed);
|
||||
if(options == "chain") {
|
||||
eth.registerFilterString(options, this.seed);
|
||||
} else if(typeof options === "object") {
|
||||
eth.registerFilter(options, this.seed);
|
||||
}
|
||||
};
|
||||
|
||||
Filter.prototype.changed = function(callback) {
|
||||
|
@ -72,7 +72,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIden
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
fmt.Println(string(data))
|
||||
fmt.Println("plugins:", string(data))
|
||||
|
||||
json.Unmarshal([]byte(data), &gui.plugins)
|
||||
|
||||
|
@ -169,6 +169,20 @@ func (self *UiLib) RegisterFilter(object map[string]interface{}, seed int) {
|
||||
self.win.Root().Call("invokeFilterCallback", filter.MessagesToJson(messages), seed, callbackSeed)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (self *UiLib) RegisterFilterString(typ string, seed int) {
|
||||
filter := &GuiFilter{ethpipe.NewJSFilterFromMap(nil, self.eth), seed}
|
||||
self.filters[seed] = filter
|
||||
|
||||
if typ == "chain" {
|
||||
filter.BlockCallback = func(block *ethchain.Block) {
|
||||
for _, callbackSeed := range self.filterCallbacks[seed] {
|
||||
self.win.Root().Call("invokeFilterCallback", "{}", seed, callbackSeed)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (self *UiLib) RegisterFilterCallback(seed, cbSeed int) {
|
||||
@ -187,3 +201,51 @@ type GuiFilter struct {
|
||||
*ethpipe.JSFilter
|
||||
seed int
|
||||
}
|
||||
|
||||
func (self *UiLib) Transact(object map[string]interface{}) (*ethpipe.JSReceipt, error) {
|
||||
// Default values
|
||||
if object["from"] == nil {
|
||||
object["from"] = ""
|
||||
}
|
||||
if object["to"] == nil {
|
||||
object["to"] = ""
|
||||
}
|
||||
if object["value"] == nil {
|
||||
object["value"] = ""
|
||||
}
|
||||
if object["gas"] == nil {
|
||||
object["gas"] = ""
|
||||
}
|
||||
if object["gasPrice"] == nil {
|
||||
object["gasPrice"] = ""
|
||||
}
|
||||
|
||||
var dataStr string
|
||||
var data []string
|
||||
if list, ok := object["data"].(*qml.List); ok {
|
||||
list.Convert(&data)
|
||||
}
|
||||
|
||||
for _, str := range data {
|
||||
if ethutil.IsHex(str) {
|
||||
str = str[2:]
|
||||
|
||||
if len(str) != 64 {
|
||||
str = ethutil.LeftPadString(str, 64)
|
||||
}
|
||||
} else {
|
||||
str = ethutil.Bytes2Hex(ethutil.LeftPadBytes(ethutil.Big(str).Bytes(), 32))
|
||||
}
|
||||
|
||||
dataStr += str
|
||||
}
|
||||
|
||||
return self.JSPipe.Transact(
|
||||
object["from"].(string),
|
||||
object["to"].(string),
|
||||
object["value"].(string),
|
||||
object["gas"].(string),
|
||||
object["gasPrice"].(string),
|
||||
dataStr,
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user