Added topic utility functions to whisper
This commit is contained in:
		
							
								
								
									
										27
									
								
								whisper/util.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								whisper/util.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| package whisper | ||||
|  | ||||
| import "github.com/ethereum/go-ethereum/crypto" | ||||
|  | ||||
| func hashTopic(topic []byte) []byte { | ||||
| 	return crypto.Sha3(topic)[:4] | ||||
| } | ||||
|  | ||||
| // NOTE this isn't DRY, but I don't want to iterate twice. | ||||
|  | ||||
| // Returns a formatted topics byte slice. | ||||
| // data: unformatted data (e.g., no hashes needed) | ||||
| func Topics(data [][]byte) [][]byte { | ||||
| 	d := make([][]byte, len(data)) | ||||
| 	for i, byts := range data { | ||||
| 		d[i] = hashTopic(byts) | ||||
| 	} | ||||
| 	return d | ||||
| } | ||||
|  | ||||
| func TopicsFromString(data []string) [][]byte { | ||||
| 	d := make([][]byte, len(data)) | ||||
| 	for i, str := range data { | ||||
| 		d[i] = hashTopic([]byte(str)) | ||||
| 	} | ||||
| 	return d | ||||
| } | ||||
		Reference in New Issue
	
	Block a user