Exemplo n.º 1
0
// 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
}