mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-09 23:56:42 +00:00

* [NOD-1128] Change message command to uint32 * [NOD-1128] Don't use iota * [NOD-1128] Remove redundant line
39 lines
876 B
Go
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
|
|
}
|