diff --git a/Makefile b/Makefile index fe63f2a8..b2fd4ee7 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ build: gofumpt_cmd=mvdan.cc/gofumpt golangci_lint_cmd=github.com/golangci/golangci-lint/cmd/golangci-lint -FILES := $(shell find $(shell go list -f '{{.Dir}}' ./...) -name "*.go" -a -not -name "*.pb.go" -a -not -name "*.pb.gw.go" | sed "s|$(shell pwd)/||g") +FILES := $(shell find $(shell go list -f '{{.Dir}}' ./...) -name "*.go" -a -not -name "*.pb.go" -a -not -name "*.pb.gw.go" -a -not -name "*.pulsar.go" | sed "s|$(shell pwd)/||g") license: @go-license --config .github/license.yml $(FILES) diff --git a/api/v1/query.pulsar.go b/api/v1/query.pulsar.go index 3b830012..46748c81 100644 --- a/api/v1/query.pulsar.go +++ b/api/v1/query.pulsar.go @@ -18,6 +18,782 @@ import ( sync "sync" ) +var ( + md_QueryAuthority protoreflect.MessageDescriptor +) + +func init() { + file_florin_v1_query_proto_init() + md_QueryAuthority = File_florin_v1_query_proto.Messages().ByName("QueryAuthority") +} + +var _ protoreflect.Message = (*fastReflection_QueryAuthority)(nil) + +type fastReflection_QueryAuthority QueryAuthority + +func (x *QueryAuthority) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryAuthority)(x) +} + +func (x *QueryAuthority) slowProtoReflect() protoreflect.Message { + mi := &file_florin_v1_query_proto_msgTypes[0] + 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_QueryAuthority_messageType fastReflection_QueryAuthority_messageType +var _ protoreflect.MessageType = fastReflection_QueryAuthority_messageType{} + +type fastReflection_QueryAuthority_messageType struct{} + +func (x fastReflection_QueryAuthority_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryAuthority)(nil) +} +func (x fastReflection_QueryAuthority_messageType) New() protoreflect.Message { + return new(fastReflection_QueryAuthority) +} +func (x fastReflection_QueryAuthority_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAuthority +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryAuthority) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAuthority +} + +// 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_QueryAuthority) Type() protoreflect.MessageType { + return _fastReflection_QueryAuthority_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryAuthority) New() protoreflect.Message { + return new(fastReflection_QueryAuthority) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryAuthority) Interface() protoreflect.ProtoMessage { + return (*QueryAuthority)(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_QueryAuthority) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// 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_QueryAuthority) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthority")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthority 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_QueryAuthority) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthority")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthority 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_QueryAuthority) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthority")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthority 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_QueryAuthority) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthority")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthority 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_QueryAuthority) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthority")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthority 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_QueryAuthority) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthority")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthority 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_QueryAuthority) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in florin.v1.QueryAuthority", 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_QueryAuthority) 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_QueryAuthority) 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_QueryAuthority) 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_QueryAuthority) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryAuthority) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = 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().(*QueryAuthority) + 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 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().(*QueryAuthority) + 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: QueryAuthority: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryAuthority: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + 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_QueryAuthorityResponse protoreflect.MessageDescriptor + fd_QueryAuthorityResponse_authority protoreflect.FieldDescriptor +) + +func init() { + file_florin_v1_query_proto_init() + md_QueryAuthorityResponse = File_florin_v1_query_proto.Messages().ByName("QueryAuthorityResponse") + fd_QueryAuthorityResponse_authority = md_QueryAuthorityResponse.Fields().ByName("authority") +} + +var _ protoreflect.Message = (*fastReflection_QueryAuthorityResponse)(nil) + +type fastReflection_QueryAuthorityResponse QueryAuthorityResponse + +func (x *QueryAuthorityResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryAuthorityResponse)(x) +} + +func (x *QueryAuthorityResponse) slowProtoReflect() protoreflect.Message { + mi := &file_florin_v1_query_proto_msgTypes[1] + 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_QueryAuthorityResponse_messageType fastReflection_QueryAuthorityResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryAuthorityResponse_messageType{} + +type fastReflection_QueryAuthorityResponse_messageType struct{} + +func (x fastReflection_QueryAuthorityResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryAuthorityResponse)(nil) +} +func (x fastReflection_QueryAuthorityResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryAuthorityResponse) +} +func (x fastReflection_QueryAuthorityResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAuthorityResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryAuthorityResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAuthorityResponse +} + +// 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_QueryAuthorityResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryAuthorityResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryAuthorityResponse) New() protoreflect.Message { + return new(fastReflection_QueryAuthorityResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryAuthorityResponse) Interface() protoreflect.ProtoMessage { + return (*QueryAuthorityResponse)(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_QueryAuthorityResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_QueryAuthorityResponse_authority, 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_QueryAuthorityResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "florin.v1.QueryAuthorityResponse.authority": + return x.Authority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthorityResponse")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthorityResponse 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_QueryAuthorityResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "florin.v1.QueryAuthorityResponse.authority": + x.Authority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthorityResponse")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthorityResponse 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_QueryAuthorityResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "florin.v1.QueryAuthorityResponse.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthorityResponse")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthorityResponse 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_QueryAuthorityResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "florin.v1.QueryAuthorityResponse.authority": + x.Authority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthorityResponse")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthorityResponse 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_QueryAuthorityResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "florin.v1.QueryAuthorityResponse.authority": + panic(fmt.Errorf("field authority of message florin.v1.QueryAuthorityResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthorityResponse")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthorityResponse 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_QueryAuthorityResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "florin.v1.QueryAuthorityResponse.authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: florin.v1.QueryAuthorityResponse")) + } + panic(fmt.Errorf("message florin.v1.QueryAuthorityResponse 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_QueryAuthorityResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in florin.v1.QueryAuthorityResponse", 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_QueryAuthorityResponse) 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_QueryAuthorityResponse) 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_QueryAuthorityResponse) 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_QueryAuthorityResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryAuthorityResponse) + 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.Authority) + if l > 0 { + 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().(*QueryAuthorityResponse) + 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 len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + 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().(*QueryAuthorityResponse) + 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: QueryAuthorityResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryAuthorityResponse: 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 Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + 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_QueryAllowedDenoms protoreflect.MessageDescriptor ) @@ -36,7 +812,7 @@ func (x *QueryAllowedDenoms) ProtoReflect() protoreflect.Message { } func (x *QueryAllowedDenoms) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[0] + mi := &file_florin_v1_query_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -440,7 +1216,7 @@ func (x *QueryAllowedDenomsResponse) ProtoReflect() protoreflect.Message { } func (x *QueryAllowedDenomsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[1] + mi := &file_florin_v1_query_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -872,7 +1648,7 @@ func (x *QueryOwners) ProtoReflect() protoreflect.Message { } func (x *QueryOwners) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[2] + mi := &file_florin_v1_query_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1396,7 +2172,7 @@ func (x *QueryOwnersResponse) ProtoReflect() protoreflect.Message { } func (x *QueryOwnersResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[3] + mi := &file_florin_v1_query_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2194,7 +2970,7 @@ func (x *QueryOwner) ProtoReflect() protoreflect.Message { } func (x *QueryOwner) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[4] + mi := &file_florin_v1_query_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2616,7 +3392,7 @@ func (x *QueryOwnerResponse) ProtoReflect() protoreflect.Message { } func (x *QueryOwnerResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[5] + mi := &file_florin_v1_query_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3096,7 +3872,7 @@ func (x *QuerySystems) ProtoReflect() protoreflect.Message { } func (x *QuerySystems) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[6] + mi := &file_florin_v1_query_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3505,7 +4281,7 @@ func (x *QuerySystemsResponse) ProtoReflect() protoreflect.Message { } func (x *QuerySystemsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[7] + mi := &file_florin_v1_query_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3948,7 +4724,7 @@ func (x *QuerySystemsByDenom) ProtoReflect() protoreflect.Message { } func (x *QuerySystemsByDenom) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[8] + mi := &file_florin_v1_query_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4414,7 +5190,7 @@ func (x *QuerySystemsByDenomResponse) ProtoReflect() protoreflect.Message { } func (x *QuerySystemsByDenomResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[9] + mi := &file_florin_v1_query_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4846,7 +5622,7 @@ func (x *QueryAdmins) ProtoReflect() protoreflect.Message { } func (x *QueryAdmins) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[10] + mi := &file_florin_v1_query_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5255,7 +6031,7 @@ func (x *QueryAdminsResponse) ProtoReflect() protoreflect.Message { } func (x *QueryAdminsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[11] + mi := &file_florin_v1_query_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5698,7 +6474,7 @@ func (x *QueryAdminsByDenom) ProtoReflect() protoreflect.Message { } func (x *QueryAdminsByDenom) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[12] + mi := &file_florin_v1_query_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6164,7 +6940,7 @@ func (x *QueryAdminsByDenomResponse) ProtoReflect() protoreflect.Message { } func (x *QueryAdminsByDenomResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[13] + mi := &file_florin_v1_query_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6596,7 +7372,7 @@ func (x *QueryMaxMintAllowances) ProtoReflect() protoreflect.Message { } func (x *QueryMaxMintAllowances) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[14] + mi := &file_florin_v1_query_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7036,7 +7812,7 @@ func (x *QueryMaxMintAllowancesResponse) ProtoReflect() protoreflect.Message { } func (x *QueryMaxMintAllowancesResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[15] + mi := &file_florin_v1_query_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7614,7 +8390,7 @@ func (x *QueryMaxMintAllowance) ProtoReflect() protoreflect.Message { } func (x *QueryMaxMintAllowance) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[16] + mi := &file_florin_v1_query_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8034,7 +8810,7 @@ func (x *QueryMaxMintAllowanceResponse) ProtoReflect() protoreflect.Message { } func (x *QueryMaxMintAllowanceResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[17] + mi := &file_florin_v1_query_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8454,7 +9230,7 @@ func (x *QueryMintAllowances) ProtoReflect() protoreflect.Message { } func (x *QueryMintAllowances) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[18] + mi := &file_florin_v1_query_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8956,7 +9732,7 @@ func (x *QueryMintAllowancesResponse) ProtoReflect() protoreflect.Message { } func (x *QueryMintAllowancesResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[19] + mi := &file_florin_v1_query_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9536,7 +10312,7 @@ func (x *QueryMintAllowance) ProtoReflect() protoreflect.Message { } func (x *QueryMintAllowance) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[20] + mi := &file_florin_v1_query_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10018,7 +10794,7 @@ func (x *QueryMintAllowanceResponse) ProtoReflect() protoreflect.Message { } func (x *QueryMintAllowanceResponse) slowProtoReflect() protoreflect.Message { - mi := &file_florin_v1_query_proto_msgTypes[21] + mi := &file_florin_v1_query_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10431,6 +11207,67 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type QueryAuthority struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryAuthority) Reset() { + *x = QueryAuthority{} + if protoimpl.UnsafeEnabled { + mi := &file_florin_v1_query_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryAuthority) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryAuthority) ProtoMessage() {} + +// Deprecated: Use QueryAuthority.ProtoReflect.Descriptor instead. +func (*QueryAuthority) Descriptor() ([]byte, []int) { + return file_florin_v1_query_proto_rawDescGZIP(), []int{0} +} + +type QueryAuthorityResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *QueryAuthorityResponse) Reset() { + *x = QueryAuthorityResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_florin_v1_query_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryAuthorityResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryAuthorityResponse) ProtoMessage() {} + +// Deprecated: Use QueryAuthorityResponse.ProtoReflect.Descriptor instead. +func (*QueryAuthorityResponse) Descriptor() ([]byte, []int) { + return file_florin_v1_query_proto_rawDescGZIP(), []int{1} +} + +func (x *QueryAuthorityResponse) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + type QueryAllowedDenoms struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -10440,7 +11277,7 @@ type QueryAllowedDenoms struct { func (x *QueryAllowedDenoms) Reset() { *x = QueryAllowedDenoms{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[0] + mi := &file_florin_v1_query_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10454,7 +11291,7 @@ func (*QueryAllowedDenoms) ProtoMessage() {} // Deprecated: Use QueryAllowedDenoms.ProtoReflect.Descriptor instead. func (*QueryAllowedDenoms) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{0} + return file_florin_v1_query_proto_rawDescGZIP(), []int{2} } type QueryAllowedDenomsResponse struct { @@ -10468,7 +11305,7 @@ type QueryAllowedDenomsResponse struct { func (x *QueryAllowedDenomsResponse) Reset() { *x = QueryAllowedDenomsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[1] + mi := &file_florin_v1_query_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10482,7 +11319,7 @@ func (*QueryAllowedDenomsResponse) ProtoMessage() {} // Deprecated: Use QueryAllowedDenomsResponse.ProtoReflect.Descriptor instead. func (*QueryAllowedDenomsResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{1} + return file_florin_v1_query_proto_rawDescGZIP(), []int{3} } func (x *QueryAllowedDenomsResponse) GetAllowedDenoms() []string { @@ -10501,7 +11338,7 @@ type QueryOwners struct { func (x *QueryOwners) Reset() { *x = QueryOwners{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[2] + mi := &file_florin_v1_query_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10515,7 +11352,7 @@ func (*QueryOwners) ProtoMessage() {} // Deprecated: Use QueryOwners.ProtoReflect.Descriptor instead. func (*QueryOwners) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{2} + return file_florin_v1_query_proto_rawDescGZIP(), []int{4} } type QueryOwnersResponse struct { @@ -10530,7 +11367,7 @@ type QueryOwnersResponse struct { func (x *QueryOwnersResponse) Reset() { *x = QueryOwnersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[3] + mi := &file_florin_v1_query_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10544,7 +11381,7 @@ func (*QueryOwnersResponse) ProtoMessage() {} // Deprecated: Use QueryOwnersResponse.ProtoReflect.Descriptor instead. func (*QueryOwnersResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{3} + return file_florin_v1_query_proto_rawDescGZIP(), []int{5} } func (x *QueryOwnersResponse) GetOwners() map[string]string { @@ -10572,7 +11409,7 @@ type QueryOwner struct { func (x *QueryOwner) Reset() { *x = QueryOwner{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[4] + mi := &file_florin_v1_query_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10586,7 +11423,7 @@ func (*QueryOwner) ProtoMessage() {} // Deprecated: Use QueryOwner.ProtoReflect.Descriptor instead. func (*QueryOwner) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{4} + return file_florin_v1_query_proto_rawDescGZIP(), []int{6} } func (x *QueryOwner) GetDenom() string { @@ -10608,7 +11445,7 @@ type QueryOwnerResponse struct { func (x *QueryOwnerResponse) Reset() { *x = QueryOwnerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[5] + mi := &file_florin_v1_query_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10622,7 +11459,7 @@ func (*QueryOwnerResponse) ProtoMessage() {} // Deprecated: Use QueryOwnerResponse.ProtoReflect.Descriptor instead. func (*QueryOwnerResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{5} + return file_florin_v1_query_proto_rawDescGZIP(), []int{7} } func (x *QueryOwnerResponse) GetOwner() string { @@ -10648,7 +11485,7 @@ type QuerySystems struct { func (x *QuerySystems) Reset() { *x = QuerySystems{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[6] + mi := &file_florin_v1_query_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10662,7 +11499,7 @@ func (*QuerySystems) ProtoMessage() {} // Deprecated: Use QuerySystems.ProtoReflect.Descriptor instead. func (*QuerySystems) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{6} + return file_florin_v1_query_proto_rawDescGZIP(), []int{8} } type QuerySystemsResponse struct { @@ -10676,7 +11513,7 @@ type QuerySystemsResponse struct { func (x *QuerySystemsResponse) Reset() { *x = QuerySystemsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[7] + mi := &file_florin_v1_query_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10690,7 +11527,7 @@ func (*QuerySystemsResponse) ProtoMessage() {} // Deprecated: Use QuerySystemsResponse.ProtoReflect.Descriptor instead. func (*QuerySystemsResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{7} + return file_florin_v1_query_proto_rawDescGZIP(), []int{9} } func (x *QuerySystemsResponse) GetSystems() []*Account { @@ -10711,7 +11548,7 @@ type QuerySystemsByDenom struct { func (x *QuerySystemsByDenom) Reset() { *x = QuerySystemsByDenom{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[8] + mi := &file_florin_v1_query_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10725,7 +11562,7 @@ func (*QuerySystemsByDenom) ProtoMessage() {} // Deprecated: Use QuerySystemsByDenom.ProtoReflect.Descriptor instead. func (*QuerySystemsByDenom) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{8} + return file_florin_v1_query_proto_rawDescGZIP(), []int{10} } func (x *QuerySystemsByDenom) GetDenom() string { @@ -10746,7 +11583,7 @@ type QuerySystemsByDenomResponse struct { func (x *QuerySystemsByDenomResponse) Reset() { *x = QuerySystemsByDenomResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[9] + mi := &file_florin_v1_query_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10760,7 +11597,7 @@ func (*QuerySystemsByDenomResponse) ProtoMessage() {} // Deprecated: Use QuerySystemsByDenomResponse.ProtoReflect.Descriptor instead. func (*QuerySystemsByDenomResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{9} + return file_florin_v1_query_proto_rawDescGZIP(), []int{11} } func (x *QuerySystemsByDenomResponse) GetSystems() []string { @@ -10779,7 +11616,7 @@ type QueryAdmins struct { func (x *QueryAdmins) Reset() { *x = QueryAdmins{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[10] + mi := &file_florin_v1_query_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10793,7 +11630,7 @@ func (*QueryAdmins) ProtoMessage() {} // Deprecated: Use QueryAdmins.ProtoReflect.Descriptor instead. func (*QueryAdmins) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{10} + return file_florin_v1_query_proto_rawDescGZIP(), []int{12} } type QueryAdminsResponse struct { @@ -10807,7 +11644,7 @@ type QueryAdminsResponse struct { func (x *QueryAdminsResponse) Reset() { *x = QueryAdminsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[11] + mi := &file_florin_v1_query_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10821,7 +11658,7 @@ func (*QueryAdminsResponse) ProtoMessage() {} // Deprecated: Use QueryAdminsResponse.ProtoReflect.Descriptor instead. func (*QueryAdminsResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{11} + return file_florin_v1_query_proto_rawDescGZIP(), []int{13} } func (x *QueryAdminsResponse) GetAdmins() []*Account { @@ -10842,7 +11679,7 @@ type QueryAdminsByDenom struct { func (x *QueryAdminsByDenom) Reset() { *x = QueryAdminsByDenom{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[12] + mi := &file_florin_v1_query_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10856,7 +11693,7 @@ func (*QueryAdminsByDenom) ProtoMessage() {} // Deprecated: Use QueryAdminsByDenom.ProtoReflect.Descriptor instead. func (*QueryAdminsByDenom) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{12} + return file_florin_v1_query_proto_rawDescGZIP(), []int{14} } func (x *QueryAdminsByDenom) GetDenom() string { @@ -10877,7 +11714,7 @@ type QueryAdminsByDenomResponse struct { func (x *QueryAdminsByDenomResponse) Reset() { *x = QueryAdminsByDenomResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[13] + mi := &file_florin_v1_query_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10891,7 +11728,7 @@ func (*QueryAdminsByDenomResponse) ProtoMessage() {} // Deprecated: Use QueryAdminsByDenomResponse.ProtoReflect.Descriptor instead. func (*QueryAdminsByDenomResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{13} + return file_florin_v1_query_proto_rawDescGZIP(), []int{15} } func (x *QueryAdminsByDenomResponse) GetAdmins() []string { @@ -10910,7 +11747,7 @@ type QueryMaxMintAllowances struct { func (x *QueryMaxMintAllowances) Reset() { *x = QueryMaxMintAllowances{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[14] + mi := &file_florin_v1_query_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10924,7 +11761,7 @@ func (*QueryMaxMintAllowances) ProtoMessage() {} // Deprecated: Use QueryMaxMintAllowances.ProtoReflect.Descriptor instead. func (*QueryMaxMintAllowances) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{14} + return file_florin_v1_query_proto_rawDescGZIP(), []int{16} } type QueryMaxMintAllowancesResponse struct { @@ -10938,7 +11775,7 @@ type QueryMaxMintAllowancesResponse struct { func (x *QueryMaxMintAllowancesResponse) Reset() { *x = QueryMaxMintAllowancesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[15] + mi := &file_florin_v1_query_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10952,7 +11789,7 @@ func (*QueryMaxMintAllowancesResponse) ProtoMessage() {} // Deprecated: Use QueryMaxMintAllowancesResponse.ProtoReflect.Descriptor instead. func (*QueryMaxMintAllowancesResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{15} + return file_florin_v1_query_proto_rawDescGZIP(), []int{17} } func (x *QueryMaxMintAllowancesResponse) GetMaxMintAllowances() map[string]string { @@ -10973,7 +11810,7 @@ type QueryMaxMintAllowance struct { func (x *QueryMaxMintAllowance) Reset() { *x = QueryMaxMintAllowance{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[16] + mi := &file_florin_v1_query_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10987,7 +11824,7 @@ func (*QueryMaxMintAllowance) ProtoMessage() {} // Deprecated: Use QueryMaxMintAllowance.ProtoReflect.Descriptor instead. func (*QueryMaxMintAllowance) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{16} + return file_florin_v1_query_proto_rawDescGZIP(), []int{18} } func (x *QueryMaxMintAllowance) GetDenom() string { @@ -11008,7 +11845,7 @@ type QueryMaxMintAllowanceResponse struct { func (x *QueryMaxMintAllowanceResponse) Reset() { *x = QueryMaxMintAllowanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[17] + mi := &file_florin_v1_query_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11022,7 +11859,7 @@ func (*QueryMaxMintAllowanceResponse) ProtoMessage() {} // Deprecated: Use QueryMaxMintAllowanceResponse.ProtoReflect.Descriptor instead. func (*QueryMaxMintAllowanceResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{17} + return file_florin_v1_query_proto_rawDescGZIP(), []int{19} } func (x *QueryMaxMintAllowanceResponse) GetMaxMintAllowance() string { @@ -11043,7 +11880,7 @@ type QueryMintAllowances struct { func (x *QueryMintAllowances) Reset() { *x = QueryMintAllowances{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[18] + mi := &file_florin_v1_query_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11057,7 +11894,7 @@ func (*QueryMintAllowances) ProtoMessage() {} // Deprecated: Use QueryMintAllowances.ProtoReflect.Descriptor instead. func (*QueryMintAllowances) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{18} + return file_florin_v1_query_proto_rawDescGZIP(), []int{20} } func (x *QueryMintAllowances) GetDenom() string { @@ -11078,7 +11915,7 @@ type QueryMintAllowancesResponse struct { func (x *QueryMintAllowancesResponse) Reset() { *x = QueryMintAllowancesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[19] + mi := &file_florin_v1_query_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11092,7 +11929,7 @@ func (*QueryMintAllowancesResponse) ProtoMessage() {} // Deprecated: Use QueryMintAllowancesResponse.ProtoReflect.Descriptor instead. func (*QueryMintAllowancesResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{19} + return file_florin_v1_query_proto_rawDescGZIP(), []int{21} } func (x *QueryMintAllowancesResponse) GetAllowances() map[string]string { @@ -11114,7 +11951,7 @@ type QueryMintAllowance struct { func (x *QueryMintAllowance) Reset() { *x = QueryMintAllowance{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[20] + mi := &file_florin_v1_query_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11128,7 +11965,7 @@ func (*QueryMintAllowance) ProtoMessage() {} // Deprecated: Use QueryMintAllowance.ProtoReflect.Descriptor instead. func (*QueryMintAllowance) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{20} + return file_florin_v1_query_proto_rawDescGZIP(), []int{22} } func (x *QueryMintAllowance) GetDenom() string { @@ -11156,7 +11993,7 @@ type QueryMintAllowanceResponse struct { func (x *QueryMintAllowanceResponse) Reset() { *x = QueryMintAllowanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_florin_v1_query_proto_msgTypes[21] + mi := &file_florin_v1_query_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11170,7 +12007,7 @@ func (*QueryMintAllowanceResponse) ProtoMessage() {} // Deprecated: Use QueryMintAllowanceResponse.ProtoReflect.Descriptor instead. func (*QueryMintAllowanceResponse) Descriptor() ([]byte, []int) { - return file_florin_v1_query_proto_rawDescGZIP(), []int{21} + return file_florin_v1_query_proto_rawDescGZIP(), []int{23} } func (x *QueryMintAllowanceResponse) GetAllowance() string { @@ -11194,212 +12031,224 @@ var file_florin_v1_query_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x36, 0x0a, 0x16, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x43, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x22, 0x43, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x22, 0xb0, 0x02, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, - 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x70, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x22, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x4f, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x0e, 0x0a, 0x0c, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4a, 0x0a, 0x14, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, - 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x2b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x37, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x0d, - 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x47, 0x0a, - 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x2a, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x22, 0x34, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, - 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, - 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, - 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x78, 0x4d, 0x69, - 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2d, 0x0a, - 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x7f, 0x0a, 0x1d, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, - 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, - 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x2b, 0x0a, - 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0xb4, 0x01, 0x0a, 0x1b, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0a, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, - 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, + 0x0d, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x22, 0xb0, + 0x02, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x40, 0x0a, 0x12, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x44, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6c, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, - 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, - 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x32, 0xdd, 0x0a, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x7d, 0x0a, 0x0d, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x12, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x1a, - 0x25, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x60, - 0x0a, 0x06, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, + 0x01, 0x22, 0x22, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x4f, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x0e, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4a, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, + 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x73, 0x22, 0x2b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, + 0x37, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x42, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x47, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, + 0x22, 0x2a, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x34, 0x0a, 0x1a, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, + 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xd8, 0x01, 0x0a, + 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x70, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x66, + 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, + 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, + 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x1a, 0x44, 0x0a, 0x16, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2d, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x7f, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, + 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x6d, + 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, + 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0xb4, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, + 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x44, 0x0a, 0x12, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x6c, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, + 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4e, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, + 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x32, + 0xcb, 0x0b, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x6c, 0x0a, 0x09, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x1a, 0x21, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x16, 0x12, 0x14, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x7d, 0x0a, 0x0d, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x1a, 0x25, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x66, 0x6c, + 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x60, 0x0a, 0x06, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, + 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x1a, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x1a, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x1e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, - 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, - 0x12, 0x64, 0x0a, 0x05, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x66, 0x6c, 0x6f, 0x72, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x25, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x66, - 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x2f, 0x7b, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x64, 0x0a, 0x07, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x73, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, - 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, - 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x81, 0x01, 0x0a, - 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, - 0x26, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, - 0x12, 0x60, 0x0a, 0x06, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x64, 0x0a, 0x05, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x12, 0x15, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x64, + 0x0a, 0x07, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x6f, 0x72, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, + 0x12, 0x12, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x73, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x26, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x27, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x66, + 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x60, 0x0a, 0x06, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x1a, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x73, 0x1a, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, - 0x11, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x73, 0x12, 0x7d, 0x0a, 0x0d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, - 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x1a, 0x25, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, - 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x11, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x29, 0x2e, 0x66, 0x6c, 0x6f, - 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, - 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, - 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x28, 0x2e, 0x66, 0x6c, 0x6f, 0x72, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x7d, 0x0a, 0x0d, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1d, 0x2e, 0x66, 0x6c, + 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x25, 0x2e, 0x66, 0x6c, 0x6f, + 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x73, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x26, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, + 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x11, 0x4d, 0x61, + 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x21, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x1a, 0x29, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x66, 0x6c, 0x6f, + 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x4d, + 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x20, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x1a, 0x28, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, + 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, + 0x89, 0x01, 0x0a, 0x0e, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x1a, 0x26, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x0d, + 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x2e, + 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, + 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x25, 0x2e, 0x66, + 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x32, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, - 0x12, 0x25, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x78, - 0x5f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x2f, - 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x89, 0x01, 0x0a, 0x0e, 0x4d, 0x69, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, - 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x26, 0x2e, 0x66, 0x6c, 0x6f, - 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2f, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, - 0x22, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x6e, 0x74, - 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x0d, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x25, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, - 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x7b, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x42, 0x9c, 0x01, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, - 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x72, 0x69, 0x75, 0x6d, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x2d, 0x6e, 0x6f, 0x62, 0x6c, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, - 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x46, 0x58, 0x58, 0xaa, 0x02, 0x09, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x09, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x15, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0a, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x65, 0x22, 0x38, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, + 0x12, 0x2b, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x69, 0x6e, + 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x7d, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x42, 0x9c, 0x01, + 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, + 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x6f, 0x6e, 0x65, 0x72, 0x69, + 0x75, 0x6d, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2d, 0x6e, 0x6f, 0x62, 0x6c, 0x65, 0x2f, + 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2f, 0x76, 0x31, + 0x3b, 0x66, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x46, 0x58, 0x58, 0xaa, + 0x02, 0x09, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x09, 0x46, 0x6c, + 0x6f, 0x72, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x15, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x0a, 0x46, 0x6c, 0x6f, 0x72, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -11414,67 +12263,71 @@ func file_florin_v1_query_proto_rawDescGZIP() []byte { return file_florin_v1_query_proto_rawDescData } -var file_florin_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_florin_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_florin_v1_query_proto_goTypes = []interface{}{ - (*QueryAllowedDenoms)(nil), // 0: florin.v1.QueryAllowedDenoms - (*QueryAllowedDenomsResponse)(nil), // 1: florin.v1.QueryAllowedDenomsResponse - (*QueryOwners)(nil), // 2: florin.v1.QueryOwners - (*QueryOwnersResponse)(nil), // 3: florin.v1.QueryOwnersResponse - (*QueryOwner)(nil), // 4: florin.v1.QueryOwner - (*QueryOwnerResponse)(nil), // 5: florin.v1.QueryOwnerResponse - (*QuerySystems)(nil), // 6: florin.v1.QuerySystems - (*QuerySystemsResponse)(nil), // 7: florin.v1.QuerySystemsResponse - (*QuerySystemsByDenom)(nil), // 8: florin.v1.QuerySystemsByDenom - (*QuerySystemsByDenomResponse)(nil), // 9: florin.v1.QuerySystemsByDenomResponse - (*QueryAdmins)(nil), // 10: florin.v1.QueryAdmins - (*QueryAdminsResponse)(nil), // 11: florin.v1.QueryAdminsResponse - (*QueryAdminsByDenom)(nil), // 12: florin.v1.QueryAdminsByDenom - (*QueryAdminsByDenomResponse)(nil), // 13: florin.v1.QueryAdminsByDenomResponse - (*QueryMaxMintAllowances)(nil), // 14: florin.v1.QueryMaxMintAllowances - (*QueryMaxMintAllowancesResponse)(nil), // 15: florin.v1.QueryMaxMintAllowancesResponse - (*QueryMaxMintAllowance)(nil), // 16: florin.v1.QueryMaxMintAllowance - (*QueryMaxMintAllowanceResponse)(nil), // 17: florin.v1.QueryMaxMintAllowanceResponse - (*QueryMintAllowances)(nil), // 18: florin.v1.QueryMintAllowances - (*QueryMintAllowancesResponse)(nil), // 19: florin.v1.QueryMintAllowancesResponse - (*QueryMintAllowance)(nil), // 20: florin.v1.QueryMintAllowance - (*QueryMintAllowanceResponse)(nil), // 21: florin.v1.QueryMintAllowanceResponse - nil, // 22: florin.v1.QueryOwnersResponse.OwnersEntry - nil, // 23: florin.v1.QueryOwnersResponse.PendingOwnersEntry - nil, // 24: florin.v1.QueryMaxMintAllowancesResponse.MaxMintAllowancesEntry - nil, // 25: florin.v1.QueryMintAllowancesResponse.AllowancesEntry - (*Account)(nil), // 26: florin.v1.Account + (*QueryAuthority)(nil), // 0: florin.v1.QueryAuthority + (*QueryAuthorityResponse)(nil), // 1: florin.v1.QueryAuthorityResponse + (*QueryAllowedDenoms)(nil), // 2: florin.v1.QueryAllowedDenoms + (*QueryAllowedDenomsResponse)(nil), // 3: florin.v1.QueryAllowedDenomsResponse + (*QueryOwners)(nil), // 4: florin.v1.QueryOwners + (*QueryOwnersResponse)(nil), // 5: florin.v1.QueryOwnersResponse + (*QueryOwner)(nil), // 6: florin.v1.QueryOwner + (*QueryOwnerResponse)(nil), // 7: florin.v1.QueryOwnerResponse + (*QuerySystems)(nil), // 8: florin.v1.QuerySystems + (*QuerySystemsResponse)(nil), // 9: florin.v1.QuerySystemsResponse + (*QuerySystemsByDenom)(nil), // 10: florin.v1.QuerySystemsByDenom + (*QuerySystemsByDenomResponse)(nil), // 11: florin.v1.QuerySystemsByDenomResponse + (*QueryAdmins)(nil), // 12: florin.v1.QueryAdmins + (*QueryAdminsResponse)(nil), // 13: florin.v1.QueryAdminsResponse + (*QueryAdminsByDenom)(nil), // 14: florin.v1.QueryAdminsByDenom + (*QueryAdminsByDenomResponse)(nil), // 15: florin.v1.QueryAdminsByDenomResponse + (*QueryMaxMintAllowances)(nil), // 16: florin.v1.QueryMaxMintAllowances + (*QueryMaxMintAllowancesResponse)(nil), // 17: florin.v1.QueryMaxMintAllowancesResponse + (*QueryMaxMintAllowance)(nil), // 18: florin.v1.QueryMaxMintAllowance + (*QueryMaxMintAllowanceResponse)(nil), // 19: florin.v1.QueryMaxMintAllowanceResponse + (*QueryMintAllowances)(nil), // 20: florin.v1.QueryMintAllowances + (*QueryMintAllowancesResponse)(nil), // 21: florin.v1.QueryMintAllowancesResponse + (*QueryMintAllowance)(nil), // 22: florin.v1.QueryMintAllowance + (*QueryMintAllowanceResponse)(nil), // 23: florin.v1.QueryMintAllowanceResponse + nil, // 24: florin.v1.QueryOwnersResponse.OwnersEntry + nil, // 25: florin.v1.QueryOwnersResponse.PendingOwnersEntry + nil, // 26: florin.v1.QueryMaxMintAllowancesResponse.MaxMintAllowancesEntry + nil, // 27: florin.v1.QueryMintAllowancesResponse.AllowancesEntry + (*Account)(nil), // 28: florin.v1.Account } var file_florin_v1_query_proto_depIdxs = []int32{ - 22, // 0: florin.v1.QueryOwnersResponse.owners:type_name -> florin.v1.QueryOwnersResponse.OwnersEntry - 23, // 1: florin.v1.QueryOwnersResponse.pending_owners:type_name -> florin.v1.QueryOwnersResponse.PendingOwnersEntry - 26, // 2: florin.v1.QuerySystemsResponse.systems:type_name -> florin.v1.Account - 26, // 3: florin.v1.QueryAdminsResponse.admins:type_name -> florin.v1.Account - 24, // 4: florin.v1.QueryMaxMintAllowancesResponse.max_mint_allowances:type_name -> florin.v1.QueryMaxMintAllowancesResponse.MaxMintAllowancesEntry - 25, // 5: florin.v1.QueryMintAllowancesResponse.allowances:type_name -> florin.v1.QueryMintAllowancesResponse.AllowancesEntry - 0, // 6: florin.v1.Query.AllowedDenoms:input_type -> florin.v1.QueryAllowedDenoms - 2, // 7: florin.v1.Query.Owners:input_type -> florin.v1.QueryOwners - 4, // 8: florin.v1.Query.Owner:input_type -> florin.v1.QueryOwner - 6, // 9: florin.v1.Query.Systems:input_type -> florin.v1.QuerySystems - 8, // 10: florin.v1.Query.SystemsByDenom:input_type -> florin.v1.QuerySystemsByDenom - 10, // 11: florin.v1.Query.Admins:input_type -> florin.v1.QueryAdmins - 12, // 12: florin.v1.Query.AdminsByDenom:input_type -> florin.v1.QueryAdminsByDenom - 14, // 13: florin.v1.Query.MaxMintAllowances:input_type -> florin.v1.QueryMaxMintAllowances - 16, // 14: florin.v1.Query.MaxMintAllowance:input_type -> florin.v1.QueryMaxMintAllowance - 18, // 15: florin.v1.Query.MintAllowances:input_type -> florin.v1.QueryMintAllowances - 20, // 16: florin.v1.Query.MintAllowance:input_type -> florin.v1.QueryMintAllowance - 1, // 17: florin.v1.Query.AllowedDenoms:output_type -> florin.v1.QueryAllowedDenomsResponse - 3, // 18: florin.v1.Query.Owners:output_type -> florin.v1.QueryOwnersResponse - 5, // 19: florin.v1.Query.Owner:output_type -> florin.v1.QueryOwnerResponse - 7, // 20: florin.v1.Query.Systems:output_type -> florin.v1.QuerySystemsResponse - 9, // 21: florin.v1.Query.SystemsByDenom:output_type -> florin.v1.QuerySystemsByDenomResponse - 11, // 22: florin.v1.Query.Admins:output_type -> florin.v1.QueryAdminsResponse - 13, // 23: florin.v1.Query.AdminsByDenom:output_type -> florin.v1.QueryAdminsByDenomResponse - 15, // 24: florin.v1.Query.MaxMintAllowances:output_type -> florin.v1.QueryMaxMintAllowancesResponse - 17, // 25: florin.v1.Query.MaxMintAllowance:output_type -> florin.v1.QueryMaxMintAllowanceResponse - 19, // 26: florin.v1.Query.MintAllowances:output_type -> florin.v1.QueryMintAllowancesResponse - 21, // 27: florin.v1.Query.MintAllowance:output_type -> florin.v1.QueryMintAllowanceResponse - 17, // [17:28] is the sub-list for method output_type - 6, // [6:17] is the sub-list for method input_type + 24, // 0: florin.v1.QueryOwnersResponse.owners:type_name -> florin.v1.QueryOwnersResponse.OwnersEntry + 25, // 1: florin.v1.QueryOwnersResponse.pending_owners:type_name -> florin.v1.QueryOwnersResponse.PendingOwnersEntry + 28, // 2: florin.v1.QuerySystemsResponse.systems:type_name -> florin.v1.Account + 28, // 3: florin.v1.QueryAdminsResponse.admins:type_name -> florin.v1.Account + 26, // 4: florin.v1.QueryMaxMintAllowancesResponse.max_mint_allowances:type_name -> florin.v1.QueryMaxMintAllowancesResponse.MaxMintAllowancesEntry + 27, // 5: florin.v1.QueryMintAllowancesResponse.allowances:type_name -> florin.v1.QueryMintAllowancesResponse.AllowancesEntry + 0, // 6: florin.v1.Query.Authority:input_type -> florin.v1.QueryAuthority + 2, // 7: florin.v1.Query.AllowedDenoms:input_type -> florin.v1.QueryAllowedDenoms + 4, // 8: florin.v1.Query.Owners:input_type -> florin.v1.QueryOwners + 6, // 9: florin.v1.Query.Owner:input_type -> florin.v1.QueryOwner + 8, // 10: florin.v1.Query.Systems:input_type -> florin.v1.QuerySystems + 10, // 11: florin.v1.Query.SystemsByDenom:input_type -> florin.v1.QuerySystemsByDenom + 12, // 12: florin.v1.Query.Admins:input_type -> florin.v1.QueryAdmins + 14, // 13: florin.v1.Query.AdminsByDenom:input_type -> florin.v1.QueryAdminsByDenom + 16, // 14: florin.v1.Query.MaxMintAllowances:input_type -> florin.v1.QueryMaxMintAllowances + 18, // 15: florin.v1.Query.MaxMintAllowance:input_type -> florin.v1.QueryMaxMintAllowance + 20, // 16: florin.v1.Query.MintAllowances:input_type -> florin.v1.QueryMintAllowances + 22, // 17: florin.v1.Query.MintAllowance:input_type -> florin.v1.QueryMintAllowance + 1, // 18: florin.v1.Query.Authority:output_type -> florin.v1.QueryAuthorityResponse + 3, // 19: florin.v1.Query.AllowedDenoms:output_type -> florin.v1.QueryAllowedDenomsResponse + 5, // 20: florin.v1.Query.Owners:output_type -> florin.v1.QueryOwnersResponse + 7, // 21: florin.v1.Query.Owner:output_type -> florin.v1.QueryOwnerResponse + 9, // 22: florin.v1.Query.Systems:output_type -> florin.v1.QuerySystemsResponse + 11, // 23: florin.v1.Query.SystemsByDenom:output_type -> florin.v1.QuerySystemsByDenomResponse + 13, // 24: florin.v1.Query.Admins:output_type -> florin.v1.QueryAdminsResponse + 15, // 25: florin.v1.Query.AdminsByDenom:output_type -> florin.v1.QueryAdminsByDenomResponse + 17, // 26: florin.v1.Query.MaxMintAllowances:output_type -> florin.v1.QueryMaxMintAllowancesResponse + 19, // 27: florin.v1.Query.MaxMintAllowance:output_type -> florin.v1.QueryMaxMintAllowanceResponse + 21, // 28: florin.v1.Query.MintAllowances:output_type -> florin.v1.QueryMintAllowancesResponse + 23, // 29: florin.v1.Query.MintAllowance:output_type -> florin.v1.QueryMintAllowanceResponse + 18, // [18:30] is the sub-list for method output_type + 6, // [6:18] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name @@ -11488,7 +12341,7 @@ func file_florin_v1_query_proto_init() { file_florin_v1_genesis_proto_init() if !protoimpl.UnsafeEnabled { file_florin_v1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryAllowedDenoms); i { + switch v := v.(*QueryAuthority); i { case 0: return &v.state case 1: @@ -11500,7 +12353,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryAllowedDenomsResponse); i { + switch v := v.(*QueryAuthorityResponse); i { case 0: return &v.state case 1: @@ -11512,7 +12365,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryOwners); i { + switch v := v.(*QueryAllowedDenoms); i { case 0: return &v.state case 1: @@ -11524,7 +12377,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryOwnersResponse); i { + switch v := v.(*QueryAllowedDenomsResponse); i { case 0: return &v.state case 1: @@ -11536,7 +12389,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryOwner); i { + switch v := v.(*QueryOwners); i { case 0: return &v.state case 1: @@ -11548,7 +12401,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryOwnerResponse); i { + switch v := v.(*QueryOwnersResponse); i { case 0: return &v.state case 1: @@ -11560,7 +12413,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuerySystems); i { + switch v := v.(*QueryOwner); i { case 0: return &v.state case 1: @@ -11572,7 +12425,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuerySystemsResponse); i { + switch v := v.(*QueryOwnerResponse); i { case 0: return &v.state case 1: @@ -11584,7 +12437,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuerySystemsByDenom); i { + switch v := v.(*QuerySystems); i { case 0: return &v.state case 1: @@ -11596,7 +12449,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuerySystemsByDenomResponse); i { + switch v := v.(*QuerySystemsResponse); i { case 0: return &v.state case 1: @@ -11608,7 +12461,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryAdmins); i { + switch v := v.(*QuerySystemsByDenom); i { case 0: return &v.state case 1: @@ -11620,7 +12473,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryAdminsResponse); i { + switch v := v.(*QuerySystemsByDenomResponse); i { case 0: return &v.state case 1: @@ -11632,7 +12485,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryAdminsByDenom); i { + switch v := v.(*QueryAdmins); i { case 0: return &v.state case 1: @@ -11644,7 +12497,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryAdminsByDenomResponse); i { + switch v := v.(*QueryAdminsResponse); i { case 0: return &v.state case 1: @@ -11656,7 +12509,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMaxMintAllowances); i { + switch v := v.(*QueryAdminsByDenom); i { case 0: return &v.state case 1: @@ -11668,7 +12521,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMaxMintAllowancesResponse); i { + switch v := v.(*QueryAdminsByDenomResponse); i { case 0: return &v.state case 1: @@ -11680,7 +12533,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMaxMintAllowance); i { + switch v := v.(*QueryMaxMintAllowances); i { case 0: return &v.state case 1: @@ -11692,7 +12545,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMaxMintAllowanceResponse); i { + switch v := v.(*QueryMaxMintAllowancesResponse); i { case 0: return &v.state case 1: @@ -11704,7 +12557,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMintAllowances); i { + switch v := v.(*QueryMaxMintAllowance); i { case 0: return &v.state case 1: @@ -11716,7 +12569,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMintAllowancesResponse); i { + switch v := v.(*QueryMaxMintAllowanceResponse); i { case 0: return &v.state case 1: @@ -11728,7 +12581,7 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryMintAllowance); i { + switch v := v.(*QueryMintAllowances); i { case 0: return &v.state case 1: @@ -11740,6 +12593,30 @@ func file_florin_v1_query_proto_init() { } } file_florin_v1_query_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryMintAllowancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_florin_v1_query_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryMintAllowance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_florin_v1_query_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryMintAllowanceResponse); i { case 0: return &v.state @@ -11758,7 +12635,7 @@ func file_florin_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_florin_v1_query_proto_rawDesc, NumEnums: 0, - NumMessages: 26, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/api/v1/query_grpc.pb.go b/api/v1/query_grpc.pb.go index a4dc6a3d..ecc975bb 100644 --- a/api/v1/query_grpc.pb.go +++ b/api/v1/query_grpc.pb.go @@ -19,6 +19,7 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( + Query_Authority_FullMethodName = "/florin.v1.Query/Authority" Query_AllowedDenoms_FullMethodName = "/florin.v1.Query/AllowedDenoms" Query_Owners_FullMethodName = "/florin.v1.Query/Owners" Query_Owner_FullMethodName = "/florin.v1.Query/Owner" @@ -36,6 +37,7 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type QueryClient interface { + Authority(ctx context.Context, in *QueryAuthority, opts ...grpc.CallOption) (*QueryAuthorityResponse, error) AllowedDenoms(ctx context.Context, in *QueryAllowedDenoms, opts ...grpc.CallOption) (*QueryAllowedDenomsResponse, error) Owners(ctx context.Context, in *QueryOwners, opts ...grpc.CallOption) (*QueryOwnersResponse, error) Owner(ctx context.Context, in *QueryOwner, opts ...grpc.CallOption) (*QueryOwnerResponse, error) @@ -57,6 +59,16 @@ func NewQueryClient(cc grpc.ClientConnInterface) QueryClient { return &queryClient{cc} } +func (c *queryClient) Authority(ctx context.Context, in *QueryAuthority, opts ...grpc.CallOption) (*QueryAuthorityResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(QueryAuthorityResponse) + err := c.cc.Invoke(ctx, Query_Authority_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) AllowedDenoms(ctx context.Context, in *QueryAllowedDenoms, opts ...grpc.CallOption) (*QueryAllowedDenomsResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(QueryAllowedDenomsResponse) @@ -171,6 +183,7 @@ func (c *queryClient) MintAllowance(ctx context.Context, in *QueryMintAllowance, // All implementations must embed UnimplementedQueryServer // for forward compatibility. type QueryServer interface { + Authority(context.Context, *QueryAuthority) (*QueryAuthorityResponse, error) AllowedDenoms(context.Context, *QueryAllowedDenoms) (*QueryAllowedDenomsResponse, error) Owners(context.Context, *QueryOwners) (*QueryOwnersResponse, error) Owner(context.Context, *QueryOwner) (*QueryOwnerResponse, error) @@ -192,6 +205,9 @@ type QueryServer interface { // pointer dereference when methods are called. type UnimplementedQueryServer struct{} +func (UnimplementedQueryServer) Authority(context.Context, *QueryAuthority) (*QueryAuthorityResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Authority not implemented") +} func (UnimplementedQueryServer) AllowedDenoms(context.Context, *QueryAllowedDenoms) (*QueryAllowedDenomsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AllowedDenoms not implemented") } @@ -246,6 +262,24 @@ func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) { s.RegisterService(&Query_ServiceDesc, srv) } +func _Query_Authority_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAuthority) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Authority(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_Authority_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Authority(ctx, req.(*QueryAuthority)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_AllowedDenoms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryAllowedDenoms) if err := dec(in); err != nil { @@ -451,6 +485,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{ ServiceName: "florin.v1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Authority", + Handler: _Query_Authority_Handler, + }, { MethodName: "AllowedDenoms", Handler: _Query_AllowedDenoms_Handler, diff --git a/go.mod b/go.mod index 4897e789..7ab66443 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( adr36.dev v0.0.0-20240916174542-e2c73055e6d4 cosmossdk.io/api v0.7.5 cosmossdk.io/core v0.11.1 + cosmossdk.io/depinject v1.0.0 cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.0 @@ -28,7 +29,6 @@ require ( 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/depinject v1.0.0 // indirect cosmossdk.io/log v1.4.0 // indirect cosmossdk.io/x/tx v0.13.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect diff --git a/local.sh b/local.sh index b78b67ab..f0ecb873 100644 --- a/local.sh +++ b/local.sh @@ -21,7 +21,7 @@ if ! [ -f .florin/data/priv_validator_state.json ]; then florind genesis add-genesis-account blacklist-pending-owner 10000000uusdc --home .florin --keyring-backend test BLACKLIST_ADMIN=$(florind keys add blacklist-admin --home .florin --keyring-backend test --output json | jq .address) florind genesis add-genesis-account blacklist-admin 10000000uusdc --home .florin --keyring-backend test - AUTHORITY=$(florind keys add authority --home .florin --keyring-backend test --output json | jq .address) + florind keys add authority --recover --home .florin --keyring-backend test <<< "market ready pilot lunch host cancel drive script remove brief lunch entry worth giant unknown grain romance gym tide perfect short because envelope sentence" &> /dev/null florind genesis add-genesis-account authority 1000000uusdc --home .florin --keyring-backend test OWNER=$(florind keys add owner --home .florin --keyring-backend test --output json | jq .address) florind genesis add-genesis-account owner 10000000uusdc --home .florin --keyring-backend test @@ -41,7 +41,6 @@ if ! [ -f .florin/data/priv_validator_state.json ]; then touch $TEMP && jq '.app_state.florin.blacklist_state.owner = '$BLACKLIST_OWNER'' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json touch $TEMP && jq '.app_state.florin.blacklist_state.admins = ['$BLACKLIST_ADMIN']' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json touch $TEMP && jq '.app_state.florin.blacklist_state.adversaries = ['$BOB']' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json - touch $TEMP && jq '.app_state.florin.authority = '$AUTHORITY'' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json touch $TEMP && jq '.app_state.florin.owners = { "ueure": '$OWNER' }' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json touch $TEMP && jq '.app_state.florin.systems = [{ "denom": "ueure", "address": '$SYSTEM'}]' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json touch $TEMP && jq '.app_state.florin.admins = [{ "denom": "ueure", "address": '$ADMIN'}]' .florin/config/genesis.json > $TEMP && mv $TEMP .florin/config/genesis.json diff --git a/proto/florin/v1/query.proto b/proto/florin/v1/query.proto index ea3cbfb0..9b552124 100644 --- a/proto/florin/v1/query.proto +++ b/proto/florin/v1/query.proto @@ -12,6 +12,10 @@ import "google/api/annotations.proto"; option go_package = "github.com/monerium/module-noble/v2/x/florin/types"; service Query { + rpc Authority(QueryAuthority) returns (QueryAuthorityResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/florin/v1/authority"; + } rpc AllowedDenoms(QueryAllowedDenoms) returns (QueryAllowedDenomsResponse) { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/florin/v1/allowed_denoms"; @@ -65,6 +69,12 @@ service Query { // +message QueryAuthority {} + +message QueryAuthorityResponse { + string authority = 1; +} + message QueryAllowedDenoms {} message QueryAllowedDenomsResponse { diff --git a/simapp/app.go b/simapp/app.go index 1736284e..114bf527 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -10,8 +10,6 @@ import ( "cosmossdk.io/depinject" "cosmossdk.io/log" storetypes "cosmossdk.io/store/types" - - _ "cosmossdk.io/api/cosmos/tx/config/v1" // import for side effects dbm "github.com/cosmos/cosmos-db" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" @@ -20,22 +18,23 @@ import ( "github.com/cosmos/cosmos-sdk/runtime" servertypes "github.com/cosmos/cosmos-sdk/server/types" "github.com/cosmos/cosmos-sdk/types/module" - _ "github.com/cosmos/cosmos-sdk/x/auth" // import for side effects + + _ "github.com/cosmos/cosmos-sdk/x/auth" + _ "github.com/cosmos/cosmos-sdk/x/auth/tx/config" + _ "github.com/cosmos/cosmos-sdk/x/bank" + _ "github.com/cosmos/cosmos-sdk/x/consensus" + _ "github.com/cosmos/cosmos-sdk/x/staking" + _ "github.com/monerium/module-noble/v2/x/florin" + + // Cosmos Modules authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" - _ "github.com/cosmos/cosmos-sdk/x/auth/tx/config" // import for side effects - _ "github.com/cosmos/cosmos-sdk/x/bank" // import for side effects bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - _ "github.com/cosmos/cosmos-sdk/x/consensus" // import for side effects consensuskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" - _ "github.com/cosmos/cosmos-sdk/x/distribution" // import for side effects "github.com/cosmos/cosmos-sdk/x/genutil" genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - _ "github.com/cosmos/cosmos-sdk/x/params" // import for side effects - _ "github.com/cosmos/cosmos-sdk/x/staking" // import for side effects stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - "github.com/monerium/module-noble/v2/x/florin" + // Custom Modules florinkeeper "github.com/monerium/module-noble/v2/x/florin/keeper" - florintypes "github.com/monerium/module-noble/v2/x/florin/types" ) var DefaultNodeHome string @@ -121,25 +120,14 @@ func NewSimApp( &app.BankKeeper, &app.ConsensusKeeper, &app.StakingKeeper, + // Custom Modules + &app.FlorinKeeper, ); err != nil { return nil, err } app.App = appBuilder.Build(db, traceStore, baseAppOptions...) - if err := app.RegisterStores(storetypes.NewKVStoreKey(florintypes.ModuleName)); err != nil { - return nil, err - } - app.FlorinKeeper = florinkeeper.NewKeeper( - runtime.NewKVStoreService(app.GetKey(florintypes.ModuleName)), - app.AccountKeeper, - nil, - ) - app.BankKeeper.AppendSendRestriction(app.FlorinKeeper.SendRestrictionFn) - if err := app.RegisterModules(florin.NewAppModule(app.FlorinKeeper)); err != nil { - return nil, err - } - if err := app.RegisterStreamingServices(appOpts, app.kvStoreKeys()); err != nil { return nil, err } diff --git a/simapp/app.yaml b/simapp/app.yaml index 91a2cbad..a4c08878 100644 --- a/simapp/app.yaml +++ b/simapp/app.yaml @@ -38,3 +38,10 @@ modules: - name: tx config: "@type": cosmos.tx.config.v1.Config + + - name: florin + config: + "@type": florin.module.v1.Module + # NOTE: This is a dummy account used for local testing. + # market ready pilot lunch host cancel drive script remove brief lunch entry worth giant unknown grain romance gym tide perfect short because envelope sentence + authority: noble1u8mhfyh8a753twmwnsl9ce77cfuuez47sahdnw diff --git a/simapp/go.mod b/simapp/go.mod index 1b93aa54..b8e6fa1c 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -3,7 +3,6 @@ module github.com/monerium/module-noble/v2/simapp go 1.22 require ( - cosmossdk.io/api v0.7.5 cosmossdk.io/client/v2 v2.0.0-beta.4 cosmossdk.io/core v0.11.1 cosmossdk.io/depinject v1.0.0 @@ -20,6 +19,7 @@ require ( require ( adr36.dev v0.0.0-20240916174542-e2c73055e6d4 // indirect + cosmossdk.io/api v0.7.5 // indirect cosmossdk.io/collections v0.4.0 // indirect cosmossdk.io/errors v1.0.1 // indirect cosmossdk.io/math v1.3.0 // indirect diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index af69365e..7819a506 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -6,7 +6,6 @@ import ( "cosmossdk.io/client/v2/autocli" clientv2keyring "cosmossdk.io/client/v2/autocli/keyring" "cosmossdk.io/core/address" - "cosmossdk.io/core/appmodule" "cosmossdk.io/depinject" "cosmossdk.io/log" cmtcfg "github.com/cometbft/cometbft/config" @@ -23,8 +22,6 @@ import ( txmodule "github.com/cosmos/cosmos-sdk/x/auth/tx/config" "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/monerium/module-noble/v2/simapp" - "github.com/monerium/module-noble/v2/x/florin" - florintypes "github.com/monerium/module-noble/v2/x/florin/types" "github.com/spf13/cobra" ) @@ -99,15 +96,6 @@ func NewRootCmd() *cobra.Command { }, } - modules := map[string]appmodule.AppModule{ - florintypes.ModuleName: florin.AppModule{}, - } - for name, mod := range modules { - moduleBasicManager[name] = module.CoreAppModuleBasicAdaptor(name, mod) - moduleBasicManager[name].RegisterInterfaces(clientCtx.InterfaceRegistry) - autoCliOpts.Modules[name] = mod - } - initRootCmd(rootCmd, clientCtx.TxConfig, moduleBasicManager) if err := autoCliOpts.EnhanceRootCommand(rootCmd); err != nil { diff --git a/utils/mocks/florin.go b/utils/mocks/florin.go index 7334ae21..7ef911be 100644 --- a/utils/mocks/florin.go +++ b/utils/mocks/florin.go @@ -38,7 +38,7 @@ func FlorinWithKeepers(account types.AccountKeeper, bank BankKeeper) (*keeper.Ke types.RegisterInterfaces(reg) _ = codec.NewProtoCodec(reg) - k := keeper.NewKeeper(runtime.NewKVStoreService(key), account, bank) + k := keeper.NewKeeper("authority", runtime.NewKVStoreService(key), account, bank) bank = bank.WithSendCoinsRestriction(k.SendRestrictionFn) k.SetBankKeeper(bank) diff --git a/x/florin/client/cli/query.go b/x/florin/client/cli/query.go index e2c6744f..ad8344b0 100644 --- a/x/florin/client/cli/query.go +++ b/x/florin/client/cli/query.go @@ -36,6 +36,7 @@ func GetQueryCmd() *cobra.Command { cmd.AddCommand(GetBlacklistQueryCmd()) + cmd.AddCommand(QueryAuthority()) cmd.AddCommand(QueryAllowedDenoms()) cmd.AddCommand(QueryOwners()) cmd.AddCommand(QuerySystems()) @@ -47,6 +48,29 @@ func GetQueryCmd() *cobra.Command { return cmd } +func QueryAuthority() *cobra.Command { + cmd := &cobra.Command{ + Use: "authority", + Short: "Query the authority address of this module", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) + + res, err := queryClient.Authority(context.Background(), &types.QueryAuthority{}) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} + func QueryAllowedDenoms() *cobra.Command { cmd := &cobra.Command{ Use: "allowed-denoms", diff --git a/x/florin/genesis.go b/x/florin/genesis.go index ed913bcb..5f932456 100644 --- a/x/florin/genesis.go +++ b/x/florin/genesis.go @@ -32,7 +32,6 @@ func InitGenesis(ctx sdk.Context, k *keeper.Keeper, genesis types.GenesisState) k.SetAdversary(ctx, adversary) } - k.SetAuthority(ctx, genesis.Authority) for _, denom := range genesis.AllowedDenoms { k.SetAllowedDenom(ctx, denom) } @@ -65,7 +64,6 @@ func ExportGenesis(ctx sdk.Context, k *keeper.Keeper) *types.GenesisState { Admins: k.GetBlacklistAdmins(ctx), Adversaries: k.GetAdversaries(ctx), }, - Authority: k.GetAuthority(ctx), AllowedDenoms: k.GetAllowedDenoms(ctx), Owners: k.GetOwners(ctx), PendingOwners: k.GetPendingOwners(ctx), diff --git a/x/florin/keeper/keeper.go b/x/florin/keeper/keeper.go index cb5470f5..4a932346 100644 --- a/x/florin/keeper/keeper.go +++ b/x/florin/keeper/keeper.go @@ -25,6 +25,7 @@ import ( ) type Keeper struct { + authority string storeService store.KVStoreService accountKeeper types.AccountKeeper @@ -32,11 +33,13 @@ type Keeper struct { } func NewKeeper( + authority string, storeService store.KVStoreService, accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, ) *Keeper { return &Keeper{ + authority: authority, storeService: storeService, accountKeeper: accountKeeper, diff --git a/x/florin/keeper/msg_server.go b/x/florin/keeper/msg_server.go index 7c33fa22..defb78db 100644 --- a/x/florin/keeper/msg_server.go +++ b/x/florin/keeper/msg_server.go @@ -100,12 +100,8 @@ func (k msgServer) AddSystemAccount(goCtx context.Context, msg *types.MsgAddSyst func (k msgServer) AllowDenom(goCtx context.Context, msg *types.MsgAllowDenom) (*types.MsgAllowDenomResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - authority := k.GetAuthority(ctx) - if authority == "" { - return nil, types.ErrNoAuthority - } - if msg.Signer != authority { - return nil, errors.Wrapf(types.ErrInvalidAuthority, "expected %s, got %s", authority, msg.Signer) + if msg.Signer != k.authority { + return nil, errors.Wrapf(types.ErrInvalidAuthority, "expected %s, got %s", k.authority, msg.Signer) } supply := k.bankKeeper.GetSupply(ctx, msg.Denom) diff --git a/x/florin/keeper/msg_server_test.go b/x/florin/keeper/msg_server_test.go index 605fa5bb..9a71f333 100644 --- a/x/florin/keeper/msg_server_test.go +++ b/x/florin/keeper/msg_server_test.go @@ -181,17 +181,8 @@ func TestAllowDenom(t *testing.T) { goCtx := sdk.WrapSDKContext(ctx) server := keeper.NewMsgServer(k) - // ACT: Attempt to allow denom with no authority set. - _, err := server.AllowDenom(goCtx, &types.MsgAllowDenom{}) - // ASSERT: The action should've failed due to no authority set. - require.ErrorIs(t, err, types.ErrNoAuthority) - - // ARRANGE: Set authority in state. - authority := utils.TestAccount() - k.SetAuthority(ctx, authority.Address) - // ACT: Attempt to allow denom with invalid signer. - _, err = server.AllowDenom(goCtx, &types.MsgAllowDenom{ + _, err := server.AllowDenom(goCtx, &types.MsgAllowDenom{ Signer: utils.TestAccount().Address, }) // ASSERT: The action should've failed due to invalid signer. @@ -199,7 +190,7 @@ func TestAllowDenom(t *testing.T) { // ACT: Attempt to allow denom already in use. _, err = server.AllowDenom(goCtx, &types.MsgAllowDenom{ - Signer: authority.Address, + Signer: "authority", Denom: "uusdc", }) // ASSERT: The action should've failed due to invalid denom. @@ -210,7 +201,7 @@ func TestAllowDenom(t *testing.T) { // ACT: Attempt to allow denom. _, err = server.AllowDenom(goCtx, &types.MsgAllowDenom{ - Signer: authority.Address, + Signer: "authority", Denom: "uusde", Owner: owner.Address, }) diff --git a/x/florin/keeper/query_server.go b/x/florin/keeper/query_server.go index 194e0ec3..0d4bc8a1 100644 --- a/x/florin/keeper/query_server.go +++ b/x/florin/keeper/query_server.go @@ -33,6 +33,14 @@ func NewQueryServer(keeper *Keeper) types.QueryServer { return &queryServer{Keeper: keeper} } +func (k queryServer) Authority(_ context.Context, req *types.QueryAuthority) (*types.QueryAuthorityResponse, error) { + if req == nil { + return nil, errors.ErrInvalidRequest + } + + return &types.QueryAuthorityResponse{Authority: k.authority}, nil +} + func (k queryServer) AllowedDenoms(goCtx context.Context, req *types.QueryAllowedDenoms) (*types.QueryAllowedDenomsResponse, error) { if req == nil { return nil, errors.ErrInvalidRequest diff --git a/x/florin/keeper/query_server_test.go b/x/florin/keeper/query_server_test.go index b1548b07..1118ee7a 100644 --- a/x/florin/keeper/query_server_test.go +++ b/x/florin/keeper/query_server_test.go @@ -26,6 +26,22 @@ import ( "github.com/stretchr/testify/require" ) +func TestAuthorityQuery(t *testing.T) { + k, ctx := mocks.FlorinKeeper() + server := keeper.NewQueryServer(k) + + // ACT: Attempt to query authority with invalid request. + _, err := server.Authority(ctx, nil) + // ASSERT: The query should've failed due to invalid request. + require.ErrorContains(t, err, errors.ErrInvalidRequest.Error()) + + // ACT: Attempt to query authority. + res, err := server.Authority(ctx, &types.QueryAuthority{}) + // ASSERT: The query should've succeeded. + require.NoError(t, err) + require.Equal(t, "authority", res.Authority) +} + func TestAllowedDenomsQuery(t *testing.T) { k, ctx := mocks.FlorinKeeper() goCtx := sdk.WrapSDKContext(ctx) diff --git a/x/florin/keeper/state.go b/x/florin/keeper/state.go index 3fde601f..bb4b0c20 100644 --- a/x/florin/keeper/state.go +++ b/x/florin/keeper/state.go @@ -24,18 +24,6 @@ import ( // -func (k *Keeper) GetAuthority(ctx sdk.Context) string { - store := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) - return string(store.Get(types.AuthorityKey)) -} - -func (k *Keeper) SetAuthority(ctx sdk.Context, authority string) { - store := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) - store.Set(types.AuthorityKey, []byte(authority)) -} - -// - func (k *Keeper) GetAllowedDenoms(ctx sdk.Context) (allowedDenoms []string) { adapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) store := prefix.NewStore(adapter, types.AllowedDenomPrefix) diff --git a/x/florin/module.go b/x/florin/module.go index fbabec7b..6652b1b9 100644 --- a/x/florin/module.go +++ b/x/florin/module.go @@ -20,12 +20,17 @@ import ( "fmt" "cosmossdk.io/core/appmodule" + "cosmossdk.io/core/store" + "cosmossdk.io/depinject" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/grpc-ecosystem/grpc-gateway/runtime" + modulev1 "github.com/monerium/module-noble/v2/api/module/v1" "github.com/monerium/module-noble/v2/x/florin/client/cli" "github.com/monerium/module-noble/v2/x/florin/keeper" "github.com/monerium/module-noble/v2/x/florin/types" @@ -136,3 +141,46 @@ func (AppModuleBasic) GetTxCmd() *cobra.Command { func (AppModuleBasic) GetQueryCmd() *cobra.Command { return cli.GetQueryCmd() } + +// + +func init() { + appmodule.Register(&modulev1.Module{}, + appmodule.Provide(ProvideModule), + ) +} + +type ModuleInputs struct { + depinject.In + + Config *modulev1.Module + StoreService store.KVStoreService + + AccountKeeper types.AccountKeeper + BankKeeper types.BankKeeper +} + +type ModuleOutputs struct { + depinject.Out + + Keeper *keeper.Keeper + Module appmodule.AppModule + Restriction banktypes.SendRestrictionFn +} + +func ProvideModule(in ModuleInputs) ModuleOutputs { + if in.Config.Authority == "" { + panic("authority for x/florin module must be set") + } + + authority := authtypes.NewModuleAddressOrBech32Address(in.Config.Authority) + k := keeper.NewKeeper( + authority.String(), + in.StoreService, + in.AccountKeeper, + in.BankKeeper, + ) + m := NewAppModule(k) + + return ModuleOutputs{Keeper: k, Module: m, Restriction: k.SendRestrictionFn} +} diff --git a/x/florin/types/genesis.go b/x/florin/types/genesis.go index d2491066..3d799743 100644 --- a/x/florin/types/genesis.go +++ b/x/florin/types/genesis.go @@ -38,12 +38,6 @@ func (gs *GenesisState) Validate() error { return err } - if gs.Authority != "" { - if _, err := sdk.AccAddressFromBech32(gs.Authority); err != nil { - return fmt.Errorf("invalid authority address (%s): %s", gs.Authority, err) - } - } - for denom, owner := range gs.Owners { if !slices.Contains(gs.AllowedDenoms, denom) { return fmt.Errorf("found an owner (%s) for a not allowed denom %s", owner, denom) diff --git a/x/florin/types/keys.go b/x/florin/types/keys.go index b2b0433b..04e62485 100644 --- a/x/florin/types/keys.go +++ b/x/florin/types/keys.go @@ -17,7 +17,6 @@ package types const ModuleName = "florin" var ( - AuthorityKey = []byte("authority") AllowedDenomPrefix = []byte("allowed_denom/") OwnerPrefix = []byte("owner/") PendingOwnerPrefix = []byte("pending_owner/") diff --git a/x/florin/types/query.pb.go b/x/florin/types/query.pb.go index d72a4ba2..b9aea989 100644 --- a/x/florin/types/query.pb.go +++ b/x/florin/types/query.pb.go @@ -33,6 +33,86 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type QueryAuthority struct { +} + +func (m *QueryAuthority) Reset() { *m = QueryAuthority{} } +func (m *QueryAuthority) String() string { return proto.CompactTextString(m) } +func (*QueryAuthority) ProtoMessage() {} +func (*QueryAuthority) Descriptor() ([]byte, []int) { + return fileDescriptor_f896e6ddcd63be16, []int{0} +} +func (m *QueryAuthority) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAuthority) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAuthority.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 *QueryAuthority) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAuthority.Merge(m, src) +} +func (m *QueryAuthority) XXX_Size() int { + return m.Size() +} +func (m *QueryAuthority) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAuthority.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAuthority proto.InternalMessageInfo + +type QueryAuthorityResponse struct { + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (m *QueryAuthorityResponse) Reset() { *m = QueryAuthorityResponse{} } +func (m *QueryAuthorityResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAuthorityResponse) ProtoMessage() {} +func (*QueryAuthorityResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_f896e6ddcd63be16, []int{1} +} +func (m *QueryAuthorityResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAuthorityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAuthorityResponse.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 *QueryAuthorityResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAuthorityResponse.Merge(m, src) +} +func (m *QueryAuthorityResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAuthorityResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAuthorityResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAuthorityResponse proto.InternalMessageInfo + +func (m *QueryAuthorityResponse) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + type QueryAllowedDenoms struct { } @@ -40,7 +120,7 @@ func (m *QueryAllowedDenoms) Reset() { *m = QueryAllowedDenoms{} } func (m *QueryAllowedDenoms) String() string { return proto.CompactTextString(m) } func (*QueryAllowedDenoms) ProtoMessage() {} func (*QueryAllowedDenoms) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{0} + return fileDescriptor_f896e6ddcd63be16, []int{2} } func (m *QueryAllowedDenoms) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -77,7 +157,7 @@ func (m *QueryAllowedDenomsResponse) Reset() { *m = QueryAllowedDenomsRe func (m *QueryAllowedDenomsResponse) String() string { return proto.CompactTextString(m) } func (*QueryAllowedDenomsResponse) ProtoMessage() {} func (*QueryAllowedDenomsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{1} + return fileDescriptor_f896e6ddcd63be16, []int{3} } func (m *QueryAllowedDenomsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -120,7 +200,7 @@ func (m *QueryOwners) Reset() { *m = QueryOwners{} } func (m *QueryOwners) String() string { return proto.CompactTextString(m) } func (*QueryOwners) ProtoMessage() {} func (*QueryOwners) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{2} + return fileDescriptor_f896e6ddcd63be16, []int{4} } func (m *QueryOwners) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -158,7 +238,7 @@ func (m *QueryOwnersResponse) Reset() { *m = QueryOwnersResponse{} } func (m *QueryOwnersResponse) String() string { return proto.CompactTextString(m) } func (*QueryOwnersResponse) ProtoMessage() {} func (*QueryOwnersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{3} + return fileDescriptor_f896e6ddcd63be16, []int{5} } func (m *QueryOwnersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -209,7 +289,7 @@ func (m *QueryOwner) Reset() { *m = QueryOwner{} } func (m *QueryOwner) String() string { return proto.CompactTextString(m) } func (*QueryOwner) ProtoMessage() {} func (*QueryOwner) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{4} + return fileDescriptor_f896e6ddcd63be16, []int{6} } func (m *QueryOwner) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -254,7 +334,7 @@ func (m *QueryOwnerResponse) Reset() { *m = QueryOwnerResponse{} } func (m *QueryOwnerResponse) String() string { return proto.CompactTextString(m) } func (*QueryOwnerResponse) ProtoMessage() {} func (*QueryOwnerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{5} + return fileDescriptor_f896e6ddcd63be16, []int{7} } func (m *QueryOwnerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -304,7 +384,7 @@ func (m *QuerySystems) Reset() { *m = QuerySystems{} } func (m *QuerySystems) String() string { return proto.CompactTextString(m) } func (*QuerySystems) ProtoMessage() {} func (*QuerySystems) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{6} + return fileDescriptor_f896e6ddcd63be16, []int{8} } func (m *QuerySystems) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -341,7 +421,7 @@ func (m *QuerySystemsResponse) Reset() { *m = QuerySystemsResponse{} } func (m *QuerySystemsResponse) String() string { return proto.CompactTextString(m) } func (*QuerySystemsResponse) ProtoMessage() {} func (*QuerySystemsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{7} + return fileDescriptor_f896e6ddcd63be16, []int{9} } func (m *QuerySystemsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -385,7 +465,7 @@ func (m *QuerySystemsByDenom) Reset() { *m = QuerySystemsByDenom{} } func (m *QuerySystemsByDenom) String() string { return proto.CompactTextString(m) } func (*QuerySystemsByDenom) ProtoMessage() {} func (*QuerySystemsByDenom) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{8} + return fileDescriptor_f896e6ddcd63be16, []int{10} } func (m *QuerySystemsByDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -429,7 +509,7 @@ func (m *QuerySystemsByDenomResponse) Reset() { *m = QuerySystemsByDenom func (m *QuerySystemsByDenomResponse) String() string { return proto.CompactTextString(m) } func (*QuerySystemsByDenomResponse) ProtoMessage() {} func (*QuerySystemsByDenomResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{9} + return fileDescriptor_f896e6ddcd63be16, []int{11} } func (m *QuerySystemsByDenomResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -472,7 +552,7 @@ func (m *QueryAdmins) Reset() { *m = QueryAdmins{} } func (m *QueryAdmins) String() string { return proto.CompactTextString(m) } func (*QueryAdmins) ProtoMessage() {} func (*QueryAdmins) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{10} + return fileDescriptor_f896e6ddcd63be16, []int{12} } func (m *QueryAdmins) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -509,7 +589,7 @@ func (m *QueryAdminsResponse) Reset() { *m = QueryAdminsResponse{} } func (m *QueryAdminsResponse) String() string { return proto.CompactTextString(m) } func (*QueryAdminsResponse) ProtoMessage() {} func (*QueryAdminsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{11} + return fileDescriptor_f896e6ddcd63be16, []int{13} } func (m *QueryAdminsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -553,7 +633,7 @@ func (m *QueryAdminsByDenom) Reset() { *m = QueryAdminsByDenom{} } func (m *QueryAdminsByDenom) String() string { return proto.CompactTextString(m) } func (*QueryAdminsByDenom) ProtoMessage() {} func (*QueryAdminsByDenom) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{12} + return fileDescriptor_f896e6ddcd63be16, []int{14} } func (m *QueryAdminsByDenom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -597,7 +677,7 @@ func (m *QueryAdminsByDenomResponse) Reset() { *m = QueryAdminsByDenomRe func (m *QueryAdminsByDenomResponse) String() string { return proto.CompactTextString(m) } func (*QueryAdminsByDenomResponse) ProtoMessage() {} func (*QueryAdminsByDenomResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{13} + return fileDescriptor_f896e6ddcd63be16, []int{15} } func (m *QueryAdminsByDenomResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -640,7 +720,7 @@ func (m *QueryMaxMintAllowances) Reset() { *m = QueryMaxMintAllowances{} func (m *QueryMaxMintAllowances) String() string { return proto.CompactTextString(m) } func (*QueryMaxMintAllowances) ProtoMessage() {} func (*QueryMaxMintAllowances) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{14} + return fileDescriptor_f896e6ddcd63be16, []int{16} } func (m *QueryMaxMintAllowances) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -677,7 +757,7 @@ func (m *QueryMaxMintAllowancesResponse) Reset() { *m = QueryMaxMintAllo func (m *QueryMaxMintAllowancesResponse) String() string { return proto.CompactTextString(m) } func (*QueryMaxMintAllowancesResponse) ProtoMessage() {} func (*QueryMaxMintAllowancesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{15} + return fileDescriptor_f896e6ddcd63be16, []int{17} } func (m *QueryMaxMintAllowancesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -721,7 +801,7 @@ func (m *QueryMaxMintAllowance) Reset() { *m = QueryMaxMintAllowance{} } func (m *QueryMaxMintAllowance) String() string { return proto.CompactTextString(m) } func (*QueryMaxMintAllowance) ProtoMessage() {} func (*QueryMaxMintAllowance) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{16} + return fileDescriptor_f896e6ddcd63be16, []int{18} } func (m *QueryMaxMintAllowance) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -765,7 +845,7 @@ func (m *QueryMaxMintAllowanceResponse) Reset() { *m = QueryMaxMintAllow func (m *QueryMaxMintAllowanceResponse) String() string { return proto.CompactTextString(m) } func (*QueryMaxMintAllowanceResponse) ProtoMessage() {} func (*QueryMaxMintAllowanceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{17} + return fileDescriptor_f896e6ddcd63be16, []int{19} } func (m *QueryMaxMintAllowanceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -802,7 +882,7 @@ func (m *QueryMintAllowances) Reset() { *m = QueryMintAllowances{} } func (m *QueryMintAllowances) String() string { return proto.CompactTextString(m) } func (*QueryMintAllowances) ProtoMessage() {} func (*QueryMintAllowances) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{18} + return fileDescriptor_f896e6ddcd63be16, []int{20} } func (m *QueryMintAllowances) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -846,7 +926,7 @@ func (m *QueryMintAllowancesResponse) Reset() { *m = QueryMintAllowances func (m *QueryMintAllowancesResponse) String() string { return proto.CompactTextString(m) } func (*QueryMintAllowancesResponse) ProtoMessage() {} func (*QueryMintAllowancesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{19} + return fileDescriptor_f896e6ddcd63be16, []int{21} } func (m *QueryMintAllowancesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -891,7 +971,7 @@ func (m *QueryMintAllowance) Reset() { *m = QueryMintAllowance{} } func (m *QueryMintAllowance) String() string { return proto.CompactTextString(m) } func (*QueryMintAllowance) ProtoMessage() {} func (*QueryMintAllowance) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{20} + return fileDescriptor_f896e6ddcd63be16, []int{22} } func (m *QueryMintAllowance) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -942,7 +1022,7 @@ func (m *QueryMintAllowanceResponse) Reset() { *m = QueryMintAllowanceRe func (m *QueryMintAllowanceResponse) String() string { return proto.CompactTextString(m) } func (*QueryMintAllowanceResponse) ProtoMessage() {} func (*QueryMintAllowanceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_f896e6ddcd63be16, []int{21} + return fileDescriptor_f896e6ddcd63be16, []int{23} } func (m *QueryMintAllowanceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -972,6 +1052,8 @@ func (m *QueryMintAllowanceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryMintAllowanceResponse proto.InternalMessageInfo func init() { + proto.RegisterType((*QueryAuthority)(nil), "florin.v1.QueryAuthority") + proto.RegisterType((*QueryAuthorityResponse)(nil), "florin.v1.QueryAuthorityResponse") proto.RegisterType((*QueryAllowedDenoms)(nil), "florin.v1.QueryAllowedDenoms") proto.RegisterType((*QueryAllowedDenomsResponse)(nil), "florin.v1.QueryAllowedDenomsResponse") proto.RegisterType((*QueryOwners)(nil), "florin.v1.QueryOwners") @@ -1003,72 +1085,75 @@ func init() { func init() { proto.RegisterFile("florin/v1/query.proto", fileDescriptor_f896e6ddcd63be16) } var fileDescriptor_f896e6ddcd63be16 = []byte{ - // 1036 bytes of a gzipped FileDescriptorProto + // 1086 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xba, 0xc4, 0x95, 0x5f, 0x6a, 0x93, 0x4c, 0x9c, 0xd4, 0xdd, 0xd4, 0x9b, 0xb0, 0xe0, - 0x36, 0x24, 0xca, 0x6e, 0x63, 0x10, 0x14, 0x24, 0xa4, 0xc6, 0x04, 0xa1, 0x22, 0x4a, 0xc1, 0x48, - 0x08, 0x71, 0xc0, 0xdd, 0xd8, 0x83, 0xbb, 0xaa, 0x77, 0xc6, 0x78, 0xd7, 0x6e, 0xac, 0x2a, 0x42, - 0x70, 0x82, 0x0b, 0x20, 0xf8, 0x12, 0x1c, 0x7b, 0xe8, 0x87, 0xe8, 0xb1, 0x82, 0x4b, 0x85, 0x44, - 0x85, 0x12, 0x24, 0xbe, 0x46, 0xe5, 0x99, 0xd9, 0xd9, 0xff, 0x76, 0xaa, 0x5c, 0xac, 0x7d, 0x7f, - 0xe6, 0xf7, 0x7b, 0xf3, 0xde, 0x9b, 0xf7, 0x64, 0x58, 0xf9, 0xa6, 0x47, 0x07, 0x36, 0x31, 0x47, - 0xbb, 0xe6, 0xb7, 0x43, 0x3c, 0x18, 0x1b, 0xfd, 0x01, 0xf5, 0x28, 0x2a, 0x70, 0xb5, 0x31, 0xda, - 0x55, 0x97, 0x2c, 0xc7, 0x26, 0xd4, 0x64, 0xbf, 0xdc, 0xaa, 0xae, 0xb5, 0xa9, 0xeb, 0x50, 0x97, - 0x9f, 0x88, 0x1d, 0x55, 0x2f, 0x71, 0x63, 0x8b, 0x49, 0x26, 0x17, 0x84, 0xe9, 0x62, 0x40, 0xd6, - 0xc5, 0x04, 0xbb, 0xb6, 0x6f, 0x28, 0x77, 0x69, 0x97, 0xf2, 0x03, 0x93, 0x2f, 0xa1, 0xbd, 0xdc, - 0xa5, 0xb4, 0xdb, 0xc3, 0xa6, 0xd5, 0xb7, 0x4d, 0x8b, 0x10, 0xea, 0x59, 0x9e, 0x4d, 0x89, 0x38, - 0xa3, 0x97, 0x01, 0x7d, 0x36, 0xa1, 0xdd, 0xeb, 0xf5, 0xe8, 0x7d, 0xdc, 0xd9, 0xc7, 0x84, 0x3a, - 0xae, 0xfe, 0x3e, 0xa8, 0x49, 0x6d, 0x13, 0xbb, 0x7d, 0x4a, 0x5c, 0x8c, 0x6a, 0x50, 0xb2, 0xb8, - 0xa1, 0xd5, 0x61, 0x96, 0x8a, 0xb2, 0x71, 0x6e, 0xb3, 0xd0, 0x2c, 0x5a, 0x11, 0x90, 0x22, 0x2c, - 0x30, 0x90, 0xdb, 0xf7, 0x09, 0x1e, 0xb8, 0xfa, 0xc3, 0x1c, 0x2c, 0x87, 0x64, 0x89, 0xd6, 0x80, - 0x3c, 0x65, 0x1a, 0x86, 0xb2, 0x50, 0xdf, 0x32, 0x64, 0xd6, 0x8c, 0x14, 0x7f, 0x83, 0x8b, 0x1f, - 0x10, 0x6f, 0x30, 0x6e, 0x8a, 0x93, 0xe8, 0x4b, 0x28, 0xf5, 0x31, 0xe9, 0xd8, 0xa4, 0xdb, 0x12, - 0x58, 0x39, 0x86, 0xb5, 0x3b, 0x03, 0xeb, 0x53, 0x7e, 0x28, 0x0c, 0x59, 0xec, 0x87, 0x75, 0xea, - 0x3b, 0xb0, 0x10, 0xb2, 0xa2, 0x45, 0x38, 0x77, 0x0f, 0x8f, 0x2b, 0xca, 0x86, 0xb2, 0x59, 0x68, - 0x4e, 0x3e, 0x51, 0x19, 0xe6, 0x47, 0x56, 0x6f, 0x88, 0x2b, 0x39, 0xa6, 0xe3, 0xc2, 0xbb, 0xb9, - 0xeb, 0x8a, 0x7a, 0x03, 0x50, 0x12, 0xff, 0x45, 0x10, 0x74, 0x1d, 0x20, 0x88, 0x7a, 0xe2, 0xc7, - 0xd2, 0x2d, 0xce, 0x72, 0x41, 0xbf, 0x2d, 0x0a, 0xc8, 0x7c, 0x64, 0x52, 0xcb, 0x30, 0xcf, 0x12, - 0xe1, 0xfb, 0x32, 0x01, 0xbd, 0x0a, 0xc5, 0x48, 0x9a, 0x04, 0xe3, 0x85, 0xf0, 0x95, 0xf5, 0x12, - 0x5c, 0x60, 0x80, 0x9f, 0x8f, 0x5d, 0x0f, 0x3b, 0xae, 0xfe, 0x11, 0x94, 0xc3, 0xb2, 0xa4, 0xa8, - 0xc3, 0x79, 0x97, 0xab, 0x44, 0xe1, 0x50, 0x28, 0xd9, 0x7b, 0xed, 0x36, 0x1d, 0x12, 0xaf, 0xf1, - 0xd2, 0xe3, 0x67, 0xeb, 0x73, 0x4d, 0xdf, 0x51, 0xdf, 0x16, 0x2d, 0x20, 0xb0, 0x1a, 0x63, 0xd6, - 0x2a, 0x19, 0x37, 0x7b, 0x1b, 0xd6, 0x52, 0x9c, 0x25, 0x7f, 0x25, 0xca, 0x5f, 0x08, 0x58, 0xfc, - 0xc6, 0xdb, 0xeb, 0x38, 0x36, 0x71, 0xf5, 0x0f, 0x05, 0x29, 0x17, 0xe5, 0xf9, 0x6b, 0x90, 0xb7, - 0x98, 0x66, 0x66, 0xf8, 0xc2, 0x4f, 0xdf, 0xf2, 0xdf, 0x0a, 0x13, 0xa7, 0x07, 0xff, 0xa6, 0xff, - 0x82, 0xc2, 0xbe, 0x92, 0x7b, 0x35, 0xc2, 0x5d, 0x90, 0x0c, 0x15, 0x58, 0x65, 0xa7, 0x6e, 0x59, - 0x87, 0xb7, 0x6c, 0xe2, 0xb1, 0xe7, 0x67, 0x91, 0x36, 0x76, 0xf5, 0xa7, 0x0a, 0x68, 0xe9, 0x26, - 0x09, 0xda, 0x87, 0x65, 0xc7, 0x3a, 0x6c, 0x39, 0x36, 0xf1, 0x5a, 0x96, 0x34, 0x8b, 0xdb, 0xdd, - 0x88, 0xbf, 0x84, 0x4c, 0x1c, 0x23, 0x61, 0xe1, 0x0f, 0x63, 0xc9, 0x89, 0xeb, 0xd5, 0x7d, 0x58, - 0x4d, 0x77, 0x7e, 0xa1, 0x2e, 0xdf, 0x81, 0x95, 0xd4, 0x88, 0x32, 0x32, 0xfb, 0x1d, 0x54, 0x53, - 0xdd, 0x65, 0x1e, 0xbe, 0x06, 0x94, 0xcc, 0x03, 0xc7, 0x68, 0x5c, 0x9b, 0x14, 0xf4, 0xef, 0x67, - 0xeb, 0x2b, 0x7c, 0xa2, 0xba, 0x9d, 0x7b, 0x86, 0x4d, 0x4d, 0xc7, 0xf2, 0xee, 0x1a, 0x37, 0x89, - 0xf7, 0xe7, 0xa3, 0x1d, 0x10, 0xa3, 0xf6, 0x26, 0xf1, 0xfe, 0xf8, 0xff, 0xe1, 0x96, 0xd2, 0x5c, - 0x8c, 0x5f, 0x5b, 0x36, 0x71, 0xf4, 0xde, 0x19, 0xd1, 0x3e, 0x52, 0x44, 0x17, 0x67, 0x14, 0xed, - 0x0b, 0x80, 0x44, 0xad, 0xde, 0x4a, 0xd4, 0x2a, 0xbd, 0x50, 0xf1, 0x0a, 0x85, 0x90, 0xd4, 0xf7, - 0xe0, 0xe5, 0xb3, 0xd4, 0x64, 0x5f, 0xb4, 0xfa, 0x29, 0x0a, 0x32, 0x79, 0x88, 0x16, 0x7f, 0x2f, - 0x02, 0xc7, 0x17, 0xf5, 0x9e, 0x78, 0x04, 0xe9, 0x75, 0xfa, 0x04, 0x0a, 0x67, 0x2f, 0x4f, 0x00, - 0x51, 0xff, 0x07, 0x60, 0x9e, 0xd1, 0xa1, 0x23, 0x28, 0x46, 0x36, 0x17, 0xaa, 0xc6, 0x33, 0x1a, - 0x31, 0xab, 0xb5, 0xa9, 0x66, 0x3f, 0x60, 0xfd, 0xca, 0x8f, 0x13, 0xca, 0x1f, 0xfe, 0xfa, 0xef, - 0xf7, 0xdc, 0x1a, 0xba, 0x64, 0x06, 0x6b, 0x38, 0xba, 0x0d, 0xd1, 0x1d, 0xc8, 0xf3, 0x89, 0x8f, - 0x56, 0xd3, 0xf7, 0x8f, 0xaa, 0x4d, 0xdf, 0x4b, 0xba, 0x16, 0x30, 0x2d, 0xa3, 0xa5, 0x10, 0x93, - 0xd8, 0x77, 0x1d, 0x98, 0xe7, 0x3b, 0x61, 0x25, 0x15, 0x48, 0xad, 0xa6, 0xaa, 0x25, 0x7c, 0x2d, - 0x80, 0x57, 0x51, 0x25, 0x0e, 0x6f, 0x3e, 0x60, 0xf7, 0x38, 0x42, 0x1d, 0x38, 0x2f, 0x66, 0x2f, - 0xba, 0x18, 0x07, 0x14, 0x06, 0x75, 0x3d, 0xc3, 0x20, 0xb9, 0xd6, 0x03, 0xae, 0x32, 0x42, 0x21, - 0x2e, 0x31, 0xad, 0xd1, 0xf7, 0x0a, 0x94, 0x62, 0xfb, 0x40, 0xcb, 0x00, 0x15, 0x76, 0xf5, 0xca, - 0x74, 0xbb, 0xe4, 0xbe, 0x1a, 0x70, 0x5f, 0x46, 0x6a, 0x92, 0x5b, 0xde, 0xf4, 0x0e, 0xe4, 0xf9, - 0xa0, 0x4e, 0x56, 0x8c, 0xeb, 0x93, 0x15, 0x8b, 0x6e, 0x93, 0xec, 0x8a, 0xf1, 0xc9, 0xce, 0x5a, - 0x32, 0xb2, 0x36, 0xaa, 0xe9, 0x80, 0xfe, 0x15, 0x6b, 0x53, 0xcd, 0xa7, 0x68, 0x49, 0xe6, 0x2e, - 0x2f, 0xf8, 0xb3, 0x02, 0x4b, 0x89, 0x51, 0x8d, 0x5e, 0x99, 0xb9, 0x14, 0xd4, 0xd7, 0x4f, 0xbd, - 0x37, 0xf4, 0xed, 0x20, 0x96, 0x0d, 0xa4, 0x85, 0x62, 0x49, 0xd9, 0x4a, 0xe8, 0x37, 0x05, 0x16, - 0x13, 0x03, 0x7f, 0x63, 0x16, 0x99, 0xba, 0x39, 0xcb, 0x43, 0x46, 0x53, 0x0f, 0xa2, 0xb9, 0x8a, - 0x6a, 0x53, 0xa3, 0x91, 0x59, 0xfa, 0x49, 0x81, 0x52, 0x2c, 0x45, 0xda, 0xf4, 0x59, 0x9c, 0x6c, - 0xc5, 0x8c, 0xe4, 0x98, 0x41, 0x38, 0xaf, 0x21, 0x3d, 0x1c, 0x4e, 0x34, 0x31, 0x32, 0x96, 0x5f, - 0x14, 0x28, 0x46, 0xb3, 0x53, 0x9d, 0x4a, 0x95, 0xec, 0x98, 0xf4, 0xbc, 0x5c, 0x0f, 0x02, 0xd9, - 0x41, 0xdb, 0x99, 0x81, 0xf8, 0x71, 0x98, 0x0f, 0xc4, 0x30, 0x3f, 0x6a, 0x7c, 0xfc, 0xf8, 0x58, - 0x53, 0x9e, 0x1c, 0x6b, 0xca, 0xbf, 0xc7, 0x9a, 0xf2, 0xeb, 0x89, 0x36, 0xf7, 0xe4, 0x44, 0x9b, - 0x7b, 0x7a, 0xa2, 0xcd, 0x7d, 0x55, 0xef, 0xda, 0xde, 0xdd, 0xe1, 0x81, 0xd1, 0xa6, 0x8e, 0xe9, - 0x50, 0x82, 0x07, 0xf6, 0x70, 0xf2, 0xd1, 0x19, 0xf6, 0xf0, 0x0e, 0xa1, 0x07, 0x3d, 0x6c, 0x8e, - 0xea, 0xe6, 0xa1, 0xcf, 0xe5, 0x8d, 0xfb, 0xd8, 0x3d, 0xc8, 0xb3, 0xff, 0x1f, 0x6f, 0x3c, 0x0f, - 0x00, 0x00, 0xff, 0xff, 0x37, 0xfc, 0x80, 0x92, 0x3b, 0x0d, 0x00, 0x00, + 0x14, 0xcf, 0xba, 0xc4, 0x95, 0x5f, 0x6a, 0x93, 0x4c, 0x1c, 0xd7, 0xd9, 0xc4, 0x9b, 0x64, 0xc0, + 0x6d, 0x48, 0x14, 0x6f, 0x63, 0x50, 0x29, 0x48, 0x48, 0x8d, 0x09, 0x42, 0x45, 0x94, 0x82, 0x91, + 0x10, 0xe2, 0x80, 0xbb, 0xb1, 0x17, 0x67, 0x55, 0xef, 0x8c, 0xf1, 0xae, 0xd3, 0x58, 0x55, 0x84, + 0xe0, 0x04, 0x17, 0x40, 0xf0, 0x25, 0x38, 0xf6, 0xd0, 0x0f, 0x51, 0x89, 0x4b, 0x05, 0x97, 0x8a, + 0x43, 0x85, 0x12, 0x24, 0xbe, 0x46, 0xe5, 0x99, 0xd9, 0xd9, 0xff, 0x76, 0xaa, 0x5e, 0x22, 0xbf, + 0x3f, 0xf3, 0xfb, 0xbd, 0x79, 0xef, 0xcd, 0xfe, 0x14, 0x58, 0xfa, 0xa6, 0x47, 0x07, 0x16, 0xd1, + 0x8f, 0x76, 0xf5, 0x6f, 0x87, 0xe6, 0x60, 0x54, 0xeb, 0x0f, 0xa8, 0x4b, 0x51, 0x8e, 0xbb, 0x6b, + 0x47, 0xbb, 0xea, 0x82, 0x61, 0x5b, 0x84, 0xea, 0xec, 0x2f, 0x8f, 0xaa, 0x2b, 0x6d, 0xea, 0xd8, + 0xd4, 0xe1, 0x27, 0x22, 0x47, 0xd5, 0x65, 0x1e, 0x6c, 0x31, 0x4b, 0xe7, 0x86, 0x08, 0x5d, 0xf6, + 0xc9, 0xba, 0x26, 0x31, 0x1d, 0xcb, 0x0b, 0x14, 0xbb, 0xb4, 0x4b, 0xf9, 0x81, 0xf1, 0x2f, 0xe1, + 0x5d, 0xed, 0x52, 0xda, 0xed, 0x99, 0xba, 0xd1, 0xb7, 0x74, 0x83, 0x10, 0xea, 0x1a, 0xae, 0x45, + 0x89, 0x38, 0x83, 0xe7, 0xa1, 0xf0, 0xd9, 0x98, 0x76, 0x6f, 0xe8, 0x1e, 0xd2, 0x81, 0xe5, 0x8e, + 0xf0, 0x75, 0x28, 0x85, 0x3d, 0x4d, 0xd3, 0xe9, 0x53, 0xe2, 0x98, 0x68, 0x15, 0x72, 0x86, 0xe7, + 0x2c, 0x2b, 0xeb, 0xca, 0x66, 0xae, 0xe9, 0x3b, 0x70, 0x11, 0x10, 0x3f, 0xd7, 0xeb, 0xd1, 0xfb, + 0x66, 0x67, 0xdf, 0x24, 0xd4, 0x76, 0xf0, 0xfb, 0xa0, 0xc6, 0xbd, 0x12, 0xb1, 0x0a, 0x05, 0x83, + 0x07, 0x5a, 0x1d, 0x16, 0x29, 0x2b, 0xeb, 0x17, 0x36, 0x73, 0xcd, 0xbc, 0x11, 0x02, 0xc9, 0xc3, + 0x1c, 0x03, 0xb9, 0x73, 0x9f, 0x98, 0x03, 0x07, 0x3f, 0xcc, 0xc0, 0x62, 0xc0, 0x96, 0x68, 0x0d, + 0xc8, 0x52, 0xe6, 0x61, 0x28, 0x73, 0xf5, 0xad, 0x9a, 0xec, 0x7f, 0x2d, 0x21, 0xbf, 0xc6, 0xcd, + 0x0f, 0x88, 0x3b, 0x18, 0x35, 0xc5, 0x49, 0xf4, 0x25, 0x14, 0xfa, 0x26, 0xe9, 0x58, 0xa4, 0xdb, + 0x12, 0x58, 0x19, 0x86, 0xb5, 0x3b, 0x05, 0xeb, 0x53, 0x7e, 0x28, 0x08, 0x99, 0xef, 0x07, 0x7d, + 0xea, 0x3b, 0x30, 0x17, 0x88, 0xa2, 0x79, 0xb8, 0x70, 0xcf, 0xf4, 0xda, 0x38, 0xfe, 0x89, 0x8a, + 0x30, 0x7b, 0x64, 0xf4, 0x86, 0x66, 0x39, 0xc3, 0x7c, 0xdc, 0x78, 0x37, 0x73, 0x43, 0x51, 0x6f, + 0x02, 0x8a, 0xe3, 0xbf, 0x08, 0x02, 0xc6, 0x00, 0x7e, 0xd5, 0xe3, 0x3c, 0xd6, 0x6e, 0x71, 0x96, + 0x1b, 0xf8, 0x8e, 0x18, 0x20, 0xcb, 0x91, 0x4d, 0x2d, 0xc2, 0x2c, 0x6b, 0x84, 0x97, 0xcb, 0x0c, + 0xf4, 0x1a, 0xe4, 0x43, 0x6d, 0x12, 0x8c, 0x97, 0x82, 0x57, 0xc6, 0x05, 0xb8, 0xc4, 0x00, 0x3f, + 0x1f, 0x39, 0xae, 0x69, 0x3b, 0xf8, 0x23, 0x28, 0x06, 0x6d, 0x49, 0x51, 0x87, 0x8b, 0x0e, 0x77, + 0x89, 0xc1, 0xa1, 0x40, 0xb3, 0xf7, 0xda, 0x6d, 0x3a, 0x24, 0x6e, 0xe3, 0x95, 0xc7, 0xcf, 0xd6, + 0x66, 0x9a, 0x5e, 0x22, 0xde, 0x16, 0x2b, 0x20, 0xb0, 0x1a, 0x23, 0xb6, 0x2a, 0x29, 0x37, 0x7b, + 0x1b, 0x56, 0x12, 0x92, 0x25, 0x7f, 0x39, 0xcc, 0x9f, 0xf3, 0x59, 0xbc, 0xc5, 0xdb, 0xeb, 0xd8, + 0x16, 0x71, 0xf0, 0x87, 0x82, 0x94, 0x9b, 0xf2, 0xfc, 0x35, 0xc8, 0x1a, 0xcc, 0x33, 0xb5, 0x7c, + 0x91, 0x87, 0xb7, 0xbc, 0xb7, 0xc2, 0xcc, 0xc9, 0xc5, 0xbf, 0xe5, 0xbd, 0xa0, 0x60, 0xae, 0xe4, + 0x2e, 0x85, 0xb8, 0x73, 0x92, 0xa1, 0x2c, 0x5e, 0xf1, 0x6d, 0xe3, 0xf8, 0xb6, 0x45, 0x5c, 0xf6, + 0xfc, 0x0c, 0xd2, 0x36, 0x1d, 0xfc, 0x54, 0x01, 0x2d, 0x39, 0x24, 0x41, 0xfb, 0xb0, 0x68, 0x1b, + 0xc7, 0x2d, 0xdb, 0x22, 0x6e, 0xcb, 0x90, 0x61, 0x71, 0xbb, 0x9b, 0xd1, 0x97, 0x90, 0x8a, 0x53, + 0x8b, 0x45, 0xf8, 0xc3, 0x58, 0xb0, 0xa3, 0x7e, 0x75, 0x1f, 0x4a, 0xc9, 0xc9, 0x2f, 0xb4, 0xe5, + 0x3b, 0xb0, 0x94, 0x58, 0x51, 0x4a, 0x67, 0xbf, 0x83, 0x4a, 0x62, 0xba, 0xec, 0xc3, 0xd7, 0x80, + 0xe2, 0x7d, 0xe0, 0x18, 0x8d, 0x6b, 0xe3, 0x81, 0xfe, 0xf3, 0x6c, 0x6d, 0x89, 0x7f, 0x9b, 0x9d, + 0xce, 0xbd, 0x9a, 0x45, 0x75, 0xdb, 0x70, 0x0f, 0x6b, 0xb7, 0x88, 0xfb, 0xd7, 0xa3, 0x1d, 0x10, + 0x1f, 0xed, 0x5b, 0xc4, 0xfd, 0xe3, 0xff, 0x87, 0x5b, 0x4a, 0x73, 0x3e, 0x7a, 0x6d, 0xb9, 0xc4, + 0xe1, 0x7b, 0xa7, 0x54, 0xfb, 0x48, 0x11, 0x5b, 0x9c, 0x32, 0xb4, 0x2f, 0x00, 0x62, 0xb3, 0xba, + 0x1e, 0x9b, 0x55, 0xf2, 0xa0, 0xa2, 0x13, 0x0a, 0x20, 0xa9, 0xef, 0xc1, 0xab, 0x2f, 0x33, 0x93, + 0x7d, 0xb1, 0xea, 0xe7, 0x18, 0xc8, 0xf8, 0x21, 0x1a, 0xfc, 0xbd, 0x08, 0x1c, 0xcf, 0xc4, 0x3d, + 0xf1, 0x08, 0x92, 0xe7, 0xf4, 0x09, 0xe4, 0x5e, 0x7e, 0x3c, 0x3e, 0x44, 0xfd, 0xcf, 0x39, 0x98, + 0x65, 0x74, 0xa8, 0x07, 0x39, 0xa9, 0x83, 0x68, 0x39, 0xda, 0x4d, 0x19, 0x52, 0x37, 0x52, 0x43, + 0x5e, 0x91, 0x78, 0xe3, 0xc7, 0x31, 0xcd, 0x0f, 0x7f, 0xff, 0xf7, 0x7b, 0xa6, 0x84, 0x8a, 0xba, + 0x2f, 0xe2, 0x52, 0x42, 0xd1, 0x09, 0xe4, 0x43, 0x3a, 0x89, 0x2a, 0x31, 0xd8, 0x60, 0x58, 0xad, + 0x4e, 0x0c, 0x4b, 0xe6, 0x2b, 0x3e, 0xf3, 0x0a, 0x5a, 0x0e, 0x32, 0x87, 0xb4, 0x17, 0xdd, 0x85, + 0x2c, 0xd7, 0x17, 0x54, 0x4a, 0x56, 0x3b, 0x55, 0x9b, 0xac, 0x82, 0x58, 0xf3, 0x99, 0x16, 0xd1, + 0x42, 0x80, 0x49, 0xa8, 0x6b, 0x07, 0x66, 0xb9, 0x02, 0x2d, 0x25, 0x02, 0xa9, 0x95, 0x44, 0xb7, + 0x84, 0xaf, 0xfa, 0xf0, 0x2a, 0x2a, 0x47, 0xe1, 0xf5, 0x07, 0xec, 0x1e, 0x27, 0xa8, 0x03, 0x17, + 0xc5, 0x97, 0x1e, 0x5d, 0x8e, 0x02, 0x8a, 0x80, 0xba, 0x96, 0x12, 0x90, 0x5c, 0x6b, 0x3e, 0x57, + 0x11, 0xa1, 0x00, 0x97, 0xd0, 0x06, 0xf4, 0xbd, 0x02, 0x85, 0x88, 0xfa, 0x68, 0x29, 0xa0, 0x22, + 0xae, 0x5e, 0x99, 0x1c, 0x97, 0xdc, 0x57, 0x7d, 0xee, 0x55, 0xa4, 0xc6, 0xb9, 0xe5, 0x4d, 0xef, + 0x42, 0x96, 0xcb, 0x42, 0x7c, 0x62, 0xdc, 0x1f, 0x9f, 0x58, 0x58, 0xbb, 0xd2, 0x27, 0xc6, 0x75, + 0x84, 0xad, 0x64, 0x48, 0xa4, 0x2a, 0xc9, 0x80, 0xde, 0x15, 0xab, 0x13, 0xc3, 0xe7, 0x58, 0x49, + 0x96, 0x2e, 0x2f, 0xf8, 0xb3, 0x02, 0x0b, 0x31, 0x61, 0x40, 0x1b, 0x53, 0x25, 0x48, 0x7d, 0xe3, + 0xdc, 0x2a, 0x85, 0xb7, 0xfd, 0x5a, 0xd6, 0x91, 0x16, 0xa8, 0x25, 0x41, 0x03, 0xd1, 0x6f, 0x0a, + 0xcc, 0xc7, 0xe4, 0x65, 0x7d, 0x1a, 0x99, 0xba, 0x39, 0x2d, 0x43, 0x56, 0x53, 0xf7, 0xab, 0xb9, + 0x8a, 0xaa, 0x13, 0xab, 0x91, 0x5d, 0xfa, 0x49, 0x81, 0x42, 0xa4, 0x45, 0xda, 0xe4, 0x2f, 0x7f, + 0x7c, 0x15, 0x53, 0x9a, 0xa3, 0xfb, 0xe5, 0xbc, 0x8e, 0x70, 0xb0, 0x9c, 0x70, 0x63, 0x64, 0x2d, + 0xbf, 0x28, 0x90, 0x0f, 0x77, 0xa7, 0x32, 0x91, 0x2a, 0xbe, 0x31, 0xc9, 0x7d, 0xb9, 0xe1, 0x17, + 0xb2, 0x83, 0xb6, 0x53, 0x0b, 0xf1, 0xea, 0xd0, 0x1f, 0x08, 0xe9, 0x38, 0x69, 0x7c, 0xfc, 0xf8, + 0x54, 0x53, 0x9e, 0x9c, 0x6a, 0xca, 0xbf, 0xa7, 0x9a, 0xf2, 0xeb, 0x99, 0x36, 0xf3, 0xe4, 0x4c, + 0x9b, 0x79, 0x7a, 0xa6, 0xcd, 0x7c, 0x55, 0xef, 0x5a, 0xee, 0xe1, 0xf0, 0xa0, 0xd6, 0xa6, 0xb6, + 0x6e, 0x53, 0x62, 0x0e, 0xac, 0xe1, 0xf8, 0x47, 0x67, 0xd8, 0x33, 0x77, 0x08, 0x3d, 0xe8, 0x99, + 0xfa, 0x51, 0x5d, 0x3f, 0xf6, 0xb8, 0xdc, 0x51, 0xdf, 0x74, 0x0e, 0xb2, 0xec, 0xff, 0xa6, 0x37, + 0x9f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xb6, 0xc1, 0xe2, 0xdc, 0xf3, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1083,6 +1168,7 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { + Authority(ctx context.Context, in *QueryAuthority, opts ...grpc.CallOption) (*QueryAuthorityResponse, error) AllowedDenoms(ctx context.Context, in *QueryAllowedDenoms, opts ...grpc.CallOption) (*QueryAllowedDenomsResponse, error) Owners(ctx context.Context, in *QueryOwners, opts ...grpc.CallOption) (*QueryOwnersResponse, error) Owner(ctx context.Context, in *QueryOwner, opts ...grpc.CallOption) (*QueryOwnerResponse, error) @@ -1104,6 +1190,15 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } +func (c *queryClient) Authority(ctx context.Context, in *QueryAuthority, opts ...grpc.CallOption) (*QueryAuthorityResponse, error) { + out := new(QueryAuthorityResponse) + err := c.cc.Invoke(ctx, "/florin.v1.Query/Authority", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) AllowedDenoms(ctx context.Context, in *QueryAllowedDenoms, opts ...grpc.CallOption) (*QueryAllowedDenomsResponse, error) { out := new(QueryAllowedDenomsResponse) err := c.cc.Invoke(ctx, "/florin.v1.Query/AllowedDenoms", in, out, opts...) @@ -1205,6 +1300,7 @@ func (c *queryClient) MintAllowance(ctx context.Context, in *QueryMintAllowance, // QueryServer is the server API for Query service. type QueryServer interface { + Authority(context.Context, *QueryAuthority) (*QueryAuthorityResponse, error) AllowedDenoms(context.Context, *QueryAllowedDenoms) (*QueryAllowedDenomsResponse, error) Owners(context.Context, *QueryOwners) (*QueryOwnersResponse, error) Owner(context.Context, *QueryOwner) (*QueryOwnerResponse, error) @@ -1222,6 +1318,9 @@ type QueryServer interface { type UnimplementedQueryServer struct { } +func (*UnimplementedQueryServer) Authority(ctx context.Context, req *QueryAuthority) (*QueryAuthorityResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Authority not implemented") +} func (*UnimplementedQueryServer) AllowedDenoms(ctx context.Context, req *QueryAllowedDenoms) (*QueryAllowedDenomsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AllowedDenoms not implemented") } @@ -1260,6 +1359,24 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } +func _Query_Authority_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAuthority) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Authority(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/florin.v1.Query/Authority", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Authority(ctx, req.(*QueryAuthority)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_AllowedDenoms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryAllowedDenoms) if err := dec(in); err != nil { @@ -1463,6 +1580,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "florin.v1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Authority", + Handler: _Query_Authority_Handler, + }, { MethodName: "AllowedDenoms", Handler: _Query_AllowedDenoms_Handler, @@ -1512,6 +1633,59 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Metadata: "florin/v1/query.proto", } +func (m *QueryAuthority) 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 *QueryAuthority) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAuthority) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryAuthorityResponse) 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 *QueryAuthorityResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAuthorityResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *QueryAllowedDenoms) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2243,6 +2417,28 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *QueryAuthority) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryAuthorityResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func (m *QueryAllowedDenoms) Size() (n int) { if m == nil { return 0 @@ -2549,6 +2745,138 @@ func sovQuery(x uint64) (n int) { func sozQuery(x uint64) (n int) { return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *QueryAuthority) 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: QueryAuthority: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAuthority: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + 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 *QueryAuthorityResponse) 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: QueryAuthorityResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAuthorityResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + 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 *QueryAllowedDenoms) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/florin/types/query.pb.gw.go b/x/florin/types/query.pb.gw.go index a0548e31..82b68ced 100644 --- a/x/florin/types/query.pb.gw.go +++ b/x/florin/types/query.pb.gw.go @@ -33,6 +33,24 @@ var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage var _ = metadata.Join +func request_Query_Authority_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAuthority + var metadata runtime.ServerMetadata + + msg, err := client.Authority(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Authority_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAuthority + var metadata runtime.ServerMetadata + + msg, err := server.Authority(ctx, &protoReq) + return msg, metadata, err + +} + func request_Query_AllowedDenoms_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryAllowedDenoms var metadata runtime.ServerMetadata @@ -475,6 +493,29 @@ func local_request_Query_MintAllowance_0(ctx context.Context, marshaler runtime. // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { + mux.Handle("GET", pattern_Query_Authority_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_Authority_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_Authority_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_AllowedDenoms_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -769,6 +810,26 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc // "QueryClient" to call the correct interceptors. func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { + mux.Handle("GET", pattern_Query_Authority_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_Authority_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_Authority_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_AllowedDenoms_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -993,6 +1054,8 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( + pattern_Query_Authority_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"florin", "v1", "authority"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_AllowedDenoms_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"florin", "v1", "allowed_denoms"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Owners_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"florin", "v1", "owners"}, "", runtime.AssumeColonVerbOpt(false))) @@ -1017,6 +1080,8 @@ var ( ) var ( + forward_Query_Authority_0 = runtime.ForwardResponseMessage + forward_Query_AllowedDenoms_0 = runtime.ForwardResponseMessage forward_Query_Owners_0 = runtime.ForwardResponseMessage