github.com/evdatsion/aphelion-dpos-bft@v0.32.1/crypto/merkle/merkle.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: crypto/merkle/merkle.proto
     3  
     4  package merkle
     5  
     6  import proto "github.com/gogo/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import _ "github.com/gogo/protobuf/gogoproto"
    10  
    11  import bytes "bytes"
    12  
    13  import io "io"
    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.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    25  
    26  // ProofOp defines an operation used for calculating Merkle root
    27  // The data could be arbitrary format, providing nessecary data
    28  // for example neighbouring node hash
    29  type ProofOp struct {
    30  	Type                 string   `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
    31  	Key                  []byte   `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
    32  	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
    33  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
    34  	XXX_unrecognized     []byte   `json:"-"`
    35  	XXX_sizecache        int32    `json:"-"`
    36  }
    37  
    38  func (m *ProofOp) Reset()         { *m = ProofOp{} }
    39  func (m *ProofOp) String() string { return proto.CompactTextString(m) }
    40  func (*ProofOp) ProtoMessage()    {}
    41  func (*ProofOp) Descriptor() ([]byte, []int) {
    42  	return fileDescriptor_merkle_24be8bc4e405ac66, []int{0}
    43  }
    44  func (m *ProofOp) XXX_Unmarshal(b []byte) error {
    45  	return m.Unmarshal(b)
    46  }
    47  func (m *ProofOp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    48  	if deterministic {
    49  		return xxx_messageInfo_ProofOp.Marshal(b, m, deterministic)
    50  	} else {
    51  		b = b[:cap(b)]
    52  		n, err := m.MarshalTo(b)
    53  		if err != nil {
    54  			return nil, err
    55  		}
    56  		return b[:n], nil
    57  	}
    58  }
    59  func (dst *ProofOp) XXX_Merge(src proto.Message) {
    60  	xxx_messageInfo_ProofOp.Merge(dst, src)
    61  }
    62  func (m *ProofOp) XXX_Size() int {
    63  	return m.Size()
    64  }
    65  func (m *ProofOp) XXX_DiscardUnknown() {
    66  	xxx_messageInfo_ProofOp.DiscardUnknown(m)
    67  }
    68  
    69  var xxx_messageInfo_ProofOp proto.InternalMessageInfo
    70  
    71  func (m *ProofOp) GetType() string {
    72  	if m != nil {
    73  		return m.Type
    74  	}
    75  	return ""
    76  }
    77  
    78  func (m *ProofOp) GetKey() []byte {
    79  	if m != nil {
    80  		return m.Key
    81  	}
    82  	return nil
    83  }
    84  
    85  func (m *ProofOp) GetData() []byte {
    86  	if m != nil {
    87  		return m.Data
    88  	}
    89  	return nil
    90  }
    91  
    92  // Proof is Merkle proof defined by the list of ProofOps
    93  type Proof struct {
    94  	Ops                  []ProofOp `protobuf:"bytes,1,rep,name=ops" json:"ops"`
    95  	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
    96  	XXX_unrecognized     []byte    `json:"-"`
    97  	XXX_sizecache        int32     `json:"-"`
    98  }
    99  
   100  func (m *Proof) Reset()         { *m = Proof{} }
   101  func (m *Proof) String() string { return proto.CompactTextString(m) }
   102  func (*Proof) ProtoMessage()    {}
   103  func (*Proof) Descriptor() ([]byte, []int) {
   104  	return fileDescriptor_merkle_24be8bc4e405ac66, []int{1}
   105  }
   106  func (m *Proof) XXX_Unmarshal(b []byte) error {
   107  	return m.Unmarshal(b)
   108  }
   109  func (m *Proof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   110  	if deterministic {
   111  		return xxx_messageInfo_Proof.Marshal(b, m, deterministic)
   112  	} else {
   113  		b = b[:cap(b)]
   114  		n, err := m.MarshalTo(b)
   115  		if err != nil {
   116  			return nil, err
   117  		}
   118  		return b[:n], nil
   119  	}
   120  }
   121  func (dst *Proof) XXX_Merge(src proto.Message) {
   122  	xxx_messageInfo_Proof.Merge(dst, src)
   123  }
   124  func (m *Proof) XXX_Size() int {
   125  	return m.Size()
   126  }
   127  func (m *Proof) XXX_DiscardUnknown() {
   128  	xxx_messageInfo_Proof.DiscardUnknown(m)
   129  }
   130  
   131  var xxx_messageInfo_Proof proto.InternalMessageInfo
   132  
   133  func (m *Proof) GetOps() []ProofOp {
   134  	if m != nil {
   135  		return m.Ops
   136  	}
   137  	return nil
   138  }
   139  
   140  func init() {
   141  	proto.RegisterType((*ProofOp)(nil), "merkle.ProofOp")
   142  	proto.RegisterType((*Proof)(nil), "merkle.Proof")
   143  }
   144  func (this *ProofOp) Equal(that interface{}) bool {
   145  	if that == nil {
   146  		return this == nil
   147  	}
   148  
   149  	that1, ok := that.(*ProofOp)
   150  	if !ok {
   151  		that2, ok := that.(ProofOp)
   152  		if ok {
   153  			that1 = &that2
   154  		} else {
   155  			return false
   156  		}
   157  	}
   158  	if that1 == nil {
   159  		return this == nil
   160  	} else if this == nil {
   161  		return false
   162  	}
   163  	if this.Type != that1.Type {
   164  		return false
   165  	}
   166  	if !bytes.Equal(this.Key, that1.Key) {
   167  		return false
   168  	}
   169  	if !bytes.Equal(this.Data, that1.Data) {
   170  		return false
   171  	}
   172  	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
   173  		return false
   174  	}
   175  	return true
   176  }
   177  func (this *Proof) Equal(that interface{}) bool {
   178  	if that == nil {
   179  		return this == nil
   180  	}
   181  
   182  	that1, ok := that.(*Proof)
   183  	if !ok {
   184  		that2, ok := that.(Proof)
   185  		if ok {
   186  			that1 = &that2
   187  		} else {
   188  			return false
   189  		}
   190  	}
   191  	if that1 == nil {
   192  		return this == nil
   193  	} else if this == nil {
   194  		return false
   195  	}
   196  	if len(this.Ops) != len(that1.Ops) {
   197  		return false
   198  	}
   199  	for i := range this.Ops {
   200  		if !this.Ops[i].Equal(&that1.Ops[i]) {
   201  			return false
   202  		}
   203  	}
   204  	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
   205  		return false
   206  	}
   207  	return true
   208  }
   209  func (m *ProofOp) Marshal() (dAtA []byte, err error) {
   210  	size := m.Size()
   211  	dAtA = make([]byte, size)
   212  	n, err := m.MarshalTo(dAtA)
   213  	if err != nil {
   214  		return nil, err
   215  	}
   216  	return dAtA[:n], nil
   217  }
   218  
   219  func (m *ProofOp) MarshalTo(dAtA []byte) (int, error) {
   220  	var i int
   221  	_ = i
   222  	var l int
   223  	_ = l
   224  	if len(m.Type) > 0 {
   225  		dAtA[i] = 0xa
   226  		i++
   227  		i = encodeVarintMerkle(dAtA, i, uint64(len(m.Type)))
   228  		i += copy(dAtA[i:], m.Type)
   229  	}
   230  	if len(m.Key) > 0 {
   231  		dAtA[i] = 0x12
   232  		i++
   233  		i = encodeVarintMerkle(dAtA, i, uint64(len(m.Key)))
   234  		i += copy(dAtA[i:], m.Key)
   235  	}
   236  	if len(m.Data) > 0 {
   237  		dAtA[i] = 0x1a
   238  		i++
   239  		i = encodeVarintMerkle(dAtA, i, uint64(len(m.Data)))
   240  		i += copy(dAtA[i:], m.Data)
   241  	}
   242  	if m.XXX_unrecognized != nil {
   243  		i += copy(dAtA[i:], m.XXX_unrecognized)
   244  	}
   245  	return i, nil
   246  }
   247  
   248  func (m *Proof) Marshal() (dAtA []byte, err error) {
   249  	size := m.Size()
   250  	dAtA = make([]byte, size)
   251  	n, err := m.MarshalTo(dAtA)
   252  	if err != nil {
   253  		return nil, err
   254  	}
   255  	return dAtA[:n], nil
   256  }
   257  
   258  func (m *Proof) MarshalTo(dAtA []byte) (int, error) {
   259  	var i int
   260  	_ = i
   261  	var l int
   262  	_ = l
   263  	if len(m.Ops) > 0 {
   264  		for _, msg := range m.Ops {
   265  			dAtA[i] = 0xa
   266  			i++
   267  			i = encodeVarintMerkle(dAtA, i, uint64(msg.Size()))
   268  			n, err := msg.MarshalTo(dAtA[i:])
   269  			if err != nil {
   270  				return 0, err
   271  			}
   272  			i += n
   273  		}
   274  	}
   275  	if m.XXX_unrecognized != nil {
   276  		i += copy(dAtA[i:], m.XXX_unrecognized)
   277  	}
   278  	return i, nil
   279  }
   280  
   281  func encodeVarintMerkle(dAtA []byte, offset int, v uint64) int {
   282  	for v >= 1<<7 {
   283  		dAtA[offset] = uint8(v&0x7f | 0x80)
   284  		v >>= 7
   285  		offset++
   286  	}
   287  	dAtA[offset] = uint8(v)
   288  	return offset + 1
   289  }
   290  func NewPopulatedProofOp(r randyMerkle, easy bool) *ProofOp {
   291  	this := &ProofOp{}
   292  	this.Type = string(randStringMerkle(r))
   293  	v1 := r.Intn(100)
   294  	this.Key = make([]byte, v1)
   295  	for i := 0; i < v1; i++ {
   296  		this.Key[i] = byte(r.Intn(256))
   297  	}
   298  	v2 := r.Intn(100)
   299  	this.Data = make([]byte, v2)
   300  	for i := 0; i < v2; i++ {
   301  		this.Data[i] = byte(r.Intn(256))
   302  	}
   303  	if !easy && r.Intn(10) != 0 {
   304  		this.XXX_unrecognized = randUnrecognizedMerkle(r, 4)
   305  	}
   306  	return this
   307  }
   308  
   309  func NewPopulatedProof(r randyMerkle, easy bool) *Proof {
   310  	this := &Proof{}
   311  	if r.Intn(10) != 0 {
   312  		v3 := r.Intn(5)
   313  		this.Ops = make([]ProofOp, v3)
   314  		for i := 0; i < v3; i++ {
   315  			v4 := NewPopulatedProofOp(r, easy)
   316  			this.Ops[i] = *v4
   317  		}
   318  	}
   319  	if !easy && r.Intn(10) != 0 {
   320  		this.XXX_unrecognized = randUnrecognizedMerkle(r, 2)
   321  	}
   322  	return this
   323  }
   324  
   325  type randyMerkle interface {
   326  	Float32() float32
   327  	Float64() float64
   328  	Int63() int64
   329  	Int31() int32
   330  	Uint32() uint32
   331  	Intn(n int) int
   332  }
   333  
   334  func randUTF8RuneMerkle(r randyMerkle) rune {
   335  	ru := r.Intn(62)
   336  	if ru < 10 {
   337  		return rune(ru + 48)
   338  	} else if ru < 36 {
   339  		return rune(ru + 55)
   340  	}
   341  	return rune(ru + 61)
   342  }
   343  func randStringMerkle(r randyMerkle) string {
   344  	v5 := r.Intn(100)
   345  	tmps := make([]rune, v5)
   346  	for i := 0; i < v5; i++ {
   347  		tmps[i] = randUTF8RuneMerkle(r)
   348  	}
   349  	return string(tmps)
   350  }
   351  func randUnrecognizedMerkle(r randyMerkle, maxFieldNumber int) (dAtA []byte) {
   352  	l := r.Intn(5)
   353  	for i := 0; i < l; i++ {
   354  		wire := r.Intn(4)
   355  		if wire == 3 {
   356  			wire = 5
   357  		}
   358  		fieldNumber := maxFieldNumber + r.Intn(100)
   359  		dAtA = randFieldMerkle(dAtA, r, fieldNumber, wire)
   360  	}
   361  	return dAtA
   362  }
   363  func randFieldMerkle(dAtA []byte, r randyMerkle, fieldNumber int, wire int) []byte {
   364  	key := uint32(fieldNumber)<<3 | uint32(wire)
   365  	switch wire {
   366  	case 0:
   367  		dAtA = encodeVarintPopulateMerkle(dAtA, uint64(key))
   368  		v6 := r.Int63()
   369  		if r.Intn(2) == 0 {
   370  			v6 *= -1
   371  		}
   372  		dAtA = encodeVarintPopulateMerkle(dAtA, uint64(v6))
   373  	case 1:
   374  		dAtA = encodeVarintPopulateMerkle(dAtA, uint64(key))
   375  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
   376  	case 2:
   377  		dAtA = encodeVarintPopulateMerkle(dAtA, uint64(key))
   378  		ll := r.Intn(100)
   379  		dAtA = encodeVarintPopulateMerkle(dAtA, uint64(ll))
   380  		for j := 0; j < ll; j++ {
   381  			dAtA = append(dAtA, byte(r.Intn(256)))
   382  		}
   383  	default:
   384  		dAtA = encodeVarintPopulateMerkle(dAtA, uint64(key))
   385  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
   386  	}
   387  	return dAtA
   388  }
   389  func encodeVarintPopulateMerkle(dAtA []byte, v uint64) []byte {
   390  	for v >= 1<<7 {
   391  		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
   392  		v >>= 7
   393  	}
   394  	dAtA = append(dAtA, uint8(v))
   395  	return dAtA
   396  }
   397  func (m *ProofOp) Size() (n int) {
   398  	if m == nil {
   399  		return 0
   400  	}
   401  	var l int
   402  	_ = l
   403  	l = len(m.Type)
   404  	if l > 0 {
   405  		n += 1 + l + sovMerkle(uint64(l))
   406  	}
   407  	l = len(m.Key)
   408  	if l > 0 {
   409  		n += 1 + l + sovMerkle(uint64(l))
   410  	}
   411  	l = len(m.Data)
   412  	if l > 0 {
   413  		n += 1 + l + sovMerkle(uint64(l))
   414  	}
   415  	if m.XXX_unrecognized != nil {
   416  		n += len(m.XXX_unrecognized)
   417  	}
   418  	return n
   419  }
   420  
   421  func (m *Proof) Size() (n int) {
   422  	if m == nil {
   423  		return 0
   424  	}
   425  	var l int
   426  	_ = l
   427  	if len(m.Ops) > 0 {
   428  		for _, e := range m.Ops {
   429  			l = e.Size()
   430  			n += 1 + l + sovMerkle(uint64(l))
   431  		}
   432  	}
   433  	if m.XXX_unrecognized != nil {
   434  		n += len(m.XXX_unrecognized)
   435  	}
   436  	return n
   437  }
   438  
   439  func sovMerkle(x uint64) (n int) {
   440  	for {
   441  		n++
   442  		x >>= 7
   443  		if x == 0 {
   444  			break
   445  		}
   446  	}
   447  	return n
   448  }
   449  func sozMerkle(x uint64) (n int) {
   450  	return sovMerkle(uint64((x << 1) ^ uint64((int64(x) >> 63))))
   451  }
   452  func (m *ProofOp) Unmarshal(dAtA []byte) error {
   453  	l := len(dAtA)
   454  	iNdEx := 0
   455  	for iNdEx < l {
   456  		preIndex := iNdEx
   457  		var wire uint64
   458  		for shift := uint(0); ; shift += 7 {
   459  			if shift >= 64 {
   460  				return ErrIntOverflowMerkle
   461  			}
   462  			if iNdEx >= l {
   463  				return io.ErrUnexpectedEOF
   464  			}
   465  			b := dAtA[iNdEx]
   466  			iNdEx++
   467  			wire |= (uint64(b) & 0x7F) << shift
   468  			if b < 0x80 {
   469  				break
   470  			}
   471  		}
   472  		fieldNum := int32(wire >> 3)
   473  		wireType := int(wire & 0x7)
   474  		if wireType == 4 {
   475  			return fmt.Errorf("proto: ProofOp: wiretype end group for non-group")
   476  		}
   477  		if fieldNum <= 0 {
   478  			return fmt.Errorf("proto: ProofOp: illegal tag %d (wire type %d)", fieldNum, wire)
   479  		}
   480  		switch fieldNum {
   481  		case 1:
   482  			if wireType != 2 {
   483  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
   484  			}
   485  			var stringLen uint64
   486  			for shift := uint(0); ; shift += 7 {
   487  				if shift >= 64 {
   488  					return ErrIntOverflowMerkle
   489  				}
   490  				if iNdEx >= l {
   491  					return io.ErrUnexpectedEOF
   492  				}
   493  				b := dAtA[iNdEx]
   494  				iNdEx++
   495  				stringLen |= (uint64(b) & 0x7F) << shift
   496  				if b < 0x80 {
   497  					break
   498  				}
   499  			}
   500  			intStringLen := int(stringLen)
   501  			if intStringLen < 0 {
   502  				return ErrInvalidLengthMerkle
   503  			}
   504  			postIndex := iNdEx + intStringLen
   505  			if postIndex > l {
   506  				return io.ErrUnexpectedEOF
   507  			}
   508  			m.Type = string(dAtA[iNdEx:postIndex])
   509  			iNdEx = postIndex
   510  		case 2:
   511  			if wireType != 2 {
   512  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
   513  			}
   514  			var byteLen int
   515  			for shift := uint(0); ; shift += 7 {
   516  				if shift >= 64 {
   517  					return ErrIntOverflowMerkle
   518  				}
   519  				if iNdEx >= l {
   520  					return io.ErrUnexpectedEOF
   521  				}
   522  				b := dAtA[iNdEx]
   523  				iNdEx++
   524  				byteLen |= (int(b) & 0x7F) << shift
   525  				if b < 0x80 {
   526  					break
   527  				}
   528  			}
   529  			if byteLen < 0 {
   530  				return ErrInvalidLengthMerkle
   531  			}
   532  			postIndex := iNdEx + byteLen
   533  			if postIndex > l {
   534  				return io.ErrUnexpectedEOF
   535  			}
   536  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
   537  			if m.Key == nil {
   538  				m.Key = []byte{}
   539  			}
   540  			iNdEx = postIndex
   541  		case 3:
   542  			if wireType != 2 {
   543  				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
   544  			}
   545  			var byteLen int
   546  			for shift := uint(0); ; shift += 7 {
   547  				if shift >= 64 {
   548  					return ErrIntOverflowMerkle
   549  				}
   550  				if iNdEx >= l {
   551  					return io.ErrUnexpectedEOF
   552  				}
   553  				b := dAtA[iNdEx]
   554  				iNdEx++
   555  				byteLen |= (int(b) & 0x7F) << shift
   556  				if b < 0x80 {
   557  					break
   558  				}
   559  			}
   560  			if byteLen < 0 {
   561  				return ErrInvalidLengthMerkle
   562  			}
   563  			postIndex := iNdEx + byteLen
   564  			if postIndex > l {
   565  				return io.ErrUnexpectedEOF
   566  			}
   567  			m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)
   568  			if m.Data == nil {
   569  				m.Data = []byte{}
   570  			}
   571  			iNdEx = postIndex
   572  		default:
   573  			iNdEx = preIndex
   574  			skippy, err := skipMerkle(dAtA[iNdEx:])
   575  			if err != nil {
   576  				return err
   577  			}
   578  			if skippy < 0 {
   579  				return ErrInvalidLengthMerkle
   580  			}
   581  			if (iNdEx + skippy) > l {
   582  				return io.ErrUnexpectedEOF
   583  			}
   584  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
   585  			iNdEx += skippy
   586  		}
   587  	}
   588  
   589  	if iNdEx > l {
   590  		return io.ErrUnexpectedEOF
   591  	}
   592  	return nil
   593  }
   594  func (m *Proof) Unmarshal(dAtA []byte) error {
   595  	l := len(dAtA)
   596  	iNdEx := 0
   597  	for iNdEx < l {
   598  		preIndex := iNdEx
   599  		var wire uint64
   600  		for shift := uint(0); ; shift += 7 {
   601  			if shift >= 64 {
   602  				return ErrIntOverflowMerkle
   603  			}
   604  			if iNdEx >= l {
   605  				return io.ErrUnexpectedEOF
   606  			}
   607  			b := dAtA[iNdEx]
   608  			iNdEx++
   609  			wire |= (uint64(b) & 0x7F) << shift
   610  			if b < 0x80 {
   611  				break
   612  			}
   613  		}
   614  		fieldNum := int32(wire >> 3)
   615  		wireType := int(wire & 0x7)
   616  		if wireType == 4 {
   617  			return fmt.Errorf("proto: Proof: wiretype end group for non-group")
   618  		}
   619  		if fieldNum <= 0 {
   620  			return fmt.Errorf("proto: Proof: illegal tag %d (wire type %d)", fieldNum, wire)
   621  		}
   622  		switch fieldNum {
   623  		case 1:
   624  			if wireType != 2 {
   625  				return fmt.Errorf("proto: wrong wireType = %d for field Ops", wireType)
   626  			}
   627  			var msglen int
   628  			for shift := uint(0); ; shift += 7 {
   629  				if shift >= 64 {
   630  					return ErrIntOverflowMerkle
   631  				}
   632  				if iNdEx >= l {
   633  					return io.ErrUnexpectedEOF
   634  				}
   635  				b := dAtA[iNdEx]
   636  				iNdEx++
   637  				msglen |= (int(b) & 0x7F) << shift
   638  				if b < 0x80 {
   639  					break
   640  				}
   641  			}
   642  			if msglen < 0 {
   643  				return ErrInvalidLengthMerkle
   644  			}
   645  			postIndex := iNdEx + msglen
   646  			if postIndex > l {
   647  				return io.ErrUnexpectedEOF
   648  			}
   649  			m.Ops = append(m.Ops, ProofOp{})
   650  			if err := m.Ops[len(m.Ops)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   651  				return err
   652  			}
   653  			iNdEx = postIndex
   654  		default:
   655  			iNdEx = preIndex
   656  			skippy, err := skipMerkle(dAtA[iNdEx:])
   657  			if err != nil {
   658  				return err
   659  			}
   660  			if skippy < 0 {
   661  				return ErrInvalidLengthMerkle
   662  			}
   663  			if (iNdEx + skippy) > l {
   664  				return io.ErrUnexpectedEOF
   665  			}
   666  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
   667  			iNdEx += skippy
   668  		}
   669  	}
   670  
   671  	if iNdEx > l {
   672  		return io.ErrUnexpectedEOF
   673  	}
   674  	return nil
   675  }
   676  func skipMerkle(dAtA []byte) (n int, err error) {
   677  	l := len(dAtA)
   678  	iNdEx := 0
   679  	for iNdEx < l {
   680  		var wire uint64
   681  		for shift := uint(0); ; shift += 7 {
   682  			if shift >= 64 {
   683  				return 0, ErrIntOverflowMerkle
   684  			}
   685  			if iNdEx >= l {
   686  				return 0, io.ErrUnexpectedEOF
   687  			}
   688  			b := dAtA[iNdEx]
   689  			iNdEx++
   690  			wire |= (uint64(b) & 0x7F) << shift
   691  			if b < 0x80 {
   692  				break
   693  			}
   694  		}
   695  		wireType := int(wire & 0x7)
   696  		switch wireType {
   697  		case 0:
   698  			for shift := uint(0); ; shift += 7 {
   699  				if shift >= 64 {
   700  					return 0, ErrIntOverflowMerkle
   701  				}
   702  				if iNdEx >= l {
   703  					return 0, io.ErrUnexpectedEOF
   704  				}
   705  				iNdEx++
   706  				if dAtA[iNdEx-1] < 0x80 {
   707  					break
   708  				}
   709  			}
   710  			return iNdEx, nil
   711  		case 1:
   712  			iNdEx += 8
   713  			return iNdEx, nil
   714  		case 2:
   715  			var length int
   716  			for shift := uint(0); ; shift += 7 {
   717  				if shift >= 64 {
   718  					return 0, ErrIntOverflowMerkle
   719  				}
   720  				if iNdEx >= l {
   721  					return 0, io.ErrUnexpectedEOF
   722  				}
   723  				b := dAtA[iNdEx]
   724  				iNdEx++
   725  				length |= (int(b) & 0x7F) << shift
   726  				if b < 0x80 {
   727  					break
   728  				}
   729  			}
   730  			iNdEx += length
   731  			if length < 0 {
   732  				return 0, ErrInvalidLengthMerkle
   733  			}
   734  			return iNdEx, nil
   735  		case 3:
   736  			for {
   737  				var innerWire uint64
   738  				var start int = iNdEx
   739  				for shift := uint(0); ; shift += 7 {
   740  					if shift >= 64 {
   741  						return 0, ErrIntOverflowMerkle
   742  					}
   743  					if iNdEx >= l {
   744  						return 0, io.ErrUnexpectedEOF
   745  					}
   746  					b := dAtA[iNdEx]
   747  					iNdEx++
   748  					innerWire |= (uint64(b) & 0x7F) << shift
   749  					if b < 0x80 {
   750  						break
   751  					}
   752  				}
   753  				innerWireType := int(innerWire & 0x7)
   754  				if innerWireType == 4 {
   755  					break
   756  				}
   757  				next, err := skipMerkle(dAtA[start:])
   758  				if err != nil {
   759  					return 0, err
   760  				}
   761  				iNdEx = start + next
   762  			}
   763  			return iNdEx, nil
   764  		case 4:
   765  			return iNdEx, nil
   766  		case 5:
   767  			iNdEx += 4
   768  			return iNdEx, nil
   769  		default:
   770  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
   771  		}
   772  	}
   773  	panic("unreachable")
   774  }
   775  
   776  var (
   777  	ErrInvalidLengthMerkle = fmt.Errorf("proto: negative length found during unmarshaling")
   778  	ErrIntOverflowMerkle   = fmt.Errorf("proto: integer overflow")
   779  )
   780  
   781  func init() { proto.RegisterFile("crypto/merkle/merkle.proto", fileDescriptor_merkle_24be8bc4e405ac66) }
   782  
   783  var fileDescriptor_merkle_24be8bc4e405ac66 = []byte{
   784  	// 200 bytes of a gzipped FileDescriptorProto
   785  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4a, 0x2e, 0xaa, 0x2c,
   786  	0x28, 0xc9, 0xd7, 0xcf, 0x4d, 0x2d, 0xca, 0xce, 0x49, 0x85, 0x52, 0x7a, 0x05, 0x45, 0xf9, 0x25,
   787  	0xf9, 0x42, 0x6c, 0x10, 0x9e, 0x94, 0x6e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e,
   788  	0xae, 0x7e, 0x7a, 0x7e, 0x7a, 0xbe, 0x3e, 0x58, 0x3a, 0xa9, 0x34, 0x0d, 0xcc, 0x03, 0x73, 0xc0,
   789  	0x2c, 0x88, 0x36, 0x25, 0x67, 0x2e, 0xf6, 0x80, 0xa2, 0xfc, 0xfc, 0x34, 0xff, 0x02, 0x21, 0x21,
   790  	0x2e, 0x96, 0x92, 0xca, 0x82, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x30, 0x5b, 0x48,
   791  	0x80, 0x8b, 0x39, 0x3b, 0xb5, 0x52, 0x82, 0x49, 0x81, 0x51, 0x83, 0x27, 0x08, 0xc4, 0x04, 0xa9,
   792  	0x4a, 0x49, 0x2c, 0x49, 0x94, 0x60, 0x06, 0x0b, 0x81, 0xd9, 0x4a, 0x06, 0x5c, 0xac, 0x60, 0x43,
   793  	0x84, 0xd4, 0xb9, 0x98, 0xf3, 0x0b, 0x8a, 0x25, 0x18, 0x15, 0x98, 0x35, 0xb8, 0x8d, 0xf8, 0xf5,
   794  	0xa0, 0x0e, 0x84, 0x5a, 0xe0, 0xc4, 0x72, 0xe2, 0x9e, 0x3c, 0x43, 0x10, 0x48, 0x85, 0x93, 0xc8,
   795  	0x8f, 0x87, 0x72, 0x8c, 0x2b, 0x1e, 0xc9, 0x31, 0x9e, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c,
   796  	0xe3, 0x83, 0x47, 0x72, 0x8c, 0x49, 0x6c, 0x60, 0x37, 0x19, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff,
   797  	0xb9, 0x2b, 0x0f, 0xd1, 0xe8, 0x00, 0x00, 0x00,
   798  }