github.com/vipernet-xyz/tm@v0.34.24/proto/tendermint/consensus/message.go (about)

     1  package consensus
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/gogo/protobuf/proto"
     7  	"github.com/vipernet-xyz/tm/p2p"
     8  )
     9  
    10  var _ p2p.Wrapper = &VoteSetBits{}
    11  var _ p2p.Wrapper = &VoteSetMaj23{}
    12  var _ p2p.Wrapper = &Vote{}
    13  var _ p2p.Wrapper = &ProposalPOL{}
    14  var _ p2p.Wrapper = &Proposal{}
    15  var _ p2p.Wrapper = &NewValidBlock{}
    16  var _ p2p.Wrapper = &NewRoundStep{}
    17  var _ p2p.Wrapper = &HasVote{}
    18  var _ p2p.Wrapper = &BlockPart{}
    19  
    20  func (m *VoteSetBits) Wrap() proto.Message {
    21  	cm := &Message{}
    22  	cm.Sum = &Message_VoteSetBits{VoteSetBits: m}
    23  	return cm
    24  
    25  }
    26  
    27  func (m *VoteSetMaj23) Wrap() proto.Message {
    28  	cm := &Message{}
    29  	cm.Sum = &Message_VoteSetMaj23{VoteSetMaj23: m}
    30  	return cm
    31  }
    32  
    33  func (m *HasVote) Wrap() proto.Message {
    34  	cm := &Message{}
    35  	cm.Sum = &Message_HasVote{HasVote: m}
    36  	return cm
    37  }
    38  
    39  func (m *Vote) Wrap() proto.Message {
    40  	cm := &Message{}
    41  	cm.Sum = &Message_Vote{Vote: m}
    42  	return cm
    43  }
    44  
    45  func (m *BlockPart) Wrap() proto.Message {
    46  	cm := &Message{}
    47  	cm.Sum = &Message_BlockPart{BlockPart: m}
    48  	return cm
    49  }
    50  
    51  func (m *ProposalPOL) Wrap() proto.Message {
    52  	cm := &Message{}
    53  	cm.Sum = &Message_ProposalPol{ProposalPol: m}
    54  	return cm
    55  }
    56  
    57  func (m *Proposal) Wrap() proto.Message {
    58  	cm := &Message{}
    59  	cm.Sum = &Message_Proposal{Proposal: m}
    60  	return cm
    61  }
    62  
    63  func (m *NewValidBlock) Wrap() proto.Message {
    64  	cm := &Message{}
    65  	cm.Sum = &Message_NewValidBlock{NewValidBlock: m}
    66  	return cm
    67  }
    68  
    69  func (m *NewRoundStep) Wrap() proto.Message {
    70  	cm := &Message{}
    71  	cm.Sum = &Message_NewRoundStep{NewRoundStep: m}
    72  	return cm
    73  }
    74  
    75  // Unwrap implements the p2p Wrapper interface and unwraps a wrapped consensus
    76  // proto message.
    77  func (m *Message) Unwrap() (proto.Message, error) {
    78  	switch msg := m.Sum.(type) {
    79  	case *Message_NewRoundStep:
    80  		return m.GetNewRoundStep(), nil
    81  
    82  	case *Message_NewValidBlock:
    83  		return m.GetNewValidBlock(), nil
    84  
    85  	case *Message_Proposal:
    86  		return m.GetProposal(), nil
    87  
    88  	case *Message_ProposalPol:
    89  		return m.GetProposalPol(), nil
    90  
    91  	case *Message_BlockPart:
    92  		return m.GetBlockPart(), nil
    93  
    94  	case *Message_Vote:
    95  		return m.GetVote(), nil
    96  
    97  	case *Message_HasVote:
    98  		return m.GetHasVote(), nil
    99  
   100  	case *Message_VoteSetMaj23:
   101  		return m.GetVoteSetMaj23(), nil
   102  
   103  	case *Message_VoteSetBits:
   104  		return m.GetVoteSetBits(), nil
   105  
   106  	default:
   107  		return nil, fmt.Errorf("unknown message: %T", msg)
   108  	}
   109  }