diff --git a/CHANGELOG.md b/CHANGELOG.md index 0748fc75a..e2cc98858 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * (precompiles) #1077 Change status fields from int32 to enums/uint8 in precompile ABIs for improved type safety and consistency * (wardend) Bump IAVL to v1.2.2. Fixes some potential apphash mismatches that happen in some rare cases. * (x/async) Scaffold new module with create/read operations +* (x/warden) Sign requests query return all request (not only with broadcastType=BroadcastType.Disabled) ### Bug Fixes diff --git a/api/warden/warden/v1beta3/query.pulsar.go b/api/warden/warden/v1beta3/query.pulsar.go index 6392f9c43..536247b40 100644 --- a/api/warden/warden/v1beta3/query.pulsar.go +++ b/api/warden/warden/v1beta3/query.pulsar.go @@ -11,6 +11,7 @@ import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" io "io" reflect "reflect" sync "sync" @@ -10454,6 +10455,7 @@ var ( fd_QuerySignRequestsRequest_pagination protoreflect.FieldDescriptor fd_QuerySignRequestsRequest_keychain_id protoreflect.FieldDescriptor fd_QuerySignRequestsRequest_status protoreflect.FieldDescriptor + fd_QuerySignRequestsRequest_null protoreflect.FieldDescriptor fd_QuerySignRequestsRequest_broadcast_type protoreflect.FieldDescriptor ) @@ -10463,6 +10465,7 @@ func init() { fd_QuerySignRequestsRequest_pagination = md_QuerySignRequestsRequest.Fields().ByName("pagination") fd_QuerySignRequestsRequest_keychain_id = md_QuerySignRequestsRequest.Fields().ByName("keychain_id") fd_QuerySignRequestsRequest_status = md_QuerySignRequestsRequest.Fields().ByName("status") + fd_QuerySignRequestsRequest_null = md_QuerySignRequestsRequest.Fields().ByName("null") fd_QuerySignRequestsRequest_broadcast_type = md_QuerySignRequestsRequest.Fields().ByName("broadcast_type") } @@ -10549,10 +10552,20 @@ func (x *fastReflection_QuerySignRequestsRequest) Range(f func(protoreflect.Fiel return } } - if x.BroadcastType != 0 { - value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.BroadcastType)) - if !f(fd_QuerySignRequestsRequest_broadcast_type, value) { - return + if x.OptionalBroadcastType != nil { + switch o := x.OptionalBroadcastType.(type) { + case *QuerySignRequestsRequest_Null: + v := o.Null + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(v)) + if !f(fd_QuerySignRequestsRequest_null, value) { + return + } + case *QuerySignRequestsRequest_BroadcastType: + v := o.BroadcastType + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(v)) + if !f(fd_QuerySignRequestsRequest_broadcast_type, value) { + return + } } } } @@ -10576,8 +10589,22 @@ func (x *fastReflection_QuerySignRequestsRequest) Has(fd protoreflect.FieldDescr return x.KeychainId != uint64(0) case "warden.warden.v1beta3.QuerySignRequestsRequest.status": return x.Status != 0 + case "warden.warden.v1beta3.QuerySignRequestsRequest.null": + if x.OptionalBroadcastType == nil { + return false + } else if _, ok := x.OptionalBroadcastType.(*QuerySignRequestsRequest_Null); ok { + return true + } else { + return false + } case "warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type": - return x.BroadcastType != 0 + if x.OptionalBroadcastType == nil { + return false + } else if _, ok := x.OptionalBroadcastType.(*QuerySignRequestsRequest_BroadcastType); ok { + return true + } else { + return false + } default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: warden.warden.v1beta3.QuerySignRequestsRequest")) @@ -10600,8 +10627,10 @@ func (x *fastReflection_QuerySignRequestsRequest) Clear(fd protoreflect.FieldDes x.KeychainId = uint64(0) case "warden.warden.v1beta3.QuerySignRequestsRequest.status": x.Status = 0 + case "warden.warden.v1beta3.QuerySignRequestsRequest.null": + x.OptionalBroadcastType = nil case "warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type": - x.BroadcastType = 0 + x.OptionalBroadcastType = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: warden.warden.v1beta3.QuerySignRequestsRequest")) @@ -10627,9 +10656,22 @@ func (x *fastReflection_QuerySignRequestsRequest) Get(descriptor protoreflect.Fi case "warden.warden.v1beta3.QuerySignRequestsRequest.status": value := x.Status return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + case "warden.warden.v1beta3.QuerySignRequestsRequest.null": + if x.OptionalBroadcastType == nil { + return protoreflect.ValueOfEnum(0) + } else if v, ok := x.OptionalBroadcastType.(*QuerySignRequestsRequest_Null); ok { + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(v.Null)) + } else { + return protoreflect.ValueOfEnum(0) + } case "warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type": - value := x.BroadcastType - return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + if x.OptionalBroadcastType == nil { + return protoreflect.ValueOfEnum(0) + } else if v, ok := x.OptionalBroadcastType.(*QuerySignRequestsRequest_BroadcastType); ok { + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(v.BroadcastType)) + } else { + return protoreflect.ValueOfEnum(0) + } default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: warden.warden.v1beta3.QuerySignRequestsRequest")) @@ -10656,8 +10698,12 @@ func (x *fastReflection_QuerySignRequestsRequest) Set(fd protoreflect.FieldDescr x.KeychainId = value.Uint() case "warden.warden.v1beta3.QuerySignRequestsRequest.status": x.Status = (SignRequestStatus)(value.Enum()) + case "warden.warden.v1beta3.QuerySignRequestsRequest.null": + cv := (structpb.NullValue)(value.Enum()) + x.OptionalBroadcastType = &QuerySignRequestsRequest_Null{Null: cv} case "warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type": - x.BroadcastType = (BroadcastType)(value.Enum()) + cv := (BroadcastType)(value.Enum()) + x.OptionalBroadcastType = &QuerySignRequestsRequest_BroadcastType{BroadcastType: cv} default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: warden.warden.v1beta3.QuerySignRequestsRequest")) @@ -10687,6 +10733,8 @@ func (x *fastReflection_QuerySignRequestsRequest) Mutable(fd protoreflect.FieldD panic(fmt.Errorf("field keychain_id of message warden.warden.v1beta3.QuerySignRequestsRequest is not mutable")) case "warden.warden.v1beta3.QuerySignRequestsRequest.status": panic(fmt.Errorf("field status of message warden.warden.v1beta3.QuerySignRequestsRequest is not mutable")) + case "warden.warden.v1beta3.QuerySignRequestsRequest.null": + panic(fmt.Errorf("field null of message warden.warden.v1beta3.QuerySignRequestsRequest is not mutable")) case "warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type": panic(fmt.Errorf("field broadcast_type of message warden.warden.v1beta3.QuerySignRequestsRequest is not mutable")) default: @@ -10709,6 +10757,8 @@ func (x *fastReflection_QuerySignRequestsRequest) NewField(fd protoreflect.Field return protoreflect.ValueOfUint64(uint64(0)) case "warden.warden.v1beta3.QuerySignRequestsRequest.status": return protoreflect.ValueOfEnum(0) + case "warden.warden.v1beta3.QuerySignRequestsRequest.null": + return protoreflect.ValueOfEnum(0) case "warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type": return protoreflect.ValueOfEnum(0) default: @@ -10724,6 +10774,16 @@ func (x *fastReflection_QuerySignRequestsRequest) NewField(fd protoreflect.Field // It panics if the oneof descriptor does not belong to this message. func (x *fastReflection_QuerySignRequestsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { + case "warden.warden.v1beta3.QuerySignRequestsRequest.optional_broadcast_type": + if x.OptionalBroadcastType == nil { + return nil + } + switch x.OptionalBroadcastType.(type) { + case *QuerySignRequestsRequest_Null: + return x.Descriptor().Fields().ByName("null") + case *QuerySignRequestsRequest_BroadcastType: + return x.Descriptor().Fields().ByName("broadcast_type") + } default: panic(fmt.Errorf("%s is not a oneof field in warden.warden.v1beta3.QuerySignRequestsRequest", d.FullName())) } @@ -10790,7 +10850,16 @@ func (x *fastReflection_QuerySignRequestsRequest) ProtoMethods() *protoiface.Met if x.Status != 0 { n += 1 + runtime.Sov(uint64(x.Status)) } - if x.BroadcastType != 0 { + switch x := x.OptionalBroadcastType.(type) { + case *QuerySignRequestsRequest_Null: + if x == nil { + break + } + n += 1 + runtime.Sov(uint64(x.Null)) + case *QuerySignRequestsRequest_BroadcastType: + if x == nil { + break + } n += 1 + runtime.Sov(uint64(x.BroadcastType)) } if x.unknownFields != nil { @@ -10822,10 +10891,15 @@ func (x *fastReflection_QuerySignRequestsRequest) ProtoMethods() *protoiface.Met i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.BroadcastType != 0 { - i = runtime.EncodeVarint(dAtA, i, uint64(x.BroadcastType)) + switch x := x.OptionalBroadcastType.(type) { + case *QuerySignRequestsRequest_Null: + i = runtime.EncodeVarint(dAtA, i, uint64(x.Null)) i-- dAtA[i] = 0x20 + case *QuerySignRequestsRequest_BroadcastType: + i = runtime.EncodeVarint(dAtA, i, uint64(x.BroadcastType)) + i-- + dAtA[i] = 0x28 } if x.Status != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.Status)) @@ -10975,10 +11049,30 @@ func (x *fastReflection_QuerySignRequestsRequest) ProtoMethods() *protoiface.Met } } case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Null", wireType) + } + var v structpb.NullValue + 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++ + v |= structpb.NullValue(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.OptionalBroadcastType = &QuerySignRequestsRequest_Null{v} + case 5: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BroadcastType", wireType) } - x.BroadcastType = 0 + var v BroadcastType for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -10988,11 +11082,12 @@ func (x *fastReflection_QuerySignRequestsRequest) ProtoMethods() *protoiface.Met } b := dAtA[iNdEx] iNdEx++ - x.BroadcastType |= BroadcastType(b&0x7F) << shift + v |= BroadcastType(b&0x7F) << shift if b < 0x80 { break } } + x.OptionalBroadcastType = &QuerySignRequestsRequest_BroadcastType{v} default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -13299,10 +13394,14 @@ type QuerySignRequestsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pagination *v1beta1.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` - KeychainId uint64 `protobuf:"varint,2,opt,name=keychain_id,json=keychainId,proto3" json:"keychain_id,omitempty"` - Status SignRequestStatus `protobuf:"varint,3,opt,name=status,proto3,enum=warden.warden.v1beta3.SignRequestStatus" json:"status,omitempty"` - BroadcastType BroadcastType `protobuf:"varint,4,opt,name=broadcast_type,json=broadcastType,proto3,enum=warden.warden.v1beta3.BroadcastType" json:"broadcast_type,omitempty"` + Pagination *v1beta1.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` + KeychainId uint64 `protobuf:"varint,2,opt,name=keychain_id,json=keychainId,proto3" json:"keychain_id,omitempty"` + Status SignRequestStatus `protobuf:"varint,3,opt,name=status,proto3,enum=warden.warden.v1beta3.SignRequestStatus" json:"status,omitempty"` + // Types that are assignable to OptionalBroadcastType: + // + // *QuerySignRequestsRequest_Null + // *QuerySignRequestsRequest_BroadcastType + OptionalBroadcastType isQuerySignRequestsRequest_OptionalBroadcastType `protobuf_oneof:"optional_broadcast_type"` } func (x *QuerySignRequestsRequest) Reset() { @@ -13346,13 +13445,43 @@ func (x *QuerySignRequestsRequest) GetStatus() SignRequestStatus { return SignRequestStatus_SIGN_REQUEST_STATUS_UNSPECIFIED } -func (x *QuerySignRequestsRequest) GetBroadcastType() BroadcastType { +func (x *QuerySignRequestsRequest) GetOptionalBroadcastType() isQuerySignRequestsRequest_OptionalBroadcastType { if x != nil { + return x.OptionalBroadcastType + } + return nil +} + +func (x *QuerySignRequestsRequest) GetNull() structpb.NullValue { + if x, ok := x.GetOptionalBroadcastType().(*QuerySignRequestsRequest_Null); ok { + return x.Null + } + return structpb.NullValue(0) +} + +func (x *QuerySignRequestsRequest) GetBroadcastType() BroadcastType { + if x, ok := x.GetOptionalBroadcastType().(*QuerySignRequestsRequest_BroadcastType); ok { return x.BroadcastType } return BroadcastType_BROADCAST_TYPE_DISABLED } +type isQuerySignRequestsRequest_OptionalBroadcastType interface { + isQuerySignRequestsRequest_OptionalBroadcastType() +} + +type QuerySignRequestsRequest_Null struct { + Null structpb.NullValue `protobuf:"varint,4,opt,name=null,proto3,enum=google.protobuf.NullValue,oneof"` +} + +type QuerySignRequestsRequest_BroadcastType struct { + BroadcastType BroadcastType `protobuf:"varint,5,opt,name=broadcast_type,json=broadcastType,proto3,enum=warden.warden.v1beta3.BroadcastType,oneof"` +} + +func (*QuerySignRequestsRequest_Null) isQuerySignRequestsRequest_OptionalBroadcastType() {} + +func (*QuerySignRequestsRequest_BroadcastType) isQuerySignRequestsRequest_OptionalBroadcastType() {} + type QuerySignRequestsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -13477,357 +13606,364 @@ var file_warden_warden_v1beta3_query_proto_rawDesc = []byte{ 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, 0x1a, 0x2a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x77, + 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x2a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x22, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x21, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x5c, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0x5c, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9a, 0x01, + 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x04, 0xc8, 0xde, + 0x1f, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x19, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x9a, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x04, - 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x19, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x09, - 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x73, 0x22, 0x27, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x22, 0xf0, - 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x0a, 0x6b, - 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1f, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, + 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, + 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0c, 0x6b, 0x65, 0x79, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x09, 0x6b, 0x65, + 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0b, 0x6b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x2c, 0x0a, - 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x61, 0x0a, 0x1b, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x6b, 0x65, - 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0a, 0x6b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb2, - 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, - 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, - 0x1f, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, - 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, - 0x65, 0x79, 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x13, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x04, + 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x22, + 0x27, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x52, + 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, + 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x53, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, - 0x00, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x0f, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x69, 0x64, 0x22, 0x58, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x22, 0xf0, 0x01, 0x0a, + 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x25, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x0a, 0x6b, 0x65, 0x79, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x9e, 0x02, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, - 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x65, 0x79, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, + 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, + 0xa9, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0c, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, + 0x6b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x2c, 0x0a, 0x1a, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x61, 0x0a, 0x1b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0a, 0x6b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb2, 0x01, 0x0a, + 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x10, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, + 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x41, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, + 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x13, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x53, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x33, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, + 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, + 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x51, 0x0a, 0x0e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x4b, 0x65, 0x79, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4a, + 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x63, 0x0a, 0x0f, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xe7, 0x02, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x65, 0x79, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, + 0x04, 0xc8, 0xde, 0x1f, 0x01, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, + 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, + 0x4d, 0x0a, 0x0e, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, - 0xde, 0x1f, 0x01, 0x52, 0x0d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x69, 0x67, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x65, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, + 0x0d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x19, + 0x0a, 0x17, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x19, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x73, 0x69, 0x67, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x32, 0xe6, 0x0f, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x67, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x1b, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x65, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x32, + 0xe6, 0x0f, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x06, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x06, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, - 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x30, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x09, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, - 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, - 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, - 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x99, 0x01, 0x0a, 0x09, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x2c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x77, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x0c, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x27, 0x12, 0x25, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x12, 0x9b, 0x01, 0x0a, 0x0b, 0x4b, 0x65, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x25, 0x12, 0x23, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x31, 0x2e, 0x77, 0x61, 0x72, 0x64, + 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x0d, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x30, 0x2e, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x42, 0x79, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x92, 0x01, 0x0a, 0x09, + 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0x2f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, - 0x69, 0x64, 0x12, 0x84, 0x01, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2a, + 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, + 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, + 0x12, 0x99, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x2c, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x77, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x0d, 0x4b, 0x65, - 0x79, 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x30, 0x2e, 0x77, 0x61, - 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x79, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x42, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0xa0, 0x01, 0x0a, + 0x0c, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x12, 0x2f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, - 0x27, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x62, 0x79, 0x5f, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x88, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, - 0x42, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, - 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2f, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x12, + 0x9b, 0x01, 0x0a, 0x0b, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, + 0x2e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0xa9, 0x01, + 0x0a, 0x0e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x31, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x22, 0x12, 0x20, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x5f, 0x62, 0x79, - 0x5f, 0x69, 0x64, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, - 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, - 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x0f, 0x53, 0x69, - 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, 0x32, 0x2e, - 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, - 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x5f, 0x70, 0x62, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, - 0x64, 0x42, 0xf0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x42, - 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x77, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x33, 0x3b, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, - 0xa2, 0x02, 0x03, 0x57, 0x57, 0x58, 0xaa, 0x02, 0x15, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, - 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xca, 0x02, - 0x15, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xe2, 0x02, 0x21, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, - 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x57, 0x61, 0x72, - 0x64, 0x65, 0x6e, 0x3a, 0x3a, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x12, 0x84, 0x01, 0x0a, 0x07, 0x41, 0x6c, + 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2a, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, + 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, + 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, 0x65, 0x79, 0x73, + 0x12, 0x9c, 0x01, 0x0a, 0x0d, 0x4b, 0x65, 0x79, 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x30, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, + 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x4b, 0x65, 0x79, 0x73, 0x42, 0x79, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x6b, + 0x65, 0x79, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x12, + 0x88, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x2a, 0x2e, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2f, 0x6b, 0x65, 0x79, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x53, + 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x67, + 0x65, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0xb5, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x12, 0x32, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x2f, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x62, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x69, 0x64, 0x42, 0xf0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, + 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x51, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2f, 0x77, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x3b, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xa2, 0x02, 0x03, 0x57, 0x57, 0x58, 0xaa, 0x02, 0x15, + 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x2e, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0xca, 0x02, 0x15, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x57, + 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0xe2, 0x02, 0x21, + 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x17, 0x57, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x3a, 0x3a, 0x57, 0x61, 0x72, 0x64, + 0x65, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -13879,8 +14015,9 @@ var file_warden_warden_v1beta3_query_proto_goTypes = []interface{}{ (AddressType)(0), // 32: warden.warden.v1beta3.AddressType (*Key)(nil), // 33: warden.warden.v1beta3.Key (SignRequestStatus)(0), // 34: warden.warden.v1beta3.SignRequestStatus - (BroadcastType)(0), // 35: warden.warden.v1beta3.BroadcastType - (*SignRequest)(nil), // 36: warden.warden.v1beta3.SignRequest + (structpb.NullValue)(0), // 35: google.protobuf.NullValue + (BroadcastType)(0), // 36: warden.warden.v1beta3.BroadcastType + (*SignRequest)(nil), // 37: warden.warden.v1beta3.SignRequest } var file_warden_warden_v1beta3_query_proto_depIdxs = []int32{ 25, // 0: warden.warden.v1beta3.QueryParamsResponse.params:type_name -> warden.warden.v1beta3.Params @@ -13910,41 +14047,42 @@ var file_warden_warden_v1beta3_query_proto_depIdxs = []int32{ 32, // 24: warden.warden.v1beta3.AddressResponse.type:type_name -> warden.warden.v1beta3.AddressType 26, // 25: warden.warden.v1beta3.QuerySignRequestsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest 34, // 26: warden.warden.v1beta3.QuerySignRequestsRequest.status:type_name -> warden.warden.v1beta3.SignRequestStatus - 35, // 27: warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type:type_name -> warden.warden.v1beta3.BroadcastType - 27, // 28: warden.warden.v1beta3.QuerySignRequestsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 36, // 29: warden.warden.v1beta3.QuerySignRequestsResponse.sign_requests:type_name -> warden.warden.v1beta3.SignRequest - 36, // 30: warden.warden.v1beta3.QuerySignRequestByIdResponse.sign_request:type_name -> warden.warden.v1beta3.SignRequest - 0, // 31: warden.warden.v1beta3.Query.Params:input_type -> warden.warden.v1beta3.QueryParamsRequest - 2, // 32: warden.warden.v1beta3.Query.Spaces:input_type -> warden.warden.v1beta3.QuerySpacesRequest - 4, // 33: warden.warden.v1beta3.Query.SpacesByOwner:input_type -> warden.warden.v1beta3.QuerySpacesByOwnerRequest - 5, // 34: warden.warden.v1beta3.Query.Keychains:input_type -> warden.warden.v1beta3.QueryKeychainsRequest - 7, // 35: warden.warden.v1beta3.Query.SpaceById:input_type -> warden.warden.v1beta3.QuerySpaceByIdRequest - 9, // 36: warden.warden.v1beta3.Query.KeychainById:input_type -> warden.warden.v1beta3.QueryKeychainByIdRequest - 11, // 37: warden.warden.v1beta3.Query.KeyRequests:input_type -> warden.warden.v1beta3.QueryKeyRequestsRequest - 13, // 38: warden.warden.v1beta3.Query.KeyRequestById:input_type -> warden.warden.v1beta3.QueryKeyRequestByIdRequest - 15, // 39: warden.warden.v1beta3.Query.AllKeys:input_type -> warden.warden.v1beta3.QueryAllKeysRequest - 17, // 40: warden.warden.v1beta3.Query.KeysBySpaceId:input_type -> warden.warden.v1beta3.QueryKeysBySpaceIdRequest - 18, // 41: warden.warden.v1beta3.Query.KeyById:input_type -> warden.warden.v1beta3.QueryKeyByIdRequest - 21, // 42: warden.warden.v1beta3.Query.SignRequests:input_type -> warden.warden.v1beta3.QuerySignRequestsRequest - 23, // 43: warden.warden.v1beta3.Query.SignRequestById:input_type -> warden.warden.v1beta3.QuerySignRequestByIdRequest - 1, // 44: warden.warden.v1beta3.Query.Params:output_type -> warden.warden.v1beta3.QueryParamsResponse - 3, // 45: warden.warden.v1beta3.Query.Spaces:output_type -> warden.warden.v1beta3.QuerySpacesResponse - 3, // 46: warden.warden.v1beta3.Query.SpacesByOwner:output_type -> warden.warden.v1beta3.QuerySpacesResponse - 6, // 47: warden.warden.v1beta3.Query.Keychains:output_type -> warden.warden.v1beta3.QueryKeychainsResponse - 8, // 48: warden.warden.v1beta3.Query.SpaceById:output_type -> warden.warden.v1beta3.QuerySpaceByIdResponse - 10, // 49: warden.warden.v1beta3.Query.KeychainById:output_type -> warden.warden.v1beta3.QueryKeychainByIdResponse - 12, // 50: warden.warden.v1beta3.Query.KeyRequests:output_type -> warden.warden.v1beta3.QueryKeyRequestsResponse - 14, // 51: warden.warden.v1beta3.Query.KeyRequestById:output_type -> warden.warden.v1beta3.QueryKeyRequestByIdResponse - 16, // 52: warden.warden.v1beta3.Query.AllKeys:output_type -> warden.warden.v1beta3.QueryKeysResponse - 16, // 53: warden.warden.v1beta3.Query.KeysBySpaceId:output_type -> warden.warden.v1beta3.QueryKeysResponse - 19, // 54: warden.warden.v1beta3.Query.KeyById:output_type -> warden.warden.v1beta3.QueryKeyResponse - 22, // 55: warden.warden.v1beta3.Query.SignRequests:output_type -> warden.warden.v1beta3.QuerySignRequestsResponse - 24, // 56: warden.warden.v1beta3.Query.SignRequestById:output_type -> warden.warden.v1beta3.QuerySignRequestByIdResponse - 44, // [44:57] is the sub-list for method output_type - 31, // [31:44] is the sub-list for method input_type - 31, // [31:31] is the sub-list for extension type_name - 31, // [31:31] is the sub-list for extension extendee - 0, // [0:31] is the sub-list for field type_name + 35, // 27: warden.warden.v1beta3.QuerySignRequestsRequest.null:type_name -> google.protobuf.NullValue + 36, // 28: warden.warden.v1beta3.QuerySignRequestsRequest.broadcast_type:type_name -> warden.warden.v1beta3.BroadcastType + 27, // 29: warden.warden.v1beta3.QuerySignRequestsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 37, // 30: warden.warden.v1beta3.QuerySignRequestsResponse.sign_requests:type_name -> warden.warden.v1beta3.SignRequest + 37, // 31: warden.warden.v1beta3.QuerySignRequestByIdResponse.sign_request:type_name -> warden.warden.v1beta3.SignRequest + 0, // 32: warden.warden.v1beta3.Query.Params:input_type -> warden.warden.v1beta3.QueryParamsRequest + 2, // 33: warden.warden.v1beta3.Query.Spaces:input_type -> warden.warden.v1beta3.QuerySpacesRequest + 4, // 34: warden.warden.v1beta3.Query.SpacesByOwner:input_type -> warden.warden.v1beta3.QuerySpacesByOwnerRequest + 5, // 35: warden.warden.v1beta3.Query.Keychains:input_type -> warden.warden.v1beta3.QueryKeychainsRequest + 7, // 36: warden.warden.v1beta3.Query.SpaceById:input_type -> warden.warden.v1beta3.QuerySpaceByIdRequest + 9, // 37: warden.warden.v1beta3.Query.KeychainById:input_type -> warden.warden.v1beta3.QueryKeychainByIdRequest + 11, // 38: warden.warden.v1beta3.Query.KeyRequests:input_type -> warden.warden.v1beta3.QueryKeyRequestsRequest + 13, // 39: warden.warden.v1beta3.Query.KeyRequestById:input_type -> warden.warden.v1beta3.QueryKeyRequestByIdRequest + 15, // 40: warden.warden.v1beta3.Query.AllKeys:input_type -> warden.warden.v1beta3.QueryAllKeysRequest + 17, // 41: warden.warden.v1beta3.Query.KeysBySpaceId:input_type -> warden.warden.v1beta3.QueryKeysBySpaceIdRequest + 18, // 42: warden.warden.v1beta3.Query.KeyById:input_type -> warden.warden.v1beta3.QueryKeyByIdRequest + 21, // 43: warden.warden.v1beta3.Query.SignRequests:input_type -> warden.warden.v1beta3.QuerySignRequestsRequest + 23, // 44: warden.warden.v1beta3.Query.SignRequestById:input_type -> warden.warden.v1beta3.QuerySignRequestByIdRequest + 1, // 45: warden.warden.v1beta3.Query.Params:output_type -> warden.warden.v1beta3.QueryParamsResponse + 3, // 46: warden.warden.v1beta3.Query.Spaces:output_type -> warden.warden.v1beta3.QuerySpacesResponse + 3, // 47: warden.warden.v1beta3.Query.SpacesByOwner:output_type -> warden.warden.v1beta3.QuerySpacesResponse + 6, // 48: warden.warden.v1beta3.Query.Keychains:output_type -> warden.warden.v1beta3.QueryKeychainsResponse + 8, // 49: warden.warden.v1beta3.Query.SpaceById:output_type -> warden.warden.v1beta3.QuerySpaceByIdResponse + 10, // 50: warden.warden.v1beta3.Query.KeychainById:output_type -> warden.warden.v1beta3.QueryKeychainByIdResponse + 12, // 51: warden.warden.v1beta3.Query.KeyRequests:output_type -> warden.warden.v1beta3.QueryKeyRequestsResponse + 14, // 52: warden.warden.v1beta3.Query.KeyRequestById:output_type -> warden.warden.v1beta3.QueryKeyRequestByIdResponse + 16, // 53: warden.warden.v1beta3.Query.AllKeys:output_type -> warden.warden.v1beta3.QueryKeysResponse + 16, // 54: warden.warden.v1beta3.Query.KeysBySpaceId:output_type -> warden.warden.v1beta3.QueryKeysResponse + 19, // 55: warden.warden.v1beta3.Query.KeyById:output_type -> warden.warden.v1beta3.QueryKeyResponse + 22, // 56: warden.warden.v1beta3.Query.SignRequests:output_type -> warden.warden.v1beta3.QuerySignRequestsResponse + 24, // 57: warden.warden.v1beta3.Query.SignRequestById:output_type -> warden.warden.v1beta3.QuerySignRequestByIdResponse + 45, // [45:58] is the sub-list for method output_type + 32, // [32:45] is the sub-list for method input_type + 32, // [32:32] is the sub-list for extension type_name + 32, // [32:32] is the sub-list for extension extendee + 0, // [0:32] is the sub-list for field type_name } func init() { file_warden_warden_v1beta3_query_proto_init() } @@ -14259,6 +14397,10 @@ func file_warden_warden_v1beta3_query_proto_init() { } } } + file_warden_warden_v1beta3_query_proto_msgTypes[21].OneofWrappers = []interface{}{ + (*QuerySignRequestsRequest_Null)(nil), + (*QuerySignRequestsRequest_BroadcastType)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/precompiles/warden/IWarden.go b/precompiles/warden/IWarden.go index 97d2280de..f30e8771a 100644 --- a/precompiles/warden/IWarden.go +++ b/precompiles/warden/IWarden.go @@ -26,6 +26,7 @@ var ( _ = common.Big1 _ = types.BloomLookup _ = event.NewSubscription + _ = abi.ConvertType ) // AddressesResponse is an auto generated low-level Go binding around an user-defined struct. @@ -132,7 +133,7 @@ type TypesPageResponse struct { // IWardenMetaData contains all meta data concerning the IWarden contract. var IWardenMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"adminsCount\",\"type\":\"uint64\"}],\"name\":\"AddKeychainAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newWriter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"writersCount\",\"type\":\"uint64\"}],\"name\":\"AddKeychainWriter\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"AddSpaceOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"FulfilSignRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"name\":\"NewKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewKeyRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewKeychain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"name\":\"NewSignRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ownersCount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"name\":\"NewSpace\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"RejectKeyRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"RejectSignRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"adminsCount\",\"type\":\"uint64\"}],\"name\":\"RemoveKeychainAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"removedOwner\",\"type\":\"address\"}],\"name\":\"RemoveSpaceOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"name\":\"UpdateKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structKeychainFees\",\"name\":\"keychainFees\",\"type\":\"tuple\"}],\"name\":\"UpdateKeychain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"name\":\"UpdateSpace\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"addKeychainAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newWriter\",\"type\":\"address\"}],\"name\":\"addKeychainWriter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"addSpaceOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"int32[]\",\"name\":\"deriveAddresses\",\"type\":\"int32[]\"}],\"name\":\"allKeys\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"addressValue\",\"type\":\"string\"},{\"internalType\":\"enumAddressType\",\"name\":\"addressType\",\"type\":\"uint8\"}],\"internalType\":\"structAddressesResponse[]\",\"name\":\"addresses\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyResponse[]\",\"name\":\"keys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"pubKey\",\"type\":\"bytes\"}],\"name\":\"fulfilKeyRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"signedData\",\"type\":\"bytes\"}],\"name\":\"fulfilSignRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"int32[]\",\"name\":\"deriveAddresses\",\"type\":\"int32[]\"}],\"name\":\"keyById\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"addressValue\",\"type\":\"string\"},{\"internalType\":\"enumAddressType\",\"name\":\"addressType\",\"type\":\"uint8\"}],\"internalType\":\"structAddressesResponse[]\",\"name\":\"addresses\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyResponse\",\"name\":\"key\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"keyRequestById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"enumKeyRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyRequest\",\"name\":\"keyRequest\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"}],\"name\":\"keyRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"enumKeyRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyRequest[]\",\"name\":\"keyRequests\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"keychainById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"writers\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"fees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"internalType\":\"structKeychain\",\"name\":\"keychain\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"}],\"name\":\"keychains\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"writers\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"fees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"internalType\":\"structKeychain[]\",\"name\":\"keychains\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"int32[]\",\"name\":\"deriveAddresses\",\"type\":\"int32[]\"}],\"name\":\"keysBySpaceId\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"addressValue\",\"type\":\"string\"},{\"internalType\":\"enumAddressType\",\"name\":\"addressType\",\"type\":\"uint8\"}],\"internalType\":\"structAddressesResponse[]\",\"name\":\"addresses\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyResponse[]\",\"name\":\"keys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"maxKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"newKeyRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"keychainFees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"name\":\"newKeychain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"analyzers\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"encryptionKey\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"maxKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"name\":\"newSignRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"additionalOwners\",\"type\":\"address[]\"}],\"name\":\"newSpace\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"}],\"name\":\"rejectKeyRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"}],\"name\":\"rejectSignRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"removeKeychainAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"removeSpaceOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"signRequestById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"dataForSigning\",\"type\":\"bytes\"},{\"internalType\":\"enumSignRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"encryptionKey\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"internalType\":\"structSignRequest\",\"name\":\"signRequest\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumSignRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"name\":\"signRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"dataForSigning\",\"type\":\"bytes\"},{\"internalType\":\"enumSignRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"encryptionKey\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"internalType\":\"structSignRequest[]\",\"name\":\"signRequests\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"spaceById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structSpace\",\"name\":\"space\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"}],\"name\":\"spaces\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structSpace[]\",\"name\":\"spaces\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"spacesByOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structSpace[]\",\"name\":\"spaces\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"updateKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"keychainFees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"name\":\"updateKeychain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"updateSpace\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"adminsCount\",\"type\":\"uint64\"}],\"name\":\"AddKeychainAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newWriter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"writersCount\",\"type\":\"uint64\"}],\"name\":\"AddKeychainWriter\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"AddSpaceOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"FulfilSignRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"name\":\"NewKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewKeyRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewKeychain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"name\":\"NewSignRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ownersCount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"name\":\"NewSpace\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"RejectKeyRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"RejectSignRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"adminsCount\",\"type\":\"uint64\"}],\"name\":\"RemoveKeychainAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"removedOwner\",\"type\":\"address\"}],\"name\":\"RemoveSpaceOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"name\":\"UpdateKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structKeychainFees\",\"name\":\"keychainFees\",\"type\":\"tuple\"}],\"name\":\"UpdateKeychain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"name\":\"UpdateSpace\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"addKeychainAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newWriter\",\"type\":\"address\"}],\"name\":\"addKeychainWriter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"addSpaceOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"int32[]\",\"name\":\"deriveAddresses\",\"type\":\"int32[]\"}],\"name\":\"allKeys\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"addressValue\",\"type\":\"string\"},{\"internalType\":\"enumAddressType\",\"name\":\"addressType\",\"type\":\"uint8\"}],\"internalType\":\"structAddressesResponse[]\",\"name\":\"addresses\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyResponse[]\",\"name\":\"keys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"pubKey\",\"type\":\"bytes\"}],\"name\":\"fulfilKeyRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"signedData\",\"type\":\"bytes\"}],\"name\":\"fulfilSignRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"int32[]\",\"name\":\"deriveAddresses\",\"type\":\"int32[]\"}],\"name\":\"keyById\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"addressValue\",\"type\":\"string\"},{\"internalType\":\"enumAddressType\",\"name\":\"addressType\",\"type\":\"uint8\"}],\"internalType\":\"structAddressesResponse[]\",\"name\":\"addresses\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyResponse\",\"name\":\"key\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"keyRequestById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"enumKeyRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyRequest\",\"name\":\"keyRequest\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"}],\"name\":\"keyRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"enumKeyRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyRequest[]\",\"name\":\"keyRequests\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"keychainById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"writers\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"fees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"internalType\":\"structKeychain\",\"name\":\"keychain\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"}],\"name\":\"keychains\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"writers\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"fees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"internalType\":\"structKeychain[]\",\"name\":\"keychains\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"int32[]\",\"name\":\"deriveAddresses\",\"type\":\"int32[]\"}],\"name\":\"keysBySpaceId\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"addressValue\",\"type\":\"string\"},{\"internalType\":\"enumAddressType\",\"name\":\"addressType\",\"type\":\"uint8\"}],\"internalType\":\"structAddressesResponse[]\",\"name\":\"addresses\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeyResponse[]\",\"name\":\"keys\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumKeyType\",\"name\":\"keyType\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"maxKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"newKeyRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"keychainFees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"name\":\"newKeychain\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"analyzers\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"encryptionKey\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"maxKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"name\":\"newSignRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"additionalOwners\",\"type\":\"address[]\"}],\"name\":\"newSpace\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"}],\"name\":\"rejectKeyRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"rejectReason\",\"type\":\"string\"}],\"name\":\"rejectSignRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"removeKeychainAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"removeSpaceOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"signRequestById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"dataForSigning\",\"type\":\"bytes\"},{\"internalType\":\"enumSignRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"encryptionKey\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"internalType\":\"structSignRequest\",\"name\":\"signRequest\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"enumSignRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enumOptionalBroadcastType\",\"name\":\"optionalBroadcastType\",\"type\":\"uint8\"}],\"name\":\"signRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"dataForSigning\",\"type\":\"bytes\"},{\"internalType\":\"enumSignRequestStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"encryptionKey\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"deductedKeychainFees\",\"type\":\"tuple[]\"},{\"internalType\":\"enumBroadcastType\",\"name\":\"broadcastType\",\"type\":\"uint8\"}],\"internalType\":\"structSignRequest[]\",\"name\":\"signRequests\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"name\":\"spaceById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structSpace\",\"name\":\"space\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"}],\"name\":\"spaces\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structSpace[]\",\"name\":\"spaces\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offset\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"limit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"countTotal\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"reverse\",\"type\":\"bool\"}],\"internalType\":\"structTypes.PageRequest\",\"name\":\"pageRequest\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"spacesByOwner\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"}],\"internalType\":\"structSpace[]\",\"name\":\"spaces\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nextKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"}],\"internalType\":\"structTypes.PageResponse\",\"name\":\"pageResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keyId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"updateKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"keychainId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"keyReq\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structTypes.Coin[]\",\"name\":\"sigReq\",\"type\":\"tuple[]\"}],\"internalType\":\"structKeychainFees\",\"name\":\"keychainFees\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"keybaseId\",\"type\":\"string\"}],\"name\":\"updateKeychain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"spaceId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectAdminTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"approveSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"rejectSignTemplateId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actionTimeoutHeight\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"expectedApproveExpression\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"expectedRejectExpression\",\"type\":\"string\"}],\"name\":\"updateSpace\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // IWardenABI is the input ABI used to generate the binding from. @@ -236,11 +237,11 @@ func NewIWardenFilterer(address common.Address, filterer bind.ContractFilterer) // bindIWarden binds a generic wrapper to an already deployed contract. func bindIWarden(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(IWardenABI)) + parsed, err := IWardenMetaData.GetAbi() if err != nil { return nil, err } - return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil + return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil } // Call invokes the (constant) contract method with params as input values and @@ -587,13 +588,13 @@ func (_IWarden *IWardenCallerSession) SignRequestById(id uint64) (SignRequest, e // SignRequests is a free data retrieval call binding the contract method 0xf919b270. // -// Solidity: function signRequests((bytes,uint64,uint64,bool,bool) pageRequest, uint64 keychainId, uint8 status, uint8 broadcastType) view returns((uint64,address,uint64,bytes,uint8,bytes,bytes,(string,uint256)[],uint8)[] signRequests, (bytes,uint64) pageResponse) -func (_IWarden *IWardenCaller) SignRequests(opts *bind.CallOpts, pageRequest TypesPageRequest, keychainId uint64, status uint8, broadcastType uint8) (struct { +// Solidity: function signRequests((bytes,uint64,uint64,bool,bool) pageRequest, uint64 keychainId, uint8 status, uint8 optionalBroadcastType) view returns((uint64,address,uint64,bytes,uint8,bytes,bytes,(string,uint256)[],uint8)[] signRequests, (bytes,uint64) pageResponse) +func (_IWarden *IWardenCaller) SignRequests(opts *bind.CallOpts, pageRequest TypesPageRequest, keychainId uint64, status uint8, optionalBroadcastType uint8) (struct { SignRequests []SignRequest PageResponse TypesPageResponse }, error) { var out []interface{} - err := _IWarden.contract.Call(opts, &out, "signRequests", pageRequest, keychainId, status, broadcastType) + err := _IWarden.contract.Call(opts, &out, "signRequests", pageRequest, keychainId, status, optionalBroadcastType) outstruct := new(struct { SignRequests []SignRequest @@ -612,22 +613,22 @@ func (_IWarden *IWardenCaller) SignRequests(opts *bind.CallOpts, pageRequest Typ // SignRequests is a free data retrieval call binding the contract method 0xf919b270. // -// Solidity: function signRequests((bytes,uint64,uint64,bool,bool) pageRequest, uint64 keychainId, uint8 status, uint8 broadcastType) view returns((uint64,address,uint64,bytes,uint8,bytes,bytes,(string,uint256)[],uint8)[] signRequests, (bytes,uint64) pageResponse) -func (_IWarden *IWardenSession) SignRequests(pageRequest TypesPageRequest, keychainId uint64, status uint8, broadcastType uint8) (struct { +// Solidity: function signRequests((bytes,uint64,uint64,bool,bool) pageRequest, uint64 keychainId, uint8 status, uint8 optionalBroadcastType) view returns((uint64,address,uint64,bytes,uint8,bytes,bytes,(string,uint256)[],uint8)[] signRequests, (bytes,uint64) pageResponse) +func (_IWarden *IWardenSession) SignRequests(pageRequest TypesPageRequest, keychainId uint64, status uint8, optionalBroadcastType uint8) (struct { SignRequests []SignRequest PageResponse TypesPageResponse }, error) { - return _IWarden.Contract.SignRequests(&_IWarden.CallOpts, pageRequest, keychainId, status, broadcastType) + return _IWarden.Contract.SignRequests(&_IWarden.CallOpts, pageRequest, keychainId, status, optionalBroadcastType) } // SignRequests is a free data retrieval call binding the contract method 0xf919b270. // -// Solidity: function signRequests((bytes,uint64,uint64,bool,bool) pageRequest, uint64 keychainId, uint8 status, uint8 broadcastType) view returns((uint64,address,uint64,bytes,uint8,bytes,bytes,(string,uint256)[],uint8)[] signRequests, (bytes,uint64) pageResponse) -func (_IWarden *IWardenCallerSession) SignRequests(pageRequest TypesPageRequest, keychainId uint64, status uint8, broadcastType uint8) (struct { +// Solidity: function signRequests((bytes,uint64,uint64,bool,bool) pageRequest, uint64 keychainId, uint8 status, uint8 optionalBroadcastType) view returns((uint64,address,uint64,bytes,uint8,bytes,bytes,(string,uint256)[],uint8)[] signRequests, (bytes,uint64) pageResponse) +func (_IWarden *IWardenCallerSession) SignRequests(pageRequest TypesPageRequest, keychainId uint64, status uint8, optionalBroadcastType uint8) (struct { SignRequests []SignRequest PageResponse TypesPageResponse }, error) { - return _IWarden.Contract.SignRequests(&_IWarden.CallOpts, pageRequest, keychainId, status, broadcastType) + return _IWarden.Contract.SignRequests(&_IWarden.CallOpts, pageRequest, keychainId, status, optionalBroadcastType) } // SpaceById is a free data retrieval call binding the contract method 0xe4c1fc79. diff --git a/precompiles/warden/IWarden.sol b/precompiles/warden/IWarden.sol index 1b96d4122..e5c6afc82 100644 --- a/precompiles/warden/IWarden.sol +++ b/precompiles/warden/IWarden.sol @@ -113,6 +113,12 @@ enum BroadcastType { Automatic } +enum OptionalBroadcastType { + Nonspecified, + Disabled, + Automatic +} + /** * @author Warden Team * @title x/warden Interface @@ -431,14 +437,14 @@ interface IWarden { /// @param pageRequest The pagination details /// @param keychainId The id of the keychain /// @param status The sign requests status - /// @param broadcastType The broadcast type + /// @param optionalBroadcastType The optional broadcast type to query /// @return signRequests An array of `SignRequest` structs containing the retrieved sign requests /// @return pageResponse pagination details function signRequests( Types.PageRequest calldata pageRequest, uint64 keychainId, SignRequestStatus status, - BroadcastType broadcastType + OptionalBroadcastType optionalBroadcastType ) external view returns(SignRequest[] memory signRequests, Types.PageResponse memory pageResponse); /// @dev Defines a method to query space by id. diff --git a/precompiles/warden/abi.json b/precompiles/warden/abi.json index 6f353338c..2e854b2f6 100644 --- a/precompiles/warden/abi.json +++ b/precompiles/warden/abi.json @@ -1926,8 +1926,8 @@ "type": "uint8" }, { - "internalType": "enum BroadcastType", - "name": "broadcastType", + "internalType": "enum OptionalBroadcastType", + "name": "optionalBroadcastType", "type": "uint8" } ], diff --git a/precompiles/warden/query_types.go b/precompiles/warden/query_types.go index 9f7659fea..f690c242d 100644 --- a/precompiles/warden/query_types.go +++ b/precompiles/warden/query_types.go @@ -395,23 +395,48 @@ func newSignRequestsRequest(method *abi.Method, args []interface{}) (*types.Quer if _, ok := types.SignRequestStatus_name[int32(input.Status)]; !ok { return nil, fmt.Errorf("invalid Status value: %d", input.Status) } - if _, ok := types.BroadcastType_name[int32(input.BroadcastType)]; !ok { - return nil, fmt.Errorf("invalid BroadcastType value: %d", input.BroadcastType) + + broadcastType := convertToBroadcastType(input.OptionalBroadcastType) + if broadcastType != nil { + if _, ok := types.BroadcastType_name[int32(*broadcastType)]; !ok { + return nil, fmt.Errorf("invalid BroadcastType value: %d", *broadcastType) + } + + querySignRequestBroadcastType := types.QuerySignRequestsRequest_BroadcastType{ + BroadcastType: *convertToBroadcastType(input.OptionalBroadcastType), + } + return &types.QuerySignRequestsRequest{ + Pagination: &input.PageRequest, + KeychainId: input.KeychainId, + Status: types.SignRequestStatus(int32(input.Status)), + OptionalBroadcastType: &querySignRequestBroadcastType, + }, nil + } else { + return &types.QuerySignRequestsRequest{ + Pagination: &input.PageRequest, + KeychainId: input.KeychainId, + Status: types.SignRequestStatus(int32(input.Status)), + OptionalBroadcastType: nil, + }, nil } +} - return &types.QuerySignRequestsRequest{ - Pagination: &input.PageRequest, - KeychainId: input.KeychainId, - Status: types.SignRequestStatus(int32(input.Status)), - BroadcastType: types.BroadcastType(int32(input.BroadcastType)), - }, nil +type optionalBroadcastType = uint8 + +func convertToBroadcastType(obt optionalBroadcastType) *types.BroadcastType { + if obt == 0 { + return nil + } + + broadcastType := types.BroadcastType(int32(obt - 1)) + return &broadcastType } type signRequestsInput struct { - PageRequest query.PageRequest - KeychainId uint64 - Status uint8 - BroadcastType uint8 + PageRequest query.PageRequest + KeychainId uint64 + Status uint8 + OptionalBroadcastType optionalBroadcastType } type signRequestsOutput struct { diff --git a/proto/warden/warden/v1beta3/query.proto b/proto/warden/warden/v1beta3/query.proto index 8293954ad..97c681ac1 100644 --- a/proto/warden/warden/v1beta3/query.proto +++ b/proto/warden/warden/v1beta3/query.proto @@ -4,6 +4,7 @@ package warden.warden.v1beta3; import "amino/amino.proto"; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; +import "google/protobuf/struct.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "warden/warden/v1beta3/key.proto"; import "warden/warden/v1beta3/keychain.proto"; @@ -181,8 +182,11 @@ message AddressResponse { message QuerySignRequestsRequest { cosmos.base.query.v1beta1.PageRequest pagination = 1; uint64 keychain_id = 2; - SignRequestStatus status = 3 [ (gogoproto.nullable) = true ]; - BroadcastType broadcast_type = 4 [ (gogoproto.nullable) = true ]; + SignRequestStatus status = 3 [(gogoproto.nullable) = true]; + oneof optional_broadcast_type { + google.protobuf.NullValue null = 4; + BroadcastType broadcast_type = 5; + } } message QuerySignRequestsResponse { diff --git a/tests/cases/warden_precompile_action.go b/tests/cases/warden_precompile_action.go index a28419a66..669a009c7 100644 --- a/tests/cases/warden_precompile_action.go +++ b/tests/cases/warden_precompile_action.go @@ -215,8 +215,8 @@ func (c *Test_WardenPrecompileAction) Run(t *testing.T, ctx context.Context, bui require.NoError(t, err) require.Len(t, keyRequests2.KeyRequests, 1) - // newSignRequest - newSignRequestTx, err := iWardenClient.NewSignRequest( + // newSignRequest automatic + signRequestAutomatic, err := iWardenClient.NewSignRequest( alice.TransactOps(t, context.Background(), evmClient), 1, []byte{30, 134, 120, 103, 230, 84, 237, 151, 116, 242, 69, 17, 228, 215, 27, 180, 86, 107, 152, 98, 133, 215, 201, 146, 4, 157, 189, 118, 13, 42, 35, 142}, @@ -227,30 +227,30 @@ func (c *Test_WardenPrecompileAction) Run(t *testing.T, ctx context.Context, bui 0, "any(1, warden.space.owners)", "any(1, warden.space.owners)", - uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED)) + uint8(types.BroadcastType_BROADCAST_TYPE_AUTOMATIC)) require.NoError(t, err) - newSignRequestTxReceipt, err := bind.WaitMined(ctx, evmClient, newSignRequestTx) + newSignRequestAutomaticTxReceipt, err := bind.WaitMined(ctx, evmClient, signRequestAutomatic) require.NoError(t, err) - newSignRequestEvents, err := checks.GetParsedEventsOnly(newSignRequestTxReceipt, iWardenClient.ParseNewSignRequest) + newSignRequestAutomaticEvents, err := checks.GetParsedEventsOnly(newSignRequestAutomaticTxReceipt, iWardenClient.ParseNewSignRequest) require.NoError(t, err) - require.Len(t, newSignRequestEvents, 1) - require.Equal(t, newSignRequestEvents[0].Id, uint64(1)) - require.Equal(t, newSignRequestEvents[0].KeyId, uint64(1)) - require.Equal(t, newSignRequestEvents[0].Creator, alice.EthAddress(t)) - require.Equal(t, newSignRequestEvents[0].BroadcastType, uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED)) + require.Len(t, newSignRequestAutomaticEvents, 1) + require.Equal(t, newSignRequestAutomaticEvents[0].Id, uint64(1)) + require.Equal(t, newSignRequestAutomaticEvents[0].KeyId, uint64(1)) + require.Equal(t, newSignRequestAutomaticEvents[0].Creator, alice.EthAddress(t)) + require.Equal(t, newSignRequestAutomaticEvents[0].BroadcastType, uint8(types.BroadcastType_BROADCAST_TYPE_AUTOMATIC)) actions4, err := iActClient.Actions(alice.CallOps(t), act.TypesPageRequest{}) require.NoError(t, err) require.Len(t, actions4.Actions, 4) - signRequests, err := iWardenClient.SignRequests(alice.CallOps(t), warden.TypesPageRequest{}, 1, uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), 0) + signRequestsAutomatic, err := iWardenClient.SignRequests(alice.CallOps(t), warden.TypesPageRequest{}, 1, uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), uint8(types.BroadcastType_BROADCAST_TYPE_AUTOMATIC)+1) require.NoError(t, err) - require.Len(t, signRequests.SignRequests, 1) + require.Len(t, signRequestsAutomatic.SignRequests, 1) require.Equal(t, warden.SignRequest{ Id: 1, Creator: alice.EthAddress(t), @@ -260,16 +260,83 @@ func (c *Test_WardenPrecompileAction) Run(t *testing.T, ctx context.Context, bui DataForSigning: []byte{30, 134, 120, 103, 230, 84, 237, 151, 116, 242, 69, 17, 228, 215, 27, 180, 86, 107, 152, 98, 133, 215, 201, 146, 4, 157, 189, 118, 13, 42, 35, 142}, DeductedKeychainFees: []warden.TypesCoin{}, Result: []byte{}, + BroadcastType: uint8(types.BroadcastType_BROADCAST_TYPE_AUTOMATIC), + }, signRequestsAutomatic.SignRequests[0]) + + signRequestsDisabled, err := iWardenClient.SignRequests( + alice.CallOps(t), + warden.TypesPageRequest{}, + 1, + uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), + uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED+1)) + require.NoError(t, err) + require.Len(t, signRequestsDisabled.SignRequests, 0) + + // newSignRequest disabled + newSignRequestDisabledTx, err := iWardenClient.NewSignRequest( + alice.TransactOps(t, context.Background(), evmClient), + 1, + []byte{30, 134, 120, 103, 230, 84, 237, 151, 116, 242, 69, 17, 228, 215, 27, 180, 86, 107, 152, 98, 133, 215, 201, 146, 4, 157, 189, 118, 13, 42, 35, 142}, + [][]byte{}, + []byte{}, + []warden.TypesCoin{}, + 2, + 0, + "any(1, warden.space.owners)", + "any(1, warden.space.owners)", + uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED)) + require.NoError(t, err) + + newSignRequestDisabledTxReceipt, err := bind.WaitMined(ctx, evmClient, newSignRequestDisabledTx) + require.NoError(t, err) + + newSignRequestDisabledEvents, err := checks.GetParsedEventsOnly(newSignRequestDisabledTxReceipt, iWardenClient.ParseNewSignRequest) + require.NoError(t, err) + + require.Len(t, newSignRequestDisabledEvents, 1) + require.Equal(t, newSignRequestDisabledEvents[0].Id, uint64(2)) + require.Equal(t, newSignRequestDisabledEvents[0].KeyId, uint64(1)) + require.Equal(t, newSignRequestDisabledEvents[0].Creator, alice.EthAddress(t)) + require.Equal(t, newSignRequestDisabledEvents[0].BroadcastType, uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED)) + + actions5, err := iActClient.Actions(alice.CallOps(t), act.TypesPageRequest{}) + + require.NoError(t, err) + require.Len(t, actions5.Actions, 5) + + signRequestsDisabled, err = iWardenClient.SignRequests(alice.CallOps(t), warden.TypesPageRequest{}, 1, uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED)+1) + + require.NoError(t, err) + require.Len(t, signRequestsDisabled.SignRequests, 1) + require.Equal(t, warden.SignRequest{ + Id: 2, + Creator: alice.EthAddress(t), + KeyId: 1, + Status: uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), + EncryptionKey: []byte{}, + DataForSigning: []byte{30, 134, 120, 103, 230, 84, 237, 151, 116, 242, 69, 17, 228, 215, 27, 180, 86, 107, 152, 98, 133, 215, 201, 146, 4, 157, 189, 118, 13, 42, 35, 142}, + DeductedKeychainFees: []warden.TypesCoin{}, + Result: []byte{}, BroadcastType: uint8(types.BroadcastType_BROADCAST_TYPE_DISABLED), - }, signRequests.SignRequests[0]) + }, signRequestsDisabled.SignRequests[0]) - signRequestsAutomatic, err := iWardenClient.SignRequests( + signRequestsAutomatic, err = iWardenClient.SignRequests( alice.CallOps(t), warden.TypesPageRequest{}, 1, uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), - uint8(types.BroadcastType_BROADCAST_TYPE_AUTOMATIC)) - require.Len(t, signRequestsAutomatic.SignRequests, 0) + uint8(types.BroadcastType_BROADCAST_TYPE_AUTOMATIC+1)) + require.NoError(t, err) + require.Len(t, signRequestsAutomatic.SignRequests, 1) + + signRequests, err := iWardenClient.SignRequests( + alice.CallOps(t), + warden.TypesPageRequest{}, + 1, + uint8(types.SignRequestStatus_SIGN_REQUEST_STATUS_PENDING), + 0) + require.NoError(t, err) + require.Len(t, signRequests.SignRequests, 2) // updateKey newTemplateTx, err := iActClient.NewTemplate( @@ -302,10 +369,10 @@ func (c *Test_WardenPrecompileAction) Run(t *testing.T, ctx context.Context, bui require.Equal(t, updateKeyEvents[0].ApproveTemplateId, uint64(1)) require.Equal(t, updateKeyEvents[0].RejectTemplateId, uint64(1)) - actions5, err := iActClient.Actions(alice.CallOps(t), act.TypesPageRequest{}) + actions6, err := iActClient.Actions(alice.CallOps(t), act.TypesPageRequest{}) require.NoError(t, err) - require.Len(t, actions5.Actions, 5) + require.Len(t, actions6.Actions, 6) key, err := iWardenClient.KeyById( alice.CallOps(t), @@ -351,10 +418,10 @@ func (c *Test_WardenPrecompileAction) Run(t *testing.T, ctx context.Context, bui require.Equal(t, updateSpaceEvents[0].ApproveSignTemplateId, uint64(1)) require.Equal(t, updateSpaceEvents[0].RejectSignTemplateId, uint64(1)) - actions6, err := iActClient.Actions(alice.CallOps(t), act.TypesPageRequest{}) + actions7, err := iActClient.Actions(alice.CallOps(t), act.TypesPageRequest{}) require.NoError(t, err) - require.Len(t, actions6.Actions, 6) + require.Len(t, actions7.Actions, 7) space, err := iWardenClient.SpaceById(alice.CallOps(t), 1) diff --git a/warden/x/warden/keeper/query_sign_requests.go b/warden/x/warden/keeper/query_sign_requests.go index 1c69e14d3..68c01c0f8 100644 --- a/warden/x/warden/keeper/query_sign_requests.go +++ b/warden/x/warden/keeper/query_sign_requests.go @@ -32,7 +32,7 @@ func (k Keeper) SignRequests(goCtx context.Context, req *types.QuerySignRequests return false, nil } - if value.BroadcastType != req.BroadcastType { + if req.OptionalBroadcastType != nil && value.BroadcastType != req.GetBroadcastType() { return false, nil } diff --git a/warden/x/warden/types/v1beta3/query.pb.go b/warden/x/warden/types/v1beta3/query.pb.go index 2161ce90e..f53b05652 100644 --- a/warden/x/warden/types/v1beta3/query.pb.go +++ b/warden/x/warden/types/v1beta3/query.pb.go @@ -15,6 +15,7 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" + structpb "google.golang.org/protobuf/types/known/structpb" io "io" math "math" math_bits "math/bits" @@ -1063,10 +1064,14 @@ func (m *AddressResponse) GetType() AddressType { } type QuerySignRequestsRequest struct { - Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` - KeychainId uint64 `protobuf:"varint,2,opt,name=keychain_id,json=keychainId,proto3" json:"keychain_id,omitempty"` - Status SignRequestStatus `protobuf:"varint,3,opt,name=status,proto3,enum=warden.warden.v1beta3.SignRequestStatus" json:"status,omitempty"` - BroadcastType BroadcastType `protobuf:"varint,4,opt,name=broadcast_type,json=broadcastType,proto3,enum=warden.warden.v1beta3.BroadcastType" json:"broadcast_type,omitempty"` + Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` + KeychainId uint64 `protobuf:"varint,2,opt,name=keychain_id,json=keychainId,proto3" json:"keychain_id,omitempty"` + Status SignRequestStatus `protobuf:"varint,3,opt,name=status,proto3,enum=warden.warden.v1beta3.SignRequestStatus" json:"status,omitempty"` + // Types that are valid to be assigned to OptionalBroadcastType: + // + // *QuerySignRequestsRequest_Null + // *QuerySignRequestsRequest_BroadcastType + OptionalBroadcastType isQuerySignRequestsRequest_OptionalBroadcastType `protobuf_oneof:"optional_broadcast_type"` } func (m *QuerySignRequestsRequest) Reset() { *m = QuerySignRequestsRequest{} } @@ -1102,6 +1107,29 @@ func (m *QuerySignRequestsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QuerySignRequestsRequest proto.InternalMessageInfo +type isQuerySignRequestsRequest_OptionalBroadcastType interface { + isQuerySignRequestsRequest_OptionalBroadcastType() + MarshalTo([]byte) (int, error) + Size() int +} + +type QuerySignRequestsRequest_Null struct { + Null structpb.NullValue `protobuf:"varint,4,opt,name=null,proto3,enum=google.protobuf.NullValue,oneof" json:"null,omitempty"` +} +type QuerySignRequestsRequest_BroadcastType struct { + BroadcastType BroadcastType `protobuf:"varint,5,opt,name=broadcast_type,json=broadcastType,proto3,enum=warden.warden.v1beta3.BroadcastType,oneof" json:"broadcast_type,omitempty"` +} + +func (*QuerySignRequestsRequest_Null) isQuerySignRequestsRequest_OptionalBroadcastType() {} +func (*QuerySignRequestsRequest_BroadcastType) isQuerySignRequestsRequest_OptionalBroadcastType() {} + +func (m *QuerySignRequestsRequest) GetOptionalBroadcastType() isQuerySignRequestsRequest_OptionalBroadcastType { + if m != nil { + return m.OptionalBroadcastType + } + return nil +} + func (m *QuerySignRequestsRequest) GetPagination() *query.PageRequest { if m != nil { return m.Pagination @@ -1123,13 +1151,28 @@ func (m *QuerySignRequestsRequest) GetStatus() SignRequestStatus { return SignRequestStatus_SIGN_REQUEST_STATUS_UNSPECIFIED } +func (m *QuerySignRequestsRequest) GetNull() structpb.NullValue { + if x, ok := m.GetOptionalBroadcastType().(*QuerySignRequestsRequest_Null); ok { + return x.Null + } + return structpb.NullValue_NULL_VALUE +} + func (m *QuerySignRequestsRequest) GetBroadcastType() BroadcastType { - if m != nil { - return m.BroadcastType + if x, ok := m.GetOptionalBroadcastType().(*QuerySignRequestsRequest_BroadcastType); ok { + return x.BroadcastType } return BroadcastType_BROADCAST_TYPE_DISABLED } +// XXX_OneofWrappers is for the internal use of the proto package. +func (*QuerySignRequestsRequest) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*QuerySignRequestsRequest_Null)(nil), + (*QuerySignRequestsRequest_BroadcastType)(nil), + } +} + type QuerySignRequestsResponse struct { Pagination *query.PageResponse `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` SignRequests []*SignRequest `protobuf:"bytes,2,rep,name=sign_requests,json=signRequests,proto3" json:"sign_requests,omitempty"` @@ -1301,91 +1344,95 @@ func init() { func init() { proto.RegisterFile("warden/warden/v1beta3/query.proto", fileDescriptor_f988bcedf7389875) } var fileDescriptor_f988bcedf7389875 = []byte{ - // 1335 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x98, 0xcb, 0x6f, 0x1b, 0xd5, - 0x17, 0xc7, 0x73, 0x1d, 0x37, 0xa9, 0x4f, 0x5e, 0xed, 0xfd, 0xa5, 0x3f, 0x5c, 0x37, 0xb1, 0xd3, - 0xdb, 0xa6, 0x71, 0x43, 0xe3, 0x49, 0x1c, 0x09, 0x09, 0xd8, 0x10, 0x43, 0x1b, 0x85, 0x20, 0xd1, - 0x4e, 0x90, 0x40, 0x08, 0xc9, 0x1a, 0x7b, 0xae, 0xdc, 0x51, 0x12, 0x8f, 0xeb, 0x99, 0xb4, 0x0c, - 0x4b, 0x84, 0x10, 0x4b, 0x54, 0x56, 0xbc, 0x91, 0x90, 0x10, 0x5d, 0x20, 0x21, 0x24, 0xfe, 0x87, - 0x2e, 0x2b, 0x75, 0xc3, 0x0a, 0xa1, 0x04, 0xc1, 0x96, 0x3f, 0x01, 0xcd, 0x9d, 0x73, 0x33, 0x33, - 0xee, 0xbc, 0x22, 0x9c, 0x4d, 0xe2, 0xc7, 0xb9, 0xe7, 0x7c, 0xee, 0xf7, 0x9c, 0x7b, 0xee, 0x19, - 0xc3, 0xe5, 0x07, 0x5a, 0x5f, 0xe7, 0x5d, 0x05, 0xff, 0xdd, 0x5f, 0x6b, 0x71, 0x5b, 0x5b, 0x57, - 0xee, 0x1d, 0xf0, 0xbe, 0x53, 0xeb, 0xf5, 0x4d, 0xdb, 0xa4, 0x17, 0xbc, 0xef, 0x6a, 0xf8, 0x0f, - 0x4d, 0x4a, 0xe7, 0xb5, 0x7d, 0xa3, 0x6b, 0x2a, 0xe2, 0xaf, 0x67, 0x59, 0x9a, 0xed, 0x98, 0x1d, - 0x53, 0xbc, 0x54, 0xdc, 0x57, 0xf8, 0xe9, 0x5c, 0xc7, 0x34, 0x3b, 0x7b, 0x5c, 0xd1, 0x7a, 0x86, - 0xa2, 0x75, 0xbb, 0xa6, 0xad, 0xd9, 0x86, 0xd9, 0xb5, 0xf0, 0xdb, 0xe5, 0xb6, 0x69, 0xed, 0x9b, - 0x96, 0xd2, 0xd2, 0x2c, 0xee, 0x85, 0x45, 0x88, 0x35, 0xa5, 0xa7, 0x75, 0x8c, 0xae, 0x30, 0x46, - 0xdb, 0x4a, 0x34, 0xec, 0x2e, 0x47, 0xd4, 0xd2, 0xd5, 0x58, 0x83, 0xf6, 0x5d, 0xcd, 0x90, 0x6e, - 0x58, 0xb4, 0x55, 0x4f, 0xeb, 0x6b, 0xfb, 0x12, 0x6b, 0x31, 0xda, 0xc6, 0x32, 0x3a, 0x5d, 0xcd, - 0x3e, 0xe8, 0x73, 0x34, 0x8b, 0x91, 0xcf, 0xea, 0x69, 0x6d, 0x34, 0x61, 0xb3, 0x40, 0xef, 0xb8, - 0xdb, 0xba, 0x2d, 0xdc, 0xab, 0xfc, 0xde, 0x01, 0xb7, 0x6c, 0xf6, 0x36, 0xfc, 0x2f, 0xf4, 0xa9, - 0xd5, 0x33, 0xbb, 0x16, 0xa7, 0xaf, 0xc0, 0x98, 0x87, 0x51, 0x24, 0x0b, 0xa4, 0x3a, 0x51, 0x9f, - 0xaf, 0x45, 0x8a, 0x5f, 0xf3, 0x96, 0x35, 0x0a, 0x8f, 0x7f, 0xaf, 0x8c, 0xfc, 0xf8, 0xf7, 0xcf, - 0xcb, 0x44, 0xc5, 0x75, 0xec, 0x3d, 0x0c, 0xb7, 0xe3, 0x22, 0xc8, 0x70, 0xf4, 0x16, 0x80, 0xaf, - 0x26, 0xfa, 0xbe, 0x56, 0xf3, 0xa4, 0xaf, 0xb9, 0xd2, 0xd7, 0xbc, 0x8c, 0xa3, 0xf4, 0xb5, 0xdb, - 0x5a, 0x87, 0xe3, 0x5a, 0x35, 0xb0, 0x92, 0x7d, 0x41, 0x90, 0x5b, 0xba, 0x47, 0xee, 0xcd, 0x08, - 0xff, 0x4b, 0xa9, 0xfe, 0xbd, 0xc5, 0xc1, 0x00, 0xf4, 0x25, 0x18, 0x13, 0xe2, 0x59, 0xc5, 0xdc, - 0xc2, 0x68, 0x75, 0xa2, 0x3e, 0x17, 0x23, 0x80, 0x88, 0xdf, 0xc8, 0xbb, 0xfb, 0x57, 0x71, 0x05, - 0x73, 0xe0, 0x62, 0x80, 0xad, 0xe1, 0xbc, 0xf9, 0xa0, 0xcb, 0xfb, 0x43, 0x56, 0x80, 0xce, 0xc2, - 0x19, 0xd3, 0xf5, 0x5b, 0xcc, 0x2d, 0x90, 0x6a, 0x41, 0xf5, 0xde, 0xb0, 0x26, 0x5c, 0x10, 0xa1, - 0xb7, 0xb1, 0xd2, 0x86, 0x2e, 0xfc, 0x0f, 0x04, 0xfe, 0x3f, 0x18, 0x61, 0xd8, 0xda, 0xbf, 0x0a, - 0x05, 0x79, 0x52, 0xa4, 0xfc, 0x95, 0x18, 0xf9, 0x25, 0x05, 0x66, 0xc0, 0x5f, 0xc7, 0x96, 0x50, - 0x09, 0x2f, 0x41, 0xce, 0x96, 0x2e, 0x95, 0x98, 0x86, 0x9c, 0xa1, 0x0b, 0xbc, 0xbc, 0x9a, 0x33, - 0x74, 0xf6, 0x06, 0x6e, 0x28, 0x60, 0x88, 0x1b, 0xaa, 0xc3, 0x19, 0x91, 0x51, 0xdc, 0x4b, 0x62, - 0x09, 0xa8, 0x9e, 0x29, 0x5b, 0x86, 0x62, 0x48, 0x9e, 0xa4, 0xc8, 0xef, 0x60, 0x9d, 0x84, 0x6d, - 0x31, 0xf8, 0xcb, 0x70, 0x56, 0x6e, 0x06, 0xe3, 0xa7, 0x69, 0xa0, 0x1e, 0x2f, 0x60, 0xff, 0x10, - 0x78, 0x4e, 0xba, 0xc6, 0xe8, 0xc3, 0xae, 0x04, 0xba, 0x08, 0x13, 0x32, 0x5e, 0xd3, 0xd0, 0x45, - 0x19, 0xe6, 0x45, 0x1a, 0x88, 0x0a, 0xf2, 0x8b, 0x2d, 0x9d, 0xde, 0x84, 0x31, 0xcb, 0xd6, 0xec, - 0x03, 0xab, 0x38, 0xba, 0x40, 0xaa, 0xd3, 0xf5, 0xa5, 0xf8, 0x5d, 0x60, 0x94, 0x1d, 0x61, 0x8e, - 0xae, 0x70, 0x31, 0xad, 0xc0, 0x59, 0x21, 0xb0, 0x1b, 0x2a, 0x1f, 0x08, 0x35, 0x2e, 0x3e, 0xdd, - 0xd2, 0xd9, 0x23, 0xe2, 0x2b, 0xef, 0x6f, 0x79, 0xd8, 0xa5, 0xf9, 0x1a, 0x4c, 0xee, 0x72, 0xa7, - 0xd9, 0xc7, 0x00, 0x58, 0x9d, 0x97, 0x53, 0xf7, 0xa4, 0xba, 0x5a, 0x49, 0x2c, 0x76, 0x03, 0x4a, - 0x03, 0xa8, 0x49, 0x65, 0xa2, 0xc1, 0xa5, 0x48, 0x6b, 0xdc, 0x5b, 0x43, 0xe4, 0x41, 0x22, 0xe1, - 0xe6, 0x32, 0x10, 0x81, 0x4f, 0xc4, 0x7e, 0x91, 0xed, 0x74, 0x63, 0x6f, 0x6f, 0x9b, 0x3b, 0x43, - 0xaf, 0x95, 0x1d, 0x38, 0xa7, 0xf3, 0xbe, 0x71, 0x9f, 0x37, 0x35, 0x5d, 0xef, 0x73, 0xcb, 0xc2, - 0xbe, 0x3a, 0x5d, 0x67, 0x31, 0xa0, 0x1b, 0x9e, 0xdd, 0x5b, 0x4e, 0x8f, 0x63, 0xa6, 0x67, 0x3c, - 0x0f, 0x1b, 0xd2, 0x01, 0xfb, 0x96, 0xc0, 0x79, 0x29, 0xcc, 0x29, 0xa4, 0x7a, 0x03, 0xf2, 0xbb, - 0xdc, 0x91, 0x29, 0x8e, 0x2b, 0x5b, 0x3f, 0x33, 0x9e, 0x0b, 0x6c, 0x44, 0x62, 0x29, 0x7b, 0x4a, - 0xfc, 0x13, 0x6e, 0x35, 0xbc, 0x0e, 0xe3, 0xe7, 0x79, 0x58, 0xe2, 0x5e, 0x0c, 0x1c, 0x0d, 0x71, - 0x0a, 0x8f, 0x0f, 0x45, 0xa4, 0xee, 0xa3, 0xff, 0x55, 0xf7, 0x0f, 0xb0, 0x56, 0xb6, 0xb9, 0x93, - 0x50, 0xb6, 0xa7, 0x93, 0xf3, 0x87, 0x04, 0xce, 0x0d, 0x4a, 0x4e, 0xeb, 0x30, 0xba, 0xcb, 0x1d, - 0x54, 0xb0, 0x14, 0x5f, 0xf9, 0x98, 0x1b, 0xd7, 0x98, 0xbe, 0x0e, 0x85, 0x30, 0x96, 0xab, 0x7d, - 0x22, 0xd6, 0x40, 0x86, 0xfd, 0xe5, 0xac, 0x0d, 0x33, 0x03, 0x36, 0xb4, 0x08, 0xe3, 0xf8, 0xbd, - 0xc0, 0x2a, 0xa8, 0xf2, 0x2d, 0x7d, 0x01, 0xf2, 0xb6, 0xd3, 0xe3, 0x22, 0x53, 0x99, 0xa4, 0x50, - 0x85, 0x3d, 0xfb, 0x26, 0x87, 0xfd, 0x6d, 0xc7, 0xe8, 0x74, 0x4f, 0xab, 0xa7, 0x57, 0x22, 0x7a, - 0x7a, 0xa8, 0x9b, 0xdf, 0x1a, 0xe8, 0xe6, 0xd5, 0xb8, 0x3b, 0xd1, 0x87, 0x8c, 0x6c, 0xe7, 0x77, - 0x60, 0xba, 0xd5, 0x37, 0x35, 0xbd, 0xad, 0x59, 0x76, 0x53, 0xe8, 0x91, 0x17, 0xfe, 0xae, 0xc6, - 0xf8, 0x6b, 0x48, 0xe3, 0x40, 0x71, 0x4c, 0xb5, 0x82, 0x1f, 0xb2, 0x9f, 0xe4, 0x61, 0x0b, 0x0b, - 0x34, 0xec, 0xb6, 0xb0, 0x09, 0x53, 0xee, 0xf0, 0x3d, 0x78, 0x05, 0xb0, 0x74, 0x21, 0xd4, 0x49, - 0x2b, 0x40, 0xc6, 0x56, 0xb0, 0xad, 0x07, 0x2c, 0x92, 0x6e, 0x01, 0x0e, 0x73, 0xd1, 0xe6, 0xb8, - 0xc1, 0x9b, 0x30, 0x19, 0xe4, 0xc2, 0x2d, 0x66, 0xc1, 0x9a, 0x08, 0x60, 0xd5, 0xff, 0x9a, 0x81, - 0x33, 0x22, 0x0e, 0xfd, 0x98, 0xc0, 0x98, 0x37, 0xde, 0xd3, 0xeb, 0x49, 0xcd, 0x2f, 0xf4, 0x3c, - 0x51, 0x5a, 0xce, 0x62, 0xea, 0x21, 0xb3, 0xc5, 0x0f, 0x9f, 0xfe, 0xf9, 0x59, 0xae, 0x42, 0xe7, - 0x95, 0xa4, 0x07, 0x21, 0x01, 0xe2, 0x8d, 0xd2, 0xc9, 0x20, 0xa1, 0x27, 0x8d, 0x64, 0x90, 0xf0, - 0x53, 0x43, 0x2a, 0x88, 0x37, 0xd7, 0xd3, 0xaf, 0x09, 0x4c, 0x85, 0x66, 0x7a, 0xba, 0x9a, 0x1e, - 0x24, 0x3c, 0xfe, 0x9f, 0x08, 0xab, 0x26, 0xb0, 0xaa, 0xf4, 0x5a, 0x22, 0x56, 0xb3, 0xe5, 0x34, - 0xc5, 0xf0, 0x4f, 0x1f, 0x12, 0x28, 0x1c, 0x8f, 0xe5, 0xf4, 0x46, 0xca, 0x8d, 0x15, 0x7a, 0x3e, - 0x28, 0xad, 0x64, 0xb4, 0x46, 0xb4, 0xaa, 0x40, 0x63, 0x74, 0x41, 0x49, 0x7e, 0xd2, 0xb5, 0xe8, - 0xe7, 0x04, 0x0a, 0xc7, 0xa3, 0x75, 0x32, 0xd4, 0xe0, 0xa8, 0x9e, 0x0c, 0xf5, 0xcc, 0xbc, 0xce, - 0x14, 0x01, 0x75, 0x9d, 0x2e, 0x25, 0xe9, 0xe5, 0xca, 0x25, 0x7b, 0xf1, 0x77, 0x04, 0x26, 0x83, - 0xc3, 0x37, 0x55, 0xb2, 0xa8, 0x10, 0x24, 0x5c, 0xcd, 0xbe, 0x00, 0x21, 0x57, 0x04, 0xe4, 0x12, - 0x5d, 0x4c, 0x51, 0xce, 0xe5, 0x34, 0x74, 0xfa, 0x25, 0x81, 0x89, 0xc0, 0x44, 0x4b, 0x6b, 0xa9, - 0x73, 0x48, 0xe8, 0x66, 0x28, 0x29, 0x99, 0xed, 0x91, 0xef, 0x79, 0xc1, 0xb7, 0x48, 0xaf, 0xc4, - 0xf3, 0x1d, 0xf7, 0x3e, 0xfa, 0x88, 0xc0, 0x74, 0x78, 0x2c, 0xa5, 0x6b, 0xd9, 0x02, 0x06, 0x45, - 0xac, 0x9f, 0x64, 0x09, 0x62, 0xae, 0x0a, 0xcc, 0x65, 0x5a, 0x4d, 0xc7, 0x44, 0x25, 0x3f, 0x22, - 0x30, 0x8e, 0xe3, 0x2d, 0x4d, 0x3c, 0x85, 0xe1, 0x19, 0xb8, 0x54, 0x4d, 0xa1, 0xf3, 0xa5, 0xbb, - 0x22, 0x98, 0xe6, 0xe9, 0xa5, 0x78, 0x26, 0x8b, 0x7e, 0x45, 0x60, 0x2a, 0x34, 0x0e, 0xd2, 0xb4, - 0x1a, 0x7a, 0x66, 0x72, 0x3c, 0x01, 0x52, 0xda, 0x91, 0x70, 0x91, 0x5c, 0x7d, 0xe4, 0x00, 0x49, - 0x3f, 0x21, 0x30, 0x8e, 0x83, 0x5d, 0xb2, 0x4a, 0xe1, 0xe9, 0xaf, 0x94, 0x75, 0x3e, 0xce, 0xd2, - 0x39, 0x30, 0x61, 0xdf, 0x13, 0x98, 0x0c, 0xde, 0xe5, 0xc9, 0xa7, 0x33, 0x62, 0x2c, 0x4a, 0x3e, - 0x9d, 0x51, 0x63, 0x42, 0x6a, 0x59, 0x75, 0xb8, 0xdd, 0x0c, 0x5d, 0xff, 0xf4, 0x57, 0x02, 0x33, - 0x03, 0x77, 0x32, 0xad, 0x67, 0x8c, 0x1b, 0x14, 0x70, 0xfd, 0x44, 0x6b, 0x10, 0xf7, 0x45, 0x81, - 0xbb, 0x4e, 0xd7, 0x94, 0x94, 0x9f, 0x09, 0x9b, 0xbd, 0x56, 0xf8, 0x38, 0x34, 0xb4, 0xc7, 0x87, - 0x65, 0xf2, 0xe4, 0xb0, 0x4c, 0xfe, 0x38, 0x2c, 0x93, 0x4f, 0x8f, 0xca, 0x23, 0x4f, 0x8e, 0xca, - 0x23, 0xbf, 0x1d, 0x95, 0x47, 0xde, 0xdd, 0xec, 0x18, 0xf6, 0xdd, 0x83, 0x56, 0xad, 0x6d, 0xee, - 0xa3, 0xbf, 0x15, 0xf1, 0x0b, 0x62, 0xdb, 0xdc, 0xc3, 0xf7, 0x03, 0x6f, 0x95, 0xf7, 0xe5, 0x0b, - 0x77, 0x92, 0xb3, 0x64, 0xf4, 0xd6, 0x98, 0xb0, 0x5b, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x72, - 0xab, 0xa2, 0x19, 0xdc, 0x15, 0x00, 0x00, + // 1395 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x6f, 0x1b, 0xd5, + 0x17, 0xcf, 0x4d, 0x9c, 0xa4, 0x3e, 0x49, 0x9c, 0xf6, 0xfe, 0xdb, 0x7f, 0x5d, 0xb7, 0xb5, 0xd3, + 0xdb, 0xa6, 0x71, 0x43, 0x33, 0x93, 0x38, 0x12, 0x12, 0xb0, 0x21, 0x86, 0xbe, 0x28, 0x8f, 0x32, + 0x41, 0x80, 0x10, 0x92, 0x35, 0xf6, 0x5c, 0xdc, 0x51, 0x1c, 0x8f, 0xeb, 0x19, 0xb7, 0x0c, 0x4b, + 0x84, 0x10, 0x4b, 0x54, 0x56, 0xbc, 0x04, 0x12, 0x12, 0xa2, 0x0b, 0x24, 0x84, 0xc4, 0x77, 0xe8, + 0xb2, 0x52, 0x37, 0xac, 0x10, 0x6a, 0x11, 0xdd, 0xf2, 0x11, 0xd0, 0xdc, 0x39, 0x37, 0x9e, 0x71, + 0xe7, 0x15, 0xe1, 0x6c, 0xe2, 0x99, 0xb9, 0xe7, 0xf1, 0x3b, 0xbf, 0x73, 0xee, 0xb9, 0xe7, 0x06, + 0xce, 0xdc, 0xd1, 0xfb, 0x06, 0xef, 0xaa, 0xf8, 0x73, 0x7b, 0xa3, 0xc9, 0x1d, 0x7d, 0x53, 0xbd, + 0x35, 0xe0, 0x7d, 0x57, 0xe9, 0xf5, 0x2d, 0xc7, 0xa2, 0xc7, 0xfc, 0x35, 0x05, 0x7f, 0x50, 0xa4, + 0x74, 0x44, 0xdf, 0x35, 0xbb, 0x96, 0x2a, 0xfe, 0xfa, 0x92, 0xa5, 0xa3, 0x6d, 0xab, 0x6d, 0x89, + 0x47, 0xd5, 0x7b, 0xc2, 0xaf, 0xa7, 0xda, 0x96, 0xd5, 0xee, 0x70, 0x55, 0xef, 0x99, 0xaa, 0xde, + 0xed, 0x5a, 0x8e, 0xee, 0x98, 0x56, 0xd7, 0x1e, 0x59, 0x15, 0x6f, 0xcd, 0xc1, 0x07, 0xaa, 0xed, + 0xf4, 0x07, 0x2d, 0x07, 0x57, 0x57, 0x5b, 0x96, 0xbd, 0x6b, 0xd9, 0x6a, 0x53, 0xb7, 0xb9, 0x0f, + 0x0a, 0x21, 0x6e, 0xa8, 0x3d, 0xbd, 0x6d, 0x76, 0x85, 0x29, 0x94, 0xad, 0x44, 0x87, 0xb2, 0xc3, + 0x31, 0x90, 0xd2, 0xb9, 0x58, 0x81, 0xd6, 0x4d, 0xdd, 0x94, 0x66, 0x58, 0xb4, 0x54, 0x4f, 0xef, + 0xeb, 0xbb, 0x12, 0xf4, 0x72, 0xb4, 0x8c, 0x6d, 0xb6, 0xbb, 0xba, 0x33, 0xe8, 0x73, 0x14, 0x8b, + 0x21, 0xd7, 0xee, 0xe9, 0x2d, 0x14, 0x61, 0x47, 0x81, 0xbe, 0xe9, 0x85, 0x75, 0x43, 0x98, 0xd7, + 0xf8, 0xad, 0x01, 0xb7, 0x1d, 0xf6, 0x0e, 0xfc, 0x2f, 0xf4, 0xd5, 0xee, 0x59, 0x5d, 0x9b, 0xd3, + 0x17, 0x61, 0xc6, 0x87, 0x51, 0x24, 0x4b, 0xa4, 0x3a, 0x57, 0x3b, 0xad, 0x44, 0xa6, 0x46, 0xf1, + 0xd5, 0xea, 0xf9, 0xfb, 0x7f, 0x54, 0x26, 0x7e, 0x7a, 0xf2, 0xcb, 0x2a, 0xd1, 0x50, 0x8f, 0xbd, + 0x8f, 0xee, 0xb6, 0x3d, 0x08, 0xd2, 0x1d, 0xbd, 0x0c, 0x30, 0x64, 0x13, 0x6d, 0x9f, 0x57, 0x7c, + 0xea, 0x15, 0x8f, 0x7a, 0xc5, 0xaf, 0x07, 0xa4, 0x5e, 0xb9, 0xa1, 0xb7, 0x39, 0xea, 0x6a, 0x01, + 0x4d, 0xf6, 0x15, 0x41, 0xdc, 0xd2, 0x3c, 0xe2, 0xbe, 0x12, 0x61, 0x7f, 0x25, 0xd5, 0xbe, 0xaf, + 0x1c, 0x74, 0x40, 0x9f, 0x87, 0x19, 0x41, 0x9e, 0x5d, 0x9c, 0x5c, 0x9a, 0xaa, 0xce, 0xd5, 0x4e, + 0xc5, 0x10, 0x20, 0xfc, 0xd7, 0x73, 0x5e, 0xfc, 0x1a, 0x6a, 0x30, 0x17, 0x4e, 0x04, 0xb0, 0xd5, + 0xdd, 0x37, 0xee, 0x74, 0x79, 0x7f, 0xcc, 0x0c, 0xd0, 0xa3, 0x30, 0x6d, 0x79, 0x76, 0x8b, 0x93, + 0x4b, 0xa4, 0x9a, 0xd7, 0xfc, 0x17, 0xd6, 0x80, 0x63, 0xc2, 0xf5, 0x75, 0xac, 0xb4, 0xb1, 0x13, + 0xff, 0x23, 0x81, 0xff, 0x8f, 0x7a, 0x18, 0x37, 0xf7, 0x2f, 0x41, 0x5e, 0xee, 0x14, 0x49, 0x7f, + 0x25, 0x86, 0x7e, 0x89, 0x02, 0x33, 0x30, 0xd4, 0x63, 0x2b, 0xc8, 0x84, 0x9f, 0x20, 0xf7, 0x9a, + 0x21, 0x99, 0x28, 0xc0, 0xa4, 0x69, 0x08, 0x78, 0x39, 0x6d, 0xd2, 0x34, 0xd8, 0xab, 0x18, 0x50, + 0x40, 0x10, 0x03, 0xaa, 0xc1, 0xb4, 0xc8, 0x28, 0xc6, 0x92, 0x58, 0x02, 0x9a, 0x2f, 0xca, 0x56, + 0xa1, 0x18, 0xa2, 0x27, 0xc9, 0xf3, 0xbb, 0x58, 0x27, 0x61, 0x59, 0x74, 0xfe, 0x02, 0x1c, 0x92, + 0xc1, 0xa0, 0xff, 0x34, 0x0e, 0xb4, 0x3d, 0x05, 0xf6, 0x0f, 0x81, 0xe3, 0xd2, 0x34, 0x7a, 0x1f, + 0x77, 0x25, 0xd0, 0x65, 0x98, 0x93, 0xfe, 0x1a, 0xa6, 0x21, 0xca, 0x30, 0x27, 0xd2, 0x40, 0x34, + 0x90, 0x0b, 0xd7, 0x0c, 0x7a, 0x09, 0x66, 0x6c, 0x47, 0x77, 0x06, 0x76, 0x71, 0x6a, 0x89, 0x54, + 0x0b, 0xb5, 0x95, 0xf8, 0x28, 0xd0, 0xcb, 0xb6, 0x10, 0x47, 0x53, 0xa8, 0x4c, 0x2b, 0x70, 0x48, + 0x10, 0xec, 0xb9, 0xca, 0x05, 0x5c, 0xcd, 0x8a, 0xaf, 0xd7, 0x0c, 0x76, 0x8f, 0x0c, 0x99, 0x1f, + 0x86, 0x3c, 0xee, 0xd2, 0x7c, 0x19, 0xe6, 0x77, 0xb8, 0xdb, 0xe8, 0xa3, 0x03, 0xac, 0xce, 0x33, + 0xa9, 0x31, 0x69, 0x1e, 0x57, 0x12, 0x16, 0xbb, 0x08, 0xa5, 0x11, 0xa8, 0x49, 0x65, 0xa2, 0xc3, + 0xc9, 0x48, 0x69, 0x8c, 0xad, 0x2e, 0xf2, 0x20, 0x21, 0x61, 0x70, 0x19, 0x10, 0xc1, 0x10, 0x11, + 0xfb, 0x55, 0xb6, 0xd3, 0xad, 0x4e, 0xe7, 0x3a, 0x77, 0xc7, 0x5e, 0x2b, 0xdb, 0x70, 0xd8, 0xe0, + 0x7d, 0xf3, 0x36, 0x6f, 0xe8, 0x86, 0xd1, 0xe7, 0xb6, 0x8d, 0x7d, 0xb5, 0x50, 0x63, 0x31, 0x40, + 0xb7, 0x7c, 0xb9, 0xb7, 0xdc, 0x1e, 0xc7, 0x4c, 0x2f, 0xfa, 0x16, 0xb6, 0xa4, 0x01, 0xf6, 0x1d, + 0x81, 0x23, 0x92, 0x98, 0x03, 0x48, 0xf5, 0x16, 0xe4, 0x76, 0xb8, 0x2b, 0x53, 0x1c, 0x57, 0xb6, + 0xc3, 0xcc, 0xf8, 0x26, 0xb0, 0x11, 0x09, 0x55, 0xf6, 0x90, 0x0c, 0x77, 0xb8, 0x5d, 0xf7, 0x3b, + 0xcc, 0x30, 0xcf, 0xe3, 0x22, 0xf7, 0x44, 0x60, 0x6b, 0x88, 0x5d, 0xb8, 0xb7, 0x29, 0x22, 0x79, + 0x9f, 0xfa, 0xaf, 0xbc, 0x7f, 0x84, 0xb5, 0x72, 0x9d, 0xbb, 0x09, 0x65, 0x7b, 0x30, 0x39, 0xbf, + 0x4b, 0xe0, 0xf0, 0x28, 0xe5, 0xb4, 0x06, 0x53, 0x3b, 0xdc, 0x45, 0x06, 0x4b, 0xf1, 0x95, 0x8f, + 0xb9, 0xf1, 0x84, 0xe9, 0x2b, 0x90, 0x0f, 0xc3, 0xf2, 0xb8, 0x4f, 0x84, 0x35, 0x92, 0xe1, 0xa1, + 0x3a, 0x6b, 0xc1, 0xe2, 0x88, 0x0c, 0x2d, 0xc2, 0x2c, 0xae, 0x0b, 0x58, 0x79, 0x4d, 0xbe, 0xd2, + 0x67, 0x21, 0xe7, 0xb8, 0x3d, 0x2e, 0x32, 0x95, 0x89, 0x0a, 0x4d, 0xc8, 0xb3, 0x27, 0x93, 0xd8, + 0xdf, 0xb6, 0xcd, 0x76, 0xf7, 0xa0, 0x7a, 0x7a, 0x25, 0xa2, 0xa7, 0x87, 0xba, 0xf9, 0xe5, 0x91, + 0x6e, 0x5e, 0x8d, 0x3b, 0x13, 0x87, 0x20, 0x23, 0xdb, 0xf9, 0x3a, 0xe4, 0xba, 0x83, 0x4e, 0x47, + 0xb4, 0xf2, 0x42, 0xad, 0xa4, 0xf8, 0xa3, 0xb9, 0x22, 0x47, 0x73, 0xe5, 0xf5, 0x41, 0xa7, 0xf3, + 0xb6, 0xde, 0x19, 0xf0, 0xab, 0x13, 0x9a, 0x90, 0xa4, 0xaf, 0x41, 0xa1, 0xd9, 0xb7, 0x74, 0xa3, + 0xa5, 0xdb, 0x4e, 0x43, 0x30, 0x38, 0x2d, 0x74, 0xcf, 0xc5, 0x20, 0xa8, 0x4b, 0x61, 0x8f, 0xc3, + 0xab, 0x13, 0xda, 0x42, 0x33, 0xf8, 0xa1, 0x7e, 0x02, 0x8e, 0x5b, 0x3d, 0x2f, 0x66, 0xbd, 0xd3, + 0x08, 0xdb, 0x65, 0x3f, 0xcb, 0x5d, 0x1b, 0x66, 0x7a, 0xdc, 0xfd, 0xe5, 0x0a, 0x2c, 0x78, 0x53, + 0xfc, 0xe8, 0x59, 0xc2, 0xd2, 0x19, 0xd5, 0xe6, 0xed, 0x00, 0x32, 0xb6, 0x86, 0xe7, 0x43, 0x40, + 0x22, 0xe9, 0x38, 0xe1, 0x70, 0x2a, 0x5a, 0x1c, 0x03, 0xbc, 0x04, 0xf3, 0x41, 0x5c, 0x18, 0x62, + 0x16, 0x58, 0x73, 0x01, 0x58, 0xb5, 0xbf, 0x17, 0x61, 0x5a, 0xf8, 0xa1, 0x9f, 0x12, 0x98, 0xf1, + 0xef, 0x09, 0xf4, 0x42, 0x52, 0x17, 0x0d, 0x5d, 0x4c, 0x4a, 0xab, 0x59, 0x44, 0x7d, 0xc8, 0x6c, + 0xf9, 0xe3, 0x87, 0x7f, 0x7d, 0x31, 0x59, 0xa1, 0xa7, 0xd5, 0xa4, 0x1b, 0x95, 0x00, 0xe2, 0xcf, + 0xe4, 0xc9, 0x40, 0x42, 0x57, 0x96, 0x64, 0x20, 0xe1, 0xeb, 0x47, 0x2a, 0x10, 0xff, 0x82, 0x40, + 0xbf, 0x25, 0xb0, 0x10, 0xba, 0x1c, 0xd0, 0xf5, 0x74, 0x27, 0xe1, 0x7b, 0xc4, 0xbe, 0x60, 0x29, + 0x02, 0x56, 0x95, 0x9e, 0x4f, 0x84, 0xd5, 0x68, 0xba, 0x0d, 0x71, 0x8b, 0xa0, 0x77, 0x09, 0xe4, + 0xf7, 0xe6, 0x7b, 0x7a, 0x31, 0xe5, 0xe8, 0x0b, 0x5d, 0x34, 0x4a, 0x6b, 0x19, 0xa5, 0x11, 0x5a, + 0x55, 0x40, 0x63, 0x74, 0x49, 0x4d, 0xbe, 0x32, 0xdb, 0xf4, 0x4b, 0x02, 0xf9, 0xbd, 0x19, 0x3d, + 0x19, 0xd4, 0xe8, 0xcc, 0x9f, 0x0c, 0xea, 0xa9, 0xc1, 0x9f, 0xa9, 0x02, 0xd4, 0x05, 0xba, 0x92, + 0xc4, 0x97, 0x47, 0x97, 0x6c, 0xea, 0xdf, 0x13, 0x98, 0x0f, 0x4e, 0xf1, 0x54, 0xcd, 0xc2, 0x42, + 0x10, 0xe1, 0x7a, 0x76, 0x05, 0x04, 0xb9, 0x26, 0x40, 0xae, 0xd0, 0xe5, 0x14, 0xe6, 0x3c, 0x9c, + 0xa6, 0x41, 0xbf, 0x26, 0x30, 0x17, 0x18, 0x8d, 0xa9, 0x92, 0x3a, 0xd0, 0x84, 0x8e, 0x98, 0x92, + 0x9a, 0x59, 0x1e, 0xf1, 0x3d, 0x23, 0xf0, 0x2d, 0xd3, 0xb3, 0xf1, 0xf8, 0xf6, 0x7a, 0x1f, 0xbd, + 0x47, 0xa0, 0x10, 0x9e, 0x6f, 0xe9, 0x46, 0x36, 0x87, 0x41, 0x12, 0x6b, 0xfb, 0x51, 0x41, 0x98, + 0xeb, 0x02, 0xe6, 0x2a, 0xad, 0xa6, 0xc3, 0x44, 0x26, 0x3f, 0x21, 0x30, 0x8b, 0x73, 0x32, 0x4d, + 0xdc, 0x85, 0xe1, 0x61, 0xba, 0x54, 0x4d, 0x41, 0x37, 0xa4, 0xee, 0xac, 0xc0, 0x74, 0x9a, 0x9e, + 0x8c, 0xc7, 0x64, 0xd3, 0x6f, 0x08, 0x2c, 0x84, 0xe6, 0x4a, 0x9a, 0x56, 0x43, 0x4f, 0x8d, 0xa0, + 0xfb, 0x80, 0x94, 0xb6, 0x25, 0x3c, 0x48, 0x1e, 0x3f, 0x72, 0x12, 0xa5, 0x9f, 0x11, 0x98, 0xc5, + 0x09, 0x31, 0x99, 0xa5, 0xf0, 0x18, 0x59, 0xca, 0x3a, 0x68, 0x67, 0xe9, 0x1c, 0x98, 0xb0, 0x1f, + 0x08, 0xcc, 0x07, 0xcf, 0xf2, 0xe4, 0xdd, 0x19, 0x31, 0x5f, 0x25, 0xef, 0xce, 0xa8, 0x31, 0x21, + 0xb5, 0xac, 0xda, 0xdc, 0x69, 0x84, 0x8e, 0x7f, 0xfa, 0x1b, 0x81, 0xc5, 0x91, 0x33, 0x99, 0xd6, + 0x32, 0xfa, 0x0d, 0x12, 0xb8, 0xb9, 0x2f, 0x1d, 0x84, 0xfb, 0x9c, 0x80, 0xbb, 0x49, 0x37, 0xd4, + 0x94, 0xff, 0x37, 0x36, 0x7a, 0xcd, 0xf0, 0x76, 0xa8, 0xeb, 0xf7, 0x1f, 0x95, 0xc9, 0x83, 0x47, + 0x65, 0xf2, 0xe7, 0xa3, 0x32, 0xf9, 0xfc, 0x71, 0x79, 0xe2, 0xc1, 0xe3, 0xf2, 0xc4, 0xef, 0x8f, + 0xcb, 0x13, 0xef, 0x5d, 0x69, 0x9b, 0xce, 0xcd, 0x41, 0x53, 0x69, 0x59, 0xbb, 0x68, 0x6f, 0x4d, + 0x0c, 0x78, 0x2d, 0xab, 0x83, 0xef, 0x23, 0xaf, 0xea, 0x87, 0xf2, 0xc1, 0x1b, 0xc4, 0x6c, 0xe9, + 0xbd, 0x39, 0x23, 0xe4, 0x36, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xae, 0xb0, 0x04, 0xcd, 0x43, + 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2789,10 +2836,14 @@ func (m *QuerySignRequestsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l - if m.BroadcastType != 0 { - i = encodeVarintQuery(dAtA, i, uint64(m.BroadcastType)) - i-- - dAtA[i] = 0x20 + if m.OptionalBroadcastType != nil { + { + size := m.OptionalBroadcastType.Size() + i -= size + if _, err := m.OptionalBroadcastType.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } } if m.Status != 0 { i = encodeVarintQuery(dAtA, i, uint64(m.Status)) @@ -2819,6 +2870,30 @@ func (m *QuerySignRequestsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } +func (m *QuerySignRequestsRequest_Null) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QuerySignRequestsRequest_Null) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintQuery(dAtA, i, uint64(m.Null)) + i-- + dAtA[i] = 0x20 + return len(dAtA) - i, nil +} +func (m *QuerySignRequestsRequest_BroadcastType) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QuerySignRequestsRequest_BroadcastType) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + i = encodeVarintQuery(dAtA, i, uint64(m.BroadcastType)) + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} func (m *QuerySignRequestsResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3289,12 +3364,30 @@ func (m *QuerySignRequestsRequest) Size() (n int) { if m.Status != 0 { n += 1 + sovQuery(uint64(m.Status)) } - if m.BroadcastType != 0 { - n += 1 + sovQuery(uint64(m.BroadcastType)) + if m.OptionalBroadcastType != nil { + n += m.OptionalBroadcastType.Size() } return n } +func (m *QuerySignRequestsRequest_Null) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovQuery(uint64(m.Null)) + return n +} +func (m *QuerySignRequestsRequest_BroadcastType) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovQuery(uint64(m.BroadcastType)) + return n +} func (m *QuerySignRequestsResponse) Size() (n int) { if m == nil { return 0 @@ -5645,10 +5738,30 @@ func (m *QuerySignRequestsRequest) Unmarshal(dAtA []byte) error { } } case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Null", wireType) + } + var v structpb.NullValue + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= structpb.NullValue(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.OptionalBroadcastType = &QuerySignRequestsRequest_Null{v} + case 5: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field BroadcastType", wireType) } - m.BroadcastType = 0 + var v BroadcastType for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -5658,11 +5771,12 @@ func (m *QuerySignRequestsRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.BroadcastType |= BroadcastType(b&0x7F) << shift + v |= BroadcastType(b&0x7F) << shift if b < 0x80 { break } } + m.OptionalBroadcastType = &QuerySignRequestsRequest_BroadcastType{v} default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:])