github.com/noirx94/tendermintmp@v0.0.1/proto/tendermint/crypto/proof.pb.go (about)

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