github.com/vipernet-xyz/tm@v0.34.24/proto/tendermint/types/evidence.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: tendermint/types/evidence.proto
     3  
     4  package types
     5  
     6  import (
     7  	fmt "fmt"
     8  	_ "github.com/gogo/protobuf/gogoproto"
     9  	proto "github.com/gogo/protobuf/proto"
    10  	_ "github.com/gogo/protobuf/types"
    11  	github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
    12  	io "io"
    13  	math "math"
    14  	math_bits "math/bits"
    15  	time "time"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var _ = proto.Marshal
    20  var _ = fmt.Errorf
    21  var _ = math.Inf
    22  var _ = time.Kitchen
    23  
    24  // This is a compile-time assertion to ensure that this generated file
    25  // is compatible with the proto package it is being compiled against.
    26  // A compilation error at this line likely means your copy of the
    27  // proto package needs to be updated.
    28  const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
    29  
    30  type Evidence struct {
    31  	// Types that are valid to be assigned to Sum:
    32  	//	*Evidence_DuplicateVoteEvidence
    33  	//	*Evidence_LightClientAttackEvidence
    34  	Sum isEvidence_Sum `protobuf_oneof:"sum"`
    35  }
    36  
    37  func (m *Evidence) Reset()         { *m = Evidence{} }
    38  func (m *Evidence) String() string { return proto.CompactTextString(m) }
    39  func (*Evidence) ProtoMessage()    {}
    40  func (*Evidence) Descriptor() ([]byte, []int) {
    41  	return fileDescriptor_6825fabc78e0a168, []int{0}
    42  }
    43  func (m *Evidence) XXX_Unmarshal(b []byte) error {
    44  	return m.Unmarshal(b)
    45  }
    46  func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    47  	if deterministic {
    48  		return xxx_messageInfo_Evidence.Marshal(b, m, deterministic)
    49  	} else {
    50  		b = b[:cap(b)]
    51  		n, err := m.MarshalToSizedBuffer(b)
    52  		if err != nil {
    53  			return nil, err
    54  		}
    55  		return b[:n], nil
    56  	}
    57  }
    58  func (m *Evidence) XXX_Merge(src proto.Message) {
    59  	xxx_messageInfo_Evidence.Merge(m, src)
    60  }
    61  func (m *Evidence) XXX_Size() int {
    62  	return m.Size()
    63  }
    64  func (m *Evidence) XXX_DiscardUnknown() {
    65  	xxx_messageInfo_Evidence.DiscardUnknown(m)
    66  }
    67  
    68  var xxx_messageInfo_Evidence proto.InternalMessageInfo
    69  
    70  type isEvidence_Sum interface {
    71  	isEvidence_Sum()
    72  	MarshalTo([]byte) (int, error)
    73  	Size() int
    74  }
    75  
    76  type Evidence_DuplicateVoteEvidence struct {
    77  	DuplicateVoteEvidence *DuplicateVoteEvidence `protobuf:"bytes,1,opt,name=duplicate_vote_evidence,json=duplicateVoteEvidence,proto3,oneof" json:"duplicate_vote_evidence,omitempty"`
    78  }
    79  type Evidence_LightClientAttackEvidence struct {
    80  	LightClientAttackEvidence *LightClientAttackEvidence `protobuf:"bytes,2,opt,name=light_client_attack_evidence,json=lightClientAttackEvidence,proto3,oneof" json:"light_client_attack_evidence,omitempty"`
    81  }
    82  
    83  func (*Evidence_DuplicateVoteEvidence) isEvidence_Sum()     {}
    84  func (*Evidence_LightClientAttackEvidence) isEvidence_Sum() {}
    85  
    86  func (m *Evidence) GetSum() isEvidence_Sum {
    87  	if m != nil {
    88  		return m.Sum
    89  	}
    90  	return nil
    91  }
    92  
    93  func (m *Evidence) GetDuplicateVoteEvidence() *DuplicateVoteEvidence {
    94  	if x, ok := m.GetSum().(*Evidence_DuplicateVoteEvidence); ok {
    95  		return x.DuplicateVoteEvidence
    96  	}
    97  	return nil
    98  }
    99  
   100  func (m *Evidence) GetLightClientAttackEvidence() *LightClientAttackEvidence {
   101  	if x, ok := m.GetSum().(*Evidence_LightClientAttackEvidence); ok {
   102  		return x.LightClientAttackEvidence
   103  	}
   104  	return nil
   105  }
   106  
   107  // XXX_OneofWrappers is for the internal use of the proto package.
   108  func (*Evidence) XXX_OneofWrappers() []interface{} {
   109  	return []interface{}{
   110  		(*Evidence_DuplicateVoteEvidence)(nil),
   111  		(*Evidence_LightClientAttackEvidence)(nil),
   112  	}
   113  }
   114  
   115  // DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes.
   116  type DuplicateVoteEvidence struct {
   117  	VoteA            *Vote     `protobuf:"bytes,1,opt,name=vote_a,json=voteA,proto3" json:"vote_a,omitempty"`
   118  	VoteB            *Vote     `protobuf:"bytes,2,opt,name=vote_b,json=voteB,proto3" json:"vote_b,omitempty"`
   119  	TotalVotingPower int64     `protobuf:"varint,3,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
   120  	ValidatorPower   int64     `protobuf:"varint,4,opt,name=validator_power,json=validatorPower,proto3" json:"validator_power,omitempty"`
   121  	Timestamp        time.Time `protobuf:"bytes,5,opt,name=timestamp,proto3,stdtime" json:"timestamp"`
   122  }
   123  
   124  func (m *DuplicateVoteEvidence) Reset()         { *m = DuplicateVoteEvidence{} }
   125  func (m *DuplicateVoteEvidence) String() string { return proto.CompactTextString(m) }
   126  func (*DuplicateVoteEvidence) ProtoMessage()    {}
   127  func (*DuplicateVoteEvidence) Descriptor() ([]byte, []int) {
   128  	return fileDescriptor_6825fabc78e0a168, []int{1}
   129  }
   130  func (m *DuplicateVoteEvidence) XXX_Unmarshal(b []byte) error {
   131  	return m.Unmarshal(b)
   132  }
   133  func (m *DuplicateVoteEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   134  	if deterministic {
   135  		return xxx_messageInfo_DuplicateVoteEvidence.Marshal(b, m, deterministic)
   136  	} else {
   137  		b = b[:cap(b)]
   138  		n, err := m.MarshalToSizedBuffer(b)
   139  		if err != nil {
   140  			return nil, err
   141  		}
   142  		return b[:n], nil
   143  	}
   144  }
   145  func (m *DuplicateVoteEvidence) XXX_Merge(src proto.Message) {
   146  	xxx_messageInfo_DuplicateVoteEvidence.Merge(m, src)
   147  }
   148  func (m *DuplicateVoteEvidence) XXX_Size() int {
   149  	return m.Size()
   150  }
   151  func (m *DuplicateVoteEvidence) XXX_DiscardUnknown() {
   152  	xxx_messageInfo_DuplicateVoteEvidence.DiscardUnknown(m)
   153  }
   154  
   155  var xxx_messageInfo_DuplicateVoteEvidence proto.InternalMessageInfo
   156  
   157  func (m *DuplicateVoteEvidence) GetVoteA() *Vote {
   158  	if m != nil {
   159  		return m.VoteA
   160  	}
   161  	return nil
   162  }
   163  
   164  func (m *DuplicateVoteEvidence) GetVoteB() *Vote {
   165  	if m != nil {
   166  		return m.VoteB
   167  	}
   168  	return nil
   169  }
   170  
   171  func (m *DuplicateVoteEvidence) GetTotalVotingPower() int64 {
   172  	if m != nil {
   173  		return m.TotalVotingPower
   174  	}
   175  	return 0
   176  }
   177  
   178  func (m *DuplicateVoteEvidence) GetValidatorPower() int64 {
   179  	if m != nil {
   180  		return m.ValidatorPower
   181  	}
   182  	return 0
   183  }
   184  
   185  func (m *DuplicateVoteEvidence) GetTimestamp() time.Time {
   186  	if m != nil {
   187  		return m.Timestamp
   188  	}
   189  	return time.Time{}
   190  }
   191  
   192  // LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client.
   193  type LightClientAttackEvidence struct {
   194  	ConflictingBlock    *LightBlock  `protobuf:"bytes,1,opt,name=conflicting_block,json=conflictingBlock,proto3" json:"conflicting_block,omitempty"`
   195  	CommonHeight        int64        `protobuf:"varint,2,opt,name=common_height,json=commonHeight,proto3" json:"common_height,omitempty"`
   196  	ByzantineValidators []*Validator `protobuf:"bytes,3,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators,omitempty"`
   197  	TotalVotingPower    int64        `protobuf:"varint,4,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"`
   198  	Timestamp           time.Time    `protobuf:"bytes,5,opt,name=timestamp,proto3,stdtime" json:"timestamp"`
   199  }
   200  
   201  func (m *LightClientAttackEvidence) Reset()         { *m = LightClientAttackEvidence{} }
   202  func (m *LightClientAttackEvidence) String() string { return proto.CompactTextString(m) }
   203  func (*LightClientAttackEvidence) ProtoMessage()    {}
   204  func (*LightClientAttackEvidence) Descriptor() ([]byte, []int) {
   205  	return fileDescriptor_6825fabc78e0a168, []int{2}
   206  }
   207  func (m *LightClientAttackEvidence) XXX_Unmarshal(b []byte) error {
   208  	return m.Unmarshal(b)
   209  }
   210  func (m *LightClientAttackEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   211  	if deterministic {
   212  		return xxx_messageInfo_LightClientAttackEvidence.Marshal(b, m, deterministic)
   213  	} else {
   214  		b = b[:cap(b)]
   215  		n, err := m.MarshalToSizedBuffer(b)
   216  		if err != nil {
   217  			return nil, err
   218  		}
   219  		return b[:n], nil
   220  	}
   221  }
   222  func (m *LightClientAttackEvidence) XXX_Merge(src proto.Message) {
   223  	xxx_messageInfo_LightClientAttackEvidence.Merge(m, src)
   224  }
   225  func (m *LightClientAttackEvidence) XXX_Size() int {
   226  	return m.Size()
   227  }
   228  func (m *LightClientAttackEvidence) XXX_DiscardUnknown() {
   229  	xxx_messageInfo_LightClientAttackEvidence.DiscardUnknown(m)
   230  }
   231  
   232  var xxx_messageInfo_LightClientAttackEvidence proto.InternalMessageInfo
   233  
   234  func (m *LightClientAttackEvidence) GetConflictingBlock() *LightBlock {
   235  	if m != nil {
   236  		return m.ConflictingBlock
   237  	}
   238  	return nil
   239  }
   240  
   241  func (m *LightClientAttackEvidence) GetCommonHeight() int64 {
   242  	if m != nil {
   243  		return m.CommonHeight
   244  	}
   245  	return 0
   246  }
   247  
   248  func (m *LightClientAttackEvidence) GetByzantineValidators() []*Validator {
   249  	if m != nil {
   250  		return m.ByzantineValidators
   251  	}
   252  	return nil
   253  }
   254  
   255  func (m *LightClientAttackEvidence) GetTotalVotingPower() int64 {
   256  	if m != nil {
   257  		return m.TotalVotingPower
   258  	}
   259  	return 0
   260  }
   261  
   262  func (m *LightClientAttackEvidence) GetTimestamp() time.Time {
   263  	if m != nil {
   264  		return m.Timestamp
   265  	}
   266  	return time.Time{}
   267  }
   268  
   269  type EvidenceList struct {
   270  	Evidence []Evidence `protobuf:"bytes,1,rep,name=evidence,proto3" json:"evidence"`
   271  }
   272  
   273  func (m *EvidenceList) Reset()         { *m = EvidenceList{} }
   274  func (m *EvidenceList) String() string { return proto.CompactTextString(m) }
   275  func (*EvidenceList) ProtoMessage()    {}
   276  func (*EvidenceList) Descriptor() ([]byte, []int) {
   277  	return fileDescriptor_6825fabc78e0a168, []int{3}
   278  }
   279  func (m *EvidenceList) XXX_Unmarshal(b []byte) error {
   280  	return m.Unmarshal(b)
   281  }
   282  func (m *EvidenceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   283  	if deterministic {
   284  		return xxx_messageInfo_EvidenceList.Marshal(b, m, deterministic)
   285  	} else {
   286  		b = b[:cap(b)]
   287  		n, err := m.MarshalToSizedBuffer(b)
   288  		if err != nil {
   289  			return nil, err
   290  		}
   291  		return b[:n], nil
   292  	}
   293  }
   294  func (m *EvidenceList) XXX_Merge(src proto.Message) {
   295  	xxx_messageInfo_EvidenceList.Merge(m, src)
   296  }
   297  func (m *EvidenceList) XXX_Size() int {
   298  	return m.Size()
   299  }
   300  func (m *EvidenceList) XXX_DiscardUnknown() {
   301  	xxx_messageInfo_EvidenceList.DiscardUnknown(m)
   302  }
   303  
   304  var xxx_messageInfo_EvidenceList proto.InternalMessageInfo
   305  
   306  func (m *EvidenceList) GetEvidence() []Evidence {
   307  	if m != nil {
   308  		return m.Evidence
   309  	}
   310  	return nil
   311  }
   312  
   313  func init() {
   314  	proto.RegisterType((*Evidence)(nil), "tendermint.types.Evidence")
   315  	proto.RegisterType((*DuplicateVoteEvidence)(nil), "tendermint.types.DuplicateVoteEvidence")
   316  	proto.RegisterType((*LightClientAttackEvidence)(nil), "tendermint.types.LightClientAttackEvidence")
   317  	proto.RegisterType((*EvidenceList)(nil), "tendermint.types.EvidenceList")
   318  }
   319  
   320  func init() { proto.RegisterFile("tendermint/types/evidence.proto", fileDescriptor_6825fabc78e0a168) }
   321  
   322  var fileDescriptor_6825fabc78e0a168 = []byte{
   323  	// 532 bytes of a gzipped FileDescriptorProto
   324  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xcf, 0x6e, 0xd3, 0x40,
   325  	0x10, 0xc6, 0xed, 0x3a, 0xa9, 0xc2, 0xb6, 0x40, 0x58, 0x5a, 0x48, 0x43, 0xe4, 0x44, 0xe1, 0xd0,
   326  	0x48, 0x80, 0x2d, 0x95, 0x03, 0x17, 0x2e, 0x35, 0x20, 0x15, 0x29, 0x42, 0x60, 0xa1, 0x1e, 0xb8,
   327  	0x58, 0x6b, 0x7b, 0xeb, 0xac, 0x6a, 0xef, 0x5a, 0xf1, 0x24, 0xa8, 0x3c, 0x45, 0x1e, 0xab, 0x17,
   328  	0xa4, 0x1e, 0x39, 0x01, 0x4a, 0x78, 0x10, 0xe4, 0xf5, 0x9f, 0x44, 0x75, 0xcc, 0x89, 0x4b, 0xe4,
   329  	0xcc, 0xfc, 0xbe, 0x9d, 0x99, 0xcf, 0xb3, 0x46, 0x7d, 0xa0, 0xdc, 0xa7, 0xd3, 0x88, 0x71, 0x30,
   330  	0xe1, 0x2a, 0xa6, 0x89, 0x49, 0xe7, 0xcc, 0xa7, 0xdc, 0xa3, 0x46, 0x3c, 0x15, 0x20, 0x70, 0x7b,
   331  	0x0d, 0x18, 0x12, 0xe8, 0x1e, 0x04, 0x22, 0x10, 0x32, 0x69, 0xa6, 0x4f, 0x19, 0xd7, 0xed, 0x07,
   332  	0x42, 0x04, 0x21, 0x35, 0xe5, 0x3f, 0x77, 0x76, 0x61, 0x02, 0x8b, 0x68, 0x02, 0x24, 0x8a, 0x73,
   333  	0xa0, 0x57, 0xa9, 0x24, 0x7f, 0xf3, 0xec, 0xa0, 0x92, 0x9d, 0x93, 0x90, 0xf9, 0x04, 0xc4, 0x34,
   334  	0x23, 0x86, 0x7f, 0x54, 0xd4, 0x7a, 0x97, 0xf7, 0x86, 0x09, 0x7a, 0xec, 0xcf, 0xe2, 0x90, 0x79,
   335  	0x04, 0xa8, 0x33, 0x17, 0x40, 0x9d, 0xa2, 0xed, 0x8e, 0x3a, 0x50, 0x47, 0x7b, 0x27, 0xc7, 0xc6,
   336  	0xed, 0xbe, 0x8d, 0xb7, 0x85, 0xe0, 0x5c, 0x00, 0x2d, 0x4e, 0x3a, 0x53, 0xec, 0x43, 0x7f, 0x5b,
   337  	0x02, 0x73, 0xd4, 0x0b, 0x59, 0x30, 0x01, 0xc7, 0x0b, 0x19, 0xe5, 0xe0, 0x10, 0x00, 0xe2, 0x5d,
   338  	0xae, 0xeb, 0xec, 0xc8, 0x3a, 0xcf, 0xaa, 0x75, 0xc6, 0xa9, 0xea, 0x8d, 0x14, 0x9d, 0x4a, 0xcd,
   339  	0x46, 0xad, 0xa3, 0xb0, 0x2e, 0x69, 0x35, 0x91, 0x96, 0xcc, 0xa2, 0xe1, 0x62, 0x07, 0x1d, 0x6e,
   340  	0xed, 0x14, 0xbf, 0x40, 0xbb, 0x72, 0x52, 0x92, 0x8f, 0xf8, 0xa8, 0x5a, 0x3a, 0xe5, 0xed, 0x66,
   341  	0x4a, 0x9d, 0x96, 0xb8, 0x9b, 0x77, 0xfa, 0x4f, 0xdc, 0xc2, 0xcf, 0x11, 0x06, 0x01, 0x24, 0x4c,
   342  	0xdd, 0x64, 0x3c, 0x70, 0x62, 0xf1, 0x95, 0x4e, 0x3b, 0xda, 0x40, 0x1d, 0x69, 0x76, 0x5b, 0x66,
   343  	0xce, 0x65, 0xe2, 0x63, 0x1a, 0xc7, 0xc7, 0xe8, 0x7e, 0xf9, 0x7e, 0x72, 0xb4, 0x21, 0xd1, 0x7b,
   344  	0x65, 0x38, 0x03, 0x2d, 0x74, 0xa7, 0x5c, 0x84, 0x4e, 0x53, 0x36, 0xd2, 0x35, 0xb2, 0x55, 0x31,
   345  	0x8a, 0x55, 0x31, 0x3e, 0x17, 0x84, 0xd5, 0xba, 0xfe, 0xd9, 0x57, 0x16, 0xbf, 0xfa, 0xaa, 0xbd,
   346  	0x96, 0x0d, 0xbf, 0xef, 0xa0, 0xa3, 0x5a, 0x53, 0xf1, 0x7b, 0xf4, 0xc0, 0x13, 0xfc, 0x22, 0x64,
   347  	0x9e, 0xec, 0xdb, 0x0d, 0x85, 0x77, 0x99, 0x3b, 0xd4, 0xab, 0x79, 0x39, 0x56, 0xca, 0xd8, 0xed,
   348  	0x0d, 0x99, 0x8c, 0xe0, 0xa7, 0xe8, 0xae, 0x27, 0xa2, 0x48, 0x70, 0x67, 0x42, 0x53, 0x4e, 0x3a,
   349  	0xa7, 0xd9, 0xfb, 0x59, 0xf0, 0x4c, 0xc6, 0xf0, 0x07, 0x74, 0xe0, 0x5e, 0x7d, 0x23, 0x1c, 0x18,
   350  	0xa7, 0x4e, 0x39, 0x6d, 0xd2, 0xd1, 0x06, 0xda, 0x68, 0xef, 0xe4, 0xc9, 0x16, 0x97, 0x0b, 0xc6,
   351  	0x7e, 0x58, 0x0a, 0xcb, 0x58, 0x52, 0x63, 0x7c, 0xa3, 0xc6, 0xf8, 0xff, 0xe1, 0xe7, 0x18, 0xed,
   352  	0x17, 0xee, 0x8d, 0x59, 0x02, 0xf8, 0x35, 0x6a, 0x6d, 0xdc, 0x1e, 0x4d, 0x1e, 0x59, 0x99, 0xa2,
   353  	0xdc, 0xd3, 0x46, 0x7a, 0xa4, 0x5d, 0x2a, 0xac, 0x4f, 0xd7, 0x4b, 0x5d, 0xbd, 0x59, 0xea, 0xea,
   354  	0xef, 0xa5, 0xae, 0x2e, 0x56, 0xba, 0x72, 0xb3, 0xd2, 0x95, 0x1f, 0x2b, 0x5d, 0xf9, 0xf2, 0x2a,
   355  	0x60, 0x30, 0x99, 0xb9, 0x86, 0x27, 0x22, 0x73, 0xf3, 0x7a, 0xaf, 0x1f, 0xb3, 0xaf, 0xc8, 0xed,
   356  	0xab, 0xef, 0xee, 0xca, 0xf8, 0xcb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa6, 0x21, 0x16, 0x68,
   357  	0x9d, 0x04, 0x00, 0x00,
   358  }
   359  
   360  func (m *Evidence) Marshal() (dAtA []byte, err error) {
   361  	size := m.Size()
   362  	dAtA = make([]byte, size)
   363  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   364  	if err != nil {
   365  		return nil, err
   366  	}
   367  	return dAtA[:n], nil
   368  }
   369  
   370  func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
   371  	size := m.Size()
   372  	return m.MarshalToSizedBuffer(dAtA[:size])
   373  }
   374  
   375  func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   376  	i := len(dAtA)
   377  	_ = i
   378  	var l int
   379  	_ = l
   380  	if m.Sum != nil {
   381  		{
   382  			size := m.Sum.Size()
   383  			i -= size
   384  			if _, err := m.Sum.MarshalTo(dAtA[i:]); err != nil {
   385  				return 0, err
   386  			}
   387  		}
   388  	}
   389  	return len(dAtA) - i, nil
   390  }
   391  
   392  func (m *Evidence_DuplicateVoteEvidence) MarshalTo(dAtA []byte) (int, error) {
   393  	size := m.Size()
   394  	return m.MarshalToSizedBuffer(dAtA[:size])
   395  }
   396  
   397  func (m *Evidence_DuplicateVoteEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   398  	i := len(dAtA)
   399  	if m.DuplicateVoteEvidence != nil {
   400  		{
   401  			size, err := m.DuplicateVoteEvidence.MarshalToSizedBuffer(dAtA[:i])
   402  			if err != nil {
   403  				return 0, err
   404  			}
   405  			i -= size
   406  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   407  		}
   408  		i--
   409  		dAtA[i] = 0xa
   410  	}
   411  	return len(dAtA) - i, nil
   412  }
   413  func (m *Evidence_LightClientAttackEvidence) MarshalTo(dAtA []byte) (int, error) {
   414  	size := m.Size()
   415  	return m.MarshalToSizedBuffer(dAtA[:size])
   416  }
   417  
   418  func (m *Evidence_LightClientAttackEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   419  	i := len(dAtA)
   420  	if m.LightClientAttackEvidence != nil {
   421  		{
   422  			size, err := m.LightClientAttackEvidence.MarshalToSizedBuffer(dAtA[:i])
   423  			if err != nil {
   424  				return 0, err
   425  			}
   426  			i -= size
   427  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   428  		}
   429  		i--
   430  		dAtA[i] = 0x12
   431  	}
   432  	return len(dAtA) - i, nil
   433  }
   434  func (m *DuplicateVoteEvidence) Marshal() (dAtA []byte, err error) {
   435  	size := m.Size()
   436  	dAtA = make([]byte, size)
   437  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   438  	if err != nil {
   439  		return nil, err
   440  	}
   441  	return dAtA[:n], nil
   442  }
   443  
   444  func (m *DuplicateVoteEvidence) MarshalTo(dAtA []byte) (int, error) {
   445  	size := m.Size()
   446  	return m.MarshalToSizedBuffer(dAtA[:size])
   447  }
   448  
   449  func (m *DuplicateVoteEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   450  	i := len(dAtA)
   451  	_ = i
   452  	var l int
   453  	_ = l
   454  	n3, err3 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp):])
   455  	if err3 != nil {
   456  		return 0, err3
   457  	}
   458  	i -= n3
   459  	i = encodeVarintEvidence(dAtA, i, uint64(n3))
   460  	i--
   461  	dAtA[i] = 0x2a
   462  	if m.ValidatorPower != 0 {
   463  		i = encodeVarintEvidence(dAtA, i, uint64(m.ValidatorPower))
   464  		i--
   465  		dAtA[i] = 0x20
   466  	}
   467  	if m.TotalVotingPower != 0 {
   468  		i = encodeVarintEvidence(dAtA, i, uint64(m.TotalVotingPower))
   469  		i--
   470  		dAtA[i] = 0x18
   471  	}
   472  	if m.VoteB != nil {
   473  		{
   474  			size, err := m.VoteB.MarshalToSizedBuffer(dAtA[:i])
   475  			if err != nil {
   476  				return 0, err
   477  			}
   478  			i -= size
   479  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   480  		}
   481  		i--
   482  		dAtA[i] = 0x12
   483  	}
   484  	if m.VoteA != nil {
   485  		{
   486  			size, err := m.VoteA.MarshalToSizedBuffer(dAtA[:i])
   487  			if err != nil {
   488  				return 0, err
   489  			}
   490  			i -= size
   491  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   492  		}
   493  		i--
   494  		dAtA[i] = 0xa
   495  	}
   496  	return len(dAtA) - i, nil
   497  }
   498  
   499  func (m *LightClientAttackEvidence) Marshal() (dAtA []byte, err error) {
   500  	size := m.Size()
   501  	dAtA = make([]byte, size)
   502  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   503  	if err != nil {
   504  		return nil, err
   505  	}
   506  	return dAtA[:n], nil
   507  }
   508  
   509  func (m *LightClientAttackEvidence) MarshalTo(dAtA []byte) (int, error) {
   510  	size := m.Size()
   511  	return m.MarshalToSizedBuffer(dAtA[:size])
   512  }
   513  
   514  func (m *LightClientAttackEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   515  	i := len(dAtA)
   516  	_ = i
   517  	var l int
   518  	_ = l
   519  	n6, err6 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp):])
   520  	if err6 != nil {
   521  		return 0, err6
   522  	}
   523  	i -= n6
   524  	i = encodeVarintEvidence(dAtA, i, uint64(n6))
   525  	i--
   526  	dAtA[i] = 0x2a
   527  	if m.TotalVotingPower != 0 {
   528  		i = encodeVarintEvidence(dAtA, i, uint64(m.TotalVotingPower))
   529  		i--
   530  		dAtA[i] = 0x20
   531  	}
   532  	if len(m.ByzantineValidators) > 0 {
   533  		for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- {
   534  			{
   535  				size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i])
   536  				if err != nil {
   537  					return 0, err
   538  				}
   539  				i -= size
   540  				i = encodeVarintEvidence(dAtA, i, uint64(size))
   541  			}
   542  			i--
   543  			dAtA[i] = 0x1a
   544  		}
   545  	}
   546  	if m.CommonHeight != 0 {
   547  		i = encodeVarintEvidence(dAtA, i, uint64(m.CommonHeight))
   548  		i--
   549  		dAtA[i] = 0x10
   550  	}
   551  	if m.ConflictingBlock != nil {
   552  		{
   553  			size, err := m.ConflictingBlock.MarshalToSizedBuffer(dAtA[:i])
   554  			if err != nil {
   555  				return 0, err
   556  			}
   557  			i -= size
   558  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   559  		}
   560  		i--
   561  		dAtA[i] = 0xa
   562  	}
   563  	return len(dAtA) - i, nil
   564  }
   565  
   566  func (m *EvidenceList) Marshal() (dAtA []byte, err error) {
   567  	size := m.Size()
   568  	dAtA = make([]byte, size)
   569  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   570  	if err != nil {
   571  		return nil, err
   572  	}
   573  	return dAtA[:n], nil
   574  }
   575  
   576  func (m *EvidenceList) MarshalTo(dAtA []byte) (int, error) {
   577  	size := m.Size()
   578  	return m.MarshalToSizedBuffer(dAtA[:size])
   579  }
   580  
   581  func (m *EvidenceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   582  	i := len(dAtA)
   583  	_ = i
   584  	var l int
   585  	_ = l
   586  	if len(m.Evidence) > 0 {
   587  		for iNdEx := len(m.Evidence) - 1; iNdEx >= 0; iNdEx-- {
   588  			{
   589  				size, err := m.Evidence[iNdEx].MarshalToSizedBuffer(dAtA[:i])
   590  				if err != nil {
   591  					return 0, err
   592  				}
   593  				i -= size
   594  				i = encodeVarintEvidence(dAtA, i, uint64(size))
   595  			}
   596  			i--
   597  			dAtA[i] = 0xa
   598  		}
   599  	}
   600  	return len(dAtA) - i, nil
   601  }
   602  
   603  func encodeVarintEvidence(dAtA []byte, offset int, v uint64) int {
   604  	offset -= sovEvidence(v)
   605  	base := offset
   606  	for v >= 1<<7 {
   607  		dAtA[offset] = uint8(v&0x7f | 0x80)
   608  		v >>= 7
   609  		offset++
   610  	}
   611  	dAtA[offset] = uint8(v)
   612  	return base
   613  }
   614  func (m *Evidence) Size() (n int) {
   615  	if m == nil {
   616  		return 0
   617  	}
   618  	var l int
   619  	_ = l
   620  	if m.Sum != nil {
   621  		n += m.Sum.Size()
   622  	}
   623  	return n
   624  }
   625  
   626  func (m *Evidence_DuplicateVoteEvidence) Size() (n int) {
   627  	if m == nil {
   628  		return 0
   629  	}
   630  	var l int
   631  	_ = l
   632  	if m.DuplicateVoteEvidence != nil {
   633  		l = m.DuplicateVoteEvidence.Size()
   634  		n += 1 + l + sovEvidence(uint64(l))
   635  	}
   636  	return n
   637  }
   638  func (m *Evidence_LightClientAttackEvidence) Size() (n int) {
   639  	if m == nil {
   640  		return 0
   641  	}
   642  	var l int
   643  	_ = l
   644  	if m.LightClientAttackEvidence != nil {
   645  		l = m.LightClientAttackEvidence.Size()
   646  		n += 1 + l + sovEvidence(uint64(l))
   647  	}
   648  	return n
   649  }
   650  func (m *DuplicateVoteEvidence) Size() (n int) {
   651  	if m == nil {
   652  		return 0
   653  	}
   654  	var l int
   655  	_ = l
   656  	if m.VoteA != nil {
   657  		l = m.VoteA.Size()
   658  		n += 1 + l + sovEvidence(uint64(l))
   659  	}
   660  	if m.VoteB != nil {
   661  		l = m.VoteB.Size()
   662  		n += 1 + l + sovEvidence(uint64(l))
   663  	}
   664  	if m.TotalVotingPower != 0 {
   665  		n += 1 + sovEvidence(uint64(m.TotalVotingPower))
   666  	}
   667  	if m.ValidatorPower != 0 {
   668  		n += 1 + sovEvidence(uint64(m.ValidatorPower))
   669  	}
   670  	l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp)
   671  	n += 1 + l + sovEvidence(uint64(l))
   672  	return n
   673  }
   674  
   675  func (m *LightClientAttackEvidence) Size() (n int) {
   676  	if m == nil {
   677  		return 0
   678  	}
   679  	var l int
   680  	_ = l
   681  	if m.ConflictingBlock != nil {
   682  		l = m.ConflictingBlock.Size()
   683  		n += 1 + l + sovEvidence(uint64(l))
   684  	}
   685  	if m.CommonHeight != 0 {
   686  		n += 1 + sovEvidence(uint64(m.CommonHeight))
   687  	}
   688  	if len(m.ByzantineValidators) > 0 {
   689  		for _, e := range m.ByzantineValidators {
   690  			l = e.Size()
   691  			n += 1 + l + sovEvidence(uint64(l))
   692  		}
   693  	}
   694  	if m.TotalVotingPower != 0 {
   695  		n += 1 + sovEvidence(uint64(m.TotalVotingPower))
   696  	}
   697  	l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp)
   698  	n += 1 + l + sovEvidence(uint64(l))
   699  	return n
   700  }
   701  
   702  func (m *EvidenceList) Size() (n int) {
   703  	if m == nil {
   704  		return 0
   705  	}
   706  	var l int
   707  	_ = l
   708  	if len(m.Evidence) > 0 {
   709  		for _, e := range m.Evidence {
   710  			l = e.Size()
   711  			n += 1 + l + sovEvidence(uint64(l))
   712  		}
   713  	}
   714  	return n
   715  }
   716  
   717  func sovEvidence(x uint64) (n int) {
   718  	return (math_bits.Len64(x|1) + 6) / 7
   719  }
   720  func sozEvidence(x uint64) (n int) {
   721  	return sovEvidence(uint64((x << 1) ^ uint64((int64(x) >> 63))))
   722  }
   723  func (m *Evidence) Unmarshal(dAtA []byte) error {
   724  	l := len(dAtA)
   725  	iNdEx := 0
   726  	for iNdEx < l {
   727  		preIndex := iNdEx
   728  		var wire uint64
   729  		for shift := uint(0); ; shift += 7 {
   730  			if shift >= 64 {
   731  				return ErrIntOverflowEvidence
   732  			}
   733  			if iNdEx >= l {
   734  				return io.ErrUnexpectedEOF
   735  			}
   736  			b := dAtA[iNdEx]
   737  			iNdEx++
   738  			wire |= uint64(b&0x7F) << shift
   739  			if b < 0x80 {
   740  				break
   741  			}
   742  		}
   743  		fieldNum := int32(wire >> 3)
   744  		wireType := int(wire & 0x7)
   745  		if wireType == 4 {
   746  			return fmt.Errorf("proto: Evidence: wiretype end group for non-group")
   747  		}
   748  		if fieldNum <= 0 {
   749  			return fmt.Errorf("proto: Evidence: illegal tag %d (wire type %d)", fieldNum, wire)
   750  		}
   751  		switch fieldNum {
   752  		case 1:
   753  			if wireType != 2 {
   754  				return fmt.Errorf("proto: wrong wireType = %d for field DuplicateVoteEvidence", wireType)
   755  			}
   756  			var msglen int
   757  			for shift := uint(0); ; shift += 7 {
   758  				if shift >= 64 {
   759  					return ErrIntOverflowEvidence
   760  				}
   761  				if iNdEx >= l {
   762  					return io.ErrUnexpectedEOF
   763  				}
   764  				b := dAtA[iNdEx]
   765  				iNdEx++
   766  				msglen |= int(b&0x7F) << shift
   767  				if b < 0x80 {
   768  					break
   769  				}
   770  			}
   771  			if msglen < 0 {
   772  				return ErrInvalidLengthEvidence
   773  			}
   774  			postIndex := iNdEx + msglen
   775  			if postIndex < 0 {
   776  				return ErrInvalidLengthEvidence
   777  			}
   778  			if postIndex > l {
   779  				return io.ErrUnexpectedEOF
   780  			}
   781  			v := &DuplicateVoteEvidence{}
   782  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   783  				return err
   784  			}
   785  			m.Sum = &Evidence_DuplicateVoteEvidence{v}
   786  			iNdEx = postIndex
   787  		case 2:
   788  			if wireType != 2 {
   789  				return fmt.Errorf("proto: wrong wireType = %d for field LightClientAttackEvidence", wireType)
   790  			}
   791  			var msglen int
   792  			for shift := uint(0); ; shift += 7 {
   793  				if shift >= 64 {
   794  					return ErrIntOverflowEvidence
   795  				}
   796  				if iNdEx >= l {
   797  					return io.ErrUnexpectedEOF
   798  				}
   799  				b := dAtA[iNdEx]
   800  				iNdEx++
   801  				msglen |= int(b&0x7F) << shift
   802  				if b < 0x80 {
   803  					break
   804  				}
   805  			}
   806  			if msglen < 0 {
   807  				return ErrInvalidLengthEvidence
   808  			}
   809  			postIndex := iNdEx + msglen
   810  			if postIndex < 0 {
   811  				return ErrInvalidLengthEvidence
   812  			}
   813  			if postIndex > l {
   814  				return io.ErrUnexpectedEOF
   815  			}
   816  			v := &LightClientAttackEvidence{}
   817  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   818  				return err
   819  			}
   820  			m.Sum = &Evidence_LightClientAttackEvidence{v}
   821  			iNdEx = postIndex
   822  		default:
   823  			iNdEx = preIndex
   824  			skippy, err := skipEvidence(dAtA[iNdEx:])
   825  			if err != nil {
   826  				return err
   827  			}
   828  			if (skippy < 0) || (iNdEx+skippy) < 0 {
   829  				return ErrInvalidLengthEvidence
   830  			}
   831  			if (iNdEx + skippy) > l {
   832  				return io.ErrUnexpectedEOF
   833  			}
   834  			iNdEx += skippy
   835  		}
   836  	}
   837  
   838  	if iNdEx > l {
   839  		return io.ErrUnexpectedEOF
   840  	}
   841  	return nil
   842  }
   843  func (m *DuplicateVoteEvidence) Unmarshal(dAtA []byte) error {
   844  	l := len(dAtA)
   845  	iNdEx := 0
   846  	for iNdEx < l {
   847  		preIndex := iNdEx
   848  		var wire uint64
   849  		for shift := uint(0); ; shift += 7 {
   850  			if shift >= 64 {
   851  				return ErrIntOverflowEvidence
   852  			}
   853  			if iNdEx >= l {
   854  				return io.ErrUnexpectedEOF
   855  			}
   856  			b := dAtA[iNdEx]
   857  			iNdEx++
   858  			wire |= uint64(b&0x7F) << shift
   859  			if b < 0x80 {
   860  				break
   861  			}
   862  		}
   863  		fieldNum := int32(wire >> 3)
   864  		wireType := int(wire & 0x7)
   865  		if wireType == 4 {
   866  			return fmt.Errorf("proto: DuplicateVoteEvidence: wiretype end group for non-group")
   867  		}
   868  		if fieldNum <= 0 {
   869  			return fmt.Errorf("proto: DuplicateVoteEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
   870  		}
   871  		switch fieldNum {
   872  		case 1:
   873  			if wireType != 2 {
   874  				return fmt.Errorf("proto: wrong wireType = %d for field VoteA", wireType)
   875  			}
   876  			var msglen int
   877  			for shift := uint(0); ; shift += 7 {
   878  				if shift >= 64 {
   879  					return ErrIntOverflowEvidence
   880  				}
   881  				if iNdEx >= l {
   882  					return io.ErrUnexpectedEOF
   883  				}
   884  				b := dAtA[iNdEx]
   885  				iNdEx++
   886  				msglen |= int(b&0x7F) << shift
   887  				if b < 0x80 {
   888  					break
   889  				}
   890  			}
   891  			if msglen < 0 {
   892  				return ErrInvalidLengthEvidence
   893  			}
   894  			postIndex := iNdEx + msglen
   895  			if postIndex < 0 {
   896  				return ErrInvalidLengthEvidence
   897  			}
   898  			if postIndex > l {
   899  				return io.ErrUnexpectedEOF
   900  			}
   901  			if m.VoteA == nil {
   902  				m.VoteA = &Vote{}
   903  			}
   904  			if err := m.VoteA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   905  				return err
   906  			}
   907  			iNdEx = postIndex
   908  		case 2:
   909  			if wireType != 2 {
   910  				return fmt.Errorf("proto: wrong wireType = %d for field VoteB", wireType)
   911  			}
   912  			var msglen int
   913  			for shift := uint(0); ; shift += 7 {
   914  				if shift >= 64 {
   915  					return ErrIntOverflowEvidence
   916  				}
   917  				if iNdEx >= l {
   918  					return io.ErrUnexpectedEOF
   919  				}
   920  				b := dAtA[iNdEx]
   921  				iNdEx++
   922  				msglen |= int(b&0x7F) << shift
   923  				if b < 0x80 {
   924  					break
   925  				}
   926  			}
   927  			if msglen < 0 {
   928  				return ErrInvalidLengthEvidence
   929  			}
   930  			postIndex := iNdEx + msglen
   931  			if postIndex < 0 {
   932  				return ErrInvalidLengthEvidence
   933  			}
   934  			if postIndex > l {
   935  				return io.ErrUnexpectedEOF
   936  			}
   937  			if m.VoteB == nil {
   938  				m.VoteB = &Vote{}
   939  			}
   940  			if err := m.VoteB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   941  				return err
   942  			}
   943  			iNdEx = postIndex
   944  		case 3:
   945  			if wireType != 0 {
   946  				return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
   947  			}
   948  			m.TotalVotingPower = 0
   949  			for shift := uint(0); ; shift += 7 {
   950  				if shift >= 64 {
   951  					return ErrIntOverflowEvidence
   952  				}
   953  				if iNdEx >= l {
   954  					return io.ErrUnexpectedEOF
   955  				}
   956  				b := dAtA[iNdEx]
   957  				iNdEx++
   958  				m.TotalVotingPower |= int64(b&0x7F) << shift
   959  				if b < 0x80 {
   960  					break
   961  				}
   962  			}
   963  		case 4:
   964  			if wireType != 0 {
   965  				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorPower", wireType)
   966  			}
   967  			m.ValidatorPower = 0
   968  			for shift := uint(0); ; shift += 7 {
   969  				if shift >= 64 {
   970  					return ErrIntOverflowEvidence
   971  				}
   972  				if iNdEx >= l {
   973  					return io.ErrUnexpectedEOF
   974  				}
   975  				b := dAtA[iNdEx]
   976  				iNdEx++
   977  				m.ValidatorPower |= int64(b&0x7F) << shift
   978  				if b < 0x80 {
   979  					break
   980  				}
   981  			}
   982  		case 5:
   983  			if wireType != 2 {
   984  				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
   985  			}
   986  			var msglen int
   987  			for shift := uint(0); ; shift += 7 {
   988  				if shift >= 64 {
   989  					return ErrIntOverflowEvidence
   990  				}
   991  				if iNdEx >= l {
   992  					return io.ErrUnexpectedEOF
   993  				}
   994  				b := dAtA[iNdEx]
   995  				iNdEx++
   996  				msglen |= int(b&0x7F) << shift
   997  				if b < 0x80 {
   998  					break
   999  				}
  1000  			}
  1001  			if msglen < 0 {
  1002  				return ErrInvalidLengthEvidence
  1003  			}
  1004  			postIndex := iNdEx + msglen
  1005  			if postIndex < 0 {
  1006  				return ErrInvalidLengthEvidence
  1007  			}
  1008  			if postIndex > l {
  1009  				return io.ErrUnexpectedEOF
  1010  			}
  1011  			if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil {
  1012  				return err
  1013  			}
  1014  			iNdEx = postIndex
  1015  		default:
  1016  			iNdEx = preIndex
  1017  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1018  			if err != nil {
  1019  				return err
  1020  			}
  1021  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  1022  				return ErrInvalidLengthEvidence
  1023  			}
  1024  			if (iNdEx + skippy) > l {
  1025  				return io.ErrUnexpectedEOF
  1026  			}
  1027  			iNdEx += skippy
  1028  		}
  1029  	}
  1030  
  1031  	if iNdEx > l {
  1032  		return io.ErrUnexpectedEOF
  1033  	}
  1034  	return nil
  1035  }
  1036  func (m *LightClientAttackEvidence) Unmarshal(dAtA []byte) error {
  1037  	l := len(dAtA)
  1038  	iNdEx := 0
  1039  	for iNdEx < l {
  1040  		preIndex := iNdEx
  1041  		var wire uint64
  1042  		for shift := uint(0); ; shift += 7 {
  1043  			if shift >= 64 {
  1044  				return ErrIntOverflowEvidence
  1045  			}
  1046  			if iNdEx >= l {
  1047  				return io.ErrUnexpectedEOF
  1048  			}
  1049  			b := dAtA[iNdEx]
  1050  			iNdEx++
  1051  			wire |= uint64(b&0x7F) << shift
  1052  			if b < 0x80 {
  1053  				break
  1054  			}
  1055  		}
  1056  		fieldNum := int32(wire >> 3)
  1057  		wireType := int(wire & 0x7)
  1058  		if wireType == 4 {
  1059  			return fmt.Errorf("proto: LightClientAttackEvidence: wiretype end group for non-group")
  1060  		}
  1061  		if fieldNum <= 0 {
  1062  			return fmt.Errorf("proto: LightClientAttackEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  1063  		}
  1064  		switch fieldNum {
  1065  		case 1:
  1066  			if wireType != 2 {
  1067  				return fmt.Errorf("proto: wrong wireType = %d for field ConflictingBlock", wireType)
  1068  			}
  1069  			var msglen int
  1070  			for shift := uint(0); ; shift += 7 {
  1071  				if shift >= 64 {
  1072  					return ErrIntOverflowEvidence
  1073  				}
  1074  				if iNdEx >= l {
  1075  					return io.ErrUnexpectedEOF
  1076  				}
  1077  				b := dAtA[iNdEx]
  1078  				iNdEx++
  1079  				msglen |= int(b&0x7F) << shift
  1080  				if b < 0x80 {
  1081  					break
  1082  				}
  1083  			}
  1084  			if msglen < 0 {
  1085  				return ErrInvalidLengthEvidence
  1086  			}
  1087  			postIndex := iNdEx + msglen
  1088  			if postIndex < 0 {
  1089  				return ErrInvalidLengthEvidence
  1090  			}
  1091  			if postIndex > l {
  1092  				return io.ErrUnexpectedEOF
  1093  			}
  1094  			if m.ConflictingBlock == nil {
  1095  				m.ConflictingBlock = &LightBlock{}
  1096  			}
  1097  			if err := m.ConflictingBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1098  				return err
  1099  			}
  1100  			iNdEx = postIndex
  1101  		case 2:
  1102  			if wireType != 0 {
  1103  				return fmt.Errorf("proto: wrong wireType = %d for field CommonHeight", wireType)
  1104  			}
  1105  			m.CommonHeight = 0
  1106  			for shift := uint(0); ; shift += 7 {
  1107  				if shift >= 64 {
  1108  					return ErrIntOverflowEvidence
  1109  				}
  1110  				if iNdEx >= l {
  1111  					return io.ErrUnexpectedEOF
  1112  				}
  1113  				b := dAtA[iNdEx]
  1114  				iNdEx++
  1115  				m.CommonHeight |= int64(b&0x7F) << shift
  1116  				if b < 0x80 {
  1117  					break
  1118  				}
  1119  			}
  1120  		case 3:
  1121  			if wireType != 2 {
  1122  				return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType)
  1123  			}
  1124  			var msglen int
  1125  			for shift := uint(0); ; shift += 7 {
  1126  				if shift >= 64 {
  1127  					return ErrIntOverflowEvidence
  1128  				}
  1129  				if iNdEx >= l {
  1130  					return io.ErrUnexpectedEOF
  1131  				}
  1132  				b := dAtA[iNdEx]
  1133  				iNdEx++
  1134  				msglen |= int(b&0x7F) << shift
  1135  				if b < 0x80 {
  1136  					break
  1137  				}
  1138  			}
  1139  			if msglen < 0 {
  1140  				return ErrInvalidLengthEvidence
  1141  			}
  1142  			postIndex := iNdEx + msglen
  1143  			if postIndex < 0 {
  1144  				return ErrInvalidLengthEvidence
  1145  			}
  1146  			if postIndex > l {
  1147  				return io.ErrUnexpectedEOF
  1148  			}
  1149  			m.ByzantineValidators = append(m.ByzantineValidators, &Validator{})
  1150  			if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1151  				return err
  1152  			}
  1153  			iNdEx = postIndex
  1154  		case 4:
  1155  			if wireType != 0 {
  1156  				return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType)
  1157  			}
  1158  			m.TotalVotingPower = 0
  1159  			for shift := uint(0); ; shift += 7 {
  1160  				if shift >= 64 {
  1161  					return ErrIntOverflowEvidence
  1162  				}
  1163  				if iNdEx >= l {
  1164  					return io.ErrUnexpectedEOF
  1165  				}
  1166  				b := dAtA[iNdEx]
  1167  				iNdEx++
  1168  				m.TotalVotingPower |= int64(b&0x7F) << shift
  1169  				if b < 0x80 {
  1170  					break
  1171  				}
  1172  			}
  1173  		case 5:
  1174  			if wireType != 2 {
  1175  				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
  1176  			}
  1177  			var msglen int
  1178  			for shift := uint(0); ; shift += 7 {
  1179  				if shift >= 64 {
  1180  					return ErrIntOverflowEvidence
  1181  				}
  1182  				if iNdEx >= l {
  1183  					return io.ErrUnexpectedEOF
  1184  				}
  1185  				b := dAtA[iNdEx]
  1186  				iNdEx++
  1187  				msglen |= int(b&0x7F) << shift
  1188  				if b < 0x80 {
  1189  					break
  1190  				}
  1191  			}
  1192  			if msglen < 0 {
  1193  				return ErrInvalidLengthEvidence
  1194  			}
  1195  			postIndex := iNdEx + msglen
  1196  			if postIndex < 0 {
  1197  				return ErrInvalidLengthEvidence
  1198  			}
  1199  			if postIndex > l {
  1200  				return io.ErrUnexpectedEOF
  1201  			}
  1202  			if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Timestamp, dAtA[iNdEx:postIndex]); err != nil {
  1203  				return err
  1204  			}
  1205  			iNdEx = postIndex
  1206  		default:
  1207  			iNdEx = preIndex
  1208  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1209  			if err != nil {
  1210  				return err
  1211  			}
  1212  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  1213  				return ErrInvalidLengthEvidence
  1214  			}
  1215  			if (iNdEx + skippy) > l {
  1216  				return io.ErrUnexpectedEOF
  1217  			}
  1218  			iNdEx += skippy
  1219  		}
  1220  	}
  1221  
  1222  	if iNdEx > l {
  1223  		return io.ErrUnexpectedEOF
  1224  	}
  1225  	return nil
  1226  }
  1227  func (m *EvidenceList) Unmarshal(dAtA []byte) error {
  1228  	l := len(dAtA)
  1229  	iNdEx := 0
  1230  	for iNdEx < l {
  1231  		preIndex := iNdEx
  1232  		var wire uint64
  1233  		for shift := uint(0); ; shift += 7 {
  1234  			if shift >= 64 {
  1235  				return ErrIntOverflowEvidence
  1236  			}
  1237  			if iNdEx >= l {
  1238  				return io.ErrUnexpectedEOF
  1239  			}
  1240  			b := dAtA[iNdEx]
  1241  			iNdEx++
  1242  			wire |= uint64(b&0x7F) << shift
  1243  			if b < 0x80 {
  1244  				break
  1245  			}
  1246  		}
  1247  		fieldNum := int32(wire >> 3)
  1248  		wireType := int(wire & 0x7)
  1249  		if wireType == 4 {
  1250  			return fmt.Errorf("proto: EvidenceList: wiretype end group for non-group")
  1251  		}
  1252  		if fieldNum <= 0 {
  1253  			return fmt.Errorf("proto: EvidenceList: illegal tag %d (wire type %d)", fieldNum, wire)
  1254  		}
  1255  		switch fieldNum {
  1256  		case 1:
  1257  			if wireType != 2 {
  1258  				return fmt.Errorf("proto: wrong wireType = %d for field Evidence", wireType)
  1259  			}
  1260  			var msglen int
  1261  			for shift := uint(0); ; shift += 7 {
  1262  				if shift >= 64 {
  1263  					return ErrIntOverflowEvidence
  1264  				}
  1265  				if iNdEx >= l {
  1266  					return io.ErrUnexpectedEOF
  1267  				}
  1268  				b := dAtA[iNdEx]
  1269  				iNdEx++
  1270  				msglen |= int(b&0x7F) << shift
  1271  				if b < 0x80 {
  1272  					break
  1273  				}
  1274  			}
  1275  			if msglen < 0 {
  1276  				return ErrInvalidLengthEvidence
  1277  			}
  1278  			postIndex := iNdEx + msglen
  1279  			if postIndex < 0 {
  1280  				return ErrInvalidLengthEvidence
  1281  			}
  1282  			if postIndex > l {
  1283  				return io.ErrUnexpectedEOF
  1284  			}
  1285  			m.Evidence = append(m.Evidence, Evidence{})
  1286  			if err := m.Evidence[len(m.Evidence)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1287  				return err
  1288  			}
  1289  			iNdEx = postIndex
  1290  		default:
  1291  			iNdEx = preIndex
  1292  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1293  			if err != nil {
  1294  				return err
  1295  			}
  1296  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  1297  				return ErrInvalidLengthEvidence
  1298  			}
  1299  			if (iNdEx + skippy) > l {
  1300  				return io.ErrUnexpectedEOF
  1301  			}
  1302  			iNdEx += skippy
  1303  		}
  1304  	}
  1305  
  1306  	if iNdEx > l {
  1307  		return io.ErrUnexpectedEOF
  1308  	}
  1309  	return nil
  1310  }
  1311  func skipEvidence(dAtA []byte) (n int, err error) {
  1312  	l := len(dAtA)
  1313  	iNdEx := 0
  1314  	depth := 0
  1315  	for iNdEx < l {
  1316  		var wire uint64
  1317  		for shift := uint(0); ; shift += 7 {
  1318  			if shift >= 64 {
  1319  				return 0, ErrIntOverflowEvidence
  1320  			}
  1321  			if iNdEx >= l {
  1322  				return 0, io.ErrUnexpectedEOF
  1323  			}
  1324  			b := dAtA[iNdEx]
  1325  			iNdEx++
  1326  			wire |= (uint64(b) & 0x7F) << shift
  1327  			if b < 0x80 {
  1328  				break
  1329  			}
  1330  		}
  1331  		wireType := int(wire & 0x7)
  1332  		switch wireType {
  1333  		case 0:
  1334  			for shift := uint(0); ; shift += 7 {
  1335  				if shift >= 64 {
  1336  					return 0, ErrIntOverflowEvidence
  1337  				}
  1338  				if iNdEx >= l {
  1339  					return 0, io.ErrUnexpectedEOF
  1340  				}
  1341  				iNdEx++
  1342  				if dAtA[iNdEx-1] < 0x80 {
  1343  					break
  1344  				}
  1345  			}
  1346  		case 1:
  1347  			iNdEx += 8
  1348  		case 2:
  1349  			var length int
  1350  			for shift := uint(0); ; shift += 7 {
  1351  				if shift >= 64 {
  1352  					return 0, ErrIntOverflowEvidence
  1353  				}
  1354  				if iNdEx >= l {
  1355  					return 0, io.ErrUnexpectedEOF
  1356  				}
  1357  				b := dAtA[iNdEx]
  1358  				iNdEx++
  1359  				length |= (int(b) & 0x7F) << shift
  1360  				if b < 0x80 {
  1361  					break
  1362  				}
  1363  			}
  1364  			if length < 0 {
  1365  				return 0, ErrInvalidLengthEvidence
  1366  			}
  1367  			iNdEx += length
  1368  		case 3:
  1369  			depth++
  1370  		case 4:
  1371  			if depth == 0 {
  1372  				return 0, ErrUnexpectedEndOfGroupEvidence
  1373  			}
  1374  			depth--
  1375  		case 5:
  1376  			iNdEx += 4
  1377  		default:
  1378  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  1379  		}
  1380  		if iNdEx < 0 {
  1381  			return 0, ErrInvalidLengthEvidence
  1382  		}
  1383  		if depth == 0 {
  1384  			return iNdEx, nil
  1385  		}
  1386  	}
  1387  	return 0, io.ErrUnexpectedEOF
  1388  }
  1389  
  1390  var (
  1391  	ErrInvalidLengthEvidence        = fmt.Errorf("proto: negative length found during unmarshaling")
  1392  	ErrIntOverflowEvidence          = fmt.Errorf("proto: integer overflow")
  1393  	ErrUnexpectedEndOfGroupEvidence = fmt.Errorf("proto: unexpected end of group")
  1394  )