diff --git a/whisper/api.go b/whisper/api.go index d1f454a1fa..bf94aff4b1 100644 --- a/whisper/api.go +++ b/whisper/api.go @@ -178,6 +178,9 @@ func (s *PublicWhisperAPI) Post(args PostArgs) (bool, error) { // construct whisper message with transmission options message := NewMessage(common.FromHex(args.Payload)) + if len(message.Payload) == 0 && len(args.Payload) > 0 { + message.Payload = []byte(args.Payload) + } options := Options{ To: crypto.ToECDSAPub(common.FromHex(args.To)), TTL: time.Duration(args.TTL) * time.Second, diff --git a/whisper/whisper.go b/whisper/whisper.go index 0a49c1000b..e9386c1017 100644 --- a/whisper/whisper.go +++ b/whisper/whisper.go @@ -302,10 +302,11 @@ func (self *Whisper) open(envelope *Envelope) *Message { // Iterate over the keys and try to decrypt the message for _, key := range self.keys { message, err := envelope.Open(key) - if err == nil { + switch err { + case nil: message.To = &key.PublicKey return message - } else if err == ecies.ErrInvalidPublicKey { + case ecies.ErrInvalidPublicKey: return message } }