From 0d7b3684f8bf484777b0f49e9656588901b74d6b Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Fri, 6 May 2022 15:11:10 +0530 Subject: [PATCH 01/12] feat: add reference id to msg --- api/regen/ecocredit/v1/query.pulsar.go | 2359 +++++++++++++---- api/regen/ecocredit/v1/query_grpc.pb.go | 38 + api/regen/ecocredit/v1/state.cosmos_orm.go | 13 + api/regen/ecocredit/v1/state.pulsar.go | 270 +- api/regen/ecocredit/v1/tx.pulsar.go | 577 ++-- proto/regen/ecocredit/v1/query.proto | 29 + proto/regen/ecocredit/v1/state.proto | 4 + proto/regen/ecocredit/v1/tx.proto | 3 + x/ecocredit/core/msg_create_project.go | 6 + x/ecocredit/core/msg_create_project_test.go | 24 +- x/ecocredit/core/query.pb.go | 843 +++++- x/ecocredit/core/query.pb.gw.go | 119 + x/ecocredit/core/state.pb.go | 175 +- x/ecocredit/core/tx.pb.go | 215 +- x/ecocredit/server/core/create_project.go | 10 +- .../core/query_projects_by_reference_id.go | 66 + 16 files changed, 3595 insertions(+), 1156 deletions(-) create mode 100644 x/ecocredit/server/core/query_projects_by_reference_id.go diff --git a/api/regen/ecocredit/v1/query.pulsar.go b/api/regen/ecocredit/v1/query.pulsar.go index b3f1e0cd59..988db801ce 100644 --- a/api/regen/ecocredit/v1/query.pulsar.go +++ b/api/regen/ecocredit/v1/query.pulsar.go @@ -5080,6 +5080,1078 @@ func (x *fastReflection_QueryProjectsResponse) ProtoMethods() *protoiface.Method } } +var ( + md_QueryProjectsByReferenceIdRequest protoreflect.MessageDescriptor + fd_QueryProjectsByReferenceIdRequest_reference_id protoreflect.FieldDescriptor + fd_QueryProjectsByReferenceIdRequest_pagination protoreflect.FieldDescriptor +) + +func init() { + file_regen_ecocredit_v1_query_proto_init() + md_QueryProjectsByReferenceIdRequest = File_regen_ecocredit_v1_query_proto.Messages().ByName("QueryProjectsByReferenceIdRequest") + fd_QueryProjectsByReferenceIdRequest_reference_id = md_QueryProjectsByReferenceIdRequest.Fields().ByName("reference_id") + fd_QueryProjectsByReferenceIdRequest_pagination = md_QueryProjectsByReferenceIdRequest.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryProjectsByReferenceIdRequest)(nil) + +type fastReflection_QueryProjectsByReferenceIdRequest QueryProjectsByReferenceIdRequest + +func (x *QueryProjectsByReferenceIdRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdRequest)(x) +} + +func (x *QueryProjectsByReferenceIdRequest) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryProjectsByReferenceIdRequest_messageType fastReflection_QueryProjectsByReferenceIdRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryProjectsByReferenceIdRequest_messageType{} + +type fastReflection_QueryProjectsByReferenceIdRequest_messageType struct{} + +func (x fastReflection_QueryProjectsByReferenceIdRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdRequest)(nil) +} +func (x fastReflection_QueryProjectsByReferenceIdRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdRequest) +} +func (x fastReflection_QueryProjectsByReferenceIdRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryProjectsByReferenceIdRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Interface() protoreflect.ProtoMessage { + return (*QueryProjectsByReferenceIdRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ReferenceId != "" { + value := protoreflect.ValueOfString(x.ReferenceId) + if !f(fd_QueryProjectsByReferenceIdRequest_reference_id, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryProjectsByReferenceIdRequest_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + return x.ReferenceId != "" + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + x.ReferenceId = "" + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + value := x.ReferenceId + return protoreflect.ValueOfString(value) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + x.ReferenceId = value.Interface().(string) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageRequest) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageRequest) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + panic(fmt.Errorf("field reference_id of message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + return protoreflect.ValueOfString("") + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + m := new(v1beta1.PageRequest) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.v1.QueryProjectsByReferenceIdRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryProjectsByReferenceIdRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.ReferenceId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.ReferenceId) > 0 { + i -= len(x.ReferenceId) + copy(dAtA[i:], x.ReferenceId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ReferenceId))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageRequest{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_QueryProjectsByReferenceIdResponse_1_list)(nil) + +type _QueryProjectsByReferenceIdResponse_1_list struct { + list *[]*ProjectInfo +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProjectInfo) + (*x.list)[i] = concreteValue +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProjectInfo) + *x.list = append(*x.list, concreteValue) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) AppendMutable() protoreflect.Value { + v := new(ProjectInfo) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) NewElement() protoreflect.Value { + v := new(ProjectInfo) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_QueryProjectsByReferenceIdResponse protoreflect.MessageDescriptor + fd_QueryProjectsByReferenceIdResponse_projects protoreflect.FieldDescriptor + fd_QueryProjectsByReferenceIdResponse_pagination protoreflect.FieldDescriptor +) + +func init() { + file_regen_ecocredit_v1_query_proto_init() + md_QueryProjectsByReferenceIdResponse = File_regen_ecocredit_v1_query_proto.Messages().ByName("QueryProjectsByReferenceIdResponse") + fd_QueryProjectsByReferenceIdResponse_projects = md_QueryProjectsByReferenceIdResponse.Fields().ByName("projects") + fd_QueryProjectsByReferenceIdResponse_pagination = md_QueryProjectsByReferenceIdResponse.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryProjectsByReferenceIdResponse)(nil) + +type fastReflection_QueryProjectsByReferenceIdResponse QueryProjectsByReferenceIdResponse + +func (x *QueryProjectsByReferenceIdResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdResponse)(x) +} + +func (x *QueryProjectsByReferenceIdResponse) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryProjectsByReferenceIdResponse_messageType fastReflection_QueryProjectsByReferenceIdResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryProjectsByReferenceIdResponse_messageType{} + +type fastReflection_QueryProjectsByReferenceIdResponse_messageType struct{} + +func (x fastReflection_QueryProjectsByReferenceIdResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdResponse)(nil) +} +func (x fastReflection_QueryProjectsByReferenceIdResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdResponse) +} +func (x fastReflection_QueryProjectsByReferenceIdResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryProjectsByReferenceIdResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Interface() protoreflect.ProtoMessage { + return (*QueryProjectsByReferenceIdResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Projects) != 0 { + value := protoreflect.ValueOfList(&_QueryProjectsByReferenceIdResponse_1_list{list: &x.Projects}) + if !f(fd_QueryProjectsByReferenceIdResponse_projects, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryProjectsByReferenceIdResponse_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + return len(x.Projects) != 0 + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + x.Projects = nil + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + if len(x.Projects) == 0 { + return protoreflect.ValueOfList(&_QueryProjectsByReferenceIdResponse_1_list{}) + } + listValue := &_QueryProjectsByReferenceIdResponse_1_list{list: &x.Projects} + return protoreflect.ValueOfList(listValue) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + lv := value.List() + clv := lv.(*_QueryProjectsByReferenceIdResponse_1_list) + x.Projects = *clv.list + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageResponse) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + if x.Projects == nil { + x.Projects = []*ProjectInfo{} + } + value := &_QueryProjectsByReferenceIdResponse_1_list{list: &x.Projects} + return protoreflect.ValueOfList(value) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageResponse) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + list := []*ProjectInfo{} + return protoreflect.ValueOfList(&_QueryProjectsByReferenceIdResponse_1_list{list: &list}) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + m := new(v1beta1.PageResponse) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.v1.QueryProjectsByReferenceIdResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryProjectsByReferenceIdResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Projects) > 0 { + for _, e := range x.Projects { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Projects) > 0 { + for iNdEx := len(x.Projects) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Projects[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Projects", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Projects = append(x.Projects, &ProjectInfo{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Projects[len(x.Projects)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageResponse{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var ( md_QueryProjectInfoRequest protoreflect.MessageDescriptor fd_QueryProjectInfoRequest_project_id protoreflect.FieldDescriptor @@ -5100,7 +6172,7 @@ func (x *QueryProjectInfoRequest) ProtoReflect() protoreflect.Message { } func (x *QueryProjectInfoRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[10] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5520,7 +6592,7 @@ func (x *QueryProjectInfoResponse) ProtoReflect() protoreflect.Message { } func (x *QueryProjectInfoResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[11] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5957,7 +7029,7 @@ func (x *QueryBatchesRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBatchesRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[12] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6507,7 +7579,7 @@ func (x *QueryBatchesResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBatchesResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[13] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7029,7 +8101,7 @@ func (x *QueryBatchesByIssuerRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBatchesByIssuerRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[14] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7579,7 +8651,7 @@ func (x *QueryBatchesByIssuerResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBatchesByIssuerResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[15] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8101,7 +9173,7 @@ func (x *QueryBatchesByClassRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBatchesByClassRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[16] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8651,7 +9723,7 @@ func (x *QueryBatchesByClassResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBatchesByClassResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[17] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9171,7 +10243,7 @@ func (x *QueryBatchInfoRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBatchInfoRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[18] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9591,7 +10663,7 @@ func (x *QueryBatchInfoResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBatchInfoResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[19] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10028,7 +11100,7 @@ func (x *QueryBalanceRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBalanceRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[20] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10510,7 +11582,7 @@ func (x *QueryBalanceResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBalanceResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[21] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10947,7 +12019,7 @@ func (x *QueryBalancesRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBalancesRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[22] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11497,7 +12569,7 @@ func (x *QueryBalancesResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBalancesResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[23] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12017,7 +13089,7 @@ func (x *QuerySupplyRequest) ProtoReflect() protoreflect.Message { } func (x *QuerySupplyRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[24] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12441,7 +13513,7 @@ func (x *QuerySupplyResponse) ProtoReflect() protoreflect.Message { } func (x *QuerySupplyResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[25] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12983,7 +14055,7 @@ func (x *QueryCreditTypesRequest) ProtoReflect() protoreflect.Message { } func (x *QueryCreditTypesRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[26] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13392,7 +14464,7 @@ func (x *QueryCreditTypesResponse) ProtoReflect() protoreflect.Message { } func (x *QueryCreditTypesResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[27] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13833,7 +14905,7 @@ func (x *QueryParamsRequest) ProtoReflect() protoreflect.Message { } func (x *QueryParamsRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[28] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14191,7 +15263,7 @@ func (x *QueryParamsResponse) ProtoReflect() protoreflect.Message { } func (x *QueryParamsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[29] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14632,7 +15704,7 @@ func (x *ClassInfo) ProtoReflect() protoreflect.Message { } func (x *ClassInfo) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[30] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15225,6 +16297,7 @@ var ( fd_ProjectInfo_class_id protoreflect.FieldDescriptor fd_ProjectInfo_jurisdiction protoreflect.FieldDescriptor fd_ProjectInfo_metadata protoreflect.FieldDescriptor + fd_ProjectInfo_reference_id protoreflect.FieldDescriptor ) func init() { @@ -15235,6 +16308,7 @@ func init() { fd_ProjectInfo_class_id = md_ProjectInfo.Fields().ByName("class_id") fd_ProjectInfo_jurisdiction = md_ProjectInfo.Fields().ByName("jurisdiction") fd_ProjectInfo_metadata = md_ProjectInfo.Fields().ByName("metadata") + fd_ProjectInfo_reference_id = md_ProjectInfo.Fields().ByName("reference_id") } var _ protoreflect.Message = (*fastReflection_ProjectInfo)(nil) @@ -15246,7 +16320,7 @@ func (x *ProjectInfo) ProtoReflect() protoreflect.Message { } func (x *ProjectInfo) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[31] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15332,6 +16406,12 @@ func (x *fastReflection_ProjectInfo) Range(f func(protoreflect.FieldDescriptor, return } } + if x.ReferenceId != "" { + value := protoreflect.ValueOfString(x.ReferenceId) + if !f(fd_ProjectInfo_reference_id, value) { + return + } + } } // Has reports whether a field is populated. @@ -15357,6 +16437,8 @@ func (x *fastReflection_ProjectInfo) Has(fd protoreflect.FieldDescriptor) bool { return x.Jurisdiction != "" case "regen.ecocredit.v1.ProjectInfo.metadata": return x.Metadata != "" + case "regen.ecocredit.v1.ProjectInfo.reference_id": + return x.ReferenceId != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.ProjectInfo")) @@ -15383,6 +16465,8 @@ func (x *fastReflection_ProjectInfo) Clear(fd protoreflect.FieldDescriptor) { x.Jurisdiction = "" case "regen.ecocredit.v1.ProjectInfo.metadata": x.Metadata = "" + case "regen.ecocredit.v1.ProjectInfo.reference_id": + x.ReferenceId = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.ProjectInfo")) @@ -15414,6 +16498,9 @@ func (x *fastReflection_ProjectInfo) Get(descriptor protoreflect.FieldDescriptor case "regen.ecocredit.v1.ProjectInfo.metadata": value := x.Metadata return protoreflect.ValueOfString(value) + case "regen.ecocredit.v1.ProjectInfo.reference_id": + value := x.ReferenceId + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.ProjectInfo")) @@ -15444,6 +16531,8 @@ func (x *fastReflection_ProjectInfo) Set(fd protoreflect.FieldDescriptor, value x.Jurisdiction = value.Interface().(string) case "regen.ecocredit.v1.ProjectInfo.metadata": x.Metadata = value.Interface().(string) + case "regen.ecocredit.v1.ProjectInfo.reference_id": + x.ReferenceId = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.ProjectInfo")) @@ -15474,6 +16563,8 @@ func (x *fastReflection_ProjectInfo) Mutable(fd protoreflect.FieldDescriptor) pr panic(fmt.Errorf("field jurisdiction of message regen.ecocredit.v1.ProjectInfo is not mutable")) case "regen.ecocredit.v1.ProjectInfo.metadata": panic(fmt.Errorf("field metadata of message regen.ecocredit.v1.ProjectInfo is not mutable")) + case "regen.ecocredit.v1.ProjectInfo.reference_id": + panic(fmt.Errorf("field reference_id of message regen.ecocredit.v1.ProjectInfo is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.ProjectInfo")) @@ -15497,6 +16588,8 @@ func (x *fastReflection_ProjectInfo) NewField(fd protoreflect.FieldDescriptor) p return protoreflect.ValueOfString("") case "regen.ecocredit.v1.ProjectInfo.metadata": return protoreflect.ValueOfString("") + case "regen.ecocredit.v1.ProjectInfo.reference_id": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.ProjectInfo")) @@ -15586,6 +16679,10 @@ func (x *fastReflection_ProjectInfo) ProtoMethods() *protoiface.Methods { if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } + l = len(x.ReferenceId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -15615,6 +16712,13 @@ func (x *fastReflection_ProjectInfo) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.ReferenceId) > 0 { + i -= len(x.ReferenceId) + copy(dAtA[i:], x.ReferenceId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ReferenceId))) + i-- + dAtA[i] = 0x32 + } if len(x.Metadata) > 0 { i -= len(x.Metadata) copy(dAtA[i:], x.Metadata) @@ -15859,6 +16963,38 @@ func (x *fastReflection_ProjectInfo) ProtoMethods() *protoiface.Methods { } x.Metadata = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -15928,7 +17064,7 @@ func (x *BatchInfo) ProtoReflect() protoreflect.Message { } func (x *BatchInfo) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[32] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16825,7 +17961,7 @@ func (x *BatchBalanceInfo) ProtoReflect() protoreflect.Message { } func (x *BatchBalanceInfo) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[33] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17859,22 +18995,114 @@ func (*QueryProjectsRequest) Descriptor() ([]byte, []int) { return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{8} } -func (x *QueryProjectsRequest) GetClassId() string { +func (x *QueryProjectsRequest) GetClassId() string { + if x != nil { + return x.ClassId + } + return "" +} + +func (x *QueryProjectsRequest) GetPagination() *v1beta1.PageRequest { + if x != nil { + return x.Pagination + } + return nil +} + +// QueryProjectsResponse is the Query/Projects response type. +type QueryProjectsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // projects are the fetched projects. + Projects []*ProjectInfo `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` + // pagination defines the pagination in the response. + Pagination *v1beta1.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *QueryProjectsResponse) Reset() { + *x = QueryProjectsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryProjectsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryProjectsResponse) ProtoMessage() {} + +// Deprecated: Use QueryProjectsResponse.ProtoReflect.Descriptor instead. +func (*QueryProjectsResponse) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{9} +} + +func (x *QueryProjectsResponse) GetProjects() []*ProjectInfo { + if x != nil { + return x.Projects + } + return nil +} + +func (x *QueryProjectsResponse) GetPagination() *v1beta1.PageResponse { + if x != nil { + return x.Pagination + } + return nil +} + +// QueryProjectsByReferenceIdRequest is the Query/ProjectsByReferenceId request type. +type QueryProjectsByReferenceIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // class_id is the unique identifier of the credit class to query. + ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` + // pagination defines an optional pagination for the request. + Pagination *v1beta1.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *QueryProjectsByReferenceIdRequest) Reset() { + *x = QueryProjectsByReferenceIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryProjectsByReferenceIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryProjectsByReferenceIdRequest) ProtoMessage() {} + +// Deprecated: Use QueryProjectsByReferenceIdRequest.ProtoReflect.Descriptor instead. +func (*QueryProjectsByReferenceIdRequest) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{10} +} + +func (x *QueryProjectsByReferenceIdRequest) GetReferenceId() string { if x != nil { - return x.ClassId + return x.ReferenceId } return "" } -func (x *QueryProjectsRequest) GetPagination() *v1beta1.PageRequest { +func (x *QueryProjectsByReferenceIdRequest) GetPagination() *v1beta1.PageRequest { if x != nil { return x.Pagination } return nil } -// QueryProjectsResponse is the Query/Projects response type. -type QueryProjectsResponse struct { +// QueryProjectsByReferenceIdResponse is the Query/ProjectsByReferenceId response type. +type QueryProjectsByReferenceIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -17885,34 +19113,34 @@ type QueryProjectsResponse struct { Pagination *v1beta1.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` } -func (x *QueryProjectsResponse) Reset() { - *x = QueryProjectsResponse{} +func (x *QueryProjectsByReferenceIdResponse) Reset() { + *x = QueryProjectsByReferenceIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[9] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueryProjectsResponse) String() string { +func (x *QueryProjectsByReferenceIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryProjectsResponse) ProtoMessage() {} +func (*QueryProjectsByReferenceIdResponse) ProtoMessage() {} -// Deprecated: Use QueryProjectsResponse.ProtoReflect.Descriptor instead. -func (*QueryProjectsResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{9} +// Deprecated: Use QueryProjectsByReferenceIdResponse.ProtoReflect.Descriptor instead. +func (*QueryProjectsByReferenceIdResponse) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{11} } -func (x *QueryProjectsResponse) GetProjects() []*ProjectInfo { +func (x *QueryProjectsByReferenceIdResponse) GetProjects() []*ProjectInfo { if x != nil { return x.Projects } return nil } -func (x *QueryProjectsResponse) GetPagination() *v1beta1.PageResponse { +func (x *QueryProjectsByReferenceIdResponse) GetPagination() *v1beta1.PageResponse { if x != nil { return x.Pagination } @@ -17932,7 +19160,7 @@ type QueryProjectInfoRequest struct { func (x *QueryProjectInfoRequest) Reset() { *x = QueryProjectInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[10] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17946,7 +19174,7 @@ func (*QueryProjectInfoRequest) ProtoMessage() {} // Deprecated: Use QueryProjectInfoRequest.ProtoReflect.Descriptor instead. func (*QueryProjectInfoRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{10} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{12} } func (x *QueryProjectInfoRequest) GetProjectId() string { @@ -17969,7 +19197,7 @@ type QueryProjectInfoResponse struct { func (x *QueryProjectInfoResponse) Reset() { *x = QueryProjectInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[11] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17983,7 +19211,7 @@ func (*QueryProjectInfoResponse) ProtoMessage() {} // Deprecated: Use QueryProjectInfoResponse.ProtoReflect.Descriptor instead. func (*QueryProjectInfoResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{11} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{13} } func (x *QueryProjectInfoResponse) GetProject() *ProjectInfo { @@ -18008,7 +19236,7 @@ type QueryBatchesRequest struct { func (x *QueryBatchesRequest) Reset() { *x = QueryBatchesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[12] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18022,7 +19250,7 @@ func (*QueryBatchesRequest) ProtoMessage() {} // Deprecated: Use QueryBatchesRequest.ProtoReflect.Descriptor instead. func (*QueryBatchesRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{12} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{14} } func (x *QueryBatchesRequest) GetProjectId() string { @@ -18054,7 +19282,7 @@ type QueryBatchesResponse struct { func (x *QueryBatchesResponse) Reset() { *x = QueryBatchesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[13] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18068,7 +19296,7 @@ func (*QueryBatchesResponse) ProtoMessage() {} // Deprecated: Use QueryBatchesResponse.ProtoReflect.Descriptor instead. func (*QueryBatchesResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{13} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{15} } func (x *QueryBatchesResponse) GetBatches() []*BatchInfo { @@ -18100,7 +19328,7 @@ type QueryBatchesByIssuerRequest struct { func (x *QueryBatchesByIssuerRequest) Reset() { *x = QueryBatchesByIssuerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[14] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18114,7 +19342,7 @@ func (*QueryBatchesByIssuerRequest) ProtoMessage() {} // Deprecated: Use QueryBatchesByIssuerRequest.ProtoReflect.Descriptor instead. func (*QueryBatchesByIssuerRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{14} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{16} } func (x *QueryBatchesByIssuerRequest) GetIssuer() string { @@ -18146,7 +19374,7 @@ type QueryBatchesByIssuerResponse struct { func (x *QueryBatchesByIssuerResponse) Reset() { *x = QueryBatchesByIssuerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[15] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18160,7 +19388,7 @@ func (*QueryBatchesByIssuerResponse) ProtoMessage() {} // Deprecated: Use QueryBatchesByIssuerResponse.ProtoReflect.Descriptor instead. func (*QueryBatchesByIssuerResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{15} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{17} } func (x *QueryBatchesByIssuerResponse) GetBatches() []*BatchInfo { @@ -18192,7 +19420,7 @@ type QueryBatchesByClassRequest struct { func (x *QueryBatchesByClassRequest) Reset() { *x = QueryBatchesByClassRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[16] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18206,7 +19434,7 @@ func (*QueryBatchesByClassRequest) ProtoMessage() {} // Deprecated: Use QueryBatchesByClassRequest.ProtoReflect.Descriptor instead. func (*QueryBatchesByClassRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{16} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{18} } func (x *QueryBatchesByClassRequest) GetClassId() string { @@ -18238,7 +19466,7 @@ type QueryBatchesByClassResponse struct { func (x *QueryBatchesByClassResponse) Reset() { *x = QueryBatchesByClassResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[17] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18252,7 +19480,7 @@ func (*QueryBatchesByClassResponse) ProtoMessage() {} // Deprecated: Use QueryBatchesByClassResponse.ProtoReflect.Descriptor instead. func (*QueryBatchesByClassResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{17} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{19} } func (x *QueryBatchesByClassResponse) GetBatches() []*BatchInfo { @@ -18282,7 +19510,7 @@ type QueryBatchInfoRequest struct { func (x *QueryBatchInfoRequest) Reset() { *x = QueryBatchInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[18] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18296,7 +19524,7 @@ func (*QueryBatchInfoRequest) ProtoMessage() {} // Deprecated: Use QueryBatchInfoRequest.ProtoReflect.Descriptor instead. func (*QueryBatchInfoRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{18} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{20} } func (x *QueryBatchInfoRequest) GetBatchDenom() string { @@ -18319,7 +19547,7 @@ type QueryBatchInfoResponse struct { func (x *QueryBatchInfoResponse) Reset() { *x = QueryBatchInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[19] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18333,7 +19561,7 @@ func (*QueryBatchInfoResponse) ProtoMessage() {} // Deprecated: Use QueryBatchInfoResponse.ProtoReflect.Descriptor instead. func (*QueryBatchInfoResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{19} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{21} } func (x *QueryBatchInfoResponse) GetBatch() *BatchInfo { @@ -18358,7 +19586,7 @@ type QueryBalanceRequest struct { func (x *QueryBalanceRequest) Reset() { *x = QueryBalanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[20] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18372,7 +19600,7 @@ func (*QueryBalanceRequest) ProtoMessage() {} // Deprecated: Use QueryBalanceRequest.ProtoReflect.Descriptor instead. func (*QueryBalanceRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{20} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{22} } func (x *QueryBalanceRequest) GetAccount() string { @@ -18402,7 +19630,7 @@ type QueryBalanceResponse struct { func (x *QueryBalanceResponse) Reset() { *x = QueryBalanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[21] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18416,7 +19644,7 @@ func (*QueryBalanceResponse) ProtoMessage() {} // Deprecated: Use QueryBalanceResponse.ProtoReflect.Descriptor instead. func (*QueryBalanceResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{21} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{23} } func (x *QueryBalanceResponse) GetBalance() *BatchBalanceInfo { @@ -18441,7 +19669,7 @@ type QueryBalancesRequest struct { func (x *QueryBalancesRequest) Reset() { *x = QueryBalancesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[22] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18455,7 +19683,7 @@ func (*QueryBalancesRequest) ProtoMessage() {} // Deprecated: Use QueryBalancesRequest.ProtoReflect.Descriptor instead. func (*QueryBalancesRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{22} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{24} } func (x *QueryBalancesRequest) GetAccount() string { @@ -18488,7 +19716,7 @@ type QueryBalancesResponse struct { func (x *QueryBalancesResponse) Reset() { *x = QueryBalancesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[23] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18502,7 +19730,7 @@ func (*QueryBalancesResponse) ProtoMessage() {} // Deprecated: Use QueryBalancesResponse.ProtoReflect.Descriptor instead. func (*QueryBalancesResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{23} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{25} } func (x *QueryBalancesResponse) GetBalances() []*BatchBalanceInfo { @@ -18532,7 +19760,7 @@ type QuerySupplyRequest struct { func (x *QuerySupplyRequest) Reset() { *x = QuerySupplyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[24] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18546,7 +19774,7 @@ func (*QuerySupplyRequest) ProtoMessage() {} // Deprecated: Use QuerySupplyRequest.ProtoReflect.Descriptor instead. func (*QuerySupplyRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{24} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{26} } func (x *QuerySupplyRequest) GetBatchDenom() string { @@ -18576,7 +19804,7 @@ type QuerySupplyResponse struct { func (x *QuerySupplyResponse) Reset() { *x = QuerySupplyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[25] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18590,7 +19818,7 @@ func (*QuerySupplyResponse) ProtoMessage() {} // Deprecated: Use QuerySupplyResponse.ProtoReflect.Descriptor instead. func (*QuerySupplyResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{25} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{27} } func (x *QuerySupplyResponse) GetTradableSupply() string { @@ -18624,7 +19852,7 @@ type QueryCreditTypesRequest struct { func (x *QueryCreditTypesRequest) Reset() { *x = QueryCreditTypesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[26] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18638,7 +19866,7 @@ func (*QueryCreditTypesRequest) ProtoMessage() {} // Deprecated: Use QueryCreditTypesRequest.ProtoReflect.Descriptor instead. func (*QueryCreditTypesRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{26} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{28} } // QueryCreditTypesRequest is the Query/Credit_Types response type @@ -18654,7 +19882,7 @@ type QueryCreditTypesResponse struct { func (x *QueryCreditTypesResponse) Reset() { *x = QueryCreditTypesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[27] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18668,7 +19896,7 @@ func (*QueryCreditTypesResponse) ProtoMessage() {} // Deprecated: Use QueryCreditTypesResponse.ProtoReflect.Descriptor instead. func (*QueryCreditTypesResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{27} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{29} } func (x *QueryCreditTypesResponse) GetCreditTypes() []*CreditType { @@ -18688,7 +19916,7 @@ type QueryParamsRequest struct { func (x *QueryParamsRequest) Reset() { *x = QueryParamsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[28] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18702,7 +19930,7 @@ func (*QueryParamsRequest) ProtoMessage() {} // Deprecated: Use QueryParamsRequest.ProtoReflect.Descriptor instead. func (*QueryParamsRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{28} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{30} } // QueryParamsResponse is the Query/Params response type. @@ -18718,7 +19946,7 @@ type QueryParamsResponse struct { func (x *QueryParamsResponse) Reset() { *x = QueryParamsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[29] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18732,7 +19960,7 @@ func (*QueryParamsResponse) ProtoMessage() {} // Deprecated: Use QueryParamsResponse.ProtoReflect.Descriptor instead. func (*QueryParamsResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{29} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{31} } func (x *QueryParamsResponse) GetParams() *Params { @@ -18762,7 +19990,7 @@ type ClassInfo struct { func (x *ClassInfo) Reset() { *x = ClassInfo{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[30] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18776,7 +20004,7 @@ func (*ClassInfo) ProtoMessage() {} // Deprecated: Use ClassInfo.ProtoReflect.Descriptor instead. func (*ClassInfo) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{30} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{32} } func (x *ClassInfo) GetId() string { @@ -18825,12 +20053,14 @@ type ProjectInfo struct { Jurisdiction string `protobuf:"bytes,4,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` // metadata is the arbitrary metadata attached to the project. Metadata string `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` + // reference_id is any arbitrary string that can be use to reference project. + ReferenceId string `protobuf:"bytes,6,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } func (x *ProjectInfo) Reset() { *x = ProjectInfo{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[31] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18844,7 +20074,7 @@ func (*ProjectInfo) ProtoMessage() {} // Deprecated: Use ProjectInfo.ProtoReflect.Descriptor instead. func (*ProjectInfo) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{31} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{33} } func (x *ProjectInfo) GetId() string { @@ -18882,6 +20112,13 @@ func (x *ProjectInfo) GetMetadata() string { return "" } +func (x *ProjectInfo) GetReferenceId() string { + if x != nil { + return x.ReferenceId + } + return "" +} + // BatchInfo is the human-readable credit batch information. type BatchInfo struct { state protoimpl.MessageState @@ -18915,7 +20152,7 @@ type BatchInfo struct { func (x *BatchInfo) Reset() { *x = BatchInfo{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[32] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18929,7 +20166,7 @@ func (*BatchInfo) ProtoMessage() {} // Deprecated: Use BatchInfo.ProtoReflect.Descriptor instead. func (*BatchInfo) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{32} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{34} } func (x *BatchInfo) GetIssuer() string { @@ -19009,7 +20246,7 @@ type BatchBalanceInfo struct { func (x *BatchBalanceInfo) Reset() { *x = BatchBalanceInfo{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[33] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19023,7 +20260,7 @@ func (*BatchBalanceInfo) ProtoMessage() {} // Deprecated: Use BatchBalanceInfo.ProtoReflect.Descriptor instead. func (*BatchBalanceInfo) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{33} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{35} } func (x *BatchBalanceInfo) GetAddress() string { @@ -19153,25 +20390,63 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x55, - 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8e, 0x01, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 0x22, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x18, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x22, 0x7c, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x7c, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0x0a, 0x1b, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x1c, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, @@ -19179,313 +20454,310 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, - 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x01, - 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, - 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, + 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7f, + 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x7f, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, - 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x9f, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x37, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x9f, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x37, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x38, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x4d, 0x0a, 0x16, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x22, 0x50, 0x0a, 0x13, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x56, 0x0a, 0x14, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, + 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x4d, 0x0a, - 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x22, 0x50, 0x0a, 0x13, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x56, - 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x90, 0x01, 0x0a, - 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, - 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, - 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x19, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, + 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x13, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, + 0x64, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x19, 0x0a, + 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, + 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x7b, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, + 0x62, 0x62, 0x72, 0x65, 0x76, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x75, + 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0xbb, 0x02, 0x0a, 0x09, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x9f, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x32, 0xde, 0x13, 0x0a, 0x05, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0x92, + 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x49, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x7b, 0x0a, 0x09, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x41, 0x62, 0x62, 0x72, 0x65, 0x76, 0x22, 0x8e, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, - 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, - 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbb, 0x02, 0x0a, 0x09, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x9f, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x32, 0x90, 0x12, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x27, - 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, + 0x69, 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0x92, 0x01, - 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, + 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x08, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0xcb, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x35, + 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x62, 0x79, 0x2d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x2d, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, - 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x27, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0f, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, - 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0x97, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0f, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x2f, + 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x2f, 0x7b, 0x69, + 0x73, 0x73, 0x75, 0x65, 0x72, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, + 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x2f, 0x7b, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x07, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, - 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x12, - 0x8f, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x07, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, - 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x7d, 0x0a, 0x06, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, + 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x12, 0x8f, + 0x01, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, + 0x12, 0x93, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x2e, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, + 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, - 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xd8, 0x01, 0x0a, 0x16, - 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, - 0x76, 0x31, 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x52, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, - 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x7d, 0x0a, 0x06, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, + 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xd8, 0x01, 0x0a, 0x16, 0x63, + 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, + 0x31, 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x52, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, + 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x14, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -19500,116 +20772,123 @@ func file_regen_ecocredit_v1_query_proto_rawDescGZIP() []byte { return file_regen_ecocredit_v1_query_proto_rawDescData } -var file_regen_ecocredit_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_regen_ecocredit_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_regen_ecocredit_v1_query_proto_goTypes = []interface{}{ - (*QueryClassesRequest)(nil), // 0: regen.ecocredit.v1.QueryClassesRequest - (*QueryClassesResponse)(nil), // 1: regen.ecocredit.v1.QueryClassesResponse - (*QueryClassesByAdminRequest)(nil), // 2: regen.ecocredit.v1.QueryClassesByAdminRequest - (*QueryClassesByAdminResponse)(nil), // 3: regen.ecocredit.v1.QueryClassesByAdminResponse - (*QueryClassInfoRequest)(nil), // 4: regen.ecocredit.v1.QueryClassInfoRequest - (*QueryClassInfoResponse)(nil), // 5: regen.ecocredit.v1.QueryClassInfoResponse - (*QueryClassIssuersRequest)(nil), // 6: regen.ecocredit.v1.QueryClassIssuersRequest - (*QueryClassIssuersResponse)(nil), // 7: regen.ecocredit.v1.QueryClassIssuersResponse - (*QueryProjectsRequest)(nil), // 8: regen.ecocredit.v1.QueryProjectsRequest - (*QueryProjectsResponse)(nil), // 9: regen.ecocredit.v1.QueryProjectsResponse - (*QueryProjectInfoRequest)(nil), // 10: regen.ecocredit.v1.QueryProjectInfoRequest - (*QueryProjectInfoResponse)(nil), // 11: regen.ecocredit.v1.QueryProjectInfoResponse - (*QueryBatchesRequest)(nil), // 12: regen.ecocredit.v1.QueryBatchesRequest - (*QueryBatchesResponse)(nil), // 13: regen.ecocredit.v1.QueryBatchesResponse - (*QueryBatchesByIssuerRequest)(nil), // 14: regen.ecocredit.v1.QueryBatchesByIssuerRequest - (*QueryBatchesByIssuerResponse)(nil), // 15: regen.ecocredit.v1.QueryBatchesByIssuerResponse - (*QueryBatchesByClassRequest)(nil), // 16: regen.ecocredit.v1.QueryBatchesByClassRequest - (*QueryBatchesByClassResponse)(nil), // 17: regen.ecocredit.v1.QueryBatchesByClassResponse - (*QueryBatchInfoRequest)(nil), // 18: regen.ecocredit.v1.QueryBatchInfoRequest - (*QueryBatchInfoResponse)(nil), // 19: regen.ecocredit.v1.QueryBatchInfoResponse - (*QueryBalanceRequest)(nil), // 20: regen.ecocredit.v1.QueryBalanceRequest - (*QueryBalanceResponse)(nil), // 21: regen.ecocredit.v1.QueryBalanceResponse - (*QueryBalancesRequest)(nil), // 22: regen.ecocredit.v1.QueryBalancesRequest - (*QueryBalancesResponse)(nil), // 23: regen.ecocredit.v1.QueryBalancesResponse - (*QuerySupplyRequest)(nil), // 24: regen.ecocredit.v1.QuerySupplyRequest - (*QuerySupplyResponse)(nil), // 25: regen.ecocredit.v1.QuerySupplyResponse - (*QueryCreditTypesRequest)(nil), // 26: regen.ecocredit.v1.QueryCreditTypesRequest - (*QueryCreditTypesResponse)(nil), // 27: regen.ecocredit.v1.QueryCreditTypesResponse - (*QueryParamsRequest)(nil), // 28: regen.ecocredit.v1.QueryParamsRequest - (*QueryParamsResponse)(nil), // 29: regen.ecocredit.v1.QueryParamsResponse - (*ClassInfo)(nil), // 30: regen.ecocredit.v1.ClassInfo - (*ProjectInfo)(nil), // 31: regen.ecocredit.v1.ProjectInfo - (*BatchInfo)(nil), // 32: regen.ecocredit.v1.BatchInfo - (*BatchBalanceInfo)(nil), // 33: regen.ecocredit.v1.BatchBalanceInfo - (*v1beta1.PageRequest)(nil), // 34: cosmos.base.query.v1beta1.PageRequest - (*v1beta1.PageResponse)(nil), // 35: cosmos.base.query.v1beta1.PageResponse - (*CreditType)(nil), // 36: regen.ecocredit.v1.CreditType - (*Params)(nil), // 37: regen.ecocredit.v1.Params - (*timestamppb.Timestamp)(nil), // 38: google.protobuf.Timestamp + (*QueryClassesRequest)(nil), // 0: regen.ecocredit.v1.QueryClassesRequest + (*QueryClassesResponse)(nil), // 1: regen.ecocredit.v1.QueryClassesResponse + (*QueryClassesByAdminRequest)(nil), // 2: regen.ecocredit.v1.QueryClassesByAdminRequest + (*QueryClassesByAdminResponse)(nil), // 3: regen.ecocredit.v1.QueryClassesByAdminResponse + (*QueryClassInfoRequest)(nil), // 4: regen.ecocredit.v1.QueryClassInfoRequest + (*QueryClassInfoResponse)(nil), // 5: regen.ecocredit.v1.QueryClassInfoResponse + (*QueryClassIssuersRequest)(nil), // 6: regen.ecocredit.v1.QueryClassIssuersRequest + (*QueryClassIssuersResponse)(nil), // 7: regen.ecocredit.v1.QueryClassIssuersResponse + (*QueryProjectsRequest)(nil), // 8: regen.ecocredit.v1.QueryProjectsRequest + (*QueryProjectsResponse)(nil), // 9: regen.ecocredit.v1.QueryProjectsResponse + (*QueryProjectsByReferenceIdRequest)(nil), // 10: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest + (*QueryProjectsByReferenceIdResponse)(nil), // 11: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse + (*QueryProjectInfoRequest)(nil), // 12: regen.ecocredit.v1.QueryProjectInfoRequest + (*QueryProjectInfoResponse)(nil), // 13: regen.ecocredit.v1.QueryProjectInfoResponse + (*QueryBatchesRequest)(nil), // 14: regen.ecocredit.v1.QueryBatchesRequest + (*QueryBatchesResponse)(nil), // 15: regen.ecocredit.v1.QueryBatchesResponse + (*QueryBatchesByIssuerRequest)(nil), // 16: regen.ecocredit.v1.QueryBatchesByIssuerRequest + (*QueryBatchesByIssuerResponse)(nil), // 17: regen.ecocredit.v1.QueryBatchesByIssuerResponse + (*QueryBatchesByClassRequest)(nil), // 18: regen.ecocredit.v1.QueryBatchesByClassRequest + (*QueryBatchesByClassResponse)(nil), // 19: regen.ecocredit.v1.QueryBatchesByClassResponse + (*QueryBatchInfoRequest)(nil), // 20: regen.ecocredit.v1.QueryBatchInfoRequest + (*QueryBatchInfoResponse)(nil), // 21: regen.ecocredit.v1.QueryBatchInfoResponse + (*QueryBalanceRequest)(nil), // 22: regen.ecocredit.v1.QueryBalanceRequest + (*QueryBalanceResponse)(nil), // 23: regen.ecocredit.v1.QueryBalanceResponse + (*QueryBalancesRequest)(nil), // 24: regen.ecocredit.v1.QueryBalancesRequest + (*QueryBalancesResponse)(nil), // 25: regen.ecocredit.v1.QueryBalancesResponse + (*QuerySupplyRequest)(nil), // 26: regen.ecocredit.v1.QuerySupplyRequest + (*QuerySupplyResponse)(nil), // 27: regen.ecocredit.v1.QuerySupplyResponse + (*QueryCreditTypesRequest)(nil), // 28: regen.ecocredit.v1.QueryCreditTypesRequest + (*QueryCreditTypesResponse)(nil), // 29: regen.ecocredit.v1.QueryCreditTypesResponse + (*QueryParamsRequest)(nil), // 30: regen.ecocredit.v1.QueryParamsRequest + (*QueryParamsResponse)(nil), // 31: regen.ecocredit.v1.QueryParamsResponse + (*ClassInfo)(nil), // 32: regen.ecocredit.v1.ClassInfo + (*ProjectInfo)(nil), // 33: regen.ecocredit.v1.ProjectInfo + (*BatchInfo)(nil), // 34: regen.ecocredit.v1.BatchInfo + (*BatchBalanceInfo)(nil), // 35: regen.ecocredit.v1.BatchBalanceInfo + (*v1beta1.PageRequest)(nil), // 36: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 37: cosmos.base.query.v1beta1.PageResponse + (*CreditType)(nil), // 38: regen.ecocredit.v1.CreditType + (*Params)(nil), // 39: regen.ecocredit.v1.Params + (*timestamppb.Timestamp)(nil), // 40: google.protobuf.Timestamp } var file_regen_ecocredit_v1_query_proto_depIdxs = []int32{ - 34, // 0: regen.ecocredit.v1.QueryClassesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 30, // 1: regen.ecocredit.v1.QueryClassesResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo - 35, // 2: regen.ecocredit.v1.QueryClassesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 3: regen.ecocredit.v1.QueryClassesByAdminRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 30, // 4: regen.ecocredit.v1.QueryClassesByAdminResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo - 35, // 5: regen.ecocredit.v1.QueryClassesByAdminResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 30, // 6: regen.ecocredit.v1.QueryClassInfoResponse.class:type_name -> regen.ecocredit.v1.ClassInfo - 34, // 7: regen.ecocredit.v1.QueryClassIssuersRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 35, // 8: regen.ecocredit.v1.QueryClassIssuersResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 9: regen.ecocredit.v1.QueryProjectsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 31, // 10: regen.ecocredit.v1.QueryProjectsResponse.projects:type_name -> regen.ecocredit.v1.ProjectInfo - 35, // 11: regen.ecocredit.v1.QueryProjectsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 31, // 12: regen.ecocredit.v1.QueryProjectInfoResponse.project:type_name -> regen.ecocredit.v1.ProjectInfo - 34, // 13: regen.ecocredit.v1.QueryBatchesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 32, // 14: regen.ecocredit.v1.QueryBatchesResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo - 35, // 15: regen.ecocredit.v1.QueryBatchesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 16: regen.ecocredit.v1.QueryBatchesByIssuerRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 32, // 17: regen.ecocredit.v1.QueryBatchesByIssuerResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo - 35, // 18: regen.ecocredit.v1.QueryBatchesByIssuerResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 19: regen.ecocredit.v1.QueryBatchesByClassRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 32, // 20: regen.ecocredit.v1.QueryBatchesByClassResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo - 35, // 21: regen.ecocredit.v1.QueryBatchesByClassResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 32, // 22: regen.ecocredit.v1.QueryBatchInfoResponse.batch:type_name -> regen.ecocredit.v1.BatchInfo - 33, // 23: regen.ecocredit.v1.QueryBalanceResponse.balance:type_name -> regen.ecocredit.v1.BatchBalanceInfo - 34, // 24: regen.ecocredit.v1.QueryBalancesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 33, // 25: regen.ecocredit.v1.QueryBalancesResponse.balances:type_name -> regen.ecocredit.v1.BatchBalanceInfo - 35, // 26: regen.ecocredit.v1.QueryBalancesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 36, // 27: regen.ecocredit.v1.QueryCreditTypesResponse.credit_types:type_name -> regen.ecocredit.v1.CreditType - 37, // 28: regen.ecocredit.v1.QueryParamsResponse.params:type_name -> regen.ecocredit.v1.Params - 38, // 29: regen.ecocredit.v1.BatchInfo.start_date:type_name -> google.protobuf.Timestamp - 38, // 30: regen.ecocredit.v1.BatchInfo.end_date:type_name -> google.protobuf.Timestamp - 38, // 31: regen.ecocredit.v1.BatchInfo.issuance_date:type_name -> google.protobuf.Timestamp - 0, // 32: regen.ecocredit.v1.Query.Classes:input_type -> regen.ecocredit.v1.QueryClassesRequest - 2, // 33: regen.ecocredit.v1.Query.ClassesByAdmin:input_type -> regen.ecocredit.v1.QueryClassesByAdminRequest - 4, // 34: regen.ecocredit.v1.Query.ClassInfo:input_type -> regen.ecocredit.v1.QueryClassInfoRequest - 6, // 35: regen.ecocredit.v1.Query.ClassIssuers:input_type -> regen.ecocredit.v1.QueryClassIssuersRequest - 8, // 36: regen.ecocredit.v1.Query.Projects:input_type -> regen.ecocredit.v1.QueryProjectsRequest - 10, // 37: regen.ecocredit.v1.Query.ProjectInfo:input_type -> regen.ecocredit.v1.QueryProjectInfoRequest - 12, // 38: regen.ecocredit.v1.Query.Batches:input_type -> regen.ecocredit.v1.QueryBatchesRequest - 14, // 39: regen.ecocredit.v1.Query.BatchesByIssuer:input_type -> regen.ecocredit.v1.QueryBatchesByIssuerRequest - 16, // 40: regen.ecocredit.v1.Query.BatchesByClass:input_type -> regen.ecocredit.v1.QueryBatchesByClassRequest - 18, // 41: regen.ecocredit.v1.Query.BatchInfo:input_type -> regen.ecocredit.v1.QueryBatchInfoRequest - 20, // 42: regen.ecocredit.v1.Query.Balance:input_type -> regen.ecocredit.v1.QueryBalanceRequest - 22, // 43: regen.ecocredit.v1.Query.Balances:input_type -> regen.ecocredit.v1.QueryBalancesRequest - 24, // 44: regen.ecocredit.v1.Query.Supply:input_type -> regen.ecocredit.v1.QuerySupplyRequest - 26, // 45: regen.ecocredit.v1.Query.CreditTypes:input_type -> regen.ecocredit.v1.QueryCreditTypesRequest - 28, // 46: regen.ecocredit.v1.Query.Params:input_type -> regen.ecocredit.v1.QueryParamsRequest - 1, // 47: regen.ecocredit.v1.Query.Classes:output_type -> regen.ecocredit.v1.QueryClassesResponse - 3, // 48: regen.ecocredit.v1.Query.ClassesByAdmin:output_type -> regen.ecocredit.v1.QueryClassesByAdminResponse - 5, // 49: regen.ecocredit.v1.Query.ClassInfo:output_type -> regen.ecocredit.v1.QueryClassInfoResponse - 7, // 50: regen.ecocredit.v1.Query.ClassIssuers:output_type -> regen.ecocredit.v1.QueryClassIssuersResponse - 9, // 51: regen.ecocredit.v1.Query.Projects:output_type -> regen.ecocredit.v1.QueryProjectsResponse - 11, // 52: regen.ecocredit.v1.Query.ProjectInfo:output_type -> regen.ecocredit.v1.QueryProjectInfoResponse - 13, // 53: regen.ecocredit.v1.Query.Batches:output_type -> regen.ecocredit.v1.QueryBatchesResponse - 15, // 54: regen.ecocredit.v1.Query.BatchesByIssuer:output_type -> regen.ecocredit.v1.QueryBatchesByIssuerResponse - 17, // 55: regen.ecocredit.v1.Query.BatchesByClass:output_type -> regen.ecocredit.v1.QueryBatchesByClassResponse - 19, // 56: regen.ecocredit.v1.Query.BatchInfo:output_type -> regen.ecocredit.v1.QueryBatchInfoResponse - 21, // 57: regen.ecocredit.v1.Query.Balance:output_type -> regen.ecocredit.v1.QueryBalanceResponse - 23, // 58: regen.ecocredit.v1.Query.Balances:output_type -> regen.ecocredit.v1.QueryBalancesResponse - 25, // 59: regen.ecocredit.v1.Query.Supply:output_type -> regen.ecocredit.v1.QuerySupplyResponse - 27, // 60: regen.ecocredit.v1.Query.CreditTypes:output_type -> regen.ecocredit.v1.QueryCreditTypesResponse - 29, // 61: regen.ecocredit.v1.Query.Params:output_type -> regen.ecocredit.v1.QueryParamsResponse - 47, // [47:62] is the sub-list for method output_type - 32, // [32:47] is the sub-list for method input_type - 32, // [32:32] is the sub-list for extension type_name - 32, // [32:32] is the sub-list for extension extendee - 0, // [0:32] is the sub-list for field type_name + 36, // 0: regen.ecocredit.v1.QueryClassesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 32, // 1: regen.ecocredit.v1.QueryClassesResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo + 37, // 2: regen.ecocredit.v1.QueryClassesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 3: regen.ecocredit.v1.QueryClassesByAdminRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 32, // 4: regen.ecocredit.v1.QueryClassesByAdminResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo + 37, // 5: regen.ecocredit.v1.QueryClassesByAdminResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 32, // 6: regen.ecocredit.v1.QueryClassInfoResponse.class:type_name -> regen.ecocredit.v1.ClassInfo + 36, // 7: regen.ecocredit.v1.QueryClassIssuersRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 37, // 8: regen.ecocredit.v1.QueryClassIssuersResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 9: regen.ecocredit.v1.QueryProjectsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 33, // 10: regen.ecocredit.v1.QueryProjectsResponse.projects:type_name -> regen.ecocredit.v1.ProjectInfo + 37, // 11: regen.ecocredit.v1.QueryProjectsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 12: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 33, // 13: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects:type_name -> regen.ecocredit.v1.ProjectInfo + 37, // 14: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 33, // 15: regen.ecocredit.v1.QueryProjectInfoResponse.project:type_name -> regen.ecocredit.v1.ProjectInfo + 36, // 16: regen.ecocredit.v1.QueryBatchesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 34, // 17: regen.ecocredit.v1.QueryBatchesResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo + 37, // 18: regen.ecocredit.v1.QueryBatchesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 19: regen.ecocredit.v1.QueryBatchesByIssuerRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 34, // 20: regen.ecocredit.v1.QueryBatchesByIssuerResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo + 37, // 21: regen.ecocredit.v1.QueryBatchesByIssuerResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 22: regen.ecocredit.v1.QueryBatchesByClassRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 34, // 23: regen.ecocredit.v1.QueryBatchesByClassResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo + 37, // 24: regen.ecocredit.v1.QueryBatchesByClassResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 34, // 25: regen.ecocredit.v1.QueryBatchInfoResponse.batch:type_name -> regen.ecocredit.v1.BatchInfo + 35, // 26: regen.ecocredit.v1.QueryBalanceResponse.balance:type_name -> regen.ecocredit.v1.BatchBalanceInfo + 36, // 27: regen.ecocredit.v1.QueryBalancesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 35, // 28: regen.ecocredit.v1.QueryBalancesResponse.balances:type_name -> regen.ecocredit.v1.BatchBalanceInfo + 37, // 29: regen.ecocredit.v1.QueryBalancesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 38, // 30: regen.ecocredit.v1.QueryCreditTypesResponse.credit_types:type_name -> regen.ecocredit.v1.CreditType + 39, // 31: regen.ecocredit.v1.QueryParamsResponse.params:type_name -> regen.ecocredit.v1.Params + 40, // 32: regen.ecocredit.v1.BatchInfo.start_date:type_name -> google.protobuf.Timestamp + 40, // 33: regen.ecocredit.v1.BatchInfo.end_date:type_name -> google.protobuf.Timestamp + 40, // 34: regen.ecocredit.v1.BatchInfo.issuance_date:type_name -> google.protobuf.Timestamp + 0, // 35: regen.ecocredit.v1.Query.Classes:input_type -> regen.ecocredit.v1.QueryClassesRequest + 2, // 36: regen.ecocredit.v1.Query.ClassesByAdmin:input_type -> regen.ecocredit.v1.QueryClassesByAdminRequest + 4, // 37: regen.ecocredit.v1.Query.ClassInfo:input_type -> regen.ecocredit.v1.QueryClassInfoRequest + 6, // 38: regen.ecocredit.v1.Query.ClassIssuers:input_type -> regen.ecocredit.v1.QueryClassIssuersRequest + 8, // 39: regen.ecocredit.v1.Query.Projects:input_type -> regen.ecocredit.v1.QueryProjectsRequest + 10, // 40: regen.ecocredit.v1.Query.ProjectsByReferenceId:input_type -> regen.ecocredit.v1.QueryProjectsByReferenceIdRequest + 12, // 41: regen.ecocredit.v1.Query.ProjectInfo:input_type -> regen.ecocredit.v1.QueryProjectInfoRequest + 14, // 42: regen.ecocredit.v1.Query.Batches:input_type -> regen.ecocredit.v1.QueryBatchesRequest + 16, // 43: regen.ecocredit.v1.Query.BatchesByIssuer:input_type -> regen.ecocredit.v1.QueryBatchesByIssuerRequest + 18, // 44: regen.ecocredit.v1.Query.BatchesByClass:input_type -> regen.ecocredit.v1.QueryBatchesByClassRequest + 20, // 45: regen.ecocredit.v1.Query.BatchInfo:input_type -> regen.ecocredit.v1.QueryBatchInfoRequest + 22, // 46: regen.ecocredit.v1.Query.Balance:input_type -> regen.ecocredit.v1.QueryBalanceRequest + 24, // 47: regen.ecocredit.v1.Query.Balances:input_type -> regen.ecocredit.v1.QueryBalancesRequest + 26, // 48: regen.ecocredit.v1.Query.Supply:input_type -> regen.ecocredit.v1.QuerySupplyRequest + 28, // 49: regen.ecocredit.v1.Query.CreditTypes:input_type -> regen.ecocredit.v1.QueryCreditTypesRequest + 30, // 50: regen.ecocredit.v1.Query.Params:input_type -> regen.ecocredit.v1.QueryParamsRequest + 1, // 51: regen.ecocredit.v1.Query.Classes:output_type -> regen.ecocredit.v1.QueryClassesResponse + 3, // 52: regen.ecocredit.v1.Query.ClassesByAdmin:output_type -> regen.ecocredit.v1.QueryClassesByAdminResponse + 5, // 53: regen.ecocredit.v1.Query.ClassInfo:output_type -> regen.ecocredit.v1.QueryClassInfoResponse + 7, // 54: regen.ecocredit.v1.Query.ClassIssuers:output_type -> regen.ecocredit.v1.QueryClassIssuersResponse + 9, // 55: regen.ecocredit.v1.Query.Projects:output_type -> regen.ecocredit.v1.QueryProjectsResponse + 11, // 56: regen.ecocredit.v1.Query.ProjectsByReferenceId:output_type -> regen.ecocredit.v1.QueryProjectsByReferenceIdResponse + 13, // 57: regen.ecocredit.v1.Query.ProjectInfo:output_type -> regen.ecocredit.v1.QueryProjectInfoResponse + 15, // 58: regen.ecocredit.v1.Query.Batches:output_type -> regen.ecocredit.v1.QueryBatchesResponse + 17, // 59: regen.ecocredit.v1.Query.BatchesByIssuer:output_type -> regen.ecocredit.v1.QueryBatchesByIssuerResponse + 19, // 60: regen.ecocredit.v1.Query.BatchesByClass:output_type -> regen.ecocredit.v1.QueryBatchesByClassResponse + 21, // 61: regen.ecocredit.v1.Query.BatchInfo:output_type -> regen.ecocredit.v1.QueryBatchInfoResponse + 23, // 62: regen.ecocredit.v1.Query.Balance:output_type -> regen.ecocredit.v1.QueryBalanceResponse + 25, // 63: regen.ecocredit.v1.Query.Balances:output_type -> regen.ecocredit.v1.QueryBalancesResponse + 27, // 64: regen.ecocredit.v1.Query.Supply:output_type -> regen.ecocredit.v1.QuerySupplyResponse + 29, // 65: regen.ecocredit.v1.Query.CreditTypes:output_type -> regen.ecocredit.v1.QueryCreditTypesResponse + 31, // 66: regen.ecocredit.v1.Query.Params:output_type -> regen.ecocredit.v1.QueryParamsResponse + 51, // [51:67] is the sub-list for method output_type + 35, // [35:51] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { file_regen_ecocredit_v1_query_proto_init() } @@ -19741,7 +21020,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProjectInfoRequest); i { + switch v := v.(*QueryProjectsByReferenceIdRequest); i { case 0: return &v.state case 1: @@ -19753,7 +21032,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProjectInfoResponse); i { + switch v := v.(*QueryProjectsByReferenceIdResponse); i { case 0: return &v.state case 1: @@ -19765,7 +21044,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchesRequest); i { + switch v := v.(*QueryProjectInfoRequest); i { case 0: return &v.state case 1: @@ -19777,7 +21056,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchesResponse); i { + switch v := v.(*QueryProjectInfoResponse); i { case 0: return &v.state case 1: @@ -19789,7 +21068,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchesByIssuerRequest); i { + switch v := v.(*QueryBatchesRequest); i { case 0: return &v.state case 1: @@ -19801,7 +21080,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchesByIssuerResponse); i { + switch v := v.(*QueryBatchesResponse); i { case 0: return &v.state case 1: @@ -19813,7 +21092,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchesByClassRequest); i { + switch v := v.(*QueryBatchesByIssuerRequest); i { case 0: return &v.state case 1: @@ -19825,7 +21104,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchesByClassResponse); i { + switch v := v.(*QueryBatchesByIssuerResponse); i { case 0: return &v.state case 1: @@ -19837,7 +21116,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchInfoRequest); i { + switch v := v.(*QueryBatchesByClassRequest); i { case 0: return &v.state case 1: @@ -19849,7 +21128,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchInfoResponse); i { + switch v := v.(*QueryBatchesByClassResponse); i { case 0: return &v.state case 1: @@ -19861,7 +21140,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBalanceRequest); i { + switch v := v.(*QueryBatchInfoRequest); i { case 0: return &v.state case 1: @@ -19873,7 +21152,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBalanceResponse); i { + switch v := v.(*QueryBatchInfoResponse); i { case 0: return &v.state case 1: @@ -19885,7 +21164,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBalancesRequest); i { + switch v := v.(*QueryBalanceRequest); i { case 0: return &v.state case 1: @@ -19897,7 +21176,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBalancesResponse); i { + switch v := v.(*QueryBalanceResponse); i { case 0: return &v.state case 1: @@ -19909,7 +21188,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuerySupplyRequest); i { + switch v := v.(*QueryBalancesRequest); i { case 0: return &v.state case 1: @@ -19921,7 +21200,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuerySupplyResponse); i { + switch v := v.(*QueryBalancesResponse); i { case 0: return &v.state case 1: @@ -19933,7 +21212,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryCreditTypesRequest); i { + switch v := v.(*QuerySupplyRequest); i { case 0: return &v.state case 1: @@ -19945,7 +21224,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryCreditTypesResponse); i { + switch v := v.(*QuerySupplyResponse); i { case 0: return &v.state case 1: @@ -19957,7 +21236,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryParamsRequest); i { + switch v := v.(*QueryCreditTypesRequest); i { case 0: return &v.state case 1: @@ -19969,7 +21248,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryParamsResponse); i { + switch v := v.(*QueryCreditTypesResponse); i { case 0: return &v.state case 1: @@ -19981,7 +21260,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassInfo); i { + switch v := v.(*QueryParamsRequest); i { case 0: return &v.state case 1: @@ -19993,7 +21272,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProjectInfo); i { + switch v := v.(*QueryParamsResponse); i { case 0: return &v.state case 1: @@ -20005,7 +21284,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchInfo); i { + switch v := v.(*ClassInfo); i { case 0: return &v.state case 1: @@ -20017,6 +21296,30 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProjectInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_regen_ecocredit_v1_query_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_regen_ecocredit_v1_query_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BatchBalanceInfo); i { case 0: return &v.state @@ -20035,7 +21338,7 @@ func file_regen_ecocredit_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_regen_ecocredit_v1_query_proto_rawDesc, NumEnums: 0, - NumMessages: 34, + NumMessages: 36, NumExtensions: 0, NumServices: 1, }, diff --git a/api/regen/ecocredit/v1/query_grpc.pb.go b/api/regen/ecocredit/v1/query_grpc.pb.go index 73c0cd5ba3..b83caba1ed 100644 --- a/api/regen/ecocredit/v1/query_grpc.pb.go +++ b/api/regen/ecocredit/v1/query_grpc.pb.go @@ -33,6 +33,8 @@ type QueryClient interface { ClassIssuers(ctx context.Context, in *QueryClassIssuersRequest, opts ...grpc.CallOption) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(ctx context.Context, in *QueryProjectsRequest, opts ...grpc.CallOption) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) // ClassInfo queries for information on a project. ProjectInfo(ctx context.Context, in *QueryProjectInfoRequest, opts ...grpc.CallOption) (*QueryProjectInfoResponse, error) // Batches queries for all batches in the given project with pagination. @@ -110,6 +112,15 @@ func (c *queryClient) Projects(ctx context.Context, in *QueryProjectsRequest, op return out, nil } +func (c *queryClient) ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) { + out := new(QueryProjectsByReferenceIdResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/ProjectsByReferenceId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) ProjectInfo(ctx context.Context, in *QueryProjectInfoRequest, opts ...grpc.CallOption) (*QueryProjectInfoResponse, error) { out := new(QueryProjectInfoResponse) err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/ProjectInfo", in, out, opts...) @@ -215,6 +226,8 @@ type QueryServer interface { ClassIssuers(context.Context, *QueryClassIssuersRequest) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(context.Context, *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) // ClassInfo queries for information on a project. ProjectInfo(context.Context, *QueryProjectInfoRequest) (*QueryProjectInfoResponse, error) // Batches queries for all batches in the given project with pagination. @@ -259,6 +272,9 @@ func (UnimplementedQueryServer) ClassIssuers(context.Context, *QueryClassIssuers func (UnimplementedQueryServer) Projects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Projects not implemented") } +func (UnimplementedQueryServer) ProjectsByReferenceId(context.Context, *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProjectsByReferenceId not implemented") +} func (UnimplementedQueryServer) ProjectInfo(context.Context, *QueryProjectInfoRequest) (*QueryProjectInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ProjectInfo not implemented") } @@ -392,6 +408,24 @@ func _Query_Projects_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Query_ProjectsByReferenceId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryProjectsByReferenceIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProjectsByReferenceId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.v1.Query/ProjectsByReferenceId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProjectsByReferenceId(ctx, req.(*QueryProjectsByReferenceIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_ProjectInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProjectInfoRequest) if err := dec(in); err != nil { @@ -599,6 +633,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "Projects", Handler: _Query_Projects_Handler, }, + { + MethodName: "ProjectsByReferenceId", + Handler: _Query_ProjectsByReferenceId_Handler, + }, { MethodName: "ProjectInfo", Handler: _Query_ProjectInfo_Handler, diff --git a/api/regen/ecocredit/v1/state.cosmos_orm.go b/api/regen/ecocredit/v1/state.cosmos_orm.go index f07d90b677..4b948b667b 100644 --- a/api/regen/ecocredit/v1/state.cosmos_orm.go +++ b/api/regen/ecocredit/v1/state.cosmos_orm.go @@ -559,6 +559,19 @@ func (this ProjectAdminIndexKey) WithAdmin(admin []byte) ProjectAdminIndexKey { return this } +type ProjectReferenceIdIndexKey struct { + vs []interface{} +} + +func (x ProjectReferenceIdIndexKey) id() uint32 { return 4 } +func (x ProjectReferenceIdIndexKey) values() []interface{} { return x.vs } +func (x ProjectReferenceIdIndexKey) projectIndexKey() {} + +func (this ProjectReferenceIdIndexKey) WithReferenceId(reference_id string) ProjectReferenceIdIndexKey { + this.vs = []interface{}{reference_id} + return this +} + type projectTable struct { table ormtable.AutoIncrementTable } diff --git a/api/regen/ecocredit/v1/state.pulsar.go b/api/regen/ecocredit/v1/state.pulsar.go index 37f67eb523..f28b7d551a 100644 --- a/api/regen/ecocredit/v1/state.pulsar.go +++ b/api/regen/ecocredit/v1/state.pulsar.go @@ -1750,6 +1750,7 @@ var ( fd_Project_class_key protoreflect.FieldDescriptor fd_Project_jurisdiction protoreflect.FieldDescriptor fd_Project_metadata protoreflect.FieldDescriptor + fd_Project_reference_id protoreflect.FieldDescriptor ) func init() { @@ -1761,6 +1762,7 @@ func init() { fd_Project_class_key = md_Project.Fields().ByName("class_key") fd_Project_jurisdiction = md_Project.Fields().ByName("jurisdiction") fd_Project_metadata = md_Project.Fields().ByName("metadata") + fd_Project_reference_id = md_Project.Fields().ByName("reference_id") } var _ protoreflect.Message = (*fastReflection_Project)(nil) @@ -1864,6 +1866,12 @@ func (x *fastReflection_Project) Range(f func(protoreflect.FieldDescriptor, prot return } } + if x.ReferenceId != "" { + value := protoreflect.ValueOfString(x.ReferenceId) + if !f(fd_Project_reference_id, value) { + return + } + } } // Has reports whether a field is populated. @@ -1891,6 +1899,8 @@ func (x *fastReflection_Project) Has(fd protoreflect.FieldDescriptor) bool { return x.Jurisdiction != "" case "regen.ecocredit.v1.Project.metadata": return x.Metadata != "" + case "regen.ecocredit.v1.Project.reference_id": + return x.ReferenceId != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.Project")) @@ -1919,6 +1929,8 @@ func (x *fastReflection_Project) Clear(fd protoreflect.FieldDescriptor) { x.Jurisdiction = "" case "regen.ecocredit.v1.Project.metadata": x.Metadata = "" + case "regen.ecocredit.v1.Project.reference_id": + x.ReferenceId = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.Project")) @@ -1953,6 +1965,9 @@ func (x *fastReflection_Project) Get(descriptor protoreflect.FieldDescriptor) pr case "regen.ecocredit.v1.Project.metadata": value := x.Metadata return protoreflect.ValueOfString(value) + case "regen.ecocredit.v1.Project.reference_id": + value := x.ReferenceId + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.Project")) @@ -1985,6 +2000,8 @@ func (x *fastReflection_Project) Set(fd protoreflect.FieldDescriptor, value prot x.Jurisdiction = value.Interface().(string) case "regen.ecocredit.v1.Project.metadata": x.Metadata = value.Interface().(string) + case "regen.ecocredit.v1.Project.reference_id": + x.ReferenceId = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.Project")) @@ -2017,6 +2034,8 @@ func (x *fastReflection_Project) Mutable(fd protoreflect.FieldDescriptor) protor panic(fmt.Errorf("field jurisdiction of message regen.ecocredit.v1.Project is not mutable")) case "regen.ecocredit.v1.Project.metadata": panic(fmt.Errorf("field metadata of message regen.ecocredit.v1.Project is not mutable")) + case "regen.ecocredit.v1.Project.reference_id": + panic(fmt.Errorf("field reference_id of message regen.ecocredit.v1.Project is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.Project")) @@ -2042,6 +2061,8 @@ func (x *fastReflection_Project) NewField(fd protoreflect.FieldDescriptor) proto return protoreflect.ValueOfString("") case "regen.ecocredit.v1.Project.metadata": return protoreflect.ValueOfString("") + case "regen.ecocredit.v1.Project.reference_id": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.Project")) @@ -2133,6 +2154,10 @@ func (x *fastReflection_Project) ProtoMethods() *protoiface.Methods { if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } + l = len(x.ReferenceId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -2162,6 +2187,13 @@ func (x *fastReflection_Project) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.ReferenceId) > 0 { + i -= len(x.ReferenceId) + copy(dAtA[i:], x.ReferenceId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ReferenceId))) + i-- + dAtA[i] = 0x3a + } if len(x.Metadata) > 0 { i -= len(x.Metadata) copy(dAtA[i:], x.Metadata) @@ -2417,6 +2449,38 @@ func (x *fastReflection_Project) ProtoMethods() *protoiface.Methods { } x.Metadata = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -6855,6 +6919,8 @@ type Project struct { Jurisdiction string `protobuf:"bytes,5,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` // metadata is any arbitrary metadata attached to the project. Metadata string `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + // reference_id is any arbitrary string that can be use to reference project. + ReferenceId string `protobuf:"bytes,7,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } func (x *Project) Reset() { @@ -6919,6 +6985,13 @@ func (x *Project) GetMetadata() string { return "" } +func (x *Project) GetReferenceId() string { + if x != nil { + return x.ReferenceId + } + return "" +} + // Batch represents the high-level on-chain information for a credit batch. type Batch struct { state protoimpl.MessageState @@ -7434,7 +7507,7 @@ var file_regen_ecocredit_v1_state_proto_rawDesc = []byte{ 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x3a, 0x1c, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x16, 0x0a, 0x12, 0x0a, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, - 0x03, 0x22, 0xda, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x22, 0x8f, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, @@ -7444,105 +7517,108 @@ var file_regen_ecocredit_v1_state_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x3a, 0x3a, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x34, 0x0a, 0x07, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x02, 0x69, 0x64, 0x10, 0x01, 0x18, 0x01, 0x12, 0x12, 0x0a, - 0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x69, 0x64, 0x10, 0x02, 0x18, - 0x01, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x03, 0x18, 0x04, 0x22, 0x98, - 0x03, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x73, 0x73, 0x75, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x3a, 0x4c, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x46, 0x0a, 0x07, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x02, 0x69, 0x64, 0x10, 0x01, 0x18, 0x01, + 0x12, 0x12, 0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x69, 0x64, + 0x10, 0x02, 0x18, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x03, 0x12, + 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x10, + 0x04, 0x18, 0x04, 0x22, 0x98, 0x03, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x69, 0x73, 0x73, 0x75, - 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x3a, 0x4b, 0xf2, 0x9e, - 0xd3, 0x8e, 0x03, 0x45, 0x0a, 0x07, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x10, 0x01, 0x18, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x69, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x10, 0x04, 0x18, 0x05, 0x22, 0x82, 0x01, 0x0a, 0x0d, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, - 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x41, 0x62, 0x62, 0x72, 0x65, 0x76, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x1e, - 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x18, 0x0a, 0x14, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x18, 0x06, 0x22, 0x6a, - 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x23, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, + 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0c, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, + 0x6e, 0x3a, 0x4b, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x45, 0x0a, 0x07, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x10, 0x01, 0x18, 0x01, 0x12, + 0x0f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x02, + 0x12, 0x0e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x10, 0x04, 0x18, 0x05, 0x22, 0x82, + 0x01, 0x0a, 0x0d, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x62, 0x62, 0x72, 0x65, 0x76, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x3a, 0x15, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x0f, 0x0a, 0x0b, 0x0a, 0x09, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x22, 0x6e, 0x0a, 0x0d, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x3a, 0x17, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x11, 0x0a, 0x0d, 0x0a, 0x0b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x73, 0x63, 0x72, - 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x73, 0x63, 0x72, - 0x6f, 0x77, 0x65, 0x64, 0x3a, 0x34, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x2e, 0x0a, 0x13, 0x0a, 0x11, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2c, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, - 0x79, 0x12, 0x15, 0x0a, 0x11, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x01, 0x18, 0x09, 0x22, 0xbc, 0x01, 0x0a, 0x0b, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x3a, 0x15, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x0f, 0x0a, 0x0b, 0x0a, 0x09, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x22, 0x7c, 0x0a, 0x0b, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x4f, 0x72, 0x69, 0x67, 0x54, 0x78, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x79, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x79, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x11, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x0b, 0x0a, 0x07, 0x0a, 0x05, - 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x42, 0xd8, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x58, - 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x52, 0x65, 0x67, - 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x52, 0x65, - 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x63, 0x65, 0x3a, 0x1e, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x18, 0x0a, 0x14, 0x0a, 0x12, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, + 0x76, 0x18, 0x06, 0x22, 0x6a, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x15, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x0f, + 0x0a, 0x0b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x22, + 0x6e, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4b, 0x65, + 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x17, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x11, 0x0a, 0x0d, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x22, + 0xcd, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, 0x3a, 0x34, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, + 0x2e, 0x0a, 0x13, 0x0a, 0x11, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2c, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x11, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x6b, 0x65, 0x79, 0x2c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x01, 0x18, 0x09, 0x22, + 0xbc, 0x01, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, + 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, + 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x15, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x0f, 0x0a, + 0x0b, 0x0a, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x22, 0x7c, + 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x72, 0x69, 0x67, 0x54, 0x78, 0x12, 0x13, 0x0a, + 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, + 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x79, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x74, 0x79, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x11, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, + 0x0b, 0x0a, 0x07, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x42, 0xd8, 0x01, 0x0a, + 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x52, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, 0x65, 0x67, + 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x14, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/regen/ecocredit/v1/tx.pulsar.go b/api/regen/ecocredit/v1/tx.pulsar.go index f9d93f85a2..c81819e6af 100644 --- a/api/regen/ecocredit/v1/tx.pulsar.go +++ b/api/regen/ecocredit/v1/tx.pulsar.go @@ -1192,6 +1192,7 @@ var ( fd_MsgCreateProject_class_id protoreflect.FieldDescriptor fd_MsgCreateProject_metadata protoreflect.FieldDescriptor fd_MsgCreateProject_jurisdiction protoreflect.FieldDescriptor + fd_MsgCreateProject_reference_id protoreflect.FieldDescriptor ) func init() { @@ -1201,6 +1202,7 @@ func init() { fd_MsgCreateProject_class_id = md_MsgCreateProject.Fields().ByName("class_id") fd_MsgCreateProject_metadata = md_MsgCreateProject.Fields().ByName("metadata") fd_MsgCreateProject_jurisdiction = md_MsgCreateProject.Fields().ByName("jurisdiction") + fd_MsgCreateProject_reference_id = md_MsgCreateProject.Fields().ByName("reference_id") } var _ protoreflect.Message = (*fastReflection_MsgCreateProject)(nil) @@ -1292,6 +1294,12 @@ func (x *fastReflection_MsgCreateProject) Range(f func(protoreflect.FieldDescrip return } } + if x.ReferenceId != "" { + value := protoreflect.ValueOfString(x.ReferenceId) + if !f(fd_MsgCreateProject_reference_id, value) { + return + } + } } // Has reports whether a field is populated. @@ -1315,6 +1323,8 @@ func (x *fastReflection_MsgCreateProject) Has(fd protoreflect.FieldDescriptor) b return x.Metadata != "" case "regen.ecocredit.v1.MsgCreateProject.jurisdiction": return x.Jurisdiction != "" + case "regen.ecocredit.v1.MsgCreateProject.reference_id": + return x.ReferenceId != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.MsgCreateProject")) @@ -1339,6 +1349,8 @@ func (x *fastReflection_MsgCreateProject) Clear(fd protoreflect.FieldDescriptor) x.Metadata = "" case "regen.ecocredit.v1.MsgCreateProject.jurisdiction": x.Jurisdiction = "" + case "regen.ecocredit.v1.MsgCreateProject.reference_id": + x.ReferenceId = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.MsgCreateProject")) @@ -1367,6 +1379,9 @@ func (x *fastReflection_MsgCreateProject) Get(descriptor protoreflect.FieldDescr case "regen.ecocredit.v1.MsgCreateProject.jurisdiction": value := x.Jurisdiction return protoreflect.ValueOfString(value) + case "regen.ecocredit.v1.MsgCreateProject.reference_id": + value := x.ReferenceId + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.MsgCreateProject")) @@ -1395,6 +1410,8 @@ func (x *fastReflection_MsgCreateProject) Set(fd protoreflect.FieldDescriptor, v x.Metadata = value.Interface().(string) case "regen.ecocredit.v1.MsgCreateProject.jurisdiction": x.Jurisdiction = value.Interface().(string) + case "regen.ecocredit.v1.MsgCreateProject.reference_id": + x.ReferenceId = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.MsgCreateProject")) @@ -1423,6 +1440,8 @@ func (x *fastReflection_MsgCreateProject) Mutable(fd protoreflect.FieldDescripto panic(fmt.Errorf("field metadata of message regen.ecocredit.v1.MsgCreateProject is not mutable")) case "regen.ecocredit.v1.MsgCreateProject.jurisdiction": panic(fmt.Errorf("field jurisdiction of message regen.ecocredit.v1.MsgCreateProject is not mutable")) + case "regen.ecocredit.v1.MsgCreateProject.reference_id": + panic(fmt.Errorf("field reference_id of message regen.ecocredit.v1.MsgCreateProject is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.MsgCreateProject")) @@ -1444,6 +1463,8 @@ func (x *fastReflection_MsgCreateProject) NewField(fd protoreflect.FieldDescript return protoreflect.ValueOfString("") case "regen.ecocredit.v1.MsgCreateProject.jurisdiction": return protoreflect.ValueOfString("") + case "regen.ecocredit.v1.MsgCreateProject.reference_id": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.MsgCreateProject")) @@ -1529,6 +1550,10 @@ func (x *fastReflection_MsgCreateProject) ProtoMethods() *protoiface.Methods { if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } + l = len(x.ReferenceId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -1558,6 +1583,13 @@ func (x *fastReflection_MsgCreateProject) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.ReferenceId) > 0 { + i -= len(x.ReferenceId) + copy(dAtA[i:], x.ReferenceId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ReferenceId))) + i-- + dAtA[i] = 0x2a + } if len(x.Jurisdiction) > 0 { i -= len(x.Jurisdiction) copy(dAtA[i:], x.Jurisdiction) @@ -1763,6 +1795,38 @@ func (x *fastReflection_MsgCreateProject) ProtoMethods() *protoiface.Methods { } x.Jurisdiction = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -15553,6 +15617,8 @@ type MsgCreateProject struct { // alphanumeric characters. country-code is required, while sub-national-code // and postal-code are optional and can be added for increased precision. Jurisdiction string `protobuf:"bytes,4,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` + // reference_id is any arbitrary string that can be use to reference project. + ReferenceId string `protobuf:"bytes,5,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } func (x *MsgCreateProject) Reset() { @@ -15603,6 +15669,13 @@ func (x *MsgCreateProject) GetJurisdiction() string { return "" } +func (x *MsgCreateProject) GetReferenceId() string { + if x != nil { + return x.ReferenceId + } + return "" +} + // MsgCreateProjectResponse is the Msg/CreateProject response type. type MsgCreateProjectResponse struct { state protoimpl.MessageState @@ -16901,7 +16974,7 @@ var file_regen_ecocredit_v1_tx_proto_rawDesc = []byte{ 0x65, 0x65, 0x22, 0x33, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x43, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, @@ -16909,264 +16982,266 @@ var file_regen_ecocredit_v1_tx_proto_rawDesc = []byte{ 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x39, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x83, 0x03, 0x0a, 0x0e, 0x4d, - 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x3f, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x3b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, - 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, - 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x54, 0x78, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, - 0x22, 0xb6, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x37, 0x0a, 0x17, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6a, - 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x16, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x72, - 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x16, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0xdc, 0x01, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, - 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x49, 0x64, 0x22, 0x39, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x83, 0x03, + 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x73, 0x73, 0x75, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x73, + 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, + 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, + 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x78, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x78, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x6f, 0x74, 0x65, 0x22, 0x47, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x1d, 0x0a, 0x1b, - 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, - 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x1a, 0xb7, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x6e, - 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, - 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, - 0x72, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x17, 0x72, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x74, 0x69, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x07, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x69, - 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x48, 0x0a, 0x0d, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x13, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x07, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x73, 0x1a, 0x48, 0x0a, 0x0d, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, - 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x63, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, - 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, - 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, - 0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, - 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x69, 0x73, 0x73, 0x75, - 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x69, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x61, + 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x6f, 0x74, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x0d, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x73, 0x73, + 0x75, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, + 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x17, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x4a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x39, 0x0a, 0x16, + 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0xdc, 0x01, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x4d, + 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x73, 0x73, 0x75, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, + 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x78, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x47, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, + 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1f, + 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, + 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, + 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x73, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x1a, 0xb7, 0x01, 0x0a, 0x0b, + 0x53, 0x65, 0x6e, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x0f, + 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x17, + 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x72, 0x69, 0x73, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x72, + 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x45, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x2e, 0x52, + 0x65, 0x74, 0x69, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, + 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x48, 0x0a, 0x0d, 0x52, 0x65, 0x74, + 0x69, 0x72, 0x65, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x09, 0x4d, 0x73, 0x67, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x45, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x2e, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x73, 0x1a, 0x48, 0x0a, 0x0d, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x13, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x1f, 0x0a, - 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, - 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa3, 0x0a, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x5d, - 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x24, - 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x69, + 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x16, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa3, 0x0a, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x12, 0x5d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x12, 0x22, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x12, 0x22, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x63, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x6c, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x69, - 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x1a, 0x2f, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x22, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x73, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x57, 0x0a, 0x09, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, + 0x20, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x53, + 0x65, 0x6e, 0x64, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, + 0x1a, 0x23, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x12, + 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x1a, 0x25, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x69, 0x6e, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x57, 0x0a, 0x09, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x28, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, + 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x1a, 0x25, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, - 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x23, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x12, 0x1d, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x1a, 0x25, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x1d, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x1a, 0x25, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, - 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x72, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, - 0x73, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x2e, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x73, 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, + 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x32, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, + 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, + 0x31, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x32, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x12, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x31, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7b, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xd5, 0x01, 0x0a, - 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, - 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, - 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, - 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x52, - 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, - 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0xd5, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x52, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, 0x65, 0x67, + 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x14, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/regen/ecocredit/v1/query.proto b/proto/regen/ecocredit/v1/query.proto index 4ad303c84e..6ac89dd001 100644 --- a/proto/regen/ecocredit/v1/query.proto +++ b/proto/regen/ecocredit/v1/query.proto @@ -43,6 +43,12 @@ service Query { "/regen/ecocredit/v1/classes/{class_id}/projects"; } + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + rpc ProjectsByReferenceId(QueryProjectsByReferenceIdRequest) returns (QueryProjectsByReferenceIdResponse) { + option (google.api.http).get = + "/regen/ecocredit/v1/projects/by-reference-id/{reference_id}"; + } + // ClassInfo queries for information on a project. rpc ProjectInfo(QueryProjectInfoRequest) returns (QueryProjectInfoResponse) { option (google.api.http).get = "/regen/ecocredit/v1/projects/{project_id}"; @@ -194,6 +200,26 @@ message QueryProjectsResponse { cosmos.base.query.v1beta1.PageResponse pagination = 2; } +// QueryProjectsByReferenceIdRequest is the Query/ProjectsByReferenceId request type. +message QueryProjectsByReferenceIdRequest { + + // class_id is the unique identifier of the credit class to query. + string reference_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryProjectsByReferenceIdResponse is the Query/ProjectsByReferenceId response type. +message QueryProjectsByReferenceIdResponse { + + // projects are the fetched projects. + repeated ProjectInfo projects = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + // QueryProjectInfoRequest is the Query/Project request type. message QueryProjectInfoRequest { @@ -399,6 +425,9 @@ message ProjectInfo { // metadata is the arbitrary metadata attached to the project. string metadata = 5; + + // reference_id is any arbitrary string that can be use to reference project. + string reference_id = 6; } // BatchInfo is the human-readable credit batch information. diff --git a/proto/regen/ecocredit/v1/state.proto b/proto/regen/ecocredit/v1/state.proto index 4b146054af..586a3a9f7f 100644 --- a/proto/regen/ecocredit/v1/state.proto +++ b/proto/regen/ecocredit/v1/state.proto @@ -82,6 +82,7 @@ message Project { index : {id : 1, fields : "id", unique : true} index : {id : 2, fields : "class_key,id", unique : true} index : {id : 3, fields : "admin"} + index : {id : 4, fields : "reference_id"} }; // key is the table row identifier of the project used internally for @@ -105,6 +106,9 @@ message Project { // metadata is any arbitrary metadata attached to the project. string metadata = 6; + + // reference_id is any arbitrary string that can be use to reference project. + string reference_id = 7; } // Batch represents the high-level on-chain information for a credit batch. diff --git a/proto/regen/ecocredit/v1/tx.proto b/proto/regen/ecocredit/v1/tx.proto index 51eb302e40..0aec6c7346 100644 --- a/proto/regen/ecocredit/v1/tx.proto +++ b/proto/regen/ecocredit/v1/tx.proto @@ -121,6 +121,9 @@ message MsgCreateProject { // alphanumeric characters. country-code is required, while sub-national-code // and postal-code are optional and can be added for increased precision. string jurisdiction = 4; + + // reference_id is any arbitrary string that can be use to reference project. + string reference_id = 5; } // MsgCreateProjectResponse is the Msg/CreateProject response type. diff --git a/x/ecocredit/core/msg_create_project.go b/x/ecocredit/core/msg_create_project.go index 14da642975..efe24a560f 100644 --- a/x/ecocredit/core/msg_create_project.go +++ b/x/ecocredit/core/msg_create_project.go @@ -8,6 +8,8 @@ import ( "github.com/regen-network/regen-ledger/x/ecocredit" ) +const MaxReferenceIdLength = 32 + var _ legacytx.LegacyMsg = &MsgCreateProject{} // Route implements the LegacyMsg interface. @@ -40,6 +42,10 @@ func (m *MsgCreateProject) ValidateBasic() error { return err } + if m.ReferenceId != "" && len(m.ReferenceId) > MaxReferenceIdLength { + return ecocredit.ErrMaxLimit.Wrap("reference id") + } + return nil } diff --git a/x/ecocredit/core/msg_create_project_test.go b/x/ecocredit/core/msg_create_project_test.go index 48ec5c4ffa..43b7622013 100644 --- a/x/ecocredit/core/msg_create_project_test.go +++ b/x/ecocredit/core/msg_create_project_test.go @@ -19,7 +19,7 @@ func TestMsgCreateProject(t *testing.T) { expErr bool }{ { - "valid msg without project id", + "valid msg without reference id", MsgCreateProject{ Issuer: issuer, ClassId: "A00", @@ -68,6 +68,28 @@ func TestMsgCreateProject(t *testing.T) { }, true, }, + { + "invalid: reference id is too large", + MsgCreateProject{ + Issuer: issuer, + ClassId: "A01", + Metadata: "metadata", + Jurisdiction: "AB-CDE FG1 345", + ReferenceId: strings.Repeat("x", 33), + }, + true, + }, + { + "valid: with reference id", + MsgCreateProject{ + Issuer: issuer, + ClassId: "A01", + Metadata: "metadata", + Jurisdiction: "AB-CDE FG1 345", + ReferenceId: strings.Repeat("x", 10), + }, + false, + }, } for _, test := range testCases { diff --git a/x/ecocredit/core/query.pb.go b/x/ecocredit/core/query.pb.go index e74bf0acac..d45b86954b 100644 --- a/x/ecocredit/core/query.pb.go +++ b/x/ecocredit/core/query.pb.go @@ -553,6 +553,116 @@ func (m *QueryProjectsResponse) GetPagination() *query.PageResponse { return nil } +// QueryProjectsByReferenceIdRequest is the Query/ProjectsByReferenceId request type. +type QueryProjectsByReferenceIdRequest struct { + // class_id is the unique identifier of the credit class to query. + ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` + // pagination defines an optional pagination for the request. + Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryProjectsByReferenceIdRequest) Reset() { *m = QueryProjectsByReferenceIdRequest{} } +func (m *QueryProjectsByReferenceIdRequest) String() string { return proto.CompactTextString(m) } +func (*QueryProjectsByReferenceIdRequest) ProtoMessage() {} +func (*QueryProjectsByReferenceIdRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_c85efa417eafb74b, []int{10} +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryProjectsByReferenceIdRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryProjectsByReferenceIdRequest.Merge(m, src) +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryProjectsByReferenceIdRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryProjectsByReferenceIdRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryProjectsByReferenceIdRequest proto.InternalMessageInfo + +func (m *QueryProjectsByReferenceIdRequest) GetReferenceId() string { + if m != nil { + return m.ReferenceId + } + return "" +} + +func (m *QueryProjectsByReferenceIdRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +// QueryProjectsByReferenceIdResponse is the Query/ProjectsByReferenceId response type. +type QueryProjectsByReferenceIdResponse struct { + // projects are the fetched projects. + Projects []*ProjectInfo `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` + // pagination defines the pagination in the response. + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryProjectsByReferenceIdResponse) Reset() { *m = QueryProjectsByReferenceIdResponse{} } +func (m *QueryProjectsByReferenceIdResponse) String() string { return proto.CompactTextString(m) } +func (*QueryProjectsByReferenceIdResponse) ProtoMessage() {} +func (*QueryProjectsByReferenceIdResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_c85efa417eafb74b, []int{11} +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryProjectsByReferenceIdResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryProjectsByReferenceIdResponse.Merge(m, src) +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryProjectsByReferenceIdResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryProjectsByReferenceIdResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryProjectsByReferenceIdResponse proto.InternalMessageInfo + +func (m *QueryProjectsByReferenceIdResponse) GetProjects() []*ProjectInfo { + if m != nil { + return m.Projects + } + return nil +} + +func (m *QueryProjectsByReferenceIdResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + // QueryProjectInfoRequest is the Query/Project request type. type QueryProjectInfoRequest struct { // project_id is the unique identifier of the project to query. @@ -563,7 +673,7 @@ func (m *QueryProjectInfoRequest) Reset() { *m = QueryProjectInfoRequest func (m *QueryProjectInfoRequest) String() string { return proto.CompactTextString(m) } func (*QueryProjectInfoRequest) ProtoMessage() {} func (*QueryProjectInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{10} + return fileDescriptor_c85efa417eafb74b, []int{12} } func (m *QueryProjectInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -609,7 +719,7 @@ func (m *QueryProjectInfoResponse) Reset() { *m = QueryProjectInfoRespon func (m *QueryProjectInfoResponse) String() string { return proto.CompactTextString(m) } func (*QueryProjectInfoResponse) ProtoMessage() {} func (*QueryProjectInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{11} + return fileDescriptor_c85efa417eafb74b, []int{13} } func (m *QueryProjectInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -657,7 +767,7 @@ func (m *QueryBatchesRequest) Reset() { *m = QueryBatchesRequest{} } func (m *QueryBatchesRequest) String() string { return proto.CompactTextString(m) } func (*QueryBatchesRequest) ProtoMessage() {} func (*QueryBatchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{12} + return fileDescriptor_c85efa417eafb74b, []int{14} } func (m *QueryBatchesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -712,7 +822,7 @@ func (m *QueryBatchesResponse) Reset() { *m = QueryBatchesResponse{} } func (m *QueryBatchesResponse) String() string { return proto.CompactTextString(m) } func (*QueryBatchesResponse) ProtoMessage() {} func (*QueryBatchesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{13} + return fileDescriptor_c85efa417eafb74b, []int{15} } func (m *QueryBatchesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -767,7 +877,7 @@ func (m *QueryBatchesByIssuerRequest) Reset() { *m = QueryBatchesByIssue func (m *QueryBatchesByIssuerRequest) String() string { return proto.CompactTextString(m) } func (*QueryBatchesByIssuerRequest) ProtoMessage() {} func (*QueryBatchesByIssuerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{14} + return fileDescriptor_c85efa417eafb74b, []int{16} } func (m *QueryBatchesByIssuerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -822,7 +932,7 @@ func (m *QueryBatchesByIssuerResponse) Reset() { *m = QueryBatchesByIssu func (m *QueryBatchesByIssuerResponse) String() string { return proto.CompactTextString(m) } func (*QueryBatchesByIssuerResponse) ProtoMessage() {} func (*QueryBatchesByIssuerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{15} + return fileDescriptor_c85efa417eafb74b, []int{17} } func (m *QueryBatchesByIssuerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -877,7 +987,7 @@ func (m *QueryBatchesByClassRequest) Reset() { *m = QueryBatchesByClassR func (m *QueryBatchesByClassRequest) String() string { return proto.CompactTextString(m) } func (*QueryBatchesByClassRequest) ProtoMessage() {} func (*QueryBatchesByClassRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{16} + return fileDescriptor_c85efa417eafb74b, []int{18} } func (m *QueryBatchesByClassRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -932,7 +1042,7 @@ func (m *QueryBatchesByClassResponse) Reset() { *m = QueryBatchesByClass func (m *QueryBatchesByClassResponse) String() string { return proto.CompactTextString(m) } func (*QueryBatchesByClassResponse) ProtoMessage() {} func (*QueryBatchesByClassResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{17} + return fileDescriptor_c85efa417eafb74b, []int{19} } func (m *QueryBatchesByClassResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -985,7 +1095,7 @@ func (m *QueryBatchInfoRequest) Reset() { *m = QueryBatchInfoRequest{} } func (m *QueryBatchInfoRequest) String() string { return proto.CompactTextString(m) } func (*QueryBatchInfoRequest) ProtoMessage() {} func (*QueryBatchInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{18} + return fileDescriptor_c85efa417eafb74b, []int{20} } func (m *QueryBatchInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1031,7 +1141,7 @@ func (m *QueryBatchInfoResponse) Reset() { *m = QueryBatchInfoResponse{} func (m *QueryBatchInfoResponse) String() string { return proto.CompactTextString(m) } func (*QueryBatchInfoResponse) ProtoMessage() {} func (*QueryBatchInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{19} + return fileDescriptor_c85efa417eafb74b, []int{21} } func (m *QueryBatchInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1079,7 +1189,7 @@ func (m *QueryBalanceRequest) Reset() { *m = QueryBalanceRequest{} } func (m *QueryBalanceRequest) String() string { return proto.CompactTextString(m) } func (*QueryBalanceRequest) ProtoMessage() {} func (*QueryBalanceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{20} + return fileDescriptor_c85efa417eafb74b, []int{22} } func (m *QueryBalanceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1132,7 +1242,7 @@ func (m *QueryBalanceResponse) Reset() { *m = QueryBalanceResponse{} } func (m *QueryBalanceResponse) String() string { return proto.CompactTextString(m) } func (*QueryBalanceResponse) ProtoMessage() {} func (*QueryBalanceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{21} + return fileDescriptor_c85efa417eafb74b, []int{23} } func (m *QueryBalanceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1180,7 +1290,7 @@ func (m *QueryBalancesRequest) Reset() { *m = QueryBalancesRequest{} } func (m *QueryBalancesRequest) String() string { return proto.CompactTextString(m) } func (*QueryBalancesRequest) ProtoMessage() {} func (*QueryBalancesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{22} + return fileDescriptor_c85efa417eafb74b, []int{24} } func (m *QueryBalancesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1236,7 +1346,7 @@ func (m *QueryBalancesResponse) Reset() { *m = QueryBalancesResponse{} } func (m *QueryBalancesResponse) String() string { return proto.CompactTextString(m) } func (*QueryBalancesResponse) ProtoMessage() {} func (*QueryBalancesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{23} + return fileDescriptor_c85efa417eafb74b, []int{25} } func (m *QueryBalancesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1289,7 +1399,7 @@ func (m *QuerySupplyRequest) Reset() { *m = QuerySupplyRequest{} } func (m *QuerySupplyRequest) String() string { return proto.CompactTextString(m) } func (*QuerySupplyRequest) ProtoMessage() {} func (*QuerySupplyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{24} + return fileDescriptor_c85efa417eafb74b, []int{26} } func (m *QuerySupplyRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1342,7 +1452,7 @@ func (m *QuerySupplyResponse) Reset() { *m = QuerySupplyResponse{} } func (m *QuerySupplyResponse) String() string { return proto.CompactTextString(m) } func (*QuerySupplyResponse) ProtoMessage() {} func (*QuerySupplyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{25} + return fileDescriptor_c85efa417eafb74b, []int{27} } func (m *QuerySupplyResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1400,7 +1510,7 @@ func (m *QueryCreditTypesRequest) Reset() { *m = QueryCreditTypesRequest func (m *QueryCreditTypesRequest) String() string { return proto.CompactTextString(m) } func (*QueryCreditTypesRequest) ProtoMessage() {} func (*QueryCreditTypesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{26} + return fileDescriptor_c85efa417eafb74b, []int{28} } func (m *QueryCreditTypesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1439,7 +1549,7 @@ func (m *QueryCreditTypesResponse) Reset() { *m = QueryCreditTypesRespon func (m *QueryCreditTypesResponse) String() string { return proto.CompactTextString(m) } func (*QueryCreditTypesResponse) ProtoMessage() {} func (*QueryCreditTypesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{27} + return fileDescriptor_c85efa417eafb74b, []int{29} } func (m *QueryCreditTypesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1483,7 +1593,7 @@ func (m *QueryParamsRequest) Reset() { *m = QueryParamsRequest{} } func (m *QueryParamsRequest) String() string { return proto.CompactTextString(m) } func (*QueryParamsRequest) ProtoMessage() {} func (*QueryParamsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{28} + return fileDescriptor_c85efa417eafb74b, []int{30} } func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1522,7 +1632,7 @@ func (m *QueryParamsResponse) Reset() { *m = QueryParamsResponse{} } func (m *QueryParamsResponse) String() string { return proto.CompactTextString(m) } func (*QueryParamsResponse) ProtoMessage() {} func (*QueryParamsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{29} + return fileDescriptor_c85efa417eafb74b, []int{31} } func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1575,7 +1685,7 @@ func (m *ClassInfo) Reset() { *m = ClassInfo{} } func (m *ClassInfo) String() string { return proto.CompactTextString(m) } func (*ClassInfo) ProtoMessage() {} func (*ClassInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{30} + return fileDescriptor_c85efa417eafb74b, []int{32} } func (m *ClassInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1646,13 +1756,15 @@ type ProjectInfo struct { Jurisdiction string `protobuf:"bytes,4,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` // metadata is the arbitrary metadata attached to the project. Metadata string `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` + // reference_id is any arbitrary string that can be use to reference project. + ReferenceId string `protobuf:"bytes,6,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } func (m *ProjectInfo) Reset() { *m = ProjectInfo{} } func (m *ProjectInfo) String() string { return proto.CompactTextString(m) } func (*ProjectInfo) ProtoMessage() {} func (*ProjectInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{31} + return fileDescriptor_c85efa417eafb74b, []int{33} } func (m *ProjectInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1716,6 +1828,13 @@ func (m *ProjectInfo) GetMetadata() string { return "" } +func (m *ProjectInfo) GetReferenceId() string { + if m != nil { + return m.ReferenceId + } + return "" +} + // BatchInfo is the human-readable credit batch information. type BatchInfo struct { // issuer is the address that created the batch and the address authorized to @@ -1746,7 +1865,7 @@ func (m *BatchInfo) Reset() { *m = BatchInfo{} } func (m *BatchInfo) String() string { return proto.CompactTextString(m) } func (*BatchInfo) ProtoMessage() {} func (*BatchInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{32} + return fileDescriptor_c85efa417eafb74b, []int{34} } func (m *BatchInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1849,7 +1968,7 @@ func (m *BatchBalanceInfo) Reset() { *m = BatchBalanceInfo{} } func (m *BatchBalanceInfo) String() string { return proto.CompactTextString(m) } func (*BatchBalanceInfo) ProtoMessage() {} func (*BatchBalanceInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{33} + return fileDescriptor_c85efa417eafb74b, []int{35} } func (m *BatchBalanceInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1924,6 +2043,8 @@ func init() { proto.RegisterType((*QueryClassIssuersResponse)(nil), "regen.ecocredit.v1.QueryClassIssuersResponse") proto.RegisterType((*QueryProjectsRequest)(nil), "regen.ecocredit.v1.QueryProjectsRequest") proto.RegisterType((*QueryProjectsResponse)(nil), "regen.ecocredit.v1.QueryProjectsResponse") + proto.RegisterType((*QueryProjectsByReferenceIdRequest)(nil), "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest") + proto.RegisterType((*QueryProjectsByReferenceIdResponse)(nil), "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse") proto.RegisterType((*QueryProjectInfoRequest)(nil), "regen.ecocredit.v1.QueryProjectInfoRequest") proto.RegisterType((*QueryProjectInfoResponse)(nil), "regen.ecocredit.v1.QueryProjectInfoResponse") proto.RegisterType((*QueryBatchesRequest)(nil), "regen.ecocredit.v1.QueryBatchesRequest") @@ -1953,106 +2074,112 @@ func init() { func init() { proto.RegisterFile("regen/ecocredit/v1/query.proto", fileDescriptor_c85efa417eafb74b) } var fileDescriptor_c85efa417eafb74b = []byte{ - // 1577 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5d, 0x6f, 0xd4, 0x56, - 0x13, 0xc6, 0x0b, 0x49, 0x36, 0x93, 0x10, 0xd0, 0x79, 0xf3, 0xf2, 0x06, 0x03, 0x4b, 0xe4, 0xb7, - 0x25, 0x09, 0x10, 0x9b, 0x4d, 0xc4, 0x97, 0x50, 0x3f, 0x12, 0x50, 0xab, 0x5c, 0x54, 0x4a, 0xb7, - 0xb4, 0x17, 0x95, 0xd0, 0xca, 0x6b, 0x1f, 0x96, 0xa5, 0xbb, 0xf6, 0x62, 0x7b, 0x03, 0xe9, 0x76, - 0x5b, 0xb5, 0x3f, 0xa0, 0x45, 0x45, 0x55, 0x91, 0xaa, 0xaa, 0x9f, 0x37, 0xfd, 0x0d, 0xfd, 0x03, - 0xbd, 0x44, 0xea, 0x4d, 0x2f, 0x2b, 0xe8, 0x0f, 0xa9, 0x3c, 0x67, 0x8e, 0xd7, 0xde, 0x38, 0xb6, - 0x85, 0x56, 0x88, 0xab, 0xec, 0x39, 0x9e, 0x39, 0xf3, 0xcc, 0x9c, 0x99, 0x39, 0xf3, 0x04, 0x2a, - 0x1e, 0x6f, 0x72, 0xc7, 0xe0, 0x96, 0x6b, 0x79, 0xdc, 0x6e, 0x05, 0xc6, 0x4e, 0xd5, 0xb8, 0xd7, - 0xe3, 0xde, 0xae, 0xde, 0xf5, 0xdc, 0xc0, 0x65, 0x0c, 0xbf, 0xeb, 0xd1, 0x77, 0x7d, 0xa7, 0xaa, - 0x9e, 0x6c, 0xba, 0x6e, 0xb3, 0xcd, 0x0d, 0xb3, 0xdb, 0x32, 0x4c, 0xc7, 0x71, 0x03, 0x33, 0x68, - 0xb9, 0x8e, 0x2f, 0x34, 0xd4, 0xd3, 0xf4, 0x15, 0x57, 0x8d, 0xde, 0x6d, 0x23, 0x68, 0x75, 0xb8, - 0x1f, 0x98, 0x9d, 0x2e, 0x09, 0x9c, 0xb5, 0x5c, 0xbf, 0xe3, 0xfa, 0x46, 0xc3, 0xf4, 0xb9, 0xb0, - 0x65, 0xec, 0x54, 0x1b, 0x3c, 0x30, 0xab, 0x46, 0xd7, 0x6c, 0xb6, 0x1c, 0x3c, 0x8d, 0x64, 0xd3, - 0xe0, 0xf9, 0x81, 0x19, 0xf0, 0x8c, 0xef, 0xc1, 0x6e, 0x97, 0x13, 0x18, 0xed, 0x16, 0xfc, 0xe7, - 0xdd, 0xd0, 0xc2, 0xf5, 0xb6, 0xe9, 0xfb, 0xdc, 0xaf, 0xf1, 0x7b, 0x3d, 0xee, 0x07, 0xec, 0x2d, - 0x80, 0xa1, 0xa9, 0x05, 0x65, 0x51, 0x59, 0x9e, 0x59, 0x3b, 0xa3, 0x0b, 0x5c, 0x7a, 0x88, 0x4b, - 0x17, 0x31, 0x20, 0x5c, 0xfa, 0xb6, 0xd9, 0xe4, 0xa4, 0x5b, 0x8b, 0x69, 0x6a, 0x8f, 0x15, 0x98, - 0x4f, 0x9e, 0xef, 0x77, 0x5d, 0xc7, 0xe7, 0xec, 0x32, 0x4c, 0x59, 0x62, 0x6b, 0x41, 0x59, 0x3c, - 0xb8, 0x3c, 0xb3, 0x76, 0x4a, 0xdf, 0x1b, 0x48, 0x1d, 0xb5, 0xb6, 0x9c, 0xdb, 0x6e, 0x4d, 0x4a, - 0xb3, 0xb7, 0x13, 0xc8, 0x4a, 0x88, 0x6c, 0x29, 0x17, 0x99, 0xb0, 0x9a, 0x80, 0xf6, 0x31, 0xa8, - 0x71, 0x64, 0x9b, 0xbb, 0x1b, 0x76, 0xa7, 0xe5, 0xc8, 0x00, 0xcc, 0xc3, 0x84, 0x19, 0xae, 0xd1, - 0xf7, 0xe9, 0x9a, 0x58, 0x8c, 0x84, 0xa5, 0xf4, 0xdc, 0x61, 0xf9, 0x41, 0x81, 0x13, 0xa9, 0xc6, - 0x5f, 0x9a, 0xe8, 0xac, 0xc1, 0x7f, 0x87, 0x00, 0xd1, 0x06, 0x05, 0xe6, 0x38, 0x94, 0xd1, 0x58, - 0xbd, 0x65, 0x53, 0x6c, 0x84, 0xf1, 0x2d, 0x5b, 0x7b, 0x07, 0x8e, 0x8d, 0xea, 0x90, 0x3f, 0xeb, - 0x30, 0x81, 0x42, 0x94, 0x49, 0x39, 0xde, 0x08, 0x59, 0x6d, 0x00, 0x0b, 0xb1, 0xe3, 0x7c, 0xbf, - 0xc7, 0x3d, 0x3f, 0x1f, 0xc5, 0xd8, 0xee, 0xe8, 0x53, 0x38, 0x9e, 0x62, 0x9e, 0x1c, 0x5a, 0x80, - 0xa9, 0x96, 0xd8, 0xc2, 0x0b, 0x9a, 0xae, 0xc9, 0xe5, 0xf8, 0x6e, 0x60, 0x97, 0x2a, 0x67, 0xdb, - 0x73, 0xef, 0x72, 0x2b, 0x78, 0x91, 0xae, 0x7f, 0xaf, 0xd0, 0xed, 0x0f, 0x6d, 0x93, 0xdf, 0xd7, - 0xa0, 0xdc, 0xa5, 0x3d, 0xca, 0xcc, 0xd3, 0x69, 0x77, 0x49, 0x7a, 0x78, 0x9b, 0x91, 0xc2, 0xf8, - 0x42, 0x73, 0x05, 0xfe, 0x17, 0x87, 0x17, 0x4f, 0xcf, 0x53, 0x00, 0x64, 0x6f, 0x18, 0x9f, 0x69, - 0xda, 0xd9, 0xb2, 0xb5, 0xf7, 0x29, 0xa7, 0x12, 0x9a, 0xe4, 0xdb, 0x55, 0x98, 0x22, 0x41, 0x4a, - 0xd3, 0x5c, 0xd7, 0xa4, 0xbc, 0xf6, 0x09, 0x75, 0xd1, 0x4d, 0x33, 0xb0, 0xee, 0x0c, 0xbb, 0x68, - 0x36, 0x98, 0xb1, 0x5d, 0x57, 0xd4, 0x64, 0x23, 0xf3, 0xc3, 0x36, 0xd2, 0x10, 0x5b, 0x59, 0x6d, - 0x04, 0xb5, 0x84, 0x3f, 0x24, 0x3d, 0xbe, 0x9b, 0x1a, 0x50, 0x9f, 0x23, 0x64, 0x9b, 0xbb, 0xa2, - 0x90, 0x64, 0x80, 0x8e, 0xc1, 0xa4, 0xa8, 0x1b, 0x0a, 0x0e, 0xad, 0xc6, 0x16, 0x99, 0x1f, 0x15, - 0x38, 0x99, 0x6e, 0xff, 0xa5, 0x89, 0xd0, 0x67, 0xf4, 0x0c, 0x45, 0x08, 0xb1, 0xdf, 0xbc, 0xc0, - 0x62, 0x8f, 0xde, 0xa2, 0x51, 0x04, 0x2f, 0x4d, 0x88, 0xae, 0x50, 0x37, 0x1a, 0xda, 0xa0, 0xe8, - 0x9c, 0x86, 0x19, 0x34, 0x56, 0xb7, 0xb9, 0xe3, 0x76, 0x28, 0x40, 0x80, 0x5b, 0x37, 0xc2, 0x9d, - 0xe8, 0x45, 0x8a, 0x69, 0x0e, 0x5f, 0x24, 0x94, 0xcb, 0x7a, 0x91, 0x86, 0x5a, 0x42, 0x56, 0xdb, - 0x8e, 0xca, 0xbc, 0x6d, 0x3a, 0x96, 0x8c, 0x66, 0xf8, 0x18, 0x98, 0x96, 0xe5, 0xf6, 0x9c, 0x40, - 0xde, 0x11, 0x2d, 0x47, 0x01, 0x96, 0xf6, 0x00, 0xfc, 0x20, 0xaa, 0x5c, 0x3a, 0x91, 0xe0, 0xbd, - 0x1e, 0x06, 0x1d, 0xb7, 0x08, 0xe0, 0x2b, 0xfb, 0x02, 0x24, 0x55, 0x19, 0x7b, 0x5c, 0x68, 0x0f, - 0x92, 0xe7, 0xfa, 0xf9, 0x50, 0xc7, 0x95, 0x4e, 0x3f, 0x2b, 0xd1, 0x6d, 0x49, 0xd3, 0xe4, 0xd3, - 0x9b, 0x50, 0x26, 0x78, 0x32, 0x93, 0x8a, 0x39, 0x15, 0x69, 0x8d, 0x2f, 0xa3, 0x2e, 0x02, 0x43, - 0x8c, 0xef, 0xf5, 0xba, 0xdd, 0xf6, 0x6e, 0xe1, 0x74, 0x7a, 0xa8, 0x50, 0x02, 0x48, 0x3d, 0xf2, - 0x6c, 0x09, 0x8e, 0x04, 0x9e, 0x69, 0x9b, 0x8d, 0x36, 0xaf, 0xfb, 0xf8, 0x89, 0x94, 0xe7, 0xe4, - 0xb6, 0x50, 0x60, 0xaf, 0xc2, 0x9c, 0xc7, 0x83, 0x96, 0xc7, 0x6d, 0x29, 0x27, 0x52, 0xe2, 0x30, - 0xed, 0x92, 0xd8, 0x0a, 0x1c, 0xb5, 0x42, 0x8f, 0xdb, 0x6d, 0x6e, 0xd7, 0xcd, 0x0e, 0x5e, 0xd7, - 0x41, 0x14, 0x3c, 0x12, 0xed, 0x6f, 0xe0, 0xb6, 0x76, 0x9c, 0x9e, 0xc2, 0xeb, 0x18, 0xbf, 0x9b, - 0xe1, 0x64, 0x4f, 0xee, 0x68, 0xb7, 0xe4, 0xfc, 0x14, 0xff, 0x44, 0x88, 0x37, 0x60, 0x56, 0x44, - 0xbc, 0x8e, 0x64, 0x80, 0xee, 0xa3, 0x92, 0x3a, 0x97, 0x45, 0xea, 0xb5, 0x19, 0x6b, 0x78, 0x94, - 0x36, 0x4f, 0x31, 0xdc, 0x36, 0x3d, 0xb3, 0x13, 0x19, 0xdd, 0xa2, 0x08, 0xc9, 0x5d, 0xb2, 0xb7, - 0x06, 0x93, 0x5d, 0xdc, 0xa1, 0x74, 0x56, 0x53, 0x9f, 0x56, 0xa1, 0x43, 0x92, 0x5a, 0x1f, 0xa6, - 0xa3, 0x99, 0x90, 0xcd, 0x41, 0x29, 0x6a, 0x81, 0xa5, 0x96, 0x3d, 0x9c, 0xcf, 0x4b, 0xf1, 0xf9, - 0x5c, 0x85, 0x72, 0x87, 0x07, 0xa6, 0x6d, 0x06, 0x26, 0x05, 0x2c, 0x5a, 0xb3, 0xf3, 0xc0, 0x62, - 0x2e, 0xd7, 0xcd, 0x46, 0xc3, 0xe3, 0x3b, 0x0b, 0x87, 0x50, 0xea, 0xe8, 0xd0, 0xb1, 0x0d, 0xdc, - 0xd7, 0xbe, 0x54, 0x60, 0x26, 0xf6, 0xd4, 0x17, 0xb4, 0x1f, 0x6f, 0xd7, 0x07, 0x93, 0xed, 0x5a, - 0x83, 0xd9, 0xbb, 0x3d, 0xaf, 0xe5, 0xdb, 0x2d, 0x0b, 0xb3, 0x57, 0x18, 0x4e, 0xec, 0x25, 0xe0, - 0x4f, 0x24, 0xe1, 0x6b, 0xbf, 0x97, 0x60, 0x3a, 0x6a, 0x48, 0xfb, 0x3e, 0x9c, 0xc9, 0x89, 0xa3, - 0x34, 0x3a, 0x71, 0xcc, 0xc3, 0x84, 0xc8, 0x6d, 0x01, 0x4e, 0x2c, 0x12, 0x66, 0x0f, 0x8d, 0x44, - 0xed, 0x2a, 0x80, 0x1f, 0x98, 0x5e, 0x50, 0xb7, 0xcd, 0x80, 0x23, 0xa8, 0xf0, 0xf2, 0x04, 0x83, - 0xd5, 0x25, 0x83, 0xd5, 0x6f, 0x4a, 0x06, 0x5b, 0x9b, 0x46, 0xe9, 0x1b, 0x66, 0xc0, 0xd9, 0x45, - 0x28, 0x73, 0xc7, 0x16, 0x8a, 0x93, 0xb9, 0x8a, 0x53, 0xdc, 0xb1, 0x51, 0xed, 0x0d, 0x38, 0x1c, - 0x3a, 0x13, 0xe6, 0xb9, 0xd0, 0x9d, 0xca, 0xd5, 0x9d, 0x95, 0x0a, 0x78, 0x00, 0x83, 0x43, 0x6e, - 0x97, 0x3b, 0x0b, 0xe5, 0x45, 0x65, 0xb9, 0x5c, 0xc3, 0xdf, 0xe1, 0x23, 0x77, 0x74, 0xb4, 0xb1, - 0x60, 0x33, 0xb4, 0x6d, 0x8f, 0x13, 0x2f, 0x09, 0x9b, 0xa1, 0x58, 0xe6, 0xf6, 0xed, 0x30, 0x64, - 0xb2, 0xb4, 0x65, 0xa2, 0xc9, 0x75, 0x78, 0x2c, 0x95, 0x33, 0x45, 0x53, 0x2e, 0x43, 0x2d, 0xee, - 0x5b, 0x9e, 0x7b, 0x9f, 0xdb, 0xf2, 0x7e, 0xe5, 0x7a, 0xed, 0x21, 0x83, 0x09, 0xac, 0x1c, 0xf6, - 0xb9, 0x02, 0x53, 0xc4, 0x0b, 0xd9, 0x52, 0x5a, 0x9d, 0xa4, 0x10, 0x76, 0x75, 0x39, 0x5f, 0x50, - 0x94, 0xa2, 0xf6, 0xff, 0x2f, 0xfe, 0xfc, 0xe7, 0x51, 0xe9, 0x14, 0x3b, 0x61, 0xa4, 0xfc, 0x6b, - 0x40, 0xf2, 0xc8, 0x5f, 0x15, 0x98, 0x4b, 0x72, 0x53, 0xa6, 0xe7, 0x59, 0x48, 0x32, 0x68, 0xd5, - 0x28, 0x2c, 0x4f, 0xc0, 0xaa, 0x08, 0xec, 0x1c, 0x5b, 0xc9, 0x00, 0x66, 0x60, 0x9d, 0x19, 0x7d, - 0xfc, 0x33, 0x60, 0x5f, 0x2b, 0xf1, 0x1e, 0xb1, 0x92, 0x6d, 0x31, 0x36, 0x39, 0xa8, 0x67, 0x8b, - 0x88, 0x12, 0x2e, 0x1d, 0x71, 0x2d, 0xb3, 0x33, 0x59, 0xb8, 0xfa, 0xb2, 0xee, 0x07, 0xec, 0x17, - 0x05, 0x66, 0xe3, 0xa4, 0x91, 0x9d, 0xcf, 0x31, 0x96, 0xa0, 0xb6, 0xea, 0x6a, 0x41, 0x69, 0x42, - 0x77, 0x09, 0xd1, 0x5d, 0x60, 0x7a, 0x31, 0x74, 0x86, 0xe4, 0xa9, 0x8f, 0x15, 0x28, 0x4b, 0x7a, - 0xc7, 0xf6, 0xcf, 0x9e, 0x11, 0xf6, 0xa9, 0xae, 0x14, 0x90, 0x24, 0x64, 0x97, 0x11, 0x59, 0x95, - 0x19, 0x05, 0x91, 0x45, 0x3c, 0xf1, 0xbb, 0x91, 0xde, 0x7b, 0x2e, 0xcf, 0x66, 0xfc, 0x66, 0xcf, - 0x17, 0x13, 0x2e, 0x92, 0x73, 0x12, 0x90, 0xd1, 0x1f, 0xf6, 0xd4, 0x01, 0xfb, 0x56, 0x81, 0x29, - 0x1a, 0x95, 0x33, 0xca, 0x33, 0xc9, 0x04, 0x33, 0xca, 0x73, 0x84, 0xb3, 0x69, 0x57, 0x11, 0xd1, - 0x3a, 0xab, 0x16, 0x46, 0x64, 0xc8, 0x81, 0xfb, 0x37, 0x05, 0x8e, 0x8c, 0x10, 0x1d, 0x66, 0xe4, - 0x19, 0x1e, 0xa1, 0x64, 0xea, 0x85, 0xe2, 0x0a, 0x84, 0x78, 0x1d, 0x11, 0xaf, 0xb2, 0x73, 0x69, - 0x88, 0x09, 0x1b, 0xa5, 0x9d, 0xd1, 0x17, 0x7f, 0x07, 0x21, 0xd6, 0xb9, 0x24, 0xe1, 0xc8, 0x68, - 0x30, 0xa9, 0xdc, 0x48, 0x35, 0x0a, 0xcb, 0x3f, 0x67, 0xa9, 0xc8, 0xb8, 0x7e, 0xa3, 0xc4, 0x9f, - 0xde, 0x95, 0x6c, 0xb3, 0xc5, 0xba, 0xcc, 0x1e, 0x42, 0x92, 0x9d, 0x89, 0x32, 0x8a, 0xfd, 0xd8, - 0xab, 0x34, 0x60, 0x3f, 0x61, 0x26, 0xe2, 0x7b, 0x96, 0x99, 0x89, 0x71, 0xb2, 0x92, 0x99, 0x89, - 0x09, 0x0e, 0xa2, 0x5d, 0x47, 0x44, 0xaf, 0xb1, 0x6b, 0x85, 0x11, 0x19, 0x34, 0xa9, 0x1b, 0x7d, - 0x62, 0x15, 0x03, 0xf6, 0x95, 0x02, 0x65, 0xc9, 0x04, 0x58, 0xae, 0xed, 0x02, 0x6d, 0x66, 0x94, - 0x56, 0x64, 0xb7, 0x67, 0x49, 0x1d, 0x62, 0x88, 0x1e, 0x29, 0x30, 0x49, 0x73, 0xf6, 0x99, 0x7d, - 0xad, 0x24, 0x88, 0x81, 0xba, 0x94, 0x2b, 0x47, 0x58, 0xae, 0x20, 0x96, 0x35, 0x76, 0xa1, 0x78, - 0xc8, 0x04, 0x0f, 0x08, 0x5f, 0xb2, 0x99, 0xd8, 0xa0, 0x9e, 0xd1, 0xf3, 0xf6, 0x4e, 0xfa, 0x19, - 0x3d, 0x2f, 0x65, 0xf6, 0xd7, 0x96, 0x11, 0xa4, 0xc6, 0x16, 0x53, 0xcb, 0x00, 0x7f, 0xad, 0x22, - 0x2b, 0x60, 0x03, 0x98, 0x14, 0x33, 0x79, 0x46, 0xa4, 0x12, 0xe3, 0x7f, 0x46, 0xa4, 0x92, 0x84, - 0x40, 0xd3, 0x10, 0xc4, 0x49, 0xa6, 0xa6, 0xb6, 0x39, 0x94, 0xdd, 0xdc, 0xfe, 0xe3, 0x69, 0x45, - 0x79, 0xf2, 0xb4, 0xa2, 0xfc, 0xfd, 0xb4, 0xa2, 0x3c, 0x7c, 0x56, 0x39, 0xf0, 0xe4, 0x59, 0xe5, - 0xc0, 0x5f, 0xcf, 0x2a, 0x07, 0x3e, 0xbc, 0xd4, 0x6c, 0x05, 0x77, 0x7a, 0x0d, 0xdd, 0x72, 0x3b, - 0x42, 0x7f, 0xd5, 0xe1, 0xc1, 0x7d, 0xd7, 0xfb, 0x88, 0x56, 0x6d, 0x6e, 0x37, 0xb9, 0x67, 0x3c, - 0x88, 0x1d, 0x6b, 0xb9, 0x1e, 0x6f, 0x4c, 0xe2, 0xf0, 0xb8, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x8e, 0x2e, 0xc7, 0x7d, 0xd5, 0x19, 0x00, 0x00, + // 1666 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4b, 0x6f, 0xd4, 0xd6, + 0x17, 0xc7, 0x03, 0x49, 0x26, 0x27, 0x21, 0xa0, 0x4b, 0xe0, 0x1f, 0x0c, 0x0c, 0xc1, 0xff, 0x96, + 0x24, 0x40, 0x6c, 0x92, 0x88, 0x97, 0x50, 0x1f, 0x09, 0xa8, 0x55, 0x16, 0x95, 0xd2, 0x29, 0xed, + 0xa2, 0x12, 0x8a, 0x3c, 0xf6, 0x65, 0x30, 0x9d, 0xb1, 0x07, 0xdb, 0x13, 0x98, 0x4e, 0xa7, 0x55, + 0xfb, 0x01, 0x5a, 0x54, 0x54, 0x15, 0xa9, 0xaa, 0xfa, 0xdc, 0xb4, 0xbb, 0xae, 0xfb, 0x05, 0x2a, + 0x75, 0x83, 0xd4, 0x4d, 0x57, 0x55, 0x05, 0xfd, 0x20, 0x95, 0xef, 0x3d, 0xd7, 0xaf, 0x38, 0xb6, + 0x8b, 0x46, 0x28, 0xab, 0x99, 0x7b, 0x7d, 0x8e, 0xcf, 0xef, 0x9c, 0x7b, 0x1e, 0xf7, 0x67, 0xa8, + 0xb9, 0xb4, 0x49, 0x6d, 0x8d, 0x1a, 0x8e, 0xe1, 0x52, 0xd3, 0xf2, 0xb5, 0xad, 0x25, 0xed, 0x6e, + 0x97, 0xba, 0x3d, 0xb5, 0xe3, 0x3a, 0xbe, 0x43, 0x08, 0x7b, 0xae, 0x86, 0xcf, 0xd5, 0xad, 0x25, + 0xf9, 0x78, 0xd3, 0x71, 0x9a, 0x2d, 0xaa, 0xe9, 0x1d, 0x4b, 0xd3, 0x6d, 0xdb, 0xf1, 0x75, 0xdf, + 0x72, 0x6c, 0x8f, 0x6b, 0xc8, 0x27, 0xf1, 0x29, 0x5b, 0x35, 0xba, 0xb7, 0x34, 0xdf, 0x6a, 0x53, + 0xcf, 0xd7, 0xdb, 0x1d, 0x14, 0x38, 0x63, 0x38, 0x5e, 0xdb, 0xf1, 0xb4, 0x86, 0xee, 0x51, 0x6e, + 0x4b, 0xdb, 0x5a, 0x6a, 0x50, 0x5f, 0x5f, 0xd2, 0x3a, 0x7a, 0xd3, 0xb2, 0xd9, 0xdb, 0x50, 0x36, + 0x0b, 0x9e, 0xe7, 0xeb, 0x3e, 0xcd, 0x79, 0xee, 0xf7, 0x3a, 0x14, 0xc1, 0x28, 0x37, 0xe1, 0xd0, + 0x9b, 0x81, 0x85, 0x6b, 0x2d, 0xdd, 0xf3, 0xa8, 0x57, 0xa7, 0x77, 0xbb, 0xd4, 0xf3, 0xc9, 0x6b, + 0x00, 0x91, 0xa9, 0x19, 0x69, 0x56, 0x9a, 0x9f, 0x58, 0x3e, 0xad, 0x72, 0x5c, 0x6a, 0x80, 0x4b, + 0xe5, 0x31, 0x40, 0x5c, 0xea, 0x86, 0xde, 0xa4, 0xa8, 0x5b, 0x8f, 0x69, 0x2a, 0x8f, 0x24, 0x98, + 0x4e, 0xbe, 0xdf, 0xeb, 0x38, 0xb6, 0x47, 0xc9, 0x25, 0x18, 0x33, 0xf8, 0xd6, 0x8c, 0x34, 0xbb, + 0x77, 0x7e, 0x62, 0xf9, 0x84, 0xba, 0x3d, 0x90, 0x2a, 0xd3, 0x5a, 0xb7, 0x6f, 0x39, 0x75, 0x21, + 0x4d, 0x5e, 0x4f, 0x20, 0xab, 0x30, 0x64, 0x73, 0x85, 0xc8, 0xb8, 0xd5, 0x04, 0xb4, 0xf7, 0x41, + 0x8e, 0x23, 0x5b, 0xeb, 0xad, 0x9a, 0x6d, 0xcb, 0x16, 0x01, 0x98, 0x86, 0x11, 0x3d, 0x58, 0x33, + 0xdf, 0xc7, 0xeb, 0x7c, 0x91, 0x0a, 0x4b, 0xe5, 0x99, 0xc3, 0xf2, 0x8d, 0x04, 0xc7, 0x32, 0x8d, + 0xef, 0x9a, 0xe8, 0x2c, 0xc3, 0xe1, 0x08, 0x20, 0xb3, 0x81, 0x81, 0x39, 0x0a, 0x55, 0x66, 0x6c, + 0xd3, 0x32, 0x31, 0x36, 0xdc, 0xf8, 0xba, 0xa9, 0xbc, 0x01, 0x47, 0xd2, 0x3a, 0xe8, 0xcf, 0x0a, + 0x8c, 0x30, 0x21, 0xcc, 0xa4, 0x02, 0x6f, 0xb8, 0xac, 0x32, 0x80, 0x99, 0xd8, 0xeb, 0x3c, 0xaf, + 0x4b, 0x5d, 0xaf, 0x18, 0xc5, 0xd0, 0xce, 0xe8, 0x43, 0x38, 0x9a, 0x61, 0x1e, 0x1d, 0x9a, 0x81, + 0x31, 0x8b, 0x6f, 0xb1, 0x03, 0x1a, 0xaf, 0x8b, 0xe5, 0xf0, 0x4e, 0xa0, 0x87, 0x95, 0xb3, 0xe1, + 0x3a, 0x77, 0xa8, 0xe1, 0x3f, 0x4f, 0xd7, 0xbf, 0x96, 0xf0, 0xf4, 0x23, 0xdb, 0xe8, 0xf7, 0x55, + 0xa8, 0x76, 0x70, 0x0f, 0x33, 0xf3, 0x64, 0xd6, 0x59, 0xa2, 0x1e, 0x3b, 0xcd, 0x50, 0x61, 0x78, + 0xa1, 0xf9, 0x54, 0x82, 0x53, 0x09, 0x7c, 0x6b, 0xbd, 0x3a, 0xbd, 0x45, 0x5d, 0x6a, 0x1b, 0x74, + 0xdd, 0x14, 0x81, 0x3a, 0x05, 0x93, 0xae, 0xd8, 0x8d, 0x82, 0x35, 0xe1, 0x46, 0x92, 0x43, 0x0b, + 0xd8, 0xcf, 0x12, 0x28, 0x79, 0x80, 0x76, 0x55, 0xf4, 0x2e, 0xc3, 0xff, 0xe2, 0x58, 0xe3, 0xc5, + 0x7d, 0x02, 0x00, 0xed, 0x45, 0x01, 0x1b, 0xc7, 0x9d, 0x75, 0x53, 0x79, 0x1b, 0x2b, 0x32, 0xa1, + 0x89, 0xbe, 0x5d, 0x81, 0x31, 0x14, 0xc4, 0x22, 0x2f, 0x74, 0x4d, 0xc8, 0x2b, 0x1f, 0xe0, 0x0c, + 0x5a, 0xd3, 0x7d, 0xe3, 0x76, 0x34, 0x83, 0xf2, 0xc1, 0x0c, 0xed, 0xec, 0xc2, 0x11, 0x15, 0x9a, + 0x8f, 0x9a, 0x70, 0x83, 0x6f, 0xe5, 0x35, 0x61, 0xa6, 0xc5, 0xfd, 0x41, 0xe9, 0xe1, 0x9d, 0xd4, + 0x00, 0xa7, 0x04, 0x22, 0x5b, 0xeb, 0xf1, 0x36, 0x24, 0x02, 0x74, 0x04, 0x46, 0x79, 0xd7, 0xc1, + 0xe0, 0xe0, 0x6a, 0x68, 0x91, 0xf9, 0x56, 0x82, 0xe3, 0xd9, 0xf6, 0x77, 0x4d, 0x84, 0x3e, 0xc2, + 0x21, 0x1e, 0x22, 0x64, 0xdd, 0xfa, 0x39, 0xb6, 0xca, 0x70, 0x92, 0xa7, 0x11, 0xec, 0x9a, 0x10, + 0x5d, 0xc6, 0x5e, 0x1e, 0xd9, 0xc0, 0xe8, 0x9c, 0x84, 0x09, 0x66, 0x6c, 0xd3, 0xa4, 0xb6, 0xd3, + 0xc6, 0x00, 0x01, 0xdb, 0xba, 0x1e, 0xec, 0x84, 0xf3, 0x3c, 0xa6, 0x19, 0xcd, 0x73, 0x26, 0x97, + 0x37, 0xcf, 0x23, 0x2d, 0x2e, 0xab, 0x6c, 0x84, 0x65, 0xde, 0xd2, 0x6d, 0x43, 0x44, 0x33, 0x18, + 0xa5, 0xba, 0x61, 0x38, 0x5d, 0xdb, 0x17, 0x67, 0x84, 0xcb, 0x34, 0xc0, 0xca, 0x36, 0x80, 0xef, + 0x84, 0x95, 0x8b, 0x6f, 0x44, 0x78, 0x2f, 0x07, 0x41, 0x67, 0x5b, 0x08, 0xf0, 0x85, 0x1d, 0x01, + 0xa2, 0xaa, 0x88, 0x3d, 0x5b, 0x28, 0xf7, 0x93, 0xef, 0xf5, 0x8a, 0xa1, 0x0e, 0x2b, 0x9d, 0xbe, + 0x97, 0xc2, 0xd3, 0x12, 0xa6, 0xd1, 0xa7, 0x57, 0xa1, 0x8a, 0xf0, 0x44, 0x26, 0x95, 0x73, 0x2a, + 0xd4, 0x1a, 0x5e, 0x46, 0x5d, 0x00, 0xc2, 0x30, 0xbe, 0xd5, 0xed, 0x74, 0x5a, 0xbd, 0xd2, 0xe9, + 0xf4, 0x40, 0xc2, 0x04, 0x10, 0x7a, 0xe8, 0xd9, 0x1c, 0x1c, 0xf0, 0x5d, 0xdd, 0xd4, 0x1b, 0x2d, + 0xba, 0xe9, 0xb1, 0x47, 0xa8, 0x3c, 0x25, 0xb6, 0xb9, 0x02, 0x79, 0x11, 0xa6, 0x5c, 0xea, 0x5b, + 0x2e, 0x35, 0x85, 0x1c, 0x4f, 0x89, 0xfd, 0xb8, 0x8b, 0x62, 0x0b, 0x70, 0xd0, 0x08, 0x3c, 0x6e, + 0xb5, 0xa8, 0xb9, 0xa9, 0xb7, 0xd9, 0x71, 0xed, 0x65, 0x82, 0x07, 0xc2, 0xfd, 0x55, 0xb6, 0xad, + 0x1c, 0xc5, 0x51, 0x78, 0x8d, 0xc5, 0xef, 0x46, 0xc0, 0x8b, 0xd0, 0x1d, 0xe5, 0xa6, 0xb8, 0x7d, + 0xc6, 0x1f, 0x21, 0xe2, 0x55, 0x98, 0xe4, 0x11, 0xdf, 0x64, 0x54, 0x0a, 0xcf, 0xa3, 0x96, 0x79, + 0xab, 0x0d, 0xd5, 0xeb, 0x13, 0x46, 0xf4, 0x2a, 0x65, 0x1a, 0x63, 0xb8, 0xa1, 0xbb, 0x7a, 0x3b, + 0x34, 0xba, 0x8e, 0x11, 0x12, 0xbb, 0x68, 0x6f, 0x19, 0x46, 0x3b, 0x6c, 0x07, 0xd3, 0x59, 0xce, + 0x1c, 0xad, 0x5c, 0x07, 0x25, 0x95, 0x3e, 0x8c, 0x87, 0x37, 0x6a, 0x32, 0x05, 0x95, 0xb0, 0x05, + 0x56, 0x2c, 0x33, 0x62, 0x37, 0x95, 0x38, 0xbb, 0x91, 0xa1, 0xda, 0xa6, 0xbe, 0x6e, 0xea, 0xbe, + 0x8e, 0x01, 0x0b, 0xd7, 0xe4, 0x1c, 0x90, 0x98, 0xcb, 0x9b, 0x7a, 0xa3, 0xe1, 0xd2, 0xad, 0x99, + 0x7d, 0x4c, 0xea, 0x60, 0xe4, 0xd8, 0x2a, 0xdb, 0x57, 0x7e, 0x91, 0x60, 0x22, 0x36, 0xea, 0x4b, + 0xda, 0x8f, 0xb7, 0xeb, 0xbd, 0xc9, 0x76, 0xad, 0xc0, 0xe4, 0x9d, 0xae, 0x6b, 0x79, 0xa6, 0x65, + 0xb0, 0xec, 0xe5, 0x86, 0x13, 0x7b, 0x09, 0xf8, 0x23, 0x29, 0xf8, 0xe9, 0xbb, 0xe0, 0xe8, 0xb6, + 0xbb, 0xa0, 0xf2, 0x6b, 0x05, 0xc6, 0xc3, 0x9e, 0xb5, 0xe3, 0x6c, 0x4d, 0x5e, 0x4a, 0x2a, 0xe9, + 0x4b, 0xc9, 0x34, 0x8c, 0xf0, 0xf4, 0xe7, 0xf8, 0xf9, 0x22, 0x81, 0x6c, 0x5f, 0x0a, 0xd9, 0x15, + 0x00, 0xcf, 0xd7, 0x5d, 0x7f, 0xd3, 0xd4, 0x7d, 0xca, 0x70, 0x07, 0xe7, 0xcb, 0x3f, 0x11, 0xa8, + 0xe2, 0x13, 0x81, 0x7a, 0x43, 0x7c, 0x22, 0xa8, 0x8f, 0x33, 0xe9, 0xeb, 0xba, 0x4f, 0xc9, 0x05, + 0xa8, 0x52, 0xdb, 0xe4, 0x8a, 0xa3, 0x85, 0x8a, 0x63, 0xd4, 0x36, 0x99, 0xda, 0x2b, 0xb0, 0x3f, + 0x70, 0x26, 0x28, 0x05, 0xae, 0x3b, 0x56, 0xa8, 0x3b, 0x29, 0x14, 0xd8, 0x0b, 0x08, 0xec, 0x73, + 0x3a, 0xd4, 0x9e, 0xa9, 0xce, 0x4a, 0xf3, 0xd5, 0x3a, 0xfb, 0x1f, 0xcc, 0xc1, 0x83, 0xe9, 0xde, + 0xc3, 0xfa, 0xa5, 0x69, 0xba, 0x14, 0x89, 0x5f, 0xd0, 0x2f, 0xf9, 0xb2, 0xb0, 0xb5, 0x07, 0x21, + 0x13, 0xd5, 0x2f, 0x72, 0x51, 0xac, 0x83, 0xd7, 0x62, 0xc5, 0x63, 0x34, 0xc5, 0x32, 0xd0, 0xa2, + 0x9e, 0xe1, 0x3a, 0xf7, 0xa8, 0x29, 0x52, 0x40, 0xac, 0x97, 0xff, 0x3a, 0x04, 0x23, 0xac, 0xb8, + 0xc8, 0xc7, 0x12, 0x8c, 0x21, 0xf1, 0x26, 0x73, 0x59, 0xa5, 0x94, 0xf1, 0x45, 0x44, 0x9e, 0x2f, + 0x16, 0xe4, 0xd5, 0xaa, 0xfc, 0xff, 0x93, 0x3f, 0xfe, 0x79, 0x58, 0x39, 0x41, 0x8e, 0x69, 0x19, + 0xdf, 0x5e, 0x04, 0x51, 0xff, 0x51, 0x82, 0xa9, 0x24, 0xf9, 0x27, 0x6a, 0x91, 0x85, 0xe4, 0x27, + 0x0a, 0x59, 0x2b, 0x2d, 0x8f, 0xc0, 0x96, 0x18, 0xb0, 0xb3, 0x64, 0x21, 0x07, 0x98, 0xc6, 0x4a, + 0x51, 0xeb, 0xb3, 0x9f, 0x01, 0xf9, 0x5c, 0x8a, 0xb7, 0x91, 0x85, 0x7c, 0x8b, 0xb1, 0xcb, 0x85, + 0x7c, 0xa6, 0x8c, 0x28, 0xe2, 0x52, 0x19, 0xae, 0x79, 0x72, 0x3a, 0x0f, 0x57, 0x5f, 0xb4, 0x86, + 0x01, 0xf9, 0x41, 0x82, 0xc9, 0x38, 0x2b, 0x27, 0xe7, 0x0a, 0x8c, 0x25, 0xbe, 0x1d, 0xc8, 0x8b, + 0x25, 0xa5, 0x11, 0xdd, 0x45, 0x86, 0xee, 0x3c, 0x51, 0xcb, 0xa1, 0xd3, 0xc4, 0x87, 0x80, 0x47, + 0x12, 0x54, 0x05, 0x1d, 0x24, 0x3b, 0x67, 0x4f, 0x8a, 0xde, 0xcb, 0x0b, 0x25, 0x24, 0x11, 0xd9, + 0x25, 0x86, 0x6c, 0x89, 0x68, 0x25, 0x91, 0x85, 0x54, 0xf2, 0x77, 0x09, 0x0e, 0x67, 0x32, 0x55, + 0x72, 0xa1, 0xd0, 0x7a, 0x16, 0xd5, 0x96, 0x2f, 0xfe, 0x57, 0x35, 0xf4, 0xe0, 0x1a, 0xf3, 0xe0, + 0x25, 0x72, 0x35, 0xcb, 0x03, 0x01, 0x57, 0x6b, 0xf4, 0x16, 0xc3, 0x46, 0xbd, 0x68, 0x99, 0x5a, + 0x3f, 0xde, 0xca, 0x07, 0xe4, 0xab, 0xd4, 0xb0, 0x39, 0x5b, 0x04, 0x26, 0x9e, 0xa7, 0xe7, 0xca, + 0x09, 0x97, 0xa9, 0xa0, 0x10, 0x6f, 0x3f, 0x9a, 0x10, 0x03, 0xf2, 0xa5, 0x04, 0x63, 0xc8, 0x0d, + 0x72, 0x9a, 0x4d, 0x92, 0xfa, 0xe6, 0x34, 0x9b, 0x14, 0x49, 0x55, 0xae, 0x30, 0x44, 0x2b, 0x64, + 0xa9, 0x34, 0x22, 0x4d, 0x30, 0x8c, 0x9f, 0x24, 0x38, 0x90, 0x62, 0x76, 0x44, 0x2b, 0x32, 0x9c, + 0xe2, 0xa0, 0xf2, 0xf9, 0xf2, 0x0a, 0x88, 0x78, 0x85, 0x21, 0x5e, 0x24, 0x67, 0xb3, 0x10, 0x23, + 0x36, 0x2c, 0x22, 0xad, 0xcf, 0x7f, 0x07, 0x01, 0xd6, 0xa9, 0x24, 0xc3, 0xca, 0x69, 0x97, 0x99, + 0x64, 0x50, 0xd6, 0x4a, 0xcb, 0x3f, 0x63, 0xe1, 0x8b, 0xb8, 0x7e, 0x21, 0xc5, 0x2f, 0x12, 0x0b, + 0xf9, 0x66, 0xcb, 0xf5, 0xcc, 0x6d, 0x0c, 0x2c, 0x3f, 0x13, 0x45, 0x14, 0xfb, 0xb1, 0x19, 0x3b, + 0x20, 0xdf, 0xb1, 0x4c, 0x64, 0xd3, 0x39, 0x37, 0x13, 0xe3, 0xec, 0x2c, 0x37, 0x13, 0x13, 0xa4, + 0x2b, 0xbf, 0x96, 0x33, 0x11, 0x69, 0x48, 0x4d, 0xb4, 0x3e, 0xd2, 0xa8, 0x01, 0xf9, 0x4c, 0x82, + 0xaa, 0xa0, 0x3e, 0xa4, 0xd0, 0x76, 0x89, 0xa6, 0x99, 0xe6, 0x51, 0xf9, 0xc3, 0x46, 0x70, 0xa5, + 0x18, 0xa2, 0x87, 0x12, 0x8c, 0x22, 0xb1, 0x38, 0xbd, 0xa3, 0x95, 0x04, 0x13, 0x92, 0xe7, 0x0a, + 0xe5, 0x10, 0xcb, 0x65, 0x86, 0x65, 0x99, 0x9c, 0x2f, 0x1f, 0x32, 0x4e, 0x7c, 0x82, 0xb9, 0x3c, + 0x11, 0x63, 0x26, 0x39, 0x3d, 0x6f, 0x3b, 0xb5, 0xc9, 0xe9, 0x79, 0x19, 0x64, 0x47, 0x99, 0x67, + 0x20, 0x15, 0x32, 0x9b, 0x59, 0x06, 0xec, 0xdf, 0x22, 0xa3, 0x41, 0x64, 0x00, 0xa3, 0x9c, 0x84, + 0xe4, 0x44, 0x2a, 0xc1, 0x77, 0x72, 0x22, 0x95, 0x64, 0x40, 0x8a, 0xc2, 0x40, 0x1c, 0x27, 0x72, + 0x66, 0x9b, 0x63, 0xb2, 0x6b, 0x1b, 0xbf, 0x3d, 0xa9, 0x49, 0x8f, 0x9f, 0xd4, 0xa4, 0xbf, 0x9f, + 0xd4, 0xa4, 0x07, 0x4f, 0x6b, 0x7b, 0x1e, 0x3f, 0xad, 0xed, 0xf9, 0xf3, 0x69, 0x6d, 0xcf, 0xbb, + 0x17, 0x9b, 0x96, 0x7f, 0xbb, 0xdb, 0x50, 0x0d, 0xa7, 0xcd, 0xf5, 0x17, 0x6d, 0xea, 0xdf, 0x73, + 0xdc, 0xf7, 0x70, 0xd5, 0xa2, 0x66, 0x93, 0xba, 0xda, 0xfd, 0xd8, 0x6b, 0x0d, 0xc7, 0xa5, 0x8d, + 0x51, 0x76, 0x15, 0x5e, 0xf9, 0x37, 0x00, 0x00, 0xff, 0xff, 0x34, 0xb9, 0x9f, 0x91, 0x04, 0x1c, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2078,6 +2205,8 @@ type QueryClient interface { ClassIssuers(ctx context.Context, in *QueryClassIssuersRequest, opts ...grpc.CallOption) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(ctx context.Context, in *QueryProjectsRequest, opts ...grpc.CallOption) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) // ClassInfo queries for information on a project. ProjectInfo(ctx context.Context, in *QueryProjectInfoRequest, opts ...grpc.CallOption) (*QueryProjectInfoResponse, error) // Batches queries for all batches in the given project with pagination. @@ -2155,6 +2284,15 @@ func (c *queryClient) Projects(ctx context.Context, in *QueryProjectsRequest, op return out, nil } +func (c *queryClient) ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) { + out := new(QueryProjectsByReferenceIdResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/ProjectsByReferenceId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) ProjectInfo(ctx context.Context, in *QueryProjectInfoRequest, opts ...grpc.CallOption) (*QueryProjectInfoResponse, error) { out := new(QueryProjectInfoResponse) err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/ProjectInfo", in, out, opts...) @@ -2258,6 +2396,8 @@ type QueryServer interface { ClassIssuers(context.Context, *QueryClassIssuersRequest) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(context.Context, *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) // ClassInfo queries for information on a project. ProjectInfo(context.Context, *QueryProjectInfoRequest) (*QueryProjectInfoResponse, error) // Batches queries for all batches in the given project with pagination. @@ -2301,6 +2441,9 @@ func (*UnimplementedQueryServer) ClassIssuers(ctx context.Context, req *QueryCla func (*UnimplementedQueryServer) Projects(ctx context.Context, req *QueryProjectsRequest) (*QueryProjectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Projects not implemented") } +func (*UnimplementedQueryServer) ProjectsByReferenceId(ctx context.Context, req *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProjectsByReferenceId not implemented") +} func (*UnimplementedQueryServer) ProjectInfo(ctx context.Context, req *QueryProjectInfoRequest) (*QueryProjectInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ProjectInfo not implemented") } @@ -2426,6 +2569,24 @@ func _Query_Projects_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Query_ProjectsByReferenceId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryProjectsByReferenceIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProjectsByReferenceId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.v1.Query/ProjectsByReferenceId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProjectsByReferenceId(ctx, req.(*QueryProjectsByReferenceIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_ProjectInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProjectInfoRequest) if err := dec(in); err != nil { @@ -2630,6 +2791,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "Projects", Handler: _Query_Projects_Handler, }, + { + MethodName: "ProjectsByReferenceId", + Handler: _Query_ProjectsByReferenceId_Handler, + }, { MethodName: "ProjectInfo", Handler: _Query_ProjectInfo_Handler, @@ -3092,6 +3257,97 @@ func (m *QueryProjectsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *QueryProjectsByReferenceIdRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProjectsByReferenceIdRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProjectsByReferenceIdRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.ReferenceId) > 0 { + i -= len(m.ReferenceId) + copy(dAtA[i:], m.ReferenceId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.ReferenceId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryProjectsByReferenceIdResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProjectsByReferenceIdResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProjectsByReferenceIdResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Projects) > 0 { + for iNdEx := len(m.Projects) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Projects[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *QueryProjectInfoRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3921,6 +4177,13 @@ func (m *ProjectInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ReferenceId) > 0 { + i -= len(m.ReferenceId) + copy(dAtA[i:], m.ReferenceId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.ReferenceId))) + i-- + dAtA[i] = 0x32 + } if len(m.Metadata) > 0 { i -= len(m.Metadata) copy(dAtA[i:], m.Metadata) @@ -4291,33 +4554,43 @@ func (m *QueryProjectsResponse) Size() (n int) { return n } -func (m *QueryProjectInfoRequest) Size() (n int) { +func (m *QueryProjectsByReferenceIdRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.ProjectId) + l = len(m.ReferenceId) if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } -func (m *QueryProjectInfoResponse) Size() (n int) { +func (m *QueryProjectsByReferenceIdResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.Project != nil { - l = m.Project.Size() + if len(m.Projects) > 0 { + for _, e := range m.Projects { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryBatchesRequest) Size() (n int) { +func (m *QueryProjectInfoRequest) Size() (n int) { if m == nil { return 0 } @@ -4327,14 +4600,40 @@ func (m *QueryBatchesRequest) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } - if m.Pagination != nil { - l = m.Pagination.Size() - n += 1 + l + sovQuery(uint64(l)) - } return n } -func (m *QueryBatchesResponse) Size() (n int) { +func (m *QueryProjectInfoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Project != nil { + l = m.Project.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryBatchesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ProjectId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryBatchesResponse) Size() (n int) { if m == nil { return 0 } @@ -4648,6 +4947,10 @@ func (m *ProjectInfo) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + l = len(m.ReferenceId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -5812,6 +6115,244 @@ func (m *QueryProjectsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryProjectsByReferenceIdRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryProjectsByReferenceIdResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Projects", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Projects = append(m.Projects, &ProjectInfo{}) + if err := m.Projects[len(m.Projects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *QueryProjectInfoRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -8165,6 +8706,38 @@ func (m *ProjectInfo) Unmarshal(dAtA []byte) error { } m.Metadata = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) diff --git a/x/ecocredit/core/query.pb.gw.go b/x/ecocredit/core/query.pb.gw.go index 030fe222a9..0b788144d2 100644 --- a/x/ecocredit/core/query.pb.gw.go +++ b/x/ecocredit/core/query.pb.gw.go @@ -339,6 +339,78 @@ func local_request_Query_Projects_0(ctx context.Context, marshaler runtime.Marsh } +var ( + filter_Query_ProjectsByReferenceId_0 = &utilities.DoubleArray{Encoding: map[string]int{"reference_id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_Query_ProjectsByReferenceId_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryProjectsByReferenceIdRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["reference_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "reference_id") + } + + protoReq.ReferenceId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "reference_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_ProjectsByReferenceId_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ProjectsByReferenceId(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_ProjectsByReferenceId_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryProjectsByReferenceIdRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["reference_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "reference_id") + } + + protoReq.ReferenceId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "reference_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_ProjectsByReferenceId_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ProjectsByReferenceId(ctx, &protoReq) + return msg, metadata, err + +} + func request_Query_ProjectInfo_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryProjectInfoRequest var metadata runtime.ServerMetadata @@ -1022,6 +1094,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_ProjectsByReferenceId_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_ProjectsByReferenceId_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProjectsByReferenceId_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_ProjectInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1393,6 +1488,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_ProjectsByReferenceId_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_ProjectsByReferenceId_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProjectsByReferenceId_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_ProjectInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1607,6 +1722,8 @@ var ( pattern_Query_Projects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"regen", "ecocredit", "v1", "classes", "class_id", "projects"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_ProjectsByReferenceId_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"regen", "ecocredit", "v1", "projects", "by-reference-id", "reference_id"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_ProjectInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"regen", "ecocredit", "v1", "projects", "project_id"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Batches_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"regen", "ecocredit", "v1", "projects", "project_id", "batches"}, "", runtime.AssumeColonVerbOpt(false))) @@ -1639,6 +1756,8 @@ var ( forward_Query_Projects_0 = runtime.ForwardResponseMessage + forward_Query_ProjectsByReferenceId_0 = runtime.ForwardResponseMessage + forward_Query_ProjectInfo_0 = runtime.ForwardResponseMessage forward_Query_Batches_0 = runtime.ForwardResponseMessage diff --git a/x/ecocredit/core/state.pb.go b/x/ecocredit/core/state.pb.go index ddc087eb96..5e9483974c 100644 --- a/x/ecocredit/core/state.pb.go +++ b/x/ecocredit/core/state.pb.go @@ -258,6 +258,8 @@ type Project struct { Jurisdiction string `protobuf:"bytes,5,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` // metadata is any arbitrary metadata attached to the project. Metadata string `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` + // reference_id is any arbitrary string that can be use to reference project. + ReferenceId string `protobuf:"bytes,7,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } func (m *Project) Reset() { *m = Project{} } @@ -335,6 +337,13 @@ func (m *Project) GetMetadata() string { return "" } +func (m *Project) GetReferenceId() string { + if m != nil { + return m.ReferenceId + } + return "" +} + // Batch represents the high-level on-chain information for a credit batch. type Batch struct { // key is the table row identifier of the credit batch used internally for @@ -891,68 +900,69 @@ func init() { func init() { proto.RegisterFile("regen/ecocredit/v1/state.proto", fileDescriptor_6cfdca0a4aaabb36) } var fileDescriptor_6cfdca0a4aaabb36 = []byte{ - // 968 bytes of a gzipped FileDescriptorProto + // 991 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcd, 0x6e, 0x23, 0x45, - 0x10, 0x4e, 0xfb, 0x27, 0xb6, 0xcb, 0x76, 0x32, 0xe9, 0xcd, 0x86, 0x51, 0x58, 0xbc, 0xd1, 0x00, - 0x22, 0x48, 0xc1, 0x56, 0x60, 0x41, 0xe0, 0x03, 0x68, 0xb3, 0xcb, 0x61, 0xb5, 0x07, 0x56, 0x26, - 0x27, 0x2e, 0xa6, 0x3d, 0x5d, 0x38, 0x93, 0xf5, 0xfc, 0xd0, 0xd3, 0xce, 0xda, 0x12, 0x27, 0x1e, - 0x00, 0x71, 0xe4, 0x80, 0x78, 0x12, 0x1e, 0x00, 0x0e, 0x48, 0x2b, 0x71, 0x41, 0x9c, 0x50, 0xf2, - 0x06, 0x3c, 0x01, 0xea, 0x9a, 0x9e, 0xb1, 0x1d, 0xbc, 0x3f, 0xda, 0x5b, 0x57, 0x4d, 0xfd, 0x7c, - 0xdf, 0xd7, 0x55, 0x6d, 0x43, 0x47, 0xe1, 0x18, 0xa3, 0x1e, 0xfa, 0xb1, 0xaf, 0x50, 0x06, 0xba, - 0x77, 0x71, 0xdc, 0x4b, 0xb5, 0xd0, 0xd8, 0x4d, 0x54, 0xac, 0x63, 0xce, 0xe9, 0x7b, 0xb7, 0xf8, - 0xde, 0xbd, 0x38, 0xde, 0x7f, 0xc3, 0x8f, 0xd3, 0x30, 0x4e, 0x7b, 0xb1, 0x0a, 0x7b, 0x17, 0xc7, - 0x62, 0x92, 0x9c, 0x89, 0x63, 0x63, 0x64, 0x29, 0xfb, 0xb7, 0xc7, 0x71, 0x3c, 0x9e, 0x60, 0x8f, - 0xac, 0xd1, 0xf4, 0x9b, 0x9e, 0x0e, 0x42, 0x4c, 0xb5, 0x08, 0x93, 0x2c, 0xc0, 0xfb, 0x99, 0x01, - 0xdc, 0xa3, 0x6a, 0xa7, 0xf3, 0x04, 0xb9, 0x07, 0x2d, 0x31, 0x1a, 0x29, 0xbc, 0x08, 0x84, 0x0e, - 0xe2, 0xc8, 0x65, 0x07, 0xec, 0xb0, 0x31, 0x58, 0xf1, 0x71, 0x0e, 0x95, 0x48, 0x84, 0xe8, 0x96, - 0xe8, 0x1b, 0x9d, 0x8d, 0x6f, 0x1a, 0x05, 0xda, 0x2d, 0x67, 0x3e, 0x73, 0xe6, 0xb7, 0xa0, 0x91, - 0x28, 0xf4, 0x83, 0xd4, 0x14, 0xaa, 0x1c, 0xb0, 0xc3, 0xf6, 0x60, 0xe1, 0xe8, 0xbf, 0xf5, 0xef, - 0x2f, 0x7f, 0xfe, 0x50, 0xee, 0xc0, 0xd6, 0x6a, 0x47, 0x0e, 0x59, 0x75, 0x87, 0xb9, 0xcc, 0x65, - 0xde, 0xef, 0x0c, 0xaa, 0xf7, 0x26, 0x22, 0x4d, 0xb9, 0x03, 0xe5, 0xc7, 0x38, 0x27, 0x40, 0x95, - 0x81, 0x39, 0xf2, 0x2d, 0x28, 0x05, 0xd2, 0xa2, 0x28, 0x05, 0x92, 0xef, 0x42, 0x55, 0xc8, 0x30, - 0x88, 0x08, 0x44, 0x6b, 0x90, 0x19, 0x7c, 0x1f, 0xea, 0x21, 0x6a, 0x21, 0x85, 0x16, 0x04, 0xa2, - 0x31, 0x28, 0x6c, 0x7e, 0x04, 0x3c, 0x53, 0x72, 0xa8, 0xe7, 0x09, 0x0e, 0x33, 0x1c, 0x6e, 0x95, - 0xa2, 0x1c, 0xbf, 0x50, 0xe5, 0x2e, 0xf9, 0xfb, 0x9f, 0x12, 0xe2, 0x8f, 0xa1, 0x46, 0x48, 0x1c, - 0xc6, 0xeb, 0x06, 0x80, 0x01, 0xca, 0x1b, 0xb6, 0xb5, 0x53, 0xe2, 0x7b, 0xeb, 0x6a, 0x3a, 0x65, - 0xb7, 0xe4, 0x7d, 0x0d, 0x4d, 0xa2, 0xf2, 0x20, 0x4d, 0xa7, 0xa8, 0xf8, 0xeb, 0xd0, 0xf0, 0x8d, - 0x39, 0x5c, 0xd0, 0xaa, 0x93, 0xe3, 0x21, 0xce, 0xf9, 0x1e, 0x6c, 0x06, 0x14, 0x46, 0xfc, 0x5a, - 0x03, 0x6b, 0xf5, 0x6f, 0x11, 0x86, 0x3d, 0xe0, 0xe0, 0x14, 0xc9, 0x47, 0x36, 0xb2, 0xec, 0xfd, - 0xcd, 0xa0, 0xf6, 0x48, 0xc5, 0xe7, 0xe8, 0xeb, 0x57, 0xd6, 0x6b, 0x05, 0x56, 0xe5, 0x1a, 0x2c, - 0x0f, 0x5a, 0xe7, 0x53, 0x15, 0xa4, 0x32, 0xf0, 0x69, 0x3c, 0x32, 0xa9, 0x56, 0x7c, 0x2b, 0x82, - 0x6f, 0xae, 0x0a, 0xde, 0xef, 0x13, 0xfc, 0x3b, 0xeb, 0x24, 0xe4, 0xd0, 0x5a, 0x62, 0x24, 0x9d, - 0xd2, 0xb2, 0xac, 0x65, 0xb7, 0xe2, 0xfd, 0x54, 0x86, 0xea, 0x89, 0xd0, 0xfe, 0xd9, 0x1a, 0x6a, - 0xcf, 0x90, 0x8b, 0xdf, 0x86, 0x66, 0x92, 0xe9, 0x41, 0x74, 0xca, 0x94, 0x01, 0xd6, 0x65, 0x08, - 0xed, 0x42, 0x55, 0x62, 0x14, 0x87, 0x76, 0x34, 0x32, 0x63, 0x85, 0x42, 0xf5, 0xda, 0xcc, 0x7c, - 0x02, 0x90, 0x6a, 0xa1, 0xf4, 0x50, 0x0a, 0x8d, 0x44, 0xb0, 0xf9, 0xfe, 0x7e, 0x37, 0x5b, 0xb3, - 0x6e, 0xbe, 0x66, 0xdd, 0xd3, 0x7c, 0xcd, 0x06, 0x0d, 0x8a, 0xbe, 0x2f, 0x34, 0xf2, 0x0f, 0xa1, - 0x8e, 0x91, 0xcc, 0x12, 0x6b, 0x2f, 0x4c, 0xac, 0x61, 0x24, 0x29, 0xed, 0x33, 0x68, 0x1b, 0x3a, - 0x22, 0xf2, 0x31, 0xcb, 0xad, 0xbf, 0x30, 0xb7, 0x95, 0x27, 0x50, 0x01, 0x0e, 0x95, 0x38, 0xc1, - 0xc8, 0x6d, 0x1c, 0xb0, 0xc3, 0xfa, 0x80, 0xce, 0xfd, 0x87, 0x74, 0x13, 0x9f, 0x2f, 0x6e, 0xa2, - 0x69, 0x95, 0xa0, 0xcb, 0xd8, 0x5e, 0xd1, 0xcd, 0x29, 0xf1, 0xad, 0x65, 0xd6, 0x4e, 0x99, 0x43, - 0x2e, 0xb8, 0x53, 0x71, 0xab, 0xde, 0xf7, 0x0c, 0xda, 0x34, 0xda, 0x5f, 0xe2, 0xb7, 0x53, 0x8c, - 0x7c, 0x7c, 0xc6, 0x66, 0xb1, 0xf5, 0x9b, 0xc5, 0xdf, 0x84, 0x76, 0x84, 0x33, 0x3d, 0x4c, 0x6d, - 0x3a, 0xdd, 0x62, 0x65, 0xd0, 0x32, 0xce, 0xbc, 0x64, 0xbf, 0x43, 0x88, 0x5d, 0xd8, 0x5d, 0x5b, - 0x7a, 0xd3, 0x3b, 0x87, 0x6d, 0x3b, 0xfb, 0x05, 0x8a, 0xe7, 0xae, 0xd8, 0x4b, 0x35, 0xbd, 0x49, - 0x4d, 0xb7, 0xa1, 0xb9, 0x5c, 0xa9, 0xe6, 0x45, 0xd0, 0xa6, 0x51, 0x2c, 0x3a, 0x5d, 0x1b, 0x34, - 0xf6, 0xbf, 0x41, 0x7b, 0xa9, 0x6e, 0xaf, 0x51, 0xb7, 0x1d, 0x68, 0xaf, 0x56, 0xab, 0x7b, 0x7f, - 0x30, 0x68, 0x51, 0xc3, 0x13, 0x31, 0x11, 0x96, 0xd9, 0xc8, 0xd8, 0xcb, 0xcc, 0xc8, 0x61, 0x7a, - 0xb9, 0x50, 0x13, 0x52, 0x2a, 0x4c, 0x53, 0xbb, 0x0e, 0xb9, 0x69, 0x06, 0x5b, 0x2b, 0x21, 0xc5, - 0x68, 0x82, 0xf6, 0xa9, 0x2e, 0x6c, 0x93, 0xa5, 0x50, 0x07, 0x0a, 0xa5, 0x5d, 0x86, 0xdc, 0x34, - 0x59, 0x98, 0xfa, 0x2a, 0x7e, 0x82, 0x32, 0x5f, 0x87, 0xdc, 0xee, 0xdf, 0x21, 0xc8, 0x5d, 0xb8, - 0x01, 0x3b, 0xb6, 0xc9, 0x51, 0x01, 0x8c, 0xdf, 0x84, 0x9d, 0xc2, 0x38, 0xb2, 0x9f, 0x1d, 0xe6, - 0x36, 0xbc, 0x5f, 0x19, 0x34, 0x33, 0x01, 0xa7, 0x49, 0x32, 0x99, 0x3f, 0x9f, 0xce, 0x3b, 0xb0, - 0x9d, 0x83, 0x1c, 0x8a, 0x30, 0x9e, 0x46, 0xda, 0x3e, 0x62, 0x5b, 0xb9, 0xfb, 0x2e, 0x79, 0xf9, - 0xdb, 0xb0, 0x65, 0x21, 0xe7, 0x71, 0x19, 0xc7, 0xb6, 0xf5, 0xda, 0xb0, 0x77, 0xc1, 0xf1, 0x8d, - 0x88, 0x93, 0xc9, 0x22, 0x30, 0x63, 0xbc, 0x5d, 0xf8, 0xb3, 0xd0, 0xe5, 0xeb, 0x5f, 0xe0, 0x03, - 0xef, 0x3b, 0x8b, 0xfe, 0x0b, 0x15, 0x8c, 0x4f, 0x67, 0xfc, 0x06, 0x54, 0xf5, 0x6c, 0x18, 0x48, - 0x3b, 0xdf, 0x15, 0x3d, 0x7b, 0x20, 0xcd, 0x23, 0xa5, 0xe7, 0x89, 0x45, 0x6a, 0x8e, 0xf4, 0xbb, - 0x19, 0xeb, 0x5c, 0x78, 0x3a, 0x9b, 0xb9, 0xc9, 0x0a, 0x2f, 0xbf, 0x42, 0x40, 0xae, 0xfb, 0xc6, - 0xd3, 0xdf, 0x21, 0x04, 0x4d, 0xa8, 0xe5, 0x3d, 0x9a, 0x27, 0x8f, 0x7e, 0xbb, 0xec, 0xb0, 0xa7, - 0x97, 0x1d, 0xf6, 0xcf, 0x65, 0x87, 0xfd, 0x78, 0xd5, 0xd9, 0x78, 0x7a, 0xd5, 0xd9, 0xf8, 0xeb, - 0xaa, 0xb3, 0xf1, 0xd5, 0x47, 0xe3, 0x40, 0x9f, 0x4d, 0x47, 0x5d, 0x3f, 0x0e, 0x7b, 0xf4, 0x5f, - 0xe1, 0xbd, 0x08, 0xf5, 0x93, 0x58, 0x3d, 0xb6, 0xd6, 0x04, 0xe5, 0x18, 0x55, 0x6f, 0xb6, 0xf4, - 0x17, 0xc3, 0x8f, 0x15, 0x8e, 0x36, 0xe9, 0x09, 0xf9, 0xe0, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x7e, 0xd3, 0xcc, 0x48, 0x81, 0x08, 0x00, 0x00, + 0x10, 0xce, 0xd8, 0xe3, 0xd8, 0x2e, 0xdb, 0xf1, 0xa4, 0x37, 0x1b, 0x46, 0x61, 0xf1, 0x86, 0x01, + 0x44, 0x90, 0x82, 0xad, 0xf0, 0x27, 0xf0, 0x01, 0xb4, 0xd9, 0x05, 0x29, 0x5a, 0x24, 0x56, 0x26, + 0x27, 0x2e, 0xa6, 0x3d, 0x5d, 0xeb, 0x4c, 0xd6, 0xf3, 0x43, 0x4f, 0x3b, 0x6b, 0x4b, 0x9c, 0x78, + 0x00, 0xe0, 0xc8, 0x01, 0xf1, 0x24, 0x3c, 0x00, 0x1c, 0x90, 0x56, 0xe2, 0xc2, 0x11, 0x25, 0x6f, + 0xc0, 0x13, 0xa0, 0xae, 0xe9, 0x19, 0xdb, 0xc1, 0xfb, 0x23, 0x6e, 0x5d, 0xdf, 0xd4, 0xcf, 0x57, + 0x5f, 0x57, 0xb5, 0x0d, 0x1d, 0x89, 0x63, 0x8c, 0x7a, 0xe8, 0xc7, 0xbe, 0x44, 0x11, 0xa8, 0xde, + 0xc5, 0x51, 0x2f, 0x55, 0x5c, 0x61, 0x37, 0x91, 0xb1, 0x8a, 0x19, 0xa3, 0xef, 0xdd, 0xe2, 0x7b, + 0xf7, 0xe2, 0x68, 0xef, 0x15, 0x3f, 0x4e, 0xc3, 0x38, 0xed, 0xc5, 0x32, 0xec, 0x5d, 0x1c, 0xf1, + 0x49, 0x72, 0xc6, 0x8f, 0xb4, 0x91, 0x85, 0xec, 0xdd, 0x1e, 0xc7, 0xf1, 0x78, 0x82, 0x3d, 0xb2, + 0x46, 0xd3, 0x87, 0x3d, 0x15, 0x84, 0x98, 0x2a, 0x1e, 0x26, 0x99, 0x83, 0xf7, 0xb3, 0x05, 0x70, + 0x97, 0xb2, 0x9d, 0xce, 0x13, 0x64, 0x1e, 0x34, 0xf9, 0x68, 0x24, 0xf1, 0x22, 0xe0, 0x2a, 0x88, + 0x23, 0xd7, 0xda, 0xb7, 0x0e, 0xea, 0x83, 0x15, 0x8c, 0x31, 0xb0, 0x23, 0x1e, 0xa2, 0x5b, 0xa2, + 0x6f, 0x74, 0xd6, 0xd8, 0x34, 0x0a, 0x94, 0x5b, 0xce, 0x30, 0x7d, 0x66, 0xb7, 0xa0, 0x9e, 0x48, + 0xf4, 0x83, 0x54, 0x27, 0xb2, 0xf7, 0xad, 0x83, 0xd6, 0x60, 0x01, 0xf4, 0x5f, 0xff, 0xe7, 0x97, + 0x3f, 0xbf, 0x2f, 0x77, 0x60, 0x6b, 0xb5, 0x22, 0x83, 0x2c, 0xbb, 0x63, 0xb9, 0x96, 0x6b, 0x79, + 0xbf, 0x5b, 0x50, 0xb9, 0x3b, 0xe1, 0x69, 0xca, 0x1c, 0x28, 0x3f, 0xc2, 0x39, 0x11, 0xb2, 0x07, + 0xfa, 0xc8, 0xb6, 0xa0, 0x14, 0x08, 0xc3, 0xa2, 0x14, 0x08, 0xb6, 0x03, 0x15, 0x2e, 0xc2, 0x20, + 0x22, 0x12, 0xcd, 0x41, 0x66, 0xb0, 0x3d, 0xa8, 0x85, 0xa8, 0xb8, 0xe0, 0x8a, 0x13, 0x89, 0xfa, + 0xa0, 0xb0, 0xd9, 0x21, 0xb0, 0x4c, 0xc9, 0xa1, 0x9a, 0x27, 0x38, 0xcc, 0x78, 0xb8, 0x15, 0xf2, + 0x72, 0xfc, 0x42, 0x95, 0x3b, 0x84, 0xf7, 0x3f, 0x26, 0xc6, 0x1f, 0x42, 0x95, 0x98, 0x38, 0x16, + 0xab, 0x69, 0x02, 0x9a, 0x28, 0xab, 0x9b, 0xd2, 0x4e, 0x89, 0xed, 0xae, 0xcb, 0xe9, 0x94, 0xdd, + 0x92, 0xf7, 0x35, 0x34, 0xa8, 0x95, 0x93, 0x34, 0x9d, 0xa2, 0x64, 0x2f, 0x43, 0xdd, 0xd7, 0xe6, + 0x70, 0xd1, 0x56, 0x8d, 0x80, 0xfb, 0x38, 0x67, 0xbb, 0xb0, 0x19, 0x90, 0x1b, 0xf5, 0xd7, 0x1c, + 0x18, 0xab, 0x7f, 0x8b, 0x38, 0xec, 0x02, 0x03, 0xa7, 0x08, 0x3e, 0x34, 0x9e, 0x65, 0xef, 0x87, + 0x12, 0x54, 0x1f, 0xc8, 0xf8, 0x1c, 0x7d, 0xf5, 0xbf, 0xf5, 0x5a, 0xa1, 0x65, 0x5f, 0xa3, 0xe5, + 0x41, 0xf3, 0x7c, 0x2a, 0x83, 0x54, 0x04, 0x3e, 0x8d, 0x47, 0x26, 0xd5, 0x0a, 0xb6, 0x22, 0xf8, + 0xe6, 0x35, 0xc1, 0x5f, 0x85, 0xa6, 0xc4, 0x87, 0x28, 0x31, 0xf2, 0x71, 0x18, 0x08, 0xb7, 0x4a, + 0xdf, 0x1b, 0x05, 0x76, 0x22, 0xfa, 0x9f, 0x53, 0x87, 0x9f, 0xad, 0x53, 0x99, 0x41, 0x73, 0xa9, + 0x69, 0xe1, 0x94, 0x96, 0x95, 0x2f, 0x33, 0x67, 0x35, 0xb9, 0x63, 0xbb, 0xb6, 0xf7, 0x53, 0x19, + 0x2a, 0xc7, 0x5c, 0xf9, 0x67, 0x6b, 0xf4, 0x78, 0x8a, 0xc6, 0xec, 0x36, 0x34, 0x92, 0x4c, 0x44, + 0xd2, 0xa0, 0x4c, 0x11, 0x60, 0x20, 0xad, 0xc2, 0x0e, 0x54, 0x04, 0x46, 0x71, 0x68, 0xe6, 0x29, + 0x33, 0x56, 0xfa, 0xae, 0x5c, 0xeb, 0xfb, 0x23, 0x80, 0x54, 0x71, 0xa9, 0x86, 0x82, 0x2b, 0x24, + 0x55, 0x1a, 0xef, 0xec, 0x75, 0xb3, 0xdd, 0xec, 0xe6, 0xbb, 0xd9, 0x3d, 0xcd, 0x77, 0x73, 0x50, + 0x27, 0xef, 0x7b, 0x5c, 0x21, 0x7b, 0x1f, 0x6a, 0x18, 0x89, 0x2c, 0xb0, 0xfa, 0xdc, 0xc0, 0x2a, + 0x46, 0x82, 0xc2, 0x3e, 0x81, 0x96, 0x6e, 0x87, 0x6b, 0x2d, 0x28, 0xb6, 0xf6, 0xdc, 0xd8, 0x66, + 0x1e, 0x40, 0x09, 0x18, 0xd8, 0x71, 0x82, 0x91, 0x5b, 0xdf, 0xb7, 0x0e, 0x6a, 0x03, 0x3a, 0xf7, + 0xef, 0xd3, 0xdd, 0x7c, 0xba, 0xb8, 0x9b, 0x86, 0x51, 0x82, 0xae, 0xa7, 0xbd, 0xa2, 0x9b, 0x53, + 0x62, 0x5b, 0xcb, 0x5d, 0x3b, 0x65, 0x06, 0xb9, 0xe0, 0x8e, 0xed, 0x56, 0xbc, 0xef, 0x2c, 0x68, + 0xd1, 0x3e, 0x7c, 0x89, 0xdf, 0x4c, 0xf5, 0x9d, 0x3d, 0x65, 0x1d, 0xad, 0xf5, 0xeb, 0xc8, 0x5e, + 0x83, 0x56, 0x84, 0x33, 0x35, 0x4c, 0x4d, 0x38, 0xdd, 0xa2, 0x3d, 0x68, 0x6a, 0x30, 0x4f, 0xd9, + 0xef, 0x10, 0x63, 0x17, 0x76, 0xd6, 0xa6, 0xde, 0xf4, 0xce, 0xa1, 0x6d, 0x16, 0xa6, 0x60, 0xf1, + 0xcc, 0xbd, 0x7c, 0xa1, 0xa2, 0x37, 0xa9, 0x68, 0x1b, 0x1a, 0xcb, 0x99, 0xaa, 0x5e, 0x04, 0x2d, + 0x1a, 0xc5, 0xa2, 0xd2, 0xb5, 0x41, 0xb3, 0xfe, 0x33, 0x68, 0x2f, 0x54, 0xed, 0x25, 0xaa, 0xb6, + 0x0d, 0xad, 0xd5, 0x6c, 0x35, 0xef, 0x0f, 0x0b, 0x9a, 0x54, 0xf0, 0x98, 0x4f, 0xb8, 0xe9, 0x6c, + 0xa4, 0xed, 0xe5, 0xce, 0x08, 0xd0, 0xb5, 0x5c, 0xa8, 0x72, 0x21, 0x24, 0xa6, 0xa9, 0x59, 0x87, + 0xdc, 0xd4, 0x83, 0xad, 0x24, 0x17, 0x7c, 0x34, 0x41, 0xf3, 0xbe, 0x17, 0xb6, 0x8e, 0x92, 0xa8, + 0x02, 0x89, 0xc2, 0x2c, 0x43, 0x6e, 0xea, 0x28, 0x4c, 0x7d, 0x19, 0x3f, 0x46, 0x91, 0xaf, 0x43, + 0x6e, 0xf7, 0xdf, 0x23, 0xca, 0x5d, 0xb8, 0x01, 0xdb, 0xa6, 0xc8, 0x61, 0x41, 0x8c, 0xdd, 0x84, + 0xed, 0xc2, 0x38, 0x34, 0x9f, 0x1d, 0xcb, 0xad, 0x7b, 0xbf, 0x5a, 0xd0, 0xc8, 0x04, 0x9c, 0x26, + 0xc9, 0x64, 0xfe, 0xec, 0x76, 0xde, 0x84, 0x76, 0x4e, 0x72, 0xc8, 0xc3, 0x78, 0x1a, 0x29, 0xf3, + 0xf2, 0x6d, 0xe5, 0xf0, 0x1d, 0x42, 0xd9, 0x1b, 0xb0, 0x65, 0x28, 0xe7, 0x7e, 0x59, 0x8f, 0x2d, + 0x83, 0x1a, 0xb7, 0xb7, 0xc0, 0xf1, 0xb5, 0x88, 0x93, 0xc9, 0xc2, 0x31, 0xeb, 0xb8, 0x5d, 0xe0, + 0x99, 0xeb, 0xf2, 0xf5, 0x2f, 0xf8, 0x81, 0xf7, 0xad, 0x61, 0xff, 0x85, 0x0c, 0xc6, 0xa7, 0x33, + 0x76, 0x03, 0x2a, 0x6a, 0xa6, 0xdf, 0xc0, 0x6c, 0xbe, 0x6d, 0x35, 0x3b, 0x11, 0xfa, 0x91, 0x52, + 0xf3, 0xc4, 0x30, 0xd5, 0x47, 0xfa, 0xb1, 0x8d, 0x55, 0x2e, 0x3c, 0x9d, 0xf5, 0xdc, 0x64, 0x89, + 0x97, 0x5f, 0x21, 0x20, 0xe8, 0x9e, 0x46, 0xfa, 0xdb, 0xc4, 0xa0, 0x01, 0xd5, 0xbc, 0x46, 0xe3, + 0xf8, 0xc1, 0x6f, 0x97, 0x1d, 0xeb, 0xc9, 0x65, 0xc7, 0xfa, 0xfb, 0xb2, 0x63, 0xfd, 0x78, 0xd5, + 0xd9, 0x78, 0x72, 0xd5, 0xd9, 0xf8, 0xeb, 0xaa, 0xb3, 0xf1, 0xd5, 0x07, 0xe3, 0x40, 0x9d, 0x4d, + 0x47, 0x5d, 0x3f, 0x0e, 0x7b, 0xf4, 0x07, 0xe3, 0xed, 0x08, 0xd5, 0xe3, 0x58, 0x3e, 0x32, 0xd6, + 0x04, 0xc5, 0x18, 0x65, 0x6f, 0xb6, 0xf4, 0xbf, 0xc4, 0x8f, 0x25, 0x8e, 0x36, 0xe9, 0x09, 0x79, + 0xf7, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x47, 0xef, 0xdb, 0xb6, 0x08, 0x00, 0x00, } func (m *CreditType) Marshal() (dAtA []byte, err error) { @@ -1115,6 +1125,13 @@ func (m *Project) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ReferenceId) > 0 { + i -= len(m.ReferenceId) + copy(dAtA[i:], m.ReferenceId) + i = encodeVarintState(dAtA, i, uint64(len(m.ReferenceId))) + i-- + dAtA[i] = 0x3a + } if len(m.Metadata) > 0 { i -= len(m.Metadata) copy(dAtA[i:], m.Metadata) @@ -1620,6 +1637,10 @@ func (m *Project) Size() (n int) { if l > 0 { n += 1 + l + sovState(uint64(l)) } + l = len(m.ReferenceId) + if l > 0 { + n += 1 + l + sovState(uint64(l)) + } return n } @@ -2458,6 +2479,38 @@ func (m *Project) Unmarshal(dAtA []byte) error { } m.Metadata = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowState + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthState + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthState + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipState(dAtA[iNdEx:]) diff --git a/x/ecocredit/core/tx.pb.go b/x/ecocredit/core/tx.pb.go index 690254c3fa..60fe80279c 100644 --- a/x/ecocredit/core/tx.pb.go +++ b/x/ecocredit/core/tx.pb.go @@ -181,6 +181,8 @@ type MsgCreateProject struct { // alphanumeric characters. country-code is required, while sub-national-code // and postal-code are optional and can be added for increased precision. Jurisdiction string `protobuf:"bytes,4,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` + // reference_id is any arbitrary string that can be use to reference project. + ReferenceId string `protobuf:"bytes,5,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } func (m *MsgCreateProject) Reset() { *m = MsgCreateProject{} } @@ -244,6 +246,13 @@ func (m *MsgCreateProject) GetJurisdiction() string { return "" } +func (m *MsgCreateProject) GetReferenceId() string { + if m != nil { + return m.ReferenceId + } + return "" +} + // MsgCreateProjectResponse is the Msg/CreateProject response type. type MsgCreateProjectResponse struct { // project_id is the unique identifier of the newly created project. @@ -1803,87 +1812,88 @@ func init() { func init() { proto.RegisterFile("regen/ecocredit/v1/tx.proto", fileDescriptor_2b8ae49f50a3ddbd) } var fileDescriptor_2b8ae49f50a3ddbd = []byte{ - // 1272 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0xdb, 0x54, - 0x14, 0xaf, 0x93, 0xb4, 0x49, 0x4e, 0x9a, 0xae, 0x73, 0xbb, 0x90, 0xb9, 0x6b, 0x9a, 0x19, 0xa6, - 0x85, 0xad, 0xd8, 0x6a, 0x87, 0x40, 0x13, 0x42, 0xa8, 0xed, 0x10, 0x2d, 0x52, 0x60, 0x0a, 0x45, - 0x48, 0x48, 0x28, 0x72, 0xec, 0x3b, 0xd7, 0x23, 0xf1, 0x8d, 0xec, 0x9b, 0xb6, 0x13, 0x8f, 0x88, - 0xf7, 0x7e, 0x07, 0xbe, 0x02, 0x62, 0x2f, 0x7c, 0x00, 0x1e, 0xf7, 0xb8, 0x07, 0x24, 0x50, 0xfb, - 0x45, 0x90, 0xef, 0xbd, 0xbe, 0xb1, 0x1d, 0xc7, 0x49, 0xe9, 0x0b, 0x2f, 0x8b, 0xef, 0xb9, 0xbf, - 0xf3, 0xe7, 0x77, 0xee, 0xb9, 0xf7, 0x9c, 0x15, 0x36, 0x3c, 0x64, 0x23, 0x57, 0x47, 0x26, 0x36, - 0x3d, 0x64, 0x39, 0x44, 0x3f, 0xdd, 0xd1, 0xc9, 0xb9, 0x36, 0xf4, 0x30, 0xc1, 0xb2, 0x4c, 0x37, - 0x35, 0xb1, 0xa9, 0x9d, 0xee, 0x28, 0xeb, 0x36, 0xb6, 0x31, 0xdd, 0xd6, 0x83, 0x2f, 0x86, 0x54, - 0xb6, 0x6c, 0x8c, 0xed, 0x3e, 0xd2, 0xe9, 0xaa, 0x37, 0x7a, 0xa1, 0x13, 0x67, 0x80, 0x7c, 0x62, - 0x0c, 0x86, 0x1c, 0xd0, 0x30, 0xb1, 0x3f, 0xc0, 0xbe, 0xde, 0x33, 0x7c, 0xa4, 0x9f, 0xee, 0xf4, - 0x10, 0x31, 0x76, 0x74, 0x13, 0x3b, 0x6e, 0xb8, 0x9f, 0x16, 0xc7, 0xab, 0x21, 0xf2, 0xd9, 0xbe, - 0xfa, 0x5a, 0x82, 0x95, 0xb6, 0x6f, 0x1f, 0x78, 0xc8, 0x20, 0xe8, 0xa0, 0x6f, 0xf8, 0xbe, 0xbc, - 0x0e, 0x8b, 0x86, 0x35, 0x70, 0xdc, 0xba, 0xd4, 0x94, 0x5a, 0xe5, 0x0e, 0x5b, 0xc8, 0x75, 0x28, - 0x3a, 0xbe, 0x3f, 0x42, 0x9e, 0x5f, 0xcf, 0x35, 0xf3, 0xad, 0x72, 0x27, 0x5c, 0xca, 0x0a, 0x94, - 0x06, 0x88, 0x18, 0x96, 0x41, 0x8c, 0x7a, 0x9e, 0xaa, 0x88, 0xb5, 0xbc, 0x0d, 0x32, 0xf3, 0xdb, - 0x0d, 0x9c, 0x76, 0x8d, 0x5e, 0xcf, 0x43, 0xa7, 0xf5, 0x02, 0x45, 0xad, 0xb2, 0x9d, 0xe3, 0x57, - 0x43, 0xb4, 0x47, 0xe5, 0xf2, 0x63, 0xc8, 0xbf, 0x40, 0xa8, 0xbe, 0xd8, 0x94, 0x5a, 0x95, 0xdd, - 0xbb, 0x1a, 0xa3, 0xa6, 0x05, 0xd4, 0x34, 0x4e, 0x4d, 0x3b, 0xc0, 0x8e, 0xdb, 0x09, 0x50, 0xea, - 0x13, 0xa8, 0xc5, 0x03, 0xef, 0x20, 0x7f, 0x88, 0x5d, 0x1f, 0xc9, 0x77, 0xa1, 0x64, 0x06, 0x82, - 0xae, 0x63, 0x71, 0x0e, 0x45, 0xba, 0x3e, 0xb2, 0xd4, 0x5f, 0x24, 0x58, 0x15, 0x5a, 0xcf, 0x3d, - 0xfc, 0x12, 0x99, 0x44, 0xae, 0xc1, 0x12, 0xe3, 0xc2, 0xd1, 0x7c, 0x15, 0xb3, 0x93, 0x8b, 0xd9, - 0xc9, 0xe4, 0xac, 0xc2, 0xf2, 0xcb, 0x91, 0xe7, 0xf8, 0x96, 0x63, 0x12, 0x07, 0xbb, 0x9c, 0x6d, - 0x4c, 0xa6, 0x3e, 0x85, 0x7a, 0x32, 0x0c, 0x11, 0xfe, 0x26, 0xc0, 0x90, 0x89, 0xc6, 0x04, 0xca, - 0x5c, 0x72, 0x64, 0xa9, 0x3f, 0xe7, 0x23, 0x27, 0xb6, 0x6f, 0x10, 0xf3, 0x64, 0x2a, 0x81, 0xb8, - 0xa5, 0x5c, 0xc2, 0x92, 0xfc, 0x29, 0x94, 0x02, 0xa0, 0xe1, 0x9a, 0xa8, 0x9e, 0x6f, 0xe6, 0x5b, - 0x95, 0xdd, 0xfb, 0xda, 0x64, 0x65, 0x6a, 0xd4, 0xc7, 0x11, 0x07, 0x76, 0x84, 0x4a, 0x2c, 0x07, - 0x85, 0x44, 0x0e, 0x3e, 0x03, 0xf0, 0x89, 0xe1, 0x91, 0xae, 0x65, 0x90, 0xf0, 0x40, 0x15, 0x8d, - 0x15, 0xb3, 0x16, 0x16, 0xb3, 0x76, 0x1c, 0x16, 0xf3, 0x7e, 0xe1, 0xe2, 0xef, 0x2d, 0xa9, 0x53, - 0xa6, 0x3a, 0xcf, 0x0c, 0x82, 0xe4, 0x4f, 0xa0, 0x84, 0x5c, 0x8b, 0xa9, 0x2f, 0xcd, 0xa9, 0x5e, - 0x44, 0xae, 0x45, 0x95, 0x65, 0x28, 0xe0, 0x21, 0x72, 0xeb, 0xc5, 0xa6, 0xd4, 0x2a, 0x75, 0xe8, - 0xb7, 0xfc, 0x14, 0xca, 0xd8, 0x73, 0x6c, 0xc7, 0xed, 0x92, 0xf3, 0x7a, 0x89, 0x5a, 0xbc, 0x97, - 0xc6, 0xf6, 0x6b, 0x0a, 0x3a, 0x3e, 0xef, 0x94, 0x30, 0xff, 0x0a, 0xcc, 0xb9, 0x98, 0xa0, 0x7a, - 0x99, 0x92, 0xa4, 0xdf, 0xea, 0xef, 0x12, 0x54, 0x63, 0x89, 0x91, 0xef, 0x41, 0xd9, 0x43, 0xa6, - 0x33, 0x74, 0x90, 0x4b, 0xc2, 0x53, 0x13, 0x02, 0xf9, 0x21, 0xdc, 0x22, 0x9e, 0x61, 0x19, 0xbd, - 0x3e, 0xea, 0x1a, 0x03, 0x3c, 0x72, 0x09, 0x3f, 0x8f, 0x95, 0x50, 0xbc, 0x47, 0xa5, 0xf2, 0x03, - 0x58, 0xf1, 0x10, 0x71, 0x3c, 0x64, 0x85, 0x38, 0x56, 0x5f, 0x55, 0x2e, 0xe5, 0xb0, 0x8f, 0xe1, - 0x1d, 0x26, 0x18, 0x20, 0x97, 0x74, 0x53, 0xea, 0xad, 0x36, 0xde, 0xfe, 0x32, 0x5e, 0x79, 0xb5, - 0x78, 0xf5, 0x88, 0xba, 0xdb, 0x82, 0x4a, 0x2f, 0x10, 0x74, 0x2d, 0xe4, 0xe2, 0x01, 0xa7, 0x00, - 0x54, 0xf4, 0x2c, 0x90, 0xa8, 0x7f, 0x49, 0xb0, 0xd6, 0xf6, 0xed, 0xb6, 0xe3, 0x12, 0xaa, 0x79, - 0x40, 0x93, 0xe6, 0x4f, 0x2d, 0xbf, 0x84, 0xc1, 0x5c, 0xd2, 0xe0, 0x4d, 0x0b, 0x30, 0x76, 0xa4, - 0x85, 0xff, 0x74, 0xa4, 0x8b, 0x91, 0x23, 0xfd, 0x02, 0x96, 0xdb, 0xbe, 0xfd, 0x0d, 0x32, 0xfa, - 0xd9, 0xb7, 0x6a, 0x16, 0x2d, 0x75, 0x13, 0x36, 0x52, 0xd2, 0x14, 0xe6, 0x59, 0xad, 0xc1, 0x7a, - 0xd4, 0x8f, 0x90, 0xff, 0x91, 0x83, 0x22, 0xdd, 0x70, 0xad, 0xc0, 0xb7, 0x8f, 0x5c, 0x6b, 0xec, - 0x9b, 0xad, 0xe2, 0x45, 0x96, 0x4b, 0x16, 0xd9, 0x1e, 0x14, 0x19, 0x6b, 0x9f, 0xa7, 0xf3, 0x61, - 0x5a, 0x3a, 0xb8, 0x0f, 0x2d, 0xf8, 0x27, 0x8c, 0x2d, 0xd4, 0x53, 0x5e, 0x4b, 0x50, 0x89, 0x6c, - 0xcc, 0x2c, 0x8a, 0xff, 0x4f, 0x61, 0xdf, 0x86, 0x5b, 0x9c, 0x99, 0xc8, 0xe8, 0x5b, 0x09, 0xca, - 0x6d, 0xdf, 0xee, 0x50, 0x85, 0x20, 0xa7, 0x27, 0xb8, 0x1f, 0xc9, 0x29, 0x5b, 0xc9, 0x9f, 0x8f, - 0xb3, 0x96, 0xa3, 0x59, 0x7b, 0x3c, 0x25, 0x6b, 0xcc, 0x8e, 0xc6, 0x7e, 0x92, 0x99, 0x9b, 0x78, - 0xf6, 0xf3, 0x93, 0xcf, 0xbe, 0x72, 0x08, 0xd5, 0x98, 0xf6, 0xec, 0xf4, 0xd6, 0x60, 0x29, 0x96, - 0x55, 0xbe, 0x52, 0xd7, 0xe0, 0xb6, 0x88, 0x48, 0xf0, 0xfd, 0x8d, 0xf1, 0x3d, 0x08, 0x6e, 0x47, - 0xff, 0xe6, 0x7c, 0x99, 0x1d, 0x8d, 0xfd, 0x4c, 0x54, 0xca, 0x21, 0x54, 0x63, 0x3b, 0x37, 0xe5, - 0xc2, 0x8c, 0x09, 0x2e, 0x26, 0x7d, 0x6b, 0xbe, 0x1d, 0x5a, 0x61, 0x7b, 0xdf, 0xa3, 0x63, 0x48, - 0xfa, 0x70, 0x92, 0xd1, 0xa9, 0x37, 0xa0, 0xec, 0xa2, 0xb3, 0x2e, 0x53, 0xe2, 0xad, 0xda, 0x45, - 0x67, 0xd4, 0x1a, 0xbf, 0xa9, 0x49, 0x27, 0x22, 0x86, 0x0b, 0x09, 0xee, 0xc4, 0xf7, 0x8f, 0xf8, - 0xcc, 0x73, 0xed, 0x30, 0xb6, 0xa0, 0x62, 0x58, 0x56, 0x37, 0x1c, 0xa1, 0xf2, 0x74, 0x84, 0x02, - 0xc3, 0xb2, 0x42, 0x8b, 0xf4, 0x7a, 0x0c, 0xf0, 0x29, 0x12, 0x98, 0x02, 0xc5, 0x54, 0x99, 0x94, - 0xc3, 0xd4, 0x2d, 0xd8, 0x4c, 0x8d, 0x48, 0xc4, 0x8c, 0xe8, 0xfb, 0x1e, 0x01, 0xb4, 0xc3, 0x9e, - 0x7c, 0xed, 0x98, 0x33, 0x86, 0x1c, 0xb5, 0x09, 0x8d, 0x74, 0x37, 0x22, 0x10, 0x27, 0x92, 0x3b, - 0x3e, 0xe2, 0x64, 0x1d, 0x61, 0xec, 0x9c, 0x72, 0xf1, 0x73, 0x4a, 0x0c, 0x32, 0xf9, 0xe4, 0x48, - 0x14, 0x4d, 0x4a, 0xd4, 0x95, 0x88, 0xc5, 0xa3, 0xe3, 0x56, 0x0c, 0x30, 0x23, 0x2d, 0xf7, 0x61, - 0x39, 0x08, 0x47, 0xf0, 0x67, 0x11, 0x55, 0x5c, 0x74, 0x26, 0x14, 0x67, 0x04, 0xa5, 0x42, 0x73, - 0x9a, 0xcf, 0x30, 0xae, 0xdd, 0x5f, 0x01, 0xf2, 0x6d, 0xdf, 0x96, 0x7f, 0x80, 0x4a, 0x74, 0x02, - 0x57, 0xa7, 0x5d, 0xc8, 0x31, 0x46, 0x79, 0x34, 0x1b, 0x23, 0x3a, 0xbb, 0x09, 0xd5, 0xf8, 0xc4, - 0xfb, 0x5e, 0xa6, 0x32, 0x47, 0x29, 0xdb, 0xf3, 0xa0, 0x84, 0x13, 0xc1, 0x81, 0x75, 0xcf, 0x6c, - 0x0e, 0x14, 0x33, 0x83, 0x43, 0x7c, 0x3a, 0xe9, 0xc3, 0xea, 0xc4, 0xe0, 0x31, 0xad, 0xbd, 0x25, - 0x81, 0x8a, 0x3e, 0x27, 0x50, 0x78, 0xfb, 0x0e, 0xca, 0xe3, 0x41, 0xa0, 0x39, 0xb5, 0x8b, 0x72, - 0x84, 0xd2, 0x9a, 0x85, 0x10, 0x86, 0x0f, 0xa1, 0x40, 0x1b, 0xfc, 0x46, 0x46, 0x67, 0x56, 0xde, - 0xcd, 0xd8, 0x14, 0x96, 0xbe, 0x82, 0x25, 0xde, 0xd8, 0x36, 0x33, 0xfb, 0x95, 0xf2, 0x20, 0x73, - 0x3b, 0x6a, 0x8f, 0x37, 0x8e, 0xcd, 0xcc, 0x7e, 0x30, 0xd5, 0x5e, 0xfc, 0x01, 0x0f, 0x0e, 0x6c, - 0xe2, 0xf5, 0x9e, 0x76, 0x60, 0x49, 0xe0, 0xd4, 0x03, 0x9b, 0xf6, 0x54, 0xcb, 0x1e, 0xc8, 0x29, - 0xcf, 0xf4, 0xfb, 0xb3, 0xcd, 0x70, 0xa8, 0xb2, 0x33, 0x37, 0x54, 0xf8, 0x1c, 0xc1, 0x5a, 0xda, - 0x3b, 0xfb, 0x68, 0xb6, 0xa5, 0x10, 0xab, 0xec, 0xce, 0x8f, 0x9d, 0xa4, 0x1a, 0x7b, 0x55, 0xb3, - 0xa9, 0x46, 0xa1, 0x33, 0xa8, 0xa6, 0x3d, 0xa0, 0xf2, 0x4f, 0x70, 0x27, 0xfd, 0xf5, 0xdc, 0x9e, - 0xc7, 0x96, 0xa0, 0xfb, 0xe1, 0x75, 0xd0, 0xa1, 0xf3, 0xfd, 0xe7, 0x7f, 0x5e, 0x36, 0xa4, 0x37, - 0x97, 0x0d, 0xe9, 0x9f, 0xcb, 0x86, 0x74, 0x71, 0xd5, 0x58, 0x78, 0x73, 0xd5, 0x58, 0x78, 0x7b, - 0xd5, 0x58, 0xf8, 0xfe, 0x23, 0xdb, 0x21, 0x27, 0xa3, 0x9e, 0x66, 0xe2, 0x81, 0x4e, 0x2d, 0x7f, - 0xe0, 0x22, 0x72, 0x86, 0xbd, 0x1f, 0xf9, 0xaa, 0x8f, 0x2c, 0x1b, 0x79, 0xfa, 0x79, 0xe4, 0xef, - 0x1f, 0x26, 0xf6, 0x50, 0x6f, 0x89, 0xfe, 0x1f, 0xf2, 0xc9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, - 0xba, 0x3a, 0x38, 0x9a, 0xa6, 0x11, 0x00, 0x00, + // 1293 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdd, 0x8e, 0xdb, 0x44, + 0x14, 0xae, 0x93, 0xec, 0x6e, 0x72, 0xb2, 0xdb, 0x1f, 0xb7, 0x5d, 0x52, 0x6f, 0x37, 0x9b, 0x1a, + 0xaa, 0x2e, 0x6d, 0xb1, 0xb5, 0x5b, 0x04, 0xaa, 0x10, 0x42, 0xdb, 0x2d, 0xa2, 0x8b, 0x14, 0xa8, + 0x42, 0x11, 0x12, 0x12, 0x8a, 0x1c, 0xfb, 0xd4, 0x75, 0x49, 0x66, 0x22, 0x7b, 0xf6, 0xa7, 0xe2, + 0x92, 0x17, 0xe8, 0x3b, 0x70, 0xc3, 0x03, 0x20, 0x7a, 0xc3, 0x03, 0x70, 0xd9, 0xcb, 0x5e, 0x20, + 0x81, 0xda, 0x17, 0x41, 0x9e, 0x19, 0x4f, 0x6c, 0xc7, 0x71, 0x52, 0xf6, 0x86, 0x9b, 0xc6, 0x73, + 0xe6, 0x3b, 0x3f, 0xdf, 0x99, 0x33, 0x73, 0x4e, 0x17, 0x36, 0x42, 0xf4, 0x91, 0xd8, 0xe8, 0x52, + 0x37, 0x44, 0x2f, 0x60, 0xf6, 0xd1, 0x8e, 0xcd, 0x4e, 0xac, 0x71, 0x48, 0x19, 0xd5, 0x75, 0xbe, + 0x69, 0xa9, 0x4d, 0xeb, 0x68, 0xc7, 0xb8, 0xe4, 0x53, 0x9f, 0xf2, 0x6d, 0x3b, 0xfe, 0x12, 0x48, + 0x63, 0xcb, 0xa7, 0xd4, 0x1f, 0xa2, 0xcd, 0x57, 0x83, 0xc3, 0xc7, 0x36, 0x0b, 0x46, 0x18, 0x31, + 0x67, 0x34, 0x96, 0x80, 0xb6, 0x4b, 0xa3, 0x11, 0x8d, 0xec, 0x81, 0x13, 0xa1, 0x7d, 0xb4, 0x33, + 0x40, 0xe6, 0xec, 0xd8, 0x2e, 0x0d, 0x48, 0xb2, 0x5f, 0x14, 0xc7, 0xb3, 0x31, 0x46, 0x62, 0xdf, + 0x7c, 0xa1, 0xc1, 0xd9, 0x6e, 0xe4, 0xef, 0x87, 0xe8, 0x30, 0xdc, 0x1f, 0x3a, 0x51, 0xa4, 0x5f, + 0x82, 0x25, 0xc7, 0x1b, 0x05, 0xa4, 0xa5, 0x75, 0xb4, 0xed, 0x46, 0x4f, 0x2c, 0xf4, 0x16, 0xac, + 0x04, 0x51, 0x74, 0x88, 0x61, 0xd4, 0xaa, 0x74, 0xaa, 0xdb, 0x8d, 0x5e, 0xb2, 0xd4, 0x0d, 0xa8, + 0x8f, 0x90, 0x39, 0x9e, 0xc3, 0x9c, 0x56, 0x95, 0xab, 0xa8, 0xb5, 0x7e, 0x1b, 0x74, 0xe1, 0xb7, + 0x1f, 0x3b, 0xed, 0x3b, 0x83, 0x41, 0x88, 0x47, 0xad, 0x1a, 0x47, 0x9d, 0x17, 0x3b, 0x8f, 0x9e, + 0x8d, 0x71, 0x8f, 0xcb, 0xf5, 0x5b, 0x50, 0x7d, 0x8c, 0xd8, 0x5a, 0xea, 0x68, 0xdb, 0xcd, 0xdd, + 0x2b, 0x96, 0xa0, 0x66, 0xc5, 0xd4, 0x2c, 0x49, 0xcd, 0xda, 0xa7, 0x01, 0xe9, 0xc5, 0x28, 0xf3, + 0x0e, 0xac, 0x67, 0x03, 0xef, 0x61, 0x34, 0xa6, 0x24, 0x42, 0xfd, 0x0a, 0xd4, 0xdd, 0x58, 0xd0, + 0x0f, 0x3c, 0xc9, 0x61, 0x85, 0xaf, 0x0f, 0x3c, 0xf3, 0x57, 0x0d, 0xce, 0x2b, 0xad, 0x87, 0x21, + 0x7d, 0x8a, 0x2e, 0xd3, 0xd7, 0x61, 0x59, 0x70, 0x91, 0x68, 0xb9, 0xca, 0xd8, 0xa9, 0x64, 0xec, + 0x94, 0x72, 0x36, 0x61, 0xf5, 0xe9, 0x61, 0x18, 0x44, 0x5e, 0xe0, 0xb2, 0x80, 0x12, 0xc9, 0x36, + 0x23, 0xd3, 0xaf, 0xc1, 0x6a, 0x88, 0x8f, 0x31, 0x44, 0xe2, 0x62, 0x6c, 0x7e, 0x89, 0x63, 0x9a, + 0x4a, 0x76, 0xe0, 0x99, 0x77, 0xa1, 0x95, 0x8f, 0x54, 0x31, 0xdc, 0x04, 0x18, 0x0b, 0xd1, 0x84, + 0x63, 0x43, 0x4a, 0x0e, 0x3c, 0xf3, 0xe7, 0x6a, 0xea, 0x50, 0xef, 0x39, 0xcc, 0x7d, 0x32, 0x93, + 0x63, 0xd6, 0x52, 0x25, 0x67, 0x49, 0xff, 0x14, 0xea, 0x31, 0xd0, 0x21, 0x2e, 0xb6, 0xaa, 0x9d, + 0xea, 0x76, 0x73, 0xf7, 0x9a, 0x35, 0x5d, 0xbc, 0x16, 0xf7, 0x71, 0x20, 0x81, 0x3d, 0xa5, 0x92, + 0x49, 0x53, 0x2d, 0x97, 0xa6, 0xcf, 0x00, 0x22, 0xe6, 0x84, 0xac, 0xef, 0x39, 0x2c, 0x39, 0x73, + 0xc3, 0x12, 0xf5, 0x6e, 0x25, 0xf5, 0x6e, 0x3d, 0x4a, 0xea, 0xfd, 0x5e, 0xed, 0xf9, 0xdf, 0x5b, + 0x5a, 0xaf, 0xc1, 0x75, 0xee, 0x3b, 0x0c, 0xf5, 0x4f, 0xa0, 0x8e, 0xc4, 0x13, 0xea, 0xcb, 0x0b, + 0xaa, 0xaf, 0x20, 0xf1, 0xb8, 0xb2, 0x0e, 0x35, 0x3a, 0x46, 0xd2, 0x5a, 0xe9, 0x68, 0xdb, 0xf5, + 0x1e, 0xff, 0xd6, 0xef, 0x42, 0x83, 0x86, 0x81, 0x1f, 0x90, 0x3e, 0x3b, 0x69, 0xd5, 0xb9, 0xc5, + 0xab, 0x45, 0x6c, 0xbf, 0xe6, 0xa0, 0x47, 0x27, 0xbd, 0x3a, 0x95, 0x5f, 0xb1, 0x39, 0x42, 0x19, + 0xb6, 0x1a, 0x9c, 0x24, 0xff, 0x36, 0x7f, 0xd7, 0x60, 0x2d, 0x93, 0x18, 0xfd, 0x2a, 0x34, 0x42, + 0x74, 0x83, 0x71, 0x80, 0x84, 0x25, 0xa7, 0xa6, 0x04, 0xfa, 0x0d, 0x38, 0xc7, 0x42, 0xc7, 0x73, + 0x06, 0x43, 0xec, 0x3b, 0x23, 0x7a, 0x48, 0x98, 0x3c, 0x8f, 0xb3, 0x89, 0x78, 0x8f, 0x4b, 0xf5, + 0xeb, 0x70, 0x36, 0x44, 0x16, 0x84, 0xe8, 0x25, 0x38, 0x51, 0x82, 0x6b, 0x52, 0x2a, 0x61, 0x1f, + 0xc3, 0x3b, 0x42, 0x30, 0x42, 0xc2, 0xfa, 0x05, 0x25, 0xb9, 0x3e, 0xd9, 0xfe, 0x32, 0xb5, 0x6b, + 0xde, 0x4d, 0xdd, 0x2c, 0x4e, 0x40, 0xd5, 0xdd, 0x16, 0x34, 0x07, 0xb1, 0xa0, 0xef, 0x21, 0xa1, + 0x23, 0x49, 0x01, 0xb8, 0xe8, 0x7e, 0x2c, 0x31, 0xff, 0xd2, 0xe0, 0x62, 0x37, 0xf2, 0xbb, 0x01, + 0x61, 0x5c, 0x73, 0x9f, 0x27, 0x2d, 0x9a, 0x59, 0x7e, 0x39, 0x83, 0x95, 0xbc, 0xc1, 0xd3, 0x16, + 0x60, 0xe6, 0x48, 0x6b, 0xff, 0xe9, 0x48, 0x97, 0x52, 0x47, 0xfa, 0x05, 0xac, 0x76, 0x23, 0xff, + 0x1b, 0x74, 0x86, 0xe5, 0xb7, 0x6a, 0x1e, 0x2d, 0x73, 0x13, 0x36, 0x0a, 0xd2, 0x94, 0xe4, 0xd9, + 0x5c, 0x87, 0x4b, 0x69, 0x3f, 0x4a, 0xfe, 0x47, 0x05, 0x56, 0xf8, 0x06, 0xf1, 0x62, 0xdf, 0x11, + 0x12, 0x6f, 0xe2, 0x5b, 0xac, 0xb2, 0x45, 0x56, 0xc9, 0x17, 0xd9, 0x1e, 0xac, 0x08, 0xd6, 0x91, + 0x4c, 0xe7, 0x8d, 0xa2, 0x74, 0x48, 0x1f, 0x56, 0xfc, 0x4f, 0x12, 0x5b, 0xa2, 0x67, 0xbc, 0xd0, + 0xa0, 0x99, 0xda, 0x98, 0x5b, 0x14, 0xff, 0x9f, 0xc2, 0xbe, 0x00, 0xe7, 0x24, 0x33, 0x95, 0xd1, + 0x57, 0x1a, 0x34, 0xba, 0x91, 0xdf, 0xe3, 0x0a, 0x71, 0x4e, 0x9f, 0xd0, 0x61, 0x2a, 0xa7, 0x62, + 0xa5, 0x7f, 0x3e, 0xc9, 0x5a, 0x85, 0x67, 0xed, 0xd6, 0x8c, 0xac, 0x09, 0x3b, 0x96, 0xf8, 0xc9, + 0x67, 0x6e, 0xaa, 0x33, 0x54, 0xa7, 0x3b, 0x83, 0xf1, 0x00, 0xd6, 0x32, 0xda, 0xf3, 0xd3, 0xbb, + 0x0e, 0xcb, 0x99, 0xac, 0xca, 0x95, 0x79, 0x11, 0x2e, 0xa8, 0x88, 0x14, 0xdf, 0xdf, 0x04, 0xdf, + 0xfd, 0xf8, 0x76, 0x0c, 0x4f, 0xcf, 0x57, 0xd8, 0xb1, 0xc4, 0xcf, 0x54, 0xa5, 0x3c, 0x80, 0xb5, + 0xcc, 0xce, 0x69, 0xb9, 0x08, 0x63, 0x8a, 0x8b, 0xcb, 0xdf, 0x9a, 0x6f, 0xc7, 0x5e, 0x32, 0x01, + 0xec, 0xf1, 0x49, 0xa5, 0x78, 0x7e, 0x29, 0x69, 0xe6, 0x1b, 0xd0, 0x20, 0x78, 0xdc, 0x17, 0x4a, + 0xb2, 0x9b, 0x13, 0x3c, 0xe6, 0xd6, 0xe4, 0x4d, 0xcd, 0x3b, 0x51, 0x31, 0x3c, 0xd7, 0xe0, 0x72, + 0x76, 0xff, 0x40, 0x8e, 0x45, 0x6f, 0x1d, 0xc6, 0x16, 0x34, 0x1d, 0xcf, 0xeb, 0x27, 0x53, 0x56, + 0x95, 0x4f, 0x59, 0xe0, 0x78, 0x5e, 0x62, 0x91, 0x5f, 0x8f, 0x11, 0x3d, 0x42, 0x85, 0xa9, 0x71, + 0xcc, 0x9a, 0x90, 0x4a, 0x98, 0xb9, 0x05, 0x9b, 0x85, 0x11, 0xa9, 0x98, 0x91, 0xbf, 0xef, 0x29, + 0x40, 0x37, 0xe9, 0xc9, 0x6f, 0x1d, 0x73, 0xc9, 0x1c, 0x64, 0x76, 0xa0, 0x5d, 0xec, 0x46, 0x05, + 0x12, 0xa4, 0x72, 0x27, 0x47, 0x9c, 0xb2, 0x23, 0xcc, 0x9c, 0x53, 0x25, 0x7b, 0x4e, 0xb9, 0x41, + 0xa6, 0x9a, 0x1f, 0x89, 0xd2, 0x49, 0x49, 0xbb, 0x52, 0xb1, 0x84, 0x7c, 0xdc, 0xca, 0x00, 0xe6, + 0xa4, 0xe5, 0x1a, 0xac, 0xc6, 0xe1, 0x28, 0xfe, 0x22, 0xa2, 0x26, 0xc1, 0x63, 0xa5, 0x38, 0x27, + 0x28, 0x13, 0x3a, 0xb3, 0x7c, 0x26, 0x71, 0xed, 0xfe, 0x02, 0x50, 0xed, 0x46, 0xbe, 0xfe, 0x03, + 0x34, 0xd3, 0x43, 0xba, 0x39, 0xeb, 0x42, 0x4e, 0x30, 0xc6, 0xcd, 0xf9, 0x18, 0xd5, 0xd9, 0x5d, + 0x58, 0xcb, 0x0e, 0xc5, 0xef, 0x95, 0x2a, 0x4b, 0x94, 0x71, 0x7b, 0x11, 0x94, 0x72, 0xa2, 0x38, + 0x88, 0xee, 0x59, 0xce, 0x81, 0x63, 0xe6, 0x70, 0xc8, 0x4e, 0x27, 0x43, 0x38, 0x3f, 0x35, 0x78, + 0xcc, 0x6a, 0x6f, 0x79, 0xa0, 0x61, 0x2f, 0x08, 0x54, 0xde, 0xbe, 0x83, 0xc6, 0x64, 0x10, 0xe8, + 0xcc, 0xec, 0xa2, 0x12, 0x61, 0x6c, 0xcf, 0x43, 0x28, 0xc3, 0x0f, 0xa0, 0xc6, 0x1b, 0xfc, 0x46, + 0x49, 0x67, 0x36, 0xde, 0x2d, 0xd9, 0x54, 0x96, 0xbe, 0x82, 0x65, 0xd9, 0xd8, 0x36, 0x4b, 0xfb, + 0x95, 0x71, 0xbd, 0x74, 0x3b, 0x6d, 0x4f, 0x36, 0x8e, 0xcd, 0xd2, 0x7e, 0x30, 0xd3, 0x5e, 0xf6, + 0x01, 0x8f, 0x0f, 0x6c, 0xea, 0xf5, 0x9e, 0x75, 0x60, 0x79, 0xe0, 0xcc, 0x03, 0x9b, 0xf5, 0x54, + 0xeb, 0x21, 0xe8, 0x05, 0xcf, 0xf4, 0xfb, 0xf3, 0xcd, 0x48, 0xa8, 0xb1, 0xb3, 0x30, 0x54, 0xf9, + 0x3c, 0x84, 0x8b, 0x45, 0xef, 0xec, 0xcd, 0xf9, 0x96, 0x12, 0xac, 0xb1, 0xbb, 0x38, 0x76, 0x9a, + 0x6a, 0xe6, 0x55, 0x2d, 0xa7, 0x9a, 0x86, 0xce, 0xa1, 0x5a, 0xf4, 0x80, 0xea, 0x3f, 0xc1, 0xe5, + 0xe2, 0xd7, 0xf3, 0xf6, 0x22, 0xb6, 0x14, 0xdd, 0x0f, 0xdf, 0x06, 0x9d, 0x38, 0xbf, 0xf7, 0xf0, + 0xcf, 0xd7, 0x6d, 0xed, 0xe5, 0xeb, 0xb6, 0xf6, 0xcf, 0xeb, 0xb6, 0xf6, 0xfc, 0x4d, 0xfb, 0xcc, + 0xcb, 0x37, 0xed, 0x33, 0xaf, 0xde, 0xb4, 0xcf, 0x7c, 0xff, 0x91, 0x1f, 0xb0, 0x27, 0x87, 0x03, + 0xcb, 0xa5, 0x23, 0x9b, 0x5b, 0xfe, 0x80, 0x20, 0x3b, 0xa6, 0xe1, 0x8f, 0x72, 0x35, 0x44, 0xcf, + 0xc7, 0xd0, 0x3e, 0x49, 0xfd, 0x89, 0xc4, 0xa5, 0x21, 0x0e, 0x96, 0xf9, 0xff, 0x21, 0xef, 0xfc, + 0x1b, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x45, 0x37, 0xde, 0xc9, 0x11, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2569,6 +2579,13 @@ func (m *MsgCreateProject) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ReferenceId) > 0 { + i -= len(m.ReferenceId) + copy(dAtA[i:], m.ReferenceId) + i = encodeVarintTx(dAtA, i, uint64(len(m.ReferenceId))) + i-- + dAtA[i] = 0x2a + } if len(m.Jurisdiction) > 0 { i -= len(m.Jurisdiction) copy(dAtA[i:], m.Jurisdiction) @@ -3734,6 +3751,10 @@ func (m *MsgCreateProject) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.ReferenceId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -4668,6 +4689,38 @@ func (m *MsgCreateProject) Unmarshal(dAtA []byte) error { } m.Jurisdiction = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/x/ecocredit/server/core/create_project.go b/x/ecocredit/server/core/create_project.go index e23ddccdc4..3a3bed4a6a 100644 --- a/x/ecocredit/server/core/create_project.go +++ b/x/ecocredit/server/core/create_project.go @@ -35,13 +35,19 @@ func (k Keeper) CreateProject(ctx context.Context, req *core.MsgCreateProject) ( return nil, err } - if err = k.stateStore.ProjectTable().Insert(ctx, &api.Project{ + project := &api.Project{ Id: projectID, Admin: adminAddress, ClassKey: classInfo.Key, Jurisdiction: req.Jurisdiction, Metadata: req.Metadata, - }); err != nil { + } + + if req.ReferenceId != "" { + project.ReferenceId = req.ReferenceId + } + + if err = k.stateStore.ProjectTable().Insert(ctx, project); err != nil { return nil, err } diff --git a/x/ecocredit/server/core/query_projects_by_reference_id.go b/x/ecocredit/server/core/query_projects_by_reference_id.go new file mode 100644 index 0000000000..0dede8d821 --- /dev/null +++ b/x/ecocredit/server/core/query_projects_by_reference_id.go @@ -0,0 +1,66 @@ +package core + +import ( + "context" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + "github.com/cosmos/cosmos-sdk/orm/model/ormlist" + sdk "github.com/cosmos/cosmos-sdk/types" + api "github.com/regen-network/regen-ledger/api/regen/ecocredit/v1" + "github.com/regen-network/regen-ledger/types/ormutil" + "github.com/regen-network/regen-ledger/x/ecocredit/core" +) + +// ProjectInfo queries projects info by reference id. +func (k Keeper) ProjectsByReferenceId(ctx context.Context, req *core.QueryProjectsByReferenceIdRequest) (*core.QueryProjectsByReferenceIdResponse, error) { + if req.ReferenceId == "" { + return nil, status.Errorf(codes.InvalidArgument, "reference-id is empty") + } + + pg, err := ormutil.GogoPageReqToPulsarPageReq(req.Pagination) + if err != nil { + return nil, err + } + + it, err := k.stateStore.ProjectTable().List(ctx, api.ProjectReferenceIdIndexKey{}.WithReferenceId(req.ReferenceId), ormlist.Paginate(pg)) + if err != nil { + return nil, err + } + defer it.Close() + + projects := make([]*core.ProjectInfo, 0) + for it.Next() { + project, err := it.Value() + if err != nil { + return nil, err + } + + class, err := k.stateStore.ClassTable().Get(ctx, project.ClassKey) + if err != nil { + return nil, err + } + + info := &core.ProjectInfo{ + Id: project.Id, + Admin: sdk.AccAddress(project.Admin).String(), + ClassId: class.Id, + Jurisdiction: project.Jurisdiction, + Metadata: project.Metadata, + ReferenceId: project.ReferenceId, + } + + projects = append(projects, info) + } + + pr, err := ormutil.PulsarPageResToGogoPageRes(it.PageResponse()) + if err != nil { + return nil, err + } + + return &core.QueryProjectsByReferenceIdResponse{ + Projects: projects, + Pagination: pr, + }, nil +} From 5f9fe661b5136d3a2c3b74144d51af53d94c8b1c Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Fri, 6 May 2022 20:03:36 +0530 Subject: [PATCH 02/12] feat: add cli query --- x/ecocredit/client/query.go | 38 +++++++++++++++++++++++++++++++++++++ x/ecocredit/client/tx.go | 12 ++++++++++++ 2 files changed, 50 insertions(+) diff --git a/x/ecocredit/client/query.go b/x/ecocredit/client/query.go index d999af1170..988ea76b2d 100644 --- a/x/ecocredit/client/query.go +++ b/x/ecocredit/client/query.go @@ -331,3 +331,41 @@ $%s q %s params }, }) } + +// QueryProjectsByReferenceIdCmd returns command that retrieves list of projects by reference id with pagination. +func QueryProjectsByReferenceIdCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "projects-by-reference-id [reference-id]", + Short: "Retrieve list of projects by reference-id with pagination flags", + Long: strings.TrimSpace( + fmt.Sprintf(`Retrieve list of projects by reference-id with pagination flags + +Examples: +$%s query %s projects-by-reference-id R1 +$%s q %s projects-by-reference-id R1 --limit 10 + `, version.AppName, ecocredit.ModuleName, version.AppName, ecocredit.ModuleName), + ), + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + c, ctx, err := mkQueryClient(cmd) + if err != nil { + return err + } + + pagination, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + + res, err := c.ProjectsByReferenceId(cmd.Context(), &core.QueryProjectsByReferenceIdRequest{ + ReferenceId: args[0], + Pagination: pagination, + }) + return printQueryResponse(ctx, res, err) + }, + } + + flags.AddPaginationFlagsToCmd(cmd, "projects-by-reference-id") + + return qflags(cmd) +} diff --git a/x/ecocredit/client/tx.go b/x/ecocredit/client/tx.go index 8ea94c2004..2a26cd4bd2 100644 --- a/x/ecocredit/client/tx.go +++ b/x/ecocredit/client/tx.go @@ -142,6 +142,7 @@ const ( FlagMetadata string = "metadata" FlagAddIssuers string = "add-issuers" FlagRemoveIssuers string = "remove-issuers" + FlagReferenceId string = "reference-id" ) // TxGenBatchJSONCmd returns a transaction command that generates JSON to @@ -546,6 +547,8 @@ func TxCreateProject() *cobra.Command { class-id: id of the class project-jurisdiction: the jurisdiction of the project (see documentation for proper project-jurisdiction formats). metadata: any arbitrary metadata attached to the project. + Flags: + reference-id: proect reference id `, Args: cobra.ExactArgs(3), RunE: func(cmd *cobra.Command, args []string) error { @@ -580,11 +583,20 @@ func TxCreateProject() *cobra.Command { Metadata: args[2], } + referenceId, err := cmd.Flags().GetString(FlagReferenceId) + if err != nil { + return err + } + referenceId = strings.TrimSpace(referenceId) + msg.ReferenceId = referenceId + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), &msg) }, }) + cmd.Flags().String(FlagReferenceId, "", "project reference id") + return cmd } From a0582c457c58b5df18f58a03e627c8b9568bac46 Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Fri, 6 May 2022 20:16:23 +0530 Subject: [PATCH 03/12] chore: update proto files --- proto/regen/ecocredit/v1/query.proto | 2 +- x/ecocredit/core/query.pb.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/regen/ecocredit/v1/query.proto b/proto/regen/ecocredit/v1/query.proto index 6ac89dd001..04f70df90f 100644 --- a/proto/regen/ecocredit/v1/query.proto +++ b/proto/regen/ecocredit/v1/query.proto @@ -203,7 +203,7 @@ message QueryProjectsResponse { // QueryProjectsByReferenceIdRequest is the Query/ProjectsByReferenceId request type. message QueryProjectsByReferenceIdRequest { - // class_id is the unique identifier of the credit class to query. + // reference_id is the project reference id. string reference_id = 1; // pagination defines an optional pagination for the request. diff --git a/x/ecocredit/core/query.pb.go b/x/ecocredit/core/query.pb.go index d45b86954b..27614abdf5 100644 --- a/x/ecocredit/core/query.pb.go +++ b/x/ecocredit/core/query.pb.go @@ -555,7 +555,7 @@ func (m *QueryProjectsResponse) GetPagination() *query.PageResponse { // QueryProjectsByReferenceIdRequest is the Query/ProjectsByReferenceId request type. type QueryProjectsByReferenceIdRequest struct { - // class_id is the unique identifier of the credit class to query. + // reference_id is the project reference id. ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` // pagination defines an optional pagination for the request. Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` From 71cd2d97981b9ab32509b54ea16f280ffd496992 Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Fri, 6 May 2022 20:17:13 +0530 Subject: [PATCH 04/12] run: make proto-gen --- api/regen/ecocredit/v1/query.pulsar.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/regen/ecocredit/v1/query.pulsar.go b/api/regen/ecocredit/v1/query.pulsar.go index 988db801ce..db714c0684 100644 --- a/api/regen/ecocredit/v1/query.pulsar.go +++ b/api/regen/ecocredit/v1/query.pulsar.go @@ -19061,7 +19061,7 @@ type QueryProjectsByReferenceIdRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // class_id is the unique identifier of the credit class to query. + // reference_id is the project reference id. ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` // pagination defines an optional pagination for the request. Pagination *v1beta1.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` From c7b3d067a405a10eb015fa56b295b34316cdddd1 Mon Sep 17 00:00:00 2001 From: MD Aleem <72057206+aleem1314@users.noreply.github.com> Date: Mon, 9 May 2022 10:25:34 +0530 Subject: [PATCH 05/12] Update proto/regen/ecocredit/v1/state.proto Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com> --- proto/regen/ecocredit/v1/state.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/regen/ecocredit/v1/state.proto b/proto/regen/ecocredit/v1/state.proto index 586a3a9f7f..65d917a2d0 100644 --- a/proto/regen/ecocredit/v1/state.proto +++ b/proto/regen/ecocredit/v1/state.proto @@ -107,7 +107,7 @@ message Project { // metadata is any arbitrary metadata attached to the project. string metadata = 6; - // reference_id is any arbitrary string that can be use to reference project. + // reference_id is any arbitrary string used to reference the project. string reference_id = 7; } From b38e84217c8354ce3f81f22dccc17e8e84cfdd26 Mon Sep 17 00:00:00 2001 From: MD Aleem <72057206+aleem1314@users.noreply.github.com> Date: Mon, 9 May 2022 10:25:42 +0530 Subject: [PATCH 06/12] Update proto/regen/ecocredit/v1/tx.proto Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com> --- proto/regen/ecocredit/v1/tx.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/regen/ecocredit/v1/tx.proto b/proto/regen/ecocredit/v1/tx.proto index 0aec6c7346..abcb3663c2 100644 --- a/proto/regen/ecocredit/v1/tx.proto +++ b/proto/regen/ecocredit/v1/tx.proto @@ -122,7 +122,7 @@ message MsgCreateProject { // and postal-code are optional and can be added for increased precision. string jurisdiction = 4; - // reference_id is any arbitrary string that can be use to reference project. + // reference_id is any arbitrary string used to reference the project. string reference_id = 5; } From cf336fa997423126ff9ffabbad693f434c175c83 Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Mon, 9 May 2022 11:55:11 +0530 Subject: [PATCH 07/12] make proto-gen --- api/regen/ecocredit/v1/query.pulsar.go | 1931 ++++++++++++++++++----- api/regen/ecocredit/v1/query_grpc.pb.go | 38 + api/regen/ecocredit/v1/state.pulsar.go | 2 +- api/regen/ecocredit/v1/tx.pulsar.go | 2 +- x/ecocredit/core/query.pb.go | 700 ++++++-- x/ecocredit/core/query.pb.gw.go | 119 ++ x/ecocredit/core/state.pb.go | 2 +- x/ecocredit/core/tx.pb.go | 2 +- 8 files changed, 2256 insertions(+), 540 deletions(-) diff --git a/api/regen/ecocredit/v1/query.pulsar.go b/api/regen/ecocredit/v1/query.pulsar.go index 21f2067cd3..c84870aab0 100644 --- a/api/regen/ecocredit/v1/query.pulsar.go +++ b/api/regen/ecocredit/v1/query.pulsar.go @@ -5080,6 +5080,1078 @@ func (x *fastReflection_QueryProjectsResponse) ProtoMethods() *protoiface.Method } } +var ( + md_QueryProjectsByReferenceIdRequest protoreflect.MessageDescriptor + fd_QueryProjectsByReferenceIdRequest_reference_id protoreflect.FieldDescriptor + fd_QueryProjectsByReferenceIdRequest_pagination protoreflect.FieldDescriptor +) + +func init() { + file_regen_ecocredit_v1_query_proto_init() + md_QueryProjectsByReferenceIdRequest = File_regen_ecocredit_v1_query_proto.Messages().ByName("QueryProjectsByReferenceIdRequest") + fd_QueryProjectsByReferenceIdRequest_reference_id = md_QueryProjectsByReferenceIdRequest.Fields().ByName("reference_id") + fd_QueryProjectsByReferenceIdRequest_pagination = md_QueryProjectsByReferenceIdRequest.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryProjectsByReferenceIdRequest)(nil) + +type fastReflection_QueryProjectsByReferenceIdRequest QueryProjectsByReferenceIdRequest + +func (x *QueryProjectsByReferenceIdRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdRequest)(x) +} + +func (x *QueryProjectsByReferenceIdRequest) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryProjectsByReferenceIdRequest_messageType fastReflection_QueryProjectsByReferenceIdRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryProjectsByReferenceIdRequest_messageType{} + +type fastReflection_QueryProjectsByReferenceIdRequest_messageType struct{} + +func (x fastReflection_QueryProjectsByReferenceIdRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdRequest)(nil) +} +func (x fastReflection_QueryProjectsByReferenceIdRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdRequest) +} +func (x fastReflection_QueryProjectsByReferenceIdRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryProjectsByReferenceIdRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Interface() protoreflect.ProtoMessage { + return (*QueryProjectsByReferenceIdRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ReferenceId != "" { + value := protoreflect.ValueOfString(x.ReferenceId) + if !f(fd_QueryProjectsByReferenceIdRequest_reference_id, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryProjectsByReferenceIdRequest_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + return x.ReferenceId != "" + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + x.ReferenceId = "" + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + value := x.ReferenceId + return protoreflect.ValueOfString(value) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + x.ReferenceId = value.Interface().(string) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageRequest) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageRequest) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + panic(fmt.Errorf("field reference_id of message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.reference_id": + return protoreflect.ValueOfString("") + case "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination": + m := new(v1beta1.PageRequest) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.v1.QueryProjectsByReferenceIdRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryProjectsByReferenceIdRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryProjectsByReferenceIdRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.ReferenceId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.ReferenceId) > 0 { + i -= len(x.ReferenceId) + copy(dAtA[i:], x.ReferenceId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ReferenceId))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageRequest{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_QueryProjectsByReferenceIdResponse_1_list)(nil) + +type _QueryProjectsByReferenceIdResponse_1_list struct { + list *[]*ProjectInfo +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProjectInfo) + (*x.list)[i] = concreteValue +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProjectInfo) + *x.list = append(*x.list, concreteValue) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) AppendMutable() protoreflect.Value { + v := new(ProjectInfo) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) NewElement() protoreflect.Value { + v := new(ProjectInfo) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryProjectsByReferenceIdResponse_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_QueryProjectsByReferenceIdResponse protoreflect.MessageDescriptor + fd_QueryProjectsByReferenceIdResponse_projects protoreflect.FieldDescriptor + fd_QueryProjectsByReferenceIdResponse_pagination protoreflect.FieldDescriptor +) + +func init() { + file_regen_ecocredit_v1_query_proto_init() + md_QueryProjectsByReferenceIdResponse = File_regen_ecocredit_v1_query_proto.Messages().ByName("QueryProjectsByReferenceIdResponse") + fd_QueryProjectsByReferenceIdResponse_projects = md_QueryProjectsByReferenceIdResponse.Fields().ByName("projects") + fd_QueryProjectsByReferenceIdResponse_pagination = md_QueryProjectsByReferenceIdResponse.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryProjectsByReferenceIdResponse)(nil) + +type fastReflection_QueryProjectsByReferenceIdResponse QueryProjectsByReferenceIdResponse + +func (x *QueryProjectsByReferenceIdResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdResponse)(x) +} + +func (x *QueryProjectsByReferenceIdResponse) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryProjectsByReferenceIdResponse_messageType fastReflection_QueryProjectsByReferenceIdResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryProjectsByReferenceIdResponse_messageType{} + +type fastReflection_QueryProjectsByReferenceIdResponse_messageType struct{} + +func (x fastReflection_QueryProjectsByReferenceIdResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryProjectsByReferenceIdResponse)(nil) +} +func (x fastReflection_QueryProjectsByReferenceIdResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdResponse) +} +func (x fastReflection_QueryProjectsByReferenceIdResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryProjectsByReferenceIdResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryProjectsByReferenceIdResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) New() protoreflect.Message { + return new(fastReflection_QueryProjectsByReferenceIdResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Interface() protoreflect.ProtoMessage { + return (*QueryProjectsByReferenceIdResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Projects) != 0 { + value := protoreflect.ValueOfList(&_QueryProjectsByReferenceIdResponse_1_list{list: &x.Projects}) + if !f(fd_QueryProjectsByReferenceIdResponse_projects, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryProjectsByReferenceIdResponse_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + return len(x.Projects) != 0 + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + x.Projects = nil + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + if len(x.Projects) == 0 { + return protoreflect.ValueOfList(&_QueryProjectsByReferenceIdResponse_1_list{}) + } + listValue := &_QueryProjectsByReferenceIdResponse_1_list{list: &x.Projects} + return protoreflect.ValueOfList(listValue) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + lv := value.List() + clv := lv.(*_QueryProjectsByReferenceIdResponse_1_list) + x.Projects = *clv.list + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageResponse) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + if x.Projects == nil { + x.Projects = []*ProjectInfo{} + } + value := &_QueryProjectsByReferenceIdResponse_1_list{list: &x.Projects} + return protoreflect.ValueOfList(value) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageResponse) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects": + list := []*ProjectInfo{} + return protoreflect.ValueOfList(&_QueryProjectsByReferenceIdResponse_1_list{list: &list}) + case "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination": + m := new(v1beta1.PageResponse) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.v1.QueryProjectsByReferenceIdResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.v1.QueryProjectsByReferenceIdResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryProjectsByReferenceIdResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryProjectsByReferenceIdResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Projects) > 0 { + for _, e := range x.Projects { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Projects) > 0 { + for iNdEx := len(x.Projects) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Projects[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryProjectsByReferenceIdResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Projects", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Projects = append(x.Projects, &ProjectInfo{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Projects[len(x.Projects)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageResponse{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var ( md_QueryProjectRequest protoreflect.MessageDescriptor fd_QueryProjectRequest_project_id protoreflect.FieldDescriptor @@ -5100,7 +6172,7 @@ func (x *QueryProjectRequest) ProtoReflect() protoreflect.Message { } func (x *QueryProjectRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[10] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5520,7 +6592,7 @@ func (x *QueryProjectResponse) ProtoReflect() protoreflect.Message { } func (x *QueryProjectResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[11] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9171,7 +10243,7 @@ func (x *QueryBatchRequest) ProtoReflect() protoreflect.Message { } func (x *QueryBatchRequest) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[18] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9591,7 +10663,7 @@ func (x *QueryBatchResponse) ProtoReflect() protoreflect.Message { } func (x *QueryBatchResponse) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_v1_query_proto_msgTypes[19] + mi := &file_regen_ecocredit_v1_query_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18102,7 +19174,7 @@ func (*QueryProjectRequest) ProtoMessage() {} // Deprecated: Use QueryProjectRequest.ProtoReflect.Descriptor instead. func (*QueryProjectRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{10} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{12} } func (x *QueryProjectRequest) GetProjectId() string { @@ -18139,7 +19211,7 @@ func (*QueryProjectResponse) ProtoMessage() {} // Deprecated: Use QueryProjectResponse.ProtoReflect.Descriptor instead. func (*QueryProjectResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{11} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{13} } func (x *QueryProjectResponse) GetProject() *ProjectInfo { @@ -18452,7 +19524,7 @@ func (*QueryBatchRequest) ProtoMessage() {} // Deprecated: Use QueryBatchRequest.ProtoReflect.Descriptor instead. func (*QueryBatchRequest) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{18} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{20} } func (x *QueryBatchRequest) GetBatchDenom() string { @@ -18489,7 +19561,7 @@ func (*QueryBatchResponse) ProtoMessage() {} // Deprecated: Use QueryBatchResponse.ProtoReflect.Descriptor instead. func (*QueryBatchResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{19} + return file_regen_ecocredit_v1_query_proto_rawDescGZIP(), []int{21} } func (x *QueryBatchResponse) GetBatch() *BatchInfo { @@ -19317,13 +20389,46 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x13, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x22, 0x51, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8e, 0x01, 0x0a, + 0x21, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, + 0x0a, 0x22, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, + 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, + 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x13, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x22, 0x51, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x22, 0x7c, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, @@ -19367,222 +20472,203 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x38, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x4d, 0x0a, 0x16, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x22, 0x50, 0x0a, 0x13, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x56, 0x0a, 0x14, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0x78, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, - 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x49, 0x0a, 0x12, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x33, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x22, 0x50, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x56, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, - 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x78, - 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, - 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, - 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, - 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, - 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x10, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, - 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, - 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x7b, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x62, 0x62, 0x72, 0x65, 0x76, 0x22, - 0x8e, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, - 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xbb, 0x02, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x73, 0x73, - 0x75, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x69, 0x73, - 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, - 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x9f, - 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, 0x64, - 0x32, 0xec, 0x11, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x07, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x12, 0x1b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0xa4, - 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, - 0x25, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa3, - 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, - 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x6e, 0x22, 0x34, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x49, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, + 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x22, 0x50, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x56, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, - 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x78, 0x0a, 0x14, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x46, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, + 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x70, + 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, + 0x69, 0x72, 0x65, 0x64, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x5d, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, + 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x7b, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, + 0x62, 0x62, 0x72, 0x65, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x62, 0x62, 0x72, 0x65, 0x76, 0x22, 0xb1, 0x01, + 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, + 0x64, 0x22, 0xbb, 0x02, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x73, + 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x69, + 0x73, 0x73, 0x75, 0x61, 0x6e, 0x63, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6f, + 0x70, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x22, + 0x9f, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, + 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x73, 0x63, 0x72, 0x6f, 0x77, 0x65, + 0x64, 0x32, 0xba, 0x13, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x07, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, + 0xa4, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x12, 0x25, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0xa3, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, + 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x73, + 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, + 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x12, 0xcb, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, - 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, - 0x8f, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, - 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x27, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0f, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, - 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x62, 0x79, 0x2d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, 0x64, 0x2f, + 0x7b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x8f, + 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0x97, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0f, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x2f, + 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x72, 0x65, 0x67, 0x65, @@ -19599,94 +20685,76 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x2f, 0x7b, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x65, 0x67, + 0x65, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, + 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa1, + 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, - 0xa1, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x65, 0x67, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, + 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, + 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x7d, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x0b, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x0b, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, - 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, - 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x12, 0x7d, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, - 0xd8, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, - 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, - 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x7d, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xd8, + 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x52, + 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x14, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -19703,114 +20771,121 @@ func file_regen_ecocredit_v1_query_proto_rawDescGZIP() []byte { var file_regen_ecocredit_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_regen_ecocredit_v1_query_proto_goTypes = []interface{}{ - (*QueryClassesRequest)(nil), // 0: regen.ecocredit.v1.QueryClassesRequest - (*QueryClassesResponse)(nil), // 1: regen.ecocredit.v1.QueryClassesResponse - (*QueryClassesByAdminRequest)(nil), // 2: regen.ecocredit.v1.QueryClassesByAdminRequest - (*QueryClassesByAdminResponse)(nil), // 3: regen.ecocredit.v1.QueryClassesByAdminResponse - (*QueryClassRequest)(nil), // 4: regen.ecocredit.v1.QueryClassRequest - (*QueryClassResponse)(nil), // 5: regen.ecocredit.v1.QueryClassResponse - (*QueryClassIssuersRequest)(nil), // 6: regen.ecocredit.v1.QueryClassIssuersRequest - (*QueryClassIssuersResponse)(nil), // 7: regen.ecocredit.v1.QueryClassIssuersResponse - (*QueryProjectsRequest)(nil), // 8: regen.ecocredit.v1.QueryProjectsRequest - (*QueryProjectsResponse)(nil), // 9: regen.ecocredit.v1.QueryProjectsResponse - (*QueryProjectRequest)(nil), // 10: regen.ecocredit.v1.QueryProjectRequest - (*QueryProjectResponse)(nil), // 11: regen.ecocredit.v1.QueryProjectResponse - (*QueryBatchesRequest)(nil), // 12: regen.ecocredit.v1.QueryBatchesRequest - (*QueryBatchesResponse)(nil), // 13: regen.ecocredit.v1.QueryBatchesResponse - (*QueryBatchesByIssuerRequest)(nil), // 14: regen.ecocredit.v1.QueryBatchesByIssuerRequest - (*QueryBatchesByIssuerResponse)(nil), // 15: regen.ecocredit.v1.QueryBatchesByIssuerResponse - (*QueryBatchesByClassRequest)(nil), // 16: regen.ecocredit.v1.QueryBatchesByClassRequest - (*QueryBatchesByClassResponse)(nil), // 17: regen.ecocredit.v1.QueryBatchesByClassResponse - (*QueryBatchRequest)(nil), // 18: regen.ecocredit.v1.QueryBatchRequest - (*QueryBatchResponse)(nil), // 19: regen.ecocredit.v1.QueryBatchResponse - (*QueryBalanceRequest)(nil), // 20: regen.ecocredit.v1.QueryBalanceRequest - (*QueryBalanceResponse)(nil), // 21: regen.ecocredit.v1.QueryBalanceResponse - (*QueryBalancesRequest)(nil), // 22: regen.ecocredit.v1.QueryBalancesRequest - (*QueryBalancesResponse)(nil), // 23: regen.ecocredit.v1.QueryBalancesResponse - (*QuerySupplyRequest)(nil), // 24: regen.ecocredit.v1.QuerySupplyRequest - (*QuerySupplyResponse)(nil), // 25: regen.ecocredit.v1.QuerySupplyResponse - (*QueryCreditTypesRequest)(nil), // 26: regen.ecocredit.v1.QueryCreditTypesRequest - (*QueryCreditTypesResponse)(nil), // 27: regen.ecocredit.v1.QueryCreditTypesResponse - (*QueryParamsRequest)(nil), // 28: regen.ecocredit.v1.QueryParamsRequest - (*QueryParamsResponse)(nil), // 29: regen.ecocredit.v1.QueryParamsResponse - (*ClassInfo)(nil), // 30: regen.ecocredit.v1.ClassInfo - (*ProjectInfo)(nil), // 31: regen.ecocredit.v1.ProjectInfo - (*BatchInfo)(nil), // 32: regen.ecocredit.v1.BatchInfo - (*BatchBalanceInfo)(nil), // 33: regen.ecocredit.v1.BatchBalanceInfo - (*v1beta1.PageRequest)(nil), // 34: cosmos.base.query.v1beta1.PageRequest - (*v1beta1.PageResponse)(nil), // 35: cosmos.base.query.v1beta1.PageResponse - (*CreditType)(nil), // 36: regen.ecocredit.v1.CreditType - (*Params)(nil), // 37: regen.ecocredit.v1.Params - (*timestamppb.Timestamp)(nil), // 38: google.protobuf.Timestamp + (*QueryClassesRequest)(nil), // 0: regen.ecocredit.v1.QueryClassesRequest + (*QueryClassesResponse)(nil), // 1: regen.ecocredit.v1.QueryClassesResponse + (*QueryClassesByAdminRequest)(nil), // 2: regen.ecocredit.v1.QueryClassesByAdminRequest + (*QueryClassesByAdminResponse)(nil), // 3: regen.ecocredit.v1.QueryClassesByAdminResponse + (*QueryClassRequest)(nil), // 4: regen.ecocredit.v1.QueryClassRequest + (*QueryClassResponse)(nil), // 5: regen.ecocredit.v1.QueryClassResponse + (*QueryClassIssuersRequest)(nil), // 6: regen.ecocredit.v1.QueryClassIssuersRequest + (*QueryClassIssuersResponse)(nil), // 7: regen.ecocredit.v1.QueryClassIssuersResponse + (*QueryProjectsRequest)(nil), // 8: regen.ecocredit.v1.QueryProjectsRequest + (*QueryProjectsResponse)(nil), // 9: regen.ecocredit.v1.QueryProjectsResponse + (*QueryProjectsByReferenceIdRequest)(nil), // 10: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest + (*QueryProjectsByReferenceIdResponse)(nil), // 11: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse + (*QueryProjectRequest)(nil), // 12: regen.ecocredit.v1.QueryProjectRequest + (*QueryProjectResponse)(nil), // 13: regen.ecocredit.v1.QueryProjectResponse + (*QueryBatchesRequest)(nil), // 14: regen.ecocredit.v1.QueryBatchesRequest + (*QueryBatchesResponse)(nil), // 15: regen.ecocredit.v1.QueryBatchesResponse + (*QueryBatchesByIssuerRequest)(nil), // 16: regen.ecocredit.v1.QueryBatchesByIssuerRequest + (*QueryBatchesByIssuerResponse)(nil), // 17: regen.ecocredit.v1.QueryBatchesByIssuerResponse + (*QueryBatchesByClassRequest)(nil), // 18: regen.ecocredit.v1.QueryBatchesByClassRequest + (*QueryBatchesByClassResponse)(nil), // 19: regen.ecocredit.v1.QueryBatchesByClassResponse + (*QueryBatchRequest)(nil), // 20: regen.ecocredit.v1.QueryBatchRequest + (*QueryBatchResponse)(nil), // 21: regen.ecocredit.v1.QueryBatchResponse + (*QueryBalanceRequest)(nil), // 22: regen.ecocredit.v1.QueryBalanceRequest + (*QueryBalanceResponse)(nil), // 23: regen.ecocredit.v1.QueryBalanceResponse + (*QueryBalancesRequest)(nil), // 24: regen.ecocredit.v1.QueryBalancesRequest + (*QueryBalancesResponse)(nil), // 25: regen.ecocredit.v1.QueryBalancesResponse + (*QuerySupplyRequest)(nil), // 26: regen.ecocredit.v1.QuerySupplyRequest + (*QuerySupplyResponse)(nil), // 27: regen.ecocredit.v1.QuerySupplyResponse + (*QueryCreditTypesRequest)(nil), // 28: regen.ecocredit.v1.QueryCreditTypesRequest + (*QueryCreditTypesResponse)(nil), // 29: regen.ecocredit.v1.QueryCreditTypesResponse + (*QueryParamsRequest)(nil), // 30: regen.ecocredit.v1.QueryParamsRequest + (*QueryParamsResponse)(nil), // 31: regen.ecocredit.v1.QueryParamsResponse + (*ClassInfo)(nil), // 32: regen.ecocredit.v1.ClassInfo + (*ProjectInfo)(nil), // 33: regen.ecocredit.v1.ProjectInfo + (*BatchInfo)(nil), // 34: regen.ecocredit.v1.BatchInfo + (*BatchBalanceInfo)(nil), // 35: regen.ecocredit.v1.BatchBalanceInfo + (*v1beta1.PageRequest)(nil), // 36: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 37: cosmos.base.query.v1beta1.PageResponse + (*CreditType)(nil), // 38: regen.ecocredit.v1.CreditType + (*Params)(nil), // 39: regen.ecocredit.v1.Params + (*timestamppb.Timestamp)(nil), // 40: google.protobuf.Timestamp } var file_regen_ecocredit_v1_query_proto_depIdxs = []int32{ - 34, // 0: regen.ecocredit.v1.QueryClassesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 30, // 1: regen.ecocredit.v1.QueryClassesResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo - 35, // 2: regen.ecocredit.v1.QueryClassesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 3: regen.ecocredit.v1.QueryClassesByAdminRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 30, // 4: regen.ecocredit.v1.QueryClassesByAdminResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo - 35, // 5: regen.ecocredit.v1.QueryClassesByAdminResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 30, // 6: regen.ecocredit.v1.QueryClassResponse.class:type_name -> regen.ecocredit.v1.ClassInfo - 34, // 7: regen.ecocredit.v1.QueryClassIssuersRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 35, // 8: regen.ecocredit.v1.QueryClassIssuersResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 9: regen.ecocredit.v1.QueryProjectsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 31, // 10: regen.ecocredit.v1.QueryProjectsResponse.projects:type_name -> regen.ecocredit.v1.ProjectInfo - 35, // 11: regen.ecocredit.v1.QueryProjectsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 31, // 12: regen.ecocredit.v1.QueryProjectResponse.project:type_name -> regen.ecocredit.v1.ProjectInfo - 34, // 13: regen.ecocredit.v1.QueryBatchesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 32, // 14: regen.ecocredit.v1.QueryBatchesResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo - 35, // 15: regen.ecocredit.v1.QueryBatchesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 16: regen.ecocredit.v1.QueryBatchesByIssuerRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 32, // 17: regen.ecocredit.v1.QueryBatchesByIssuerResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo - 35, // 18: regen.ecocredit.v1.QueryBatchesByIssuerResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 34, // 19: regen.ecocredit.v1.QueryBatchesByClassRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 32, // 20: regen.ecocredit.v1.QueryBatchesByClassResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo - 35, // 21: regen.ecocredit.v1.QueryBatchesByClassResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 32, // 22: regen.ecocredit.v1.QueryBatchResponse.batch:type_name -> regen.ecocredit.v1.BatchInfo - 33, // 23: regen.ecocredit.v1.QueryBalanceResponse.balance:type_name -> regen.ecocredit.v1.BatchBalanceInfo - 34, // 24: regen.ecocredit.v1.QueryBalancesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 33, // 25: regen.ecocredit.v1.QueryBalancesResponse.balances:type_name -> regen.ecocredit.v1.BatchBalanceInfo - 35, // 26: regen.ecocredit.v1.QueryBalancesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 36, // 27: regen.ecocredit.v1.QueryCreditTypesResponse.credit_types:type_name -> regen.ecocredit.v1.CreditType - 37, // 28: regen.ecocredit.v1.QueryParamsResponse.params:type_name -> regen.ecocredit.v1.Params - 38, // 29: regen.ecocredit.v1.BatchInfo.start_date:type_name -> google.protobuf.Timestamp - 38, // 30: regen.ecocredit.v1.BatchInfo.end_date:type_name -> google.protobuf.Timestamp - 38, // 31: regen.ecocredit.v1.BatchInfo.issuance_date:type_name -> google.protobuf.Timestamp - 0, // 32: regen.ecocredit.v1.Query.Classes:input_type -> regen.ecocredit.v1.QueryClassesRequest - 2, // 33: regen.ecocredit.v1.Query.ClassesByAdmin:input_type -> regen.ecocredit.v1.QueryClassesByAdminRequest - 4, // 34: regen.ecocredit.v1.Query.Class:input_type -> regen.ecocredit.v1.QueryClassRequest - 6, // 35: regen.ecocredit.v1.Query.ClassIssuers:input_type -> regen.ecocredit.v1.QueryClassIssuersRequest - 8, // 36: regen.ecocredit.v1.Query.Projects:input_type -> regen.ecocredit.v1.QueryProjectsRequest - 10, // 37: regen.ecocredit.v1.Query.Project:input_type -> regen.ecocredit.v1.QueryProjectRequest - 12, // 38: regen.ecocredit.v1.Query.Batches:input_type -> regen.ecocredit.v1.QueryBatchesRequest - 14, // 39: regen.ecocredit.v1.Query.BatchesByIssuer:input_type -> regen.ecocredit.v1.QueryBatchesByIssuerRequest - 16, // 40: regen.ecocredit.v1.Query.BatchesByClass:input_type -> regen.ecocredit.v1.QueryBatchesByClassRequest - 18, // 41: regen.ecocredit.v1.Query.Batch:input_type -> regen.ecocredit.v1.QueryBatchRequest - 20, // 42: regen.ecocredit.v1.Query.Balance:input_type -> regen.ecocredit.v1.QueryBalanceRequest - 22, // 43: regen.ecocredit.v1.Query.Balances:input_type -> regen.ecocredit.v1.QueryBalancesRequest - 24, // 44: regen.ecocredit.v1.Query.Supply:input_type -> regen.ecocredit.v1.QuerySupplyRequest - 26, // 45: regen.ecocredit.v1.Query.CreditTypes:input_type -> regen.ecocredit.v1.QueryCreditTypesRequest - 28, // 46: regen.ecocredit.v1.Query.Params:input_type -> regen.ecocredit.v1.QueryParamsRequest - 1, // 47: regen.ecocredit.v1.Query.Classes:output_type -> regen.ecocredit.v1.QueryClassesResponse - 3, // 48: regen.ecocredit.v1.Query.ClassesByAdmin:output_type -> regen.ecocredit.v1.QueryClassesByAdminResponse - 5, // 49: regen.ecocredit.v1.Query.Class:output_type -> regen.ecocredit.v1.QueryClassResponse - 7, // 50: regen.ecocredit.v1.Query.ClassIssuers:output_type -> regen.ecocredit.v1.QueryClassIssuersResponse - 9, // 51: regen.ecocredit.v1.Query.Projects:output_type -> regen.ecocredit.v1.QueryProjectsResponse - 11, // 52: regen.ecocredit.v1.Query.Project:output_type -> regen.ecocredit.v1.QueryProjectResponse - 13, // 53: regen.ecocredit.v1.Query.Batches:output_type -> regen.ecocredit.v1.QueryBatchesResponse - 15, // 54: regen.ecocredit.v1.Query.BatchesByIssuer:output_type -> regen.ecocredit.v1.QueryBatchesByIssuerResponse - 17, // 55: regen.ecocredit.v1.Query.BatchesByClass:output_type -> regen.ecocredit.v1.QueryBatchesByClassResponse - 19, // 56: regen.ecocredit.v1.Query.Batch:output_type -> regen.ecocredit.v1.QueryBatchResponse - 21, // 57: regen.ecocredit.v1.Query.Balance:output_type -> regen.ecocredit.v1.QueryBalanceResponse - 23, // 58: regen.ecocredit.v1.Query.Balances:output_type -> regen.ecocredit.v1.QueryBalancesResponse - 25, // 59: regen.ecocredit.v1.Query.Supply:output_type -> regen.ecocredit.v1.QuerySupplyResponse - 27, // 60: regen.ecocredit.v1.Query.CreditTypes:output_type -> regen.ecocredit.v1.QueryCreditTypesResponse - 29, // 61: regen.ecocredit.v1.Query.Params:output_type -> regen.ecocredit.v1.QueryParamsResponse - 47, // [47:62] is the sub-list for method output_type - 32, // [32:47] is the sub-list for method input_type - 32, // [32:32] is the sub-list for extension type_name - 32, // [32:32] is the sub-list for extension extendee - 0, // [0:32] is the sub-list for field type_name + 36, // 0: regen.ecocredit.v1.QueryClassesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 32, // 1: regen.ecocredit.v1.QueryClassesResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo + 37, // 2: regen.ecocredit.v1.QueryClassesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 3: regen.ecocredit.v1.QueryClassesByAdminRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 32, // 4: regen.ecocredit.v1.QueryClassesByAdminResponse.classes:type_name -> regen.ecocredit.v1.ClassInfo + 37, // 5: regen.ecocredit.v1.QueryClassesByAdminResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 32, // 6: regen.ecocredit.v1.QueryClassResponse.class:type_name -> regen.ecocredit.v1.ClassInfo + 36, // 7: regen.ecocredit.v1.QueryClassIssuersRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 37, // 8: regen.ecocredit.v1.QueryClassIssuersResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 9: regen.ecocredit.v1.QueryProjectsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 33, // 10: regen.ecocredit.v1.QueryProjectsResponse.projects:type_name -> regen.ecocredit.v1.ProjectInfo + 37, // 11: regen.ecocredit.v1.QueryProjectsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 12: regen.ecocredit.v1.QueryProjectsByReferenceIdRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 33, // 13: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.projects:type_name -> regen.ecocredit.v1.ProjectInfo + 37, // 14: regen.ecocredit.v1.QueryProjectsByReferenceIdResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 33, // 15: regen.ecocredit.v1.QueryProjectResponse.project:type_name -> regen.ecocredit.v1.ProjectInfo + 36, // 16: regen.ecocredit.v1.QueryBatchesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 34, // 17: regen.ecocredit.v1.QueryBatchesResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo + 37, // 18: regen.ecocredit.v1.QueryBatchesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 19: regen.ecocredit.v1.QueryBatchesByIssuerRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 34, // 20: regen.ecocredit.v1.QueryBatchesByIssuerResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo + 37, // 21: regen.ecocredit.v1.QueryBatchesByIssuerResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 36, // 22: regen.ecocredit.v1.QueryBatchesByClassRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 34, // 23: regen.ecocredit.v1.QueryBatchesByClassResponse.batches:type_name -> regen.ecocredit.v1.BatchInfo + 37, // 24: regen.ecocredit.v1.QueryBatchesByClassResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 34, // 25: regen.ecocredit.v1.QueryBatchResponse.batch:type_name -> regen.ecocredit.v1.BatchInfo + 35, // 26: regen.ecocredit.v1.QueryBalanceResponse.balance:type_name -> regen.ecocredit.v1.BatchBalanceInfo + 36, // 27: regen.ecocredit.v1.QueryBalancesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 35, // 28: regen.ecocredit.v1.QueryBalancesResponse.balances:type_name -> regen.ecocredit.v1.BatchBalanceInfo + 37, // 29: regen.ecocredit.v1.QueryBalancesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 38, // 30: regen.ecocredit.v1.QueryCreditTypesResponse.credit_types:type_name -> regen.ecocredit.v1.CreditType + 39, // 31: regen.ecocredit.v1.QueryParamsResponse.params:type_name -> regen.ecocredit.v1.Params + 40, // 32: regen.ecocredit.v1.BatchInfo.start_date:type_name -> google.protobuf.Timestamp + 40, // 33: regen.ecocredit.v1.BatchInfo.end_date:type_name -> google.protobuf.Timestamp + 40, // 34: regen.ecocredit.v1.BatchInfo.issuance_date:type_name -> google.protobuf.Timestamp + 0, // 35: regen.ecocredit.v1.Query.Classes:input_type -> regen.ecocredit.v1.QueryClassesRequest + 2, // 36: regen.ecocredit.v1.Query.ClassesByAdmin:input_type -> regen.ecocredit.v1.QueryClassesByAdminRequest + 4, // 37: regen.ecocredit.v1.Query.Class:input_type -> regen.ecocredit.v1.QueryClassRequest + 6, // 38: regen.ecocredit.v1.Query.ClassIssuers:input_type -> regen.ecocredit.v1.QueryClassIssuersRequest + 8, // 39: regen.ecocredit.v1.Query.Projects:input_type -> regen.ecocredit.v1.QueryProjectsRequest + 10, // 40: regen.ecocredit.v1.Query.ProjectsByReferenceId:input_type -> regen.ecocredit.v1.QueryProjectsByReferenceIdRequest + 12, // 41: regen.ecocredit.v1.Query.Project:input_type -> regen.ecocredit.v1.QueryProjectRequest + 14, // 42: regen.ecocredit.v1.Query.Batches:input_type -> regen.ecocredit.v1.QueryBatchesRequest + 16, // 43: regen.ecocredit.v1.Query.BatchesByIssuer:input_type -> regen.ecocredit.v1.QueryBatchesByIssuerRequest + 18, // 44: regen.ecocredit.v1.Query.BatchesByClass:input_type -> regen.ecocredit.v1.QueryBatchesByClassRequest + 20, // 45: regen.ecocredit.v1.Query.Batch:input_type -> regen.ecocredit.v1.QueryBatchRequest + 22, // 46: regen.ecocredit.v1.Query.Balance:input_type -> regen.ecocredit.v1.QueryBalanceRequest + 24, // 47: regen.ecocredit.v1.Query.Balances:input_type -> regen.ecocredit.v1.QueryBalancesRequest + 26, // 48: regen.ecocredit.v1.Query.Supply:input_type -> regen.ecocredit.v1.QuerySupplyRequest + 28, // 49: regen.ecocredit.v1.Query.CreditTypes:input_type -> regen.ecocredit.v1.QueryCreditTypesRequest + 30, // 50: regen.ecocredit.v1.Query.Params:input_type -> regen.ecocredit.v1.QueryParamsRequest + 1, // 51: regen.ecocredit.v1.Query.Classes:output_type -> regen.ecocredit.v1.QueryClassesResponse + 3, // 52: regen.ecocredit.v1.Query.ClassesByAdmin:output_type -> regen.ecocredit.v1.QueryClassesByAdminResponse + 5, // 53: regen.ecocredit.v1.Query.Class:output_type -> regen.ecocredit.v1.QueryClassResponse + 7, // 54: regen.ecocredit.v1.Query.ClassIssuers:output_type -> regen.ecocredit.v1.QueryClassIssuersResponse + 9, // 55: regen.ecocredit.v1.Query.Projects:output_type -> regen.ecocredit.v1.QueryProjectsResponse + 11, // 56: regen.ecocredit.v1.Query.ProjectsByReferenceId:output_type -> regen.ecocredit.v1.QueryProjectsByReferenceIdResponse + 13, // 57: regen.ecocredit.v1.Query.Project:output_type -> regen.ecocredit.v1.QueryProjectResponse + 15, // 58: regen.ecocredit.v1.Query.Batches:output_type -> regen.ecocredit.v1.QueryBatchesResponse + 17, // 59: regen.ecocredit.v1.Query.BatchesByIssuer:output_type -> regen.ecocredit.v1.QueryBatchesByIssuerResponse + 19, // 60: regen.ecocredit.v1.Query.BatchesByClass:output_type -> regen.ecocredit.v1.QueryBatchesByClassResponse + 21, // 61: regen.ecocredit.v1.Query.Batch:output_type -> regen.ecocredit.v1.QueryBatchResponse + 23, // 62: regen.ecocredit.v1.Query.Balance:output_type -> regen.ecocredit.v1.QueryBalanceResponse + 25, // 63: regen.ecocredit.v1.Query.Balances:output_type -> regen.ecocredit.v1.QueryBalancesResponse + 27, // 64: regen.ecocredit.v1.Query.Supply:output_type -> regen.ecocredit.v1.QuerySupplyResponse + 29, // 65: regen.ecocredit.v1.Query.CreditTypes:output_type -> regen.ecocredit.v1.QueryCreditTypesResponse + 31, // 66: regen.ecocredit.v1.Query.Params:output_type -> regen.ecocredit.v1.QueryParamsResponse + 51, // [51:67] is the sub-list for method output_type + 35, // [35:51] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { file_regen_ecocredit_v1_query_proto_init() } @@ -19942,7 +21017,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProjectRequest); i { + switch v := v.(*QueryProjectsByReferenceIdRequest); i { case 0: return &v.state case 1: @@ -19954,7 +21029,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProjectResponse); i { + switch v := v.(*QueryProjectsByReferenceIdResponse); i { case 0: return &v.state case 1: @@ -19966,7 +21041,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProjectInfoRequest); i { + switch v := v.(*QueryProjectRequest); i { case 0: return &v.state case 1: @@ -19978,7 +21053,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProjectInfoResponse); i { + switch v := v.(*QueryProjectResponse); i { case 0: return &v.state case 1: @@ -20038,7 +21113,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchRequest); i { + switch v := v.(*QueryBatchesByClassRequest); i { case 0: return &v.state case 1: @@ -20050,7 +21125,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchResponse); i { + switch v := v.(*QueryBatchesByClassResponse); i { case 0: return &v.state case 1: @@ -20062,7 +21137,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchInfoRequest); i { + switch v := v.(*QueryBatchRequest); i { case 0: return &v.state case 1: @@ -20074,7 +21149,7 @@ func file_regen_ecocredit_v1_query_proto_init() { } } file_regen_ecocredit_v1_query_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryBatchInfoResponse); i { + switch v := v.(*QueryBatchResponse); i { case 0: return &v.state case 1: diff --git a/api/regen/ecocredit/v1/query_grpc.pb.go b/api/regen/ecocredit/v1/query_grpc.pb.go index 439055c8d6..33b14c888a 100644 --- a/api/regen/ecocredit/v1/query_grpc.pb.go +++ b/api/regen/ecocredit/v1/query_grpc.pb.go @@ -33,6 +33,8 @@ type QueryClient interface { ClassIssuers(ctx context.Context, in *QueryClassIssuersRequest, opts ...grpc.CallOption) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(ctx context.Context, in *QueryProjectsRequest, opts ...grpc.CallOption) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) // Project queries for information on a project. Project(ctx context.Context, in *QueryProjectRequest, opts ...grpc.CallOption) (*QueryProjectResponse, error) // Batches queries for all batches in the given project with pagination. @@ -110,6 +112,15 @@ func (c *queryClient) Projects(ctx context.Context, in *QueryProjectsRequest, op return out, nil } +func (c *queryClient) ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) { + out := new(QueryProjectsByReferenceIdResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/ProjectsByReferenceId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) Project(ctx context.Context, in *QueryProjectRequest, opts ...grpc.CallOption) (*QueryProjectResponse, error) { out := new(QueryProjectResponse) err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/Project", in, out, opts...) @@ -215,6 +226,8 @@ type QueryServer interface { ClassIssuers(context.Context, *QueryClassIssuersRequest) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(context.Context, *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) // Project queries for information on a project. Project(context.Context, *QueryProjectRequest) (*QueryProjectResponse, error) // Batches queries for all batches in the given project with pagination. @@ -259,6 +272,9 @@ func (UnimplementedQueryServer) ClassIssuers(context.Context, *QueryClassIssuers func (UnimplementedQueryServer) Projects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Projects not implemented") } +func (UnimplementedQueryServer) ProjectsByReferenceId(context.Context, *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProjectsByReferenceId not implemented") +} func (UnimplementedQueryServer) Project(context.Context, *QueryProjectRequest) (*QueryProjectResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Project not implemented") } @@ -392,6 +408,24 @@ func _Query_Projects_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Query_ProjectsByReferenceId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryProjectsByReferenceIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProjectsByReferenceId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.v1.Query/ProjectsByReferenceId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProjectsByReferenceId(ctx, req.(*QueryProjectsByReferenceIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_Project_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProjectRequest) if err := dec(in); err != nil { @@ -599,6 +633,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "Projects", Handler: _Query_Projects_Handler, }, + { + MethodName: "ProjectsByReferenceId", + Handler: _Query_ProjectsByReferenceId_Handler, + }, { MethodName: "Project", Handler: _Query_Project_Handler, diff --git a/api/regen/ecocredit/v1/state.pulsar.go b/api/regen/ecocredit/v1/state.pulsar.go index f28b7d551a..712ce2600e 100644 --- a/api/regen/ecocredit/v1/state.pulsar.go +++ b/api/regen/ecocredit/v1/state.pulsar.go @@ -6919,7 +6919,7 @@ type Project struct { Jurisdiction string `protobuf:"bytes,5,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` // metadata is any arbitrary metadata attached to the project. Metadata string `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` - // reference_id is any arbitrary string that can be use to reference project. + // reference_id is any arbitrary string used to reference the project. ReferenceId string `protobuf:"bytes,7,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } diff --git a/api/regen/ecocredit/v1/tx.pulsar.go b/api/regen/ecocredit/v1/tx.pulsar.go index c81819e6af..0387278697 100644 --- a/api/regen/ecocredit/v1/tx.pulsar.go +++ b/api/regen/ecocredit/v1/tx.pulsar.go @@ -15617,7 +15617,7 @@ type MsgCreateProject struct { // alphanumeric characters. country-code is required, while sub-national-code // and postal-code are optional and can be added for increased precision. Jurisdiction string `protobuf:"bytes,4,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` - // reference_id is any arbitrary string that can be use to reference project. + // reference_id is any arbitrary string used to reference the project. ReferenceId string `protobuf:"bytes,5,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } diff --git a/x/ecocredit/core/query.pb.go b/x/ecocredit/core/query.pb.go index ccad3273ff..8bd5dc04ef 100644 --- a/x/ecocredit/core/query.pb.go +++ b/x/ecocredit/core/query.pb.go @@ -553,6 +553,116 @@ func (m *QueryProjectsResponse) GetPagination() *query.PageResponse { return nil } +// QueryProjectsByReferenceIdRequest is the Query/ProjectsByReferenceId request type. +type QueryProjectsByReferenceIdRequest struct { + // reference_id is the project reference id. + ReferenceId string `protobuf:"bytes,1,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` + // pagination defines an optional pagination for the request. + Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryProjectsByReferenceIdRequest) Reset() { *m = QueryProjectsByReferenceIdRequest{} } +func (m *QueryProjectsByReferenceIdRequest) String() string { return proto.CompactTextString(m) } +func (*QueryProjectsByReferenceIdRequest) ProtoMessage() {} +func (*QueryProjectsByReferenceIdRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_c85efa417eafb74b, []int{10} +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryProjectsByReferenceIdRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryProjectsByReferenceIdRequest.Merge(m, src) +} +func (m *QueryProjectsByReferenceIdRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryProjectsByReferenceIdRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryProjectsByReferenceIdRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryProjectsByReferenceIdRequest proto.InternalMessageInfo + +func (m *QueryProjectsByReferenceIdRequest) GetReferenceId() string { + if m != nil { + return m.ReferenceId + } + return "" +} + +func (m *QueryProjectsByReferenceIdRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +// QueryProjectsByReferenceIdResponse is the Query/ProjectsByReferenceId response type. +type QueryProjectsByReferenceIdResponse struct { + // projects are the fetched projects. + Projects []*ProjectInfo `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` + // pagination defines the pagination in the response. + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryProjectsByReferenceIdResponse) Reset() { *m = QueryProjectsByReferenceIdResponse{} } +func (m *QueryProjectsByReferenceIdResponse) String() string { return proto.CompactTextString(m) } +func (*QueryProjectsByReferenceIdResponse) ProtoMessage() {} +func (*QueryProjectsByReferenceIdResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_c85efa417eafb74b, []int{11} +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryProjectsByReferenceIdResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryProjectsByReferenceIdResponse.Merge(m, src) +} +func (m *QueryProjectsByReferenceIdResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryProjectsByReferenceIdResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryProjectsByReferenceIdResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryProjectsByReferenceIdResponse proto.InternalMessageInfo + +func (m *QueryProjectsByReferenceIdResponse) GetProjects() []*ProjectInfo { + if m != nil { + return m.Projects + } + return nil +} + +func (m *QueryProjectsByReferenceIdResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + // QueryProjectRequest is the Query/Project request type. type QueryProjectRequest struct { // project_id is the unique identifier of the project to query. @@ -563,7 +673,7 @@ func (m *QueryProjectRequest) Reset() { *m = QueryProjectRequest{} } func (m *QueryProjectRequest) String() string { return proto.CompactTextString(m) } func (*QueryProjectRequest) ProtoMessage() {} func (*QueryProjectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{10} + return fileDescriptor_c85efa417eafb74b, []int{12} } func (m *QueryProjectRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -609,7 +719,7 @@ func (m *QueryProjectResponse) Reset() { *m = QueryProjectResponse{} } func (m *QueryProjectResponse) String() string { return proto.CompactTextString(m) } func (*QueryProjectResponse) ProtoMessage() {} func (*QueryProjectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{11} + return fileDescriptor_c85efa417eafb74b, []int{13} } func (m *QueryProjectResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -985,7 +1095,7 @@ func (m *QueryBatchRequest) Reset() { *m = QueryBatchRequest{} } func (m *QueryBatchRequest) String() string { return proto.CompactTextString(m) } func (*QueryBatchRequest) ProtoMessage() {} func (*QueryBatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{18} + return fileDescriptor_c85efa417eafb74b, []int{20} } func (m *QueryBatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1031,7 +1141,7 @@ func (m *QueryBatchResponse) Reset() { *m = QueryBatchResponse{} } func (m *QueryBatchResponse) String() string { return proto.CompactTextString(m) } func (*QueryBatchResponse) ProtoMessage() {} func (*QueryBatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_c85efa417eafb74b, []int{19} + return fileDescriptor_c85efa417eafb74b, []int{21} } func (m *QueryBatchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1933,6 +2043,8 @@ func init() { proto.RegisterType((*QueryClassIssuersResponse)(nil), "regen.ecocredit.v1.QueryClassIssuersResponse") proto.RegisterType((*QueryProjectsRequest)(nil), "regen.ecocredit.v1.QueryProjectsRequest") proto.RegisterType((*QueryProjectsResponse)(nil), "regen.ecocredit.v1.QueryProjectsResponse") + proto.RegisterType((*QueryProjectsByReferenceIdRequest)(nil), "regen.ecocredit.v1.QueryProjectsByReferenceIdRequest") + proto.RegisterType((*QueryProjectsByReferenceIdResponse)(nil), "regen.ecocredit.v1.QueryProjectsByReferenceIdResponse") proto.RegisterType((*QueryProjectRequest)(nil), "regen.ecocredit.v1.QueryProjectRequest") proto.RegisterType((*QueryProjectResponse)(nil), "regen.ecocredit.v1.QueryProjectResponse") proto.RegisterType((*QueryBatchesRequest)(nil), "regen.ecocredit.v1.QueryBatchesRequest") @@ -1962,106 +2074,111 @@ func init() { func init() { proto.RegisterFile("regen/ecocredit/v1/query.proto", fileDescriptor_c85efa417eafb74b) } var fileDescriptor_c85efa417eafb74b = []byte{ - // 1575 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x6f, 0xd4, 0xd6, - 0x16, 0xc7, 0x03, 0xc9, 0x4c, 0x4e, 0x42, 0x80, 0xfb, 0xf2, 0xde, 0x0b, 0x06, 0x86, 0xc8, 0xef, - 0x41, 0x42, 0x21, 0x36, 0x93, 0xf0, 0xa7, 0x08, 0xf5, 0x4f, 0x02, 0x6a, 0x95, 0x5d, 0x98, 0xa2, - 0x2e, 0x2a, 0xa1, 0x91, 0xc7, 0xbe, 0x0c, 0x43, 0x67, 0xec, 0xc1, 0xf6, 0x04, 0xd2, 0xe9, 0xb4, - 0x6a, 0x17, 0x95, 0xba, 0x69, 0x51, 0x59, 0x94, 0x4d, 0xd5, 0xbf, 0x9b, 0x7e, 0x86, 0x7e, 0x81, - 0x2e, 0x91, 0xba, 0xe9, 0xb2, 0x82, 0x2e, 0xfb, 0x21, 0x2a, 0x9f, 0x7b, 0xae, 0xc7, 0x1e, 0x1c, - 0xdb, 0x42, 0xa3, 0x8a, 0x55, 0xe6, 0x1e, 0x9f, 0x73, 0xcf, 0xef, 0xfc, 0xee, 0xb9, 0xe7, 0x9e, - 0x13, 0xa8, 0x7a, 0xbc, 0xc5, 0x1d, 0x83, 0x5b, 0xae, 0xe5, 0x71, 0xbb, 0x1d, 0x18, 0x3b, 0x35, - 0xe3, 0x5e, 0x9f, 0x7b, 0xbb, 0x7a, 0xcf, 0x73, 0x03, 0x97, 0x31, 0xfc, 0xae, 0x47, 0xdf, 0xf5, - 0x9d, 0x9a, 0x7a, 0xbc, 0xe5, 0xba, 0xad, 0x0e, 0x37, 0xcc, 0x5e, 0xdb, 0x30, 0x1d, 0xc7, 0x0d, - 0xcc, 0xa0, 0xed, 0x3a, 0xbe, 0xb0, 0x50, 0x4f, 0xd2, 0x57, 0x5c, 0x35, 0xfb, 0xb7, 0x8d, 0xa0, - 0xdd, 0xe5, 0x7e, 0x60, 0x76, 0x7b, 0xa4, 0xf0, 0x8a, 0xe5, 0xfa, 0x5d, 0xd7, 0x37, 0x9a, 0xa6, - 0xcf, 0x85, 0x2f, 0x63, 0xa7, 0xd6, 0xe4, 0x81, 0x59, 0x33, 0x7a, 0x66, 0xab, 0xed, 0xe0, 0x6e, - 0xa4, 0x9b, 0x06, 0xcf, 0x0f, 0xcc, 0x80, 0x67, 0x7c, 0x0f, 0x76, 0x7b, 0x9c, 0xc0, 0x68, 0xb7, - 0xe0, 0x5f, 0x37, 0x42, 0x0f, 0xd7, 0x3a, 0xa6, 0xef, 0x73, 0xbf, 0xce, 0xef, 0xf5, 0xb9, 0x1f, - 0xb0, 0xb7, 0x00, 0x46, 0xae, 0x16, 0x95, 0x25, 0x65, 0x65, 0x76, 0xed, 0xb4, 0x2e, 0x70, 0xe9, - 0x21, 0x2e, 0x5d, 0x70, 0x40, 0xb8, 0xf4, 0x6d, 0xb3, 0xc5, 0xc9, 0xb6, 0x1e, 0xb3, 0xd4, 0x1e, - 0x2b, 0xb0, 0x90, 0xdc, 0xdf, 0xef, 0xb9, 0x8e, 0xcf, 0xd9, 0x65, 0x28, 0x5b, 0x42, 0xb4, 0xa8, - 0x2c, 0xed, 0x5f, 0x99, 0x5d, 0x3b, 0xa1, 0x3f, 0x4f, 0xa4, 0x8e, 0x56, 0x5b, 0xce, 0x6d, 0xb7, - 0x2e, 0xb5, 0xd9, 0xdb, 0x09, 0x64, 0x25, 0x44, 0xb6, 0x9c, 0x8b, 0x4c, 0x78, 0x4d, 0x40, 0xfb, - 0x00, 0xd4, 0x38, 0xb2, 0xcd, 0xdd, 0x0d, 0xbb, 0xdb, 0x76, 0x24, 0x01, 0x0b, 0x30, 0x65, 0x86, - 0x6b, 0x8c, 0x7d, 0xa6, 0x2e, 0x16, 0x63, 0xb4, 0x94, 0x5e, 0x98, 0x96, 0x6f, 0x15, 0x38, 0x96, - 0xea, 0xfc, 0xa5, 0x61, 0x47, 0x87, 0x23, 0x23, 0x80, 0x92, 0x94, 0xa3, 0x50, 0x41, 0x47, 0x8d, - 0xb6, 0x4d, 0xbc, 0x08, 0xc7, 0x5b, 0xb6, 0xb6, 0x05, 0x2c, 0xae, 0x4f, 0x71, 0xac, 0xc3, 0x14, - 0x2a, 0x50, 0x06, 0xe5, 0x44, 0x21, 0x74, 0xb5, 0x21, 0x2c, 0x8e, 0xb6, 0xda, 0xf2, 0xfd, 0x3e, - 0xf7, 0x0a, 0x20, 0x98, 0xd8, 0xd9, 0x7c, 0x04, 0x47, 0x53, 0xdc, 0x53, 0x40, 0x8b, 0x50, 0x6e, - 0x0b, 0x11, 0x1e, 0xcc, 0x4c, 0x5d, 0x2e, 0x27, 0xc7, 0xfc, 0x2e, 0xdd, 0x98, 0x6d, 0xcf, 0xbd, - 0xcb, 0xad, 0xe0, 0x9f, 0x0c, 0xfd, 0x1b, 0x05, 0xfe, 0x3d, 0xe6, 0x9b, 0xe2, 0xbe, 0x0a, 0x95, - 0x1e, 0xc9, 0x28, 0x23, 0x4f, 0xa6, 0x9d, 0x25, 0xd9, 0xe1, 0x69, 0x46, 0x06, 0x93, 0xa3, 0xe6, - 0x02, 0x15, 0x2b, 0x72, 0x23, 0x99, 0x39, 0x01, 0x40, 0xbe, 0x46, 0xdc, 0xcc, 0x90, 0x64, 0xcb, - 0xd6, 0x6e, 0x24, 0x09, 0x8d, 0x62, 0xba, 0x02, 0x65, 0x52, 0xa2, 0xf4, 0xcc, 0x0d, 0x49, 0xea, - 0x6b, 0x1f, 0x12, 0x90, 0x4d, 0x33, 0xb0, 0xee, 0x8c, 0xaa, 0x66, 0x36, 0x90, 0x89, 0x1d, 0x53, - 0x54, 0x54, 0x23, 0xf7, 0xa3, 0xb2, 0xd1, 0x14, 0xa2, 0xac, 0xb2, 0x81, 0x56, 0x22, 0x1e, 0xd2, - 0x9e, 0xdc, 0x09, 0x0d, 0xa9, 0xae, 0x11, 0xb2, 0xcd, 0x5d, 0x71, 0x81, 0x24, 0x41, 0xff, 0x81, - 0x69, 0x71, 0x5f, 0x88, 0x1c, 0x5a, 0x4d, 0x8c, 0x99, 0xef, 0x14, 0x38, 0x9e, 0xee, 0xff, 0xa5, - 0x61, 0xe8, 0x63, 0x7a, 0x76, 0x22, 0x84, 0x05, 0x2b, 0xec, 0xe4, 0xdf, 0x9e, 0x71, 0x04, 0x2f, - 0x0d, 0x45, 0x17, 0xe8, 0xed, 0x41, 0x1f, 0x92, 0x99, 0x93, 0x30, 0x8b, 0x8e, 0x1a, 0x36, 0x77, - 0xdc, 0x2e, 0x91, 0x03, 0x28, 0xba, 0x1e, 0x4a, 0xa2, 0x17, 0x88, 0xac, 0x46, 0x2f, 0x10, 0xea, - 0x64, 0xbd, 0x40, 0xa3, 0x58, 0x84, 0xae, 0xb6, 0x1d, 0x5d, 0xef, 0x8e, 0xe9, 0x58, 0x92, 0xc5, - 0xb0, 0xf8, 0x9b, 0x96, 0xe5, 0xf6, 0x9d, 0x40, 0x9e, 0x0d, 0x2d, 0xc7, 0xc1, 0x95, 0x9e, 0x03, - 0xf7, 0x6e, 0x74, 0x63, 0x69, 0x47, 0x82, 0xf7, 0x7a, 0x48, 0x36, 0x8a, 0x08, 0xe0, 0xff, 0xf7, - 0x04, 0x48, 0xa6, 0x92, 0x73, 0x5c, 0x68, 0x0f, 0x92, 0xfb, 0xfa, 0xf9, 0x50, 0x27, 0x95, 0x46, - 0x3f, 0xc8, 0xb7, 0x62, 0xe4, 0x9a, 0x62, 0x7a, 0x13, 0x2a, 0x04, 0x4f, 0x66, 0x50, 0xb1, 0xa0, - 0x22, 0xab, 0xc9, 0x65, 0xd2, 0x45, 0xca, 0x89, 0x77, 0xfa, 0xbd, 0x5e, 0x67, 0xb7, 0x70, 0x2a, - 0x3d, 0x54, 0x28, 0x01, 0xa4, 0x1d, 0x45, 0xb6, 0x0c, 0x87, 0x02, 0xcf, 0xb4, 0xcd, 0x66, 0x87, - 0x37, 0x7c, 0xfc, 0x44, 0xc6, 0xf3, 0x52, 0x2c, 0x0c, 0xd8, 0x29, 0x98, 0xf7, 0x78, 0xd0, 0xf6, - 0xb8, 0x2d, 0xf5, 0x44, 0x4a, 0x1c, 0x24, 0x29, 0xa9, 0x9d, 0x81, 0xc3, 0x56, 0x18, 0x71, 0xa7, - 0xc3, 0xed, 0x86, 0xd9, 0xc5, 0xe3, 0xda, 0x8f, 0x8a, 0x87, 0x22, 0xf9, 0x06, 0x8a, 0xb5, 0xa3, - 0xf0, 0x5f, 0xd1, 0x95, 0x20, 0x7f, 0x37, 0xc3, 0x0e, 0x9e, 0xc2, 0xd1, 0x6e, 0xc9, 0x7e, 0x29, - 0xfe, 0x89, 0x10, 0x6f, 0xc0, 0x9c, 0x60, 0xbc, 0x81, 0x4d, 0x3f, 0x9d, 0x47, 0x35, 0xb5, 0x0f, - 0x8b, 0xcc, 0xeb, 0xb3, 0xd6, 0x68, 0x2b, 0x6d, 0x81, 0x38, 0xdc, 0x36, 0x3d, 0xb3, 0x1b, 0x39, - 0xdd, 0x92, 0x4f, 0x31, 0x49, 0xc9, 0xdf, 0x1a, 0x4c, 0xf7, 0x50, 0x42, 0xe9, 0xac, 0xa6, 0x3e, - 0xa9, 0xc2, 0x86, 0x34, 0xb5, 0x01, 0xcc, 0x44, 0x3d, 0x20, 0x9b, 0x87, 0x52, 0x54, 0xfa, 0x4a, - 0x6d, 0x7b, 0xd4, 0x87, 0x97, 0xe2, 0x7d, 0xb8, 0x0a, 0x95, 0x2e, 0x0f, 0x4c, 0xdb, 0x0c, 0x4c, - 0x22, 0x2c, 0x5a, 0xb3, 0x73, 0xc0, 0x62, 0x21, 0x37, 0xcc, 0x66, 0xd3, 0xe3, 0x3b, 0x8b, 0x07, - 0x50, 0xeb, 0xf0, 0x28, 0xb0, 0x0d, 0x94, 0x6b, 0x5f, 0x28, 0x30, 0x1b, 0x7b, 0xe2, 0x0b, 0xfa, - 0x8f, 0x97, 0xe9, 0xfd, 0xc9, 0x32, 0xad, 0xc1, 0xdc, 0xdd, 0xbe, 0xd7, 0xf6, 0xed, 0xb6, 0x85, - 0xd9, 0x2b, 0x1c, 0x27, 0x64, 0x09, 0xf8, 0x53, 0x49, 0xf8, 0xda, 0x2f, 0x25, 0x98, 0x89, 0x0a, - 0xd2, 0x9e, 0x0f, 0x66, 0xb2, 0xd3, 0x28, 0x8d, 0x77, 0x1a, 0x0b, 0x30, 0x25, 0x72, 0x5b, 0x80, - 0x13, 0x8b, 0x84, 0xdb, 0x03, 0x63, 0xac, 0x5d, 0x01, 0xf0, 0x03, 0xd3, 0x0b, 0x1a, 0xb6, 0x19, - 0x70, 0x04, 0x15, 0x1e, 0x9e, 0x98, 0x54, 0x75, 0x39, 0xa9, 0xea, 0x37, 0xe5, 0xa4, 0x5a, 0x9f, - 0x41, 0xed, 0xeb, 0x66, 0xc0, 0xd9, 0x45, 0xa8, 0x70, 0xc7, 0x16, 0x86, 0xd3, 0xb9, 0x86, 0x65, - 0xee, 0xd8, 0x68, 0xf6, 0x06, 0x1c, 0x0c, 0x83, 0x09, 0xf3, 0x5c, 0xd8, 0x96, 0x73, 0x6d, 0xe7, - 0xa4, 0x01, 0x6e, 0xc0, 0xe0, 0x80, 0xdb, 0xe3, 0xce, 0x62, 0x65, 0x49, 0x59, 0xa9, 0xd4, 0xf1, - 0x77, 0xf8, 0xb8, 0x1d, 0x1e, 0x2f, 0x2c, 0x58, 0x0c, 0x6d, 0xdb, 0xe3, 0x34, 0x87, 0x84, 0xc5, - 0x50, 0x2c, 0x73, 0xeb, 0x76, 0x48, 0x99, 0xbc, 0xda, 0x32, 0xd1, 0xe4, 0x3a, 0xdc, 0x96, 0xae, - 0x33, 0xb1, 0x29, 0x97, 0xa1, 0x15, 0xf7, 0x2d, 0xcf, 0xbd, 0xcf, 0x6d, 0x79, 0xbe, 0x72, 0xbd, - 0xf6, 0xd7, 0x11, 0x98, 0xc2, 0x9b, 0xc3, 0x3e, 0x51, 0xa0, 0x4c, 0xf3, 0x1f, 0x5b, 0x4e, 0xbb, - 0x27, 0x29, 0x83, 0xb9, 0xba, 0x92, 0xaf, 0x28, 0xae, 0xa2, 0xf6, 0xbf, 0x4f, 0x7f, 0xfb, 0xf3, - 0x51, 0xe9, 0x04, 0x3b, 0x66, 0xa4, 0xfc, 0x0b, 0x40, 0xce, 0x8b, 0x3f, 0x29, 0x30, 0x9f, 0x9c, - 0x41, 0x99, 0x9e, 0xe7, 0x21, 0x39, 0x29, 0xab, 0x46, 0x61, 0x7d, 0x02, 0x56, 0x43, 0x60, 0x67, - 0xd9, 0x99, 0x0c, 0x60, 0x06, 0xde, 0x33, 0x63, 0x80, 0x7f, 0x86, 0xec, 0x33, 0x05, 0xa6, 0x70, - 0x37, 0x76, 0x2a, 0xdb, 0x9b, 0x04, 0x75, 0x3a, 0x4f, 0x8d, 0xb0, 0xe8, 0x88, 0x65, 0x85, 0x9d, - 0xce, 0xc2, 0x32, 0x90, 0x77, 0x7d, 0xc8, 0x7e, 0x54, 0x60, 0x2e, 0x3e, 0x18, 0xb2, 0x73, 0xd9, - 0x8e, 0x92, 0xe3, 0xab, 0xba, 0x5a, 0x50, 0x9b, 0xd0, 0x5d, 0x42, 0x74, 0xe7, 0x99, 0x5e, 0x0c, - 0x9d, 0x21, 0x67, 0xd1, 0xc7, 0x0a, 0x54, 0xe4, 0x08, 0xc7, 0xf6, 0xce, 0x98, 0xb1, 0x09, 0x53, - 0x3d, 0x53, 0x40, 0x93, 0x90, 0x5d, 0x46, 0x64, 0x35, 0x66, 0x14, 0x44, 0x16, 0xcd, 0x82, 0x5f, - 0x2a, 0x50, 0xa6, 0xdd, 0x32, 0x92, 0x3e, 0x39, 0xe0, 0xa9, 0x2b, 0xf9, 0x8a, 0x45, 0x72, 0x4b, - 0x82, 0x30, 0x06, 0xa3, 0xda, 0x39, 0x64, 0x5f, 0x2b, 0x50, 0xa6, 0x56, 0x38, 0x03, 0x51, 0x72, - 0xd2, 0xcb, 0x40, 0x34, 0x36, 0x93, 0x69, 0x57, 0x10, 0xd1, 0x3a, 0xab, 0x15, 0x46, 0x64, 0xc8, - 0x86, 0xfa, 0x67, 0x05, 0x0e, 0x8d, 0x0d, 0x32, 0xcc, 0xc8, 0x73, 0x3c, 0x36, 0x72, 0xa9, 0xe7, - 0x8b, 0x1b, 0x10, 0xe2, 0x75, 0x44, 0xbc, 0xca, 0xce, 0xa6, 0x21, 0x26, 0x6c, 0x94, 0x6a, 0xc6, - 0x40, 0xfc, 0x1d, 0x86, 0x58, 0xe7, 0x93, 0x03, 0x45, 0x46, 0x21, 0x49, 0x9d, 0x7d, 0x54, 0xa3, - 0xb0, 0xfe, 0x0b, 0x5e, 0x0f, 0xc9, 0xeb, 0xe7, 0x0a, 0x4c, 0xe1, 0x96, 0x19, 0xd5, 0x24, 0x3e, - 0x7b, 0x64, 0x54, 0x93, 0xc4, 0xb0, 0x91, 0x9d, 0x7d, 0x92, 0xb9, 0x41, 0xec, 0xc5, 0x19, 0xb2, - 0xef, 0x31, 0xfb, 0xf0, 0xad, 0xca, 0xcc, 0xbe, 0xf8, 0x20, 0x92, 0x99, 0x7d, 0x89, 0xf9, 0x42, - 0xbb, 0x86, 0x88, 0x5e, 0x63, 0x57, 0x0b, 0x23, 0x32, 0xa8, 0x0b, 0x37, 0x06, 0x34, 0x31, 0x0c, - 0xc3, 0x3b, 0x5b, 0x91, 0x5d, 0x3e, 0xcb, 0xf5, 0x5d, 0xa0, 0x9c, 0x8c, 0x8f, 0x0c, 0xd9, 0x65, - 0x58, 0x8e, 0x05, 0x31, 0x44, 0x8f, 0x14, 0x98, 0xa6, 0x1e, 0x7a, 0xef, 0xb3, 0x49, 0x34, 0xfd, - 0xea, 0x72, 0xae, 0x1e, 0x61, 0x79, 0x15, 0xb1, 0xac, 0xb1, 0xf3, 0xc5, 0x29, 0x13, 0x3d, 0x3e, - 0xfb, 0x4a, 0x81, 0xd9, 0x58, 0x13, 0xce, 0xce, 0xee, 0x5d, 0xed, 0x9f, 0xeb, 0xe2, 0xd5, 0x73, - 0xc5, 0x94, 0x09, 0xe4, 0x0a, 0x82, 0xd4, 0xd8, 0x52, 0x6a, 0xea, 0xe3, 0xaf, 0x55, 0xec, 0xf8, - 0xd9, 0x10, 0xa6, 0x45, 0xbf, 0x9d, 0xc1, 0x54, 0xa2, 0xb5, 0xcf, 0x60, 0x2a, 0xd9, 0xec, 0x6b, - 0x1a, 0x82, 0x38, 0xce, 0xd4, 0xd4, 0xd2, 0x86, 0xba, 0x9b, 0xdb, 0xbf, 0x3e, 0xad, 0x2a, 0x4f, - 0x9e, 0x56, 0x95, 0x3f, 0x9e, 0x56, 0x95, 0x87, 0xcf, 0xaa, 0xfb, 0x9e, 0x3c, 0xab, 0xee, 0xfb, - 0xfd, 0x59, 0x75, 0xdf, 0x7b, 0x97, 0x5a, 0xed, 0xe0, 0x4e, 0xbf, 0xa9, 0x5b, 0x6e, 0x57, 0xd8, - 0xaf, 0x3a, 0x3c, 0xb8, 0xef, 0x7a, 0xef, 0xd3, 0xaa, 0xc3, 0xed, 0x16, 0xf7, 0x8c, 0x07, 0xb1, - 0x6d, 0x2d, 0xd7, 0xe3, 0xcd, 0x69, 0x6c, 0x0c, 0xd7, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xc1, - 0xb2, 0xaf, 0xe4, 0x99, 0x19, 0x00, 0x00, + // 1661 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcb, 0x6f, 0xd4, 0x56, + 0x17, 0xc7, 0x03, 0xc9, 0x4c, 0x4e, 0x42, 0xe0, 0xbb, 0x84, 0xef, 0x0b, 0x06, 0x86, 0xe0, 0xaf, + 0x90, 0x50, 0x88, 0x4d, 0x12, 0x1e, 0x45, 0xa8, 0x8f, 0x04, 0xd4, 0x2a, 0xbb, 0x30, 0x45, 0x5d, + 0x54, 0x42, 0x91, 0xc7, 0xbe, 0x0c, 0xa6, 0x33, 0xf6, 0x60, 0x7b, 0x02, 0xd3, 0xe9, 0xb4, 0x6a, + 0x17, 0x95, 0xba, 0x69, 0x51, 0x59, 0x94, 0x4d, 0xd5, 0xe7, 0xa6, 0xdd, 0x75, 0xdb, 0xfe, 0x03, + 0x95, 0xba, 0x41, 0xea, 0xa6, 0xcb, 0x0a, 0xfa, 0x87, 0x54, 0xbe, 0xf7, 0x5c, 0xbf, 0xe2, 0xd8, + 0x2e, 0x1a, 0x55, 0x59, 0x25, 0xf7, 0xce, 0x39, 0xf7, 0xfc, 0xce, 0xb9, 0xe7, 0x71, 0x7f, 0x86, + 0xba, 0x4b, 0x5b, 0xd4, 0xd6, 0xa8, 0xe1, 0x18, 0x2e, 0x35, 0x2d, 0x5f, 0xdb, 0x5a, 0xd2, 0xee, + 0xf5, 0xa8, 0xdb, 0x57, 0xbb, 0xae, 0xe3, 0x3b, 0x84, 0xb0, 0xdf, 0xd5, 0xf0, 0x77, 0x75, 0x6b, + 0x49, 0x3e, 0xd6, 0x72, 0x9c, 0x56, 0x9b, 0x6a, 0x7a, 0xd7, 0xd2, 0x74, 0xdb, 0x76, 0x7c, 0xdd, + 0xb7, 0x1c, 0xdb, 0xe3, 0x1a, 0xf2, 0x09, 0xfc, 0x95, 0xad, 0x9a, 0xbd, 0xdb, 0x9a, 0x6f, 0x75, + 0xa8, 0xe7, 0xeb, 0x9d, 0x2e, 0x0a, 0xbc, 0x68, 0x38, 0x5e, 0xc7, 0xf1, 0xb4, 0xa6, 0xee, 0x51, + 0x6e, 0x4b, 0xdb, 0x5a, 0x6a, 0x52, 0x5f, 0x5f, 0xd2, 0xba, 0x7a, 0xcb, 0xb2, 0xd9, 0x69, 0x28, + 0x9b, 0x05, 0xcf, 0xf3, 0x75, 0x9f, 0xe6, 0xfc, 0xee, 0xf7, 0xbb, 0x14, 0xc1, 0x28, 0xb7, 0xe0, + 0xd0, 0x8d, 0xc0, 0xc2, 0xb5, 0xb6, 0xee, 0x79, 0xd4, 0x6b, 0xd0, 0x7b, 0x3d, 0xea, 0xf9, 0xe4, + 0x75, 0x80, 0xc8, 0xd4, 0xac, 0x34, 0x27, 0x2d, 0x4c, 0x2e, 0x9f, 0x56, 0x39, 0x2e, 0x35, 0xc0, + 0xa5, 0xf2, 0x18, 0x20, 0x2e, 0x75, 0x43, 0x6f, 0x51, 0xd4, 0x6d, 0xc4, 0x34, 0x95, 0xc7, 0x12, + 0xcc, 0x24, 0xcf, 0xf7, 0xba, 0x8e, 0xed, 0x51, 0x72, 0x19, 0xaa, 0x06, 0xdf, 0x9a, 0x95, 0xe6, + 0xf6, 0x2e, 0x4c, 0x2e, 0x1f, 0x57, 0xb7, 0x07, 0x52, 0x65, 0x5a, 0xeb, 0xf6, 0x6d, 0xa7, 0x21, + 0xa4, 0xc9, 0x1b, 0x09, 0x64, 0x15, 0x86, 0x6c, 0xbe, 0x10, 0x19, 0xb7, 0x9a, 0x80, 0xf6, 0x2e, + 0xc8, 0x71, 0x64, 0x6b, 0xfd, 0x55, 0xb3, 0x63, 0xd9, 0x22, 0x00, 0x33, 0x30, 0xa6, 0x07, 0x6b, + 0xe6, 0xfb, 0x44, 0x83, 0x2f, 0x52, 0x61, 0xa9, 0x3c, 0x77, 0x58, 0xbe, 0x92, 0xe0, 0x68, 0xa6, + 0xf1, 0x5d, 0x13, 0x1d, 0x15, 0xfe, 0x13, 0x01, 0x14, 0x41, 0x39, 0x02, 0x35, 0x66, 0x68, 0xd3, + 0x32, 0x31, 0x2e, 0xdc, 0xf0, 0xba, 0xa9, 0xac, 0x03, 0x89, 0xcb, 0xa3, 0x1f, 0x2b, 0x30, 0xc6, + 0x04, 0x30, 0x83, 0x0a, 0xbc, 0xe0, 0xb2, 0xca, 0x10, 0x66, 0xa3, 0xa3, 0xd6, 0x3d, 0xaf, 0x47, + 0xdd, 0x12, 0x08, 0x46, 0x76, 0x37, 0xef, 0xc3, 0x91, 0x0c, 0xf3, 0xe8, 0xd0, 0x2c, 0x54, 0x2d, + 0xbe, 0xc5, 0x2e, 0x66, 0xa2, 0x21, 0x96, 0xa3, 0x8b, 0x7c, 0x1f, 0x2b, 0x66, 0xc3, 0x75, 0xee, + 0x52, 0xc3, 0xff, 0x37, 0x5d, 0xff, 0x52, 0x82, 0xc3, 0x29, 0xdb, 0xe8, 0xf7, 0x55, 0xa8, 0x75, + 0x71, 0x0f, 0x33, 0xf2, 0x44, 0xd6, 0x5d, 0xa2, 0x1e, 0xbb, 0xcd, 0x50, 0x61, 0x74, 0xa1, 0xf9, + 0x54, 0x82, 0x93, 0x09, 0x7c, 0x6b, 0xfd, 0x06, 0xbd, 0x4d, 0x5d, 0x6a, 0x1b, 0x74, 0xdd, 0x14, + 0x81, 0x3a, 0x09, 0x53, 0xae, 0xd8, 0x8d, 0x82, 0x35, 0xe9, 0x46, 0x92, 0x23, 0x0b, 0xd8, 0x8f, + 0x12, 0x28, 0x79, 0x80, 0x76, 0x55, 0xf4, 0x2e, 0x60, 0xab, 0x47, 0x33, 0x22, 0x5c, 0xc7, 0x01, + 0xd0, 0x56, 0x14, 0xac, 0x09, 0xdc, 0x59, 0x37, 0x95, 0x1b, 0xc9, 0x74, 0x0c, 0x7d, 0xba, 0x02, + 0x55, 0x14, 0xc2, 0xe2, 0x2e, 0x74, 0x49, 0xc8, 0x2b, 0xef, 0x21, 0x90, 0x35, 0xdd, 0x37, 0xee, + 0x44, 0x33, 0x27, 0x1f, 0xc8, 0xc8, 0xee, 0x2c, 0x1c, 0x49, 0xa1, 0xf9, 0xa8, 0xe9, 0x36, 0xf9, + 0x56, 0x5e, 0xd3, 0x65, 0x5a, 0xdc, 0x1f, 0x94, 0x1e, 0xdd, 0x0d, 0x0d, 0x71, 0x2a, 0x20, 0xb2, + 0xb5, 0x3e, 0x6f, 0x3f, 0x22, 0x40, 0xff, 0x85, 0x71, 0xde, 0x6d, 0x30, 0x38, 0xb8, 0x1a, 0x59, + 0x64, 0xbe, 0x96, 0xe0, 0x58, 0xb6, 0xfd, 0x5d, 0x13, 0xa1, 0x0f, 0x70, 0x68, 0x87, 0x08, 0x4b, + 0xce, 0xa7, 0xd1, 0x4f, 0xee, 0x34, 0x82, 0x5d, 0x13, 0xa2, 0x0b, 0x38, 0xb9, 0x99, 0x0d, 0x11, + 0x99, 0x13, 0x30, 0xc9, 0x0c, 0x6d, 0x9a, 0xd4, 0x76, 0x3a, 0x18, 0x1c, 0x60, 0x5b, 0xd7, 0x83, + 0x9d, 0x70, 0x7e, 0xa3, 0x56, 0x34, 0xbf, 0x99, 0x4c, 0xde, 0xfc, 0x8e, 0x7c, 0xe1, 0xb2, 0xca, + 0x46, 0x58, 0xde, 0x6d, 0xdd, 0x36, 0x44, 0x14, 0x83, 0xd1, 0xa9, 0x1b, 0x86, 0xd3, 0xb3, 0x7d, + 0x71, 0x37, 0xb8, 0x4c, 0x83, 0xab, 0x6c, 0x03, 0xf7, 0x56, 0x58, 0xb1, 0x78, 0x22, 0xc2, 0x7b, + 0x25, 0x08, 0x36, 0xdb, 0x42, 0x80, 0x2f, 0xec, 0x08, 0x10, 0x55, 0x45, 0xcc, 0xd9, 0x42, 0x79, + 0x90, 0x3c, 0xd7, 0x2b, 0x86, 0x3a, 0xaa, 0x34, 0xfa, 0x56, 0x4c, 0xda, 0xc8, 0x34, 0xfa, 0xf4, + 0x1a, 0xd4, 0x10, 0x9e, 0xc8, 0xa0, 0x72, 0x4e, 0x85, 0x5a, 0xa3, 0xcb, 0xa4, 0x8b, 0x98, 0x13, + 0x6f, 0xf6, 0xba, 0xdd, 0x76, 0xbf, 0x74, 0x2a, 0x3d, 0x94, 0x30, 0x01, 0x84, 0x1e, 0x7a, 0x36, + 0x0f, 0x07, 0x7c, 0x57, 0x37, 0xf5, 0x66, 0x9b, 0x6e, 0x7a, 0xec, 0x27, 0x54, 0x9e, 0x16, 0xdb, + 0x5c, 0x81, 0x9c, 0x82, 0x69, 0x97, 0xfa, 0x96, 0x4b, 0x4d, 0x21, 0xc7, 0x53, 0x62, 0x3f, 0xee, + 0xa2, 0xd8, 0x19, 0x38, 0x68, 0x04, 0x1e, 0xb7, 0xdb, 0xd4, 0xdc, 0xd4, 0x3b, 0xec, 0xba, 0xf6, + 0x32, 0xc1, 0x03, 0xe1, 0xfe, 0x2a, 0xdb, 0x56, 0x8e, 0xc0, 0xff, 0xf8, 0x9b, 0x8e, 0xc5, 0xef, + 0x66, 0xc0, 0x7f, 0xd0, 0x1d, 0xe5, 0x96, 0x78, 0x6d, 0xc6, 0x7f, 0x42, 0xc4, 0xab, 0x30, 0xc5, + 0x23, 0xbe, 0xc9, 0x28, 0x13, 0xde, 0x47, 0x3d, 0xf3, 0x15, 0x1b, 0xaa, 0x37, 0x26, 0x8d, 0xe8, + 0x28, 0x65, 0x06, 0x63, 0xb8, 0xa1, 0xbb, 0x7a, 0x27, 0x34, 0xba, 0x2e, 0x46, 0x31, 0xee, 0xa2, + 0xbd, 0x65, 0x18, 0xef, 0xb2, 0x1d, 0x4c, 0x67, 0x39, 0x73, 0xa4, 0x72, 0x1d, 0x94, 0x54, 0x06, + 0x30, 0x11, 0xbe, 0xa0, 0xc9, 0x34, 0x54, 0xc2, 0xd6, 0x57, 0xb1, 0xcc, 0x88, 0xc5, 0x54, 0xe2, + 0x2c, 0x46, 0x86, 0x5a, 0x87, 0xfa, 0xba, 0xa9, 0xfb, 0x3a, 0x06, 0x2c, 0x5c, 0x93, 0x73, 0x40, + 0x62, 0x2e, 0x6f, 0xea, 0xcd, 0xa6, 0x4b, 0xb7, 0x66, 0xf7, 0x31, 0xa9, 0x83, 0x91, 0x63, 0xab, + 0x6c, 0x5f, 0xf9, 0x49, 0x82, 0xc9, 0xd8, 0x88, 0x2f, 0x69, 0x3f, 0xde, 0xa6, 0xf7, 0x26, 0xdb, + 0xb4, 0x02, 0x53, 0x77, 0x7b, 0xae, 0xe5, 0x99, 0x96, 0xc1, 0xb2, 0x97, 0x1b, 0x4e, 0xec, 0x25, + 0xe0, 0x8f, 0xa5, 0xe0, 0xa7, 0xdf, 0x7e, 0xe3, 0xdb, 0xde, 0x7e, 0xca, 0x2f, 0x15, 0x98, 0x08, + 0x7b, 0xd6, 0x8e, 0x33, 0x35, 0xf9, 0x18, 0xa9, 0xa4, 0x1f, 0x23, 0x33, 0x30, 0xc6, 0xd3, 0x9f, + 0xe3, 0xe7, 0x8b, 0x04, 0xb2, 0x7d, 0x29, 0x64, 0x57, 0x00, 0x3c, 0x5f, 0x77, 0xfd, 0x4d, 0x53, + 0xf7, 0x29, 0xc3, 0x1d, 0xdc, 0x2f, 0xff, 0x14, 0xa0, 0x8a, 0x4f, 0x01, 0xea, 0x4d, 0xf1, 0x29, + 0xa0, 0x31, 0xc1, 0xa4, 0xaf, 0xeb, 0x3e, 0x25, 0x17, 0xa1, 0x46, 0x6d, 0x93, 0x2b, 0x8e, 0x17, + 0x2a, 0x56, 0xa9, 0x6d, 0x32, 0xb5, 0x57, 0x61, 0x7f, 0xe0, 0x4c, 0x50, 0x0a, 0x5c, 0xb7, 0x5a, + 0xa8, 0x3b, 0x25, 0x14, 0xd8, 0x01, 0x04, 0xf6, 0x39, 0x5d, 0x6a, 0xcf, 0xd6, 0xe6, 0xa4, 0x85, + 0x5a, 0x83, 0xfd, 0x1f, 0xcc, 0xbf, 0x83, 0xe9, 0xde, 0xc3, 0xfa, 0xa5, 0x69, 0xba, 0x14, 0x89, + 0x5e, 0xd0, 0x2f, 0xf9, 0xb2, 0xb0, 0xb5, 0x07, 0x21, 0x13, 0xd5, 0x2f, 0x72, 0x51, 0xac, 0x83, + 0x63, 0xb1, 0xe2, 0x31, 0x9a, 0x62, 0x19, 0x68, 0x51, 0xcf, 0x70, 0x9d, 0xfb, 0xd4, 0x14, 0x29, + 0x20, 0xd6, 0xcb, 0x3f, 0x1f, 0x82, 0x31, 0x56, 0x5c, 0xe4, 0x43, 0x09, 0xaa, 0x48, 0xb0, 0xc9, + 0x7c, 0x56, 0x29, 0x65, 0x7c, 0xf9, 0x90, 0x17, 0x8a, 0x05, 0x79, 0xb5, 0x2a, 0xff, 0xff, 0xe8, + 0xf7, 0xbf, 0x1e, 0x55, 0x8e, 0x93, 0xa3, 0x5a, 0xc6, 0x37, 0x16, 0x41, 0xc8, 0xbf, 0x97, 0x60, + 0x3a, 0x49, 0xf2, 0x89, 0x5a, 0x64, 0x21, 0xf9, 0x29, 0x42, 0xd6, 0x4a, 0xcb, 0x23, 0xb0, 0x25, + 0x06, 0xec, 0x2c, 0x39, 0x93, 0x03, 0x4c, 0x63, 0xa5, 0xa8, 0x0d, 0xd8, 0x9f, 0x21, 0xf9, 0x58, + 0x82, 0x31, 0x76, 0x1a, 0x39, 0x95, 0x6f, 0x4d, 0x80, 0x3a, 0x5d, 0x24, 0x86, 0x58, 0x54, 0x86, + 0x65, 0x81, 0x9c, 0xce, 0xc3, 0x32, 0x10, 0xed, 0x60, 0x48, 0xbe, 0x93, 0x60, 0x2a, 0xce, 0xbc, + 0xc9, 0xb9, 0x7c, 0x43, 0xc9, 0xef, 0x03, 0xf2, 0x62, 0x49, 0x69, 0x44, 0x77, 0x89, 0xa1, 0x3b, + 0x4f, 0xd4, 0x72, 0xe8, 0x34, 0x41, 0xf6, 0x1f, 0x4b, 0x50, 0x13, 0x94, 0x8f, 0xec, 0x9c, 0x31, + 0x29, 0x0a, 0x2f, 0x9f, 0x29, 0x21, 0x89, 0xc8, 0x2e, 0x33, 0x64, 0x4b, 0x44, 0x2b, 0x89, 0x2c, + 0xa4, 0x8b, 0xbf, 0x49, 0x70, 0x38, 0x93, 0x8d, 0x92, 0x8b, 0x85, 0xd6, 0xb3, 0xe8, 0xb4, 0x7c, + 0xe9, 0x9f, 0xaa, 0xa1, 0x07, 0xd7, 0x98, 0x07, 0x2f, 0x93, 0xab, 0x59, 0x1e, 0x08, 0xb8, 0x5a, + 0xb3, 0xbf, 0x18, 0x36, 0xe7, 0x45, 0xcb, 0xd4, 0x06, 0xf1, 0xf6, 0x3d, 0x24, 0x9f, 0x49, 0x50, + 0x45, 0x33, 0x39, 0x25, 0x9c, 0x64, 0xb4, 0xf2, 0x42, 0xb1, 0x60, 0x99, 0x4a, 0x09, 0x31, 0x0e, + 0xa2, 0x49, 0x30, 0x24, 0x5f, 0x48, 0x50, 0xc5, 0xb7, 0x7f, 0x0e, 0xa2, 0x24, 0xb5, 0xcd, 0x41, + 0x94, 0x22, 0xa1, 0xca, 0x15, 0x86, 0x68, 0x85, 0x2c, 0x95, 0x46, 0xa4, 0x09, 0x06, 0xf1, 0x83, + 0x04, 0x07, 0x52, 0xcc, 0x8d, 0x68, 0x45, 0x86, 0x53, 0x1c, 0x53, 0x3e, 0x5f, 0x5e, 0x01, 0x11, + 0xaf, 0x30, 0xc4, 0x8b, 0xe4, 0x6c, 0x16, 0x62, 0xc4, 0x86, 0x85, 0xa3, 0x0d, 0xf8, 0xdf, 0x61, + 0x80, 0x75, 0x3a, 0xc9, 0xa0, 0x72, 0xda, 0x62, 0x26, 0xd9, 0x93, 0xb5, 0xd2, 0xf2, 0xcf, 0x59, + 0xec, 0x22, 0xae, 0x9f, 0x48, 0x30, 0xc6, 0x8e, 0xcc, 0xe9, 0x8d, 0x71, 0xb2, 0x95, 0xd3, 0x1b, + 0x13, 0xec, 0x2a, 0x3f, 0xfb, 0x44, 0xe4, 0x06, 0xb1, 0xf9, 0x39, 0x24, 0xdf, 0xb0, 0xec, 0x63, + 0x93, 0x37, 0x37, 0xfb, 0xe2, 0xcc, 0x2b, 0x37, 0xfb, 0x12, 0x84, 0x2a, 0xbf, 0x66, 0x33, 0x11, + 0x69, 0x48, 0x3b, 0xb4, 0x01, 0x52, 0x24, 0x56, 0xb3, 0x35, 0x41, 0x6b, 0x48, 0xa1, 0xed, 0x12, + 0xcd, 0x31, 0xcd, 0x91, 0xf2, 0x87, 0x8a, 0xe0, 0x41, 0x31, 0x44, 0x8f, 0x24, 0x18, 0x47, 0xd2, + 0xb0, 0xf3, 0xdd, 0x24, 0x58, 0x8e, 0x3c, 0x5f, 0x28, 0x87, 0x58, 0x5e, 0x62, 0x58, 0x96, 0xc9, + 0xf9, 0xf2, 0x21, 0xe3, 0xa4, 0x86, 0x7c, 0x2e, 0xc1, 0x64, 0x8c, 0x75, 0x90, 0xb3, 0x3b, 0xcf, + 0xae, 0x6d, 0xb4, 0x45, 0x3e, 0x57, 0x4e, 0x18, 0x41, 0x2e, 0x30, 0x90, 0x0a, 0x99, 0xcb, 0x4c, + 0x7d, 0xf6, 0xdf, 0x22, 0xa3, 0x38, 0x64, 0x08, 0xe3, 0x9c, 0x60, 0xe4, 0x44, 0x2a, 0xc1, 0x65, + 0x72, 0x22, 0x95, 0x64, 0x37, 0x8a, 0xc2, 0x40, 0x1c, 0x23, 0x72, 0x66, 0x6b, 0x63, 0xb2, 0x6b, + 0x1b, 0xbf, 0x3e, 0xad, 0x4b, 0x4f, 0x9e, 0xd6, 0xa5, 0x3f, 0x9f, 0xd6, 0xa5, 0x87, 0xcf, 0xea, + 0x7b, 0x9e, 0x3c, 0xab, 0xef, 0xf9, 0xe3, 0x59, 0x7d, 0xcf, 0xdb, 0x97, 0x5a, 0x96, 0x7f, 0xa7, + 0xd7, 0x54, 0x0d, 0xa7, 0xc3, 0xf5, 0x17, 0x6d, 0xea, 0xdf, 0x77, 0xdc, 0x77, 0x70, 0xd5, 0xa6, + 0x66, 0x8b, 0xba, 0xda, 0x83, 0xd8, 0xb1, 0x86, 0xe3, 0xd2, 0xe6, 0x38, 0x7b, 0xe6, 0xae, 0xfc, + 0x1d, 0x00, 0x00, 0xff, 0xff, 0x94, 0xf6, 0xc3, 0x69, 0xc8, 0x1b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2087,6 +2204,8 @@ type QueryClient interface { ClassIssuers(ctx context.Context, in *QueryClassIssuersRequest, opts ...grpc.CallOption) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(ctx context.Context, in *QueryProjectsRequest, opts ...grpc.CallOption) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) // Project queries for information on a project. Project(ctx context.Context, in *QueryProjectRequest, opts ...grpc.CallOption) (*QueryProjectResponse, error) // Batches queries for all batches in the given project with pagination. @@ -2164,6 +2283,15 @@ func (c *queryClient) Projects(ctx context.Context, in *QueryProjectsRequest, op return out, nil } +func (c *queryClient) ProjectsByReferenceId(ctx context.Context, in *QueryProjectsByReferenceIdRequest, opts ...grpc.CallOption) (*QueryProjectsByReferenceIdResponse, error) { + out := new(QueryProjectsByReferenceIdResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/ProjectsByReferenceId", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) Project(ctx context.Context, in *QueryProjectRequest, opts ...grpc.CallOption) (*QueryProjectResponse, error) { out := new(QueryProjectResponse) err := c.cc.Invoke(ctx, "/regen.ecocredit.v1.Query/Project", in, out, opts...) @@ -2267,6 +2395,8 @@ type QueryServer interface { ClassIssuers(context.Context, *QueryClassIssuersRequest) (*QueryClassIssuersResponse, error) // Projects queries for all projects within a class with pagination. Projects(context.Context, *QueryProjectsRequest) (*QueryProjectsResponse, error) + // ProjectsByReferenceId queries for all projects by reference-id with pagination. + ProjectsByReferenceId(context.Context, *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) // Project queries for information on a project. Project(context.Context, *QueryProjectRequest) (*QueryProjectResponse, error) // Batches queries for all batches in the given project with pagination. @@ -2310,6 +2440,9 @@ func (*UnimplementedQueryServer) ClassIssuers(ctx context.Context, req *QueryCla func (*UnimplementedQueryServer) Projects(ctx context.Context, req *QueryProjectsRequest) (*QueryProjectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Projects not implemented") } +func (*UnimplementedQueryServer) ProjectsByReferenceId(ctx context.Context, req *QueryProjectsByReferenceIdRequest) (*QueryProjectsByReferenceIdResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProjectsByReferenceId not implemented") +} func (*UnimplementedQueryServer) Project(ctx context.Context, req *QueryProjectRequest) (*QueryProjectResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Project not implemented") } @@ -2435,6 +2568,24 @@ func _Query_Projects_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Query_ProjectsByReferenceId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryProjectsByReferenceIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProjectsByReferenceId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.v1.Query/ProjectsByReferenceId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProjectsByReferenceId(ctx, req.(*QueryProjectsByReferenceIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_Project_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProjectRequest) if err := dec(in); err != nil { @@ -2639,6 +2790,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "Projects", Handler: _Query_Projects_Handler, }, + { + MethodName: "ProjectsByReferenceId", + Handler: _Query_ProjectsByReferenceId_Handler, + }, { MethodName: "Project", Handler: _Query_Project_Handler, @@ -3101,6 +3256,97 @@ func (m *QueryProjectsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *QueryProjectsByReferenceIdRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProjectsByReferenceIdRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProjectsByReferenceIdRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.ReferenceId) > 0 { + i -= len(m.ReferenceId) + copy(dAtA[i:], m.ReferenceId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.ReferenceId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryProjectsByReferenceIdResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProjectsByReferenceIdResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProjectsByReferenceIdResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Projects) > 0 { + for iNdEx := len(m.Projects) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Projects[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *QueryProjectRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4307,7 +4553,7 @@ func (m *QueryProjectsResponse) Size() (n int) { return n } -func (m *QueryProjectRequest) Size() (n int) { +func (m *QueryProjectsByReferenceIdRequest) Size() (n int) { if m == nil { return 0 } @@ -4324,7 +4570,7 @@ func (m *QueryProjectRequest) Size() (n int) { return n } -func (m *QueryProjectResponse) Size() (n int) { +func (m *QueryProjectsByReferenceIdResponse) Size() (n int) { if m == nil { return 0 } @@ -4343,7 +4589,7 @@ func (m *QueryProjectResponse) Size() (n int) { return n } -func (m *QueryProjectInfoRequest) Size() (n int) { +func (m *QueryProjectRequest) Size() (n int) { if m == nil { return 0 } @@ -4356,7 +4602,7 @@ func (m *QueryProjectInfoRequest) Size() (n int) { return n } -func (m *QueryProjectInfoResponse) Size() (n int) { +func (m *QueryProjectResponse) Size() (n int) { if m == nil { return 0 } @@ -5868,6 +6114,244 @@ func (m *QueryProjectsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryProjectsByReferenceIdRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReferenceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReferenceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryProjectsByReferenceIdResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryProjectsByReferenceIdResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Projects", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Projects = append(m.Projects, &ProjectInfo{}) + if err := m.Projects[len(m.Projects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *QueryProjectRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/ecocredit/core/query.pb.gw.go b/x/ecocredit/core/query.pb.gw.go index ff8b035e4f..e1e5bfcc6d 100644 --- a/x/ecocredit/core/query.pb.gw.go +++ b/x/ecocredit/core/query.pb.gw.go @@ -339,6 +339,78 @@ func local_request_Query_Projects_0(ctx context.Context, marshaler runtime.Marsh } +var ( + filter_Query_ProjectsByReferenceId_0 = &utilities.DoubleArray{Encoding: map[string]int{"reference_id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_Query_ProjectsByReferenceId_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryProjectsByReferenceIdRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["reference_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "reference_id") + } + + protoReq.ReferenceId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "reference_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_ProjectsByReferenceId_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ProjectsByReferenceId(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_ProjectsByReferenceId_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryProjectsByReferenceIdRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["reference_id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "reference_id") + } + + protoReq.ReferenceId, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "reference_id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_ProjectsByReferenceId_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ProjectsByReferenceId(ctx, &protoReq) + return msg, metadata, err + +} + func request_Query_Project_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryProjectRequest var metadata runtime.ServerMetadata @@ -1022,6 +1094,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_ProjectsByReferenceId_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_ProjectsByReferenceId_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProjectsByReferenceId_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_Project_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1393,6 +1488,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_ProjectsByReferenceId_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_ProjectsByReferenceId_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProjectsByReferenceId_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_Project_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1607,6 +1722,8 @@ var ( pattern_Query_Projects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"regen", "ecocredit", "v1", "classes", "class_id", "projects"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_ProjectsByReferenceId_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"regen", "ecocredit", "v1", "projects", "by-reference-id", "reference_id"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_Project_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"regen", "ecocredit", "v1", "projects", "project_id"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Batches_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"regen", "ecocredit", "v1", "projects", "project_id", "batches"}, "", runtime.AssumeColonVerbOpt(false))) @@ -1639,6 +1756,8 @@ var ( forward_Query_Projects_0 = runtime.ForwardResponseMessage + forward_Query_ProjectsByReferenceId_0 = runtime.ForwardResponseMessage + forward_Query_Project_0 = runtime.ForwardResponseMessage forward_Query_Batches_0 = runtime.ForwardResponseMessage diff --git a/x/ecocredit/core/state.pb.go b/x/ecocredit/core/state.pb.go index 5e9483974c..d1635f3be4 100644 --- a/x/ecocredit/core/state.pb.go +++ b/x/ecocredit/core/state.pb.go @@ -258,7 +258,7 @@ type Project struct { Jurisdiction string `protobuf:"bytes,5,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` // metadata is any arbitrary metadata attached to the project. Metadata string `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` - // reference_id is any arbitrary string that can be use to reference project. + // reference_id is any arbitrary string used to reference the project. ReferenceId string `protobuf:"bytes,7,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } diff --git a/x/ecocredit/core/tx.pb.go b/x/ecocredit/core/tx.pb.go index 60fe80279c..58b5068612 100644 --- a/x/ecocredit/core/tx.pb.go +++ b/x/ecocredit/core/tx.pb.go @@ -181,7 +181,7 @@ type MsgCreateProject struct { // alphanumeric characters. country-code is required, while sub-national-code // and postal-code are optional and can be added for increased precision. Jurisdiction string `protobuf:"bytes,4,opt,name=jurisdiction,proto3" json:"jurisdiction,omitempty"` - // reference_id is any arbitrary string that can be use to reference project. + // reference_id is any arbitrary string used to reference the project. ReferenceId string `protobuf:"bytes,5,opt,name=reference_id,json=referenceId,proto3" json:"reference_id,omitempty"` } From 632d48446f0a5992477560d6f69dfa0504655bc9 Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Mon, 9 May 2022 14:40:32 +0530 Subject: [PATCH 08/12] feat: add unit tests --- .../server/core/create_project_test.go | 21 +++++++ .../core/query_projects_by_reference_id.go | 7 +-- .../query_projects_by_reference_id_test.go | 61 +++++++++++++++++++ 3 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 x/ecocredit/server/core/query_projects_by_reference_id_test.go diff --git a/x/ecocredit/server/core/create_project_test.go b/x/ecocredit/server/core/create_project_test.go index dc3dc8fd5b..04714d64f5 100644 --- a/x/ecocredit/server/core/create_project_test.go +++ b/x/ecocredit/server/core/create_project_test.go @@ -77,3 +77,24 @@ func makeClass(t *testing.T, ctx context.Context, ss api.StateStore, addr types. Issuer: addr, })) } + +func TestCreateProject_With_ReferenceId_ValidProjectState(t *testing.T) { + t.Parallel() + s := setupBase(t) + makeClass(t, s.ctx, s.stateStore, s.addr) + res, err := s.k.CreateProject(s.ctx, &core.MsgCreateProject{ + Issuer: s.addr.String(), + ClassId: "C01", + Metadata: "", + Jurisdiction: "US-NY", + ReferenceId: "Project1", + }) + assert.NilError(t, err) + assert.Equal(t, "C01-001", res.ProjectId) + + project, err := s.stateStore.ProjectTable().GetById(s.ctx, "C01-001") + assert.NilError(t, err) + assert.DeepEqual(t, project.Admin, s.addr.Bytes()) + assert.Equal(t, project.Jurisdiction, "US-NY") + assert.Equal(t, project.ReferenceId, "Project1") +} diff --git a/x/ecocredit/server/core/query_projects_by_reference_id.go b/x/ecocredit/server/core/query_projects_by_reference_id.go index 0dede8d821..64b7b4e1de 100644 --- a/x/ecocredit/server/core/query_projects_by_reference_id.go +++ b/x/ecocredit/server/core/query_projects_by_reference_id.go @@ -3,17 +3,17 @@ package core import ( "context" + "github.com/cosmos/cosmos-sdk/orm/model/ormlist" + sdk "github.com/cosmos/cosmos-sdk/types" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "github.com/cosmos/cosmos-sdk/orm/model/ormlist" - sdk "github.com/cosmos/cosmos-sdk/types" api "github.com/regen-network/regen-ledger/api/regen/ecocredit/v1" "github.com/regen-network/regen-ledger/types/ormutil" "github.com/regen-network/regen-ledger/x/ecocredit/core" ) -// ProjectInfo queries projects info by reference id. +// ProjectsByReferenceId queries projects by reference id. func (k Keeper) ProjectsByReferenceId(ctx context.Context, req *core.QueryProjectsByReferenceIdRequest) (*core.QueryProjectsByReferenceIdResponse, error) { if req.ReferenceId == "" { return nil, status.Errorf(codes.InvalidArgument, "reference-id is empty") @@ -28,7 +28,6 @@ func (k Keeper) ProjectsByReferenceId(ctx context.Context, req *core.QueryProjec if err != nil { return nil, err } - defer it.Close() projects := make([]*core.ProjectInfo, 0) for it.Next() { diff --git a/x/ecocredit/server/core/query_projects_by_reference_id_test.go b/x/ecocredit/server/core/query_projects_by_reference_id_test.go new file mode 100644 index 0000000000..6648a68115 --- /dev/null +++ b/x/ecocredit/server/core/query_projects_by_reference_id_test.go @@ -0,0 +1,61 @@ +package core + +import ( + "testing" + + "gotest.tools/v3/assert" + + "github.com/cosmos/cosmos-sdk/types/query" + + api "github.com/regen-network/regen-ledger/api/regen/ecocredit/v1" + "github.com/regen-network/regen-ledger/x/ecocredit/core" +) + +func TestQuery_ProjectsByReferenceId(t *testing.T) { + t.Parallel() + s := setupBase(t) + + // insert credit class + classKey, err := s.stateStore.ClassTable().InsertReturningID(s.ctx, &api.Class{ + Id: "C01", + }) + assert.NilError(t, err) + + project := &api.Project{ + Id: "C01-001", + ClassKey: classKey, + Jurisdiction: "US-CA", + Metadata: "data", + ReferenceId: "R1", + } + + // insert two projects with "R1" reference id and one without reference id + assert.NilError(t, s.stateStore.ProjectTable().Insert(s.ctx, project)) + assert.NilError(t, s.stateStore.ProjectTable().Insert(s.ctx, &api.Project{ + Id: "P02", + ClassKey: classKey, + ReferenceId: "R1", + })) + assert.NilError(t, s.stateStore.ProjectTable().Insert(s.ctx, &api.Project{ + Id: "P03", + ClassKey: classKey, + })) + + // query projects by "R1" reference id + res, err := s.k.ProjectsByReferenceId(s.ctx, &core.QueryProjectsByReferenceIdRequest{ + ReferenceId: "R1", + Pagination: &query.PageRequest{Limit: 1, CountTotal: true}, + }) + assert.NilError(t, err) + assert.Equal(t, 1, len(res.Projects)) + assert.Equal(t, project.Id, res.Projects[0].Id) + assert.Equal(t, "C01", res.Projects[0].ClassId) + assert.Equal(t, "R1", res.Projects[0].ReferenceId) + assert.Equal(t, project.Jurisdiction, res.Projects[0].Jurisdiction) + assert.Equal(t, uint64(2), res.Pagination.Total) + + // query projects by unknown reference id + res, err = s.k.ProjectsByReferenceId(s.ctx, &core.QueryProjectsByReferenceIdRequest{ReferenceId: "RR2"}) + assert.Equal(t, len(res.Projects), 0) + assert.NilError(t, err) +} From 4bbedab866f0aea7800278d8f65b57b203db42de Mon Sep 17 00:00:00 2001 From: MD Aleem <72057206+aleem1314@users.noreply.github.com> Date: Tue, 10 May 2022 20:09:12 +0530 Subject: [PATCH 09/12] Update x/ecocredit/server/core/query_projects_by_reference_id_test.go Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com> --- x/ecocredit/server/core/query_projects_by_reference_id_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/ecocredit/server/core/query_projects_by_reference_id_test.go b/x/ecocredit/server/core/query_projects_by_reference_id_test.go index 6648a68115..a5d3979899 100644 --- a/x/ecocredit/server/core/query_projects_by_reference_id_test.go +++ b/x/ecocredit/server/core/query_projects_by_reference_id_test.go @@ -32,7 +32,7 @@ func TestQuery_ProjectsByReferenceId(t *testing.T) { // insert two projects with "R1" reference id and one without reference id assert.NilError(t, s.stateStore.ProjectTable().Insert(s.ctx, project)) assert.NilError(t, s.stateStore.ProjectTable().Insert(s.ctx, &api.Project{ - Id: "P02", + Id: "C01-002", ClassKey: classKey, ReferenceId: "R1", })) From 6d39bcb274c71ef28135a6529ae4eeefda125fb6 Mon Sep 17 00:00:00 2001 From: MD Aleem <72057206+aleem1314@users.noreply.github.com> Date: Tue, 10 May 2022 20:09:19 +0530 Subject: [PATCH 10/12] Update x/ecocredit/server/core/query_projects_by_reference_id_test.go Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com> --- x/ecocredit/server/core/query_projects_by_reference_id_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/ecocredit/server/core/query_projects_by_reference_id_test.go b/x/ecocredit/server/core/query_projects_by_reference_id_test.go index a5d3979899..407366752b 100644 --- a/x/ecocredit/server/core/query_projects_by_reference_id_test.go +++ b/x/ecocredit/server/core/query_projects_by_reference_id_test.go @@ -37,7 +37,7 @@ func TestQuery_ProjectsByReferenceId(t *testing.T) { ReferenceId: "R1", })) assert.NilError(t, s.stateStore.ProjectTable().Insert(s.ctx, &api.Project{ - Id: "P03", + Id: "C01-003", ClassKey: classKey, })) From c225269035ced77f0abeb9e76d8eee721a342749 Mon Sep 17 00:00:00 2001 From: MD Aleem <72057206+aleem1314@users.noreply.github.com> Date: Thu, 12 May 2022 12:43:39 +0530 Subject: [PATCH 11/12] Update x/ecocredit/core/msg_create_project_test.go Co-authored-by: Tyler <48813565+technicallyty@users.noreply.github.com> --- x/ecocredit/core/msg_create_project_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/ecocredit/core/msg_create_project_test.go b/x/ecocredit/core/msg_create_project_test.go index 43b7622013..88a1566f85 100644 --- a/x/ecocredit/core/msg_create_project_test.go +++ b/x/ecocredit/core/msg_create_project_test.go @@ -75,7 +75,7 @@ func TestMsgCreateProject(t *testing.T) { ClassId: "A01", Metadata: "metadata", Jurisdiction: "AB-CDE FG1 345", - ReferenceId: strings.Repeat("x", 33), + ReferenceId: strings.Repeat("x", MaxReferenceIdLength+1), }, true, }, From 0625cc1685dee4db25c7d6b4d872654a85efec16 Mon Sep 17 00:00:00 2001 From: aleem1314 Date: Thu, 12 May 2022 12:50:06 +0530 Subject: [PATCH 12/12] chore: review changes --- x/ecocredit/server/core/create_project.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/x/ecocredit/server/core/create_project.go b/x/ecocredit/server/core/create_project.go index 352233abdb..5c7260cf3e 100644 --- a/x/ecocredit/server/core/create_project.go +++ b/x/ecocredit/server/core/create_project.go @@ -35,19 +35,14 @@ func (k Keeper) CreateProject(ctx context.Context, req *core.MsgCreateProject) ( return nil, err } - project := &api.Project{ + if err = k.stateStore.ProjectTable().Insert(ctx, &api.Project{ Id: projectID, Admin: adminAddress, ClassKey: classInfo.Key, Jurisdiction: req.Jurisdiction, Metadata: req.Metadata, - } - - if req.ReferenceId != "" { - project.ReferenceId = req.ReferenceId - } - - if err = k.stateStore.ProjectTable().Insert(ctx, project); err != nil { + ReferenceId: req.ReferenceId, + }); err != nil { return nil, err }