diff --git a/api/cosmos/authz/v1beta1/event.pulsar.go b/api/cosmos/authz/v1beta1/event.pulsar.go index 6dd1e92e90d6..80dd0234b133 100644 --- a/api/cosmos/authz/v1beta1/event.pulsar.go +++ b/api/cosmos/authz/v1beta1/event.pulsar.go @@ -1109,6 +1109,490 @@ func (x *fastReflection_EventRevoke) ProtoMethods() *protoiface.Methods { } } +var ( + md_EventRevokeAll protoreflect.MessageDescriptor + fd_EventRevokeAll_msg_type_url protoreflect.FieldDescriptor + fd_EventRevokeAll_granter protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_authz_v1beta1_event_proto_init() + md_EventRevokeAll = File_cosmos_authz_v1beta1_event_proto.Messages().ByName("EventRevokeAll") + fd_EventRevokeAll_msg_type_url = md_EventRevokeAll.Fields().ByName("msg_type_url") + fd_EventRevokeAll_granter = md_EventRevokeAll.Fields().ByName("granter") +} + +var _ protoreflect.Message = (*fastReflection_EventRevokeAll)(nil) + +type fastReflection_EventRevokeAll EventRevokeAll + +func (x *EventRevokeAll) ProtoReflect() protoreflect.Message { + return (*fastReflection_EventRevokeAll)(x) +} + +func (x *EventRevokeAll) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_authz_v1beta1_event_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EventRevokeAll_messageType fastReflection_EventRevokeAll_messageType +var _ protoreflect.MessageType = fastReflection_EventRevokeAll_messageType{} + +type fastReflection_EventRevokeAll_messageType struct{} + +func (x fastReflection_EventRevokeAll_messageType) Zero() protoreflect.Message { + return (*fastReflection_EventRevokeAll)(nil) +} +func (x fastReflection_EventRevokeAll_messageType) New() protoreflect.Message { + return new(fastReflection_EventRevokeAll) +} +func (x fastReflection_EventRevokeAll_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EventRevokeAll +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EventRevokeAll) Descriptor() protoreflect.MessageDescriptor { + return md_EventRevokeAll +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EventRevokeAll) Type() protoreflect.MessageType { + return _fastReflection_EventRevokeAll_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EventRevokeAll) New() protoreflect.Message { + return new(fastReflection_EventRevokeAll) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EventRevokeAll) Interface() protoreflect.ProtoMessage { + return (*EventRevokeAll)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EventRevokeAll) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.MsgTypeUrl != "" { + value := protoreflect.ValueOfString(x.MsgTypeUrl) + if !f(fd_EventRevokeAll_msg_type_url, value) { + return + } + } + if x.Granter != "" { + value := protoreflect.ValueOfString(x.Granter) + if !f(fd_EventRevokeAll_granter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EventRevokeAll) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.authz.v1beta1.EventRevokeAll.msg_type_url": + return x.MsgTypeUrl != "" + case "cosmos.authz.v1beta1.EventRevokeAll.granter": + return x.Granter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.EventRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.EventRevokeAll does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventRevokeAll) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.authz.v1beta1.EventRevokeAll.msg_type_url": + x.MsgTypeUrl = "" + case "cosmos.authz.v1beta1.EventRevokeAll.granter": + x.Granter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.EventRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.EventRevokeAll does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EventRevokeAll) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.authz.v1beta1.EventRevokeAll.msg_type_url": + value := x.MsgTypeUrl + return protoreflect.ValueOfString(value) + case "cosmos.authz.v1beta1.EventRevokeAll.granter": + value := x.Granter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.EventRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.EventRevokeAll does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventRevokeAll) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.authz.v1beta1.EventRevokeAll.msg_type_url": + x.MsgTypeUrl = value.Interface().(string) + case "cosmos.authz.v1beta1.EventRevokeAll.granter": + x.Granter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.EventRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.EventRevokeAll does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventRevokeAll) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.authz.v1beta1.EventRevokeAll.msg_type_url": + panic(fmt.Errorf("field msg_type_url of message cosmos.authz.v1beta1.EventRevokeAll is not mutable")) + case "cosmos.authz.v1beta1.EventRevokeAll.granter": + panic(fmt.Errorf("field granter of message cosmos.authz.v1beta1.EventRevokeAll is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.EventRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.EventRevokeAll does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EventRevokeAll) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.authz.v1beta1.EventRevokeAll.msg_type_url": + return protoreflect.ValueOfString("") + case "cosmos.authz.v1beta1.EventRevokeAll.granter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.EventRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.EventRevokeAll does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EventRevokeAll) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.v1beta1.EventRevokeAll", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EventRevokeAll) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EventRevokeAll) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EventRevokeAll) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EventRevokeAll) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EventRevokeAll) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.MsgTypeUrl) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Granter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EventRevokeAll) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Granter) > 0 { + i -= len(x.Granter) + copy(dAtA[i:], x.Granter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Granter))) + i-- + dAtA[i] = 0x1a + } + if len(x.MsgTypeUrl) > 0 { + i -= len(x.MsgTypeUrl) + copy(dAtA[i:], x.MsgTypeUrl) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MsgTypeUrl))) + i-- + dAtA[i] = 0x12 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EventRevokeAll) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventRevokeAll: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EventRevokeAll: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MsgTypeUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MsgTypeUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var ( md_EventPruneExpiredGrants protoreflect.MessageDescriptor fd_EventPruneExpiredGrants_pruner protoreflect.FieldDescriptor @@ -1129,7 +1613,7 @@ func (x *EventPruneExpiredGrants) ProtoReflect() protoreflect.Message { } func (x *EventPruneExpiredGrants) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_authz_v1beta1_event_proto_msgTypes[2] + mi := &file_cosmos_authz_v1beta1_event_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1656,6 +2140,52 @@ func (x *EventRevoke) GetGrantee() string { return "" } +// EventRevokeAll is emitted on Msg/RevokeAll +type EventRevokeAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Msg type URL for which all authorizations are revoked + MsgTypeUrl string `protobuf:"bytes,2,opt,name=msg_type_url,json=msgTypeUrl,proto3" json:"msg_type_url,omitempty"` + // Granter account address + Granter string `protobuf:"bytes,3,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (x *EventRevokeAll) Reset() { + *x = EventRevokeAll{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_authz_v1beta1_event_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventRevokeAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventRevokeAll) ProtoMessage() {} + +// Deprecated: Use EventRevokeAll.ProtoReflect.Descriptor instead. +func (*EventRevokeAll) Descriptor() ([]byte, []int) { + return file_cosmos_authz_v1beta1_event_proto_rawDescGZIP(), []int{2} +} + +func (x *EventRevokeAll) GetMsgTypeUrl() string { + if x != nil { + return x.MsgTypeUrl + } + return "" +} + +func (x *EventRevokeAll) GetGranter() string { + if x != nil { + return x.Granter + } + return "" +} + // EventPruneExpiredGrants is emitted on Msg/PruneExpiredGrants // // Since: x/authz 1.0.0 @@ -1671,7 +2201,7 @@ type EventPruneExpiredGrants struct { func (x *EventPruneExpiredGrants) Reset() { *x = EventPruneExpiredGrants{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_authz_v1beta1_event_proto_msgTypes[2] + mi := &file_cosmos_authz_v1beta1_event_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1685,7 +2215,7 @@ func (*EventPruneExpiredGrants) ProtoMessage() {} // Deprecated: Use EventPruneExpiredGrants.ProtoReflect.Descriptor instead. func (*EventPruneExpiredGrants) Descriptor() ([]byte, []int) { - return file_cosmos_authz_v1beta1_event_proto_rawDescGZIP(), []int{2} + return file_cosmos_authz_v1beta1_event_proto_rawDescGZIP(), []int{3} } func (x *EventPruneExpiredGrants) GetPruner() string { @@ -1722,25 +2252,33 @@ var file_cosmos_authz_v1beta1_event_proto_rawDesc = []byte{ 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, - 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x22, 0x4b, 0x0a, 0x17, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x75, 0x6e, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, - 0x73, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x72, 0x75, - 0x6e, 0x65, 0x72, 0x42, 0xcc, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, - 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x20, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x41, 0x75, 0x74, 0x68, 0x7a, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x22, 0x7b, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, + 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x3a, 0x13, + 0xd2, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, + 0x2e, 0x35, 0x31, 0x22, 0x4b, 0x0a, 0x17, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x75, 0x6e, + 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x30, + 0x0a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, + 0x42, 0xcc, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, + 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x14, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x20, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, + 0x68, 0x7a, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1755,11 +2293,12 @@ func file_cosmos_authz_v1beta1_event_proto_rawDescGZIP() []byte { return file_cosmos_authz_v1beta1_event_proto_rawDescData } -var file_cosmos_authz_v1beta1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_cosmos_authz_v1beta1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_cosmos_authz_v1beta1_event_proto_goTypes = []interface{}{ (*EventGrant)(nil), // 0: cosmos.authz.v1beta1.EventGrant (*EventRevoke)(nil), // 1: cosmos.authz.v1beta1.EventRevoke - (*EventPruneExpiredGrants)(nil), // 2: cosmos.authz.v1beta1.EventPruneExpiredGrants + (*EventRevokeAll)(nil), // 2: cosmos.authz.v1beta1.EventRevokeAll + (*EventPruneExpiredGrants)(nil), // 3: cosmos.authz.v1beta1.EventPruneExpiredGrants } var file_cosmos_authz_v1beta1_event_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -1800,6 +2339,18 @@ func file_cosmos_authz_v1beta1_event_proto_init() { } } file_cosmos_authz_v1beta1_event_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventRevokeAll); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_authz_v1beta1_event_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventPruneExpiredGrants); i { case 0: return &v.state @@ -1818,7 +2369,7 @@ func file_cosmos_authz_v1beta1_event_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_authz_v1beta1_event_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/cosmos/authz/v1beta1/tx.pulsar.go b/api/cosmos/authz/v1beta1/tx.pulsar.go index d3fc8a353b74..215377b29a65 100644 --- a/api/cosmos/authz/v1beta1/tx.pulsar.go +++ b/api/cosmos/authz/v1beta1/tx.pulsar.go @@ -2878,6 +2878,782 @@ func (x *fastReflection_MsgRevokeResponse) ProtoMethods() *protoiface.Methods { } } +var ( + md_MsgRevokeAll protoreflect.MessageDescriptor + fd_MsgRevokeAll_granter protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_authz_v1beta1_tx_proto_init() + md_MsgRevokeAll = File_cosmos_authz_v1beta1_tx_proto.Messages().ByName("MsgRevokeAll") + fd_MsgRevokeAll_granter = md_MsgRevokeAll.Fields().ByName("granter") +} + +var _ protoreflect.Message = (*fastReflection_MsgRevokeAll)(nil) + +type fastReflection_MsgRevokeAll MsgRevokeAll + +func (x *MsgRevokeAll) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgRevokeAll)(x) +} + +func (x *MsgRevokeAll) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgRevokeAll_messageType fastReflection_MsgRevokeAll_messageType +var _ protoreflect.MessageType = fastReflection_MsgRevokeAll_messageType{} + +type fastReflection_MsgRevokeAll_messageType struct{} + +func (x fastReflection_MsgRevokeAll_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgRevokeAll)(nil) +} +func (x fastReflection_MsgRevokeAll_messageType) New() protoreflect.Message { + return new(fastReflection_MsgRevokeAll) +} +func (x fastReflection_MsgRevokeAll_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRevokeAll +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgRevokeAll) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRevokeAll +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgRevokeAll) Type() protoreflect.MessageType { + return _fastReflection_MsgRevokeAll_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgRevokeAll) New() protoreflect.Message { + return new(fastReflection_MsgRevokeAll) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgRevokeAll) Interface() protoreflect.ProtoMessage { + return (*MsgRevokeAll)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgRevokeAll) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Granter != "" { + value := protoreflect.ValueOfString(x.Granter) + if !f(fd_MsgRevokeAll_granter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgRevokeAll) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.authz.v1beta1.MsgRevokeAll.granter": + return x.Granter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAll does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAll) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.authz.v1beta1.MsgRevokeAll.granter": + x.Granter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAll does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgRevokeAll) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.authz.v1beta1.MsgRevokeAll.granter": + value := x.Granter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAll does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAll) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.authz.v1beta1.MsgRevokeAll.granter": + x.Granter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAll does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAll) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.authz.v1beta1.MsgRevokeAll.granter": + panic(fmt.Errorf("field granter of message cosmos.authz.v1beta1.MsgRevokeAll is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAll does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgRevokeAll) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.authz.v1beta1.MsgRevokeAll.granter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAll")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAll does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgRevokeAll) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.v1beta1.MsgRevokeAll", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgRevokeAll) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAll) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgRevokeAll) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgRevokeAll) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgRevokeAll) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Granter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgRevokeAll) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Granter) > 0 { + i -= len(x.Granter) + copy(dAtA[i:], x.Granter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Granter))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgRevokeAll) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRevokeAll: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRevokeAll: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgRevokeAllResponse protoreflect.MessageDescriptor +) + +func init() { + file_cosmos_authz_v1beta1_tx_proto_init() + md_MsgRevokeAllResponse = File_cosmos_authz_v1beta1_tx_proto.Messages().ByName("MsgRevokeAllResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgRevokeAllResponse)(nil) + +type fastReflection_MsgRevokeAllResponse MsgRevokeAllResponse + +func (x *MsgRevokeAllResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgRevokeAllResponse)(x) +} + +func (x *MsgRevokeAllResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgRevokeAllResponse_messageType fastReflection_MsgRevokeAllResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgRevokeAllResponse_messageType{} + +type fastReflection_MsgRevokeAllResponse_messageType struct{} + +func (x fastReflection_MsgRevokeAllResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgRevokeAllResponse)(nil) +} +func (x fastReflection_MsgRevokeAllResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgRevokeAllResponse) +} +func (x fastReflection_MsgRevokeAllResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRevokeAllResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgRevokeAllResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgRevokeAllResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgRevokeAllResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgRevokeAllResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgRevokeAllResponse) New() protoreflect.Message { + return new(fastReflection_MsgRevokeAllResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgRevokeAllResponse) Interface() protoreflect.ProtoMessage { + return (*MsgRevokeAllResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgRevokeAllResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgRevokeAllResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAllResponse")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAllResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAllResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAllResponse")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAllResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgRevokeAllResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAllResponse")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAllResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAllResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAllResponse")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAllResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAllResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAllResponse")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAllResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgRevokeAllResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.MsgRevokeAllResponse")) + } + panic(fmt.Errorf("message cosmos.authz.v1beta1.MsgRevokeAllResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgRevokeAllResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.v1beta1.MsgRevokeAllResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgRevokeAllResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgRevokeAllResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgRevokeAllResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgRevokeAllResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgRevokeAllResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgRevokeAllResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgRevokeAllResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRevokeAllResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRevokeAllResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var ( md_MsgPruneExpiredGrants protoreflect.MessageDescriptor fd_MsgPruneExpiredGrants_pruner protoreflect.FieldDescriptor @@ -2898,7 +3674,7 @@ func (x *MsgPruneExpiredGrants) ProtoReflect() protoreflect.Message { } func (x *MsgPruneExpiredGrants) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[6] + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3316,7 +4092,7 @@ func (x *MsgPruneExpiredGrantsResponse) ProtoReflect() protoreflect.Message { } func (x *MsgPruneExpiredGrantsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[7] + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3914,6 +4690,69 @@ func (*MsgRevokeResponse) Descriptor() ([]byte, []int) { return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{5} } +// MsgRevokeAll revokes all grants issued by the specified granter. +type MsgRevokeAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (x *MsgRevokeAll) Reset() { + *x = MsgRevokeAll{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRevokeAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRevokeAll) ProtoMessage() {} + +// Deprecated: Use MsgRevokeAll.ProtoReflect.Descriptor instead. +func (*MsgRevokeAll) Descriptor() ([]byte, []int) { + return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{6} +} + +func (x *MsgRevokeAll) GetGranter() string { + if x != nil { + return x.Granter + } + return "" +} + +// MsgRevokeAllResponse defines the Msg/MsgRevokeAllResponse response type. +type MsgRevokeAllResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgRevokeAllResponse) Reset() { + *x = MsgRevokeAllResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRevokeAllResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRevokeAllResponse) ProtoMessage() {} + +// Deprecated: Use MsgRevokeAllResponse.ProtoReflect.Descriptor instead. +func (*MsgRevokeAllResponse) Descriptor() ([]byte, []int) { + return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{7} +} + // MsgPruneExpiredGrants prunes the expired grants. // // Since x/authz v1.0.0 @@ -3928,7 +4767,7 @@ type MsgPruneExpiredGrants struct { func (x *MsgPruneExpiredGrants) Reset() { *x = MsgPruneExpiredGrants{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[6] + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3942,7 +4781,7 @@ func (*MsgPruneExpiredGrants) ProtoMessage() {} // Deprecated: Use MsgPruneExpiredGrants.ProtoReflect.Descriptor instead. func (*MsgPruneExpiredGrants) Descriptor() ([]byte, []int) { - return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{6} + return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{8} } func (x *MsgPruneExpiredGrants) GetPruner() string { @@ -3964,7 +4803,7 @@ type MsgPruneExpiredGrantsResponse struct { func (x *MsgPruneExpiredGrantsResponse) Reset() { *x = MsgPruneExpiredGrantsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[7] + mi := &file_cosmos_authz_v1beta1_tx_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3978,7 +4817,7 @@ func (*MsgPruneExpiredGrantsResponse) ProtoMessage() {} // Deprecated: Use MsgPruneExpiredGrantsResponse.ProtoReflect.Descriptor instead. func (*MsgPruneExpiredGrantsResponse) Descriptor() ([]byte, []int) { - return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{7} + return file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP(), []int{9} } var File_cosmos_authz_v1beta1_tx_proto protoreflect.FileDescriptor @@ -4038,30 +4877,48 @@ var file_cosmos_authz_v1beta1_tx_proto_rawDesc = []byte{ 0xe7, 0xb0, 0x2a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x0a, 0x15, 0x4d, 0x73, 0x67, - 0x50, 0x72, 0x75, 0x6e, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x72, - 0x75, 0x6e, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, - 0x72, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x45, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x32, 0xf7, 0x02, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x4f, 0x0a, 0x05, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x04, 0x45, - 0x78, 0x65, 0x63, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, - 0x65, 0x63, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, - 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x0c, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x3a, 0x3b, 0xd2, + 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, + 0x35, 0x31, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x8a, 0xe7, + 0xb0, 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, + 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x2b, 0x0a, 0x14, 0x4d, 0x73, + 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x3a, 0x13, 0xd2, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x35, 0x31, 0x22, 0x56, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x50, 0x72, + 0x75, 0x6e, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, + 0x12, 0x30, 0x0a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x72, 0x75, 0x6e, + 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x72, 0x22, + 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x32, 0xe9, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x4f, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x04, 0x45, 0x78, 0x65, + 0x63, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, + 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, + 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x09, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x1a, 0x2a, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0xca, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x35, 0x31, 0x12, 0x76, 0x0a, 0x12, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, @@ -4098,7 +4955,7 @@ func file_cosmos_authz_v1beta1_tx_proto_rawDescGZIP() []byte { return file_cosmos_authz_v1beta1_tx_proto_rawDescData } -var file_cosmos_authz_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_cosmos_authz_v1beta1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_cosmos_authz_v1beta1_tx_proto_goTypes = []interface{}{ (*MsgGrant)(nil), // 0: cosmos.authz.v1beta1.MsgGrant (*MsgGrantResponse)(nil), // 1: cosmos.authz.v1beta1.MsgGrantResponse @@ -4106,27 +4963,31 @@ var file_cosmos_authz_v1beta1_tx_proto_goTypes = []interface{}{ (*MsgExecResponse)(nil), // 3: cosmos.authz.v1beta1.MsgExecResponse (*MsgRevoke)(nil), // 4: cosmos.authz.v1beta1.MsgRevoke (*MsgRevokeResponse)(nil), // 5: cosmos.authz.v1beta1.MsgRevokeResponse - (*MsgPruneExpiredGrants)(nil), // 6: cosmos.authz.v1beta1.MsgPruneExpiredGrants - (*MsgPruneExpiredGrantsResponse)(nil), // 7: cosmos.authz.v1beta1.MsgPruneExpiredGrantsResponse - (*Grant)(nil), // 8: cosmos.authz.v1beta1.Grant - (*anypb.Any)(nil), // 9: google.protobuf.Any + (*MsgRevokeAll)(nil), // 6: cosmos.authz.v1beta1.MsgRevokeAll + (*MsgRevokeAllResponse)(nil), // 7: cosmos.authz.v1beta1.MsgRevokeAllResponse + (*MsgPruneExpiredGrants)(nil), // 8: cosmos.authz.v1beta1.MsgPruneExpiredGrants + (*MsgPruneExpiredGrantsResponse)(nil), // 9: cosmos.authz.v1beta1.MsgPruneExpiredGrantsResponse + (*Grant)(nil), // 10: cosmos.authz.v1beta1.Grant + (*anypb.Any)(nil), // 11: google.protobuf.Any } var file_cosmos_authz_v1beta1_tx_proto_depIdxs = []int32{ - 8, // 0: cosmos.authz.v1beta1.MsgGrant.grant:type_name -> cosmos.authz.v1beta1.Grant - 9, // 1: cosmos.authz.v1beta1.MsgExec.msgs:type_name -> google.protobuf.Any - 0, // 2: cosmos.authz.v1beta1.Msg.Grant:input_type -> cosmos.authz.v1beta1.MsgGrant - 2, // 3: cosmos.authz.v1beta1.Msg.Exec:input_type -> cosmos.authz.v1beta1.MsgExec - 4, // 4: cosmos.authz.v1beta1.Msg.Revoke:input_type -> cosmos.authz.v1beta1.MsgRevoke - 6, // 5: cosmos.authz.v1beta1.Msg.PruneExpiredGrants:input_type -> cosmos.authz.v1beta1.MsgPruneExpiredGrants - 1, // 6: cosmos.authz.v1beta1.Msg.Grant:output_type -> cosmos.authz.v1beta1.MsgGrantResponse - 3, // 7: cosmos.authz.v1beta1.Msg.Exec:output_type -> cosmos.authz.v1beta1.MsgExecResponse - 5, // 8: cosmos.authz.v1beta1.Msg.Revoke:output_type -> cosmos.authz.v1beta1.MsgRevokeResponse - 7, // 9: cosmos.authz.v1beta1.Msg.PruneExpiredGrants:output_type -> cosmos.authz.v1beta1.MsgPruneExpiredGrantsResponse - 6, // [6:10] is the sub-list for method output_type - 2, // [2:6] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 10, // 0: cosmos.authz.v1beta1.MsgGrant.grant:type_name -> cosmos.authz.v1beta1.Grant + 11, // 1: cosmos.authz.v1beta1.MsgExec.msgs:type_name -> google.protobuf.Any + 0, // 2: cosmos.authz.v1beta1.Msg.Grant:input_type -> cosmos.authz.v1beta1.MsgGrant + 2, // 3: cosmos.authz.v1beta1.Msg.Exec:input_type -> cosmos.authz.v1beta1.MsgExec + 4, // 4: cosmos.authz.v1beta1.Msg.Revoke:input_type -> cosmos.authz.v1beta1.MsgRevoke + 6, // 5: cosmos.authz.v1beta1.Msg.RevokeAll:input_type -> cosmos.authz.v1beta1.MsgRevokeAll + 8, // 6: cosmos.authz.v1beta1.Msg.PruneExpiredGrants:input_type -> cosmos.authz.v1beta1.MsgPruneExpiredGrants + 1, // 7: cosmos.authz.v1beta1.Msg.Grant:output_type -> cosmos.authz.v1beta1.MsgGrantResponse + 3, // 8: cosmos.authz.v1beta1.Msg.Exec:output_type -> cosmos.authz.v1beta1.MsgExecResponse + 5, // 9: cosmos.authz.v1beta1.Msg.Revoke:output_type -> cosmos.authz.v1beta1.MsgRevokeResponse + 7, // 10: cosmos.authz.v1beta1.Msg.RevokeAll:output_type -> cosmos.authz.v1beta1.MsgRevokeAllResponse + 9, // 11: cosmos.authz.v1beta1.Msg.PruneExpiredGrants:output_type -> cosmos.authz.v1beta1.MsgPruneExpiredGrantsResponse + 7, // [7:12] is the sub-list for method output_type + 2, // [2:7] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_cosmos_authz_v1beta1_tx_proto_init() } @@ -4209,7 +5070,7 @@ func file_cosmos_authz_v1beta1_tx_proto_init() { } } file_cosmos_authz_v1beta1_tx_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgPruneExpiredGrants); i { + switch v := v.(*MsgRevokeAll); i { case 0: return &v.state case 1: @@ -4221,6 +5082,30 @@ func file_cosmos_authz_v1beta1_tx_proto_init() { } } file_cosmos_authz_v1beta1_tx_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRevokeAllResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_authz_v1beta1_tx_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgPruneExpiredGrants); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_authz_v1beta1_tx_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgPruneExpiredGrantsResponse); i { case 0: return &v.state @@ -4239,7 +5124,7 @@ func file_cosmos_authz_v1beta1_tx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_authz_v1beta1_tx_proto_rawDesc, NumEnums: 0, - NumMessages: 8, + NumMessages: 10, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cosmos/authz/v1beta1/tx_grpc.pb.go b/api/cosmos/authz/v1beta1/tx_grpc.pb.go index 2842eb3f5ddc..a072f0ffad9f 100644 --- a/api/cosmos/authz/v1beta1/tx_grpc.pb.go +++ b/api/cosmos/authz/v1beta1/tx_grpc.pb.go @@ -24,6 +24,7 @@ const ( Msg_Grant_FullMethodName = "/cosmos.authz.v1beta1.Msg/Grant" Msg_Exec_FullMethodName = "/cosmos.authz.v1beta1.Msg/Exec" Msg_Revoke_FullMethodName = "/cosmos.authz.v1beta1.Msg/Revoke" + Msg_RevokeAll_FullMethodName = "/cosmos.authz.v1beta1.Msg/RevokeAll" Msg_PruneExpiredGrants_FullMethodName = "/cosmos.authz.v1beta1.Msg/PruneExpiredGrants" ) @@ -43,6 +44,8 @@ type MsgClient interface { // Revoke revokes any authorization corresponding to the provided method name on the // granter's account that has been granted to the grantee. Revoke(ctx context.Context, in *MsgRevoke, opts ...grpc.CallOption) (*MsgRevokeResponse, error) + // RevokeAll revokes all grants issued by the specified granter. + RevokeAll(ctx context.Context, in *MsgRevokeAll, opts ...grpc.CallOption) (*MsgRevokeAllResponse, error) // PruneExpiredGrants prunes the expired grants. Currently up to 75 at a time. // // Since cosmos-sdk 0.51 @@ -84,6 +87,15 @@ func (c *msgClient) Revoke(ctx context.Context, in *MsgRevoke, opts ...grpc.Call return out, nil } +func (c *msgClient) RevokeAll(ctx context.Context, in *MsgRevokeAll, opts ...grpc.CallOption) (*MsgRevokeAllResponse, error) { + out := new(MsgRevokeAllResponse) + err := c.cc.Invoke(ctx, Msg_RevokeAll_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *msgClient) PruneExpiredGrants(ctx context.Context, in *MsgPruneExpiredGrants, opts ...grpc.CallOption) (*MsgPruneExpiredGrantsResponse, error) { out := new(MsgPruneExpiredGrantsResponse) err := c.cc.Invoke(ctx, Msg_PruneExpiredGrants_FullMethodName, in, out, opts...) @@ -109,6 +121,8 @@ type MsgServer interface { // Revoke revokes any authorization corresponding to the provided method name on the // granter's account that has been granted to the grantee. Revoke(context.Context, *MsgRevoke) (*MsgRevokeResponse, error) + // RevokeAll revokes all grants issued by the specified granter. + RevokeAll(context.Context, *MsgRevokeAll) (*MsgRevokeAllResponse, error) // PruneExpiredGrants prunes the expired grants. Currently up to 75 at a time. // // Since cosmos-sdk 0.51 @@ -129,6 +143,9 @@ func (UnimplementedMsgServer) Exec(context.Context, *MsgExec) (*MsgExecResponse, func (UnimplementedMsgServer) Revoke(context.Context, *MsgRevoke) (*MsgRevokeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Revoke not implemented") } +func (UnimplementedMsgServer) RevokeAll(context.Context, *MsgRevokeAll) (*MsgRevokeAllResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevokeAll not implemented") +} func (UnimplementedMsgServer) PruneExpiredGrants(context.Context, *MsgPruneExpiredGrants) (*MsgPruneExpiredGrantsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PruneExpiredGrants not implemented") } @@ -199,6 +216,24 @@ func _Msg_Revoke_Handler(srv interface{}, ctx context.Context, dec func(interfac return interceptor(ctx, in, info, handler) } +func _Msg_RevokeAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRevokeAll) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RevokeAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_RevokeAll_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RevokeAll(ctx, req.(*MsgRevokeAll)) + } + return interceptor(ctx, in, info, handler) +} + func _Msg_PruneExpiredGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgPruneExpiredGrants) if err := dec(in); err != nil { @@ -236,6 +271,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "Revoke", Handler: _Msg_Revoke_Handler, }, + { + MethodName: "RevokeAll", + Handler: _Msg_RevokeAll_Handler, + }, { MethodName: "PruneExpiredGrants", Handler: _Msg_PruneExpiredGrants_Handler, diff --git a/x/authz/CHANGELOG.md b/x/authz/CHANGELOG.md index 5509c6fd4a0f..9ccdd14e3eda 100644 --- a/x/authz/CHANGELOG.md +++ b/x/authz/CHANGELOG.md @@ -28,6 +28,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features * [#18737](https://github.com/cosmos/cosmos-sdk/pull/18737) Added a limit of 200 grants pruned per `BeginBlock` and the `PruneExpiredGrants` message that prunes 75 expired grants on every run. +* [#20161](https://github.com/cosmos/cosmos-sdk/pull/20161) Added `RevokeAll` method to revoke all grants at once. ### API Breaking Changes diff --git a/x/authz/README.md b/x/authz/README.md index 755bfa59c174..5c40338f4714 100644 --- a/x/authz/README.md +++ b/x/authz/README.md @@ -21,6 +21,7 @@ granting arbitrary privileges from one account (the granter) to another account * [Messages](#messages) * [MsgGrant](#msggrant) * [MsgRevoke](#msgrevoke) + * [MsgRevokeAll](#msgrevokeall) * [MsgExec](#msgexec) * [MsgPruneExpiredGrants](#msgpruneexpiredgrants) * [Events](#events) @@ -168,6 +169,19 @@ The message handling should fail if: NOTE: The `MsgExec` message removes a grant if the grant has expired. +### MsgRevokeAll + +The `MsgRevokeAll` message revokes all grants issued by the specified granter. This is useful for quickly removing all authorizations granted by a single granter without specifying individual message types or grantees. + +```protobuf reference +https://github.com/cosmos/cosmos-sdk/tree/main/proto/cosmos/authz/v1beta1/tx.proto#L91-L97 +``` + +The message handling should fail if: + +* the `granter` address is not provided or invalid. +* the `granter` does not have any active grants. + ### MsgExec When a grantee wants to execute a transaction on behalf of a granter, they must send `MsgExec`. diff --git a/x/authz/event.pb.go b/x/authz/event.pb.go index 81266f67410d..fe1c92d27a29 100644 --- a/x/authz/event.pb.go +++ b/x/authz/event.pb.go @@ -155,6 +155,61 @@ func (m *EventRevoke) GetGrantee() string { return "" } +// EventRevokeAll is emitted on Msg/RevokeAll +type EventRevokeAll struct { + // Msg type URL for which all authorizations are revoked + MsgTypeUrl string `protobuf:"bytes,2,opt,name=msg_type_url,json=msgTypeUrl,proto3" json:"msg_type_url,omitempty"` + // Granter account address + Granter string `protobuf:"bytes,3,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (m *EventRevokeAll) Reset() { *m = EventRevokeAll{} } +func (m *EventRevokeAll) String() string { return proto.CompactTextString(m) } +func (*EventRevokeAll) ProtoMessage() {} +func (*EventRevokeAll) Descriptor() ([]byte, []int) { + return fileDescriptor_1f88cbc71a8baf1f, []int{2} +} +func (m *EventRevokeAll) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventRevokeAll) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventRevokeAll.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventRevokeAll) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventRevokeAll.Merge(m, src) +} +func (m *EventRevokeAll) XXX_Size() int { + return m.Size() +} +func (m *EventRevokeAll) XXX_DiscardUnknown() { + xxx_messageInfo_EventRevokeAll.DiscardUnknown(m) +} + +var xxx_messageInfo_EventRevokeAll proto.InternalMessageInfo + +func (m *EventRevokeAll) GetMsgTypeUrl() string { + if m != nil { + return m.MsgTypeUrl + } + return "" +} + +func (m *EventRevokeAll) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + // EventPruneExpiredGrants is emitted on Msg/PruneExpiredGrants // // Since: x/authz 1.0.0 @@ -167,7 +222,7 @@ func (m *EventPruneExpiredGrants) Reset() { *m = EventPruneExpiredGrants func (m *EventPruneExpiredGrants) String() string { return proto.CompactTextString(m) } func (*EventPruneExpiredGrants) ProtoMessage() {} func (*EventPruneExpiredGrants) Descriptor() ([]byte, []int) { - return fileDescriptor_1f88cbc71a8baf1f, []int{2} + return fileDescriptor_1f88cbc71a8baf1f, []int{3} } func (m *EventPruneExpiredGrants) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -206,13 +261,14 @@ func (m *EventPruneExpiredGrants) GetPruner() string { func init() { proto.RegisterType((*EventGrant)(nil), "cosmos.authz.v1beta1.EventGrant") proto.RegisterType((*EventRevoke)(nil), "cosmos.authz.v1beta1.EventRevoke") + proto.RegisterType((*EventRevokeAll)(nil), "cosmos.authz.v1beta1.EventRevokeAll") proto.RegisterType((*EventPruneExpiredGrants)(nil), "cosmos.authz.v1beta1.EventPruneExpiredGrants") } func init() { proto.RegisterFile("cosmos/authz/v1beta1/event.proto", fileDescriptor_1f88cbc71a8baf1f) } var fileDescriptor_1f88cbc71a8baf1f = []byte{ - // 269 bytes of a gzipped FileDescriptorProto + // 299 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2d, 0x4b, 0xcd, 0x2b, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x81, 0xa8, @@ -223,13 +279,15 @@ var fileDescriptor_1f88cbc71a8baf1f = []byte{ 0xe5, 0x08, 0x19, 0x71, 0xb1, 0xa7, 0x83, 0x94, 0xa6, 0x16, 0x49, 0x30, 0x83, 0x24, 0x9d, 0x24, 0x2e, 0x6d, 0xd1, 0x85, 0x59, 0xeb, 0x98, 0x92, 0x52, 0x94, 0x5a, 0x5c, 0x1c, 0x5c, 0x52, 0x94, 0x99, 0x97, 0x1e, 0x04, 0x53, 0x88, 0xd0, 0x93, 0x2a, 0xc1, 0x42, 0x9c, 0x9e, 0x54, 0xa5, 0xe9, - 0x8c, 0x5c, 0xdc, 0x60, 0x87, 0x05, 0xa5, 0x96, 0xe5, 0x67, 0xa7, 0x0e, 0x22, 0x97, 0x79, 0x73, - 0x89, 0x83, 0x1d, 0x16, 0x50, 0x54, 0x9a, 0x97, 0xea, 0x5a, 0x51, 0x90, 0x59, 0x94, 0x9a, 0x02, - 0x0e, 0xbd, 0x62, 0x21, 0x03, 0x2e, 0xb6, 0x02, 0x90, 0x68, 0x11, 0xc4, 0x79, 0x78, 0x4c, 0x83, - 0xaa, 0x73, 0xd2, 0x3b, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, - 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xa8, 0xbe, - 0xe2, 0x94, 0x6c, 0xbd, 0xcc, 0x7c, 0xfd, 0x0a, 0x48, 0xa4, 0x27, 0xb1, 0x81, 0xa3, 0xcd, 0x18, - 0x10, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x9f, 0xa5, 0x63, 0x0b, 0x02, 0x00, 0x00, + 0x8c, 0x5c, 0xdc, 0x60, 0x87, 0x05, 0xa5, 0x96, 0xe5, 0x67, 0xa7, 0x0e, 0x22, 0x97, 0x55, 0x73, + 0xf1, 0x21, 0x39, 0xcc, 0x31, 0x27, 0x87, 0x36, 0x6e, 0xb3, 0x12, 0xbe, 0xb4, 0x45, 0x97, 0x1f, + 0xa2, 0x44, 0xb7, 0x38, 0x25, 0x5b, 0xc1, 0x40, 0xcf, 0xd4, 0x50, 0xc9, 0x9b, 0x4b, 0x1c, 0x6c, + 0x79, 0x40, 0x51, 0x69, 0x5e, 0xaa, 0x6b, 0x45, 0x41, 0x66, 0x51, 0x6a, 0x0a, 0x38, 0xea, 0x8a, + 0x85, 0x0c, 0xb8, 0xd8, 0x0a, 0x40, 0xa2, 0x45, 0x10, 0xfb, 0xf1, 0x58, 0x01, 0x55, 0xe7, 0xa4, + 0x77, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, + 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x50, 0x7d, 0xc5, 0x29, 0xd9, + 0x7a, 0x99, 0xf9, 0xfa, 0x15, 0x90, 0x14, 0x97, 0xc4, 0x06, 0x4e, 0x33, 0xc6, 0x80, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x7d, 0x61, 0x73, 0xd1, 0x88, 0x02, 0x00, 0x00, } func (m *EventGrant) Marshal() (dAtA []byte, err error) { @@ -320,6 +378,43 @@ func (m *EventRevoke) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EventRevokeAll) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventRevokeAll) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventRevokeAll) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0x1a + } + if len(m.MsgTypeUrl) > 0 { + i -= len(m.MsgTypeUrl) + copy(dAtA[i:], m.MsgTypeUrl) + i = encodeVarintEvent(dAtA, i, uint64(len(m.MsgTypeUrl))) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} + func (m *EventPruneExpiredGrants) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -403,6 +498,23 @@ func (m *EventRevoke) Size() (n int) { return n } +func (m *EventRevokeAll) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MsgTypeUrl) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + func (m *EventPruneExpiredGrants) Size() (n int) { if m == nil { return 0 @@ -714,6 +826,120 @@ func (m *EventRevoke) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventRevokeAll) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventRevokeAll: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventRevokeAll: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MsgTypeUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MsgTypeUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *EventPruneExpiredGrants) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/authz/keeper/keeper.go b/x/authz/keeper/keeper.go index 0be13bd6d1e5..3c8cae7ec45a 100644 --- a/x/authz/keeper/keeper.go +++ b/x/authz/keeper/keeper.go @@ -256,6 +256,31 @@ func (k Keeper) DeleteGrant(ctx context.Context, grantee, granter sdk.AccAddress }) } +// DeleteAllGrants revokes all authorizations granted to the grantee by the granter. +func (k Keeper) DeleteAllGrants(ctx context.Context, granter sdk.AccAddress) error { + var keysToDelete [][]byte + + err := k.IterateGranterGrants(ctx, granter, func(grantee sdk.AccAddress, msgType string) (stop bool, err error) { + keysToDelete = append(keysToDelete, grantStoreKey(grantee, granter, msgType)) + return false, nil + }) + if err != nil { + return err + } + if len(keysToDelete) == 0 { + return errorsmod.Wrapf(authz.ErrNoAuthorizationFound, "no grants found for granter %s", granter) + } + for _, key := range keysToDelete { + _, granteeAddr, msgType := parseGrantStoreKey(key) + if err := k.DeleteGrant(ctx, granteeAddr, granter, msgType); err != nil { + return err + } + } + return k.EventService.EventManager(ctx).Emit(&authz.EventRevokeAll{ + Granter: granter.String(), + }) +} + // GetAuthorizations Returns list of `Authorizations` granted to the grantee by the granter. func (k Keeper) GetAuthorizations(ctx context.Context, grantee, granter sdk.AccAddress) ([]authz.Authorization, error) { store := runtime.KVStoreAdapter(k.KVStoreService.OpenKVStore(ctx)) @@ -325,6 +350,29 @@ func (k Keeper) IterateGrants(ctx context.Context, return nil } +func (k Keeper) IterateGranterGrants(ctx context.Context, granter sdk.AccAddress, + handler func(granteeAddr sdk.AccAddress, msgType string) (stop bool, err error), +) error { + // no-op if handler is nil + if handler == nil { + return nil + } + store := runtime.KVStoreAdapter(k.KVStoreService.OpenKVStore(ctx)) + iter := storetypes.KVStorePrefixIterator(store, granterStoreKey(granter)) + defer iter.Close() + for ; iter.Valid(); iter.Next() { + _, granteeAddr, msgType := parseGrantStoreKey(iter.Key()) + ok, err := handler(granteeAddr, msgType) + if err != nil { + return err + } + if ok { + break + } + } + return nil +} + func (k Keeper) getGrantQueueItem(ctx context.Context, expiration time.Time, granter, grantee sdk.AccAddress) (*authz.GrantQueueItem, error) { store := k.KVStoreService.OpenKVStore(ctx) bz, err := store.Get(GrantQueueKey(expiration, granter, grantee)) diff --git a/x/authz/keeper/keeper_test.go b/x/authz/keeper/keeper_test.go index 23d25f2af98b..c1e18ea48a79 100644 --- a/x/authz/keeper/keeper_test.go +++ b/x/authz/keeper/keeper_test.go @@ -92,29 +92,61 @@ func (s *TestSuite) TestKeeper() { require := s.Require() granterAddr := addrs[0] - granteeAddr := addrs[1] + grantee1Addr := addrs[1] + grantee2Addr := addrs[2] + grantee3Addr := addrs[3] + grantees := []sdk.AccAddress{grantee1Addr, grantee2Addr, grantee3Addr} s.T().Log("verify that no authorization returns nil") authorizations, err := s.authzKeeper.GetAuthorizations(ctx, granteeAddr, granterAddr) require.NoError(err) require.Len(authorizations, 0) - s.T().Log("verify save, get and delete") + s.T().Log("verify save, get and delete work for grants") sendAutz := &banktypes.SendAuthorization{SpendLimit: coins100} expire := now.AddDate(1, 0, 0) - err = s.authzKeeper.SaveGrant(ctx, granteeAddr, granterAddr, sendAutz, &expire) + for _, grantee := range grantees { + err = s.authzKeeper.SaveGrant(ctx, grantee, granterAddr, sendAutz, &expire) + require.NoError(err) + } + + for _, grantee := range grantees { + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee, granterAddr) + require.NoError(err) + require.Len(authorizations, 1) + } + + // Delete a single grant + err = s.authzKeeper.DeleteGrant(ctx, grantee1Addr, granterAddr, sendAutz.MsgTypeURL()) require.NoError(err) - authorizations, err = s.authzKeeper.GetAuthorizations(ctx, granteeAddr, granterAddr) + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee1Addr, granterAddr) + require.NoError(err) + require.Len(authorizations, 0) + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee2Addr, granterAddr) + require.NoError(err) + require.Len(authorizations, 1) + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee3Addr, granterAddr) require.NoError(err) require.Len(authorizations, 1) - err = s.authzKeeper.DeleteGrant(ctx, granteeAddr, granterAddr, sendAutz.MsgTypeURL()) + // Delete all grants for a granter + err = s.authzKeeper.DeleteAllGrants(ctx, granterAddr) require.NoError(err) - authorizations, err = s.authzKeeper.GetAuthorizations(ctx, granteeAddr, granterAddr) + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee1Addr, granterAddr) require.NoError(err) require.Len(authorizations, 0) + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee2Addr, granterAddr) + require.NoError(err) + require.Len(authorizations, 0) + authorizations, err = s.authzKeeper.GetAuthorizations(ctx, grantee3Addr, granterAddr) + require.NoError(err) + require.Len(authorizations, 0) + + // Delete all grants for a granter with no grants, should error + err = s.authzKeeper.DeleteAllGrants(ctx, granterAddr) + require.Error(err) s.T().Log("verify granting same authorization overwrite existing authorization") err = s.authzKeeper.SaveGrant(ctx, granteeAddr, granterAddr, sendAutz, &expire) @@ -162,6 +194,39 @@ func (s *TestSuite) TestKeeperIter() { }) } +func (s *TestSuite) TestKeeperGranterGrantsIter() { + ctx, addrs := s.ctx, s.addrs + + granterAddr := addrs[0] + granter2Addr := addrs[1] + granteeAddr := addrs[2] + grantee2Addr := addrs[3] + grantee3Addr := addrs[4] + e := ctx.HeaderInfo().Time.AddDate(1, 0, 0) + sendAuthz := banktypes.NewSendAuthorization(coins100, nil, s.accountKeeper.AddressCodec()) + + err := s.authzKeeper.SaveGrant(ctx, granteeAddr, granterAddr, sendAuthz, &e) + s.Require().NoError(err) + + err = s.authzKeeper.SaveGrant(ctx, grantee2Addr, granterAddr, sendAuthz, &e) + s.Require().NoError(err) + + err = s.authzKeeper.SaveGrant(ctx, grantee3Addr, granter2Addr, sendAuthz, &e) + s.Require().NoError(err) + + _ = s.authzKeeper.IterateGranterGrants(ctx, granterAddr, func(grantee sdk.AccAddress, msgType string) (bool, error) { + s.Require().Contains([]sdk.AccAddress{granteeAddr, grantee2Addr}, grantee) + s.Require().NotContains([]sdk.AccAddress{grantee3Addr}, grantee) + return true, nil + }) + + _ = s.authzKeeper.IterateGranterGrants(ctx, granter2Addr, func(grantee sdk.AccAddress, msgType string) (bool, error) { + s.Require().Equal(grantee3Addr, grantee) + s.Require().NotContains([]sdk.AccAddress{granteeAddr, grantee2Addr}, grantee) + return true, nil + }) +} + func (s *TestSuite) TestDispatchAction() { addrs := s.addrs require := s.Require() diff --git a/x/authz/keeper/keys.go b/x/authz/keeper/keys.go index c268a83e6079..e29eb2245d64 100644 --- a/x/authz/keeper/keys.go +++ b/x/authz/keeper/keys.go @@ -39,6 +39,12 @@ func grantStoreKey(grantee, granter sdk.AccAddress, msgType string) []byte { return key } +func granterStoreKey(granter sdk.AccAddress) []byte { + granter = address.MustLengthPrefix(granter) + key := sdk.AppendLengthPrefixedBytes(GrantKey, granter) + return key +} + // parseGrantStoreKey - split granter, grantee address and msg type from the authorization key func parseGrantStoreKey(key []byte) (granterAddr, granteeAddr sdk.AccAddress, msgType string) { // key is of format: diff --git a/x/authz/keeper/msg_server.go b/x/authz/keeper/msg_server.go index 05f73a097d2a..efc53c449ee9 100644 --- a/x/authz/keeper/msg_server.go +++ b/x/authz/keeper/msg_server.go @@ -79,6 +79,20 @@ func (k Keeper) Revoke(ctx context.Context, msg *authz.MsgRevoke) (*authz.MsgRev return &authz.MsgRevokeResponse{}, nil } +// RevokeAll implements the MsgServer.RevokeAll method. +func (k Keeper) RevokeAll(ctx context.Context, msg *authz.MsgRevokeAll) (*authz.MsgRevokeAllResponse, error) { + granter, err := k.authKeeper.AddressCodec().StringToBytes(msg.Granter) + if err != nil { + return nil, sdkerrors.ErrInvalidAddress.Wrapf("invalid granter address: %s", err) + } + + if err := k.DeleteAllGrants(ctx, granter); err != nil { + return nil, err + } + + return &authz.MsgRevokeAllResponse{}, nil +} + // Exec implements the MsgServer.Exec method. func (k Keeper) Exec(ctx context.Context, msg *authz.MsgExec) (*authz.MsgExecResponse, error) { if msg.Grantee == "" { diff --git a/x/authz/keeper/msg_server_test.go b/x/authz/keeper/msg_server_test.go index 5e4a25279b87..6313f8a3f8fc 100644 --- a/x/authz/keeper/msg_server_test.go +++ b/x/authz/keeper/msg_server_test.go @@ -435,3 +435,67 @@ func (suite *TestSuite) TestPruneExpiredGrants() { }) suite.Require().Equal(0, totalGrants) } + +func (suite *TestSuite) TestRevokeAllGrants() { + addrs := simtestutil.CreateIncrementalAccounts(3) + + grantee, grantee2, granter := addrs[0], addrs[1], addrs[2] + granterStrAddr, err := suite.accountKeeper.AddressCodec().BytesToString(granter) + suite.Require().NoError(err) + + testCases := []struct { + name string + malleate func() *authz.MsgRevokeAll + expErr bool + errMsg string + }{ + { + name: "invalid granter", + malleate: func() *authz.MsgRevokeAll { + return &authz.MsgRevokeAll{ + Granter: "invalid", + } + }, + expErr: true, + errMsg: "invalid bech32 string", + }, + { + name: "no existing grant to revoke", + malleate: func() *authz.MsgRevokeAll { + return &authz.MsgRevokeAll{ + Granter: granterStrAddr, + } + }, + expErr: true, + errMsg: "authorization not found", + }, + { + name: "valid grant", + malleate: func() *authz.MsgRevokeAll { + suite.createSendAuthorization(grantee, granter) + suite.createSendAuthorization(grantee2, granter) + return &authz.MsgRevokeAll{ + Granter: granterStrAddr, + } + }, + }, + } + + for _, tc := range testCases { + suite.Run(tc.name, func() { + _, err := suite.msgSrvr.RevokeAll(suite.ctx, tc.malleate()) + if tc.expErr { + suite.Require().Error(err) + suite.Require().Contains(err.Error(), tc.errMsg) + } else { + suite.Require().NoError(err) + totalGrants := 0 + _ = suite.authzKeeper.IterateGranterGrants(suite.ctx, granter, func(sdk.AccAddress, string) (bool, error) { + totalGrants++ + return false, nil + }) + suite.Require().Equal(0, totalGrants) + } + }) + } +} diff --git a/x/authz/module/autocli.go b/x/authz/module/autocli.go index 0ce9d4968e6d..9ead5006c1aa 100644 --- a/x/authz/module/autocli.go +++ b/x/authz/module/autocli.go @@ -70,6 +70,12 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions { {ProtoField: "msg_type_url"}, }, }, + { + RpcMethod: "RevokeAll", + Use: "revoke-all --from [signer]", + Short: "Revoke all authorizations from the signer", + Example: fmt.Sprintf("%s tx authz revoke-all --from=cosmos1skj..", version.AppName), + }, { RpcMethod: "PruneExpiredGrants", Use: "prune-grants --from [granter]", diff --git a/x/authz/proto/buf.lock b/x/authz/proto/buf.lock index 08b5c2ec08aa..28c135cc08bb 100644 --- a/x/authz/proto/buf.lock +++ b/x/authz/proto/buf.lock @@ -4,8 +4,8 @@ deps: - remote: buf.build owner: cosmos repository: cosmos-proto - commit: 1935555c206d4afb9e94615dfd0fad31 - digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377 + commit: 04467658e59e44bbb22fe568206e1f70 + digest: shake256:73a640bd60e0c523b0f8237ff34eab67c45a38b64bbbde1d80224819d272dbf316ac183526bd245f994af6608b025f5130483d0133c5edd385531326b5990466 - remote: buf.build owner: cosmos repository: cosmos-sdk diff --git a/x/authz/proto/cosmos/authz/v1beta1/event.proto b/x/authz/proto/cosmos/authz/v1beta1/event.proto index 44abb5645aaf..95550af39e67 100644 --- a/x/authz/proto/cosmos/authz/v1beta1/event.proto +++ b/x/authz/proto/cosmos/authz/v1beta1/event.proto @@ -29,6 +29,15 @@ message EventRevoke { string grantee = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; } +// EventRevokeAll is emitted on Msg/RevokeAll +message EventRevokeAll { + option (cosmos_proto.message_added_in) = "cosmos-sdk 0.51"; + // Msg type URL for which all authorizations are revoked + string msg_type_url = 2; + // Granter account address + string granter = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + // EventPruneExpiredGrants is emitted on Msg/PruneExpiredGrants // // Since: x/authz 1.0.0 diff --git a/x/authz/proto/cosmos/authz/v1beta1/tx.proto b/x/authz/proto/cosmos/authz/v1beta1/tx.proto index 66b5803e0282..84f9d4017a5f 100644 --- a/x/authz/proto/cosmos/authz/v1beta1/tx.proto +++ b/x/authz/proto/cosmos/authz/v1beta1/tx.proto @@ -31,6 +31,11 @@ service Msg { // granter's account that has been granted to the grantee. rpc Revoke(MsgRevoke) returns (MsgRevokeResponse); + // RevokeAll revokes all grants issued by the specified granter. + rpc RevokeAll(MsgRevokeAll) returns (MsgRevokeAllResponse) { + option (cosmos_proto.method_added_in) = "cosmos-sdk 0.51"; + } + // PruneExpiredGrants prunes the expired grants. Currently up to 75 at a time. // // Since cosmos-sdk 0.51 @@ -85,6 +90,20 @@ message MsgRevoke { // MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. message MsgRevokeResponse {} +// MsgRevokeAll revokes all grants issued by the specified granter. +message MsgRevokeAll { + option (cosmos_proto.message_added_in) = "cosmos-sdk 0.51"; + option (cosmos.msg.v1.signer) = "granter"; + option (amino.name) = "cosmos-sdk/MsgRevokeAll"; + + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgRevokeAllResponse defines the Msg/MsgRevokeAllResponse response type. +message MsgRevokeAllResponse { + option (cosmos_proto.message_added_in) = "cosmos-sdk 0.51"; +} + // MsgPruneExpiredGrants prunes the expired grants. // // Since x/authz v1.0.0 diff --git a/x/authz/tx.pb.go b/x/authz/tx.pb.go index 2b52d6c36f10..4a5d15a99ccd 100644 --- a/x/authz/tx.pb.go +++ b/x/authz/tx.pb.go @@ -270,6 +270,81 @@ func (m *MsgRevokeResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRevokeResponse proto.InternalMessageInfo +// MsgRevokeAll revokes all grants issued by the specified granter. +type MsgRevokeAll struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (m *MsgRevokeAll) Reset() { *m = MsgRevokeAll{} } +func (m *MsgRevokeAll) String() string { return proto.CompactTextString(m) } +func (*MsgRevokeAll) ProtoMessage() {} +func (*MsgRevokeAll) Descriptor() ([]byte, []int) { + return fileDescriptor_3ceddab7d8589ad1, []int{6} +} +func (m *MsgRevokeAll) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRevokeAll) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRevokeAll.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRevokeAll) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRevokeAll.Merge(m, src) +} +func (m *MsgRevokeAll) XXX_Size() int { + return m.Size() +} +func (m *MsgRevokeAll) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRevokeAll.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRevokeAll proto.InternalMessageInfo + +// MsgRevokeAllResponse defines the Msg/MsgRevokeAllResponse response type. +type MsgRevokeAllResponse struct { +} + +func (m *MsgRevokeAllResponse) Reset() { *m = MsgRevokeAllResponse{} } +func (m *MsgRevokeAllResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRevokeAllResponse) ProtoMessage() {} +func (*MsgRevokeAllResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3ceddab7d8589ad1, []int{7} +} +func (m *MsgRevokeAllResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRevokeAllResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRevokeAllResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRevokeAllResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRevokeAllResponse.Merge(m, src) +} +func (m *MsgRevokeAllResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRevokeAllResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRevokeAllResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRevokeAllResponse proto.InternalMessageInfo + // MsgPruneExpiredGrants prunes the expired grants. // // Since x/authz v1.0.0 @@ -281,7 +356,7 @@ func (m *MsgPruneExpiredGrants) Reset() { *m = MsgPruneExpiredGrants{} } func (m *MsgPruneExpiredGrants) String() string { return proto.CompactTextString(m) } func (*MsgPruneExpiredGrants) ProtoMessage() {} func (*MsgPruneExpiredGrants) Descriptor() ([]byte, []int) { - return fileDescriptor_3ceddab7d8589ad1, []int{6} + return fileDescriptor_3ceddab7d8589ad1, []int{8} } func (m *MsgPruneExpiredGrants) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -320,7 +395,7 @@ func (m *MsgPruneExpiredGrantsResponse) Reset() { *m = MsgPruneExpiredGr func (m *MsgPruneExpiredGrantsResponse) String() string { return proto.CompactTextString(m) } func (*MsgPruneExpiredGrantsResponse) ProtoMessage() {} func (*MsgPruneExpiredGrantsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_3ceddab7d8589ad1, []int{7} + return fileDescriptor_3ceddab7d8589ad1, []int{9} } func (m *MsgPruneExpiredGrantsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -356,6 +431,8 @@ func init() { proto.RegisterType((*MsgExecResponse)(nil), "cosmos.authz.v1beta1.MsgExecResponse") proto.RegisterType((*MsgRevoke)(nil), "cosmos.authz.v1beta1.MsgRevoke") proto.RegisterType((*MsgRevokeResponse)(nil), "cosmos.authz.v1beta1.MsgRevokeResponse") + proto.RegisterType((*MsgRevokeAll)(nil), "cosmos.authz.v1beta1.MsgRevokeAll") + proto.RegisterType((*MsgRevokeAllResponse)(nil), "cosmos.authz.v1beta1.MsgRevokeAllResponse") proto.RegisterType((*MsgPruneExpiredGrants)(nil), "cosmos.authz.v1beta1.MsgPruneExpiredGrants") proto.RegisterType((*MsgPruneExpiredGrantsResponse)(nil), "cosmos.authz.v1beta1.MsgPruneExpiredGrantsResponse") } @@ -363,45 +440,49 @@ func init() { func init() { proto.RegisterFile("cosmos/authz/v1beta1/tx.proto", fileDescriptor_3ceddab7d8589ad1) } var fileDescriptor_3ceddab7d8589ad1 = []byte{ - // 604 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4f, 0x6f, 0x12, 0x41, - 0x1c, 0x65, 0x4a, 0x0b, 0x32, 0x34, 0xd1, 0x6e, 0x31, 0x6e, 0xb7, 0x61, 0xd9, 0xac, 0x56, 0x09, - 0x0d, 0xbb, 0x42, 0x6f, 0xc4, 0x4b, 0x49, 0x88, 0x17, 0x89, 0x66, 0xfd, 0x73, 0xf0, 0x42, 0x96, - 0x32, 0x8e, 0x04, 0x76, 0x67, 0xb3, 0xb3, 0x10, 0xf0, 0x64, 0x3c, 0x7a, 0xf2, 0x63, 0xe8, 0x8d, - 0x43, 0x8f, 0x7e, 0x00, 0xe2, 0xa9, 0xf1, 0x60, 0x3c, 0x19, 0x85, 0x03, 0x1f, 0xc1, 0xab, 0xd9, - 0x99, 0xd9, 0xb5, 0x55, 0x68, 0xeb, 0xc5, 0x0b, 0xfc, 0xfe, 0xbc, 0xdf, 0xcc, 0x7b, 0xf3, 0x66, - 0x16, 0xe6, 0x8f, 0x08, 0x75, 0x08, 0x35, 0xed, 0x41, 0xf0, 0xf2, 0x95, 0x39, 0xac, 0xb4, 0x51, - 0x60, 0x57, 0xcc, 0x60, 0x64, 0x78, 0x3e, 0x09, 0x88, 0x94, 0xe3, 0x6d, 0x83, 0xb5, 0x0d, 0xd1, - 0x56, 0x76, 0x78, 0xb5, 0xc5, 0x30, 0xa6, 0x80, 0xb0, 0x44, 0xc9, 0x61, 0x82, 0x09, 0xaf, 0x87, - 0x91, 0xa8, 0xee, 0x60, 0x42, 0x70, 0x1f, 0x99, 0x2c, 0x6b, 0x0f, 0x5e, 0x98, 0xb6, 0x3b, 0x16, - 0x2d, 0x6d, 0x29, 0x01, 0xbe, 0x1f, 0x47, 0xdc, 0x10, 0x08, 0x87, 0x62, 0x73, 0x58, 0x09, 0xff, - 0x44, 0x63, 0xcb, 0x76, 0xba, 0x2e, 0x31, 0xd9, 0x2f, 0x2f, 0xe9, 0x5f, 0x00, 0xbc, 0xd2, 0xa4, - 0xf8, 0xbe, 0x6f, 0xbb, 0x81, 0x54, 0x85, 0x69, 0x1c, 0x06, 0xc8, 0x97, 0x81, 0x06, 0x8a, 0x99, - 0xba, 0xfc, 0xf9, 0xb8, 0x1c, 0x29, 0x3a, 0xec, 0x74, 0x7c, 0x44, 0xe9, 0xe3, 0xc0, 0xef, 0xba, - 0xd8, 0x8a, 0x80, 0xbf, 0x67, 0x90, 0xbc, 0x76, 0xb9, 0x19, 0x24, 0xdd, 0x83, 0x1b, 0x2c, 0x94, - 0x93, 0x1a, 0x28, 0x66, 0xab, 0xbb, 0xc6, 0xb2, 0x43, 0x33, 0x18, 0xa7, 0x7a, 0x66, 0xfa, 0xad, - 0x90, 0x78, 0xbf, 0x98, 0x94, 0x80, 0xc5, 0x87, 0x6a, 0xb7, 0xde, 0x2c, 0x26, 0xa5, 0x68, 0xff, - 0xb7, 0x8b, 0x49, 0x69, 0x9b, 0x8f, 0x97, 0x69, 0xa7, 0x67, 0x46, 0x5a, 0x74, 0x09, 0x5e, 0x8b, - 0x62, 0x0b, 0x51, 0x8f, 0xb8, 0x14, 0xe9, 0x1f, 0x00, 0x4c, 0x37, 0x29, 0x6e, 0x8c, 0xd0, 0xd1, - 0x69, 0xde, 0xe0, 0xb2, 0xbc, 0x1b, 0x70, 0xdd, 0xa1, 0x98, 0xca, 0x6b, 0x5a, 0xb2, 0x98, 0xad, - 0xe6, 0x0c, 0x6e, 0x92, 0x11, 0x99, 0x64, 0x1c, 0xba, 0xe3, 0xfa, 0xee, 0xa7, 0xe3, 0xb2, 0x30, - 0xc0, 0x68, 0xdb, 0x14, 0xc5, 0x72, 0x9a, 0x14, 0x5b, 0x6c, 0xbc, 0x76, 0xf3, 0x94, 0x00, 0x14, - 0x0a, 0x90, 0xce, 0x0a, 0x08, 0xf9, 0xe9, 0xfb, 0xf0, 0xaa, 0x08, 0x23, 0xfa, 0x92, 0x0c, 0xd3, - 0x3e, 0xa2, 0x83, 0x7e, 0x40, 0x65, 0xa0, 0x25, 0x8b, 0x9b, 0x56, 0x94, 0xea, 0x1f, 0x01, 0xcc, - 0x84, 0xeb, 0xa3, 0x21, 0xe9, 0xa1, 0xff, 0x66, 0xa3, 0x06, 0x37, 0x1d, 0x8a, 0x5b, 0xc1, 0xd8, - 0x43, 0xad, 0x81, 0xdf, 0x67, 0x6e, 0x66, 0x2c, 0xe8, 0x50, 0xfc, 0x64, 0xec, 0xa1, 0xa7, 0x7e, - 0xbf, 0xb6, 0xf7, 0xa7, 0x55, 0xb9, 0xb3, 0x4a, 0x39, 0x61, 0x7d, 0x1b, 0x6e, 0xc5, 0x49, 0x6c, - 0xd6, 0x33, 0x78, 0xbd, 0x49, 0xf1, 0x23, 0x7f, 0xe0, 0xa2, 0xc6, 0xc8, 0xeb, 0xfa, 0xa8, 0xc3, - 0xcc, 0xa4, 0xd2, 0x5d, 0x98, 0xf2, 0xc2, 0xea, 0xc5, 0xea, 0x04, 0xae, 0x96, 0x0d, 0x69, 0x88, - 0x44, 0x2f, 0xc0, 0xfc, 0xd2, 0x75, 0xa3, 0x8d, 0xab, 0x3f, 0xd7, 0x60, 0xb2, 0x49, 0xb1, 0xf4, - 0x10, 0x6e, 0xf0, 0x67, 0xa1, 0x2e, 0xbf, 0x9f, 0xd1, 0xf5, 0x52, 0x6e, 0x9f, 0xdf, 0x8f, 0xfd, - 0x7b, 0x00, 0xd7, 0xd9, 0xd5, 0xcb, 0xaf, 0xc4, 0x87, 0x6d, 0x65, 0xef, 0xdc, 0x76, 0xbc, 0x9a, - 0x05, 0x53, 0xc2, 0xef, 0xc2, 0xca, 0x01, 0x0e, 0x50, 0xee, 0x5c, 0x00, 0x88, 0xd7, 0x1c, 0x42, - 0x69, 0xc9, 0x81, 0xef, 0xaf, 0x1c, 0xff, 0x1b, 0xac, 0x1c, 0xfc, 0x03, 0x38, 0xda, 0x57, 0xd9, - 0x78, 0x1d, 0x3e, 0xf0, 0x7a, 0x75, 0xfa, 0x43, 0x4d, 0x4c, 0x67, 0x2a, 0x38, 0x99, 0xa9, 0xe0, - 0xfb, 0x4c, 0x05, 0xef, 0xe6, 0x6a, 0xe2, 0x64, 0xae, 0x26, 0xbe, 0xce, 0xd5, 0xc4, 0x73, 0xe1, - 0x31, 0xed, 0xf4, 0x8c, 0x2e, 0x31, 0x47, 0xfc, 0x93, 0xd7, 0x4e, 0xb1, 0xd7, 0x77, 0xf0, 0x2b, - 0x00, 0x00, 0xff, 0xff, 0x06, 0x4f, 0xd8, 0xf8, 0x98, 0x05, 0x00, 0x00, + // 671 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x3b, 0x6f, 0xd3, 0x50, + 0x14, 0x8e, 0x9b, 0x3e, 0xc8, 0x69, 0xa5, 0x52, 0x27, 0xa8, 0xae, 0xab, 0xba, 0x96, 0xa1, 0x10, + 0xa5, 0x8a, 0xdd, 0xa4, 0x62, 0x09, 0x2c, 0x89, 0x54, 0xb1, 0x10, 0x81, 0xcc, 0x63, 0x60, 0xa9, + 0x92, 0xe6, 0x72, 0x89, 0xea, 0xd8, 0x96, 0xaf, 0x13, 0x25, 0x2c, 0x20, 0x46, 0x26, 0x7e, 0x06, + 0x6c, 0x1d, 0x3a, 0xf2, 0x03, 0xaa, 0x4e, 0x55, 0x07, 0xc4, 0x84, 0xa0, 0x1d, 0x2a, 0xfe, 0x05, + 0xf2, 0x7d, 0xb8, 0x2f, 0xa7, 0x29, 0x0c, 0x2c, 0xc9, 0x79, 0x7c, 0xe7, 0xdc, 0xef, 0xe4, 0x3b, + 0xf7, 0x06, 0x96, 0xb6, 0x3c, 0xd2, 0xf1, 0x88, 0xd5, 0xe8, 0x86, 0x6f, 0xde, 0x5a, 0xbd, 0x52, + 0x13, 0x85, 0x8d, 0x92, 0x15, 0xf6, 0x4d, 0x3f, 0xf0, 0x42, 0x4f, 0xce, 0xb1, 0xb4, 0x49, 0xd3, + 0x26, 0x4f, 0xab, 0x0b, 0x2c, 0xba, 0x49, 0x31, 0x16, 0x87, 0x50, 0x47, 0xcd, 0x61, 0x0f, 0x7b, + 0x2c, 0x1e, 0x59, 0x3c, 0xba, 0x80, 0x3d, 0x0f, 0x3b, 0xc8, 0xa2, 0x5e, 0xb3, 0xfb, 0xda, 0x6a, + 0xb8, 0x03, 0x9e, 0xd2, 0x13, 0x09, 0xb0, 0xf3, 0x18, 0x62, 0x9e, 0x23, 0x3a, 0x04, 0x5b, 0xbd, + 0x52, 0xf4, 0xc5, 0x13, 0x73, 0x8d, 0x4e, 0xdb, 0xf5, 0x2c, 0xfa, 0xc9, 0x42, 0xc6, 0x37, 0x09, + 0x6e, 0xd4, 0x09, 0x7e, 0x14, 0x34, 0xdc, 0x50, 0x2e, 0xc3, 0x14, 0x8e, 0x0c, 0x14, 0x28, 0x92, + 0x2e, 0xe5, 0x33, 0x35, 0xe5, 0x70, 0xb7, 0x28, 0x26, 0xaa, 0xb6, 0x5a, 0x01, 0x22, 0xe4, 0x59, + 0x18, 0xb4, 0x5d, 0x6c, 0x0b, 0xe0, 0x69, 0x0d, 0x52, 0xc6, 0xae, 0x57, 0x83, 0xe4, 0x87, 0x30, + 0x41, 0x4d, 0x25, 0xad, 0x4b, 0xf9, 0xe9, 0xf2, 0xa2, 0x99, 0xf4, 0xa3, 0x99, 0x94, 0x53, 0x2d, + 0xb3, 0xf7, 0x63, 0x39, 0xf5, 0xf9, 0x64, 0xa7, 0x20, 0xd9, 0xac, 0xa8, 0x72, 0xe7, 0xc3, 0xc9, + 0x4e, 0x41, 0x9c, 0xff, 0xf1, 0x64, 0xa7, 0x90, 0x65, 0xe5, 0x45, 0xd2, 0xda, 0xb6, 0xc4, 0x2c, + 0x86, 0x0c, 0x37, 0x85, 0x6d, 0x23, 0xe2, 0x7b, 0x2e, 0x41, 0xc6, 0x17, 0x09, 0xa6, 0xea, 0x04, + 0x6f, 0xf4, 0xd1, 0xd6, 0x59, 0xde, 0xd2, 0x75, 0x79, 0x6f, 0xc0, 0x78, 0x87, 0x60, 0xa2, 0x8c, + 0xe9, 0xe9, 0xfc, 0x74, 0x39, 0x67, 0x32, 0x91, 0x4c, 0x21, 0x92, 0x59, 0x75, 0x07, 0xb5, 0xc5, + 0xfd, 0xdd, 0x22, 0x17, 0xc0, 0x6c, 0x36, 0x08, 0x8a, 0xc7, 0xa9, 0x13, 0x6c, 0xd3, 0xf2, 0xca, + 0xed, 0x33, 0x03, 0xa0, 0x68, 0x00, 0xf9, 0xfc, 0x00, 0x11, 0x3f, 0x63, 0x15, 0x66, 0xb9, 0x29, + 0xe8, 0xcb, 0x0a, 0x4c, 0x05, 0x88, 0x74, 0x9d, 0x90, 0x28, 0x92, 0x9e, 0xce, 0xcf, 0xd8, 0xc2, + 0x35, 0xbe, 0x4a, 0x90, 0x89, 0xfa, 0xa3, 0x9e, 0xb7, 0x8d, 0xfe, 0x9b, 0x8c, 0x3a, 0xcc, 0x74, + 0x08, 0xde, 0x0c, 0x07, 0x3e, 0xda, 0xec, 0x06, 0x0e, 0x55, 0x33, 0x63, 0x43, 0x87, 0xe0, 0xe7, + 0x03, 0x1f, 0xbd, 0x08, 0x9c, 0xca, 0xca, 0x45, 0xa9, 0x72, 0xe7, 0x27, 0x65, 0x84, 0x8d, 0x2c, + 0xcc, 0xc5, 0x4e, 0x2c, 0xd6, 0x3b, 0x98, 0x89, 0x83, 0x55, 0xc7, 0xf9, 0x97, 0xa9, 0x2a, 0x0f, + 0x0e, 0x77, 0x8b, 0xb3, 0xa7, 0x47, 0xea, 0x6b, 0xe6, 0xfd, 0xd2, 0x45, 0x4a, 0xf3, 0x49, 0x94, + 0xaa, 0x8e, 0x63, 0xac, 0x42, 0xee, 0xac, 0x2f, 0x88, 0x55, 0xb2, 0x09, 0x4d, 0x8d, 0x97, 0x70, + 0xab, 0x4e, 0xf0, 0xd3, 0xa0, 0xeb, 0xa2, 0x8d, 0xbe, 0xdf, 0x0e, 0x50, 0x8b, 0xae, 0x1e, 0x91, + 0xd7, 0x60, 0xd2, 0x8f, 0xa2, 0xa3, 0x59, 0x73, 0x5c, 0x65, 0x3a, 0x62, 0xc8, 0x1d, 0x63, 0x19, + 0x96, 0x12, 0xfb, 0x0a, 0x36, 0xe5, 0xdf, 0x69, 0x48, 0xd7, 0x09, 0x96, 0x9f, 0xc0, 0x04, 0xbb, + 0xc4, 0x5a, 0xf2, 0x6d, 0x12, 0x97, 0x41, 0xbd, 0x7b, 0x75, 0x3e, 0xde, 0xb6, 0xc7, 0x30, 0x4e, + 0x2f, 0xca, 0xd2, 0x50, 0x7c, 0x94, 0x56, 0x57, 0xae, 0x4c, 0xc7, 0xdd, 0x6c, 0x98, 0xe4, 0xdb, + 0xb9, 0x3c, 0xb4, 0x80, 0x01, 0xd4, 0x7b, 0x23, 0x00, 0x71, 0x4f, 0x1f, 0x32, 0xa7, 0xeb, 0x61, + 0x8c, 0xa8, 0xaa, 0x3a, 0x8e, 0x5a, 0x18, 0x8d, 0x89, 0xd7, 0x2f, 0xbb, 0x7f, 0x59, 0x65, 0xb9, + 0x07, 0x72, 0x82, 0xc4, 0xab, 0x43, 0xdb, 0x5e, 0x06, 0xab, 0xeb, 0x7f, 0x01, 0x16, 0x64, 0xd4, + 0x89, 0xf7, 0xd1, 0x03, 0x58, 0x2b, 0xef, 0xfd, 0xd2, 0x52, 0x7b, 0x47, 0x9a, 0x74, 0x70, 0xa4, + 0x49, 0x3f, 0x8f, 0x34, 0xe9, 0xd3, 0xb1, 0x96, 0x3a, 0x38, 0xd6, 0x52, 0xdf, 0x8f, 0xb5, 0xd4, + 0x2b, 0xbe, 0x55, 0xa4, 0xb5, 0x6d, 0xb6, 0x3d, 0xab, 0xcf, 0xfe, 0x12, 0x9a, 0x93, 0xf4, 0x75, + 0x5a, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xe3, 0x6e, 0xfe, 0xb8, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -428,6 +509,8 @@ type MsgClient interface { // Revoke revokes any authorization corresponding to the provided method name on the // granter's account that has been granted to the grantee. Revoke(ctx context.Context, in *MsgRevoke, opts ...grpc.CallOption) (*MsgRevokeResponse, error) + // RevokeAll revokes all grants issued by the specified granter. + RevokeAll(ctx context.Context, in *MsgRevokeAll, opts ...grpc.CallOption) (*MsgRevokeAllResponse, error) // PruneExpiredGrants prunes the expired grants. Currently up to 75 at a time. // // Since cosmos-sdk 0.51 @@ -469,6 +552,15 @@ func (c *msgClient) Revoke(ctx context.Context, in *MsgRevoke, opts ...grpc.Call return out, nil } +func (c *msgClient) RevokeAll(ctx context.Context, in *MsgRevokeAll, opts ...grpc.CallOption) (*MsgRevokeAllResponse, error) { + out := new(MsgRevokeAllResponse) + err := c.cc.Invoke(ctx, "/cosmos.authz.v1beta1.Msg/RevokeAll", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *msgClient) PruneExpiredGrants(ctx context.Context, in *MsgPruneExpiredGrants, opts ...grpc.CallOption) (*MsgPruneExpiredGrantsResponse, error) { out := new(MsgPruneExpiredGrantsResponse) err := c.cc.Invoke(ctx, "/cosmos.authz.v1beta1.Msg/PruneExpiredGrants", in, out, opts...) @@ -492,6 +584,8 @@ type MsgServer interface { // Revoke revokes any authorization corresponding to the provided method name on the // granter's account that has been granted to the grantee. Revoke(context.Context, *MsgRevoke) (*MsgRevokeResponse, error) + // RevokeAll revokes all grants issued by the specified granter. + RevokeAll(context.Context, *MsgRevokeAll) (*MsgRevokeAllResponse, error) // PruneExpiredGrants prunes the expired grants. Currently up to 75 at a time. // // Since cosmos-sdk 0.51 @@ -511,6 +605,9 @@ func (*UnimplementedMsgServer) Exec(ctx context.Context, req *MsgExec) (*MsgExec func (*UnimplementedMsgServer) Revoke(ctx context.Context, req *MsgRevoke) (*MsgRevokeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Revoke not implemented") } +func (*UnimplementedMsgServer) RevokeAll(ctx context.Context, req *MsgRevokeAll) (*MsgRevokeAllResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevokeAll not implemented") +} func (*UnimplementedMsgServer) PruneExpiredGrants(ctx context.Context, req *MsgPruneExpiredGrants) (*MsgPruneExpiredGrantsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PruneExpiredGrants not implemented") } @@ -573,6 +670,24 @@ func _Msg_Revoke_Handler(srv interface{}, ctx context.Context, dec func(interfac return interceptor(ctx, in, info, handler) } +func _Msg_RevokeAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRevokeAll) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RevokeAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cosmos.authz.v1beta1.Msg/RevokeAll", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RevokeAll(ctx, req.(*MsgRevokeAll)) + } + return interceptor(ctx, in, info, handler) +} + func _Msg_PruneExpiredGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgPruneExpiredGrants) if err := dec(in); err != nil { @@ -607,6 +722,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "Revoke", Handler: _Msg_Revoke_Handler, }, + { + MethodName: "RevokeAll", + Handler: _Msg_RevokeAll_Handler, + }, { MethodName: "PruneExpiredGrants", Handler: _Msg_PruneExpiredGrants_Handler, @@ -829,6 +948,59 @@ func (m *MsgRevokeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MsgRevokeAll) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRevokeAll) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRevokeAll) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintTx(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgRevokeAllResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRevokeAllResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRevokeAllResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgPruneExpiredGrants) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -985,6 +1157,28 @@ func (m *MsgRevokeResponse) Size() (n int) { return n } +func (m *MsgRevokeAll) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgRevokeAllResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func (m *MsgPruneExpiredGrants) Size() (n int) { if m == nil { return 0 @@ -1604,6 +1798,138 @@ func (m *MsgRevokeResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgRevokeAll) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgRevokeAll: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeAll: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgRevokeAllResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgRevokeAllResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeAllResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *MsgPruneExpiredGrants) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0