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

* [NOD-1225] Rename wire to domainmessage * [NOD-1225] Get rid of references to package wire in the code, and get rid of InvType
181 lines
4.8 KiB
Go
181 lines
4.8 KiB
Go
package protowire
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domainmessage"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
type converter interface {
|
|
toDomainMessage() (domainmessage.Message, error)
|
|
}
|
|
|
|
// ToDomainMessage converts a KaspadMessage to its domainmessage.Message representation
|
|
func (x *KaspadMessage) ToDomainMessage() (domainmessage.Message, error) {
|
|
return x.Payload.(converter).toDomainMessage()
|
|
}
|
|
|
|
// FromDomainMessage creates a KaspadMessage from a domainmessage.Message
|
|
func FromDomainMessage(message domainmessage.Message) (*KaspadMessage, error) {
|
|
payload, err := toPayload(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &KaspadMessage{
|
|
Payload: payload,
|
|
}, nil
|
|
}
|
|
|
|
func toPayload(message domainmessage.Message) (isKaspadMessage_Payload, error) {
|
|
switch message := message.(type) {
|
|
case *domainmessage.MsgAddresses:
|
|
payload := new(KaspadMessage_Addresses)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgBlock:
|
|
payload := new(KaspadMessage_Block)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestBlockLocator:
|
|
payload := new(KaspadMessage_RequestBlockLocator)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgBlockLocator:
|
|
payload := new(KaspadMessage_BlockLocator)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestAddresses:
|
|
payload := new(KaspadMessage_RequestAddresses)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestIBDBlocks:
|
|
payload := new(KaspadMessage_RequestIBDBlocks)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestNextIBDBlocks:
|
|
payload := new(KaspadMessage_RequestNextIBDBlocks)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgDoneIBDBlocks:
|
|
payload := new(KaspadMessage_DoneIBDBlocks)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestRelayBlocks:
|
|
payload := new(KaspadMessage_RequestRelayBlocks)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestSelectedTip:
|
|
payload := new(KaspadMessage_RequestSelectedTip)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgRequestTransactions:
|
|
payload := new(KaspadMessage_RequestTransactions)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgTransactionNotFound:
|
|
payload := new(KaspadMessage_TransactionNotFound)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgIBDBlock:
|
|
payload := new(KaspadMessage_IbdBlock)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgInvRelayBlock:
|
|
payload := new(KaspadMessage_InvRelayBlock)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgInvTransaction:
|
|
payload := new(KaspadMessage_InvTransactions)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgPing:
|
|
payload := new(KaspadMessage_Ping)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgPong:
|
|
payload := new(KaspadMessage_Pong)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgSelectedTip:
|
|
payload := new(KaspadMessage_SelectedTip)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgTx:
|
|
payload := new(KaspadMessage_Transaction)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgVerAck:
|
|
payload := new(KaspadMessage_Verack)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
case *domainmessage.MsgVersion:
|
|
payload := new(KaspadMessage_Version)
|
|
err := payload.fromDomainMessage(message)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return payload, nil
|
|
default:
|
|
return nil, errors.Errorf("unknown message type %T", message)
|
|
}
|
|
}
|