From 5d61e54e5653bdcc8ffd9fd193042164a55fac5d Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 10:02:33 +0100 Subject: [PATCH 01/13] add proto file changes --- api/cosmos/group/v1/tx.pulsar.go | 153 +++++++++++++++- api/cosmos/group/v1/types.pulsar.go | 153 +++++++++++++++- proto/cosmos/group/v1/tx.proto | 11 +- proto/cosmos/group/v1/types.proto | 11 +- x/group/tx.pb.go | 272 +++++++++++++++++++--------- x/group/types.pb.go | 263 ++++++++++++++++++--------- 6 files changed, 673 insertions(+), 190 deletions(-) diff --git a/api/cosmos/group/v1/tx.pulsar.go b/api/cosmos/group/v1/tx.pulsar.go index 6de7bcb63e40..c3d85b443153 100644 --- a/api/cosmos/group/v1/tx.pulsar.go +++ b/api/cosmos/group/v1/tx.pulsar.go @@ -8930,6 +8930,8 @@ var ( fd_MsgSubmitProposal_metadata protoreflect.FieldDescriptor fd_MsgSubmitProposal_messages protoreflect.FieldDescriptor fd_MsgSubmitProposal_exec protoreflect.FieldDescriptor + fd_MsgSubmitProposal_title protoreflect.FieldDescriptor + fd_MsgSubmitProposal_summary protoreflect.FieldDescriptor ) func init() { @@ -8940,6 +8942,8 @@ func init() { fd_MsgSubmitProposal_metadata = md_MsgSubmitProposal.Fields().ByName("metadata") fd_MsgSubmitProposal_messages = md_MsgSubmitProposal.Fields().ByName("messages") fd_MsgSubmitProposal_exec = md_MsgSubmitProposal.Fields().ByName("exec") + fd_MsgSubmitProposal_title = md_MsgSubmitProposal.Fields().ByName("title") + fd_MsgSubmitProposal_summary = md_MsgSubmitProposal.Fields().ByName("summary") } var _ protoreflect.Message = (*fastReflection_MsgSubmitProposal)(nil) @@ -9037,6 +9041,18 @@ func (x *fastReflection_MsgSubmitProposal) Range(f func(protoreflect.FieldDescri return } } + if x.Title != "" { + value := protoreflect.ValueOfString(x.Title) + if !f(fd_MsgSubmitProposal_title, value) { + return + } + } + if x.Summary != "" { + value := protoreflect.ValueOfString(x.Summary) + if !f(fd_MsgSubmitProposal_summary, value) { + return + } + } } // Has reports whether a field is populated. @@ -9062,6 +9078,10 @@ func (x *fastReflection_MsgSubmitProposal) Has(fd protoreflect.FieldDescriptor) return len(x.Messages) != 0 case "cosmos.group.v1.MsgSubmitProposal.exec": return x.Exec != 0 + case "cosmos.group.v1.MsgSubmitProposal.title": + return x.Title != "" + case "cosmos.group.v1.MsgSubmitProposal.summary": + return x.Summary != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.MsgSubmitProposal")) @@ -9088,6 +9108,10 @@ func (x *fastReflection_MsgSubmitProposal) Clear(fd protoreflect.FieldDescriptor x.Messages = nil case "cosmos.group.v1.MsgSubmitProposal.exec": x.Exec = 0 + case "cosmos.group.v1.MsgSubmitProposal.title": + x.Title = "" + case "cosmos.group.v1.MsgSubmitProposal.summary": + x.Summary = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.MsgSubmitProposal")) @@ -9125,6 +9149,12 @@ func (x *fastReflection_MsgSubmitProposal) Get(descriptor protoreflect.FieldDesc case "cosmos.group.v1.MsgSubmitProposal.exec": value := x.Exec return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + case "cosmos.group.v1.MsgSubmitProposal.title": + value := x.Title + return protoreflect.ValueOfString(value) + case "cosmos.group.v1.MsgSubmitProposal.summary": + value := x.Summary + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.MsgSubmitProposal")) @@ -9159,6 +9189,10 @@ func (x *fastReflection_MsgSubmitProposal) Set(fd protoreflect.FieldDescriptor, x.Messages = *clv.list case "cosmos.group.v1.MsgSubmitProposal.exec": x.Exec = (Exec)(value.Enum()) + case "cosmos.group.v1.MsgSubmitProposal.title": + x.Title = value.Interface().(string) + case "cosmos.group.v1.MsgSubmitProposal.summary": + x.Summary = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.MsgSubmitProposal")) @@ -9197,6 +9231,10 @@ func (x *fastReflection_MsgSubmitProposal) Mutable(fd protoreflect.FieldDescript panic(fmt.Errorf("field metadata of message cosmos.group.v1.MsgSubmitProposal is not mutable")) case "cosmos.group.v1.MsgSubmitProposal.exec": panic(fmt.Errorf("field exec of message cosmos.group.v1.MsgSubmitProposal is not mutable")) + case "cosmos.group.v1.MsgSubmitProposal.title": + panic(fmt.Errorf("field title of message cosmos.group.v1.MsgSubmitProposal is not mutable")) + case "cosmos.group.v1.MsgSubmitProposal.summary": + panic(fmt.Errorf("field summary of message cosmos.group.v1.MsgSubmitProposal is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.MsgSubmitProposal")) @@ -9222,6 +9260,10 @@ func (x *fastReflection_MsgSubmitProposal) NewField(fd protoreflect.FieldDescrip return protoreflect.ValueOfList(&_MsgSubmitProposal_4_list{list: &list}) case "cosmos.group.v1.MsgSubmitProposal.exec": return protoreflect.ValueOfEnum(0) + case "cosmos.group.v1.MsgSubmitProposal.title": + return protoreflect.ValueOfString("") + case "cosmos.group.v1.MsgSubmitProposal.summary": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.MsgSubmitProposal")) @@ -9314,6 +9356,14 @@ func (x *fastReflection_MsgSubmitProposal) ProtoMethods() *protoiface.Methods { if x.Exec != 0 { n += 1 + runtime.Sov(uint64(x.Exec)) } + l = len(x.Title) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Summary) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -9343,6 +9393,20 @@ func (x *fastReflection_MsgSubmitProposal) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.Summary) > 0 { + i -= len(x.Summary) + copy(dAtA[i:], x.Summary) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Summary))) + i-- + dAtA[i] = 0x3a + } + if len(x.Title) > 0 { + i -= len(x.Title) + copy(dAtA[i:], x.Title) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Title))) + i-- + dAtA[i] = 0x32 + } if x.Exec != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.Exec)) i-- @@ -9585,6 +9649,70 @@ func (x *fastReflection_MsgSubmitProposal) ProtoMethods() *protoiface.Methods { break } } + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Title", 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.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Summary", 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.Summary = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -14430,6 +14558,10 @@ type MsgSubmitProposal struct { // whether it should be executed immediately on creation or not. // If so, proposers signatures are considered as Yes votes. Exec Exec `protobuf:"varint,5,opt,name=exec,proto3,enum=cosmos.group.v1.Exec" json:"exec,omitempty"` + // title is the title of the proposal. + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + // summary is the summary of the proposal. + Summary string `protobuf:"bytes,7,opt,name=summary,proto3" json:"summary,omitempty"` } func (x *MsgSubmitProposal) Reset() { @@ -14487,6 +14619,20 @@ func (x *MsgSubmitProposal) GetExec() Exec { return Exec_EXEC_UNSPECIFIED } +func (x *MsgSubmitProposal) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *MsgSubmitProposal) GetSummary() string { + if x != nil { + return x.Summary + } + return "" +} + // MsgSubmitProposalResponse is the Msg/SubmitProposal response type. type MsgSubmitProposalResponse struct { state protoimpl.MessageState @@ -15048,7 +15194,7 @@ var file_cosmos_group_v1_tx_proto_rawDesc = []byte{ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xb1, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, + 0x22, 0xe1, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4a, 0x0a, 0x14, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, @@ -15063,7 +15209,10 @@ var file_cosmos_group_v1_tx_proto_rawDesc = []byte{ 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x3a, 0x39, 0x88, 0xa0, 0x1f, 0x00, 0x82, + 0x78, 0x65, 0x63, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x39, 0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, diff --git a/api/cosmos/group/v1/types.pulsar.go b/api/cosmos/group/v1/types.pulsar.go index b7dc2df137cb..1ac5895d108d 100644 --- a/api/cosmos/group/v1/types.pulsar.go +++ b/api/cosmos/group/v1/types.pulsar.go @@ -4824,6 +4824,8 @@ var ( fd_Proposal_voting_period_end protoreflect.FieldDescriptor fd_Proposal_executor_result protoreflect.FieldDescriptor fd_Proposal_messages protoreflect.FieldDescriptor + fd_Proposal_title protoreflect.FieldDescriptor + fd_Proposal_summary protoreflect.FieldDescriptor ) func init() { @@ -4841,6 +4843,8 @@ func init() { fd_Proposal_voting_period_end = md_Proposal.Fields().ByName("voting_period_end") fd_Proposal_executor_result = md_Proposal.Fields().ByName("executor_result") fd_Proposal_messages = md_Proposal.Fields().ByName("messages") + fd_Proposal_title = md_Proposal.Fields().ByName("title") + fd_Proposal_summary = md_Proposal.Fields().ByName("summary") } var _ protoreflect.Message = (*fastReflection_Proposal)(nil) @@ -4980,6 +4984,18 @@ func (x *fastReflection_Proposal) Range(f func(protoreflect.FieldDescriptor, pro return } } + if x.Title != "" { + value := protoreflect.ValueOfString(x.Title) + if !f(fd_Proposal_title, value) { + return + } + } + if x.Summary != "" { + value := protoreflect.ValueOfString(x.Summary) + if !f(fd_Proposal_summary, value) { + return + } + } } // Has reports whether a field is populated. @@ -5019,6 +5035,10 @@ func (x *fastReflection_Proposal) Has(fd protoreflect.FieldDescriptor) bool { return x.ExecutorResult != 0 case "cosmos.group.v1.Proposal.messages": return len(x.Messages) != 0 + case "cosmos.group.v1.Proposal.title": + return x.Title != "" + case "cosmos.group.v1.Proposal.summary": + return x.Summary != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.Proposal")) @@ -5059,6 +5079,10 @@ func (x *fastReflection_Proposal) Clear(fd protoreflect.FieldDescriptor) { x.ExecutorResult = 0 case "cosmos.group.v1.Proposal.messages": x.Messages = nil + case "cosmos.group.v1.Proposal.title": + x.Title = "" + case "cosmos.group.v1.Proposal.summary": + x.Summary = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.Proposal")) @@ -5117,6 +5141,12 @@ func (x *fastReflection_Proposal) Get(descriptor protoreflect.FieldDescriptor) p } listValue := &_Proposal_12_list{list: &x.Messages} return protoreflect.ValueOfList(listValue) + case "cosmos.group.v1.Proposal.title": + value := x.Title + return protoreflect.ValueOfString(value) + case "cosmos.group.v1.Proposal.summary": + value := x.Summary + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.Proposal")) @@ -5165,6 +5195,10 @@ func (x *fastReflection_Proposal) Set(fd protoreflect.FieldDescriptor, value pro lv := value.List() clv := lv.(*_Proposal_12_list) x.Messages = *clv.list + case "cosmos.group.v1.Proposal.title": + x.Title = value.Interface().(string) + case "cosmos.group.v1.Proposal.summary": + x.Summary = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.Proposal")) @@ -5226,6 +5260,10 @@ func (x *fastReflection_Proposal) Mutable(fd protoreflect.FieldDescriptor) proto panic(fmt.Errorf("field status of message cosmos.group.v1.Proposal is not mutable")) case "cosmos.group.v1.Proposal.executor_result": panic(fmt.Errorf("field executor_result of message cosmos.group.v1.Proposal is not mutable")) + case "cosmos.group.v1.Proposal.title": + panic(fmt.Errorf("field title of message cosmos.group.v1.Proposal is not mutable")) + case "cosmos.group.v1.Proposal.summary": + panic(fmt.Errorf("field summary of message cosmos.group.v1.Proposal is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.Proposal")) @@ -5268,6 +5306,10 @@ func (x *fastReflection_Proposal) NewField(fd protoreflect.FieldDescriptor) prot case "cosmos.group.v1.Proposal.messages": list := []*anypb.Any{} return protoreflect.ValueOfList(&_Proposal_12_list{list: &list}) + case "cosmos.group.v1.Proposal.title": + return protoreflect.ValueOfString("") + case "cosmos.group.v1.Proposal.summary": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.group.v1.Proposal")) @@ -5384,6 +5426,14 @@ func (x *fastReflection_Proposal) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } + l = len(x.Title) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Summary) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -5413,6 +5463,20 @@ func (x *fastReflection_Proposal) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.Summary) > 0 { + i -= len(x.Summary) + copy(dAtA[i:], x.Summary) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Summary))) + i-- + dAtA[i] = 0x72 + } + if len(x.Title) > 0 { + i -= len(x.Title) + copy(dAtA[i:], x.Title) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Title))) + i-- + dAtA[i] = 0x6a + } if len(x.Messages) > 0 { for iNdEx := len(x.Messages) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.Messages[iNdEx]) @@ -5901,6 +5965,70 @@ func (x *fastReflection_Proposal) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 13: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Title", 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.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Summary", 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.Summary = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -7960,6 +8088,10 @@ type Proposal struct { ExecutorResult ProposalExecutorResult `protobuf:"varint,11,opt,name=executor_result,json=executorResult,proto3,enum=cosmos.group.v1.ProposalExecutorResult" json:"executor_result,omitempty"` // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. Messages []*anypb.Any `protobuf:"bytes,12,rep,name=messages,proto3" json:"messages,omitempty"` + // title is the title of the proposal + Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title,omitempty"` + // summary is a short summary of the proposal + Summary string `protobuf:"bytes,14,opt,name=summary,proto3" json:"summary,omitempty"` } func (x *Proposal) Reset() { @@ -8066,6 +8198,20 @@ func (x *Proposal) GetMessages() []*anypb.Any { return nil } +func (x *Proposal) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Proposal) GetSummary() string { + if x != nil { + return x.Summary + } + return "" +} + // TallyResult represents the sum of weighted votes for each vote option. type TallyResult struct { state protoimpl.MessageState @@ -8318,7 +8464,7 @@ var file_cosmos_group_v1_types_proto_rawDesc = []byte{ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, - 0xa0, 0x1f, 0x01, 0x22, 0xce, 0x05, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0xa0, 0x1f, 0x01, 0x22, 0xfe, 0x05, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4a, 0x0a, 0x14, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, @@ -8362,7 +8508,10 @@ var file_cosmos_group_v1_types_proto_rawDesc = []byte{ 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x04, + 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0x9d, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x79, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x79, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, diff --git a/proto/cosmos/group/v1/tx.proto b/proto/cosmos/group/v1/tx.proto index 67e489d9725c..7d33dd807bbb 100644 --- a/proto/cosmos/group/v1/tx.proto +++ b/proto/cosmos/group/v1/tx.proto @@ -81,7 +81,6 @@ message MsgCreateGroup { // MsgCreateGroupResponse is the Msg/CreateGroup response type. message MsgCreateGroupResponse { - // group_id is the unique ID of the newly created group. uint64 group_id = 1; } @@ -167,7 +166,6 @@ message MsgCreateGroupPolicy { // MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. message MsgCreateGroupPolicyResponse { - // address is the account address of the newly created group policy. string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; } @@ -218,7 +216,6 @@ message MsgCreateGroupWithPolicy { // MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. message MsgCreateGroupWithPolicyResponse { - // group_id is the unique ID of the newly created group with policy. uint64 group_id = 1; @@ -270,7 +267,6 @@ message MsgUpdateGroupPolicyMetadataResponse {} // Exec defines modes of execution of a proposal on creation or on new vote. enum Exec { - // An empty value means that there should be a separate // MsgExec request for the proposal to execute. EXEC_UNSPECIFIED = 0; @@ -306,11 +302,16 @@ message MsgSubmitProposal { // whether it should be executed immediately on creation or not. // If so, proposers signatures are considered as Yes votes. Exec exec = 5; + + // title is the title of the proposal. + string title = 6; + + // summary is the summary of the proposal. + string summary = 7; } // MsgSubmitProposalResponse is the Msg/SubmitProposal response type. message MsgSubmitProposalResponse { - // proposal is the unique ID of the proposal. uint64 proposal_id = 1; } diff --git a/proto/cosmos/group/v1/types.proto b/proto/cosmos/group/v1/types.proto index c5f05e2005c6..ba758557149b 100644 --- a/proto/cosmos/group/v1/types.proto +++ b/proto/cosmos/group/v1/types.proto @@ -15,7 +15,6 @@ import "amino/amino.proto"; // Member represents a group member with an account address, // non-zero weight, metadata and added_at timestamp. message Member { - // address is the member's account address. string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -34,7 +33,6 @@ message Member { // Contrary to `Member`, it doesn't have any `added_at` field // since this field cannot be set as part of requests. message MemberRequest { - // address is the member's account address. string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -126,7 +124,6 @@ enum VoteOption { // GroupInfo represents the high-level on-chain information for a group. message GroupInfo { - // id is the unique ID of the group. uint64 id = 1; @@ -152,7 +149,6 @@ message GroupInfo { // GroupMember represents the relationship between a group and a member. message GroupMember { - // group_id is the unique ID of the group. uint64 group_id = 1; @@ -244,6 +240,12 @@ message Proposal { // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. repeated google.protobuf.Any messages = 12; + + // title is the title of the proposal + string title = 13; + + // summary is a short summary of the proposal + string summary = 14; } // ProposalStatus defines proposal statuses. @@ -309,7 +311,6 @@ message TallyResult { // Vote represents a vote for a proposal. message Vote { - // proposal is the unique ID of the proposal. uint64 proposal_id = 1; diff --git a/x/group/tx.pb.go b/x/group/tx.pb.go index a7b8a9b596f9..cea7c4ccabe5 100644 --- a/x/group/tx.pb.go +++ b/x/group/tx.pb.go @@ -975,6 +975,10 @@ type MsgSubmitProposal struct { // whether it should be executed immediately on creation or not. // If so, proposers signatures are considered as Yes votes. Exec Exec `protobuf:"varint,5,opt,name=exec,proto3,enum=cosmos.group.v1.Exec" json:"exec,omitempty"` + // title is the title of the proposal. + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + // summary is the summary of the proposal. + Summary string `protobuf:"bytes,7,opt,name=summary,proto3" json:"summary,omitempty"` } func (m *MsgSubmitProposal) Reset() { *m = MsgSubmitProposal{} } @@ -1496,96 +1500,98 @@ func init() { func init() { proto.RegisterFile("cosmos/group/v1/tx.proto", fileDescriptor_6b8d3d629f136420) } var fileDescriptor_6b8d3d629f136420 = []byte{ - // 1413 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xda, 0x6e, 0x3e, 0x5e, 0xa8, 0x9b, 0x6c, 0x93, 0xd6, 0xd9, 0xb6, 0x6b, 0x77, 0x9a, - 0x36, 0xa9, 0x55, 0xdb, 0x8d, 0x43, 0x2b, 0x61, 0x10, 0xa8, 0x49, 0x0d, 0x0a, 0xc2, 0x10, 0x6d, - 0x5b, 0x0a, 0x5c, 0xcc, 0xc6, 0xbb, 0xdd, 0xae, 0x88, 0xbd, 0xc6, 0xb3, 0x4e, 0x93, 0x1b, 0x1f, - 0x17, 0xe8, 0x05, 0x24, 0xf8, 0x03, 0xe0, 0xc6, 0xb1, 0x48, 0x3d, 0x70, 0xe3, 0x86, 0xaa, 0x72, - 0xa9, 0x38, 0x71, 0x42, 0xa8, 0x15, 0xea, 0x8d, 0x7f, 0x01, 0xb4, 0x33, 0xbb, 0xe3, 0x1d, 0xef, - 0xae, 0xd7, 0xb1, 0x2c, 0xb8, 0x44, 0xd9, 0x79, 0xbf, 0xf7, 0xf5, 0x9b, 0x37, 0xef, 0xcd, 0x18, - 0x32, 0x0d, 0x0b, 0x37, 0x2d, 0x5c, 0x32, 0x3a, 0x56, 0xb7, 0x5d, 0xda, 0x5b, 0x2b, 0xd9, 0xfb, - 0xc5, 0x76, 0xc7, 0xb2, 0x2d, 0xf1, 0x18, 0x95, 0x14, 0x89, 0xa4, 0xb8, 0xb7, 0x26, 0x2d, 0x18, - 0x96, 0x61, 0x11, 0x59, 0xc9, 0xf9, 0x8f, 0xc2, 0xa4, 0x25, 0x0a, 0xab, 0x53, 0x81, 0xab, 0xe3, - 0x8a, 0x0c, 0xcb, 0x32, 0x76, 0xf5, 0x12, 0xf9, 0xda, 0xe9, 0xde, 0x29, 0xa9, 0xad, 0x03, 0x57, - 0x74, 0x2a, 0xe0, 0xf6, 0xa0, 0xad, 0x7b, 0x7a, 0x27, 0x5d, 0x61, 0x13, 0x1b, 0x8e, 0xa8, 0x89, - 0x0d, 0x57, 0x30, 0xaf, 0x36, 0xcd, 0x96, 0x55, 0x22, 0x7f, 0xe9, 0x12, 0xfa, 0x55, 0x80, 0x74, - 0x0d, 0x1b, 0x9b, 0x1d, 0x5d, 0xb5, 0xf5, 0x37, 0x1c, 0x6b, 0x62, 0x11, 0x8e, 0xa8, 0x5a, 0xd3, - 0x6c, 0x65, 0x84, 0x9c, 0xb0, 0x3a, 0xb3, 0x91, 0xf9, 0xed, 0x61, 0x61, 0xc1, 0x8d, 0xeb, 0x9a, - 0xa6, 0x75, 0x74, 0x8c, 0x6f, 0xd8, 0x1d, 0xb3, 0x65, 0x28, 0x14, 0x26, 0x6e, 0xc2, 0x54, 0x53, - 0x6f, 0xee, 0xe8, 0x1d, 0x9c, 0x49, 0xe4, 0x92, 0xab, 0xb3, 0x65, 0xb9, 0xd8, 0x97, 0x7a, 0xb1, - 0x46, 0xe4, 0x8a, 0xfe, 0x71, 0x57, 0xc7, 0xf6, 0xc6, 0xcc, 0xa3, 0x3f, 0xb2, 0x13, 0x3f, 0x3c, - 0x7f, 0x90, 0x17, 0x14, 0x4f, 0x53, 0x94, 0x60, 0xba, 0xa9, 0xdb, 0xaa, 0xa6, 0xda, 0x6a, 0x26, - 0xe9, 0xf8, 0x55, 0xd8, 0x77, 0x65, 0xf5, 0xb3, 0xe7, 0x0f, 0xf2, 0xd4, 0xd9, 0xfd, 0xe7, 0x0f, - 0xf2, 0x2e, 0x63, 0x05, 0xac, 0x7d, 0x54, 0xe2, 0x43, 0x47, 0xeb, 0x70, 0x82, 0x5f, 0x51, 0x74, - 0xdc, 0xb6, 0x5a, 0x58, 0x17, 0x97, 0x60, 0x9a, 0x44, 0x53, 0x37, 0x35, 0x92, 0x57, 0x4a, 0x99, - 0x22, 0xdf, 0x5b, 0x1a, 0xfa, 0x4b, 0x80, 0xc5, 0x1a, 0x36, 0x6e, 0xb5, 0x35, 0x4f, 0xab, 0xe6, - 0x06, 0x75, 0x58, 0x26, 0xfc, 0x4e, 0x12, 0x9c, 0x13, 0x71, 0x1b, 0xd2, 0x34, 0xd5, 0x7a, 0x97, - 0xf8, 0xc1, 0x99, 0xe4, 0x61, 0xb9, 0x3a, 0x4a, 0x0d, 0xd0, 0x38, 0x71, 0xa5, 0xc4, 0xb3, 0x92, - 0xe3, 0x59, 0x09, 0x66, 0x83, 0xb2, 0x70, 0x26, 0x54, 0xe0, 0x71, 0x84, 0x7e, 0x11, 0xe0, 0x38, - 0x8f, 0xb8, 0x46, 0xd2, 0x1a, 0x23, 0x0d, 0x57, 0x60, 0xa6, 0xa5, 0xdf, 0xab, 0x53, 0x73, 0xc9, - 0x18, 0x73, 0xd3, 0x2d, 0xfd, 0x1e, 0x89, 0xa0, 0x52, 0xe0, 0x73, 0x95, 0x23, 0x73, 0x25, 0x70, - 0x74, 0x06, 0x4e, 0x85, 0x2c, 0xb3, 0x3c, 0x7f, 0x14, 0x48, 0x99, 0x70, 0x4c, 0xd0, 0x52, 0x1b, - 0x67, 0xaa, 0x83, 0x2a, 0xfa, 0x32, 0x9f, 0xcf, 0xd9, 0x01, 0x7b, 0x47, 0x35, 0x50, 0x0e, 0xe4, - 0x70, 0x09, 0xcb, 0xea, 0xdb, 0x04, 0x2c, 0xf0, 0xc5, 0xbf, 0x6d, 0xed, 0x9a, 0x8d, 0x83, 0xff, - 0x28, 0x27, 0x51, 0x85, 0x63, 0x9a, 0xde, 0x30, 0xb1, 0x69, 0xb5, 0xea, 0x6d, 0xe2, 0x39, 0x93, - 0xca, 0x09, 0xab, 0xb3, 0xe5, 0x85, 0x22, 0xed, 0x63, 0x45, 0xaf, 0x8f, 0x15, 0xaf, 0xb5, 0x0e, - 0x36, 0xd0, 0xe3, 0x87, 0x05, 0xb9, 0xbf, 0xf6, 0xaf, 0xbb, 0x06, 0x68, 0xe4, 0x4a, 0x5a, 0xe3, - 0xbe, 0x2b, 0xe5, 0x2f, 0xbe, 0xcb, 0x4e, 0xf0, 0xd4, 0x65, 0x23, 0x9b, 0x01, 0xd5, 0x41, 0x0a, - 0x9c, 0x0e, 0x5b, 0x67, 0x8d, 0xa1, 0x0c, 0x53, 0x2a, 0x65, 0x21, 0x96, 0x1f, 0x0f, 0x88, 0x3e, - 0x4f, 0xc0, 0x12, 0xbf, 0x1b, 0xd4, 0xe8, 0x68, 0xc7, 0xe5, 0x4d, 0x58, 0xa0, 0x7c, 0x53, 0xd6, - 0xea, 0x5e, 0x38, 0x89, 0x18, 0x75, 0xd1, 0xf0, 0x7b, 0x26, 0x92, 0x51, 0xcf, 0xd7, 0x3a, 0x4f, - 0xea, 0x72, 0x64, 0x3d, 0xfa, 0xf2, 0x44, 0xe7, 0xe0, 0x6c, 0xa4, 0x90, 0x55, 0xe5, 0x4f, 0x49, - 0xc8, 0xf0, 0xfc, 0xdf, 0x36, 0xed, 0xbb, 0x23, 0x56, 0xe6, 0x58, 0x26, 0xcd, 0x79, 0x48, 0x53, - 0xba, 0xfb, 0x2a, 0xf9, 0xa8, 0xc1, 0x75, 0x82, 0x32, 0x2c, 0x72, 0xbb, 0xc2, 0xd0, 0x29, 0x82, - 0x3e, 0xee, 0x23, 0x9f, 0xe9, 0xac, 0xf5, 0xe9, 0xa8, 0xd8, 0xdd, 0x89, 0x23, 0x39, 0x61, 0x75, - 0x9a, 0xdf, 0x30, 0x4c, 0x8b, 0x25, 0xe4, 0xd4, 0x4c, 0x8e, 0xf9, 0xd4, 0x5c, 0x0d, 0x9e, 0x9a, - 0x73, 0x91, 0xa7, 0xa6, 0xb7, 0x3b, 0xe8, 0x4b, 0x01, 0x72, 0x51, 0xc2, 0x21, 0xe6, 0xea, 0x38, - 0xeb, 0x1a, 0xfd, 0x9c, 0x00, 0x14, 0x56, 0x6c, 0x7c, 0xea, 0xff, 0xeb, 0xd1, 0x0b, 0xd9, 0xc9, - 0xe4, 0x98, 0x77, 0xb2, 0x12, 0xdc, 0xc9, 0x95, 0xc8, 0xa3, 0xca, 0xdb, 0x42, 0x97, 0x20, 0x1f, - 0x4f, 0x20, 0x3b, 0xb6, 0x7f, 0x0b, 0xa4, 0x6d, 0x06, 0xe0, 0x23, 0x0f, 0xca, 0x71, 0x32, 0x3d, - 0x68, 0xb2, 0x5e, 0x1d, 0x96, 0x1e, 0x3e, 0x1f, 0x74, 0x01, 0x96, 0x07, 0xc9, 0x7b, 0x77, 0x87, - 0x04, 0xcc, 0xd7, 0xb0, 0x71, 0xa3, 0xbb, 0xd3, 0x34, 0xed, 0xed, 0x8e, 0xd5, 0xb6, 0xb0, 0xba, - 0x1b, 0x99, 0x9d, 0x30, 0x42, 0x76, 0xa7, 0x61, 0xa6, 0x4d, 0xec, 0x7a, 0x6d, 0x6e, 0x46, 0xe9, - 0x2d, 0x0c, 0x9c, 0xc0, 0x97, 0x1d, 0x19, 0xc6, 0xaa, 0xa1, 0xe3, 0x4c, 0x8a, 0xf4, 0xc7, 0xd0, - 0xd2, 0x53, 0x18, 0x4a, 0xbc, 0x08, 0x29, 0x7d, 0x5f, 0x6f, 0x90, 0xfe, 0x94, 0x2e, 0x2f, 0x06, - 0xba, 0x69, 0x75, 0x5f, 0x6f, 0x28, 0x04, 0x52, 0x79, 0xc9, 0xab, 0xbd, 0x5e, 0x30, 0x0e, 0xc1, - 0xc8, 0x47, 0x30, 0x7d, 0x8c, 0x04, 0xd8, 0x41, 0xaf, 0x90, 0x69, 0xc9, 0x2f, 0xb2, 0x06, 0x92, - 0x85, 0xd9, 0xb6, 0xbb, 0xd6, 0xeb, 0x21, 0xe0, 0x2d, 0x6d, 0x69, 0xe8, 0x7b, 0x7a, 0x2b, 0x75, - 0x7a, 0x8f, 0xd6, 0x51, 0xef, 0x31, 0xce, 0xe3, 0x14, 0xfd, 0x93, 0x3d, 0x31, 0xe4, 0x64, 0xaf, - 0x5c, 0x71, 0x32, 0xf4, 0xbe, 0xfa, 0x47, 0x21, 0xcb, 0xaf, 0x3f, 0x16, 0xf7, 0xc2, 0xd9, 0xbf, - 0xcc, 0x8a, 0xe6, 0x1f, 0x01, 0xa6, 0x6a, 0xd8, 0x78, 0xd7, 0xb2, 0xe3, 0xf3, 0x75, 0x4e, 0xd6, - 0x9e, 0x65, 0xeb, 0x9d, 0xd8, 0xa0, 0x29, 0x4c, 0x5c, 0x87, 0x49, 0xab, 0x6d, 0x9b, 0x16, 0x9d, - 0xf7, 0xe9, 0xf2, 0xa9, 0xc0, 0x2e, 0x3a, 0x7e, 0xdf, 0x21, 0x10, 0xc5, 0x85, 0x72, 0x65, 0x94, - 0xea, 0x2b, 0xa3, 0x43, 0x14, 0xc5, 0x0a, 0x39, 0x6d, 0x24, 0x0e, 0x87, 0xac, 0x4c, 0x18, 0x59, - 0x8e, 0x77, 0x34, 0x0f, 0xc7, 0xdc, 0x7f, 0x19, 0x29, 0xf7, 0x29, 0x29, 0x8e, 0xb5, 0x78, 0x52, - 0x5e, 0x84, 0x69, 0xc7, 0x61, 0xd7, 0xb6, 0xe2, 0x79, 0x61, 0x48, 0xfa, 0x70, 0x9c, 0xc4, 0xa6, - 0xd1, 0x1a, 0x10, 0x9f, 0x13, 0x00, 0x52, 0x48, 0x7c, 0x24, 0x33, 0xaf, 0x30, 0x5f, 0x83, 0xc9, - 0x8e, 0x8e, 0xbb, 0xbb, 0x36, 0x71, 0x98, 0x2e, 0xaf, 0x04, 0x88, 0xf0, 0xf6, 0xb9, 0xea, 0xfa, - 0x53, 0x08, 0x5c, 0x71, 0xd5, 0xd0, 0x57, 0x02, 0x1c, 0xad, 0x61, 0xe3, 0x2d, 0x5d, 0xdd, 0x73, - 0x5f, 0xd6, 0x23, 0xdc, 0x35, 0x07, 0xdc, 0xc6, 0xe9, 0x0b, 0xd0, 0x5f, 0xac, 0x72, 0x58, 0x7e, - 0x3d, 0xff, 0xe8, 0x24, 0x79, 0xe8, 0xf6, 0x16, 0xbc, 0x5c, 0xf3, 0x79, 0x48, 0x91, 0x7d, 0x58, - 0x80, 0xb9, 0xea, 0x7b, 0xd5, 0xcd, 0xfa, 0xad, 0xb7, 0x6f, 0x6c, 0x57, 0x37, 0xb7, 0x5e, 0xdf, - 0xaa, 0x5e, 0x9f, 0x9b, 0x10, 0x5f, 0x80, 0x69, 0xb2, 0x7a, 0x53, 0x79, 0x7f, 0x4e, 0x28, 0x3f, - 0x9e, 0x85, 0x64, 0x0d, 0x1b, 0xe2, 0x6d, 0x98, 0xf5, 0xff, 0x6a, 0x90, 0x0d, 0x5e, 0xc5, 0xb8, - 0xbb, 0x83, 0xb4, 0x12, 0x03, 0x60, 0xc4, 0xef, 0x82, 0x18, 0xf2, 0x16, 0xbf, 0x10, 0xa6, 0x1e, - 0xc4, 0x49, 0xc5, 0xe1, 0x70, 0xcc, 0xdb, 0x1d, 0x98, 0x0b, 0x3c, 0x78, 0x97, 0x63, 0x6c, 0x10, - 0x94, 0x74, 0x69, 0x18, 0x14, 0xf3, 0x63, 0xc1, 0xf1, 0xb0, 0x07, 0xe7, 0x4a, 0x6c, 0xb8, 0x14, - 0x28, 0x95, 0x86, 0x04, 0x32, 0x87, 0x26, 0xcc, 0x07, 0xdf, 0x82, 0xe7, 0x63, 0x36, 0x81, 0xc2, - 0xa4, 0xc2, 0x50, 0x30, 0xe6, 0xaa, 0x0b, 0x8b, 0xe1, 0x17, 0xfc, 0x8b, 0x31, 0x76, 0x7a, 0x50, - 0x69, 0x6d, 0x68, 0x28, 0x73, 0xbb, 0x0f, 0x27, 0x22, 0x9e, 0x60, 0xf9, 0x18, 0xb2, 0x7c, 0x58, - 0xa9, 0x3c, 0x3c, 0x96, 0x79, 0xfe, 0x46, 0x80, 0x6c, 0xdc, 0x5d, 0x74, 0x7d, 0x28, 0xbb, 0xbc, - 0x92, 0xf4, 0xf2, 0x08, 0x4a, 0x2c, 0xaa, 0x4f, 0x05, 0x58, 0x8a, 0xbe, 0xb1, 0x15, 0x86, 0x32, - 0xcd, 0xea, 0xed, 0xca, 0xa1, 0xe0, 0x2c, 0x86, 0x0f, 0x21, 0xdd, 0x77, 0x37, 0x42, 0x61, 0x86, - 0x78, 0x8c, 0x94, 0x8f, 0xc7, 0xf8, 0x0f, 0x6c, 0xe0, 0x2e, 0x10, 0x7a, 0x60, 0xfb, 0x51, 0xe1, - 0x07, 0x36, 0x6a, 0x68, 0x8b, 0x1b, 0x90, 0x22, 0x03, 0x3b, 0x13, 0xa6, 0xe5, 0x48, 0xa4, 0x5c, - 0x94, 0xc4, 0x6f, 0x83, 0xf4, 0xd5, 0x50, 0x1b, 0x8e, 0x24, 0xdc, 0x06, 0x37, 0x87, 0x6e, 0x02, - 0xf8, 0x46, 0x88, 0x1c, 0x86, 0xef, 0xc9, 0xa5, 0x0b, 0x83, 0xe5, 0x9e, 0x55, 0xe9, 0xc8, 0x27, - 0xce, 0xab, 0x78, 0xe3, 0xd5, 0x47, 0x4f, 0x65, 0xe1, 0xc9, 0x53, 0x59, 0xf8, 0xf3, 0xa9, 0x2c, - 0x7c, 0xfd, 0x4c, 0x9e, 0x78, 0xf2, 0x4c, 0x9e, 0xf8, 0xfd, 0x99, 0x3c, 0xf1, 0xc1, 0xb2, 0x61, - 0xda, 0x77, 0xbb, 0x3b, 0xc5, 0x86, 0xd5, 0x74, 0x7f, 0x95, 0x2e, 0xf9, 0xa6, 0xcb, 0x3e, 0x9d, - 0x2f, 0x3b, 0x93, 0xe4, 0x62, 0xb9, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0xc2, 0xe7, - 0xa7, 0x07, 0x17, 0x00, 0x00, + // 1443 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xda, 0xce, 0xaf, 0x97, 0x6f, 0xdd, 0x64, 0x9b, 0xb4, 0x9b, 0x6d, 0x6b, 0xbb, 0xd3, + 0xb4, 0x49, 0xad, 0xc6, 0x6e, 0x9c, 0x6f, 0x2b, 0x61, 0x10, 0xa8, 0x49, 0x0d, 0x0a, 0xc2, 0x10, + 0x6d, 0x5b, 0x0a, 0x5c, 0xcc, 0x26, 0xde, 0x6e, 0x57, 0x64, 0xbd, 0xc6, 0xb3, 0x4e, 0x93, 0x1b, + 0x3f, 0x2e, 0xd0, 0x0b, 0x48, 0xf0, 0x07, 0xc0, 0x8d, 0x63, 0x91, 0x7a, 0xe0, 0xc6, 0x0d, 0x55, + 0xe5, 0x52, 0x71, 0xe2, 0x84, 0xa0, 0x15, 0xea, 0x8d, 0x7f, 0x01, 0xb4, 0x33, 0xbb, 0xe3, 0x1d, + 0xef, 0xae, 0x77, 0x6b, 0x59, 0x70, 0x89, 0xb2, 0xf3, 0x3e, 0xef, 0xd7, 0xe7, 0xbd, 0x79, 0x33, + 0x63, 0x90, 0x76, 0x2d, 0x6c, 0x5a, 0xb8, 0xac, 0x77, 0xac, 0x6e, 0xbb, 0xbc, 0xbf, 0x56, 0xb6, + 0x0f, 0x4a, 0xed, 0x8e, 0x65, 0x5b, 0xe2, 0x51, 0x2a, 0x29, 0x11, 0x49, 0x69, 0x7f, 0x4d, 0x9e, + 0xd7, 0x2d, 0xdd, 0x22, 0xb2, 0xb2, 0xf3, 0x1f, 0x85, 0xc9, 0x8b, 0x14, 0xd6, 0xa0, 0x02, 0x57, + 0xc7, 0x15, 0xe9, 0x96, 0xa5, 0xef, 0x69, 0x65, 0xf2, 0xb5, 0xd3, 0xbd, 0x5d, 0x56, 0x5b, 0x87, + 0xae, 0xe8, 0x64, 0xc0, 0xed, 0x61, 0x5b, 0xf3, 0xf4, 0x4e, 0xb8, 0x42, 0x13, 0xeb, 0x8e, 0xc8, + 0xc4, 0xba, 0x2b, 0x98, 0x53, 0x4d, 0xa3, 0x65, 0x95, 0xc9, 0x5f, 0xba, 0x84, 0x7e, 0x16, 0x20, + 0x5b, 0xc7, 0xfa, 0x66, 0x47, 0x53, 0x6d, 0xed, 0x35, 0xc7, 0x9a, 0x58, 0x82, 0x71, 0xb5, 0x69, + 0x1a, 0x2d, 0x49, 0x28, 0x08, 0x2b, 0xd3, 0x1b, 0xd2, 0x2f, 0x0f, 0x56, 0xe7, 0xdd, 0xb8, 0xae, + 0x36, 0x9b, 0x1d, 0x0d, 0xe3, 0xeb, 0x76, 0xc7, 0x68, 0xe9, 0x0a, 0x85, 0x89, 0x9b, 0x30, 0x69, + 0x6a, 0xe6, 0x8e, 0xd6, 0xc1, 0x52, 0xaa, 0x90, 0x5e, 0x99, 0xa9, 0xe4, 0x4a, 0x7d, 0xa9, 0x97, + 0xea, 0x44, 0xae, 0x68, 0x1f, 0x76, 0x35, 0x6c, 0x6f, 0x4c, 0x3f, 0xfc, 0x2d, 0x3f, 0xf6, 0xdd, + 0xb3, 0xfb, 0x45, 0x41, 0xf1, 0x34, 0x45, 0x19, 0xa6, 0x4c, 0xcd, 0x56, 0x9b, 0xaa, 0xad, 0x4a, + 0x69, 0xc7, 0xaf, 0xc2, 0xbe, 0xab, 0x2b, 0x9f, 0x3c, 0xbb, 0x5f, 0xa4, 0xce, 0xee, 0x3d, 0xbb, + 0x5f, 0x74, 0x19, 0x5b, 0xc5, 0xcd, 0x0f, 0xca, 0x7c, 0xe8, 0x68, 0x1d, 0x8e, 0xf3, 0x2b, 0x8a, + 0x86, 0xdb, 0x56, 0x0b, 0x6b, 0xe2, 0x22, 0x4c, 0x91, 0x68, 0x1a, 0x46, 0x93, 0xe4, 0x95, 0x51, + 0x26, 0xc9, 0xf7, 0x56, 0x13, 0xfd, 0x29, 0xc0, 0x42, 0x1d, 0xeb, 0x37, 0xdb, 0x4d, 0x4f, 0xab, + 0xee, 0x06, 0xf5, 0xbc, 0x4c, 0xf8, 0x9d, 0xa4, 0x38, 0x27, 0xe2, 0x36, 0x64, 0x69, 0xaa, 0x8d, + 0x2e, 0xf1, 0x83, 0xa5, 0xf4, 0xf3, 0x72, 0x75, 0x84, 0x1a, 0xa0, 0x71, 0xe2, 0x6a, 0x99, 0x67, + 0xa5, 0xc0, 0xb3, 0x12, 0xcc, 0x06, 0xe5, 0xe1, 0x74, 0xa8, 0xc0, 0xe3, 0x08, 0xfd, 0x24, 0xc0, + 0x31, 0x1e, 0x71, 0x95, 0xa4, 0x35, 0x42, 0x1a, 0x2e, 0xc3, 0x74, 0x4b, 0xbb, 0xdb, 0xa0, 0xe6, + 0xd2, 0x31, 0xe6, 0xa6, 0x5a, 0xda, 0x5d, 0x12, 0x41, 0x75, 0x95, 0xcf, 0x35, 0x17, 0x99, 0x2b, + 0x81, 0xa3, 0xd3, 0x70, 0x32, 0x64, 0x99, 0xe5, 0xf9, 0xbd, 0x40, 0xda, 0x84, 0x63, 0x82, 0xb6, + 0xda, 0x28, 0x53, 0x1d, 0xd4, 0xd1, 0x97, 0xf8, 0x7c, 0xce, 0x0c, 0xa8, 0x1d, 0xd5, 0x40, 0x05, + 0xc8, 0x85, 0x4b, 0x58, 0x56, 0x5f, 0xa7, 0x60, 0x9e, 0x6f, 0xfe, 0x6d, 0x6b, 0xcf, 0xd8, 0x3d, + 0xfc, 0x97, 0x72, 0x12, 0x55, 0x38, 0xda, 0xd4, 0x76, 0x0d, 0x6c, 0x58, 0xad, 0x46, 0x9b, 0x78, + 0x96, 0x32, 0x05, 0x61, 0x65, 0xa6, 0x32, 0x5f, 0xa2, 0x73, 0xac, 0xe4, 0xcd, 0xb1, 0xd2, 0xd5, + 0xd6, 0xe1, 0x06, 0x7a, 0xf4, 0x60, 0x35, 0xd7, 0xdf, 0xfb, 0xd7, 0x5c, 0x03, 0x34, 0x72, 0x25, + 0xdb, 0xe4, 0xbe, 0xab, 0x95, 0xcf, 0xbe, 0xc9, 0x8f, 0xf1, 0xd4, 0xe5, 0x23, 0x87, 0x01, 0xd5, + 0x41, 0x0a, 0x9c, 0x0a, 0x5b, 0x67, 0x83, 0xa1, 0x02, 0x93, 0x2a, 0x65, 0x21, 0x96, 0x1f, 0x0f, + 0x88, 0x3e, 0x4d, 0xc1, 0x22, 0x5f, 0x0d, 0x6a, 0x74, 0xb8, 0xed, 0xf2, 0x3a, 0xcc, 0x53, 0xbe, + 0x29, 0x6b, 0x0d, 0x2f, 0x9c, 0x54, 0x8c, 0xba, 0xa8, 0xfb, 0x3d, 0x13, 0xc9, 0xb0, 0xfb, 0x6b, + 0x9d, 0x27, 0x75, 0x29, 0xb2, 0x1f, 0x7d, 0x79, 0xa2, 0xb3, 0x70, 0x26, 0x52, 0xc8, 0xba, 0xf2, + 0x87, 0x34, 0x48, 0x3c, 0xff, 0xb7, 0x0c, 0xfb, 0xce, 0x90, 0x9d, 0x39, 0x92, 0x93, 0xe6, 0x1c, + 0x64, 0x29, 0xdd, 0x7d, 0x9d, 0x7c, 0x44, 0xe7, 0x26, 0x41, 0x05, 0x16, 0xb8, 0xaa, 0x30, 0x74, + 0x86, 0xa0, 0x8f, 0xf9, 0xc8, 0x67, 0x3a, 0x6b, 0x7d, 0x3a, 0x2a, 0x76, 0x2b, 0x31, 0x5e, 0x10, + 0x56, 0xa6, 0xf8, 0x82, 0x61, 0xda, 0x2c, 0x21, 0xbb, 0x66, 0x62, 0xc4, 0xbb, 0xe6, 0x4a, 0x70, + 0xd7, 0x9c, 0x8d, 0xdc, 0x35, 0xbd, 0xea, 0xa0, 0xcf, 0x05, 0x28, 0x44, 0x09, 0x13, 0x9c, 0xab, + 0xa3, 0xec, 0x6b, 0xf4, 0x63, 0x0a, 0x50, 0x58, 0xb3, 0xf1, 0xa9, 0xff, 0xa7, 0x5b, 0x2f, 0xa4, + 0x92, 0xe9, 0x11, 0x57, 0xb2, 0x1a, 0xac, 0xe4, 0x72, 0xe4, 0x56, 0xe5, 0x6d, 0xa1, 0x8b, 0x50, + 0x8c, 0x27, 0x90, 0x6d, 0xdb, 0xbf, 0x04, 0x32, 0x36, 0x03, 0xf0, 0xa1, 0x0f, 0xca, 0x51, 0x32, + 0x3d, 0xe8, 0x64, 0xbd, 0x92, 0x94, 0x1e, 0x3e, 0x1f, 0x74, 0x1e, 0x96, 0x06, 0xc9, 0x19, 0x31, + 0x7f, 0xa4, 0x60, 0xae, 0x8e, 0xf5, 0xeb, 0xdd, 0x1d, 0xd3, 0xb0, 0xb7, 0x3b, 0x56, 0xdb, 0xc2, + 0xea, 0x5e, 0x64, 0x76, 0xc2, 0x10, 0xd9, 0x9d, 0x82, 0xe9, 0x36, 0xb1, 0xeb, 0x8d, 0xb9, 0x69, + 0xa5, 0xb7, 0x30, 0xf0, 0x04, 0xbe, 0xe4, 0xc8, 0x30, 0x56, 0x75, 0x0d, 0x4b, 0x19, 0x32, 0x1f, + 0x43, 0x5b, 0x4f, 0x61, 0x28, 0xf1, 0x02, 0x64, 0xb4, 0x03, 0x6d, 0x97, 0xcc, 0xa7, 0x6c, 0x65, + 0x21, 0x30, 0x4d, 0x6b, 0x07, 0xda, 0xae, 0x42, 0x20, 0xe2, 0x3c, 0x8c, 0xdb, 0x86, 0xbd, 0xa7, + 0x91, 0xf1, 0x34, 0xad, 0xd0, 0x0f, 0x51, 0x82, 0x49, 0xdc, 0x35, 0x4d, 0xb5, 0x73, 0x28, 0x4d, + 0x92, 0x75, 0xef, 0xb3, 0xfa, 0x82, 0xd7, 0xab, 0xbd, 0xe0, 0x9d, 0x82, 0x20, 0x5f, 0x41, 0xe8, + 0xe3, 0x25, 0xc0, 0x26, 0x7a, 0x89, 0x9c, 0xae, 0xfc, 0x22, 0x1b, 0x38, 0x79, 0x98, 0x69, 0xbb, + 0x6b, 0xbd, 0x99, 0x03, 0xde, 0xd2, 0x56, 0x13, 0x7d, 0x4b, 0x6f, 0xb1, 0xce, 0xac, 0x6a, 0x76, + 0xd4, 0xbb, 0xac, 0x46, 0x71, 0x8a, 0xfe, 0x9b, 0x40, 0x2a, 0xe1, 0x4d, 0xa0, 0x7a, 0xd9, 0xc9, + 0xd0, 0xfb, 0xea, 0x3f, 0x3a, 0x59, 0x7e, 0xfd, 0xb1, 0xb8, 0x17, 0xd4, 0xfe, 0x65, 0xd6, 0x64, + 0x7f, 0x0b, 0x30, 0x59, 0xc7, 0xfa, 0xdb, 0x96, 0x1d, 0x9f, 0xaf, 0xb3, 0x13, 0xf7, 0x2d, 0x5b, + 0xeb, 0xc4, 0x06, 0x4d, 0x61, 0xe2, 0x3a, 0x4c, 0x58, 0x6d, 0xdb, 0xb0, 0xe8, 0xfd, 0x20, 0x5b, + 0x39, 0x19, 0xa8, 0xba, 0xe3, 0xf7, 0x2d, 0x02, 0x51, 0x5c, 0x28, 0xd7, 0x76, 0x99, 0xbe, 0xb6, + 0x4b, 0xde, 0x44, 0xd5, 0x65, 0xb2, 0x3b, 0x49, 0x1c, 0x0e, 0x59, 0x52, 0x18, 0x59, 0x8e, 0x77, + 0x34, 0x07, 0x47, 0xdd, 0x7f, 0x19, 0x29, 0xf7, 0x28, 0x29, 0x8e, 0xb5, 0x78, 0x52, 0xfe, 0x0f, + 0x53, 0x8e, 0xc3, 0xae, 0x6d, 0xc5, 0xf3, 0xc2, 0x90, 0xf4, 0xa1, 0x39, 0x81, 0x0d, 0xbd, 0x35, + 0x20, 0x3e, 0x27, 0x00, 0xa4, 0x90, 0xf8, 0x48, 0x66, 0x5e, 0x63, 0xbe, 0x02, 0x13, 0x1d, 0x0d, + 0x77, 0xf7, 0x6c, 0xe2, 0x30, 0x5b, 0x59, 0x0e, 0x10, 0xe1, 0xd5, 0xb9, 0xe6, 0xfa, 0x53, 0x08, + 0x5c, 0x71, 0xd5, 0xd0, 0x17, 0x02, 0x1c, 0xa9, 0x63, 0xfd, 0x0d, 0x4d, 0xdd, 0x77, 0x5f, 0xe2, + 0x43, 0xdc, 0x4d, 0x07, 0xdc, 0xde, 0xe9, 0x8b, 0xd1, 0xdf, 0xac, 0xb9, 0xb0, 0xfc, 0x7a, 0xfe, + 0xd1, 0x09, 0xf2, 0x30, 0xee, 0x2d, 0x78, 0xb9, 0x16, 0x8b, 0x90, 0xa9, 0xd1, 0xa1, 0x30, 0x5b, + 0x7b, 0xa7, 0xb6, 0xd9, 0xb8, 0xf9, 0xe6, 0xf5, 0xed, 0xda, 0xe6, 0xd6, 0xab, 0x5b, 0xb5, 0x6b, + 0xb3, 0x63, 0xe2, 0xff, 0x60, 0x8a, 0xac, 0xde, 0x50, 0xde, 0x9d, 0x15, 0x2a, 0x8f, 0x66, 0x20, + 0x5d, 0xc7, 0xba, 0x78, 0x0b, 0x66, 0xfc, 0xbf, 0x32, 0xe4, 0x83, 0x57, 0x37, 0xee, 0xae, 0x21, + 0x2f, 0xc7, 0x00, 0x18, 0xf1, 0x7b, 0x20, 0x86, 0xbc, 0xdd, 0xcf, 0x87, 0xa9, 0x07, 0x71, 0x72, + 0x29, 0x19, 0x8e, 0x79, 0xbb, 0x0d, 0xb3, 0x81, 0x07, 0xf2, 0x52, 0x8c, 0x0d, 0x82, 0x92, 0x2f, + 0x26, 0x41, 0x31, 0x3f, 0x16, 0x1c, 0x0b, 0x7b, 0xa0, 0x2e, 0xc7, 0x86, 0x4b, 0x81, 0x72, 0x39, + 0x21, 0x90, 0x39, 0x34, 0x60, 0x2e, 0xf8, 0x76, 0x3c, 0x17, 0x53, 0x04, 0x0a, 0x93, 0x57, 0x13, + 0xc1, 0x98, 0xab, 0x2e, 0x2c, 0x84, 0x3f, 0x08, 0x2e, 0xc4, 0xd8, 0xe9, 0x41, 0xe5, 0xb5, 0xc4, + 0x50, 0xe6, 0xf6, 0x00, 0x8e, 0x47, 0x3c, 0xd9, 0x8a, 0x31, 0x64, 0xf9, 0xb0, 0x72, 0x25, 0x39, + 0x96, 0x79, 0xfe, 0x4a, 0x80, 0x7c, 0xdc, 0xdd, 0x75, 0x3d, 0x91, 0x5d, 0x5e, 0x49, 0x7e, 0x71, + 0x08, 0x25, 0x16, 0xd5, 0xc7, 0x02, 0x2c, 0x46, 0xdf, 0xf0, 0x56, 0x13, 0x99, 0x66, 0xfd, 0x76, + 0xf9, 0xb9, 0xe0, 0x2c, 0x86, 0xf7, 0x21, 0xdb, 0x77, 0x97, 0x42, 0x61, 0x86, 0x78, 0x8c, 0x5c, + 0x8c, 0xc7, 0xf8, 0x37, 0x6c, 0xe0, 0x2e, 0x10, 0xba, 0x61, 0xfb, 0x51, 0xe1, 0x1b, 0x36, 0xea, + 0xd0, 0x16, 0x37, 0x20, 0x43, 0x0e, 0x6c, 0x29, 0x4c, 0xcb, 0x91, 0xc8, 0x85, 0x28, 0x89, 0xdf, + 0x06, 0x99, 0xab, 0xa1, 0x36, 0x1c, 0x49, 0xb8, 0x0d, 0xee, 0x1c, 0xba, 0x01, 0xe0, 0x3b, 0x42, + 0x72, 0x61, 0xf8, 0x9e, 0x5c, 0x3e, 0x3f, 0x58, 0xee, 0x59, 0x95, 0xc7, 0x3f, 0x72, 0x5e, 0xd1, + 0x1b, 0x2f, 0x3f, 0x7c, 0x92, 0x13, 0x1e, 0x3f, 0xc9, 0x09, 0xbf, 0x3f, 0xc9, 0x09, 0x5f, 0x3e, + 0xcd, 0x8d, 0x3d, 0x7e, 0x9a, 0x1b, 0xfb, 0xf5, 0x69, 0x6e, 0xec, 0xbd, 0x25, 0xdd, 0xb0, 0xef, + 0x74, 0x77, 0x4a, 0xbb, 0x96, 0xe9, 0xfe, 0x8a, 0x5d, 0xf6, 0x9d, 0x2e, 0x07, 0xf4, 0x7c, 0xd9, + 0x99, 0x20, 0x17, 0xd1, 0xf5, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4d, 0x77, 0x54, 0x7d, 0x37, + 0x17, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2870,6 +2876,20 @@ func (m *MsgSubmitProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Summary) > 0 { + i -= len(m.Summary) + copy(dAtA[i:], m.Summary) + i = encodeVarintTx(dAtA, i, uint64(len(m.Summary))) + i-- + dAtA[i] = 0x3a + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintTx(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0x32 + } if m.Exec != 0 { i = encodeVarintTx(dAtA, i, uint64(m.Exec)) i-- @@ -3538,6 +3558,14 @@ func (m *MsgSubmitProposal) Size() (n int) { if m.Exec != 0 { n += 1 + sovTx(uint64(m.Exec)) } + l = len(m.Title) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Summary) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -5798,6 +5826,70 @@ func (m *MsgSubmitProposal) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Summary", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Summary = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/x/group/types.pb.go b/x/group/types.pb.go index 41436d1fcc1d..1d94c8330774 100644 --- a/x/group/types.pb.go +++ b/x/group/types.pb.go @@ -725,6 +725,10 @@ type Proposal struct { ExecutorResult ProposalExecutorResult `protobuf:"varint,11,opt,name=executor_result,json=executorResult,proto3,enum=cosmos.group.v1.ProposalExecutorResult" json:"executor_result,omitempty"` // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. Messages []*types.Any `protobuf:"bytes,12,rep,name=messages,proto3" json:"messages,omitempty"` + // title is the title of the proposal + Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title,omitempty"` + // summary is a short summary of the proposal + Summary string `protobuf:"bytes,14,opt,name=summary,proto3" json:"summary,omitempty"` } func (m *Proposal) Reset() { *m = Proposal{} } @@ -907,92 +911,93 @@ func init() { func init() { proto.RegisterFile("cosmos/group/v1/types.proto", fileDescriptor_f5bddd15d7a54a9d) } var fileDescriptor_f5bddd15d7a54a9d = []byte{ - // 1346 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcd, 0x6f, 0x1a, 0x47, - 0x1b, 0x67, 0x01, 0xf3, 0xf1, 0x60, 0x03, 0x99, 0xf8, 0x8d, 0xb1, 0x9d, 0x17, 0xfc, 0x92, 0xe8, - 0x7d, 0x2d, 0xbf, 0x32, 0x24, 0x8e, 0xd4, 0xaa, 0x3e, 0x54, 0x05, 0xbc, 0x69, 0x88, 0x12, 0x40, - 0xbb, 0x8b, 0xdd, 0xe4, 0xb2, 0x5a, 0xb3, 0x13, 0xbc, 0x2a, 0xec, 0xd0, 0xdd, 0xc1, 0x0e, 0xff, - 0x41, 0xd4, 0x4b, 0x73, 0xec, 0xa5, 0x52, 0xa4, 0x5e, 0x7a, 0xcc, 0xc1, 0xaa, 0xaa, 0x1e, 0x7b, - 0x8a, 0x72, 0x88, 0xa2, 0x9e, 0x7a, 0x6a, 0xab, 0xe4, 0x90, 0x9e, 0x7a, 0xea, 0xb5, 0x52, 0xb5, - 0x33, 0xb3, 0x98, 0x0f, 0x9b, 0xca, 0x51, 0xd4, 0x8b, 0xe5, 0x99, 0xdf, 0xef, 0x79, 0xe6, 0xf7, - 0x7c, 0x02, 0xb0, 0xda, 0x22, 0x6e, 0x97, 0xb8, 0xc5, 0xb6, 0x43, 0xfa, 0xbd, 0xe2, 0xe1, 0xf5, - 0x22, 0x1d, 0xf4, 0xb0, 0x5b, 0xe8, 0x39, 0x84, 0x12, 0x94, 0xe2, 0x60, 0x81, 0x81, 0x85, 0xc3, - 0xeb, 0x2b, 0x8b, 0x6d, 0xd2, 0x26, 0x0c, 0x2b, 0x7a, 0xff, 0x71, 0xda, 0x4a, 0xb6, 0x4d, 0x48, - 0xbb, 0x83, 0x8b, 0xec, 0xb4, 0xdf, 0x7f, 0x50, 0x34, 0xfb, 0x8e, 0x41, 0x2d, 0x62, 0x0b, 0x3c, - 0x37, 0x89, 0x53, 0xab, 0x8b, 0x5d, 0x6a, 0x74, 0x7b, 0x82, 0xb0, 0xcc, 0xdf, 0xd1, 0xb9, 0x67, - 0xf1, 0xa8, 0x80, 0x26, 0x6d, 0x0d, 0x7b, 0x20, 0xa0, 0x0b, 0x46, 0xd7, 0xb2, 0x49, 0x91, 0xfd, - 0xe5, 0x57, 0xf9, 0x6f, 0x25, 0x88, 0xdc, 0xc5, 0xdd, 0x7d, 0xec, 0xa0, 0x2d, 0x88, 0x1a, 0xa6, - 0xe9, 0x60, 0xd7, 0xcd, 0x48, 0x6b, 0xd2, 0x7a, 0xbc, 0x9c, 0xf9, 0xf1, 0x78, 0x73, 0x51, 0xf8, - 0x2e, 0x71, 0x44, 0xa5, 0x8e, 0x65, 0xb7, 0x15, 0x9f, 0x88, 0x2e, 0x41, 0xe4, 0x08, 0x5b, 0xed, - 0x03, 0x9a, 0x09, 0x7a, 0x26, 0x8a, 0x38, 0xa1, 0x15, 0x88, 0x75, 0x31, 0x35, 0x4c, 0x83, 0x1a, - 0x99, 0x10, 0x43, 0x86, 0x67, 0xb4, 0x03, 0x31, 0xc3, 0x34, 0xb1, 0xa9, 0x1b, 0x34, 0x13, 0x5e, - 0x93, 0xd6, 0x13, 0x5b, 0x2b, 0x05, 0xae, 0xb9, 0xe0, 0x6b, 0x2e, 0x68, 0x7e, 0xbc, 0xe5, 0x85, - 0x67, 0x3f, 0xe7, 0x02, 0x8f, 0x7f, 0xc9, 0x49, 0xdf, 0xbc, 0x79, 0xba, 0x21, 0xb1, 0x97, 0xb1, - 0x59, 0xa2, 0xf9, 0x23, 0x58, 0xe0, 0xba, 0x15, 0xfc, 0x59, 0x1f, 0xbb, 0xf4, 0x9f, 0x92, 0x9f, - 0x3f, 0x96, 0x60, 0x49, 0x3b, 0x70, 0xb0, 0x7b, 0x40, 0x3a, 0xe6, 0x0e, 0x6e, 0x59, 0xae, 0x45, - 0xec, 0x06, 0xe9, 0x58, 0xad, 0x01, 0xba, 0x0c, 0x71, 0xea, 0x43, 0x5c, 0x85, 0x72, 0x72, 0x81, - 0x3e, 0x82, 0xe8, 0x91, 0x65, 0x9b, 0xe4, 0xc8, 0x65, 0xcf, 0x25, 0xb6, 0xfe, 0x5b, 0x98, 0x68, - 0x97, 0xc2, 0xb8, 0xbf, 0x3d, 0xce, 0x56, 0x7c, 0xb3, 0xed, 0x0f, 0x9e, 0x1f, 0x6f, 0x26, 0xc7, - 0x39, 0x9f, 0xbf, 0x79, 0xba, 0x91, 0xe7, 0x6e, 0x36, 0x5d, 0xf3, 0xd3, 0xe2, 0x19, 0xd2, 0xf2, - 0xdf, 0x49, 0x90, 0x69, 0x60, 0xa7, 0x85, 0x6d, 0x6a, 0xb4, 0xf1, 0x84, 0xee, 0x2c, 0x40, 0x6f, - 0x88, 0x09, 0xe1, 0x23, 0x37, 0xef, 0x40, 0xf9, 0xf6, 0xe9, 0xca, 0xaf, 0x8c, 0x28, 0x3f, 0x4b, - 0x5d, 0xfe, 0x07, 0x09, 0xfe, 0x75, 0xaa, 0x7b, 0x74, 0x17, 0x16, 0x0e, 0x09, 0xb5, 0xec, 0xb6, - 0xde, 0xc3, 0x8e, 0x45, 0x78, 0xce, 0x13, 0x5b, 0xcb, 0x53, 0xfd, 0xb4, 0x23, 0xe6, 0x8b, 0xb7, - 0xd3, 0x97, 0xc3, 0x76, 0x9a, 0xe7, 0xe6, 0x0d, 0x66, 0x8d, 0xee, 0xc3, 0x62, 0xd7, 0xb2, 0x75, - 0xfc, 0x10, 0xb7, 0xfa, 0x1e, 0xdb, 0xf7, 0x1a, 0x3c, 0xa7, 0x57, 0xd4, 0xb5, 0x6c, 0xd9, 0x77, - 0xc2, 0x7d, 0xe7, 0x7f, 0x97, 0x20, 0xfe, 0xb1, 0x97, 0xac, 0xaa, 0xfd, 0x80, 0xa0, 0x24, 0x04, - 0x2d, 0xae, 0x36, 0xac, 0x04, 0x2d, 0x13, 0x15, 0x60, 0xce, 0x30, 0xbb, 0x96, 0xcd, 0xfb, 0x70, - 0x46, 0xeb, 0x72, 0xda, 0xcc, 0xf9, 0xca, 0x40, 0xf4, 0x10, 0x3b, 0x5e, 0xb2, 0xd8, 0x78, 0x85, - 0x15, 0xff, 0x88, 0xfe, 0x03, 0xf3, 0x94, 0x50, 0xa3, 0xa3, 0x8b, 0xa6, 0x9f, 0x63, 0x96, 0x09, - 0x76, 0xb7, 0xc7, 0x3b, 0xff, 0x16, 0x40, 0xcb, 0xc1, 0x06, 0xe5, 0xe3, 0x19, 0x39, 0xef, 0x78, - 0xc6, 0x85, 0x71, 0x89, 0xe6, 0xef, 0x41, 0x82, 0xc5, 0x2b, 0xb6, 0xcb, 0x32, 0xc4, 0x58, 0xaf, - 0xe8, 0xc3, 0xb8, 0xa3, 0xec, 0x5c, 0x35, 0x51, 0x11, 0x22, 0x5d, 0x46, 0x12, 0x89, 0x5e, 0x9a, - 0x6a, 0x2e, 0x31, 0xe9, 0x82, 0x96, 0xff, 0x33, 0x08, 0x29, 0xe6, 0x9b, 0x77, 0x03, 0xcb, 0xe8, - 0xdb, 0x8c, 0xff, 0xa8, 0xa6, 0xe0, 0xb8, 0xa6, 0x61, 0x41, 0x42, 0xe7, 0x2f, 0x48, 0xf8, 0xec, - 0x82, 0xcc, 0x8d, 0x17, 0xc4, 0x80, 0x94, 0x29, 0x1a, 0x5b, 0xef, 0xb1, 0x58, 0x44, 0xca, 0x17, - 0xa7, 0x52, 0x5e, 0xb2, 0x07, 0xe5, 0xfc, 0xf3, 0xe3, 0xcd, 0xec, 0xec, 0xc1, 0x53, 0x92, 0xe6, - 0xf8, 0x68, 0x8f, 0x17, 0x34, 0xfa, 0xf6, 0x05, 0xdd, 0x8e, 0x3d, 0x7a, 0x92, 0x0b, 0xfc, 0xf6, - 0x24, 0x27, 0xe5, 0x5f, 0xcc, 0x41, 0xac, 0xe1, 0x90, 0x1e, 0x71, 0x8d, 0xce, 0x54, 0x2b, 0xdf, - 0x86, 0x45, 0x9e, 0x54, 0x1e, 0x90, 0xee, 0x57, 0xe5, 0xef, 0x3a, 0x1b, 0xb5, 0x4f, 0x2a, 0x2a, - 0x90, 0x99, 0x6d, 0xfe, 0x1e, 0xc4, 0x7b, 0x4c, 0x03, 0x76, 0xdc, 0x4c, 0x78, 0x2d, 0x34, 0xd3, - 0xf9, 0x09, 0x15, 0xdd, 0x86, 0x84, 0xdb, 0xdf, 0xef, 0x5a, 0x54, 0xf7, 0x3e, 0x54, 0x59, 0x45, - 0xce, 0x95, 0x11, 0xe0, 0xd6, 0x1e, 0x8e, 0xae, 0xc0, 0x02, 0x8f, 0xd5, 0xaf, 0x6f, 0x84, 0xa5, - 0x61, 0x9e, 0x5d, 0xee, 0x8a, 0x22, 0x5f, 0x9b, 0x48, 0x88, 0xcf, 0x8d, 0x32, 0xee, 0x68, 0xd8, - 0xbe, 0xc5, 0xfb, 0x10, 0x71, 0xa9, 0x41, 0xfb, 0x6e, 0x26, 0xb6, 0x26, 0xad, 0x27, 0xb7, 0x72, - 0x53, 0x03, 0xe1, 0x67, 0x5f, 0x65, 0x34, 0x45, 0xd0, 0x51, 0x13, 0xd0, 0x03, 0xcb, 0x36, 0x3a, - 0x3a, 0x35, 0x3a, 0x9d, 0x81, 0xee, 0x60, 0xb7, 0xdf, 0xa1, 0x99, 0x38, 0x0b, 0xf1, 0xf2, 0x94, - 0x13, 0xcd, 0x23, 0x29, 0x8c, 0x53, 0x8e, 0x7b, 0x41, 0xf2, 0x00, 0xd3, 0xcc, 0xc5, 0x08, 0x88, - 0x9a, 0x70, 0x61, 0x6c, 0xcd, 0xea, 0xd8, 0x36, 0x33, 0x70, 0xde, 0xc4, 0xa5, 0x46, 0x77, 0xad, - 0x6c, 0x9b, 0xa8, 0x01, 0x29, 0xbe, 0x6a, 0x89, 0xe3, 0x4b, 0x4d, 0xb0, 0x78, 0xff, 0x77, 0x66, - 0xbc, 0xb2, 0xe0, 0x73, 0x61, 0x4a, 0x12, 0x8f, 0x9d, 0xd1, 0x35, 0xaf, 0x5f, 0x5c, 0xd7, 0x68, - 0x63, 0x37, 0x33, 0xbf, 0x16, 0x3a, 0x6b, 0x90, 0x94, 0x21, 0x6b, 0x3b, 0xec, 0x35, 0x75, 0xfe, - 0x2b, 0x09, 0x12, 0xa3, 0x01, 0xaf, 0x42, 0x7c, 0x80, 0x5d, 0xbd, 0x45, 0xfa, 0x36, 0x15, 0x1f, - 0x87, 0xb1, 0x01, 0x76, 0x2b, 0xde, 0xd9, 0x2b, 0xba, 0xb1, 0xef, 0x52, 0xc3, 0xb2, 0x05, 0x81, - 0x7f, 0x77, 0x98, 0x17, 0x97, 0x9c, 0xb4, 0x0c, 0x31, 0x9b, 0x08, 0x9c, 0x77, 0x6e, 0xd4, 0x26, - 0x1c, 0xfa, 0x3f, 0x20, 0x9b, 0xe8, 0x47, 0x16, 0x3d, 0xd0, 0x0f, 0x31, 0xf5, 0x49, 0x7c, 0x69, - 0xa4, 0x6c, 0xb2, 0x67, 0xd1, 0x83, 0x5d, 0x4c, 0x39, 0x59, 0xe8, 0xfb, 0x43, 0x82, 0xf0, 0x2e, - 0xa1, 0x18, 0xe5, 0x20, 0xd1, 0x13, 0xa9, 0x38, 0x59, 0xa4, 0xe0, 0x5f, 0xf1, 0xbd, 0x75, 0x48, - 0xa8, 0x58, 0xa5, 0x33, 0xf7, 0x16, 0xa3, 0xa1, 0x1b, 0x10, 0x21, 0x3d, 0xef, 0x63, 0x8a, 0xa9, - 0x4c, 0x6e, 0xad, 0x4e, 0xa5, 0xde, 0x7b, 0xb7, 0xce, 0x28, 0x8a, 0xa0, 0xce, 0x5c, 0x76, 0xef, - 0x70, 0xbc, 0x36, 0xbe, 0x90, 0x00, 0x4e, 0x9e, 0x47, 0xab, 0xb0, 0xb4, 0x5b, 0xd7, 0x64, 0xbd, - 0xde, 0xd0, 0xaa, 0xf5, 0x9a, 0xde, 0xac, 0xa9, 0x0d, 0xb9, 0x52, 0xbd, 0x59, 0x95, 0x77, 0xd2, - 0x01, 0x74, 0x11, 0x52, 0xa3, 0xe0, 0x3d, 0x59, 0x4d, 0x4b, 0x68, 0x09, 0x2e, 0x8e, 0x5e, 0x96, - 0xca, 0xaa, 0x56, 0xaa, 0xd6, 0xd2, 0x41, 0x84, 0x20, 0x39, 0x0a, 0xd4, 0xea, 0xe9, 0x10, 0xba, - 0x0c, 0x99, 0xf1, 0x3b, 0x7d, 0xaf, 0xaa, 0xdd, 0xd2, 0x77, 0x65, 0xad, 0x9e, 0x0e, 0xaf, 0x84, - 0x1f, 0x7d, 0x9d, 0x0d, 0x6c, 0xbc, 0x90, 0x20, 0x39, 0x3e, 0x7b, 0x28, 0x07, 0xab, 0x0d, 0xa5, - 0xde, 0xa8, 0xab, 0xa5, 0x3b, 0xba, 0xaa, 0x95, 0xb4, 0xa6, 0x3a, 0xa1, 0xec, 0xdf, 0xb0, 0x3c, - 0x49, 0x50, 0x9b, 0xe5, 0xbb, 0x55, 0x4d, 0x93, 0x77, 0xd2, 0x92, 0xf7, 0xec, 0x24, 0x5c, 0xaa, - 0x54, 0xe4, 0x86, 0x87, 0x06, 0x4f, 0x43, 0x15, 0xf9, 0xb6, 0x5c, 0xf1, 0xd0, 0x90, 0x97, 0x91, - 0x29, 0xdb, 0x72, 0x5d, 0xf1, 0xc0, 0xf0, 0x69, 0xef, 0x7a, 0x01, 0xed, 0x28, 0xa5, 0xbd, 0x5a, - 0x7a, 0x4e, 0x04, 0xf4, 0xbd, 0x04, 0x97, 0x4e, 0x1f, 0x2e, 0xb4, 0x0e, 0x57, 0x87, 0xf6, 0xf2, - 0x27, 0x72, 0xa5, 0xa9, 0xd5, 0x15, 0x5d, 0x91, 0xd5, 0xe6, 0x1d, 0x6d, 0x22, 0xc2, 0xab, 0xb0, - 0x76, 0x26, 0xb3, 0x56, 0xd7, 0x74, 0xa5, 0x59, 0x4b, 0x4b, 0x33, 0x59, 0x6a, 0xb3, 0x52, 0x91, - 0x55, 0x35, 0x1d, 0x9c, 0xc9, 0xba, 0x59, 0xaa, 0xde, 0x69, 0x2a, 0x72, 0x3a, 0xc4, 0xc5, 0x97, - 0x3f, 0x7c, 0xf6, 0x2a, 0x2b, 0xbd, 0x7c, 0x95, 0x95, 0x7e, 0x7d, 0x95, 0x95, 0x1e, 0xbf, 0xce, - 0x06, 0x5e, 0xbe, 0xce, 0x06, 0x7e, 0x7a, 0x9d, 0x0d, 0xdc, 0xbf, 0xda, 0xb6, 0xe8, 0x41, 0x7f, - 0xbf, 0xd0, 0x22, 0x5d, 0xf1, 0xeb, 0xa8, 0x38, 0xf2, 0x4d, 0xf3, 0x21, 0xff, 0xf1, 0xb6, 0x1f, - 0x61, 0xed, 0x78, 0xe3, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xb3, 0xfe, 0xde, 0xd3, 0x0d, - 0x00, 0x00, + // 1371 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3b, 0x6f, 0x1b, 0xc7, + 0x16, 0xd6, 0x52, 0x14, 0x1f, 0x87, 0x12, 0x49, 0x8f, 0x75, 0xad, 0x95, 0xe4, 0x4b, 0xea, 0xd2, + 0xc6, 0xbd, 0x82, 0x2e, 0x44, 0xda, 0x32, 0x90, 0x20, 0x2a, 0x82, 0x90, 0xd4, 0x3a, 0xa6, 0x61, + 0x93, 0xc4, 0x72, 0x29, 0xc5, 0x6e, 0x16, 0x2b, 0xee, 0x98, 0x5a, 0x84, 0xbb, 0xc3, 0xec, 0x0e, + 0x25, 0xf3, 0x1f, 0x18, 0x69, 0xe2, 0x32, 0x4d, 0x00, 0x03, 0x69, 0x52, 0xba, 0x10, 0x82, 0x20, + 0x65, 0x2a, 0xc3, 0x45, 0x60, 0xa4, 0x4a, 0x95, 0x04, 0x76, 0xe1, 0x54, 0xa9, 0xd2, 0x26, 0x08, + 0x76, 0x66, 0x96, 0xe2, 0x43, 0x62, 0x20, 0xc3, 0x48, 0x23, 0x68, 0xe6, 0xfb, 0xce, 0x99, 0xef, + 0x3c, 0x49, 0xc2, 0x6a, 0x8b, 0x78, 0x36, 0xf1, 0x0a, 0x6d, 0x97, 0xf4, 0xba, 0x85, 0xc3, 0xeb, + 0x05, 0xda, 0xef, 0x62, 0x2f, 0xdf, 0x75, 0x09, 0x25, 0x28, 0xc5, 0xc1, 0x3c, 0x03, 0xf3, 0x87, + 0xd7, 0x57, 0x16, 0xdb, 0xa4, 0x4d, 0x18, 0x56, 0xf0, 0xff, 0xe3, 0xb4, 0x95, 0x4c, 0x9b, 0x90, + 0x76, 0x07, 0x17, 0xd8, 0x69, 0xbf, 0xf7, 0xa0, 0x60, 0xf6, 0x5c, 0x83, 0x5a, 0xc4, 0x11, 0x78, + 0x76, 0x1c, 0xa7, 0x96, 0x8d, 0x3d, 0x6a, 0xd8, 0x5d, 0x41, 0x58, 0xe6, 0xef, 0xe8, 0xdc, 0xb3, + 0x78, 0x54, 0x40, 0xe3, 0xb6, 0x86, 0xd3, 0x17, 0xd0, 0x05, 0xc3, 0xb6, 0x1c, 0x52, 0x60, 0x7f, + 0xf9, 0x55, 0xee, 0x6b, 0x09, 0x22, 0x77, 0xb1, 0xbd, 0x8f, 0x5d, 0xb4, 0x05, 0x51, 0xc3, 0x34, + 0x5d, 0xec, 0x79, 0xb2, 0xb4, 0x26, 0xad, 0xc7, 0x4b, 0xf2, 0x0f, 0xc7, 0x9b, 0x8b, 0xc2, 0x77, + 0x91, 0x23, 0x0d, 0xea, 0x5a, 0x4e, 0x5b, 0x0d, 0x88, 0xe8, 0x12, 0x44, 0x8e, 0xb0, 0xd5, 0x3e, + 0xa0, 0x72, 0xc8, 0x37, 0x51, 0xc5, 0x09, 0xad, 0x40, 0xcc, 0xc6, 0xd4, 0x30, 0x0d, 0x6a, 0xc8, + 0xb3, 0x0c, 0x19, 0x9c, 0xd1, 0x0e, 0xc4, 0x0c, 0xd3, 0xc4, 0xa6, 0x6e, 0x50, 0x39, 0xbc, 0x26, + 0xad, 0x27, 0xb6, 0x56, 0xf2, 0x5c, 0x73, 0x3e, 0xd0, 0x9c, 0xd7, 0x82, 0x78, 0x4b, 0x0b, 0xcf, + 0x7e, 0xca, 0xce, 0x3c, 0xfe, 0x39, 0x2b, 0x7d, 0xf5, 0xfa, 0xe9, 0x86, 0xc4, 0x5e, 0xc6, 0x66, + 0x91, 0xe6, 0x8e, 0x60, 0x81, 0xeb, 0x56, 0xf1, 0x27, 0x3d, 0xec, 0xd1, 0x7f, 0x4a, 0x7e, 0xee, + 0x58, 0x82, 0x25, 0xed, 0xc0, 0xc5, 0xde, 0x01, 0xe9, 0x98, 0x3b, 0xb8, 0x65, 0x79, 0x16, 0x71, + 0xea, 0xa4, 0x63, 0xb5, 0xfa, 0xe8, 0x32, 0xc4, 0x69, 0x00, 0x71, 0x15, 0xea, 0xc9, 0x05, 0xfa, + 0x00, 0xa2, 0x47, 0x96, 0x63, 0x92, 0x23, 0x8f, 0x3d, 0x97, 0xd8, 0xfa, 0x6f, 0x7e, 0xac, 0x5d, + 0xf2, 0xa3, 0xfe, 0xf6, 0x38, 0x5b, 0x0d, 0xcc, 0xb6, 0xdf, 0x7b, 0x7e, 0xbc, 0x99, 0x1c, 0xe5, + 0x7c, 0xfa, 0xfa, 0xe9, 0x46, 0x8e, 0xbb, 0xd9, 0xf4, 0xcc, 0x8f, 0x0b, 0x67, 0x48, 0xcb, 0x7d, + 0x23, 0x81, 0x5c, 0xc7, 0x6e, 0x0b, 0x3b, 0xd4, 0x68, 0xe3, 0x31, 0xdd, 0x19, 0x80, 0xee, 0x00, + 0x13, 0xc2, 0x87, 0x6e, 0xde, 0x82, 0xf2, 0xed, 0xd3, 0x95, 0x5f, 0x19, 0x52, 0x7e, 0x96, 0xba, + 0xdc, 0x77, 0x12, 0xfc, 0xeb, 0x54, 0xf7, 0xe8, 0x2e, 0x2c, 0x1c, 0x12, 0x6a, 0x39, 0x6d, 0xbd, + 0x8b, 0x5d, 0x8b, 0xf0, 0x9c, 0x27, 0xb6, 0x96, 0x27, 0xfa, 0x69, 0x47, 0xcc, 0x17, 0x6f, 0xa7, + 0xcf, 0x07, 0xed, 0x34, 0xcf, 0xcd, 0xeb, 0xcc, 0x1a, 0xdd, 0x87, 0x45, 0xdb, 0x72, 0x74, 0xfc, + 0x10, 0xb7, 0x7a, 0x3e, 0x3b, 0xf0, 0x1a, 0x3a, 0xa7, 0x57, 0x64, 0x5b, 0x8e, 0x12, 0x38, 0xe1, + 0xbe, 0x73, 0xbf, 0x49, 0x10, 0xff, 0xd0, 0x4f, 0x56, 0xc5, 0x79, 0x40, 0x50, 0x12, 0x42, 0x16, + 0x57, 0x1b, 0x56, 0x43, 0x96, 0x89, 0xf2, 0x30, 0x67, 0x98, 0xb6, 0xe5, 0xf0, 0x3e, 0x9c, 0xd2, + 0xba, 0x9c, 0x36, 0x75, 0xbe, 0x64, 0x88, 0x1e, 0x62, 0xd7, 0x4f, 0x16, 0x1b, 0xaf, 0xb0, 0x1a, + 0x1c, 0xd1, 0x7f, 0x60, 0x9e, 0x12, 0x6a, 0x74, 0x74, 0xd1, 0xf4, 0x73, 0xcc, 0x32, 0xc1, 0xee, + 0xf6, 0x78, 0xe7, 0xdf, 0x02, 0x68, 0xb9, 0xd8, 0xa0, 0x7c, 0x3c, 0x23, 0xe7, 0x1d, 0xcf, 0xb8, + 0x30, 0x2e, 0xd2, 0xdc, 0x3d, 0x48, 0xb0, 0x78, 0xc5, 0x76, 0x59, 0x86, 0x18, 0xeb, 0x15, 0x7d, + 0x10, 0x77, 0x94, 0x9d, 0x2b, 0x26, 0x2a, 0x40, 0xc4, 0x66, 0x24, 0x91, 0xe8, 0xa5, 0x89, 0xe6, + 0x12, 0x93, 0x2e, 0x68, 0xb9, 0x3f, 0x42, 0x90, 0x62, 0xbe, 0x79, 0x37, 0xb0, 0x8c, 0xbe, 0xc9, + 0xf8, 0x0f, 0x6b, 0x0a, 0x8d, 0x6a, 0x1a, 0x14, 0x64, 0xf6, 0xfc, 0x05, 0x09, 0x9f, 0x5d, 0x90, + 0xb9, 0xd1, 0x82, 0x18, 0x90, 0x32, 0x45, 0x63, 0xeb, 0x5d, 0x16, 0x8b, 0x48, 0xf9, 0xe2, 0x44, + 0xca, 0x8b, 0x4e, 0xbf, 0x94, 0x7b, 0x7e, 0xbc, 0x99, 0x99, 0x3e, 0x78, 0x6a, 0xd2, 0x1c, 0x1d, + 0xed, 0xd1, 0x82, 0x46, 0xdf, 0xbc, 0xa0, 0xdb, 0xb1, 0x47, 0x4f, 0xb2, 0x33, 0xbf, 0x3e, 0xc9, + 0x4a, 0xb9, 0x3f, 0xe7, 0x20, 0x56, 0x77, 0x49, 0x97, 0x78, 0x46, 0x67, 0xa2, 0x95, 0x6f, 0xc3, + 0x22, 0x4f, 0x2a, 0x0f, 0x48, 0x0f, 0xaa, 0xf2, 0x77, 0x9d, 0x8d, 0xda, 0x27, 0x15, 0x15, 0xc8, + 0xd4, 0x36, 0x7f, 0x07, 0xe2, 0x5d, 0xa6, 0x01, 0xbb, 0x9e, 0x1c, 0x5e, 0x9b, 0x9d, 0xea, 0xfc, + 0x84, 0x8a, 0x6e, 0x43, 0xc2, 0xeb, 0xed, 0xdb, 0x16, 0xd5, 0xfd, 0x0f, 0x55, 0x56, 0x91, 0x73, + 0x65, 0x04, 0xb8, 0xb5, 0x8f, 0xa3, 0x2b, 0xb0, 0xc0, 0x63, 0x0d, 0xea, 0x1b, 0x61, 0x69, 0x98, + 0x67, 0x97, 0xbb, 0xa2, 0xc8, 0xd7, 0xc6, 0x12, 0x12, 0x70, 0xa3, 0x8c, 0x3b, 0x1c, 0x76, 0x60, + 0xf1, 0x2e, 0x44, 0x3c, 0x6a, 0xd0, 0x9e, 0x27, 0xc7, 0xd6, 0xa4, 0xf5, 0xe4, 0x56, 0x76, 0x62, + 0x20, 0x82, 0xec, 0x37, 0x18, 0x4d, 0x15, 0x74, 0xd4, 0x04, 0xf4, 0xc0, 0x72, 0x8c, 0x8e, 0x4e, + 0x8d, 0x4e, 0xa7, 0xaf, 0xbb, 0xd8, 0xeb, 0x75, 0xa8, 0x1c, 0x67, 0x21, 0x5e, 0x9e, 0x70, 0xa2, + 0xf9, 0x24, 0x95, 0x71, 0x4a, 0x71, 0x3f, 0x48, 0x1e, 0x60, 0x9a, 0xb9, 0x18, 0x02, 0x51, 0x13, + 0x2e, 0x8c, 0xac, 0x59, 0x1d, 0x3b, 0xa6, 0x0c, 0xe7, 0x4d, 0x5c, 0x6a, 0x78, 0xd7, 0x2a, 0x8e, + 0x89, 0xea, 0x90, 0xe2, 0xab, 0x96, 0xb8, 0x81, 0xd4, 0x04, 0x8b, 0xf7, 0x7f, 0x67, 0xc6, 0xab, + 0x08, 0x3e, 0x17, 0xa6, 0x26, 0xf1, 0xc8, 0x19, 0x5d, 0xf3, 0xfb, 0xc5, 0xf3, 0x8c, 0x36, 0xf6, + 0xe4, 0xf9, 0xb5, 0xd9, 0xb3, 0x06, 0x49, 0x1d, 0xb0, 0xd0, 0x22, 0xcc, 0x51, 0x8b, 0x76, 0xb0, + 0xbc, 0xc0, 0xda, 0x8b, 0x1f, 0xfc, 0x89, 0xf5, 0x7a, 0xb6, 0x6d, 0xb8, 0x7d, 0x39, 0xc9, 0xee, + 0x83, 0xe3, 0x76, 0xd8, 0x1f, 0x82, 0xdc, 0x17, 0x12, 0x24, 0x86, 0x13, 0xb4, 0x0a, 0xf1, 0x3e, + 0xf6, 0xf4, 0x16, 0xe9, 0x39, 0x54, 0x7c, 0x7c, 0xc6, 0xfa, 0xd8, 0x2b, 0xfb, 0x67, 0xbf, 0x49, + 0x8c, 0x7d, 0x8f, 0x1a, 0x96, 0x23, 0x08, 0xfc, 0xbb, 0xc6, 0xbc, 0xb8, 0xe4, 0xa4, 0x65, 0x88, + 0x39, 0x44, 0xe0, 0xbc, 0xd3, 0xa3, 0x0e, 0xe1, 0xd0, 0xff, 0x01, 0x39, 0x44, 0x3f, 0xb2, 0xe8, + 0x81, 0x7e, 0x88, 0x69, 0x40, 0xe2, 0x4b, 0x26, 0xe5, 0x90, 0x3d, 0x8b, 0x1e, 0xec, 0x62, 0xca, + 0xc9, 0x42, 0xdf, 0xef, 0x12, 0x84, 0x77, 0x09, 0xc5, 0x28, 0x0b, 0x89, 0xae, 0x48, 0xdd, 0xc9, + 0xe2, 0x85, 0xe0, 0x8a, 0xef, 0xb9, 0x43, 0x42, 0xc5, 0xea, 0x9d, 0xba, 0xe7, 0x18, 0x0d, 0xdd, + 0x80, 0x08, 0xe9, 0xfa, 0x1f, 0x6b, 0x4c, 0x65, 0x72, 0x6b, 0x75, 0xa2, 0x54, 0xfe, 0xbb, 0x35, + 0x46, 0x51, 0x05, 0x75, 0xea, 0x72, 0x7c, 0x8b, 0xe3, 0xb8, 0xf1, 0x99, 0x04, 0x70, 0xf2, 0x3c, + 0x5a, 0x85, 0xa5, 0xdd, 0x9a, 0xa6, 0xe8, 0xb5, 0xba, 0x56, 0xa9, 0x55, 0xf5, 0x66, 0xb5, 0x51, + 0x57, 0xca, 0x95, 0x9b, 0x15, 0x65, 0x27, 0x3d, 0x83, 0x2e, 0x42, 0x6a, 0x18, 0xbc, 0xa7, 0x34, + 0xd2, 0x12, 0x5a, 0x82, 0x8b, 0xc3, 0x97, 0xc5, 0x52, 0x43, 0x2b, 0x56, 0xaa, 0xe9, 0x10, 0x42, + 0x90, 0x1c, 0x06, 0xaa, 0xb5, 0xf4, 0x2c, 0xba, 0x0c, 0xf2, 0xe8, 0x9d, 0xbe, 0x57, 0xd1, 0x6e, + 0xe9, 0xbb, 0x8a, 0x56, 0x4b, 0x87, 0x57, 0xc2, 0x8f, 0xbe, 0xcc, 0xcc, 0x6c, 0x7c, 0x2f, 0x41, + 0x72, 0x74, 0x56, 0x51, 0x16, 0x56, 0xeb, 0x6a, 0xad, 0x5e, 0x6b, 0x14, 0xef, 0xe8, 0x0d, 0xad, + 0xa8, 0x35, 0x1b, 0x63, 0xca, 0xfe, 0x0d, 0xcb, 0xe3, 0x84, 0x46, 0xb3, 0x74, 0xb7, 0xa2, 0x69, + 0xca, 0x4e, 0x5a, 0xf2, 0x9f, 0x1d, 0x87, 0x8b, 0xe5, 0xb2, 0x52, 0xf7, 0xd1, 0xd0, 0x69, 0xa8, + 0xaa, 0xdc, 0x56, 0xca, 0x3e, 0x3a, 0xeb, 0x67, 0x64, 0xc2, 0xb6, 0x54, 0x53, 0x7d, 0x30, 0x7c, + 0xda, 0xbb, 0x7e, 0x40, 0x3b, 0x6a, 0x71, 0xaf, 0x9a, 0x9e, 0x13, 0x01, 0x7d, 0x2b, 0xc1, 0xa5, + 0xd3, 0x87, 0x11, 0xad, 0xc3, 0xd5, 0x81, 0xbd, 0xf2, 0x91, 0x52, 0x6e, 0x6a, 0x35, 0x55, 0x57, + 0x95, 0x46, 0xf3, 0x8e, 0x36, 0x16, 0xe1, 0x55, 0x58, 0x3b, 0x93, 0x59, 0xad, 0x69, 0xba, 0xda, + 0xac, 0xa6, 0xa5, 0xa9, 0xac, 0x46, 0xb3, 0x5c, 0x56, 0x1a, 0x8d, 0x74, 0x68, 0x2a, 0xeb, 0x66, + 0xb1, 0x72, 0xa7, 0xa9, 0x2a, 0xe9, 0x59, 0x2e, 0xbe, 0xf4, 0xfe, 0xb3, 0x97, 0x19, 0xe9, 0xc5, + 0xcb, 0x8c, 0xf4, 0xcb, 0xcb, 0x8c, 0xf4, 0xf8, 0x55, 0x66, 0xe6, 0xc5, 0xab, 0xcc, 0xcc, 0x8f, + 0xaf, 0x32, 0x33, 0xf7, 0xaf, 0xb6, 0x2d, 0x7a, 0xd0, 0xdb, 0xcf, 0xb7, 0x88, 0x2d, 0x7e, 0x4d, + 0x15, 0x86, 0xbe, 0x99, 0x3e, 0xe4, 0x3f, 0xf6, 0xf6, 0x23, 0xac, 0x1d, 0x6f, 0xfc, 0x15, 0x00, + 0x00, 0xff, 0xff, 0x1d, 0x56, 0x5e, 0x0e, 0x03, 0x0e, 0x00, 0x00, } func (this *GroupPolicyInfo) Equal(that interface{}) bool { @@ -1452,6 +1457,20 @@ func (m *Proposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Summary) > 0 { + i -= len(m.Summary) + copy(dAtA[i:], m.Summary) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Summary))) + i-- + dAtA[i] = 0x72 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0x6a + } if len(m.Messages) > 0 { for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- { { @@ -1876,6 +1895,14 @@ func (m *Proposal) Size() (n int) { n += 1 + l + sovTypes(uint64(l)) } } + l = len(m.Title) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Summary) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } return n } @@ -3540,6 +3567,70 @@ func (m *Proposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + 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 ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Summary", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + 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 ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Summary = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) From 5d3c6b36942a8b3f24a1781384b6fafc7d1a53bc Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 10:16:56 +0100 Subject: [PATCH 02/13] add title and summary to groups --- x/group/client/cli/tx.go | 4 ++++ x/group/client/cli/util.go | 2 ++ x/group/keeper/msg_server.go | 6 ++++++ x/group/msgs.go | 12 +++++++++++- x/group/msgs_test.go | 4 ++-- x/group/simulation/operations_test.go | 6 +++--- 6 files changed, 28 insertions(+), 6 deletions(-) diff --git a/x/group/client/cli/tx.go b/x/group/client/cli/tx.go index 1231afc74338..2b62ea536ff0 100644 --- a/x/group/client/cli/tx.go +++ b/x/group/client/cli/tx.go @@ -565,6 +565,8 @@ Parameters: "from_address": "cosmos1...", "to_address": "cosmos1...", "amount":[{"denom": "stake","amount": "10"}] + "title": "My proposal", + "summary": "This is a proposal to send 10 stake to cosmos1...", } ], "metadata": "4pIMOgIGx1vZGU=", // base64-encoded metadata @@ -599,6 +601,8 @@ Parameters: msgs, prop.Metadata, execFromString(execStr), + prop.Title, + prop.Summary, ) if err != nil { return err diff --git a/x/group/client/cli/util.go b/x/group/client/cli/util.go index c5ff61cca764..81a3c63a76d6 100644 --- a/x/group/client/cli/util.go +++ b/x/group/client/cli/util.go @@ -66,6 +66,8 @@ type Proposal struct { Messages []json.RawMessage `json:"messages,omitempty"` Metadata string `json:"metadata"` Proposers []string `json:"proposers,omitempty"` + Title string `json:"title"` + Summary string `json:"summary"` } func getCLIProposal(path string) (Proposal, error) { diff --git a/x/group/keeper/msg_server.go b/x/group/keeper/msg_server.go index e1e734d43fd3..c304104bdedb 100644 --- a/x/group/keeper/msg_server.go +++ b/x/group/keeper/msg_server.go @@ -471,6 +471,10 @@ func (k Keeper) SubmitProposal(goCtx context.Context, req *group.MsgSubmitPropos return nil, err } + if err := k.assertMetadataLength(req.Summary, "proposal summary"); err != nil { + return nil, err + } + policyAcc, err := k.getGroupPolicyInfo(ctx, req.GroupPolicyAddress) if err != nil { return nil, sdkerrors.Wrap(err, "load group policy") @@ -516,6 +520,8 @@ func (k Keeper) SubmitProposal(goCtx context.Context, req *group.MsgSubmitPropos ExecutorResult: group.PROPOSAL_EXECUTOR_RESULT_NOT_RUN, VotingPeriodEnd: ctx.BlockTime().Add(policy.GetVotingPeriod()), // The voting window begins as soon as the proposal is submitted. FinalTallyResult: group.DefaultTallyResult(), + Title: req.Title, + Summary: req.Summary, } if err := m.SetMsgs(msgs); err != nil { diff --git a/x/group/msgs.go b/x/group/msgs.go index dcaf7ab6ad2b..ced5c0e18460 100644 --- a/x/group/msgs.go +++ b/x/group/msgs.go @@ -562,12 +562,14 @@ func (m MsgCreateGroupPolicy) UnpackInterfaces(unpacker types.AnyUnpacker) error var _ sdk.Msg = &MsgSubmitProposal{} // NewMsgSubmitProposal creates a new MsgSubmitProposal. -func NewMsgSubmitProposal(address string, proposers []string, msgs []sdk.Msg, metadata string, exec Exec) (*MsgSubmitProposal, error) { +func NewMsgSubmitProposal(address string, proposers []string, msgs []sdk.Msg, metadata string, exec Exec, title, summary string) (*MsgSubmitProposal, error) { m := &MsgSubmitProposal{ GroupPolicyAddress: address, Proposers: proposers, Metadata: metadata, Exec: exec, + Title: title, + Summary: summary, } err := m.SetMsgs(msgs) if err != nil { @@ -608,6 +610,14 @@ func (m MsgSubmitProposal) ValidateBasic() error { return sdkerrors.Wrap(err, "group policy") } + if m.Title == "" { + return sdkerrors.Wrap(errors.ErrEmpty, "title") + } + + if m.Summary == "" { + return sdkerrors.Wrap(errors.ErrEmpty, "summary") + } + if len(m.Proposers) == 0 { return sdkerrors.Wrap(errors.ErrEmpty, "proposers") } diff --git a/x/group/msgs_test.go b/x/group/msgs_test.go index 5b82d2de316f..a02bf07fc738 100644 --- a/x/group/msgs_test.go +++ b/x/group/msgs_test.go @@ -975,13 +975,13 @@ func TestMsgSubmitProposalGetSignBytes(t *testing.T) { { "MsgSend", []sdk.Msg{banktypes.NewMsgSend(member1, member1, sdk.NewCoins())}, - fmt.Sprintf(`{"type":"cosmos-sdk/group/MsgSubmitProposal","value":{"messages":[{"type":"cosmos-sdk/MsgSend","value":{"amount":[],"from_address":"%s","to_address":"%s"}}],"proposers":[""]}}`, member1, member1), + fmt.Sprintf(`{"type":"cosmos-sdk/group/MsgSubmitProposal","value":{"messages":[{"type":"cosmos-sdk/MsgSend","value":{"amount":[],"from_address":"%s","to_address":"%s"}}],"proposers":[""],"summary":"This is a test","title":"MsgSend"}}`, member1, member1), }, } for _, tc := range testcases { t.Run(tc.name, func(t *testing.T) { - msg, err := group.NewMsgSubmitProposal(sdk.AccAddress{}.String(), []string{sdk.AccAddress{}.String()}, tc.proposal, "", group.Exec_EXEC_UNSPECIFIED) + msg, err := group.NewMsgSubmitProposal(sdk.AccAddress{}.String(), []string{sdk.AccAddress{}.String()}, tc.proposal, "", group.Exec_EXEC_UNSPECIFIED, "MsgSend", "This is a test") require.NoError(t, err) var bz []byte require.NotPanics(t, func() { diff --git a/x/group/simulation/operations_test.go b/x/group/simulation/operations_test.go index ded0b57195fb..25ffcdcb303b 100644 --- a/x/group/simulation/operations_test.go +++ b/x/group/simulation/operations_test.go @@ -309,7 +309,7 @@ func (suite *SimTestSuite) TestWithdrawProposal() { ToAddress: addr, Amount: sdk.Coins{sdk.NewInt64Coin("token", 100)}, }, - }, "", 0) + }, "", 0, "MsgSend", "this is a test proposal") suite.Require().NoError(err) _, err = suite.groupKeeper.SubmitProposal(ctx, proposalReq) suite.Require().NoError(err) @@ -376,7 +376,7 @@ func (suite *SimTestSuite) TestSimulateVote() { ToAddress: addr, Amount: sdk.Coins{sdk.NewInt64Coin("token", 100)}, }, - }, "", 0) + }, "", 0, "MsgSend", "this is a test proposal") suite.Require().NoError(err) _, err = suite.groupKeeper.SubmitProposal(ctx, proposalReq) suite.Require().NoError(err) @@ -442,7 +442,7 @@ func (suite *SimTestSuite) TestSimulateExec() { ToAddress: addr, Amount: sdk.Coins{sdk.NewInt64Coin("token", 100)}, }, - }, "", 0) + }, "", 0, "MsgSend", "this is a test proposal") suite.Require().NoError(err) proposalRes, err := suite.groupKeeper.SubmitProposal(ctx, proposalReq) suite.Require().NoError(err) From 702ce1eedfee2067e60c4343a2ef5353b966e539 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 10:30:36 +0100 Subject: [PATCH 03/13] fix tests --- x/group/msgs_test.go | 4 ++++ x/group/simulation/operations.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/x/group/msgs_test.go b/x/group/msgs_test.go index a02bf07fc738..c4600955a92b 100644 --- a/x/group/msgs_test.go +++ b/x/group/msgs_test.go @@ -936,6 +936,8 @@ func TestMsgSubmitProposal(t *testing.T) { "proposers required", &group.MsgSubmitProposal{ GroupPolicyAddress: admin.String(), + Title: "Title", + Summary: "Summary", }, true, "proposers: value is empty", @@ -945,6 +947,8 @@ func TestMsgSubmitProposal(t *testing.T) { &group.MsgSubmitProposal{ GroupPolicyAddress: admin.String(), Proposers: []string{member1.String(), member2.String()}, + Title: "Title", + Summary: "Summary", }, false, "", diff --git a/x/group/simulation/operations.go b/x/group/simulation/operations.go index 5c4eccffec3f..e5d24746f2c6 100644 --- a/x/group/simulation/operations.go +++ b/x/group/simulation/operations.go @@ -455,6 +455,8 @@ func SimulateMsgSubmitProposal(cdc *codec.ProtoCodec, ak group.AccountKeeper, bk GroupPolicyAddress: groupPolicyAddr, Proposers: []string{acc.Address.String()}, Metadata: simtypes.RandStringOfLength(r, 10), + Title: "Test Proposal", + Summary: "Summary of the proposal", } txGen := tx.NewTxConfig(cdc, tx.DefaultSignModes) From 061482d9a3e1af72723b3073ebd5f2894c307692 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 11:17:00 +0100 Subject: [PATCH 04/13] fix tests --- tests/e2e/group/query.go | 2 +- tests/e2e/group/tx.go | 30 +++++++++++++++++------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/tests/e2e/group/query.go b/tests/e2e/group/query.go index 5f1446a16f15..30668abfb7a6 100644 --- a/tests/e2e/group/query.go +++ b/tests/e2e/group/query.go @@ -781,7 +781,7 @@ func (s *E2ETestSuite) TestTallyResult() { s.createCLIProposal( s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - ""), + "", "title", "summary"), }, commonFlags..., ), diff --git a/tests/e2e/group/tx.go b/tests/e2e/group/tx.go index 3ad443bbae99..bd54fc9b2baf 100644 --- a/tests/e2e/group/tx.go +++ b/tests/e2e/group/tx.go @@ -156,7 +156,7 @@ func (s *E2ETestSuite) SetupSuite() { s.createCLIProposal( s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - ""), + "", "title", "summary"), }, s.commonFlags..., ), @@ -1464,6 +1464,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), "", + "title", "summary", ), }, s.commonFlags..., @@ -1481,6 +1482,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), "", + "title", "summary", ), fmt.Sprintf("--%s=try", client.FlagExec), }, @@ -1498,7 +1500,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( s.groupPolicies[3].Address, val.Address.String(), s.groupPolicies[3].Address, val.Address.String(), - ""), + "", "title", "summary"), fmt.Sprintf("--%s=try", client.FlagExec), }, s.commonFlags..., @@ -1515,7 +1517,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - "", + "", "title", "summary", ), fmt.Sprintf("--%s=%s", flags.FlagSignMode, flags.SignModeLegacyAminoJSON), }, @@ -1533,7 +1535,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - tooLongMetadata, + tooLongMetadata, "title", "summary", ), }, s.commonFlags..., @@ -1550,7 +1552,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( s.groupPolicies[0].Address, val.Address.String(), val.Address.String(), s.groupPolicies[0].Address, - ""), + "", "title", "summary"), }, s.commonFlags..., ), @@ -1566,7 +1568,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( s.groupPolicies[0].Address, "invalid", s.groupPolicies[0].Address, val.Address.String(), - "", + "", "title", "summary", ), }, s.commonFlags..., @@ -1583,7 +1585,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( "invalid", val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - "", + "", "title", "summary", ), }, s.commonFlags..., @@ -1600,7 +1602,7 @@ func (s *E2ETestSuite) TestTxSubmitProposal() { s.createCLIProposal( val.Address.String(), val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - "", + "", "title", "summary", ), }, s.commonFlags..., @@ -1654,7 +1656,7 @@ func (s *E2ETestSuite) TestTxVote() { s.createCLIProposal( groupPolicyAddress, accounts[0], groupPolicyAddress, accounts[0], - "", + "", "title", "summary", ), }, s.commonFlags..., @@ -1848,7 +1850,7 @@ func (s *E2ETestSuite) TestTxWithdrawProposal() { s.createCLIProposal( s.groupPolicies[1].Address, val.Address.String(), s.groupPolicies[1].Address, val.Address.String(), - ""), + "", "title", "summary"), }, s.commonFlags..., ), @@ -1995,7 +1997,7 @@ func (s *E2ETestSuite) TestTxExec() { s.createCLIProposal( s.groupPolicies[0].Address, val.Address.String(), s.groupPolicies[0].Address, val.Address.String(), - "", + "", "title", "summary", ), }, s.commonFlags..., @@ -2421,7 +2423,7 @@ func (s *E2ETestSuite) TestExecProposalsWhenMemberLeavesOrIsUpdated() { proposal := s.createCLIProposal( groupPolicyAddress, tc.members[0], groupPolicyAddress, tc.members[0], - "", + "", "title", "summary", ) submitProposalArgs := append([]string{ proposal, @@ -2500,7 +2502,7 @@ func (s *E2ETestSuite) getGroupIDFromTxResponse(txResp sdk.TxResponse) string { // createCLIProposal writes a CLI proposal with a MsgSend to a file. Returns // the path to the JSON file. -func (s *E2ETestSuite) createCLIProposal(groupPolicyAddress, proposer, sendFrom, sendTo, metadata string) string { +func (s *E2ETestSuite) createCLIProposal(groupPolicyAddress, proposer, sendFrom, sendTo, metadata, title, summary string) string { _, err := base64.StdEncoding.DecodeString(metadata) s.Require().NoError(err) @@ -2517,6 +2519,8 @@ func (s *E2ETestSuite) createCLIProposal(groupPolicyAddress, proposer, sendFrom, Messages: []json.RawMessage{msgJSON}, Metadata: metadata, Proposers: []string{proposer}, + Title: title, + Summary: summary, } bz, err := json.Marshal(&p) From 26702730149c45f3cfa7a66821956f40f76c9d89 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 11:22:04 +0100 Subject: [PATCH 05/13] add since --- proto/cosmos/gov/v1/gov.proto | 7 +++++++ proto/cosmos/group/v1/types.proto | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/proto/cosmos/gov/v1/gov.proto b/proto/cosmos/gov/v1/gov.proto index f4c7c6f34819..e4e267503e1a 100644 --- a/proto/cosmos/gov/v1/gov.proto +++ b/proto/cosmos/gov/v1/gov.proto @@ -83,11 +83,18 @@ message Proposal { string metadata = 10; // title is the title of the proposal + // + // since: cosmos-sdk 0.47 string title = 11; // summary is a short summary of the proposal + // + // since: cosmos-sdk 0.47 string summary = 12; + // Proposer is the address of the proposal sumbitter + // + // since: cosmos-sdk 0.47 string proposer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; } diff --git a/proto/cosmos/group/v1/types.proto b/proto/cosmos/group/v1/types.proto index ba758557149b..eedab5d29086 100644 --- a/proto/cosmos/group/v1/types.proto +++ b/proto/cosmos/group/v1/types.proto @@ -242,9 +242,13 @@ message Proposal { repeated google.protobuf.Any messages = 12; // title is the title of the proposal + // + // since: cosmos-sdk 0.47 string title = 13; // summary is a short summary of the proposal + // + // since: cosmos-sdk 0.47 string summary = 14; } From fa6497a36623e6a66cbfa8830cfae562e1fafd98 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 14:56:56 +0100 Subject: [PATCH 06/13] add since --- proto/cosmos/group/v1/tx.proto | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/proto/cosmos/group/v1/tx.proto b/proto/cosmos/group/v1/tx.proto index 7d33dd807bbb..be67aceeddfd 100644 --- a/proto/cosmos/group/v1/tx.proto +++ b/proto/cosmos/group/v1/tx.proto @@ -304,9 +304,13 @@ message MsgSubmitProposal { Exec exec = 5; // title is the title of the proposal. + // + // since: cosmos-sdk 0.47 string title = 6; // summary is the summary of the proposal. + // + // since: cosmos-sdk 0.47 string summary = 7; } From c6e347d1045da59d062394c3b889f4a53a2c6bf6 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 15:00:47 +0100 Subject: [PATCH 07/13] fix since and add to test case --- proto/cosmos/gov/v1/gov.proto | 6 +++--- proto/cosmos/gov/v1/tx.proto | 4 ++++ proto/cosmos/group/v1/tx.proto | 4 ++-- proto/cosmos/group/v1/types.proto | 4 ++-- x/group/client/cli/util_test.go | 6 +++++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/proto/cosmos/gov/v1/gov.proto b/proto/cosmos/gov/v1/gov.proto index e4e267503e1a..1f8c1413754a 100644 --- a/proto/cosmos/gov/v1/gov.proto +++ b/proto/cosmos/gov/v1/gov.proto @@ -84,17 +84,17 @@ message Proposal { // title is the title of the proposal // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string title = 11; // summary is a short summary of the proposal // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string summary = 12; // Proposer is the address of the proposal sumbitter // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string proposer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; } diff --git a/proto/cosmos/gov/v1/tx.proto b/proto/cosmos/gov/v1/tx.proto index d263c97b28d7..6e2a77a0e9e1 100644 --- a/proto/cosmos/gov/v1/tx.proto +++ b/proto/cosmos/gov/v1/tx.proto @@ -58,9 +58,13 @@ message MsgSubmitProposal { string metadata = 4; // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 string title = 5; // summary is the summary of the proposal + // + // Since: cosmos-sdk 0.47 string summary = 6; } diff --git a/proto/cosmos/group/v1/tx.proto b/proto/cosmos/group/v1/tx.proto index be67aceeddfd..20e04cb7ea30 100644 --- a/proto/cosmos/group/v1/tx.proto +++ b/proto/cosmos/group/v1/tx.proto @@ -305,12 +305,12 @@ message MsgSubmitProposal { // title is the title of the proposal. // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string title = 6; // summary is the summary of the proposal. // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string summary = 7; } diff --git a/proto/cosmos/group/v1/types.proto b/proto/cosmos/group/v1/types.proto index eedab5d29086..6c7250b26083 100644 --- a/proto/cosmos/group/v1/types.proto +++ b/proto/cosmos/group/v1/types.proto @@ -243,12 +243,12 @@ message Proposal { // title is the title of the proposal // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string title = 13; // summary is a short summary of the proposal // - // since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.47 string summary = 14; } diff --git a/x/group/client/cli/util_test.go b/x/group/client/cli/util_test.go index 8d0b0d1994cd..67b90ef3d65b 100644 --- a/x/group/client/cli/util_test.go +++ b/x/group/client/cli/util_test.go @@ -18,7 +18,9 @@ func Test_ParseCLIProposal(t *testing.T) { } ], "metadata": "4pIMOgIGx1vZGU=", - "proposers": ["cosmos15r295x4994egvckteam9skazy9kvfvzpak4naf"] + "proposers": ["cosmos15r295x4994egvckteam9skazy9kvfvzpak4naf"], + "title": "test", + "summary": "test summary" }`) result, err := parseCLIProposal(data) @@ -27,4 +29,6 @@ func Test_ParseCLIProposal(t *testing.T) { require.NotEmpty(t, result.Metadata) require.Equal(t, result.Metadata, "4pIMOgIGx1vZGU=") require.Equal(t, result.Proposers, []string{"cosmos15r295x4994egvckteam9skazy9kvfvzpak4naf"}) + require.Equal(t, result.Title, "test") + require.Equal(t, result.Summary, "test summary") } From 2fcad41ebdf419f6ecd04596cc39c5e2da1d0e1d Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Tue, 3 Jan 2023 20:13:50 +0100 Subject: [PATCH 08/13] regenerate --- api/cosmos/gov/v1/gov.pulsar.go | 9 ++++++++- api/cosmos/gov/v1/tx.pulsar.go | 4 ++++ api/cosmos/group/v1/tx.pulsar.go | 4 ++++ api/cosmos/group/v1/types.pulsar.go | 4 ++++ x/gov/types/v1/gov.pb.go | 9 ++++++++- x/gov/types/v1/tx.pb.go | 4 ++++ x/group/tx.pb.go | 4 ++++ x/group/types.pb.go | 4 ++++ 8 files changed, 40 insertions(+), 2 deletions(-) diff --git a/api/cosmos/gov/v1/gov.pulsar.go b/api/cosmos/gov/v1/gov.pulsar.go index 462984a73e60..e61c58ada3f0 100644 --- a/api/cosmos/gov/v1/gov.pulsar.go +++ b/api/cosmos/gov/v1/gov.pulsar.go @@ -6495,9 +6495,16 @@ type Proposal struct { // metadata is any arbitrary metadata attached to the proposal. Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` // title is the title of the proposal + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,11,opt,name=title,proto3" json:"title,omitempty"` // summary is a short summary of the proposal - Summary string `protobuf:"bytes,12,opt,name=summary,proto3" json:"summary,omitempty"` + // + // Since: cosmos-sdk 0.47 + Summary string `protobuf:"bytes,12,opt,name=summary,proto3" json:"summary,omitempty"` + // Proposer is the address of the proposal sumbitter + // + // Since: cosmos-sdk 0.47 Proposer string `protobuf:"bytes,13,opt,name=proposer,proto3" json:"proposer,omitempty"` } diff --git a/api/cosmos/gov/v1/tx.pulsar.go b/api/cosmos/gov/v1/tx.pulsar.go index 82d7fe0d5cff..98f80592d5f8 100644 --- a/api/cosmos/gov/v1/tx.pulsar.go +++ b/api/cosmos/gov/v1/tx.pulsar.go @@ -5975,8 +5975,12 @@ type MsgSubmitProposal struct { // metadata is any arbitrary metadata attached to the proposal. Metadata string `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` // summary is the summary of the proposal + // + // Since: cosmos-sdk 0.47 Summary string `protobuf:"bytes,6,opt,name=summary,proto3" json:"summary,omitempty"` } diff --git a/api/cosmos/group/v1/tx.pulsar.go b/api/cosmos/group/v1/tx.pulsar.go index c3d85b443153..ac53f1e18eda 100644 --- a/api/cosmos/group/v1/tx.pulsar.go +++ b/api/cosmos/group/v1/tx.pulsar.go @@ -14559,8 +14559,12 @@ type MsgSubmitProposal struct { // If so, proposers signatures are considered as Yes votes. Exec Exec `protobuf:"varint,5,opt,name=exec,proto3,enum=cosmos.group.v1.Exec" json:"exec,omitempty"` // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` // summary is the summary of the proposal. + // + // Since: cosmos-sdk 0.47 Summary string `protobuf:"bytes,7,opt,name=summary,proto3" json:"summary,omitempty"` } diff --git a/api/cosmos/group/v1/types.pulsar.go b/api/cosmos/group/v1/types.pulsar.go index 1ac5895d108d..6bcd79059825 100644 --- a/api/cosmos/group/v1/types.pulsar.go +++ b/api/cosmos/group/v1/types.pulsar.go @@ -8089,8 +8089,12 @@ type Proposal struct { // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. Messages []*anypb.Any `protobuf:"bytes,12,rep,name=messages,proto3" json:"messages,omitempty"` // title is the title of the proposal + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title,omitempty"` // summary is a short summary of the proposal + // + // Since: cosmos-sdk 0.47 Summary string `protobuf:"bytes,14,opt,name=summary,proto3" json:"summary,omitempty"` } diff --git a/x/gov/types/v1/gov.pb.go b/x/gov/types/v1/gov.pb.go index c8ae0021a72c..af5e907e52bb 100644 --- a/x/gov/types/v1/gov.pb.go +++ b/x/gov/types/v1/gov.pb.go @@ -266,9 +266,16 @@ type Proposal struct { // metadata is any arbitrary metadata attached to the proposal. Metadata string `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"` // title is the title of the proposal + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,11,opt,name=title,proto3" json:"title,omitempty"` // summary is a short summary of the proposal - Summary string `protobuf:"bytes,12,opt,name=summary,proto3" json:"summary,omitempty"` + // + // Since: cosmos-sdk 0.47 + Summary string `protobuf:"bytes,12,opt,name=summary,proto3" json:"summary,omitempty"` + // Proposer is the address of the proposal sumbitter + // + // Since: cosmos-sdk 0.47 Proposer string `protobuf:"bytes,13,opt,name=proposer,proto3" json:"proposer,omitempty"` } diff --git a/x/gov/types/v1/tx.pb.go b/x/gov/types/v1/tx.pb.go index 19daadd24d2d..22560702e09c 100644 --- a/x/gov/types/v1/tx.pb.go +++ b/x/gov/types/v1/tx.pb.go @@ -45,8 +45,12 @@ type MsgSubmitProposal struct { // metadata is any arbitrary metadata attached to the proposal. Metadata string `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` // summary is the summary of the proposal + // + // Since: cosmos-sdk 0.47 Summary string `protobuf:"bytes,6,opt,name=summary,proto3" json:"summary,omitempty"` } diff --git a/x/group/tx.pb.go b/x/group/tx.pb.go index cea7c4ccabe5..ca81aa00d7c8 100644 --- a/x/group/tx.pb.go +++ b/x/group/tx.pb.go @@ -976,8 +976,12 @@ type MsgSubmitProposal struct { // If so, proposers signatures are considered as Yes votes. Exec Exec `protobuf:"varint,5,opt,name=exec,proto3,enum=cosmos.group.v1.Exec" json:"exec,omitempty"` // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` // summary is the summary of the proposal. + // + // Since: cosmos-sdk 0.47 Summary string `protobuf:"bytes,7,opt,name=summary,proto3" json:"summary,omitempty"` } diff --git a/x/group/types.pb.go b/x/group/types.pb.go index 1d94c8330774..3836f70535f9 100644 --- a/x/group/types.pb.go +++ b/x/group/types.pb.go @@ -726,8 +726,12 @@ type Proposal struct { // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. Messages []*types.Any `protobuf:"bytes,12,rep,name=messages,proto3" json:"messages,omitempty"` // title is the title of the proposal + // + // Since: cosmos-sdk 0.47 Title string `protobuf:"bytes,13,opt,name=title,proto3" json:"title,omitempty"` // summary is a short summary of the proposal + // + // Since: cosmos-sdk 0.47 Summary string `protobuf:"bytes,14,opt,name=summary,proto3" json:"summary,omitempty"` } From 8d2345e51366d7b87025106534b3ad4248d5765e Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 4 Jan 2023 12:26:58 +0100 Subject: [PATCH 09/13] add test cases --- x/group/msgs_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/x/group/msgs_test.go b/x/group/msgs_test.go index c4600955a92b..d5636be29616 100644 --- a/x/group/msgs_test.go +++ b/x/group/msgs_test.go @@ -953,6 +953,26 @@ func TestMsgSubmitProposal(t *testing.T) { false, "", }, + { + "missing title", + &group.MsgSubmitProposal{ + GroupPolicyAddress: admin.String(), + Proposers: []string{member1.String(), member2.String()}, + Summary: "Summary", + }, + true, + "title: value is empty", + }, + { + "missing title", + &group.MsgSubmitProposal{ + GroupPolicyAddress: admin.String(), + Proposers: []string{member1.String(), member2.String()}, + Title: "title", + }, + true, + "summary: value is empty", + }, } for _, tc := range testCases { From 3941d433ffe9736522c5631681ab34a28836cf89 Mon Sep 17 00:00:00 2001 From: Marko Date: Wed, 4 Jan 2023 14:17:55 +0100 Subject: [PATCH 10/13] Update x/group/msgs_test.go Co-authored-by: Likhita Polavarapu <78951027+likhita-809@users.noreply.github.com> --- x/group/msgs_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/group/msgs_test.go b/x/group/msgs_test.go index d5636be29616..f5ff82913931 100644 --- a/x/group/msgs_test.go +++ b/x/group/msgs_test.go @@ -964,7 +964,7 @@ func TestMsgSubmitProposal(t *testing.T) { "title: value is empty", }, { - "missing title", + "missing summary", &group.MsgSubmitProposal{ GroupPolicyAddress: admin.String(), Proposers: []string{member1.String(), member2.String()}, From f2d069f9fb8dabaf4acff133df6d3443fb176903 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 4 Jan 2023 16:41:42 +0100 Subject: [PATCH 11/13] add length checks and extra lines to docs --- x/gov/keeper/proposal.go | 6 ++++++ x/group/README.md | 2 +- x/group/keeper/msg_server.go | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/x/gov/keeper/proposal.go b/x/gov/keeper/proposal.go index 51173f622889..6b260248c844 100644 --- a/x/gov/keeper/proposal.go +++ b/x/gov/keeper/proposal.go @@ -24,6 +24,12 @@ func (keeper Keeper) SubmitProposal(ctx sdk.Context, messages []sdk.Msg, metadat return v1.Proposal{}, err } + // assert title is no longer than predefined max length of metadata + err = keeper.assertMetadataLength(title) + if err != nil { + return v1.Proposal{}, err + } + // Will hold a comma-separated string of all Msg type URLs. msgsStr := "" diff --git a/x/group/README.md b/x/group/README.md index 8243038eaef7..6837bcc2b9ce 100644 --- a/x/group/README.md +++ b/x/group/README.md @@ -454,7 +454,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.46.0/proto/cosmos/group/v1/tx.proto It's expected to fail if: -* metadata length is greater than `MaxMetadataLen` config. +* metadata, title, or summary length is greater than `MaxMetadataLen` config. * if any of the proposers is not a group member. ### Msg/WithdrawProposal diff --git a/x/group/keeper/msg_server.go b/x/group/keeper/msg_server.go index c304104bdedb..fc6c0c4da37e 100644 --- a/x/group/keeper/msg_server.go +++ b/x/group/keeper/msg_server.go @@ -475,6 +475,10 @@ func (k Keeper) SubmitProposal(goCtx context.Context, req *group.MsgSubmitPropos return nil, err } + if err := k.assertMetadataLength(req.Title, "proposal Title"); err != nil { + return nil, err + } + policyAcc, err := k.getGroupPolicyInfo(ctx, req.GroupPolicyAddress) if err != nil { return nil, sdkerrors.Wrap(err, "load group policy") From 553de26323aa6b50076b30ba9b53be4a1edaacd4 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 4 Jan 2023 16:43:43 +0100 Subject: [PATCH 12/13] address comments --- x/gov/README.md | 2 +- x/group/client/cli/prompt.go | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/x/gov/README.md b/x/gov/README.md index 7adaac894dd0..817c01390bec 100644 --- a/x/gov/README.md +++ b/x/gov/README.md @@ -1156,7 +1156,7 @@ where `proposal.json` contains: ``` :::note -By default the metadata and the proposal are both limited by 255 characters, this can be overridden by the application developer. +By default the metadata, summary and title are both limited by 255 characters, this can be overridden by the application developer. ::: ##### submit-legacy-proposal diff --git a/x/group/client/cli/prompt.go b/x/group/client/cli/prompt.go index 11fabe86657c..4d06e3093395 100644 --- a/x/group/client/cli/prompt.go +++ b/x/group/client/cli/prompt.go @@ -31,7 +31,6 @@ type proposalType struct { // Prompt the proposal type values and return the proposal and its metadata. func (p *proposalType) Prompt(cdc codec.Codec) (*Proposal, govtypes.ProposalMetadata, error) { - proposal := &Proposal{} // set metadata metadata, err := govcli.Prompt(govtypes.ProposalMetadata{}, "proposal") @@ -39,7 +38,11 @@ func (p *proposalType) Prompt(cdc codec.Codec) (*Proposal, govtypes.ProposalMeta return nil, metadata, fmt.Errorf("failed to set proposal metadata: %w", err) } // the metadata must be saved on IPFS, set placeholder - proposal.Metadata = "ipfs://CID" + proposal := &Proposal{ + Metadata: "ipfs://CID", // the metadata must be saved on IPFS, set placeholder + Title: metadata.Title, + Summary: metadata.Summary, + } // set group policy address policyAddressPrompt := promptui.Prompt{ From ab2c6ce3e4331347218fcda8c687de557c340b07 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Wed, 4 Jan 2023 17:50:34 +0100 Subject: [PATCH 13/13] regenerate --- x/group/types.pb.go | 171 ++++++++++++++++++++++---------------------- 1 file changed, 86 insertions(+), 85 deletions(-) diff --git a/x/group/types.pb.go b/x/group/types.pb.go index d7d49a9ae930..882d8e42893c 100644 --- a/x/group/types.pb.go +++ b/x/group/types.pb.go @@ -915,93 +915,94 @@ func init() { func init() { proto.RegisterFile("cosmos/group/v1/types.proto", fileDescriptor_f5bddd15d7a54a9d) } var fileDescriptor_f5bddd15d7a54a9d = []byte{ - // 1371 bytes of a gzipped FileDescriptorProto + // 1369 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3b, 0x6f, 0x1b, 0xc7, - 0x16, 0xd6, 0x52, 0x14, 0x1f, 0x87, 0x12, 0x49, 0x8f, 0x75, 0xad, 0x95, 0xe4, 0x4b, 0xea, 0xd2, - 0xc6, 0xbd, 0x82, 0x2e, 0x44, 0xda, 0x32, 0x90, 0x20, 0x2a, 0x82, 0x90, 0xd4, 0x3a, 0xa6, 0x61, + 0x16, 0xd6, 0x92, 0x14, 0x1f, 0x87, 0x12, 0x49, 0x8f, 0x75, 0xad, 0x95, 0xe4, 0x4b, 0xea, 0xd2, + 0xc6, 0xbd, 0x82, 0x2e, 0x4c, 0xda, 0x32, 0x90, 0x00, 0x2e, 0x82, 0x90, 0xd4, 0x3a, 0xa6, 0x60, 0x93, 0xc4, 0x72, 0x29, 0xc5, 0x6e, 0x16, 0x2b, 0xee, 0x98, 0x5a, 0x84, 0xbb, 0xc3, 0xec, 0x0e, - 0x25, 0xf3, 0x1f, 0x18, 0x69, 0xe2, 0x32, 0x4d, 0x00, 0x03, 0x69, 0x52, 0xba, 0x10, 0x82, 0x20, - 0x65, 0x2a, 0xc3, 0x45, 0x60, 0xa4, 0x4a, 0x95, 0x04, 0x76, 0xe1, 0x54, 0xa9, 0xd2, 0x26, 0x08, - 0x76, 0x66, 0x96, 0xe2, 0x43, 0x62, 0x20, 0xc3, 0x48, 0x23, 0x68, 0xe6, 0xfb, 0xce, 0x99, 0xef, - 0x3c, 0x49, 0xc2, 0x6a, 0x8b, 0x78, 0x36, 0xf1, 0x0a, 0x6d, 0x97, 0xf4, 0xba, 0x85, 0xc3, 0xeb, - 0x05, 0xda, 0xef, 0x62, 0x2f, 0xdf, 0x75, 0x09, 0x25, 0x28, 0xc5, 0xc1, 0x3c, 0x03, 0xf3, 0x87, - 0xd7, 0x57, 0x16, 0xdb, 0xa4, 0x4d, 0x18, 0x56, 0xf0, 0xff, 0xe3, 0xb4, 0x95, 0x4c, 0x9b, 0x90, - 0x76, 0x07, 0x17, 0xd8, 0x69, 0xbf, 0xf7, 0xa0, 0x60, 0xf6, 0x5c, 0x83, 0x5a, 0xc4, 0x11, 0x78, - 0x76, 0x1c, 0xa7, 0x96, 0x8d, 0x3d, 0x6a, 0xd8, 0x5d, 0x41, 0x58, 0xe6, 0xef, 0xe8, 0xdc, 0xb3, - 0x78, 0x54, 0x40, 0xe3, 0xb6, 0x86, 0xd3, 0x17, 0xd0, 0x05, 0xc3, 0xb6, 0x1c, 0x52, 0x60, 0x7f, - 0xf9, 0x55, 0xee, 0x6b, 0x09, 0x22, 0x77, 0xb1, 0xbd, 0x8f, 0x5d, 0xb4, 0x05, 0x51, 0xc3, 0x34, - 0x5d, 0xec, 0x79, 0xb2, 0xb4, 0x26, 0xad, 0xc7, 0x4b, 0xf2, 0x0f, 0xc7, 0x9b, 0x8b, 0xc2, 0x77, - 0x91, 0x23, 0x0d, 0xea, 0x5a, 0x4e, 0x5b, 0x0d, 0x88, 0xe8, 0x12, 0x44, 0x8e, 0xb0, 0xd5, 0x3e, - 0xa0, 0x72, 0xc8, 0x37, 0x51, 0xc5, 0x09, 0xad, 0x40, 0xcc, 0xc6, 0xd4, 0x30, 0x0d, 0x6a, 0xc8, - 0xb3, 0x0c, 0x19, 0x9c, 0xd1, 0x0e, 0xc4, 0x0c, 0xd3, 0xc4, 0xa6, 0x6e, 0x50, 0x39, 0xbc, 0x26, - 0xad, 0x27, 0xb6, 0x56, 0xf2, 0x5c, 0x73, 0x3e, 0xd0, 0x9c, 0xd7, 0x82, 0x78, 0x4b, 0x0b, 0xcf, - 0x7e, 0xca, 0xce, 0x3c, 0xfe, 0x39, 0x2b, 0x7d, 0xf5, 0xfa, 0xe9, 0x86, 0xc4, 0x5e, 0xc6, 0x66, - 0x91, 0xe6, 0x8e, 0x60, 0x81, 0xeb, 0x56, 0xf1, 0x27, 0x3d, 0xec, 0xd1, 0x7f, 0x4a, 0x7e, 0xee, - 0x58, 0x82, 0x25, 0xed, 0xc0, 0xc5, 0xde, 0x01, 0xe9, 0x98, 0x3b, 0xb8, 0x65, 0x79, 0x16, 0x71, - 0xea, 0xa4, 0x63, 0xb5, 0xfa, 0xe8, 0x32, 0xc4, 0x69, 0x00, 0x71, 0x15, 0xea, 0xc9, 0x05, 0xfa, - 0x00, 0xa2, 0x47, 0x96, 0x63, 0x92, 0x23, 0x8f, 0x3d, 0x97, 0xd8, 0xfa, 0x6f, 0x7e, 0xac, 0x5d, - 0xf2, 0xa3, 0xfe, 0xf6, 0x38, 0x5b, 0x0d, 0xcc, 0xb6, 0xdf, 0x7b, 0x7e, 0xbc, 0x99, 0x1c, 0xe5, - 0x7c, 0xfa, 0xfa, 0xe9, 0x46, 0x8e, 0xbb, 0xd9, 0xf4, 0xcc, 0x8f, 0x0b, 0x67, 0x48, 0xcb, 0x7d, - 0x23, 0x81, 0x5c, 0xc7, 0x6e, 0x0b, 0x3b, 0xd4, 0x68, 0xe3, 0x31, 0xdd, 0x19, 0x80, 0xee, 0x00, - 0x13, 0xc2, 0x87, 0x6e, 0xde, 0x82, 0xf2, 0xed, 0xd3, 0x95, 0x5f, 0x19, 0x52, 0x7e, 0x96, 0xba, - 0xdc, 0x77, 0x12, 0xfc, 0xeb, 0x54, 0xf7, 0xe8, 0x2e, 0x2c, 0x1c, 0x12, 0x6a, 0x39, 0x6d, 0xbd, - 0x8b, 0x5d, 0x8b, 0xf0, 0x9c, 0x27, 0xb6, 0x96, 0x27, 0xfa, 0x69, 0x47, 0xcc, 0x17, 0x6f, 0xa7, - 0xcf, 0x07, 0xed, 0x34, 0xcf, 0xcd, 0xeb, 0xcc, 0x1a, 0xdd, 0x87, 0x45, 0xdb, 0x72, 0x74, 0xfc, - 0x10, 0xb7, 0x7a, 0x3e, 0x3b, 0xf0, 0x1a, 0x3a, 0xa7, 0x57, 0x64, 0x5b, 0x8e, 0x12, 0x38, 0xe1, - 0xbe, 0x73, 0xbf, 0x49, 0x10, 0xff, 0xd0, 0x4f, 0x56, 0xc5, 0x79, 0x40, 0x50, 0x12, 0x42, 0x16, - 0x57, 0x1b, 0x56, 0x43, 0x96, 0x89, 0xf2, 0x30, 0x67, 0x98, 0xb6, 0xe5, 0xf0, 0x3e, 0x9c, 0xd2, - 0xba, 0x9c, 0x36, 0x75, 0xbe, 0x64, 0x88, 0x1e, 0x62, 0xd7, 0x4f, 0x16, 0x1b, 0xaf, 0xb0, 0x1a, - 0x1c, 0xd1, 0x7f, 0x60, 0x9e, 0x12, 0x6a, 0x74, 0x74, 0xd1, 0xf4, 0x73, 0xcc, 0x32, 0xc1, 0xee, - 0xf6, 0x78, 0xe7, 0xdf, 0x02, 0x68, 0xb9, 0xd8, 0xa0, 0x7c, 0x3c, 0x23, 0xe7, 0x1d, 0xcf, 0xb8, - 0x30, 0x2e, 0xd2, 0xdc, 0x3d, 0x48, 0xb0, 0x78, 0xc5, 0x76, 0x59, 0x86, 0x18, 0xeb, 0x15, 0x7d, - 0x10, 0x77, 0x94, 0x9d, 0x2b, 0x26, 0x2a, 0x40, 0xc4, 0x66, 0x24, 0x91, 0xe8, 0xa5, 0x89, 0xe6, - 0x12, 0x93, 0x2e, 0x68, 0xb9, 0x3f, 0x42, 0x90, 0x62, 0xbe, 0x79, 0x37, 0xb0, 0x8c, 0xbe, 0xc9, - 0xf8, 0x0f, 0x6b, 0x0a, 0x8d, 0x6a, 0x1a, 0x14, 0x64, 0xf6, 0xfc, 0x05, 0x09, 0x9f, 0x5d, 0x90, - 0xb9, 0xd1, 0x82, 0x18, 0x90, 0x32, 0x45, 0x63, 0xeb, 0x5d, 0x16, 0x8b, 0x48, 0xf9, 0xe2, 0x44, - 0xca, 0x8b, 0x4e, 0xbf, 0x94, 0x7b, 0x7e, 0xbc, 0x99, 0x99, 0x3e, 0x78, 0x6a, 0xd2, 0x1c, 0x1d, - 0xed, 0xd1, 0x82, 0x46, 0xdf, 0xbc, 0xa0, 0xdb, 0xb1, 0x47, 0x4f, 0xb2, 0x33, 0xbf, 0x3e, 0xc9, - 0x4a, 0xb9, 0x3f, 0xe7, 0x20, 0x56, 0x77, 0x49, 0x97, 0x78, 0x46, 0x67, 0xa2, 0x95, 0x6f, 0xc3, - 0x22, 0x4f, 0x2a, 0x0f, 0x48, 0x0f, 0xaa, 0xf2, 0x77, 0x9d, 0x8d, 0xda, 0x27, 0x15, 0x15, 0xc8, - 0xd4, 0x36, 0x7f, 0x07, 0xe2, 0x5d, 0xa6, 0x01, 0xbb, 0x9e, 0x1c, 0x5e, 0x9b, 0x9d, 0xea, 0xfc, - 0x84, 0x8a, 0x6e, 0x43, 0xc2, 0xeb, 0xed, 0xdb, 0x16, 0xd5, 0xfd, 0x0f, 0x55, 0x56, 0x91, 0x73, - 0x65, 0x04, 0xb8, 0xb5, 0x8f, 0xa3, 0x2b, 0xb0, 0xc0, 0x63, 0x0d, 0xea, 0x1b, 0x61, 0x69, 0x98, - 0x67, 0x97, 0xbb, 0xa2, 0xc8, 0xd7, 0xc6, 0x12, 0x12, 0x70, 0xa3, 0x8c, 0x3b, 0x1c, 0x76, 0x60, - 0xf1, 0x2e, 0x44, 0x3c, 0x6a, 0xd0, 0x9e, 0x27, 0xc7, 0xd6, 0xa4, 0xf5, 0xe4, 0x56, 0x76, 0x62, - 0x20, 0x82, 0xec, 0x37, 0x18, 0x4d, 0x15, 0x74, 0xd4, 0x04, 0xf4, 0xc0, 0x72, 0x8c, 0x8e, 0x4e, - 0x8d, 0x4e, 0xa7, 0xaf, 0xbb, 0xd8, 0xeb, 0x75, 0xa8, 0x1c, 0x67, 0x21, 0x5e, 0x9e, 0x70, 0xa2, - 0xf9, 0x24, 0x95, 0x71, 0x4a, 0x71, 0x3f, 0x48, 0x1e, 0x60, 0x9a, 0xb9, 0x18, 0x02, 0x51, 0x13, - 0x2e, 0x8c, 0xac, 0x59, 0x1d, 0x3b, 0xa6, 0x0c, 0xe7, 0x4d, 0x5c, 0x6a, 0x78, 0xd7, 0x2a, 0x8e, - 0x89, 0xea, 0x90, 0xe2, 0xab, 0x96, 0xb8, 0x81, 0xd4, 0x04, 0x8b, 0xf7, 0x7f, 0x67, 0xc6, 0xab, - 0x08, 0x3e, 0x17, 0xa6, 0x26, 0xf1, 0xc8, 0x19, 0x5d, 0xf3, 0xfb, 0xc5, 0xf3, 0x8c, 0x36, 0xf6, - 0xe4, 0xf9, 0xb5, 0xd9, 0xb3, 0x06, 0x49, 0x1d, 0xb0, 0xd0, 0x22, 0xcc, 0x51, 0x8b, 0x76, 0xb0, - 0xbc, 0xc0, 0xda, 0x8b, 0x1f, 0xfc, 0x89, 0xf5, 0x7a, 0xb6, 0x6d, 0xb8, 0x7d, 0x39, 0xc9, 0xee, - 0x83, 0xe3, 0x76, 0xd8, 0x1f, 0x82, 0xdc, 0x17, 0x12, 0x24, 0x86, 0x13, 0xb4, 0x0a, 0xf1, 0x3e, - 0xf6, 0xf4, 0x16, 0xe9, 0x39, 0x54, 0x7c, 0x7c, 0xc6, 0xfa, 0xd8, 0x2b, 0xfb, 0x67, 0xbf, 0x49, - 0x8c, 0x7d, 0x8f, 0x1a, 0x96, 0x23, 0x08, 0xfc, 0xbb, 0xc6, 0xbc, 0xb8, 0xe4, 0xa4, 0x65, 0x88, - 0x39, 0x44, 0xe0, 0xbc, 0xd3, 0xa3, 0x0e, 0xe1, 0xd0, 0xff, 0x01, 0x39, 0x44, 0x3f, 0xb2, 0xe8, - 0x81, 0x7e, 0x88, 0x69, 0x40, 0xe2, 0x4b, 0x26, 0xe5, 0x90, 0x3d, 0x8b, 0x1e, 0xec, 0x62, 0xca, - 0xc9, 0x42, 0xdf, 0xef, 0x12, 0x84, 0x77, 0x09, 0xc5, 0x28, 0x0b, 0x89, 0xae, 0x48, 0xdd, 0xc9, - 0xe2, 0x85, 0xe0, 0x8a, 0xef, 0xb9, 0x43, 0x42, 0xc5, 0xea, 0x9d, 0xba, 0xe7, 0x18, 0x0d, 0xdd, - 0x80, 0x08, 0xe9, 0xfa, 0x1f, 0x6b, 0x4c, 0x65, 0x72, 0x6b, 0x75, 0xa2, 0x54, 0xfe, 0xbb, 0x35, - 0x46, 0x51, 0x05, 0x75, 0xea, 0x72, 0x7c, 0x8b, 0xe3, 0xb8, 0xf1, 0x99, 0x04, 0x70, 0xf2, 0x3c, - 0x5a, 0x85, 0xa5, 0xdd, 0x9a, 0xa6, 0xe8, 0xb5, 0xba, 0x56, 0xa9, 0x55, 0xf5, 0x66, 0xb5, 0x51, - 0x57, 0xca, 0x95, 0x9b, 0x15, 0x65, 0x27, 0x3d, 0x83, 0x2e, 0x42, 0x6a, 0x18, 0xbc, 0xa7, 0x34, - 0xd2, 0x12, 0x5a, 0x82, 0x8b, 0xc3, 0x97, 0xc5, 0x52, 0x43, 0x2b, 0x56, 0xaa, 0xe9, 0x10, 0x42, - 0x90, 0x1c, 0x06, 0xaa, 0xb5, 0xf4, 0x2c, 0xba, 0x0c, 0xf2, 0xe8, 0x9d, 0xbe, 0x57, 0xd1, 0x6e, - 0xe9, 0xbb, 0x8a, 0x56, 0x4b, 0x87, 0x57, 0xc2, 0x8f, 0xbe, 0xcc, 0xcc, 0x6c, 0x7c, 0x2f, 0x41, - 0x72, 0x74, 0x56, 0x51, 0x16, 0x56, 0xeb, 0x6a, 0xad, 0x5e, 0x6b, 0x14, 0xef, 0xe8, 0x0d, 0xad, - 0xa8, 0x35, 0x1b, 0x63, 0xca, 0xfe, 0x0d, 0xcb, 0xe3, 0x84, 0x46, 0xb3, 0x74, 0xb7, 0xa2, 0x69, - 0xca, 0x4e, 0x5a, 0xf2, 0x9f, 0x1d, 0x87, 0x8b, 0xe5, 0xb2, 0x52, 0xf7, 0xd1, 0xd0, 0x69, 0xa8, - 0xaa, 0xdc, 0x56, 0xca, 0x3e, 0x3a, 0xeb, 0x67, 0x64, 0xc2, 0xb6, 0x54, 0x53, 0x7d, 0x30, 0x7c, - 0xda, 0xbb, 0x7e, 0x40, 0x3b, 0x6a, 0x71, 0xaf, 0x9a, 0x9e, 0x13, 0x01, 0x7d, 0x2b, 0xc1, 0xa5, - 0xd3, 0x87, 0x11, 0xad, 0xc3, 0xd5, 0x81, 0xbd, 0xf2, 0x91, 0x52, 0x6e, 0x6a, 0x35, 0x55, 0x57, - 0x95, 0x46, 0xf3, 0x8e, 0x36, 0x16, 0xe1, 0x55, 0x58, 0x3b, 0x93, 0x59, 0xad, 0x69, 0xba, 0xda, - 0xac, 0xa6, 0xa5, 0xa9, 0xac, 0x46, 0xb3, 0x5c, 0x56, 0x1a, 0x8d, 0x74, 0x68, 0x2a, 0xeb, 0x66, - 0xb1, 0x72, 0xa7, 0xa9, 0x2a, 0xe9, 0x59, 0x2e, 0xbe, 0xf4, 0xfe, 0xb3, 0x97, 0x19, 0xe9, 0xc5, - 0xcb, 0x8c, 0xf4, 0xcb, 0xcb, 0x8c, 0xf4, 0xf8, 0x55, 0x66, 0xe6, 0xc5, 0xab, 0xcc, 0xcc, 0x8f, - 0xaf, 0x32, 0x33, 0xf7, 0xaf, 0xb6, 0x2d, 0x7a, 0xd0, 0xdb, 0xcf, 0xb7, 0x88, 0x2d, 0x7e, 0x4d, - 0x15, 0x86, 0xbe, 0x99, 0x3e, 0xe4, 0x3f, 0xf6, 0xf6, 0x23, 0xac, 0x1d, 0x6f, 0xfc, 0x15, 0x00, - 0x00, 0xff, 0xff, 0x1d, 0x56, 0x5e, 0x0e, 0x03, 0x0e, 0x00, 0x00, + 0x25, 0xf3, 0x1f, 0x18, 0x69, 0xe2, 0x32, 0x4d, 0x00, 0x03, 0x69, 0x52, 0xba, 0x30, 0x52, 0xa4, + 0x0c, 0x52, 0x18, 0x29, 0x02, 0x23, 0x55, 0xaa, 0x24, 0xb0, 0x0b, 0xa7, 0x4a, 0x95, 0x36, 0x41, + 0xb0, 0x33, 0xb3, 0x14, 0x1f, 0x12, 0x1d, 0x19, 0x46, 0x1a, 0x41, 0x33, 0xdf, 0x77, 0xce, 0x9c, + 0xef, 0xbc, 0x48, 0xc2, 0x5a, 0x9b, 0x78, 0x36, 0xf1, 0x8a, 0x1d, 0x97, 0xf4, 0x7b, 0xc5, 0xc3, + 0x6b, 0x45, 0x3a, 0xe8, 0x61, 0xaf, 0xd0, 0x73, 0x09, 0x25, 0x28, 0xcd, 0xc1, 0x02, 0x03, 0x0b, + 0x87, 0xd7, 0x56, 0x97, 0x3a, 0xa4, 0x43, 0x18, 0x56, 0xf4, 0xff, 0xe3, 0xb4, 0xd5, 0x6c, 0x87, + 0x90, 0x4e, 0x17, 0x17, 0xd9, 0x69, 0xbf, 0x7f, 0xbf, 0x68, 0xf6, 0x5d, 0x83, 0x5a, 0xc4, 0x11, + 0x78, 0x6e, 0x12, 0xa7, 0x96, 0x8d, 0x3d, 0x6a, 0xd8, 0x3d, 0x41, 0x58, 0xe1, 0xef, 0xe8, 0xdc, + 0xb3, 0x78, 0x54, 0x40, 0x93, 0xb6, 0x86, 0x33, 0x10, 0xd0, 0x39, 0xc3, 0xb6, 0x1c, 0x52, 0x64, + 0x7f, 0xf9, 0x55, 0xfe, 0x2b, 0x09, 0xa2, 0x77, 0xb0, 0xbd, 0x8f, 0x5d, 0xb4, 0x05, 0x31, 0xc3, + 0x34, 0x5d, 0xec, 0x79, 0xb2, 0xb4, 0x2e, 0x6d, 0x24, 0xca, 0xf2, 0x0f, 0x4f, 0xaf, 0x2c, 0x09, + 0xdf, 0x25, 0x8e, 0x34, 0xa9, 0x6b, 0x39, 0x1d, 0x35, 0x20, 0xa2, 0x0b, 0x10, 0x3d, 0xc2, 0x56, + 0xe7, 0x80, 0xca, 0x21, 0xdf, 0x44, 0x15, 0x27, 0xb4, 0x0a, 0x71, 0x1b, 0x53, 0xc3, 0x34, 0xa8, + 0x21, 0x87, 0x19, 0x32, 0x3c, 0xa3, 0x6d, 0x88, 0x1b, 0xa6, 0x89, 0x4d, 0xdd, 0xa0, 0x72, 0x64, + 0x5d, 0xda, 0x48, 0x6e, 0xad, 0x16, 0x78, 0xcc, 0x85, 0x20, 0xe6, 0x82, 0x16, 0xe8, 0x2d, 0x2f, + 0x3e, 0xfb, 0x29, 0x37, 0xf7, 0xe8, 0xe7, 0x9c, 0xf4, 0xe5, 0xab, 0x27, 0x9b, 0x12, 0x7b, 0x19, + 0x9b, 0x25, 0x9a, 0x3f, 0x82, 0x45, 0x1e, 0xb7, 0x8a, 0x3f, 0xee, 0x63, 0x8f, 0xfe, 0x53, 0xe1, + 0xe7, 0xbf, 0x95, 0x60, 0x59, 0x3b, 0x70, 0xb1, 0x77, 0x40, 0xba, 0xe6, 0x36, 0x6e, 0x5b, 0x9e, + 0x45, 0x9c, 0x06, 0xe9, 0x5a, 0xed, 0x01, 0xba, 0x08, 0x09, 0x1a, 0x40, 0x3c, 0x0a, 0xf5, 0xf8, + 0x02, 0xbd, 0x0f, 0xb1, 0x23, 0xcb, 0x31, 0xc9, 0x91, 0xc7, 0x9e, 0x4b, 0x6e, 0xfd, 0xb7, 0x30, + 0xd1, 0x2e, 0x85, 0x71, 0x7f, 0x7b, 0x9c, 0xad, 0x06, 0x66, 0x37, 0xaa, 0xdf, 0x3d, 0xbd, 0x92, + 0x9d, 0x6d, 0xf3, 0xc9, 0xab, 0x27, 0x9b, 0x79, 0x4e, 0xb9, 0xe2, 0x99, 0x1f, 0x15, 0x4f, 0x09, + 0x35, 0xff, 0x4c, 0x02, 0xb9, 0x81, 0xdd, 0x36, 0x76, 0xa8, 0xd1, 0xc1, 0x13, 0x3a, 0xb2, 0x00, + 0xbd, 0x21, 0x26, 0x84, 0x8c, 0xdc, 0xbc, 0x05, 0x25, 0x3b, 0x7f, 0x4f, 0xc9, 0xa5, 0x11, 0x25, + 0xa7, 0x45, 0x9b, 0xff, 0x46, 0x82, 0x7f, 0x9d, 0xf8, 0x1c, 0xba, 0x03, 0x8b, 0x87, 0x84, 0x5a, + 0x4e, 0x47, 0xef, 0x61, 0xd7, 0x22, 0xbc, 0x26, 0xc9, 0xad, 0x95, 0xa9, 0x7e, 0xdb, 0x16, 0xf3, + 0xc7, 0xdb, 0xed, 0xb3, 0x61, 0xbb, 0x2d, 0x70, 0xf3, 0x06, 0xb3, 0x46, 0xf7, 0x60, 0xc9, 0xb6, + 0x1c, 0x1d, 0x3f, 0xc0, 0xed, 0xbe, 0xcf, 0x0e, 0xbc, 0x86, 0xce, 0xe8, 0x15, 0xd9, 0x96, 0xa3, + 0x04, 0x4e, 0xb8, 0xef, 0xfc, 0x6f, 0x12, 0x24, 0x3e, 0xf0, 0x13, 0x51, 0x75, 0xee, 0x13, 0x94, + 0x82, 0x90, 0xc5, 0xa3, 0x8d, 0xa8, 0x21, 0xcb, 0x44, 0x05, 0x98, 0x37, 0x4c, 0xdb, 0x72, 0x78, + 0x9f, 0xce, 0x68, 0x6d, 0x4e, 0x9b, 0x39, 0x7f, 0x32, 0xc4, 0x0e, 0xb1, 0xeb, 0x27, 0x8b, 0x8d, + 0x5f, 0x44, 0x0d, 0x8e, 0xe8, 0x3f, 0xb0, 0x40, 0x09, 0x35, 0xba, 0xba, 0x18, 0x8a, 0x79, 0x66, + 0x99, 0x64, 0x77, 0x7b, 0x7c, 0x32, 0x6e, 0x01, 0xb4, 0x5d, 0x6c, 0x50, 0x3e, 0xbe, 0xd1, 0xb3, + 0x8e, 0x6f, 0x42, 0x18, 0x97, 0x68, 0xfe, 0x2e, 0x24, 0x99, 0x5e, 0xb1, 0x7d, 0x56, 0x20, 0xce, + 0xfa, 0x40, 0x1f, 0xea, 0x8e, 0xb1, 0x73, 0xd5, 0x44, 0x45, 0x88, 0xda, 0x8c, 0x24, 0x12, 0xbd, + 0x3c, 0xd5, 0x6c, 0x62, 0x13, 0x08, 0x5a, 0xfe, 0x8f, 0x10, 0xa4, 0x99, 0x6f, 0xde, 0x0d, 0x2c, + 0xa3, 0x6f, 0xb2, 0x1e, 0x46, 0x63, 0x0a, 0x8d, 0xc7, 0x34, 0x2c, 0x48, 0xf8, 0xec, 0x05, 0x89, + 0x9c, 0x5e, 0x90, 0xf9, 0xf1, 0x82, 0x18, 0x90, 0x36, 0x45, 0x63, 0xeb, 0x3d, 0xa6, 0x45, 0xa4, + 0x7c, 0x69, 0x2a, 0xe5, 0x25, 0x67, 0x50, 0xce, 0xbf, 0x7e, 0xa8, 0xd4, 0x94, 0x39, 0x3e, 0xea, + 0xe3, 0x05, 0x8d, 0xbd, 0x79, 0x41, 0x6f, 0xc4, 0x1f, 0x3e, 0xce, 0xcd, 0xfd, 0xfa, 0x38, 0x27, + 0xe5, 0xff, 0x9c, 0x87, 0x78, 0xc3, 0x25, 0x3d, 0xe2, 0x19, 0xdd, 0xa9, 0x56, 0xde, 0x81, 0x25, + 0x9e, 0x54, 0x2e, 0x48, 0x0f, 0xaa, 0xf2, 0xba, 0xce, 0x46, 0x9d, 0xe3, 0x8a, 0x0a, 0x64, 0x66, + 0x9b, 0xbf, 0x03, 0x89, 0x1e, 0x8b, 0x01, 0xbb, 0x9e, 0x1c, 0x59, 0x0f, 0xcf, 0x74, 0x7e, 0x4c, + 0x45, 0x3b, 0x90, 0xf4, 0xfa, 0xfb, 0xb6, 0x45, 0x75, 0xff, 0x43, 0x97, 0x55, 0xe4, 0x4c, 0x19, + 0x01, 0x6e, 0xed, 0xe3, 0xe8, 0x12, 0x2c, 0x72, 0xad, 0x41, 0x7d, 0xa3, 0x2c, 0x0d, 0x0b, 0xec, + 0x72, 0x57, 0x14, 0xf9, 0xea, 0x44, 0x42, 0x02, 0x6e, 0x8c, 0x71, 0x47, 0x65, 0x07, 0x16, 0xef, + 0x42, 0xd4, 0xa3, 0x06, 0xed, 0x7b, 0x72, 0x7c, 0x5d, 0xda, 0x48, 0x6d, 0xe5, 0xa6, 0x06, 0x22, + 0xc8, 0x7e, 0x93, 0xd1, 0x54, 0x41, 0x47, 0x2d, 0x40, 0xf7, 0x2d, 0xc7, 0xe8, 0xea, 0xd4, 0xe8, + 0x76, 0x07, 0xba, 0x8b, 0xbd, 0x7e, 0x97, 0xca, 0x09, 0x26, 0xf1, 0xe2, 0x94, 0x13, 0xcd, 0x27, + 0xa9, 0x8c, 0x53, 0x4e, 0xf8, 0x22, 0xb9, 0xc0, 0x0c, 0x73, 0x31, 0x02, 0xa2, 0x16, 0x9c, 0x1b, + 0x5b, 0xb3, 0x3a, 0x76, 0x4c, 0x19, 0xce, 0x9a, 0xb8, 0xf4, 0xe8, 0xae, 0x55, 0x1c, 0x13, 0x35, + 0x20, 0xcd, 0x57, 0x2d, 0x71, 0x83, 0x50, 0x93, 0x4c, 0xef, 0xff, 0x4e, 0xd5, 0xab, 0x08, 0x3e, + 0x0f, 0x4c, 0x4d, 0xe1, 0xb1, 0x33, 0xba, 0xea, 0xf7, 0x8b, 0xe7, 0x19, 0x1d, 0xec, 0xc9, 0x0b, + 0xeb, 0xe1, 0xd3, 0x06, 0x49, 0x1d, 0xb2, 0xd0, 0x12, 0xcc, 0x53, 0x8b, 0x76, 0xb1, 0xbc, 0xc8, + 0xda, 0x8b, 0x1f, 0xfc, 0x89, 0xf5, 0xfa, 0xb6, 0x6d, 0xb8, 0x03, 0x39, 0xc5, 0xee, 0x83, 0xe3, + 0x8d, 0x88, 0x3f, 0x04, 0xf9, 0xcf, 0x25, 0x48, 0x8e, 0x26, 0x68, 0x0d, 0x12, 0x03, 0xec, 0xe9, + 0x6d, 0xd2, 0x77, 0xa8, 0xf8, 0x38, 0x8d, 0x0f, 0xb0, 0x57, 0xf1, 0xcf, 0x7e, 0x93, 0x18, 0xfb, + 0x1e, 0x35, 0x2c, 0x47, 0x10, 0xf8, 0x77, 0x91, 0x05, 0x71, 0xc9, 0x49, 0x2b, 0x10, 0x77, 0x88, + 0xc0, 0x79, 0xa7, 0xc7, 0x1c, 0xc2, 0xa1, 0xff, 0x03, 0x72, 0x88, 0x7e, 0x64, 0xd1, 0x03, 0xfd, + 0x10, 0xd3, 0x80, 0xc4, 0x97, 0x4c, 0xda, 0x21, 0x7b, 0x16, 0x3d, 0xd8, 0xc5, 0x94, 0x93, 0x45, + 0x7c, 0xbf, 0x4b, 0x10, 0xd9, 0x25, 0x14, 0xa3, 0x1c, 0x24, 0x7b, 0x22, 0x75, 0xc7, 0x8b, 0x17, + 0x82, 0x2b, 0xbe, 0xe7, 0x0e, 0x09, 0x15, 0xab, 0x77, 0xe6, 0x9e, 0x63, 0x34, 0x74, 0x1d, 0xa2, + 0xa4, 0xe7, 0x7f, 0xac, 0xb1, 0x28, 0x53, 0x5b, 0x6b, 0x53, 0xa5, 0xf2, 0xdf, 0xad, 0x33, 0x8a, + 0x2a, 0xa8, 0x33, 0x97, 0xe3, 0x5b, 0x1c, 0xc7, 0xcd, 0x4f, 0x25, 0x80, 0xe3, 0xe7, 0xd1, 0x1a, + 0x2c, 0xef, 0xd6, 0x35, 0x45, 0xaf, 0x37, 0xb4, 0x6a, 0xbd, 0xa6, 0xb7, 0x6a, 0xcd, 0x86, 0x52, + 0xa9, 0xde, 0xac, 0x2a, 0xdb, 0x99, 0x39, 0x74, 0x1e, 0xd2, 0xa3, 0xe0, 0x5d, 0xa5, 0x99, 0x91, + 0xd0, 0x32, 0x9c, 0x1f, 0xbd, 0x2c, 0x95, 0x9b, 0x5a, 0xa9, 0x5a, 0xcb, 0x84, 0x10, 0x82, 0xd4, + 0x28, 0x50, 0xab, 0x67, 0xc2, 0xe8, 0x22, 0xc8, 0xe3, 0x77, 0xfa, 0x5e, 0x55, 0xbb, 0xa5, 0xef, + 0x2a, 0x5a, 0x3d, 0x13, 0x59, 0x8d, 0x3c, 0xfc, 0x22, 0x3b, 0xb7, 0xf9, 0xbd, 0x04, 0xa9, 0xf1, + 0x59, 0x45, 0x39, 0x58, 0x6b, 0xa8, 0xf5, 0x46, 0xbd, 0x59, 0xba, 0xad, 0x37, 0xb5, 0x92, 0xd6, + 0x6a, 0x4e, 0x44, 0xf6, 0x6f, 0x58, 0x99, 0x24, 0x34, 0x5b, 0xe5, 0x3b, 0x55, 0x4d, 0x53, 0xb6, + 0x33, 0x92, 0xff, 0xec, 0x24, 0x5c, 0xaa, 0x54, 0x94, 0x86, 0x8f, 0x86, 0x4e, 0x42, 0x55, 0x65, + 0x47, 0xa9, 0xf8, 0x68, 0xd8, 0xcf, 0xc8, 0x94, 0x6d, 0xb9, 0xae, 0xfa, 0x60, 0xe4, 0xa4, 0x77, + 0x7d, 0x41, 0xdb, 0x6a, 0x69, 0xaf, 0x96, 0x99, 0x17, 0x82, 0xbe, 0x96, 0xe0, 0xc2, 0xc9, 0xc3, + 0x88, 0x36, 0xe0, 0xf2, 0xd0, 0x5e, 0xf9, 0x50, 0xa9, 0xb4, 0xb4, 0xba, 0xaa, 0xab, 0x4a, 0xb3, + 0x75, 0x5b, 0x9b, 0x50, 0x78, 0x19, 0xd6, 0x4f, 0x65, 0xd6, 0xea, 0x9a, 0xae, 0xb6, 0x6a, 0x19, + 0x69, 0x26, 0xab, 0xd9, 0xaa, 0x54, 0x94, 0x66, 0x33, 0x13, 0x9a, 0xc9, 0xba, 0x59, 0xaa, 0xde, + 0x6e, 0xa9, 0x4a, 0x26, 0xcc, 0x83, 0x2f, 0xbf, 0xf7, 0xec, 0x45, 0x56, 0x7a, 0xfe, 0x22, 0x2b, + 0xfd, 0xf2, 0x22, 0x2b, 0x3d, 0x7a, 0x99, 0x9d, 0x7b, 0xfe, 0x32, 0x3b, 0xf7, 0xe3, 0xcb, 0xec, + 0xdc, 0xbd, 0xcb, 0x1d, 0x8b, 0x1e, 0xf4, 0xf7, 0x0b, 0x6d, 0x62, 0x8b, 0x5f, 0x5b, 0xc5, 0x91, + 0x6f, 0xa6, 0x0f, 0xf8, 0x8f, 0xc1, 0xfd, 0x28, 0x6b, 0xc7, 0xeb, 0x7f, 0x05, 0x00, 0x00, 0xff, + 0xff, 0x98, 0xe9, 0x54, 0xdb, 0x23, 0x0e, 0x00, 0x00, +} func (this *GroupPolicyInfo) Equal(that interface{}) bool { if that == nil {