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