feat: add grants by grantee authz query (#10944)

This commit is contained in:
Callum Waters 2022-02-10 16:56:44 +01:00 committed by GitHub
parent 58597139fa
commit fa8099da98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 3475 additions and 1334 deletions

View File

@ -50,7 +50,8 @@ Ref: https://keepachangelog.com/en/1.0.0/
* (bank) [\#9618](https://github.com/cosmos/cosmos-sdk/pull/9618) Update bank.Metadata: add URI and URIHash attributes.
* (store) [\#8664](https://github.com/cosmos/cosmos-sdk/pull/8664) Implementation of ADR-038 file StreamingService
* [\#9837](https://github.com/cosmos/cosmos-sdk/issues/9837) `--generate-only` flag will accept the keyname now.
* [\#10326](https://github.com/cosmos/cosmos-sdk/pull/10326) `x/authz` add query all grants by granter query.
* [\#10326](https://github.com/cosmos/cosmos-sdk/pull/10326) `x/authz` add all grants by granter query.
* [\#10944](https://github.com/cosmos/cosmos-sdk/pull/10944) `x/authz` add all grants by grantee query
* [\#10348](https://github.com/cosmos/cosmos-sdk/pull/10348) Add `fee.{payer,granter}` and `tip` fields to StdSignDoc for signing tipped transactions.
* [\#10208](https://github.com/cosmos/cosmos-sdk/pull/10208) Add `TipsTxMiddleware` for transferring tips.
* [\#10379](https://github.com/cosmos/cosmos-sdk/pull/10379) Add validation to `x/upgrade` CLI `software-upgrade` command `--plan-info` value.

View File

@ -3,16 +3,14 @@ package modulev1alpha1
import (
fmt "fmt"
io "io"
reflect "reflect"
sync "sync"
runtime "github.com/cosmos/cosmos-proto/runtime"
_ "github.com/cosmos/cosmos-sdk/api/cosmos/app/v1alpha1"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "github.com/cosmos/cosmos-sdk/api/cosmos/app/v1alpha1"
io "io"
reflect "reflect"
sync "sync"
)
var (

View File

@ -3,15 +3,14 @@ package appv1alpha1
import (
fmt "fmt"
io "io"
reflect "reflect"
sync "sync"
runtime "github.com/cosmos/cosmos-proto/runtime"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
anypb "google.golang.org/protobuf/types/known/anypb"
io "io"
reflect "reflect"
sync "sync"
)
var _ protoreflect.List = (*_Config_1_list)(nil)

View File

@ -3,15 +3,14 @@ package appv1alpha1
import (
fmt "fmt"
io "io"
reflect "reflect"
sync "sync"
runtime "github.com/cosmos/cosmos-proto/runtime"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
descriptorpb "google.golang.org/protobuf/types/descriptorpb"
io "io"
reflect "reflect"
sync "sync"
)
var _ protoreflect.List = (*_ModuleDescriptor_2_list)(nil)

View File

@ -3,14 +3,13 @@ package appv1alpha1
import (
fmt "fmt"
io "io"
reflect "reflect"
sync "sync"
runtime "github.com/cosmos/cosmos-proto/runtime"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
io "io"
reflect "reflect"
sync "sync"
)
var (

View File

@ -950,6 +950,648 @@ func (x *fastReflection_Grant) ProtoMethods() *protoiface.Methods {
}
}
var (
md_GrantAuthorization protoreflect.MessageDescriptor
fd_GrantAuthorization_granter protoreflect.FieldDescriptor
fd_GrantAuthorization_grantee protoreflect.FieldDescriptor
fd_GrantAuthorization_authorization protoreflect.FieldDescriptor
fd_GrantAuthorization_expiration protoreflect.FieldDescriptor
)
func init() {
file_cosmos_authz_v1beta1_authz_proto_init()
md_GrantAuthorization = File_cosmos_authz_v1beta1_authz_proto.Messages().ByName("GrantAuthorization")
fd_GrantAuthorization_granter = md_GrantAuthorization.Fields().ByName("granter")
fd_GrantAuthorization_grantee = md_GrantAuthorization.Fields().ByName("grantee")
fd_GrantAuthorization_authorization = md_GrantAuthorization.Fields().ByName("authorization")
fd_GrantAuthorization_expiration = md_GrantAuthorization.Fields().ByName("expiration")
}
var _ protoreflect.Message = (*fastReflection_GrantAuthorization)(nil)
type fastReflection_GrantAuthorization GrantAuthorization
func (x *GrantAuthorization) ProtoReflect() protoreflect.Message {
return (*fastReflection_GrantAuthorization)(x)
}
func (x *GrantAuthorization) slowProtoReflect() protoreflect.Message {
mi := &file_cosmos_authz_v1beta1_authz_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_GrantAuthorization_messageType fastReflection_GrantAuthorization_messageType
var _ protoreflect.MessageType = fastReflection_GrantAuthorization_messageType{}
type fastReflection_GrantAuthorization_messageType struct{}
func (x fastReflection_GrantAuthorization_messageType) Zero() protoreflect.Message {
return (*fastReflection_GrantAuthorization)(nil)
}
func (x fastReflection_GrantAuthorization_messageType) New() protoreflect.Message {
return new(fastReflection_GrantAuthorization)
}
func (x fastReflection_GrantAuthorization_messageType) Descriptor() protoreflect.MessageDescriptor {
return md_GrantAuthorization
}
// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_GrantAuthorization) Descriptor() protoreflect.MessageDescriptor {
return md_GrantAuthorization
}
// 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_GrantAuthorization) Type() protoreflect.MessageType {
return _fastReflection_GrantAuthorization_messageType
}
// New returns a newly allocated and mutable empty message.
func (x *fastReflection_GrantAuthorization) New() protoreflect.Message {
return new(fastReflection_GrantAuthorization)
}
// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_GrantAuthorization) Interface() protoreflect.ProtoMessage {
return (*GrantAuthorization)(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_GrantAuthorization) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
if x.Granter != "" {
value := protoreflect.ValueOfString(x.Granter)
if !f(fd_GrantAuthorization_granter, value) {
return
}
}
if x.Grantee != "" {
value := protoreflect.ValueOfString(x.Grantee)
if !f(fd_GrantAuthorization_grantee, value) {
return
}
}
if x.Authorization != nil {
value := protoreflect.ValueOfMessage(x.Authorization.ProtoReflect())
if !f(fd_GrantAuthorization_authorization, value) {
return
}
}
if x.Expiration != nil {
value := protoreflect.ValueOfMessage(x.Expiration.ProtoReflect())
if !f(fd_GrantAuthorization_expiration, 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_GrantAuthorization) Has(fd protoreflect.FieldDescriptor) bool {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
return x.Granter != ""
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
return x.Grantee != ""
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
return x.Authorization != nil
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
return x.Expiration != nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Clear(fd protoreflect.FieldDescriptor) {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
x.Granter = ""
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
x.Grantee = ""
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
x.Authorization = nil
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
x.Expiration = nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
value := x.Granter
return protoreflect.ValueOfString(value)
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
value := x.Grantee
return protoreflect.ValueOfString(value)
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
value := x.Authorization
return protoreflect.ValueOfMessage(value.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
value := x.Expiration
return protoreflect.ValueOfMessage(value.ProtoReflect())
default:
if descriptor.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
x.Granter = value.Interface().(string)
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
x.Grantee = value.Interface().(string)
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
x.Authorization = value.Message().Interface().(*anypb.Any)
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
x.Expiration = value.Message().Interface().(*timestamppb.Timestamp)
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
if x.Authorization == nil {
x.Authorization = new(anypb.Any)
}
return protoreflect.ValueOfMessage(x.Authorization.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
if x.Expiration == nil {
x.Expiration = new(timestamppb.Timestamp)
}
return protoreflect.ValueOfMessage(x.Expiration.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
panic(fmt.Errorf("field granter of message cosmos.authz.v1beta1.GrantAuthorization is not mutable"))
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
panic(fmt.Errorf("field grantee of message cosmos.authz.v1beta1.GrantAuthorization is not mutable"))
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
return protoreflect.ValueOfString("")
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
return protoreflect.ValueOfString("")
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
m := new(anypb.Any)
return protoreflect.ValueOfMessage(m.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
m := new(timestamppb.Timestamp)
return protoreflect.ValueOfMessage(m.ProtoReflect())
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
switch d.FullName() {
default:
panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.v1beta1.GrantAuthorization", 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_GrantAuthorization) 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_GrantAuthorization) 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_GrantAuthorization) 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_GrantAuthorization) ProtoMethods() *protoiface.Methods {
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
x := input.Message.Interface().(*GrantAuthorization)
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))
}
l = len(x.Grantee)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
if x.Authorization != nil {
l = options.Size(x.Authorization)
n += 1 + l + runtime.Sov(uint64(l))
}
if x.Expiration != nil {
l = options.Size(x.Expiration)
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().(*GrantAuthorization)
if x == nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, nil
}
options := runtime.MarshalInputToOptions(input)
_ = options
size := options.Size(x)
dAtA := make([]byte, size)
i := len(dAtA)
_ = i
var l int
_ = l
if x.unknownFields != nil {
i -= len(x.unknownFields)
copy(dAtA[i:], x.unknownFields)
}
if x.Expiration != nil {
encoded, err := options.Marshal(x.Expiration)
if err != nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, err
}
i -= len(encoded)
copy(dAtA[i:], encoded)
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
i--
dAtA[i] = 0x22
}
if x.Authorization != nil {
encoded, err := options.Marshal(x.Authorization)
if err != nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, err
}
i -= len(encoded)
copy(dAtA[i:], encoded)
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
i--
dAtA[i] = 0x1a
}
if len(x.Grantee) > 0 {
i -= len(x.Grantee)
copy(dAtA[i:], x.Grantee)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Grantee)))
i--
dAtA[i] = 0x12
}
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().(*GrantAuthorization)
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: GrantAuthorization: wiretype end group for non-group")
}
if fieldNum <= 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GrantAuthorization: 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
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = 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 Authorization", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if x.Authorization == nil {
x.Authorization = &anypb.Any{}
}
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Authorization); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Expiration", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if x.Expiration == nil {
x.Expiration = &timestamppb.Timestamp{}
}
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Expiration); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := runtime.Skip(dAtA[iNdEx:])
if err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if !options.DiscardUnknown {
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
}
iNdEx += skippy
}
}
if iNdEx > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
}
return &protoiface.Methods{
NoUnkeyedLiterals: struct{}{},
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
Size: size,
Marshal: marshal,
Unmarshal: unmarshal,
Merge: nil,
CheckInitialized: nil,
}
}
// Since: cosmos-sdk 0.43
// Code generated by protoc-gen-go. DO NOT EDIT.
@ -1048,6 +1690,67 @@ func (x *Grant) GetExpiration() *timestamppb.Timestamp {
return nil
}
// GrantAuthorization extends a grant with both the addresses of the grantee and granter.
// It is used in genesis.proto and query.proto
type GrantAuthorization struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
Authorization *anypb.Any `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
Expiration *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expiration,proto3" json:"expiration,omitempty"`
}
func (x *GrantAuthorization) Reset() {
*x = GrantAuthorization{}
if protoimpl.UnsafeEnabled {
mi := &file_cosmos_authz_v1beta1_authz_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GrantAuthorization) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GrantAuthorization) ProtoMessage() {}
// Deprecated: Use GrantAuthorization.ProtoReflect.Descriptor instead.
func (*GrantAuthorization) Descriptor() ([]byte, []int) {
return file_cosmos_authz_v1beta1_authz_proto_rawDescGZIP(), []int{2}
}
func (x *GrantAuthorization) GetGranter() string {
if x != nil {
return x.Granter
}
return ""
}
func (x *GrantAuthorization) GetGrantee() string {
if x != nil {
return x.Grantee
}
return ""
}
func (x *GrantAuthorization) GetAuthorization() *anypb.Any {
if x != nil {
return x.Authorization
}
return nil
}
func (x *GrantAuthorization) GetExpiration() *timestamppb.Timestamp {
if x != nil {
return x.Expiration
}
return nil
}
var File_cosmos_authz_v1beta1_authz_proto protoreflect.FileDescriptor
var file_cosmos_authz_v1beta1_authz_proto_rawDesc = []byte{
@ -1075,21 +1778,38 @@ var file_cosmos_authz_v1beta1_authz_proto_rawDesc = []byte{
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xc8, 0xde, 0x1f,
0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0xe0, 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,
0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42, 0x67, 0x69,
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 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,
0xc8, 0xe1, 0x1e, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x6e, 0x22, 0x91, 0x02, 0x0a, 0x12, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f,
0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x32, 0x0a, 0x07,
0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 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, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65,
0x12, 0x4d, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x11, 0xca,
0xb4, 0x2d, 0x0d, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x44, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42,
0x08, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xe0, 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, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
0x5a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 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, 0xc8, 0xe1, 0x1e, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -1104,21 +1824,24 @@ func file_cosmos_authz_v1beta1_authz_proto_rawDescGZIP() []byte {
return file_cosmos_authz_v1beta1_authz_proto_rawDescData
}
var file_cosmos_authz_v1beta1_authz_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_cosmos_authz_v1beta1_authz_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_cosmos_authz_v1beta1_authz_proto_goTypes = []interface{}{
(*GenericAuthorization)(nil), // 0: cosmos.authz.v1beta1.GenericAuthorization
(*Grant)(nil), // 1: cosmos.authz.v1beta1.Grant
(*anypb.Any)(nil), // 2: google.protobuf.Any
(*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp
(*GrantAuthorization)(nil), // 2: cosmos.authz.v1beta1.GrantAuthorization
(*anypb.Any)(nil), // 3: google.protobuf.Any
(*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
}
var file_cosmos_authz_v1beta1_authz_proto_depIdxs = []int32{
2, // 0: cosmos.authz.v1beta1.Grant.authorization:type_name -> google.protobuf.Any
3, // 1: cosmos.authz.v1beta1.Grant.expiration:type_name -> google.protobuf.Timestamp
2, // [2:2] is the sub-list for method output_type
2, // [2:2] 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
3, // 0: cosmos.authz.v1beta1.Grant.authorization:type_name -> google.protobuf.Any
4, // 1: cosmos.authz.v1beta1.Grant.expiration:type_name -> google.protobuf.Timestamp
3, // 2: cosmos.authz.v1beta1.GrantAuthorization.authorization:type_name -> google.protobuf.Any
4, // 3: cosmos.authz.v1beta1.GrantAuthorization.expiration:type_name -> google.protobuf.Timestamp
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_cosmos_authz_v1beta1_authz_proto_init() }
@ -1151,6 +1874,18 @@ func file_cosmos_authz_v1beta1_authz_proto_init() {
return nil
}
}
file_cosmos_authz_v1beta1_authz_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GrantAuthorization); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -1158,7 +1893,7 @@ func file_cosmos_authz_v1beta1_authz_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cosmos_authz_v1beta1_authz_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -9,8 +9,8 @@ import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
anypb "google.golang.org/protobuf/types/known/anypb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
_ "google.golang.org/protobuf/types/known/anypb"
_ "google.golang.org/protobuf/types/known/timestamppb"
io "io"
reflect "reflect"
sync "sync"
@ -510,648 +510,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods {
}
}
var (
md_GrantAuthorization protoreflect.MessageDescriptor
fd_GrantAuthorization_granter protoreflect.FieldDescriptor
fd_GrantAuthorization_grantee protoreflect.FieldDescriptor
fd_GrantAuthorization_authorization protoreflect.FieldDescriptor
fd_GrantAuthorization_expiration protoreflect.FieldDescriptor
)
func init() {
file_cosmos_authz_v1beta1_genesis_proto_init()
md_GrantAuthorization = File_cosmos_authz_v1beta1_genesis_proto.Messages().ByName("GrantAuthorization")
fd_GrantAuthorization_granter = md_GrantAuthorization.Fields().ByName("granter")
fd_GrantAuthorization_grantee = md_GrantAuthorization.Fields().ByName("grantee")
fd_GrantAuthorization_authorization = md_GrantAuthorization.Fields().ByName("authorization")
fd_GrantAuthorization_expiration = md_GrantAuthorization.Fields().ByName("expiration")
}
var _ protoreflect.Message = (*fastReflection_GrantAuthorization)(nil)
type fastReflection_GrantAuthorization GrantAuthorization
func (x *GrantAuthorization) ProtoReflect() protoreflect.Message {
return (*fastReflection_GrantAuthorization)(x)
}
func (x *GrantAuthorization) slowProtoReflect() protoreflect.Message {
mi := &file_cosmos_authz_v1beta1_genesis_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
var _fastReflection_GrantAuthorization_messageType fastReflection_GrantAuthorization_messageType
var _ protoreflect.MessageType = fastReflection_GrantAuthorization_messageType{}
type fastReflection_GrantAuthorization_messageType struct{}
func (x fastReflection_GrantAuthorization_messageType) Zero() protoreflect.Message {
return (*fastReflection_GrantAuthorization)(nil)
}
func (x fastReflection_GrantAuthorization_messageType) New() protoreflect.Message {
return new(fastReflection_GrantAuthorization)
}
func (x fastReflection_GrantAuthorization_messageType) Descriptor() protoreflect.MessageDescriptor {
return md_GrantAuthorization
}
// Descriptor returns message descriptor, which contains only the protobuf
// type information for the message.
func (x *fastReflection_GrantAuthorization) Descriptor() protoreflect.MessageDescriptor {
return md_GrantAuthorization
}
// 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_GrantAuthorization) Type() protoreflect.MessageType {
return _fastReflection_GrantAuthorization_messageType
}
// New returns a newly allocated and mutable empty message.
func (x *fastReflection_GrantAuthorization) New() protoreflect.Message {
return new(fastReflection_GrantAuthorization)
}
// Interface unwraps the message reflection interface and
// returns the underlying ProtoMessage interface.
func (x *fastReflection_GrantAuthorization) Interface() protoreflect.ProtoMessage {
return (*GrantAuthorization)(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_GrantAuthorization) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
if x.Granter != "" {
value := protoreflect.ValueOfString(x.Granter)
if !f(fd_GrantAuthorization_granter, value) {
return
}
}
if x.Grantee != "" {
value := protoreflect.ValueOfString(x.Grantee)
if !f(fd_GrantAuthorization_grantee, value) {
return
}
}
if x.Authorization != nil {
value := protoreflect.ValueOfMessage(x.Authorization.ProtoReflect())
if !f(fd_GrantAuthorization_authorization, value) {
return
}
}
if x.Expiration != nil {
value := protoreflect.ValueOfMessage(x.Expiration.ProtoReflect())
if !f(fd_GrantAuthorization_expiration, 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_GrantAuthorization) Has(fd protoreflect.FieldDescriptor) bool {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
return x.Granter != ""
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
return x.Grantee != ""
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
return x.Authorization != nil
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
return x.Expiration != nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Clear(fd protoreflect.FieldDescriptor) {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
x.Granter = ""
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
x.Grantee = ""
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
x.Authorization = nil
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
x.Expiration = nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
switch descriptor.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
value := x.Granter
return protoreflect.ValueOfString(value)
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
value := x.Grantee
return protoreflect.ValueOfString(value)
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
value := x.Authorization
return protoreflect.ValueOfMessage(value.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
value := x.Expiration
return protoreflect.ValueOfMessage(value.ProtoReflect())
default:
if descriptor.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
x.Granter = value.Interface().(string)
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
x.Grantee = value.Interface().(string)
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
x.Authorization = value.Message().Interface().(*anypb.Any)
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
x.Expiration = value.Message().Interface().(*timestamppb.Timestamp)
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
if x.Authorization == nil {
x.Authorization = new(anypb.Any)
}
return protoreflect.ValueOfMessage(x.Authorization.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
if x.Expiration == nil {
x.Expiration = new(timestamppb.Timestamp)
}
return protoreflect.ValueOfMessage(x.Expiration.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
panic(fmt.Errorf("field granter of message cosmos.authz.v1beta1.GrantAuthorization is not mutable"))
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
panic(fmt.Errorf("field grantee of message cosmos.authz.v1beta1.GrantAuthorization is not mutable"))
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
switch fd.FullName() {
case "cosmos.authz.v1beta1.GrantAuthorization.granter":
return protoreflect.ValueOfString("")
case "cosmos.authz.v1beta1.GrantAuthorization.grantee":
return protoreflect.ValueOfString("")
case "cosmos.authz.v1beta1.GrantAuthorization.authorization":
m := new(anypb.Any)
return protoreflect.ValueOfMessage(m.ProtoReflect())
case "cosmos.authz.v1beta1.GrantAuthorization.expiration":
m := new(timestamppb.Timestamp)
return protoreflect.ValueOfMessage(m.ProtoReflect())
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GrantAuthorization"))
}
panic(fmt.Errorf("message cosmos.authz.v1beta1.GrantAuthorization 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_GrantAuthorization) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
switch d.FullName() {
default:
panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.v1beta1.GrantAuthorization", 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_GrantAuthorization) 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_GrantAuthorization) 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_GrantAuthorization) 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_GrantAuthorization) ProtoMethods() *protoiface.Methods {
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
x := input.Message.Interface().(*GrantAuthorization)
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))
}
l = len(x.Grantee)
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
if x.Authorization != nil {
l = options.Size(x.Authorization)
n += 1 + l + runtime.Sov(uint64(l))
}
if x.Expiration != nil {
l = options.Size(x.Expiration)
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().(*GrantAuthorization)
if x == nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, nil
}
options := runtime.MarshalInputToOptions(input)
_ = options
size := options.Size(x)
dAtA := make([]byte, size)
i := len(dAtA)
_ = i
var l int
_ = l
if x.unknownFields != nil {
i -= len(x.unknownFields)
copy(dAtA[i:], x.unknownFields)
}
if x.Expiration != nil {
encoded, err := options.Marshal(x.Expiration)
if err != nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, err
}
i -= len(encoded)
copy(dAtA[i:], encoded)
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
i--
dAtA[i] = 0x22
}
if x.Authorization != nil {
encoded, err := options.Marshal(x.Authorization)
if err != nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, err
}
i -= len(encoded)
copy(dAtA[i:], encoded)
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
i--
dAtA[i] = 0x1a
}
if len(x.Grantee) > 0 {
i -= len(x.Grantee)
copy(dAtA[i:], x.Grantee)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Grantee)))
i--
dAtA[i] = 0x12
}
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().(*GrantAuthorization)
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: GrantAuthorization: wiretype end group for non-group")
}
if fieldNum <= 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GrantAuthorization: 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
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = 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 Authorization", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if x.Authorization == nil {
x.Authorization = &anypb.Any{}
}
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Authorization); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Expiration", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if x.Expiration == nil {
x.Expiration = &timestamppb.Timestamp{}
}
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Expiration); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := runtime.Skip(dAtA[iNdEx:])
if err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if !options.DiscardUnknown {
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
}
iNdEx += skippy
}
}
if iNdEx > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
}
return &protoiface.Methods{
NoUnkeyedLiterals: struct{}{},
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
Size: size,
Marshal: marshal,
Unmarshal: unmarshal,
Merge: nil,
CheckInitialized: nil,
}
}
// Since: cosmos-sdk 0.43
// Code generated by protoc-gen-go. DO NOT EDIT.
@ -1203,66 +561,6 @@ func (x *GenesisState) GetAuthorization() []*GrantAuthorization {
return nil
}
// GrantAuthorization defines the GenesisState/GrantAuthorization type.
type GrantAuthorization struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
Authorization *anypb.Any `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
Expiration *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expiration,proto3" json:"expiration,omitempty"`
}
func (x *GrantAuthorization) Reset() {
*x = GrantAuthorization{}
if protoimpl.UnsafeEnabled {
mi := &file_cosmos_authz_v1beta1_genesis_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GrantAuthorization) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GrantAuthorization) ProtoMessage() {}
// Deprecated: Use GrantAuthorization.ProtoReflect.Descriptor instead.
func (*GrantAuthorization) Descriptor() ([]byte, []int) {
return file_cosmos_authz_v1beta1_genesis_proto_rawDescGZIP(), []int{1}
}
func (x *GrantAuthorization) GetGranter() string {
if x != nil {
return x.Granter
}
return ""
}
func (x *GrantAuthorization) GetGrantee() string {
if x != nil {
return x.Grantee
}
return ""
}
func (x *GrantAuthorization) GetAuthorization() *anypb.Any {
if x != nil {
return x.Authorization
}
return nil
}
func (x *GrantAuthorization) GetExpiration() *timestamppb.Timestamp {
if x != nil {
return x.Expiration
}
return nil
}
var File_cosmos_authz_v1beta1_genesis_proto protoreflect.FileDescriptor
var file_cosmos_authz_v1beta1_genesis_proto_rawDesc = []byte{
@ -1276,45 +574,30 @@ var file_cosmos_authz_v1beta1_genesis_proto_rawDesc = []byte{
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73,
0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f,
0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f,
0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0d,
0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x02,
0x0a, 0x12, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61,
0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e,
0x74, 0x65, 0x65, 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, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x12, 0x4d, 0x0a, 0x0d,
0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x11, 0xca, 0xb4, 0x2d, 0x0d, 0x41,
0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x61, 0x75,
0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0a, 0x65,
0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0xc8, 0xde, 0x1f,
0x00, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0xde, 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, 0x0c,
0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42,
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 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,
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75,
0x74, 0x68, 0x7a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x0c, 0x47, 0x65, 0x6e,
0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0d, 0x61, 0x75, 0x74,
0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x75, 0x74,
0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00,
0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42,
0xde, 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, 0x0c, 0x47, 0x65,
0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x42, 0x67, 0x69,
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 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 (
@ -1329,22 +612,18 @@ func file_cosmos_authz_v1beta1_genesis_proto_rawDescGZIP() []byte {
return file_cosmos_authz_v1beta1_genesis_proto_rawDescData
}
var file_cosmos_authz_v1beta1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_cosmos_authz_v1beta1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_cosmos_authz_v1beta1_genesis_proto_goTypes = []interface{}{
(*GenesisState)(nil), // 0: cosmos.authz.v1beta1.GenesisState
(*GrantAuthorization)(nil), // 1: cosmos.authz.v1beta1.GrantAuthorization
(*anypb.Any)(nil), // 2: google.protobuf.Any
(*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp
(*GenesisState)(nil), // 0: cosmos.authz.v1beta1.GenesisState
(*GrantAuthorization)(nil), // 1: cosmos.authz.v1beta1.GrantAuthorization
}
var file_cosmos_authz_v1beta1_genesis_proto_depIdxs = []int32{
1, // 0: cosmos.authz.v1beta1.GenesisState.authorization:type_name -> cosmos.authz.v1beta1.GrantAuthorization
2, // 1: cosmos.authz.v1beta1.GrantAuthorization.authorization:type_name -> google.protobuf.Any
3, // 2: cosmos.authz.v1beta1.GrantAuthorization.expiration:type_name -> google.protobuf.Timestamp
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
1, // [1:1] is the sub-list for method output_type
1, // [1:1] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension type_name
1, // [1:1] is the sub-list for extension extendee
0, // [0:1] is the sub-list for field type_name
}
func init() { file_cosmos_authz_v1beta1_genesis_proto_init() }
@ -1352,6 +631,7 @@ func file_cosmos_authz_v1beta1_genesis_proto_init() {
if File_cosmos_authz_v1beta1_genesis_proto != nil {
return
}
file_cosmos_authz_v1beta1_authz_proto_init()
if !protoimpl.UnsafeEnabled {
file_cosmos_authz_v1beta1_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenesisState); i {
@ -1365,18 +645,6 @@ func file_cosmos_authz_v1beta1_genesis_proto_init() {
return nil
}
}
file_cosmos_authz_v1beta1_genesis_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GrantAuthorization); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
@ -1384,7 +652,7 @@ func file_cosmos_authz_v1beta1_genesis_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_cosmos_authz_v1beta1_genesis_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},

File diff suppressed because it is too large Load Diff

View File

@ -24,8 +24,14 @@ const _ = grpc.SupportPackageIsVersion7
type QueryClient interface {
// Returns list of `Authorization`, granted to the grantee by the granter.
Grants(ctx context.Context, in *QueryGrantsRequest, opts ...grpc.CallOption) (*QueryGrantsResponse, error)
// GranterGrants returns list of `Authorization`, granted by granter.
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
//
// Since: cosmos-sdk 0.46
GranterGrants(ctx context.Context, in *QueryGranterGrantsRequest, opts ...grpc.CallOption) (*QueryGranterGrantsResponse, error)
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
//
// Since: cosmos-sdk 0.46
GranteeGrants(ctx context.Context, in *QueryGranteeGrantsRequest, opts ...grpc.CallOption) (*QueryGranteeGrantsResponse, error)
}
type queryClient struct {
@ -54,14 +60,29 @@ func (c *queryClient) GranterGrants(ctx context.Context, in *QueryGranterGrantsR
return out, nil
}
func (c *queryClient) GranteeGrants(ctx context.Context, in *QueryGranteeGrantsRequest, opts ...grpc.CallOption) (*QueryGranteeGrantsResponse, error) {
out := new(QueryGranteeGrantsResponse)
err := c.cc.Invoke(ctx, "/cosmos.authz.v1beta1.Query/GranteeGrants", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// QueryServer is the server API for Query service.
// All implementations must embed UnimplementedQueryServer
// for forward compatibility
type QueryServer interface {
// Returns list of `Authorization`, granted to the grantee by the granter.
Grants(context.Context, *QueryGrantsRequest) (*QueryGrantsResponse, error)
// GranterGrants returns list of `Authorization`, granted by granter.
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
//
// Since: cosmos-sdk 0.46
GranterGrants(context.Context, *QueryGranterGrantsRequest) (*QueryGranterGrantsResponse, error)
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
//
// Since: cosmos-sdk 0.46
GranteeGrants(context.Context, *QueryGranteeGrantsRequest) (*QueryGranteeGrantsResponse, error)
mustEmbedUnimplementedQueryServer()
}
@ -75,6 +96,9 @@ func (UnimplementedQueryServer) Grants(context.Context, *QueryGrantsRequest) (*Q
func (UnimplementedQueryServer) GranterGrants(context.Context, *QueryGranterGrantsRequest) (*QueryGranterGrantsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GranterGrants not implemented")
}
func (UnimplementedQueryServer) GranteeGrants(context.Context, *QueryGranteeGrantsRequest) (*QueryGranteeGrantsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GranteeGrants not implemented")
}
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
@ -124,6 +148,24 @@ func _Query_GranterGrants_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
func _Query_GranteeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryGranteeGrantsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QueryServer).GranteeGrants(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.authz.v1beta1.Query/GranteeGrants",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QueryServer).GranteeGrants(ctx, req.(*QueryGranteeGrantsRequest))
}
return interceptor(ctx, in, info, handler)
}
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@ -139,6 +181,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{
MethodName: "GranterGrants",
Handler: _Query_GranterGrants_Handler,
},
{
MethodName: "GranteeGrants",
Handler: _Query_GranteeGrants_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cosmos/authz/v1beta1/query.proto",

View File

@ -3,14 +3,13 @@ package queryv1beta1
import (
fmt "fmt"
io "io"
reflect "reflect"
sync "sync"
runtime "github.com/cosmos/cosmos-proto/runtime"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
io "io"
reflect "reflect"
sync "sync"
)
var (

View File

@ -3,17 +3,15 @@ package signingv1beta1
import (
fmt "fmt"
io "io"
reflect "reflect"
sync "sync"
runtime "github.com/cosmos/cosmos-proto/runtime"
v1beta1 "github.com/cosmos/cosmos-sdk/api/cosmos/crypto/multisig/v1beta1"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoiface "google.golang.org/protobuf/runtime/protoiface"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
anypb "google.golang.org/protobuf/types/known/anypb"
v1beta1 "github.com/cosmos/cosmos-sdk/api/cosmos/crypto/multisig/v1beta1"
io "io"
reflect "reflect"
sync "sync"
)
var _ protoreflect.List = (*_SignatureDescriptors_1_list)(nil)

View File

@ -25,3 +25,13 @@ message Grant {
google.protobuf.Any authorization = 1 [(cosmos_proto.accepts_interface) = "Authorization"];
google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
}
// GrantAuthorization extends a grant with both the addresses of the grantee and granter.
// It is used in genesis.proto and query.proto
message GrantAuthorization {
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
google.protobuf.Any authorization = 3 [(cosmos_proto.accepts_interface) = "Authorization"];
google.protobuf.Timestamp expiration = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
}

View File

@ -2,10 +2,8 @@
syntax = "proto3";
package cosmos.authz.v1beta1;
import "google/protobuf/timestamp.proto";
import "google/protobuf/any.proto";
import "gogoproto/gogo.proto";
import "cosmos_proto/cosmos.proto";
import "cosmos/authz/v1beta1/authz.proto";
option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
@ -13,12 +11,3 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/authz";
message GenesisState {
repeated GrantAuthorization authorization = 1 [(gogoproto.nullable) = false];
}
// GrantAuthorization defines the GenesisState/GrantAuthorization type.
message GrantAuthorization {
string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
google.protobuf.Any authorization = 3 [(cosmos_proto.accepts_interface) = "Authorization"];
google.protobuf.Timestamp expiration = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
}

View File

@ -16,9 +16,18 @@ service Query {
option (google.api.http).get = "/cosmos/authz/v1beta1/grants";
}
// GranterGrants returns list of `Authorization`, granted by granter.
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
//
// Since: cosmos-sdk 0.46
rpc GranterGrants(QueryGranterGrantsRequest) returns (QueryGranterGrantsResponse) {
option (google.api.http).get = "/cosmos/authz/v1beta1/grants/{granter}";
option (google.api.http).get = "/cosmos/authz/v1beta1/grants/granter/{granter}";
}
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
//
// Since: cosmos-sdk 0.46
rpc GranteeGrants(QueryGranteeGrantsRequest) returns (QueryGranteeGrantsResponse) {
option (google.api.http).get = "/cosmos/authz/v1beta1/grants/grantee/{grantee}";
}
}
@ -35,7 +44,7 @@ message QueryGrantsRequest {
// QueryGrantsResponse is the response type for the Query/Authorizations RPC method.
message QueryGrantsResponse {
// authorizations is a list of grants granted for grantee by granter.
repeated cosmos.authz.v1beta1.Grant grants = 1;
repeated Grant grants = 1;
// pagination defines an pagination for the response.
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
@ -50,8 +59,24 @@ message QueryGranterGrantsRequest {
// QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method.
message QueryGranterGrantsResponse {
// authorizations is a list of grants granted for grantee by granter.
repeated cosmos.authz.v1beta1.Grant grants = 1;
// grants is a list of grants granted by the granter.
repeated GrantAuthorization grants = 1;
// pagination defines an pagination for the response.
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
// QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method.
message QueryGranteeGrantsRequest {
string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
// pagination defines an pagination for the request.
cosmos.base.query.v1beta1.PageRequest pagination = 2;
}
// QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method.
message QueryGranteeGrantsResponse {
// grants is a list of grants granted to the grantee.
repeated GrantAuthorization grants = 1;
// pagination defines an pagination for the response.
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}

View File

@ -109,15 +109,58 @@ func (m *Grant) XXX_DiscardUnknown() {
var xxx_messageInfo_Grant proto.InternalMessageInfo
// GrantAuthorization extends a grant with both the addresses of the grantee and granter.
// It is used in genesis.proto and query.proto
type GrantAuthorization struct {
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
Authorization *types.Any `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
Expiration time.Time `protobuf:"bytes,4,opt,name=expiration,proto3,stdtime" json:"expiration"`
}
func (m *GrantAuthorization) Reset() { *m = GrantAuthorization{} }
func (m *GrantAuthorization) String() string { return proto.CompactTextString(m) }
func (*GrantAuthorization) ProtoMessage() {}
func (*GrantAuthorization) Descriptor() ([]byte, []int) {
return fileDescriptor_544dc2e84b61c637, []int{2}
}
func (m *GrantAuthorization) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *GrantAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_GrantAuthorization.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 *GrantAuthorization) XXX_Merge(src proto.Message) {
xxx_messageInfo_GrantAuthorization.Merge(m, src)
}
func (m *GrantAuthorization) XXX_Size() int {
return m.Size()
}
func (m *GrantAuthorization) XXX_DiscardUnknown() {
xxx_messageInfo_GrantAuthorization.DiscardUnknown(m)
}
var xxx_messageInfo_GrantAuthorization proto.InternalMessageInfo
func init() {
proto.RegisterType((*GenericAuthorization)(nil), "cosmos.authz.v1beta1.GenericAuthorization")
proto.RegisterType((*Grant)(nil), "cosmos.authz.v1beta1.Grant")
proto.RegisterType((*GrantAuthorization)(nil), "cosmos.authz.v1beta1.GrantAuthorization")
}
func init() { proto.RegisterFile("cosmos/authz/v1beta1/authz.proto", fileDescriptor_544dc2e84b61c637) }
var fileDescriptor_544dc2e84b61c637 = []byte{
// 301 bytes of a gzipped FileDescriptorProto
// 364 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,
0x84, 0xf0, 0xf4, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x44, 0x20, 0x2a, 0xf4, 0x20, 0x62, 0x50,
@ -132,11 +175,15 @@ var fileDescriptor_544dc2e84b61c637 = []byte{
0x41, 0x6c, 0xd6, 0x83, 0xd9, 0xac, 0xe7, 0x98, 0x57, 0xe9, 0x84, 0x69, 0x52, 0x10, 0xaa, 0x6e,
0x21, 0x17, 0x2e, 0xae, 0xd4, 0x8a, 0x82, 0xcc, 0x22, 0x88, 0x59, 0x4c, 0x60, 0xb3, 0xa4, 0x30,
0xcc, 0x0a, 0x81, 0x79, 0xde, 0x89, 0xe3, 0xc4, 0x3d, 0x79, 0x86, 0x09, 0xf7, 0xe5, 0x19, 0x83,
0x90, 0xf4, 0x39, 0x39, 0x9d, 0x78, 0x28, 0xc7, 0x70, 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, 0x2a, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xd0, 0x40,
0x86, 0x52, 0xba, 0xc5, 0x29, 0xd9, 0xfa, 0x15, 0x90, 0x88, 0x4a, 0x62, 0x03, 0xdb, 0x66, 0x0c,
0x08, 0x00, 0x00, 0xff, 0xff, 0x46, 0xfb, 0xa1, 0x7a, 0xcd, 0x01, 0x00, 0x00,
0x90, 0xf4, 0x29, 0x4d, 0x64, 0xe2, 0x12, 0x02, 0x3b, 0x0f, 0xd5, 0x6b, 0x46, 0x5c, 0xec, 0xe9,
0x20, 0xd1, 0xd4, 0x22, 0x88, 0xf7, 0x9c, 0x24, 0x2e, 0x6d, 0xd1, 0x85, 0x45, 0x85, 0x63, 0x4a,
0x4a, 0x51, 0x6a, 0x71, 0x71, 0x70, 0x49, 0x51, 0x66, 0x5e, 0x7a, 0x10, 0x4c, 0x21, 0x42, 0x4f,
0x2a, 0xd8, 0x35, 0x44, 0xe8, 0x49, 0xc5, 0x0c, 0x13, 0x66, 0x2a, 0x86, 0x09, 0x0b, 0x79, 0x61,
0xe2, 0xe4, 0x74, 0xe2, 0xa1, 0x1c, 0xc3, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e,
0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31,
0x44, 0xa9, 0xa4, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0x42, 0x13, 0x1e, 0x94,
0xd2, 0x2d, 0x4e, 0xc9, 0xd6, 0xaf, 0x80, 0x24, 0xde, 0x24, 0x36, 0xb0, 0x6d, 0xc6, 0x80, 0x00,
0x00, 0x00, 0xff, 0xff, 0x37, 0xff, 0xb8, 0x9b, 0xe1, 0x02, 0x00, 0x00,
}
func (m *GenericAuthorization) Marshal() (dAtA []byte, err error) {
@ -212,6 +259,63 @@ func (m *Grant) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *GrantAuthorization) 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 *GrantAuthorization) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *GrantAuthorization) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
n3, err3 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expiration, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expiration):])
if err3 != nil {
return 0, err3
}
i -= n3
i = encodeVarintAuthz(dAtA, i, uint64(n3))
i--
dAtA[i] = 0x22
if m.Authorization != nil {
{
size, err := m.Authorization.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintAuthz(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
if len(m.Grantee) > 0 {
i -= len(m.Grantee)
copy(dAtA[i:], m.Grantee)
i = encodeVarintAuthz(dAtA, i, uint64(len(m.Grantee)))
i--
dAtA[i] = 0x12
}
if len(m.Granter) > 0 {
i -= len(m.Granter)
copy(dAtA[i:], m.Granter)
i = encodeVarintAuthz(dAtA, i, uint64(len(m.Granter)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func encodeVarintAuthz(dAtA []byte, offset int, v uint64) int {
offset -= sovAuthz(v)
base := offset
@ -251,6 +355,29 @@ func (m *Grant) Size() (n int) {
return n
}
func (m *GrantAuthorization) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Granter)
if l > 0 {
n += 1 + l + sovAuthz(uint64(l))
}
l = len(m.Grantee)
if l > 0 {
n += 1 + l + sovAuthz(uint64(l))
}
if m.Authorization != nil {
l = m.Authorization.Size()
n += 1 + l + sovAuthz(uint64(l))
}
l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Expiration)
n += 1 + l + sovAuthz(uint64(l))
return n
}
func sovAuthz(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@ -458,6 +585,189 @@ func (m *Grant) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *GrantAuthorization) 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 ErrIntOverflowAuthz
}
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: GrantAuthorization: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: GrantAuthorization: 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 ErrIntOverflowAuthz
}
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 ErrInvalidLengthAuthz
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthAuthz
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Granter = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAuthz
}
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 ErrInvalidLengthAuthz
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthAuthz
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Grantee = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Authorization", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAuthz
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthAuthz
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthAuthz
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Authorization == nil {
m.Authorization = &types.Any{}
}
if err := m.Authorization.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Expiration", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAuthz
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthAuthz
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthAuthz
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Expiration, dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipAuthz(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthAuthz
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipAuthz(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0

View File

@ -28,6 +28,7 @@ func GetQueryCmd() *cobra.Command {
authorizationQueryCmd.AddCommand(
GetCmdQueryGrants(),
GetQueryGranterGrants(),
GetQueryGranteeGrants(),
)
return authorizationQueryCmd
@ -140,3 +141,51 @@ $ %s q %s granter-grants cosmos1skj..
flags.AddPaginationFlagsToCmd(cmd, "granter-grants")
return cmd
}
func GetQueryGranteeGrants() *cobra.Command {
cmd := &cobra.Command{
Use: "grantee-grants [grantee-addr]",
Args: cobra.ExactArgs(1),
Short: "query authorization grants granted to a grantee",
Long: strings.TrimSpace(
fmt.Sprintf(`Query authorization grants granted to a grantee.
Examples:
$ %s q %s grantee-grants cosmos1skj..
`,
version.AppName, authz.ModuleName),
),
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}
grantee, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
return err
}
pageReq, err := client.ReadPageRequest(cmd.Flags())
if err != nil {
return err
}
queryClient := authz.NewQueryClient(clientCtx)
res, err := queryClient.GranteeGrants(
cmd.Context(),
&authz.QueryGranteeGrantsRequest{
Grantee: grantee.String(),
Pagination: pageReq,
},
)
if err != nil {
return err
}
return clientCtx.PrintProto(res)
},
}
flags.AddQueryFlagsToCmd(cmd)
flags.AddPaginationFlagsToCmd(cmd, "grantee-grants")
return cmd
}

View File

@ -1,3 +1,4 @@
//go:build norace
// +build norace
package testutil

View File

@ -148,7 +148,9 @@ func (s *IntegrationTestSuite) TestQueryGrantsGRPC() {
tc := tc
s.Run(tc.name, func() {
tc.preRun()
resp, _ := rest.GetRequest(tc.url)
resp, err := rest.GetRequest(tc.url)
s.Require().NoError(err)
if tc.expectErr {
s.Require().Contains(string(resp), tc.errMsg)
} else {
@ -176,28 +178,21 @@ func (s *IntegrationTestSuite) TestQueryGranterGrantsGRPC() {
}{
{
"invalid account address",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/%s", val.APIAddress, "invalid address"),
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.APIAddress, "invalid address"),
true,
"decoding bech32 failed",
0,
},
{
"no authorizations found",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/%s", val.APIAddress, grantee.String()),
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.APIAddress, grantee.String()),
false,
"",
0,
},
{
"valid query",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/%s", val.APIAddress, val.Address.String()),
false,
"",
7,
},
{
"valid query: expect seven grants",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/%s", val.APIAddress, val.Address.String()),
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.APIAddress, val.Address.String()),
false,
"",
7,
@ -205,13 +200,69 @@ func (s *IntegrationTestSuite) TestQueryGranterGrantsGRPC() {
}
for _, tc := range testCases {
s.Run(tc.name, func() {
resp, _ := rest.GetRequest(tc.url)
resp, err := rest.GetRequest(tc.url)
require.NoError(err)
if tc.expectErr {
require.Contains(string(resp), tc.errMsg)
} else {
var authorizations authz.QueryGrantsResponse
var authorizations authz.QueryGranterGrantsResponse
err := val.ClientCtx.Codec.UnmarshalJSON(resp, &authorizations)
require.NoError(err)
// FIXME: https://github.com/cosmos/cosmos-sdk/issues/10965
require.Len(authorizations.Grants, tc.numItems)
}
})
}
}
func (s *IntegrationTestSuite) TestQueryGranteeGrantsGRPC() {
val := s.network.Validators[0]
grantee := s.grantee[1]
require := s.Require()
testCases := []struct {
name string
url string
expectErr bool
errMsg string
numItems int
}{
{
"invalid account address",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.APIAddress, "invalid address"),
true,
"decoding bech32 failed",
0,
},
{
"no authorizations found",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.APIAddress, val.Address.String()),
false,
"",
0,
},
{
"valid query",
fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.APIAddress, grantee.String()),
false,
"",
1,
},
}
for _, tc := range testCases {
s.Run(tc.name, func() {
resp, err := rest.GetRequest(tc.url)
require.NoError(err)
if tc.expectErr {
require.Contains(string(resp), tc.errMsg)
} else {
var authorizations authz.QueryGranteeGrantsResponse
err := val.ClientCtx.Codec.UnmarshalJSON(resp, &authorizations)
require.NoError(err)
// FIXME: https://github.com/cosmos/cosmos-sdk/issues/10965
require.Len(authorizations.Grants, tc.numItems)
}

View File

@ -6,22 +6,19 @@ package authz
import (
fmt "fmt"
_ "github.com/cosmos/cosmos-proto"
types "github.com/cosmos/cosmos-sdk/codec/types"
_ "github.com/cosmos/cosmos-sdk/codec/types"
_ "github.com/gogo/protobuf/gogoproto"
proto "github.com/gogo/protobuf/proto"
github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
_ "google.golang.org/protobuf/types/known/timestamppb"
io "io"
math "math"
math_bits "math/bits"
time "time"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
var _ = time.Kitchen
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
@ -74,78 +71,8 @@ func (m *GenesisState) GetAuthorization() []GrantAuthorization {
return nil
}
// GrantAuthorization defines the GenesisState/GrantAuthorization type.
type GrantAuthorization struct {
Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"`
Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"`
Authorization *types.Any `protobuf:"bytes,3,opt,name=authorization,proto3" json:"authorization,omitempty"`
Expiration time.Time `protobuf:"bytes,4,opt,name=expiration,proto3,stdtime" json:"expiration"`
}
func (m *GrantAuthorization) Reset() { *m = GrantAuthorization{} }
func (m *GrantAuthorization) String() string { return proto.CompactTextString(m) }
func (*GrantAuthorization) ProtoMessage() {}
func (*GrantAuthorization) Descriptor() ([]byte, []int) {
return fileDescriptor_4c2fbb971da7c892, []int{1}
}
func (m *GrantAuthorization) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *GrantAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_GrantAuthorization.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 *GrantAuthorization) XXX_Merge(src proto.Message) {
xxx_messageInfo_GrantAuthorization.Merge(m, src)
}
func (m *GrantAuthorization) XXX_Size() int {
return m.Size()
}
func (m *GrantAuthorization) XXX_DiscardUnknown() {
xxx_messageInfo_GrantAuthorization.DiscardUnknown(m)
}
var xxx_messageInfo_GrantAuthorization proto.InternalMessageInfo
func (m *GrantAuthorization) GetGranter() string {
if m != nil {
return m.Granter
}
return ""
}
func (m *GrantAuthorization) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
func (m *GrantAuthorization) GetAuthorization() *types.Any {
if m != nil {
return m.Authorization
}
return nil
}
func (m *GrantAuthorization) GetExpiration() time.Time {
if m != nil {
return m.Expiration
}
return time.Time{}
}
func init() {
proto.RegisterType((*GenesisState)(nil), "cosmos.authz.v1beta1.GenesisState")
proto.RegisterType((*GrantAuthorization)(nil), "cosmos.authz.v1beta1.GrantAuthorization")
}
func init() {
@ -153,30 +80,23 @@ func init() {
}
var fileDescriptor_4c2fbb971da7c892 = []byte{
// 358 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xbd, 0x6e, 0xea, 0x30,
0x1c, 0xc5, 0x63, 0x40, 0xf7, 0xc3, 0x5c, 0x86, 0x1b, 0x31, 0xa4, 0x0c, 0x01, 0xa1, 0x0e, 0x59,
0xb0, 0x05, 0xdd, 0x2b, 0x11, 0x55, 0x62, 0xea, 0x02, 0x4c, 0x5d, 0x2a, 0x87, 0xb8, 0xc6, 0x6a,
0x13, 0x23, 0xdb, 0x54, 0xc0, 0x53, 0xd0, 0x77, 0xe1, 0x21, 0x50, 0x27, 0xd4, 0xa9, 0x53, 0x5b,
0xc1, 0x8b, 0x54, 0x89, 0x13, 0x95, 0x8f, 0x0e, 0x9d, 0xe2, 0xc4, 0xbf, 0x73, 0xfe, 0xc7, 0xc7,
0x81, 0xcd, 0x91, 0x50, 0x91, 0x50, 0x98, 0x4c, 0xf5, 0x78, 0x81, 0x1f, 0xdb, 0x01, 0xd5, 0xa4,
0x8d, 0x19, 0x8d, 0xa9, 0xe2, 0x0a, 0x4d, 0xa4, 0xd0, 0xc2, 0xae, 0x1a, 0x06, 0xa5, 0x0c, 0xca,
0x98, 0x5a, 0x9d, 0x09, 0xc1, 0x1e, 0x28, 0x4e, 0x99, 0x60, 0x7a, 0x87, 0x35, 0x8f, 0xa8, 0xd2,
0x24, 0x9a, 0x18, 0x59, 0xed, 0xec, 0x18, 0x20, 0xf1, 0x3c, 0xdb, 0xaa, 0x32, 0xc1, 0x44, 0xba,
0xc4, 0xc9, 0x2a, 0x17, 0x98, 0x39, 0xb7, 0x66, 0x23, 0x1b, 0x9a, 0xbe, 0x34, 0x43, 0xf8, 0xaf,
0x67, 0x32, 0x0d, 0x34, 0xd1, 0xd4, 0x1e, 0xc2, 0x4a, 0x92, 0x46, 0x48, 0xbe, 0x20, 0x9a, 0x8b,
0xd8, 0x01, 0x8d, 0xa2, 0x57, 0xee, 0x78, 0xe8, 0xbb, 0xa8, 0xa8, 0x27, 0x49, 0xac, 0xbb, 0xfb,
0xbc, 0x5f, 0x5a, 0xbf, 0xd5, 0xad, 0xfe, 0xa1, 0x49, 0xf3, 0xa9, 0x00, 0xed, 0x53, 0xd6, 0xee,
0xc0, 0xdf, 0x2c, 0xf9, 0x4a, 0xa5, 0x03, 0x1a, 0xc0, 0xfb, 0xeb, 0x3b, 0x2f, 0xab, 0x56, 0x5e,
0x4a, 0x37, 0x0c, 0x25, 0x55, 0x6a, 0xa0, 0x25, 0x8f, 0x59, 0x3f, 0x07, 0xbf, 0x34, 0xd4, 0x29,
0xfc, 0x4c, 0x43, 0xed, 0xeb, 0xe3, 0x43, 0x15, 0x1b, 0xc0, 0x2b, 0x77, 0xaa, 0xc8, 0x14, 0x89,
0xf2, 0x22, 0x51, 0x37, 0x9e, 0xfb, 0xff, 0x9f, 0x57, 0xad, 0xca, 0x41, 0xce, 0xa3, 0xd3, 0xd8,
0x57, 0x10, 0xd2, 0xd9, 0x84, 0x4b, 0xe3, 0x55, 0x4a, 0xbd, 0x6a, 0x27, 0x5e, 0xc3, 0xfc, 0xd6,
0xfc, 0x3f, 0x49, 0x25, 0xcb, 0xf7, 0x3a, 0xe8, 0xef, 0xe9, 0xfc, 0xcb, 0xf5, 0xd6, 0x05, 0x9b,
0xad, 0x0b, 0x3e, 0xb6, 0x2e, 0x58, 0xee, 0x5c, 0x6b, 0xb3, 0x73, 0xad, 0xd7, 0x9d, 0x6b, 0xdd,
0x9c, 0x33, 0xae, 0xc7, 0xd3, 0x00, 0x8d, 0x44, 0x94, 0x5d, 0x56, 0xf6, 0x68, 0xa9, 0xf0, 0x1e,
0xcf, 0xcc, 0x2f, 0x15, 0xfc, 0x4a, 0x27, 0x5d, 0x7c, 0x06, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xaf,
0x1e, 0x75, 0x69, 0x02, 0x00, 0x00,
// 247 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4a, 0xce, 0x2f, 0xce,
0xcd, 0x2f, 0xd6, 0x4f, 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34,
0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12,
0x81, 0xa8, 0xd1, 0x03, 0xab, 0xd1, 0x83, 0xaa, 0x91, 0x92, 0x4f, 0xcf, 0xcf, 0x4f, 0xcf, 0x49,
0xd5, 0x07, 0xab, 0x49, 0x2a, 0x4d, 0xd3, 0x2f, 0xc9, 0xcc, 0x4d, 0x2d, 0x2e, 0x49, 0xcc, 0x2d,
0x80, 0x68, 0x93, 0x92, 0x44, 0x57, 0x90, 0x98, 0x57, 0x09, 0x95, 0x12, 0x49, 0xcf, 0x4f, 0xcf,
0x07, 0x33, 0xf5, 0x41, 0x2c, 0x98, 0x06, 0x88, 0x3d, 0xf1, 0x10, 0x09, 0xa8, 0xa5, 0x10, 0x29,
0x05, 0xac, 0xce, 0x84, 0x38, 0x08, 0xac, 0x42, 0x29, 0x85, 0x8b, 0xc7, 0x1d, 0xe2, 0xea, 0xe0,
0x92, 0xc4, 0x92, 0x54, 0xa1, 0x10, 0x2e, 0x5e, 0x90, 0x74, 0x7e, 0x51, 0x66, 0x55, 0x62, 0x49,
0x66, 0x7e, 0x9e, 0x04, 0xa3, 0x02, 0xb3, 0x06, 0xb7, 0x91, 0x86, 0x1e, 0x36, 0xcf, 0xe8, 0xb9,
0x17, 0x25, 0xe6, 0x95, 0x38, 0x22, 0xab, 0x77, 0x62, 0x39, 0x71, 0x4f, 0x9e, 0x21, 0x08, 0xd5,
0x10, 0x27, 0xbb, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71,
0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x88, 0x52, 0x49, 0xcf,
0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0x85, 0x3a, 0x1d, 0x4a, 0xe9, 0x16, 0xa7, 0x64,
0xeb, 0x57, 0x40, 0xdc, 0x9a, 0xc4, 0x06, 0x76, 0xac, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x22,
0xa6, 0xf4, 0x0b, 0x77, 0x01, 0x00, 0x00,
}
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
@ -216,63 +136,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *GrantAuthorization) 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 *GrantAuthorization) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *GrantAuthorization) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
n1, err1 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expiration, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expiration):])
if err1 != nil {
return 0, err1
}
i -= n1
i = encodeVarintGenesis(dAtA, i, uint64(n1))
i--
dAtA[i] = 0x22
if m.Authorization != nil {
{
size, err := m.Authorization.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenesis(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
if len(m.Grantee) > 0 {
i -= len(m.Grantee)
copy(dAtA[i:], m.Grantee)
i = encodeVarintGenesis(dAtA, i, uint64(len(m.Grantee)))
i--
dAtA[i] = 0x12
}
if len(m.Granter) > 0 {
i -= len(m.Granter)
copy(dAtA[i:], m.Granter)
i = encodeVarintGenesis(dAtA, i, uint64(len(m.Granter)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int {
offset -= sovGenesis(v)
base := offset
@ -299,29 +162,6 @@ func (m *GenesisState) Size() (n int) {
return n
}
func (m *GrantAuthorization) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Granter)
if l > 0 {
n += 1 + l + sovGenesis(uint64(l))
}
l = len(m.Grantee)
if l > 0 {
n += 1 + l + sovGenesis(uint64(l))
}
if m.Authorization != nil {
l = m.Authorization.Size()
n += 1 + l + sovGenesis(uint64(l))
}
l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Expiration)
n += 1 + l + sovGenesis(uint64(l))
return n
}
func sovGenesis(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@ -412,189 +252,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *GrantAuthorization) 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 ErrIntOverflowGenesis
}
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: GrantAuthorization: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: GrantAuthorization: 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 ErrIntOverflowGenesis
}
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 ErrInvalidLengthGenesis
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Granter = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
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 ErrInvalidLengthGenesis
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Grantee = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Authorization", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Authorization == nil {
m.Authorization = &types.Any{}
}
if err := m.Authorization.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Expiration", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenesis
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenesis
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenesis
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Expiration, dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenesis(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthGenesis
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipGenesis(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0

View File

@ -105,7 +105,7 @@ func (k Keeper) GranterGrants(c context.Context, req *authz.QueryGranterGrantsRe
store := ctx.KVStore(k.storeKey)
authzStore := prefix.NewStore(store, grantStoreKey(nil, granter, ""))
var authorizations []*authz.Grant
var grants []*authz.GrantAuthorization
pageRes, err := query.FilteredPaginate(authzStore, req.Pagination, func(key []byte, value []byte,
accumulate bool) (bool, error) {
auth, err := unmarshalAuthorization(k.cdc, value)
@ -120,7 +120,10 @@ func (k Keeper) GranterGrants(c context.Context, req *authz.QueryGranterGrantsRe
return false, status.Errorf(codes.Internal, err.Error())
}
authorizations = append(authorizations, &authz.Grant{
grantee := firstAddressFromGrantStoreKey(key)
grants = append(grants, &authz.GrantAuthorization{
Granter: granter.String(),
Grantee: grantee.String(),
Authorization: any,
Expiration: auth.Expiration,
})
@ -132,6 +135,59 @@ func (k Keeper) GranterGrants(c context.Context, req *authz.QueryGranterGrantsRe
}
return &authz.QueryGranterGrantsResponse{
Grants: grants,
Pagination: pageRes,
}, nil
}
// GranteeGrants implements the Query/GranteeGrants gRPC method.
func (k Keeper) GranteeGrants(c context.Context, req *authz.QueryGranteeGrantsRequest) (*authz.QueryGranteeGrantsResponse, error) {
if req == nil {
return nil, status.Errorf(codes.InvalidArgument, "empty request")
}
grantee, err := sdk.AccAddressFromBech32(req.Grantee)
if err != nil {
return nil, err
}
ctx := sdk.UnwrapSDKContext(c)
store := prefix.NewStore(ctx.KVStore(k.storeKey), GrantKey)
var authorizations []*authz.GrantAuthorization
pageRes, err := query.FilteredPaginate(store, req.Pagination, func(key []byte, value []byte,
accumulate bool) (bool, error) {
auth, err := unmarshalAuthorization(k.cdc, value)
if err != nil {
return false, err
}
granter, g := addressesFromGrantStoreKey(append(GrantKey, key...))
if !g.Equals(grantee) {
return false, nil
}
auth1 := auth.GetAuthorization()
if accumulate {
any, err := codectypes.NewAnyWithValue(auth1)
if err != nil {
return false, status.Errorf(codes.Internal, err.Error())
}
authorizations = append(authorizations, &authz.GrantAuthorization{
Authorization: any,
Expiration: auth.Expiration,
Granter: granter.String(),
Grantee: grantee.String(),
})
}
return true, nil
})
if err != nil {
return nil, err
}
return &authz.QueryGranteeGrantsResponse{
Grants: authorizations,
Pagination: pageRes,
}, nil

View File

@ -239,3 +239,79 @@ func (suite *TestSuite) TestGRPCQueryGranterGrants() {
})
}
}
func (suite *TestSuite) TestGRPCQueryGranteeGrants() {
require := suite.Require()
app, ctx, queryClient, addrs := suite.app, suite.ctx, suite.queryClient, suite.addrs
testCases := []struct {
msg string
preRun func()
expError bool
request authz.QueryGranteeGrantsRequest
numItems int
}{
{
"fail invalid granter addr",
func() {},
true,
authz.QueryGranteeGrantsRequest{},
0,
},
{
"valid case, single authorization",
func() {
now := ctx.BlockHeader().Time
newCoins := sdk.NewCoins(sdk.NewInt64Coin("steak", 100))
authorization := &banktypes.SendAuthorization{SpendLimit: newCoins}
err := app.AuthzKeeper.SaveGrant(ctx, addrs[0], addrs[1], authorization, now.Add(time.Hour))
require.NoError(err)
},
false,
authz.QueryGranteeGrantsRequest{
Grantee: addrs[0].String(),
},
1,
},
{
"valid case, multiple authorization",
func() {
now := ctx.BlockHeader().Time
newCoins := sdk.NewCoins(sdk.NewInt64Coin("steak", 100))
authorization := &banktypes.SendAuthorization{SpendLimit: newCoins}
err := app.AuthzKeeper.SaveGrant(ctx, addrs[0], addrs[2], authorization, now.Add(time.Hour))
require.NoError(err)
},
false,
authz.QueryGranteeGrantsRequest{
Grantee: addrs[0].String(),
},
2,
},
{
"valid case, pagination",
func() {},
false,
authz.QueryGranteeGrantsRequest{
Grantee: addrs[0].String(),
Pagination: &query.PageRequest{
Limit: 1,
},
},
1,
},
}
for _, tc := range testCases {
suite.Run(fmt.Sprintf("Case %s", tc.msg), func() {
tc.preRun()
result, err := queryClient.GranteeGrants(gocontext.Background(), &tc.request)
if tc.expError {
require.Error(err)
} else {
require.NoError(err)
require.Len(result.Grants, tc.numItems)
}
})
}
}

View File

@ -49,3 +49,9 @@ func addressesFromGrantStoreKey(key []byte) (granterAddr, granteeAddr sdk.AccAdd
return granterAddr, granteeAddr
}
// firstAddressFromGrantStoreKey parses the first address only
func firstAddressFromGrantStoreKey(key []byte) sdk.AccAddress {
addrLen := key[0]
return sdk.AccAddress(key[1 : 1+addrLen])
}

View File

@ -212,8 +212,8 @@ func (m *QueryGranterGrantsRequest) GetPagination() *query.PageRequest {
// QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method.
type QueryGranterGrantsResponse struct {
// authorizations is a list of grants granted for grantee by granter.
Grants []*Grant `protobuf:"bytes,1,rep,name=grants,proto3" json:"grants,omitempty"`
// grants is a list of grants granted by the granter.
Grants []*GrantAuthorization `protobuf:"bytes,1,rep,name=grants,proto3" json:"grants,omitempty"`
// pagination defines an pagination for the response.
Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
}
@ -251,7 +251,7 @@ func (m *QueryGranterGrantsResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryGranterGrantsResponse proto.InternalMessageInfo
func (m *QueryGranterGrantsResponse) GetGrants() []*Grant {
func (m *QueryGranterGrantsResponse) GetGrants() []*GrantAuthorization {
if m != nil {
return m.Grants
}
@ -265,47 +265,162 @@ func (m *QueryGranterGrantsResponse) GetPagination() *query.PageResponse {
return nil
}
// QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method.
type QueryGranteeGrantsRequest struct {
Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"`
// pagination defines an pagination for the request.
Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
}
func (m *QueryGranteeGrantsRequest) Reset() { *m = QueryGranteeGrantsRequest{} }
func (m *QueryGranteeGrantsRequest) String() string { return proto.CompactTextString(m) }
func (*QueryGranteeGrantsRequest) ProtoMessage() {}
func (*QueryGranteeGrantsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_376d714ffdeb1545, []int{4}
}
func (m *QueryGranteeGrantsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryGranteeGrantsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryGranteeGrantsRequest.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 *QueryGranteeGrantsRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryGranteeGrantsRequest.Merge(m, src)
}
func (m *QueryGranteeGrantsRequest) XXX_Size() int {
return m.Size()
}
func (m *QueryGranteeGrantsRequest) XXX_DiscardUnknown() {
xxx_messageInfo_QueryGranteeGrantsRequest.DiscardUnknown(m)
}
var xxx_messageInfo_QueryGranteeGrantsRequest proto.InternalMessageInfo
func (m *QueryGranteeGrantsRequest) GetGrantee() string {
if m != nil {
return m.Grantee
}
return ""
}
func (m *QueryGranteeGrantsRequest) GetPagination() *query.PageRequest {
if m != nil {
return m.Pagination
}
return nil
}
// QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method.
type QueryGranteeGrantsResponse struct {
// grants is a list of grants granted to the grantee.
Grants []*GrantAuthorization `protobuf:"bytes,1,rep,name=grants,proto3" json:"grants,omitempty"`
// pagination defines an pagination for the response.
Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
}
func (m *QueryGranteeGrantsResponse) Reset() { *m = QueryGranteeGrantsResponse{} }
func (m *QueryGranteeGrantsResponse) String() string { return proto.CompactTextString(m) }
func (*QueryGranteeGrantsResponse) ProtoMessage() {}
func (*QueryGranteeGrantsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_376d714ffdeb1545, []int{5}
}
func (m *QueryGranteeGrantsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryGranteeGrantsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryGranteeGrantsResponse.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 *QueryGranteeGrantsResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryGranteeGrantsResponse.Merge(m, src)
}
func (m *QueryGranteeGrantsResponse) XXX_Size() int {
return m.Size()
}
func (m *QueryGranteeGrantsResponse) XXX_DiscardUnknown() {
xxx_messageInfo_QueryGranteeGrantsResponse.DiscardUnknown(m)
}
var xxx_messageInfo_QueryGranteeGrantsResponse proto.InternalMessageInfo
func (m *QueryGranteeGrantsResponse) GetGrants() []*GrantAuthorization {
if m != nil {
return m.Grants
}
return nil
}
func (m *QueryGranteeGrantsResponse) GetPagination() *query.PageResponse {
if m != nil {
return m.Pagination
}
return nil
}
func init() {
proto.RegisterType((*QueryGrantsRequest)(nil), "cosmos.authz.v1beta1.QueryGrantsRequest")
proto.RegisterType((*QueryGrantsResponse)(nil), "cosmos.authz.v1beta1.QueryGrantsResponse")
proto.RegisterType((*QueryGranterGrantsRequest)(nil), "cosmos.authz.v1beta1.QueryGranterGrantsRequest")
proto.RegisterType((*QueryGranterGrantsResponse)(nil), "cosmos.authz.v1beta1.QueryGranterGrantsResponse")
proto.RegisterType((*QueryGranteeGrantsRequest)(nil), "cosmos.authz.v1beta1.QueryGranteeGrantsRequest")
proto.RegisterType((*QueryGranteeGrantsResponse)(nil), "cosmos.authz.v1beta1.QueryGranteeGrantsResponse")
}
func init() { proto.RegisterFile("cosmos/authz/v1beta1/query.proto", fileDescriptor_376d714ffdeb1545) }
var fileDescriptor_376d714ffdeb1545 = []byte{
// 476 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x94, 0xb1, 0x6e, 0xd4, 0x30,
0x18, 0xc7, 0xcf, 0x29, 0x1c, 0xc2, 0x85, 0xc5, 0x30, 0xa4, 0xa1, 0x8a, 0xa2, 0x53, 0x55, 0x02,
0x52, 0x6d, 0x9a, 0xee, 0x48, 0x74, 0x68, 0x57, 0x08, 0xb0, 0xb0, 0x9c, 0x9c, 0x9e, 0xe5, 0x46,
0x5c, 0xe2, 0xd4, 0x76, 0x10, 0x07, 0x62, 0x81, 0x17, 0x40, 0xea, 0x80, 0xc4, 0xc8, 0x23, 0x20,
0x1e, 0x82, 0xb1, 0x82, 0x85, 0x11, 0xdd, 0x21, 0x9e, 0x03, 0xc5, 0xf6, 0x71, 0x04, 0x22, 0x7a,
0x82, 0xa5, 0x53, 0xe4, 0xe8, 0xff, 0xff, 0x7f, 0xbf, 0xef, 0xfb, 0x9c, 0xc0, 0xe8, 0x40, 0xa8,
0x42, 0x28, 0x42, 0x6b, 0x7d, 0xf8, 0x8c, 0x3c, 0xd9, 0xce, 0x98, 0xa6, 0xdb, 0xe4, 0xa8, 0x66,
0x72, 0x82, 0x2b, 0x29, 0xb4, 0x40, 0x57, 0xad, 0x02, 0x1b, 0x05, 0x76, 0x8a, 0x60, 0x9d, 0x0b,
0xc1, 0xc7, 0x8c, 0xd0, 0x2a, 0x27, 0xb4, 0x2c, 0x85, 0xa6, 0x3a, 0x17, 0xa5, 0xb2, 0x9e, 0xe0,
0xa6, 0x4b, 0xcd, 0xa8, 0x62, 0x36, 0xec, 0x67, 0x74, 0x45, 0x79, 0x5e, 0x1a, 0xb1, 0xd3, 0x76,
0x13, 0xd8, 0x6a, 0x56, 0xb1, 0x66, 0x15, 0x43, 0x73, 0x22, 0x0e, 0xc7, 0x1c, 0x06, 0xdf, 0x01,
0x44, 0xf7, 0x9a, 0xfc, 0x7d, 0x49, 0x4b, 0xad, 0x52, 0x76, 0x54, 0x33, 0xa5, 0x51, 0x02, 0x2f,
0xf0, 0xe6, 0x05, 0x93, 0x3e, 0x88, 0x40, 0x7c, 0x71, 0xd7, 0xff, 0xf4, 0x61, 0x6b, 0xde, 0xc8,
0x9d, 0xd1, 0x48, 0x32, 0xa5, 0xee, 0x6b, 0x99, 0x97, 0x3c, 0x9d, 0x0b, 0x17, 0x1e, 0xe6, 0x7b,
0xcb, 0x79, 0x18, 0x8a, 0xe0, 0xa5, 0x42, 0xf1, 0xa1, 0x9e, 0x54, 0x6c, 0x58, 0xcb, 0xb1, 0xbf,
0xd2, 0x18, 0x53, 0x58, 0x28, 0xfe, 0x60, 0x52, 0xb1, 0x87, 0x72, 0x8c, 0xf6, 0x20, 0x5c, 0x74,
0xec, 0x9f, 0x8b, 0x40, 0xbc, 0x9a, 0x6c, 0x62, 0x97, 0xda, 0x8c, 0x07, 0xdb, 0x59, 0xbb, 0xbe,
0xf1, 0x5d, 0xca, 0x99, 0xeb, 0x22, 0xfd, 0xc5, 0x39, 0x38, 0x06, 0xf0, 0x4a, 0xab, 0x51, 0x55,
0x89, 0x52, 0x31, 0xb4, 0x03, 0xfb, 0x06, 0x46, 0xf9, 0x20, 0x5a, 0x89, 0x57, 0x93, 0x6b, 0xb8,
0x6b, 0x5d, 0xd8, 0xb8, 0x52, 0x27, 0x45, 0xfb, 0x2d, 0x28, 0xcf, 0x40, 0x5d, 0x3f, 0x15, 0xca,
0x56, 0x6c, 0x51, 0xbd, 0x01, 0x70, 0x6d, 0x41, 0xc5, 0xe4, 0xff, 0x6f, 0x61, 0xaf, 0x03, 0xed,
0x5f, 0xe6, 0xf5, 0x16, 0xc0, 0xa0, 0x8b, 0xec, 0x2c, 0x8c, 0x2d, 0x79, 0xef, 0xc1, 0xf3, 0x06,
0x0e, 0xbd, 0x02, 0xb0, 0x6f, 0xd1, 0x50, 0xdc, 0x8d, 0xf0, 0xe7, 0xed, 0x0e, 0x6e, 0x2c, 0xa1,
0xb4, 0x55, 0x07, 0x1b, 0x2f, 0x3f, 0x7f, 0x3b, 0xf6, 0x42, 0xb4, 0x4e, 0x3a, 0xbf, 0x32, 0xd7,
0xd8, 0x3b, 0x00, 0x2f, 0xb7, 0xe6, 0x84, 0xc8, 0x69, 0x25, 0x7e, 0xdb, 0x75, 0x70, 0x6b, 0x79,
0x83, 0x43, 0xc3, 0x06, 0x2d, 0x46, 0x9b, 0x7f, 0x43, 0x23, 0xcf, 0xdd, 0xc5, 0x78, 0xb1, 0x7b,
0xfb, 0xe3, 0x34, 0x04, 0x27, 0xd3, 0x10, 0x7c, 0x9d, 0x86, 0xe0, 0xf5, 0x2c, 0xec, 0x9d, 0xcc,
0xc2, 0xde, 0x97, 0x59, 0xd8, 0x7b, 0xb4, 0xc1, 0x73, 0x7d, 0x58, 0x67, 0xf8, 0x40, 0x14, 0xf3,
0x2c, 0xfb, 0xd8, 0x52, 0xa3, 0xc7, 0xe4, 0xa9, 0x0d, 0xce, 0xfa, 0xe6, 0x8f, 0xb1, 0xf3, 0x23,
0x00, 0x00, 0xff, 0xff, 0x7e, 0xb6, 0x86, 0xa8, 0xf2, 0x04, 0x00, 0x00,
// 529 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0x41, 0x6f, 0xd3, 0x3e,
0x18, 0xc6, 0xeb, 0xf6, 0xff, 0x2f, 0xc2, 0x83, 0x8b, 0xe1, 0x90, 0x85, 0x29, 0x8a, 0xaa, 0x09,
0x0a, 0xd2, 0xec, 0xad, 0x93, 0x38, 0x22, 0xb6, 0xc3, 0x76, 0x85, 0x00, 0x17, 0x2e, 0x55, 0xba,
0xbe, 0x72, 0x23, 0xda, 0x38, 0xb3, 0x1d, 0x44, 0x87, 0x76, 0x81, 0x2f, 0x80, 0xb4, 0x03, 0x1f,
0x01, 0x89, 0x33, 0x1f, 0x82, 0xe3, 0x04, 0x17, 0x8e, 0xa8, 0x45, 0xf0, 0x35, 0x50, 0x6d, 0x97,
0xae, 0x23, 0xdb, 0x02, 0xd3, 0x24, 0x4e, 0xad, 0xa3, 0xe7, 0x7d, 0xde, 0xdf, 0xfb, 0x38, 0x76,
0x70, 0xb8, 0x23, 0xd4, 0x40, 0x28, 0x16, 0xe7, 0xba, 0xb7, 0xc7, 0x9e, 0xaf, 0x75, 0x40, 0xc7,
0x6b, 0x6c, 0x37, 0x07, 0x39, 0xa4, 0x99, 0x14, 0x5a, 0x90, 0xeb, 0x56, 0x41, 0x8d, 0x82, 0x3a,
0x85, 0xbf, 0xc4, 0x85, 0xe0, 0x7d, 0x60, 0x71, 0x96, 0xb0, 0x38, 0x4d, 0x85, 0x8e, 0x75, 0x22,
0x52, 0x65, 0x6b, 0xfc, 0x3b, 0xce, 0xb5, 0x13, 0x2b, 0xb0, 0x66, 0xbf, 0xac, 0xb3, 0x98, 0x27,
0xa9, 0x11, 0x3b, 0x6d, 0x31, 0x81, 0xed, 0x66, 0x15, 0x8b, 0x56, 0xd1, 0x36, 0x2b, 0xe6, 0x70,
0xcc, 0xa2, 0xf1, 0x1d, 0x61, 0xf2, 0x70, 0xe2, 0xbf, 0x2d, 0xe3, 0x54, 0xab, 0x08, 0x76, 0x73,
0x50, 0x9a, 0xb4, 0xf0, 0x25, 0x3e, 0x79, 0x00, 0xd2, 0x43, 0x21, 0x6a, 0x5e, 0xde, 0xf4, 0x3e,
0x7d, 0x58, 0x99, 0x0e, 0xb2, 0xd1, 0xed, 0x4a, 0x50, 0xea, 0x91, 0x96, 0x49, 0xca, 0xa3, 0xa9,
0x70, 0x56, 0x03, 0x5e, 0xb5, 0x5c, 0x0d, 0x90, 0x10, 0x5f, 0x19, 0x28, 0xde, 0xd6, 0xc3, 0x0c,
0xda, 0xb9, 0xec, 0x7b, 0xb5, 0x49, 0x61, 0x84, 0x07, 0x8a, 0x3f, 0x1e, 0x66, 0xf0, 0x44, 0xf6,
0xc9, 0x16, 0xc6, 0xb3, 0x89, 0xbd, 0xff, 0x42, 0xd4, 0x5c, 0x68, 0xdd, 0xa4, 0xce, 0x75, 0x12,
0x0f, 0xb5, 0x59, 0xbb, 0xb9, 0xe9, 0x83, 0x98, 0x83, 0x9b, 0x22, 0x3a, 0x52, 0xd9, 0x38, 0x40,
0xf8, 0xda, 0xdc, 0xa0, 0x2a, 0x13, 0xa9, 0x02, 0xb2, 0x8e, 0xeb, 0x06, 0x46, 0x79, 0x28, 0xac,
0x35, 0x17, 0x5a, 0x37, 0x68, 0xd1, 0x76, 0x51, 0x53, 0x15, 0x39, 0x29, 0xd9, 0x9e, 0x83, 0xaa,
0x1a, 0xa8, 0x5b, 0x67, 0x42, 0xd9, 0x8e, 0x73, 0x54, 0x6f, 0x11, 0x5e, 0x9c, 0x51, 0x81, 0x3c,
0xff, 0x2e, 0x6c, 0x15, 0xa0, 0xfd, 0x4d, 0x5e, 0xef, 0x10, 0xf6, 0x8b, 0xc8, 0x5c, 0x6c, 0xf7,
0x8f, 0xc5, 0xd6, 0x3c, 0x25, 0xb6, 0x8d, 0x5c, 0xf7, 0x84, 0x4c, 0xf6, 0x8c, 0xf1, 0x85, 0x67,
0x08, 0x27, 0x64, 0x08, 0x65, 0x33, 0x84, 0x8b, 0xca, 0x10, 0xfe, 0xd9, 0x0c, 0x5b, 0x3f, 0x6a,
0xf8, 0x7f, 0x43, 0x4a, 0x5e, 0x23, 0x5c, 0xb7, 0x9c, 0xe4, 0x04, 0x9e, 0xdf, 0xaf, 0x0b, 0xff,
0x76, 0x09, 0xa5, 0xed, 0xda, 0x58, 0x7e, 0xf5, 0xf9, 0xdb, 0x41, 0x35, 0x20, 0x4b, 0xac, 0xf0,
0xda, 0x72, 0x83, 0xbd, 0x47, 0xf8, 0xea, 0xdc, 0x8b, 0x47, 0xd8, 0x59, 0x2d, 0x8e, 0x1d, 0x1e,
0x7f, 0xb5, 0x7c, 0x81, 0x43, 0xbb, 0x6b, 0xd0, 0x56, 0x09, 0x3d, 0x0d, 0x8d, 0xb9, 0x83, 0xc6,
0x5e, 0xba, 0x3f, 0xfb, 0x47, 0x60, 0xa1, 0x34, 0x2c, 0xfc, 0x29, 0x2c, 0x9c, 0x03, 0x16, 0xa6,
0xb0, 0xb0, 0xbf, 0x79, 0xef, 0xe3, 0x28, 0x40, 0x87, 0xa3, 0x00, 0x7d, 0x1d, 0x05, 0xe8, 0xcd,
0x38, 0xa8, 0x1c, 0x8e, 0x83, 0xca, 0x97, 0x71, 0x50, 0x79, 0xba, 0xcc, 0x13, 0xdd, 0xcb, 0x3b,
0x74, 0x47, 0x0c, 0xa6, 0x9e, 0xf6, 0x67, 0x45, 0x75, 0x9f, 0xb1, 0x17, 0xb6, 0x41, 0xa7, 0x6e,
0xbe, 0x1b, 0xeb, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x8b, 0x47, 0x69, 0xf8, 0x06, 0x00,
0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -322,8 +437,14 @@ const _ = grpc.SupportPackageIsVersion4
type QueryClient interface {
// Returns list of `Authorization`, granted to the grantee by the granter.
Grants(ctx context.Context, in *QueryGrantsRequest, opts ...grpc.CallOption) (*QueryGrantsResponse, error)
// GranterGrants returns list of `Authorization`, granted by granter.
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
//
// Since: cosmos-sdk 0.46
GranterGrants(ctx context.Context, in *QueryGranterGrantsRequest, opts ...grpc.CallOption) (*QueryGranterGrantsResponse, error)
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
//
// Since: cosmos-sdk 0.46
GranteeGrants(ctx context.Context, in *QueryGranteeGrantsRequest, opts ...grpc.CallOption) (*QueryGranteeGrantsResponse, error)
}
type queryClient struct {
@ -352,12 +473,27 @@ func (c *queryClient) GranterGrants(ctx context.Context, in *QueryGranterGrantsR
return out, nil
}
func (c *queryClient) GranteeGrants(ctx context.Context, in *QueryGranteeGrantsRequest, opts ...grpc.CallOption) (*QueryGranteeGrantsResponse, error) {
out := new(QueryGranteeGrantsResponse)
err := c.cc.Invoke(ctx, "/cosmos.authz.v1beta1.Query/GranteeGrants", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// QueryServer is the server API for Query service.
type QueryServer interface {
// Returns list of `Authorization`, granted to the grantee by the granter.
Grants(context.Context, *QueryGrantsRequest) (*QueryGrantsResponse, error)
// GranterGrants returns list of `Authorization`, granted by granter.
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
//
// Since: cosmos-sdk 0.46
GranterGrants(context.Context, *QueryGranterGrantsRequest) (*QueryGranterGrantsResponse, error)
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
//
// Since: cosmos-sdk 0.46
GranteeGrants(context.Context, *QueryGranteeGrantsRequest) (*QueryGranteeGrantsResponse, error)
}
// UnimplementedQueryServer can be embedded to have forward compatible implementations.
@ -370,6 +506,9 @@ func (*UnimplementedQueryServer) Grants(ctx context.Context, req *QueryGrantsReq
func (*UnimplementedQueryServer) GranterGrants(ctx context.Context, req *QueryGranterGrantsRequest) (*QueryGranterGrantsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GranterGrants not implemented")
}
func (*UnimplementedQueryServer) GranteeGrants(ctx context.Context, req *QueryGranteeGrantsRequest) (*QueryGranteeGrantsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GranteeGrants not implemented")
}
func RegisterQueryServer(s grpc1.Server, srv QueryServer) {
s.RegisterService(&_Query_serviceDesc, srv)
@ -411,6 +550,24 @@ func _Query_GranterGrants_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
func _Query_GranteeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryGranteeGrantsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QueryServer).GranteeGrants(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.authz.v1beta1.Query/GranteeGrants",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QueryServer).GranteeGrants(ctx, req.(*QueryGranteeGrantsRequest))
}
return interceptor(ctx, in, info, handler)
}
var _Query_serviceDesc = grpc.ServiceDesc{
ServiceName: "cosmos.authz.v1beta1.Query",
HandlerType: (*QueryServer)(nil),
@ -423,6 +580,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{
MethodName: "GranterGrants",
Handler: _Query_GranterGrants_Handler,
},
{
MethodName: "GranteeGrants",
Handler: _Query_GranteeGrants_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cosmos/authz/v1beta1/query.proto",
@ -624,6 +785,97 @@ func (m *QueryGranterGrantsResponse) MarshalToSizedBuffer(dAtA []byte) (int, err
return len(dAtA) - i, nil
}
func (m *QueryGranteeGrantsRequest) 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 *QueryGranteeGrantsRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryGranteeGrantsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.Pagination != nil {
{
size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
if len(m.Grantee) > 0 {
i -= len(m.Grantee)
copy(dAtA[i:], m.Grantee)
i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *QueryGranteeGrantsResponse) 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 *QueryGranteeGrantsResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryGranteeGrantsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.Pagination != nil {
{
size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
if len(m.Grants) > 0 {
for iNdEx := len(m.Grants) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Grants[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
}
}
return len(dAtA) - i, nil
}
func encodeVarintQuery(dAtA []byte, offset int, v uint64) int {
offset -= sovQuery(v)
base := offset
@ -715,6 +967,42 @@ func (m *QueryGranterGrantsResponse) Size() (n int) {
return n
}
func (m *QueryGranteeGrantsRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Grantee)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
if m.Pagination != nil {
l = m.Pagination.Size()
n += 1 + l + sovQuery(uint64(l))
}
return n
}
func (m *QueryGranteeGrantsResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.Grants) > 0 {
for _, e := range m.Grants {
l = e.Size()
n += 1 + l + sovQuery(uint64(l))
}
}
if m.Pagination != nil {
l = m.Pagination.Size()
n += 1 + l + sovQuery(uint64(l))
}
return n
}
func sovQuery(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@ -1199,7 +1487,245 @@ func (m *QueryGranterGrantsResponse) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Grants = append(m.Grants, &Grant{})
m.Grants = append(m.Grants, &GrantAuthorization{})
if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Pagination == nil {
m.Pagination = &query.PageResponse{}
}
if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthQuery
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *QueryGranteeGrantsRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryGranteeGrantsRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryGranteeGrantsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Grantee = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Pagination == nil {
m.Pagination = &query.PageRequest{}
}
if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthQuery
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *QueryGranteeGrantsResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: QueryGranteeGrantsResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: QueryGranteeGrantsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Grants = append(m.Grants, &GrantAuthorization{})
if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}

View File

@ -139,6 +139,78 @@ func local_request_Query_GranterGrants_0(ctx context.Context, marshaler runtime.
}
var (
filter_Query_GranteeGrants_0 = &utilities.DoubleArray{Encoding: map[string]int{"grantee": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}}
)
func request_Query_GranteeGrants_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryGranteeGrantsRequest
var metadata runtime.ServerMetadata
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["grantee"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "grantee")
}
protoReq.Grantee, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grantee", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_GranteeGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.GranteeGrants(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Query_GranteeGrants_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq QueryGranteeGrantsRequest
var metadata runtime.ServerMetadata
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["grantee"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "grantee")
}
protoReq.Grantee, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "grantee", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_GranteeGrants_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.GranteeGrants(ctx, &protoReq)
return msg, metadata, err
}
// RegisterQueryHandlerServer registers the http handlers for service Query to "mux".
// UnaryRPC :call QueryServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
@ -185,6 +257,26 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
})
mux.Handle("GET", pattern_Query_GranteeGrants_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Query_GranteeGrants_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_GranteeGrants_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
@ -266,17 +358,41 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
})
mux.Handle("GET", pattern_Query_GranteeGrants_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Query_GranteeGrants_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Query_GranteeGrants_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
var (
pattern_Query_Grants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cosmos", "authz", "v1beta1", "grants"}, "", runtime.AssumeColonVerbOpt(false)))
pattern_Query_GranterGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"cosmos", "authz", "v1beta1", "grants", "granter"}, "", runtime.AssumeColonVerbOpt(false)))
pattern_Query_GranterGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"cosmos", "authz", "v1beta1", "grants", "granter"}, "", runtime.AssumeColonVerbOpt(false)))
pattern_Query_GranteeGrants_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"cosmos", "authz", "v1beta1", "grants", "grantee"}, "", runtime.AssumeColonVerbOpt(false)))
)
var (
forward_Query_Grants_0 = runtime.ForwardResponseMessage
forward_Query_GranterGrants_0 = runtime.ForwardResponseMessage
forward_Query_GranteeGrants_0 = runtime.ForwardResponseMessage
)