31 lines
583 B
Go
31 lines
583 B
Go
package qt
|
|
|
|
import (
|
|
"github.com/ethereum/go-ethereum/core"
|
|
"github.com/ethereum/go-ethereum/ui"
|
|
"github.com/obscuren/qml"
|
|
)
|
|
|
|
func NewFilterFromMap(object map[string]interface{}, eth core.Backend) *core.Filter {
|
|
filter := ui.NewFilterFromMap(object, eth)
|
|
|
|
if object["topics"] != nil {
|
|
filter.SetTopics(makeTopics(object["topics"]))
|
|
}
|
|
|
|
return filter
|
|
}
|
|
|
|
func makeTopics(v interface{}) (d [][]byte) {
|
|
if qList, ok := v.(*qml.List); ok {
|
|
var s []string
|
|
qList.Convert(&s)
|
|
|
|
d = ui.MakeTopics(s)
|
|
} else if str, ok := v.(string); ok {
|
|
d = ui.MakeTopics(str)
|
|
}
|
|
|
|
return
|
|
}
|