github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/proto/tendermint/consensus/message.go (about)

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