mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-13 17:46:39 +00:00

* [NOD-1191] Convert wire protocol to 100% protobuf * [NOD-1191] Simplify wire interface and remove redundant messages * [NOD-1191] Map all proto to wire conversions * [NOD-1203] Create netadapter outside of protocol manager * [NOD-1191] Fix nil errors * [NOD-1191] Fix comments * [NOD-1191] Add converter interface * [NOD-1191] Add missing GetBlockLocator message * [NOD-1191] Change message names that starts with 'get' to 'request' * [NOD-1191] Change message commands values * [NOD-1191] Remove redundant methods * [NOD-1191] Rename message constructors * [NOD-1191] Change message commands to use iota * [NOD-1191] Add missing outputs to protobuf conversion * [NOD-1191] Make block header a required field * [NOD-1191] Rename variables * [NOD-1212] Fix test names * [NOD-1191] Rename flow names * [NOD-1191] Fix infinite loop
67 lines
1.8 KiB
Go
67 lines
1.8 KiB
Go
package protowire
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/netadapter/id"
|
|
"github.com/kaspanet/kaspad/util/mstime"
|
|
"github.com/kaspanet/kaspad/wire"
|
|
)
|
|
|
|
func (x *KaspadMessage_Version) toWireMessage() (wire.Message, error) {
|
|
address, err := x.Version.Address.toWire()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
selectedTipHash, err := x.Version.SelectedTipHash.toWire()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
subnetworkID, err := x.Version.SubnetworkID.toWire()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = wire.ValidateUserAgent(x.Version.UserAgent)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &wire.MsgVersion{
|
|
ProtocolVersion: x.Version.ProtocolVersion,
|
|
Services: wire.ServiceFlag(x.Version.Services),
|
|
Timestamp: mstime.UnixMilliseconds(x.Version.Timestamp),
|
|
Address: address,
|
|
ID: id.FromBytes(x.Version.Id),
|
|
UserAgent: x.Version.UserAgent,
|
|
SelectedTipHash: selectedTipHash,
|
|
DisableRelayTx: x.Version.DisableRelayTx,
|
|
SubnetworkID: subnetworkID,
|
|
}, nil
|
|
}
|
|
|
|
func (x *KaspadMessage_Version) fromWireMessage(msgVersion *wire.MsgVersion) error {
|
|
err := wire.ValidateUserAgent(msgVersion.UserAgent)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
versionID, err := msgVersion.ID.SerializeToBytes()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
x.Version = &VersionMessage{
|
|
ProtocolVersion: msgVersion.ProtocolVersion,
|
|
Services: uint64(msgVersion.Services),
|
|
Timestamp: msgVersion.Timestamp.UnixMilliseconds(),
|
|
Address: wireNetAddressToProto(msgVersion.Address),
|
|
Id: versionID,
|
|
UserAgent: msgVersion.UserAgent,
|
|
SelectedTipHash: wireHashToProto(msgVersion.SelectedTipHash),
|
|
DisableRelayTx: msgVersion.DisableRelayTx,
|
|
SubnetworkID: wireSubnetworkIDToProto(msgVersion.SubnetworkID),
|
|
}
|
|
return nil
|
|
}
|