stasatdaglabs 8a4ece1101
[NOD-1223] Reorganize project (#868)
* [NOD-1223] Move all network stuff into a new network package.

* [NOD-1223] Delete the unused package testutil.

* [NOD-1223] Move infrastructure stuff into a new instrastructure package.

* [NOD-1223] Move domain stuff into a new domain package.
2020-08-13 17:27:25 +03:00

52 lines
1.6 KiB
Go

package protowire
import (
"github.com/kaspanet/kaspad/network/domainmessage"
"github.com/pkg/errors"
)
func (x *KaspadMessage_Addresses) toDomainMessage() (domainmessage.Message, error) {
protoAddresses := x.Addresses
if len(x.Addresses.AddressList) > domainmessage.MaxAddressesPerMsg {
return nil, errors.Errorf("too many addresses for message "+
"[count %d, max %d]", len(x.Addresses.AddressList), domainmessage.MaxAddressesPerMsg)
}
subnetworkID, err := protoAddresses.SubnetworkID.toWire()
if err != nil {
return nil, err
}
addressList := make([]*domainmessage.NetAddress, len(protoAddresses.AddressList))
for i, address := range protoAddresses.AddressList {
addressList[i], err = address.toWire()
if err != nil {
return nil, err
}
}
return &domainmessage.MsgAddresses{
IncludeAllSubnetworks: protoAddresses.IncludeAllSubnetworks,
SubnetworkID: subnetworkID,
AddrList: addressList,
}, nil
}
func (x *KaspadMessage_Addresses) fromDomainMessage(msgAddresses *domainmessage.MsgAddresses) error {
if len(msgAddresses.AddrList) > domainmessage.MaxAddressesPerMsg {
return errors.Errorf("too many addresses for message "+
"[count %d, max %d]", len(msgAddresses.AddrList), domainmessage.MaxAddressesPerMsg)
}
addressList := make([]*NetAddress, len(msgAddresses.AddrList))
for i, address := range msgAddresses.AddrList {
addressList[i] = wireNetAddressToProto(address)
}
x.Addresses = &AddressesMessage{
IncludeAllSubnetworks: msgAddresses.IncludeAllSubnetworks,
SubnetworkID: wireSubnetworkIDToProto(msgAddresses.SubnetworkID),
AddressList: addressList,
}
return nil
}