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 }