Fixed whisper messages
* Whisper protocol wasn't properly suppling envelope slices * Message history wasn't properly propagated * Added 'Messages' method, filtering any current envelope with the supplied filter.
This commit is contained in:
@ -8,9 +8,9 @@ import (
|
||||
|
||||
type Message struct {
|
||||
ref *whisper.Message
|
||||
Flags int32
|
||||
Payload string
|
||||
From string
|
||||
Flags int32 `json:"flags"`
|
||||
Payload string `json:"payload"`
|
||||
From string `json:"from"`
|
||||
}
|
||||
|
||||
func ToQMessage(msg *whisper.Message) *Message {
|
||||
|
@ -43,7 +43,7 @@ func (self *Whisper) Post(payload []string, to, from string, topics []string, pr
|
||||
|
||||
msg := whisper.NewMessage(data)
|
||||
envelope, err := msg.Seal(time.Duration(priority*100000), whisper.Opts{
|
||||
Ttl: time.Duration(ttl),
|
||||
Ttl: time.Duration(ttl) * time.Second,
|
||||
To: crypto.ToECDSAPub(fromHex(to)),
|
||||
From: crypto.ToECDSA(fromHex(from)),
|
||||
Topics: whisper.TopicsFromString(topics...),
|
||||
@ -84,8 +84,14 @@ func (self *Whisper) Watch(opts map[string]interface{}, view *qml.Common) int {
|
||||
return i
|
||||
}
|
||||
|
||||
func (self *Whisper) Trigger(id int) {
|
||||
go self.Whisper.Trigger(id)
|
||||
func (self *Whisper) Messages(id int) (messages *ethutil.List) {
|
||||
msgs := self.Whisper.Messages(id)
|
||||
messages = ethutil.EmptyList()
|
||||
for _, message := range msgs {
|
||||
messages.Append(ToQMessage(message))
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func filterFromMap(opts map[string]interface{}) (f whisper.Filter) {
|
||||
|
Reference in New Issue
Block a user