Ori Newman e0aac68759
[NOD-1128] Convert message type to uint32 (#799)
* [NOD-1128] Change message command to uint32

* [NOD-1128] Don't use iota

* [NOD-1128] Remove redundant line
2020-07-16 17:11:05 +03:00

39 lines
876 B
Go

package protowire
import (
"bytes"
"github.com/kaspanet/kaspad/wire"
)
// ToWireMessage converts a KaspadMessage to its wire.Message representation
func (x *KaspadMessage) ToWireMessage() (wire.Message, error) {
message, err := wire.MakeEmptyMessage(wire.MessageCommand(x.Command))
if err != nil {
return nil, err
}
payloadReader := bytes.NewReader(x.Payload)
err = message.KaspaDecode(payloadReader, wire.ProtocolVersion)
if err != nil {
return nil, err
}
return message, nil
}
// FromWireMessage creates a KaspadMessage from a wire.Message
func FromWireMessage(message wire.Message) (*KaspadMessage, error) {
payloadWriter := &bytes.Buffer{}
err := message.KaspaEncode(payloadWriter, wire.ProtocolVersion)
if err != nil {
return nil, err
}
return &KaspadMessage{
Command: uint32(message.Command()),
Payload: payloadWriter.Bytes(),
}, nil
}