// MsgRead creates a Bitmessage object from an unencrypted wire.MsgMsg. func MsgRead(msg *cipher.Message, toAddress string, ofChan bool) (*Bmail, error) { data := msg.Bitmessage() object := msg.Object() header := object.Header() sign, _ := data.SigningKey.ToBtcec() encr, _ := data.EncryptionKey.ToBtcec() from := identity.NewPublic(sign, encr, data.Pow, data.FromAddressVersion, data.FromStreamNumber) fromAddress, err := from.Address.Encode() if err != nil { return nil, err } return &Bmail{ From: bmToEmail(fromAddress), To: bmToEmail(toAddress), Expiration: header.Expiration(), Ack: msg.Ack(), OfChannel: ofChan, Content: data.Content, object: object.MsgObject(), }, nil }