mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* Add fee estimation to wallet * Add fee rate to kaspawallet parse * Update go version * Get rid of golint * Add RBF support to wallet * Fix bump_fee UTXO lookup and fix wrong change address * impl storage mass as per KIP9 * Use CalculateTransactionOverallMass where needed * Some fixes * Minor typos * Fix test * update version * BroadcastRBF -> BroadcastReplacement * rc3 * align proto files to only use camel case (fixed on RK as well) * Rename to FeePolicy and add MaxFee option + todo * apply max fee constrains * increase minChangeTarget to 10kas * fmt * Some fixes * fix description: maximum -> minimum * put min feerate check in the correct location * Fix calculateFeeLimits nil handling * Add validations to CLI flags * Change to rc6 * Add checkTransactionFeeRate * Add failed broadcast transactions on send error` * Fix estimateFee change value * Estimate fee correctly for --send-all * On estimateFee always assume that the recipient has ECDSA address * remove patch version --------- Co-authored-by: Michael Sutton <msutton@cs.huji.ac.il>
996 lines
29 KiB
Go
996 lines
29 KiB
Go
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
|
|
}
|
|
}
|