github.com/vipernet-xyz/tm@v0.34.24/proto/tendermint/statesync/message.go (about) 1 package statesync 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 = &ChunkRequest{} 11 var _ p2p.Wrapper = &ChunkResponse{} 12 var _ p2p.Wrapper = &SnapshotsRequest{} 13 var _ p2p.Wrapper = &SnapshotsResponse{} 14 15 func (m *SnapshotsResponse) Wrap() proto.Message { 16 sm := &Message{} 17 sm.Sum = &Message_SnapshotsResponse{SnapshotsResponse: m} 18 return sm 19 } 20 21 func (m *SnapshotsRequest) Wrap() proto.Message { 22 sm := &Message{} 23 sm.Sum = &Message_SnapshotsRequest{SnapshotsRequest: m} 24 return sm 25 } 26 27 func (m *ChunkResponse) Wrap() proto.Message { 28 sm := &Message{} 29 sm.Sum = &Message_ChunkResponse{ChunkResponse: m} 30 return sm 31 } 32 33 func (m *ChunkRequest) Wrap() proto.Message { 34 sm := &Message{} 35 sm.Sum = &Message_ChunkRequest{ChunkRequest: m} 36 return sm 37 } 38 39 // Unwrap implements the p2p Wrapper interface and unwraps a wrapped state sync 40 // proto message. 41 func (m *Message) Unwrap() (proto.Message, error) { 42 switch msg := m.Sum.(type) { 43 case *Message_ChunkRequest: 44 return m.GetChunkRequest(), nil 45 46 case *Message_ChunkResponse: 47 return m.GetChunkResponse(), nil 48 49 case *Message_SnapshotsRequest: 50 return m.GetSnapshotsRequest(), nil 51 52 case *Message_SnapshotsResponse: 53 return m.GetSnapshotsResponse(), nil 54 55 default: 56 return nil, fmt.Errorf("unknown message: %T", msg) 57 } 58 }