package protowire import ( "github.com/kaspanet/kaspad/app/appmessage" "github.com/pkg/errors" ) type converter interface { toAppMessage() (appmessage.Message, error) } // ToAppMessage converts a KaspadMessage to its appmessage.Message representation func (x *KaspadMessage) ToAppMessage() (appmessage.Message, error) { if x == nil { return nil, errors.Wrapf(errorNil, "KaspadMessage is nil") } converter, ok := x.Payload.(converter) if !ok { return nil, errors.Errorf("received invalid message") } appMessage, err := converter.toAppMessage() if err != nil { return nil, err } return appMessage, nil } // FromAppMessage creates a KaspadMessage from a appmessage.Message func FromAppMessage(message appmessage.Message) (*KaspadMessage, error) { payload, err := toPayload(message) if err != nil { return nil, err } return &KaspadMessage{ Payload: payload, }, nil } func toPayload(message appmessage.Message) (isKaspadMessage_Payload, error) { p2pPayload, err := toP2PPayload(message) if err != nil { return nil, err } if p2pPayload != nil { return p2pPayload, nil } rpcPayload, err := toRPCPayload(message) if err != nil { return nil, err } if rpcPayload != nil { return rpcPayload, nil } return nil, errors.Errorf("unknown message type %T", message) } func toP2PPayload(message appmessage.Message) (isKaspadMessage_Payload, error) { switch message := message.(type) { case *appmessage.MsgAddresses: payload := new(KaspadMessage_Addresses) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgBlock: payload := new(KaspadMessage_Block) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestBlockLocator: payload := new(KaspadMessage_RequestBlockLocator) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgBlockLocator: payload := new(KaspadMessage_BlockLocator) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestAddresses: payload := new(KaspadMessage_RequestAddresses) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestIBDBlocks: payload := new(KaspadMessage_RequestIBDBlocks) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestNextHeaders: payload := new(KaspadMessage_RequestNextHeaders) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgDoneHeaders: payload := new(KaspadMessage_DoneHeaders) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestRelayBlocks: payload := new(KaspadMessage_RequestRelayBlocks) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestTransactions: payload := new(KaspadMessage_RequestTransactions) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgTransactionNotFound: payload := new(KaspadMessage_TransactionNotFound) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgInvRelayBlock: payload := new(KaspadMessage_InvRelayBlock) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgInvTransaction: payload := new(KaspadMessage_InvTransactions) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgPing: payload := new(KaspadMessage_Ping) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgPong: payload := new(KaspadMessage_Pong) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgTx: payload := new(KaspadMessage_Transaction) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgVerAck: payload := new(KaspadMessage_Verack) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgVersion: payload := new(KaspadMessage_Version) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgReject: payload := new(KaspadMessage_Reject) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestPruningPointUTXOSet: payload := new(KaspadMessage_RequestPruningPointUTXOSet) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgPruningPointUTXOSetChunk: payload := new(KaspadMessage_PruningPointUtxoSetChunk) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgUnexpectedPruningPoint: payload := new(KaspadMessage_UnexpectedPruningPoint) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgIBDBlockLocator: payload := new(KaspadMessage_IbdBlockLocator) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgIBDBlockLocatorHighestHash: payload := new(KaspadMessage_IbdBlockLocatorHighestHash) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgIBDBlockLocatorHighestHashNotFound: payload := new(KaspadMessage_IbdBlockLocatorHighestHashNotFound) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.BlockHeadersMessage: payload := new(KaspadMessage_BlockHeaders) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestNextPruningPointUTXOSetChunk: payload := new(KaspadMessage_RequestNextPruningPointUtxoSetChunk) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgDonePruningPointUTXOSetChunks: payload := new(KaspadMessage_DonePruningPointUtxoSetChunks) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgBlockWithTrustedData: payload := new(KaspadMessage_BlockWithTrustedData) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestPruningPointAndItsAnticone: payload := new(KaspadMessage_RequestPruningPointAndItsAnticone) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgDoneBlocksWithTrustedData: payload := new(KaspadMessage_DoneBlocksWithTrustedData) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgIBDBlock: payload := new(KaspadMessage_IbdBlock) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestHeaders: payload := new(KaspadMessage_RequestHeaders) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgPruningPoints: payload := new(KaspadMessage_PruningPoints) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestPruningPointProof: payload := new(KaspadMessage_RequestPruningPointProof) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgPruningPointProof: payload := new(KaspadMessage_PruningPointProof) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgReady: payload := new(KaspadMessage_Ready) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgTrustedData: payload := new(KaspadMessage_TrustedData) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgBlockWithTrustedDataV4: payload := new(KaspadMessage_BlockWithTrustedDataV4) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestNextPruningPointAndItsAnticoneBlocks: payload := new(KaspadMessage_RequestNextPruningPointAndItsAnticoneBlocks) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestIBDChainBlockLocator: payload := new(KaspadMessage_RequestIBDChainBlockLocator) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgIBDChainBlockLocator: payload := new(KaspadMessage_IbdChainBlockLocator) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.MsgRequestAnticone: payload := new(KaspadMessage_RequestAnticone) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil default: return nil, nil } } func toRPCPayload(message appmessage.Message) (isKaspadMessage_Payload, error) { switch message := message.(type) { case *appmessage.GetCurrentNetworkRequestMessage: payload := new(KaspadMessage_GetCurrentNetworkRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetCurrentNetworkResponseMessage: payload := new(KaspadMessage_GetCurrentNetworkResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.SubmitBlockRequestMessage: payload := new(KaspadMessage_SubmitBlockRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.SubmitBlockResponseMessage: payload := new(KaspadMessage_SubmitBlockResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockTemplateRequestMessage: payload := new(KaspadMessage_GetBlockTemplateRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockTemplateResponseMessage: payload := new(KaspadMessage_GetBlockTemplateResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyBlockAddedRequestMessage: payload := new(KaspadMessage_NotifyBlockAddedRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyBlockAddedResponseMessage: payload := new(KaspadMessage_NotifyBlockAddedResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.BlockAddedNotificationMessage: payload := new(KaspadMessage_BlockAddedNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetPeerAddressesRequestMessage: payload := new(KaspadMessage_GetPeerAddressesRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetPeerAddressesResponseMessage: payload := new(KaspadMessage_GetPeerAddressesResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetSelectedTipHashRequestMessage: payload := new(KaspadMessage_GetSelectedTipHashRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetSelectedTipHashResponseMessage: payload := new(KaspadMessage_GetSelectedTipHashResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetMempoolEntryRequestMessage: payload := new(KaspadMessage_GetMempoolEntryRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetMempoolEntryResponseMessage: payload := new(KaspadMessage_GetMempoolEntryResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetConnectedPeerInfoRequestMessage: payload := new(KaspadMessage_GetConnectedPeerInfoRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetConnectedPeerInfoResponseMessage: payload := new(KaspadMessage_GetConnectedPeerInfoResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.AddPeerRequestMessage: payload := new(KaspadMessage_AddPeerRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.AddPeerResponseMessage: payload := new(KaspadMessage_AddPeerResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.SubmitTransactionRequestMessage: payload := new(KaspadMessage_SubmitTransactionRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.SubmitTransactionResponseMessage: payload := new(KaspadMessage_SubmitTransactionResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyVirtualSelectedParentChainChangedRequestMessage: payload := new(KaspadMessage_NotifyVirtualSelectedParentChainChangedRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyVirtualSelectedParentChainChangedResponseMessage: payload := new(KaspadMessage_NotifyVirtualSelectedParentChainChangedResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.VirtualSelectedParentChainChangedNotificationMessage: payload := new(KaspadMessage_VirtualSelectedParentChainChangedNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockRequestMessage: payload := new(KaspadMessage_GetBlockRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockResponseMessage: payload := new(KaspadMessage_GetBlockResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetSubnetworkRequestMessage: payload := new(KaspadMessage_GetSubnetworkRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetSubnetworkResponseMessage: payload := new(KaspadMessage_GetSubnetworkResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetVirtualSelectedParentChainFromBlockRequestMessage: payload := new(KaspadMessage_GetVirtualSelectedParentChainFromBlockRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetVirtualSelectedParentChainFromBlockResponseMessage: payload := new(KaspadMessage_GetVirtualSelectedParentChainFromBlockResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlocksRequestMessage: payload := new(KaspadMessage_GetBlocksRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlocksResponseMessage: payload := new(KaspadMessage_GetBlocksResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockCountRequestMessage: payload := new(KaspadMessage_GetBlockCountRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockCountResponseMessage: payload := new(KaspadMessage_GetBlockCountResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockDAGInfoRequestMessage: payload := new(KaspadMessage_GetBlockDagInfoRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBlockDAGInfoResponseMessage: payload := new(KaspadMessage_GetBlockDagInfoResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.ResolveFinalityConflictRequestMessage: payload := new(KaspadMessage_ResolveFinalityConflictRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.ResolveFinalityConflictResponseMessage: payload := new(KaspadMessage_ResolveFinalityConflictResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyFinalityConflictsRequestMessage: payload := new(KaspadMessage_NotifyFinalityConflictsRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyFinalityConflictsResponseMessage: payload := new(KaspadMessage_NotifyFinalityConflictsResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.FinalityConflictNotificationMessage: payload := new(KaspadMessage_FinalityConflictNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.FinalityConflictResolvedNotificationMessage: payload := new(KaspadMessage_FinalityConflictResolvedNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetMempoolEntriesRequestMessage: payload := new(KaspadMessage_GetMempoolEntriesRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetMempoolEntriesResponseMessage: payload := new(KaspadMessage_GetMempoolEntriesResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.ShutDownRequestMessage: payload := new(KaspadMessage_ShutDownRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.ShutDownResponseMessage: payload := new(KaspadMessage_ShutDownResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetHeadersRequestMessage: payload := new(KaspadMessage_GetHeadersRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetHeadersResponseMessage: payload := new(KaspadMessage_GetHeadersResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyUTXOsChangedRequestMessage: payload := new(KaspadMessage_NotifyUtxosChangedRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyUTXOsChangedResponseMessage: payload := new(KaspadMessage_NotifyUtxosChangedResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.UTXOsChangedNotificationMessage: payload := new(KaspadMessage_UtxosChangedNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.StopNotifyingUTXOsChangedRequestMessage: payload := new(KaspadMessage_StopNotifyingUtxosChangedRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.StopNotifyingUTXOsChangedResponseMessage: payload := new(KaspadMessage_StopNotifyingUtxosChangedResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetUTXOsByAddressesRequestMessage: payload := new(KaspadMessage_GetUtxosByAddressesRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetUTXOsByAddressesResponseMessage: payload := new(KaspadMessage_GetUtxosByAddressesResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBalanceByAddressRequestMessage: payload := new(KaspadMessage_GetBalanceByAddressRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBalanceByAddressResponseMessage: payload := new(KaspadMessage_GetBalanceByAddressResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetVirtualSelectedParentBlueScoreRequestMessage: payload := new(KaspadMessage_GetVirtualSelectedParentBlueScoreRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetVirtualSelectedParentBlueScoreResponseMessage: payload := new(KaspadMessage_GetVirtualSelectedParentBlueScoreResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyVirtualSelectedParentBlueScoreChangedRequestMessage: payload := new(KaspadMessage_NotifyVirtualSelectedParentBlueScoreChangedRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyVirtualSelectedParentBlueScoreChangedResponseMessage: payload := new(KaspadMessage_NotifyVirtualSelectedParentBlueScoreChangedResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.VirtualSelectedParentBlueScoreChangedNotificationMessage: payload := new(KaspadMessage_VirtualSelectedParentBlueScoreChangedNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.BanRequestMessage: payload := new(KaspadMessage_BanRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.BanResponseMessage: payload := new(KaspadMessage_BanResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.UnbanRequestMessage: payload := new(KaspadMessage_UnbanRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.UnbanResponseMessage: payload := new(KaspadMessage_UnbanResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetInfoRequestMessage: payload := new(KaspadMessage_GetInfoRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetInfoResponseMessage: payload := new(KaspadMessage_GetInfoResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyPruningPointUTXOSetOverrideRequestMessage: payload := new(KaspadMessage_NotifyPruningPointUTXOSetOverrideRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyPruningPointUTXOSetOverrideResponseMessage: payload := new(KaspadMessage_NotifyPruningPointUTXOSetOverrideResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.PruningPointUTXOSetOverrideNotificationMessage: payload := new(KaspadMessage_PruningPointUTXOSetOverrideNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.StopNotifyingPruningPointUTXOSetOverrideRequestMessage: payload := new(KaspadMessage_StopNotifyingPruningPointUTXOSetOverrideRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.EstimateNetworkHashesPerSecondRequestMessage: payload := new(KaspadMessage_EstimateNetworkHashesPerSecondRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.EstimateNetworkHashesPerSecondResponseMessage: payload := new(KaspadMessage_EstimateNetworkHashesPerSecondResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyVirtualDaaScoreChangedRequestMessage: payload := new(KaspadMessage_NotifyVirtualDaaScoreChangedRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyVirtualDaaScoreChangedResponseMessage: payload := new(KaspadMessage_NotifyVirtualDaaScoreChangedResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.VirtualDaaScoreChangedNotificationMessage: payload := new(KaspadMessage_VirtualDaaScoreChangedNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBalancesByAddressesRequestMessage: payload := new(KaspadMessage_GetBalancesByAddressesRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetBalancesByAddressesResponseMessage: payload := new(KaspadMessage_GetBalancesByAddressesResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyNewBlockTemplateRequestMessage: payload := new(KaspadMessage_NotifyNewBlockTemplateRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NotifyNewBlockTemplateResponseMessage: payload := new(KaspadMessage_NotifyNewBlockTemplateResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.NewBlockTemplateNotificationMessage: payload := new(KaspadMessage_NewBlockTemplateNotification) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetMempoolEntriesByAddressesRequestMessage: payload := new(KaspadMessage_GetMempoolEntriesByAddressesRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetMempoolEntriesByAddressesResponseMessage: payload := new(KaspadMessage_GetMempoolEntriesByAddressesResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetCoinSupplyRequestMessage: payload := new(KaspadMessage_GetCoinSupplyRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetCoinSupplyResponseMessage: payload := new(KaspadMessage_GetCoinSupplyResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.GetFeeEstimateRequestMessage: payload := new(KaspadMessage_GetFeeEstimateRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.SubmitTransactionReplacementRequestMessage: payload := new(KaspadMessage_SubmitTransactionReplacementRequest) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil case *appmessage.SubmitTransactionReplacementResponseMessage: payload := new(KaspadMessage_SubmitTransactionReplacementResponse) err := payload.fromAppMessage(message) if err != nil { return nil, err } return payload, nil default: return nil, nil } }