forked from cerc-io/plugeth
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.seed = Math.floor(Math.random() * 1000000);
|
||||||
this.options = options;
|
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) {
|
Filter.prototype.changed = function(callback) {
|
||||||
|
@ -72,7 +72,7 @@ func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIden
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
fmt.Println(string(data))
|
fmt.Println("plugins:", string(data))
|
||||||
|
|
||||||
json.Unmarshal([]byte(data), &gui.plugins)
|
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)
|
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) {
|
func (self *UiLib) RegisterFilterCallback(seed, cbSeed int) {
|
||||||
@ -187,3 +201,51 @@ type GuiFilter struct {
|
|||||||
*ethpipe.JSFilter
|
*ethpipe.JSFilter
|
||||||
seed int
|
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