2014-10-18 06:20:06 -05:00
|
|
|
package qt
|
|
|
|
|
|
|
|
import (
|
2014-12-04 03:28:02 -06:00
|
|
|
"github.com/ethereum/go-ethereum/core"
|
2014-10-23 08:01:27 -05:00
|
|
|
"github.com/ethereum/go-ethereum/ui"
|
2014-10-18 06:20:06 -05:00
|
|
|
"gopkg.in/qml.v1"
|
|
|
|
)
|
|
|
|
|
2014-12-04 03:28:02 -06:00
|
|
|
func NewFilterFromMap(object map[string]interface{}, eth core.EthManager) *core.Filter {
|
2014-10-18 06:20:06 -05:00
|
|
|
filter := ui.NewFilterFromMap(object, eth)
|
|
|
|
|
2015-01-28 03:23:18 -06:00
|
|
|
if object["topics"] != nil {
|
|
|
|
filter.SetTopics(makeTopics(object["topics"]))
|
2014-10-18 06:20:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
return filter
|
|
|
|
}
|
|
|
|
|
2015-01-28 03:23:18 -06:00
|
|
|
func makeTopics(v interface{}) (d [][]byte) {
|
2014-10-18 06:20:06 -05:00
|
|
|
if qList, ok := v.(*qml.List); ok {
|
2015-01-28 03:23:18 -06:00
|
|
|
var s []string
|
2014-10-18 06:20:06 -05:00
|
|
|
qList.Convert(&s)
|
|
|
|
|
2015-01-28 03:23:18 -06:00
|
|
|
d = ui.MakeTopics(s)
|
|
|
|
} else if str, ok := v.(string); ok {
|
|
|
|
d = ui.MakeTopics(str)
|
2014-10-18 06:20:06 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|