chore: Remove AddedAt from member request on group creation and member update (#11815)

## Description

Closes: #11794

- Remove `AddedAt` from member request on group creation and member update
- Set member `AddedAt` field properly on member update.

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/main/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
This commit is contained in:
Marie Gauthier 2022-04-29 14:01:20 +02:00 committed by GitHub
parent 8dfc205731
commit bc1aa0645c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 1261 additions and 1064 deletions

View File

@ -19,7 +19,7 @@ import (
var _ protoreflect.List = (*_MsgCreateGroup_2_list)(nil)
type _MsgCreateGroup_2_list struct {
list *[]*Member
list *[]*MemberRequest
}
func (x *_MsgCreateGroup_2_list) Len() int {
@ -35,18 +35,18 @@ func (x *_MsgCreateGroup_2_list) Get(i int) protoreflect.Value {
func (x *_MsgCreateGroup_2_list) Set(i int, value protoreflect.Value) {
valueUnwrapped := value.Message()
concreteValue := valueUnwrapped.Interface().(*Member)
concreteValue := valueUnwrapped.Interface().(*MemberRequest)
(*x.list)[i] = concreteValue
}
func (x *_MsgCreateGroup_2_list) Append(value protoreflect.Value) {
valueUnwrapped := value.Message()
concreteValue := valueUnwrapped.Interface().(*Member)
concreteValue := valueUnwrapped.Interface().(*MemberRequest)
*x.list = append(*x.list, concreteValue)
}
func (x *_MsgCreateGroup_2_list) AppendMutable() protoreflect.Value {
v := new(Member)
v := new(MemberRequest)
*x.list = append(*x.list, v)
return protoreflect.ValueOfMessage(v.ProtoReflect())
}
@ -59,7 +59,7 @@ func (x *_MsgCreateGroup_2_list) Truncate(n int) {
}
func (x *_MsgCreateGroup_2_list) NewElement() protoreflect.Value {
v := new(Member)
v := new(MemberRequest)
return protoreflect.ValueOfMessage(v.ProtoReflect())
}
@ -286,7 +286,7 @@ func (x *fastReflection_MsgCreateGroup) Mutable(fd protoreflect.FieldDescriptor)
switch fd.FullName() {
case "cosmos.group.v1.MsgCreateGroup.members":
if x.Members == nil {
x.Members = []*Member{}
x.Members = []*MemberRequest{}
}
value := &_MsgCreateGroup_2_list{list: &x.Members}
return protoreflect.ValueOfList(value)
@ -310,7 +310,7 @@ func (x *fastReflection_MsgCreateGroup) NewField(fd protoreflect.FieldDescriptor
case "cosmos.group.v1.MsgCreateGroup.admin":
return protoreflect.ValueOfString("")
case "cosmos.group.v1.MsgCreateGroup.members":
list := []*Member{}
list := []*MemberRequest{}
return protoreflect.ValueOfList(&_MsgCreateGroup_2_list{list: &list})
case "cosmos.group.v1.MsgCreateGroup.metadata":
return protoreflect.ValueOfString("")
@ -566,7 +566,7 @@ func (x *fastReflection_MsgCreateGroup) ProtoMethods() *protoiface.Methods {
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.Members = append(x.Members, &Member{})
x.Members = append(x.Members, &MemberRequest{})
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Members[len(x.Members)-1]); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
@ -1045,7 +1045,7 @@ func (x *fastReflection_MsgCreateGroupResponse) ProtoMethods() *protoiface.Metho
var _ protoreflect.List = (*_MsgUpdateGroupMembers_3_list)(nil)
type _MsgUpdateGroupMembers_3_list struct {
list *[]*Member
list *[]*MemberRequest
}
func (x *_MsgUpdateGroupMembers_3_list) Len() int {
@ -1061,18 +1061,18 @@ func (x *_MsgUpdateGroupMembers_3_list) Get(i int) protoreflect.Value {
func (x *_MsgUpdateGroupMembers_3_list) Set(i int, value protoreflect.Value) {
valueUnwrapped := value.Message()
concreteValue := valueUnwrapped.Interface().(*Member)
concreteValue := valueUnwrapped.Interface().(*MemberRequest)
(*x.list)[i] = concreteValue
}
func (x *_MsgUpdateGroupMembers_3_list) Append(value protoreflect.Value) {
valueUnwrapped := value.Message()
concreteValue := valueUnwrapped.Interface().(*Member)
concreteValue := valueUnwrapped.Interface().(*MemberRequest)
*x.list = append(*x.list, concreteValue)
}
func (x *_MsgUpdateGroupMembers_3_list) AppendMutable() protoreflect.Value {
v := new(Member)
v := new(MemberRequest)
*x.list = append(*x.list, v)
return protoreflect.ValueOfMessage(v.ProtoReflect())
}
@ -1085,7 +1085,7 @@ func (x *_MsgUpdateGroupMembers_3_list) Truncate(n int) {
}
func (x *_MsgUpdateGroupMembers_3_list) NewElement() protoreflect.Value {
v := new(Member)
v := new(MemberRequest)
return protoreflect.ValueOfMessage(v.ProtoReflect())
}
@ -1312,7 +1312,7 @@ func (x *fastReflection_MsgUpdateGroupMembers) Mutable(fd protoreflect.FieldDesc
switch fd.FullName() {
case "cosmos.group.v1.MsgUpdateGroupMembers.member_updates":
if x.MemberUpdates == nil {
x.MemberUpdates = []*Member{}
x.MemberUpdates = []*MemberRequest{}
}
value := &_MsgUpdateGroupMembers_3_list{list: &x.MemberUpdates}
return protoreflect.ValueOfList(value)
@ -1338,7 +1338,7 @@ func (x *fastReflection_MsgUpdateGroupMembers) NewField(fd protoreflect.FieldDes
case "cosmos.group.v1.MsgUpdateGroupMembers.group_id":
return protoreflect.ValueOfUint64(uint64(0))
case "cosmos.group.v1.MsgUpdateGroupMembers.member_updates":
list := []*Member{}
list := []*MemberRequest{}
return protoreflect.ValueOfList(&_MsgUpdateGroupMembers_3_list{list: &list})
default:
if fd.IsExtension() {
@ -1608,7 +1608,7 @@ func (x *fastReflection_MsgUpdateGroupMembers) ProtoMethods() *protoiface.Method
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.MemberUpdates = append(x.MemberUpdates, &Member{})
x.MemberUpdates = append(x.MemberUpdates, &MemberRequest{})
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MemberUpdates[len(x.MemberUpdates)-1]); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
@ -5362,7 +5362,7 @@ func (x *fastReflection_MsgUpdateGroupPolicyAdmin) ProtoMethods() *protoiface.Me
var _ protoreflect.List = (*_MsgCreateGroupWithPolicy_2_list)(nil)
type _MsgCreateGroupWithPolicy_2_list struct {
list *[]*Member
list *[]*MemberRequest
}
func (x *_MsgCreateGroupWithPolicy_2_list) Len() int {
@ -5378,18 +5378,18 @@ func (x *_MsgCreateGroupWithPolicy_2_list) Get(i int) protoreflect.Value {
func (x *_MsgCreateGroupWithPolicy_2_list) Set(i int, value protoreflect.Value) {
valueUnwrapped := value.Message()
concreteValue := valueUnwrapped.Interface().(*Member)
concreteValue := valueUnwrapped.Interface().(*MemberRequest)
(*x.list)[i] = concreteValue
}
func (x *_MsgCreateGroupWithPolicy_2_list) Append(value protoreflect.Value) {
valueUnwrapped := value.Message()
concreteValue := valueUnwrapped.Interface().(*Member)
concreteValue := valueUnwrapped.Interface().(*MemberRequest)
*x.list = append(*x.list, concreteValue)
}
func (x *_MsgCreateGroupWithPolicy_2_list) AppendMutable() protoreflect.Value {
v := new(Member)
v := new(MemberRequest)
*x.list = append(*x.list, v)
return protoreflect.ValueOfMessage(v.ProtoReflect())
}
@ -5402,7 +5402,7 @@ func (x *_MsgCreateGroupWithPolicy_2_list) Truncate(n int) {
}
func (x *_MsgCreateGroupWithPolicy_2_list) NewElement() protoreflect.Value {
v := new(Member)
v := new(MemberRequest)
return protoreflect.ValueOfMessage(v.ProtoReflect())
}
@ -5680,7 +5680,7 @@ func (x *fastReflection_MsgCreateGroupWithPolicy) Mutable(fd protoreflect.FieldD
switch fd.FullName() {
case "cosmos.group.v1.MsgCreateGroupWithPolicy.members":
if x.Members == nil {
x.Members = []*Member{}
x.Members = []*MemberRequest{}
}
value := &_MsgCreateGroupWithPolicy_2_list{list: &x.Members}
return protoreflect.ValueOfList(value)
@ -5713,7 +5713,7 @@ func (x *fastReflection_MsgCreateGroupWithPolicy) NewField(fd protoreflect.Field
case "cosmos.group.v1.MsgCreateGroupWithPolicy.admin":
return protoreflect.ValueOfString("")
case "cosmos.group.v1.MsgCreateGroupWithPolicy.members":
list := []*Member{}
list := []*MemberRequest{}
return protoreflect.ValueOfList(&_MsgCreateGroupWithPolicy_2_list{list: &list})
case "cosmos.group.v1.MsgCreateGroupWithPolicy.group_metadata":
return protoreflect.ValueOfString("")
@ -6018,7 +6018,7 @@ func (x *fastReflection_MsgCreateGroupWithPolicy) ProtoMethods() *protoiface.Met
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
x.Members = append(x.Members, &Member{})
x.Members = append(x.Members, &MemberRequest{})
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Members[len(x.Members)-1]); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
@ -13604,7 +13604,7 @@ type MsgCreateGroup struct {
// admin is the account address of the group admin.
Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"`
// members defines the group members.
Members []*Member `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
Members []*MemberRequest `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
// metadata is any arbitrary metadata to attached to the group.
Metadata string `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
}
@ -13636,7 +13636,7 @@ func (x *MsgCreateGroup) GetAdmin() string {
return ""
}
func (x *MsgCreateGroup) GetMembers() []*Member {
func (x *MsgCreateGroup) GetMembers() []*MemberRequest {
if x != nil {
return x.Members
}
@ -13699,7 +13699,7 @@ type MsgUpdateGroupMembers struct {
GroupId uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
// member_updates is the list of members to update,
// set weight to 0 to remove a member.
MemberUpdates []*Member `protobuf:"bytes,3,rep,name=member_updates,json=memberUpdates,proto3" json:"member_updates,omitempty"`
MemberUpdates []*MemberRequest `protobuf:"bytes,3,rep,name=member_updates,json=memberUpdates,proto3" json:"member_updates,omitempty"`
}
func (x *MsgUpdateGroupMembers) Reset() {
@ -13736,7 +13736,7 @@ func (x *MsgUpdateGroupMembers) GetGroupId() uint64 {
return 0
}
func (x *MsgUpdateGroupMembers) GetMemberUpdates() []*Member {
func (x *MsgUpdateGroupMembers) GetMemberUpdates() []*MemberRequest {
if x != nil {
return x.MemberUpdates
}
@ -14099,7 +14099,7 @@ type MsgCreateGroupWithPolicy struct {
// admin is the account address of the group and group policy admin.
Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"`
// members defines the group members.
Members []*Member `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
Members []*MemberRequest `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
// group_metadata is any arbitrary metadata attached to the group.
GroupMetadata string `protobuf:"bytes,3,opt,name=group_metadata,json=groupMetadata,proto3" json:"group_metadata,omitempty"`
// group_policy_metadata is any arbitrary metadata attached to the group policy.
@ -14138,7 +14138,7 @@ func (x *MsgCreateGroupWithPolicy) GetAdmin() string {
return ""
}
func (x *MsgCreateGroupWithPolicy) GetMembers() []*Member {
func (x *MsgCreateGroupWithPolicy) GetMembers() []*MemberRequest {
if x != nil {
return x.Members
}
@ -14866,130 +14866,81 @@ var file_cosmos_group_v1_tx_proto_rawDesc = []byte{
0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67,
0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x01,
0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa8, 0x01,
0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00,
0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69,
0x6e, 0x22, 0x33, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x6d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x04, 0xc8, 0xde,
0x1f, 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x73, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x1f, 0x0a,
0x1d, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3,
0x01, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
0x64, 0x12, 0x35, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08,
0x6e, 0x65, 0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e,
0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2,
0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19,
0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69,
0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05,
0x12, 0x3e, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x0a, 0x82, 0xe7,
0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x33, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0xbb, 0x01,
0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00,
0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x3a,
0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x1f, 0x0a, 0x1d, 0x4d,
0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x01, 0x0a,
0x13, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41,
0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12,
0x35, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x6e, 0x65,
0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x05,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d,
0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41,
0x6e, 0x79, 0x42, 0x22, 0xca, 0xb4, 0x2d, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x0e, 0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a,
0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x52, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 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, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x19, 0x4d,
0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 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, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x0a, 0x82, 0xe7, 0xb0,
0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x84, 0x03, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x04,
0xc8, 0xde, 0x1f, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a,
0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x15, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x61, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69,
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x61, 0x0a, 0x0f, 0x64,
0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x22, 0xca, 0xb4, 0x2d, 0x1e,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e,
0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e,
0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x0e,
0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x89,
0x01, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 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, 0xd2, 0xb4,
0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x4d, 0x73,
0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x93, 0x02, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18,
0x61, 0x74, 0x61, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22,
0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64,
0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x12, 0x61, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
0x42, 0x22, 0xca, 0xb4, 0x2d, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x3a, 0x0e, 0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x22, 0x52, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 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, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x19, 0x4d, 0x73, 0x67,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x4a, 0x0a, 0x14, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
@ -14997,205 +14948,255 @@ var file_cosmos_group_v1_tx_proto_rawDesc = []byte{
0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x79, 0x42, 0x22, 0xca, 0xb4, 0x2d, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x0e, 0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x2c, 0x0a, 0x2a, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x63,
0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x1c, 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, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 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, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x0a, 0x82, 0xe7,
0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 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, 0x8a, 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,
0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x73,
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x08,
0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 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, 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, 0x12, 0x88, 0xa0, 0x1f, 0x00, 0x82,
0xe7, 0xb0, 0x2a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x73, 0x22, 0x3c, 0x0a,
0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72,
0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x13, 0x4d,
0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07,
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68,
0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65,
0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49,
0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65,
0x72, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06,
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 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, 0x0a, 0x82,
0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67,
0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x07,
0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f,
0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72,
0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63,
0x75, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74,
0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x3a, 0x0b,
0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x22, 0x52, 0x0a, 0x0f, 0x4d,
0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f,
0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f,
0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
0x6c, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x73, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x08, 0x6e, 0x65, 0x77, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05,
0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x8b, 0x03, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x3a,
0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x17, 0x0a,
0x15, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x2a, 0x0a, 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x14,
0x0a, 0x10, 0x45, 0x58, 0x45, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x45, 0x43, 0x5f, 0x54, 0x52, 0x59,
0x10, 0x01, 0x32, 0xc3, 0x0b, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x57, 0x0a, 0x0b, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x73, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x66, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x2c, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73,
0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69,
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x13, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x11, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a,
0x15, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x61, 0x73,
0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x41, 0x64, 0x6d, 0x69, 0x6e,
0x12, 0x61, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42,
0x22, 0xca, 0xb4, 0x2d, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x3a, 0x0e, 0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64,
0x6d, 0x69, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x49, 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, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22,
0x23, 0x0a, 0x21, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x63,
0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x61,
0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74,
0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 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, 0xd2, 0xb4, 0x2d, 0x14, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x64, 0x65, 0x63, 0x69, 0x73,
0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x22, 0xca, 0xb4, 0x2d, 0x1e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x3a, 0x0e, 0x88, 0xa0, 0x1f, 0x00,
0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x2c, 0x0a, 0x2a, 0x4d, 0x73,
0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x1c, 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, 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x64, 0x6d,
0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 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, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x3a, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 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, 0x8a, 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, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f,
0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70,
0x6f, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x12, 0x30, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 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, 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, 0x12,
0x88, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65,
0x72, 0x73, 0x22, 0x3c, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50,
0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64,
0x22, 0x78, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50,
0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f,
0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72,
0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0c, 0x82, 0xe7,
0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73,
0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x07, 0x4d, 0x73,
0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70,
0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52,
0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x22, 0x11,
0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x6d, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b,
0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x34, 0x0a,
0x08, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x78, 0x65, 0x63, 0x75,
0x74, 0x6f, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72,
0x22, 0x52, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x45, 0x78,
0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x22, 0x6c, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x0a, 0x07, 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, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x2a, 0x0a, 0x04, 0x45,
0x78, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x58, 0x45, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50,
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x45,
0x43, 0x5f, 0x54, 0x52, 0x59, 0x10, 0x01, 0x32, 0xc3, 0x0b, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12,
0x57, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a,
0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e,
0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f,
0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2f,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x69, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x2d, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73,
0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x15, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x31,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x57,
0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x16,
0x69, 0x74, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x78, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2a, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73,
0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69,
0x63, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64,
0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64,
0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1f,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x6d,
0x69, 0x6e, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x63, 0x69,
0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63,
0x79, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a,
0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x79, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a,
0x19, 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, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 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, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 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,
0x12, 0x60, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
0x61, 0x6c, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72,
0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d,
0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x72,
0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68,
0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2c, 0x2e, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73,
0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x56, 0x6f,
0x74, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x20, 0x2e, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42,
0x0a, 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63,
0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xb6, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
0x6c, 0x69, 0x63, 0x79, 0x1a, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x63, 0x69, 0x73,
0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x81, 0x01, 0x0a, 0x19, 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, 0x12,
0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76,
0x31, 0x2e, 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, 0x1a, 0x35,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x0f, 0x43, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0f,
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5c, 0x56, 0x31, 0xe2,
0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x5c, 0x56,
0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11,
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x3a, 0x3a, 0x56,
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x2e, 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, 0x12, 0x60, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50,
0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62,
0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2a, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73,
0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x10, 0x57, 0x69, 0x74, 0x68, 0x64,
0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x24, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73,
0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61,
0x6c, 0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50,
0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x42, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74,
0x65, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x18, 0x2e, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73,
0x67, 0x45, 0x78, 0x65, 0x63, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x65, 0x63, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x4c, 0x65, 0x61, 0x76, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4c, 0x65, 0x61, 0x76, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xb6, 0x01,
0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x61,
0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f,
0x76, 0x31, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58,
0xaa, 0x02, 0x0f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x56, 0x31, 0xca, 0x02, 0x0f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0xea, 0x02, 0x11, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -15242,16 +15243,16 @@ var file_cosmos_group_v1_tx_proto_goTypes = []interface{}{
(*MsgExecResponse)(nil), // 26: cosmos.group.v1.MsgExecResponse
(*MsgLeaveGroup)(nil), // 27: cosmos.group.v1.MsgLeaveGroup
(*MsgLeaveGroupResponse)(nil), // 28: cosmos.group.v1.MsgLeaveGroupResponse
(*Member)(nil), // 29: cosmos.group.v1.Member
(*MemberRequest)(nil), // 29: cosmos.group.v1.MemberRequest
(*anypb.Any)(nil), // 30: google.protobuf.Any
(VoteOption)(0), // 31: cosmos.group.v1.VoteOption
(ProposalExecutorResult)(0), // 32: cosmos.group.v1.ProposalExecutorResult
}
var file_cosmos_group_v1_tx_proto_depIdxs = []int32{
29, // 0: cosmos.group.v1.MsgCreateGroup.members:type_name -> cosmos.group.v1.Member
29, // 1: cosmos.group.v1.MsgUpdateGroupMembers.member_updates:type_name -> cosmos.group.v1.Member
29, // 0: cosmos.group.v1.MsgCreateGroup.members:type_name -> cosmos.group.v1.MemberRequest
29, // 1: cosmos.group.v1.MsgUpdateGroupMembers.member_updates:type_name -> cosmos.group.v1.MemberRequest
30, // 2: cosmos.group.v1.MsgCreateGroupPolicy.decision_policy:type_name -> google.protobuf.Any
29, // 3: cosmos.group.v1.MsgCreateGroupWithPolicy.members:type_name -> cosmos.group.v1.Member
29, // 3: cosmos.group.v1.MsgCreateGroupWithPolicy.members:type_name -> cosmos.group.v1.MemberRequest
30, // 4: cosmos.group.v1.MsgCreateGroupWithPolicy.decision_policy:type_name -> google.protobuf.Any
30, // 5: cosmos.group.v1.MsgUpdateGroupPolicyDecisionPolicy.decision_policy:type_name -> google.protobuf.Any
30, // 6: cosmos.group.v1.MsgSubmitProposal.messages:type_name -> google.protobuf.Any

File diff suppressed because it is too large Load Diff

View File

@ -71,7 +71,7 @@ message MsgCreateGroup {
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
// members defines the group members.
repeated Member members = 2 [(gogoproto.nullable) = false];
repeated MemberRequest members = 2 [(gogoproto.nullable) = false];
// metadata is any arbitrary metadata to attached to the group.
string metadata = 3;
@ -96,7 +96,7 @@ message MsgUpdateGroupMembers {
// member_updates is the list of members to update,
// set weight to 0 to remove a member.
repeated Member member_updates = 3 [(gogoproto.nullable) = false];
repeated MemberRequest member_updates = 3 [(gogoproto.nullable) = false];
}
// MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type.
@ -189,7 +189,7 @@ message MsgCreateGroupWithPolicy {
string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
// members defines the group members.
repeated Member members = 2 [(gogoproto.nullable) = false];
repeated MemberRequest members = 2 [(gogoproto.nullable) = false];
// group_metadata is any arbitrary metadata attached to the group.
string group_metadata = 3;

View File

@ -12,7 +12,7 @@ import "cosmos_proto/cosmos.proto";
import "google/protobuf/any.proto";
// Member represents a group member with an account address,
// non-zero weight and metadata.
// non-zero weight, metadata and added_at timestamp.
message Member {
// address is the member's account address.
@ -28,11 +28,20 @@ message Member {
google.protobuf.Timestamp added_at = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
}
// Members defines a repeated slice of Member objects.
message Members {
// members is the list of members.
repeated Member members = 1 [(gogoproto.nullable) = false];
// MemberRequest represents a group member to be used in Msg server requests.
// 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"];
// weight is the member's voting weight that should be greater than 0.
string weight = 2;
// metadata is any arbitrary metadata attached to the member.
string metadata = 3;
}
// ThresholdDecisionPolicy is a decision policy where a proposal passes when it

View File

@ -98,7 +98,7 @@ Where members.json contains:
return err
}
members, err := parseMembers(clientCtx, args[2])
members, err := parseMembers(args[2])
if err != nil {
return err
}
@ -166,7 +166,7 @@ Set a member's weight to "0" to delete it.
return err
}
members, err := parseMembers(clientCtx, args[2])
members, err := parseMembers(args[2])
if err != nil {
return err
}
@ -330,7 +330,7 @@ where members.json contains:
return err
}
members, err := parseMembers(clientCtx, args[3])
members, err := parseMembers(args[3])
if err != nil {
return err
}

View File

@ -5,14 +5,13 @@ import (
"io/ioutil"
"os"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/group"
)
func parseMembers(clientCtx client.Context, membersFile string) ([]group.Member, error) {
members := group.Members{}
func parseMembers(membersFile string) ([]group.MemberRequest, error) {
members := group.MemberRequests{}
if membersFile == "" {
return members.Members, nil
@ -23,7 +22,7 @@ func parseMembers(clientCtx client.Context, membersFile string) ([]group.Member,
return nil, err
}
err = clientCtx.Codec.UnmarshalJSON(contents, &members)
err = json.Unmarshal(contents, &members)
if err != nil {
return nil, err
}

View File

@ -23,7 +23,7 @@ func TestQueryGroupsByMember(t *testing.T) {
addrs := simapp.AddTestAddrsIncremental(app, ctx, 6, sdk.NewInt(30000000))
// Initial group, group policy and balance setup
members := []group.Member{
members := []group.MemberRequest{
{Address: addrs[2].String(), Weight: "1"}, {Address: addrs[3].String(), Weight: "2"},
}
_, err := app.GroupKeeper.CreateGroup(sdkCtx, &group.MsgCreateGroup{
@ -32,7 +32,7 @@ func TestQueryGroupsByMember(t *testing.T) {
})
require.NoError(t, err)
members = []group.Member{
members = []group.MemberRequest{
{Address: addrs[3].String(), Weight: "1"}, {Address: addrs[4].String(), Weight: "2"},
}
_, err = app.GroupKeeper.CreateGroup(sdkCtx, &group.MsgCreateGroup{

View File

@ -51,7 +51,7 @@ func (s *TestSuite) SetupTest() {
s.addrs = simapp.AddTestAddrsIncremental(app, ctx, 6, sdk.NewInt(30000000))
// Initial group, group policy and balance setup
members := []group.Member{
members := []group.MemberRequest{
{Address: s.addrs[4].String(), Weight: "1"}, {Address: s.addrs[1].String(), Weight: "2"},
}
groupRes, err := s.keeper.CreateGroup(s.ctx, &group.MsgCreateGroup{
@ -92,14 +92,12 @@ func (s *TestSuite) TestCreateGroup() {
addr5 := addrs[4]
addr6 := addrs[5]
members := []group.Member{{
members := []group.MemberRequest{{
Address: addr5.String(),
Weight: "1",
AddedAt: s.blockTime,
}, {
Address: addr6.String(),
Weight: "2",
AddedAt: s.blockTime,
}}
expGroups := []*group.GroupInfo{
@ -142,7 +140,7 @@ func (s *TestSuite) TestCreateGroup() {
"member metadata too long": {
req: &group.MsgCreateGroup{
Admin: addr1.String(),
Members: []group.Member{{
Members: []group.MemberRequest{{
Address: addr3.String(),
Weight: "1",
Metadata: strings.Repeat("a", 256),
@ -153,7 +151,7 @@ func (s *TestSuite) TestCreateGroup() {
"zero member weight": {
req: &group.MsgCreateGroup{
Admin: addr1.String(),
Members: []group.Member{{
Members: []group.MemberRequest{{
Address: addr3.String(),
Weight: "0",
}},
@ -166,6 +164,7 @@ func (s *TestSuite) TestCreateGroup() {
for msg, spec := range specs {
spec := spec
s.Run(msg, func() {
blockTime := sdk.UnwrapSDKContext(s.ctx).BlockTime()
res, err := s.keeper.CreateGroup(s.ctx, spec.req)
if spec.expErr {
s.Require().Error(err)
@ -204,7 +203,7 @@ func (s *TestSuite) TestCreateGroup() {
s.Assert().Equal(members[i].Metadata, loadedMembers[i].Member.Metadata)
s.Assert().Equal(members[i].Address, loadedMembers[i].Member.Address)
s.Assert().Equal(members[i].Weight, loadedMembers[i].Member.Weight)
s.Assert().Equal(members[i].AddedAt, loadedMembers[i].Member.AddedAt)
s.Assert().Equal(blockTime, loadedMembers[i].Member.AddedAt)
s.Assert().Equal(id, loadedMembers[i].GroupId)
}
@ -233,10 +232,9 @@ func (s *TestSuite) TestUpdateGroupAdmin() {
addr3 := addrs[2]
addr4 := addrs[3]
members := []group.Member{{
members := []group.MemberRequest{{
Address: addr1.String(),
Weight: "1",
AddedAt: s.blockTime,
}}
oldAdmin := addr2.String()
newAdmin := addr3.String()
@ -398,7 +396,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
member1 := addr5.String()
member2 := addr6.String()
members := []group.Member{{
members := []group.MemberRequest{{
Address: member1,
Weight: "1",
}}
@ -421,7 +419,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: myAdmin,
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: member2,
Weight: "2",
}},
@ -438,6 +436,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
Member: &group.Member{
Address: member2,
Weight: "2",
AddedAt: s.sdkCtx.BlockTime(),
},
GroupId: groupID,
},
@ -445,6 +444,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
Member: &group.Member{
Address: member1,
Weight: "1",
AddedAt: s.blockTime,
},
GroupId: groupID,
},
@ -454,7 +454,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: myAdmin,
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: member1,
Weight: "2",
}},
@ -472,6 +472,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
Member: &group.Member{
Address: member1,
Weight: "2",
AddedAt: s.blockTime,
},
},
},
@ -480,7 +481,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: myAdmin,
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: member1,
Weight: "1",
}},
@ -498,6 +499,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
Member: &group.Member{
Address: member1,
Weight: "1",
AddedAt: s.blockTime,
},
},
},
@ -506,7 +508,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: myAdmin,
MemberUpdates: []group.Member{
MemberUpdates: []group.MemberRequest{
{
Address: member1,
Weight: "0",
@ -529,6 +531,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
Member: &group.Member{
Address: member2,
Weight: "1",
AddedAt: s.sdkCtx.BlockTime(),
},
}},
},
@ -536,7 +539,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: myAdmin,
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: member1,
Weight: "0",
}},
@ -554,7 +557,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: myAdmin,
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: addr4.String(),
Weight: "0",
}},
@ -579,7 +582,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: groupID,
Admin: addr3.String(),
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: member1,
Weight: "2",
}},
@ -604,7 +607,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
req: &group.MsgUpdateGroupMembers{
GroupId: 999,
Admin: myAdmin,
MemberUpdates: []group.Member{{
MemberUpdates: []group.MemberRequest{{
Address: member1,
Weight: "2",
}},
@ -660,6 +663,7 @@ func (s *TestSuite) TestUpdateGroupMembers() {
s.Assert().Equal(spec.expMembers[i].Member.Metadata, loadedMembers[i].Member.Metadata)
s.Assert().Equal(spec.expMembers[i].Member.Address, loadedMembers[i].Member.Address)
s.Assert().Equal(spec.expMembers[i].Member.Weight, loadedMembers[i].Member.Weight)
s.Assert().Equal(spec.expMembers[i].Member.AddedAt, loadedMembers[i].Member.AddedAt)
s.Assert().Equal(spec.expMembers[i].GroupId, loadedMembers[i].GroupId)
}
})
@ -673,14 +677,12 @@ func (s *TestSuite) TestCreateGroupWithPolicy() {
addr5 := addrs[4]
addr6 := addrs[5]
members := []group.Member{{
members := []group.MemberRequest{{
Address: addr5.String(),
Weight: "1",
AddedAt: s.blockTime,
}, {
Address: addr6.String(),
Weight: "2",
AddedAt: s.blockTime,
}}
specs := map[string]struct {
@ -746,7 +748,7 @@ func (s *TestSuite) TestCreateGroupWithPolicy() {
"member metadata too long": {
req: &group.MsgCreateGroupWithPolicy{
Admin: addr1.String(),
Members: []group.Member{{
Members: []group.MemberRequest{{
Address: addr3.String(),
Weight: "1",
Metadata: strings.Repeat("a", 256),
@ -764,7 +766,7 @@ func (s *TestSuite) TestCreateGroupWithPolicy() {
"zero member weight": {
req: &group.MsgCreateGroupWithPolicy{
Admin: addr1.String(),
Members: []group.Member{{
Members: []group.MemberRequest{{
Address: addr3.String(),
Weight: "0",
}},
@ -799,6 +801,7 @@ func (s *TestSuite) TestCreateGroupWithPolicy() {
err := spec.req.SetDecisionPolicy(spec.policy)
s.Require().NoError(err)
blockTime := sdk.UnwrapSDKContext(s.ctx).BlockTime()
res, err := s.keeper.CreateGroupWithPolicy(s.ctx, spec.req)
if spec.expErr {
s.Require().Error(err)
@ -838,7 +841,7 @@ func (s *TestSuite) TestCreateGroupWithPolicy() {
s.Assert().Equal(members[i].Metadata, loadedMembers[i].Member.Metadata)
s.Assert().Equal(members[i].Address, loadedMembers[i].Member.Address)
s.Assert().Equal(members[i].Weight, loadedMembers[i].Member.Weight)
s.Assert().Equal(members[i].AddedAt, loadedMembers[i].Member.AddedAt)
s.Assert().Equal(blockTime, loadedMembers[i].Member.AddedAt)
s.Assert().Equal(id, loadedMembers[i].GroupId)
}
@ -1733,9 +1736,9 @@ func (s *TestSuite) TestVote() {
addr3 := addrs[2]
addr4 := addrs[3]
addr5 := addrs[4]
members := []group.Member{
{Address: addr4.String(), Weight: "1", AddedAt: s.blockTime},
{Address: addr3.String(), Weight: "2", AddedAt: s.blockTime},
members := []group.MemberRequest{
{Address: addr4.String(), Weight: "1"},
{Address: addr3.String(), Weight: "2"},
}
groupRes, err := s.keeper.CreateGroup(s.ctx, &group.MsgCreateGroup{
Admin: addr1.String(),
@ -2136,10 +2139,10 @@ func (s *TestSuite) TestVote() {
s.T().Log("test tally result should not take into account the member who left the group")
require := s.Require()
members = []group.Member{
{Address: addr2.String(), Weight: "3", AddedAt: s.blockTime},
{Address: addr3.String(), Weight: "2", AddedAt: s.blockTime},
{Address: addr4.String(), Weight: "1", AddedAt: s.blockTime},
members = []group.MemberRequest{
{Address: addr2.String(), Weight: "3"},
{Address: addr3.String(), Weight: "2"},
{Address: addr4.String(), Weight: "1"},
}
reqCreate := &group.MsgCreateGroupWithPolicy{
Admin: addr1.String(),
@ -2665,24 +2668,21 @@ func (s *TestSuite) TestLeaveGroup() {
admin3 := addrs[6]
require := s.Require()
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
Metadata: "metadata",
AddedAt: s.sdkCtx.BlockTime(),
},
{
Address: member2.String(),
Weight: "2",
Metadata: "metadata",
AddedAt: s.sdkCtx.BlockTime(),
},
{
Address: member3.String(),
Weight: "3",
Metadata: "metadata",
AddedAt: s.sdkCtx.BlockTime(),
},
}
policy := group.NewThresholdDecisionPolicy(
@ -2692,28 +2692,25 @@ func (s *TestSuite) TestLeaveGroup() {
)
_, groupID1 := s.createGroupAndGroupPolicy(admin1, members, policy)
members = []group.Member{
members = []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
Metadata: "metadata",
AddedAt: s.sdkCtx.BlockTime(),
},
}
_, groupID2 := s.createGroupAndGroupPolicy(admin2, members, nil)
members = []group.Member{
members = []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
Metadata: "metadata",
AddedAt: s.sdkCtx.BlockTime(),
},
{
Address: member2.String(),
Weight: "2",
Metadata: "metadata",
AddedAt: s.sdkCtx.BlockTime(),
},
}
policy = &group.PercentageDecisionPolicy{
@ -2866,7 +2863,7 @@ func submitProposalAndVote(
func (s *TestSuite) createGroupAndGroupPolicy(
admin sdk.AccAddress,
members []group.Member,
members []group.MemberRequest,
policy group.DecisionPolicy,
) (policyAddr string, groupID uint64) {
groupRes, err := s.keeper.CreateGroup(s.ctx, &group.MsgCreateGroup{

View File

@ -24,7 +24,7 @@ const gasCostPerIteration = uint64(20)
func (k Keeper) CreateGroup(goCtx context.Context, req *group.MsgCreateGroup) (*group.MsgCreateGroupResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
metadata := req.Metadata
members := group.Members{Members: req.Members}
members := group.MemberRequests{Members: req.Members}
admin := req.Admin
if err := members.ValidateBasic(); err != nil {
@ -166,12 +166,15 @@ func (k Keeper) UpdateGroupMembers(goCtx context.Context, req *group.MsgUpdateGr
return err
}
// Save updated group member in the groupMemberTable.
groupMember.Member.AddedAt = prevGroupMember.Member.AddedAt
if err := k.groupMemberTable.Update(ctx.KVStore(k.key), &groupMember); err != nil {
return sdkerrors.Wrap(err, "add member")
}
// else handle create.
} else if err := k.groupMemberTable.Create(ctx.KVStore(k.key), &groupMember); err != nil {
return sdkerrors.Wrap(err, "add member")
} else { // else handle create.
groupMember.Member.AddedAt = ctx.BlockTime()
if err := k.groupMemberTable.Create(ctx.KVStore(k.key), &groupMember); err != nil {
return sdkerrors.Wrap(err, "add member")
}
}
// In both cases (handle + update), we need to add the new member's weight to the group total weight.
totalWeight, err = totalWeight.Add(newMemberWeight)

View File

@ -26,7 +26,7 @@ func TestEndBlockerPruning(t *testing.T) {
addr3 := addrs[2]
// Initial group, group policy and balance setup
members := []group.Member{
members := []group.MemberRequest{
{Address: addr1.String(), Weight: "1"}, {Address: addr2.String(), Weight: "2"},
}
@ -325,7 +325,7 @@ func TestEndBlockerTallying(t *testing.T) {
addrs := simapp.AddTestAddrsIncremental(app, ctx, 4, sdk.NewInt(30000000))
// Initial group, group policy and balance setup
members := []group.Member{
members := []group.MemberRequest{
{Address: addrs[1].String(), Weight: "1"}, {Address: addrs[2].String(), Weight: "2"},
}

View File

@ -48,7 +48,7 @@ func (m MsgCreateGroup) ValidateBasic() error {
// Note: in state, a member's weight MUST be positive. However, in some Msgs,
// it's possible to set a zero member weight, for example in
// MsgUpdateGroupMembers to denote that we're removing a member.
func (m Member) ValidateBasic() error {
func (m MemberRequest) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(m.Address)
if err != nil {
return sdkerrors.Wrap(err, "address")
@ -193,7 +193,7 @@ func (m MsgUpdateGroupMembers) ValidateBasic() error {
if len(m.MemberUpdates) == 0 {
return sdkerrors.Wrap(errors.ErrEmpty, "member updates")
}
members := Members{Members: m.MemberUpdates}
members := MemberRequests{Members: m.MemberUpdates}
if err := members.ValidateBasic(); err != nil {
return sdkerrors.Wrap(err, "members")
}
@ -208,7 +208,7 @@ var _ sdk.Msg = &MsgCreateGroupWithPolicy{}
var _ types.UnpackInterfacesMessage = MsgCreateGroupWithPolicy{}
// NewMsgCreateGroupWithPolicy creates a new MsgCreateGroupWithPolicy.
func NewMsgCreateGroupWithPolicy(admin string, members []Member, groupMetadata string, groupPolicyMetadata string, groupPolicyAsAdmin bool, decisionPolicy DecisionPolicy) (*MsgCreateGroupWithPolicy, error) {
func NewMsgCreateGroupWithPolicy(admin string, members []MemberRequest, groupMetadata string, groupPolicyMetadata string, groupPolicyAsAdmin bool, decisionPolicy DecisionPolicy) (*MsgCreateGroupWithPolicy, error) {
m := &MsgCreateGroupWithPolicy{
Admin: admin,
Members: members,
@ -826,8 +826,8 @@ func (m MsgLeaveGroup) ValidateBasic() error {
// strictValidateMembers performs ValidateBasic on Members, but also checks
// that all members weights are positive (whereas `Members{members}.ValidateBasic()`
// only checks that they are non-negative.
func strictValidateMembers(members []Member) error {
err := Members{members}.ValidateBasic()
func strictValidateMembers(members []MemberRequest) error {
err := MemberRequests{members}.ValidateBasic()
if err != nil {
return err
}

View File

@ -38,7 +38,7 @@ func TestMsgCreateGroup(t *testing.T) {
"invalid member address",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: "invalid address",
},
@ -51,7 +51,7 @@ func TestMsgCreateGroup(t *testing.T) {
"negitive member's weight not allowed",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: member1.String(),
Weight: "-1",
@ -65,7 +65,7 @@ func TestMsgCreateGroup(t *testing.T) {
"zero member's weight not allowed",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: member1.String(),
Weight: "0",
@ -79,7 +79,7 @@ func TestMsgCreateGroup(t *testing.T) {
"duplicate member not allowed",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -99,7 +99,7 @@ func TestMsgCreateGroup(t *testing.T) {
"valid test case with single member",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -114,7 +114,7 @@ func TestMsgCreateGroup(t *testing.T) {
"minimum fields",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{},
Members: []group.MemberRequest{},
},
false,
"",
@ -123,7 +123,7 @@ func TestMsgCreateGroup(t *testing.T) {
"valid test case with multiple members",
&group.MsgCreateGroup{
Admin: admin.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -303,7 +303,7 @@ func TestMsgUpdateGroupMembers(t *testing.T) {
&group.MsgUpdateGroupMembers{
GroupId: 1,
Admin: admin.String(),
MemberUpdates: []group.Member{},
MemberUpdates: []group.MemberRequest{},
},
true,
"member updates: value is empty",
@ -313,7 +313,7 @@ func TestMsgUpdateGroupMembers(t *testing.T) {
&group.MsgUpdateGroupMembers{
GroupId: 1,
Admin: admin.String(),
MemberUpdates: []group.Member{
MemberUpdates: []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -329,7 +329,7 @@ func TestMsgUpdateGroupMembers(t *testing.T) {
&group.MsgUpdateGroupMembers{
GroupId: 1,
Admin: admin.String(),
MemberUpdates: []group.Member{
MemberUpdates: []group.MemberRequest{
{
Address: member1.String(),
Weight: "0",
@ -368,7 +368,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
func() *group.MsgCreateGroupWithPolicy {
admin := "admin"
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -386,7 +386,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"invalid member address",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: "invalid_address",
Weight: "1",
@ -404,7 +404,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"negative member's weight not allowed",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "-1",
@ -422,7 +422,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"zero member's weight not allowed",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "0",
@ -440,7 +440,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"duplicate member not allowed",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -463,7 +463,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"invalid threshold policy",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("-1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -481,7 +481,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"valid test case with single member",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",
@ -499,7 +499,7 @@ func TestMsgCreateGroupWithPolicy(t *testing.T) {
"valid test case with multiple members",
func() *group.MsgCreateGroupWithPolicy {
policy := group.NewThresholdDecisionPolicy("1", time.Second, 0)
members := []group.Member{
members := []group.MemberRequest{
{
Address: member1.String(),
Weight: "1",

View File

@ -605,7 +605,7 @@ func SimulateMsgUpdateGroupMembers(ak group.AccountKeeper,
return simtypes.NoOpMsg(group.ModuleName, TypeMsgUpdateGroupMembers, "group members"), nil, err
}
// set existing radnom group member weight to zero to remove from the group
// set existing random group member weight to zero to remove from the group
existigMembers := res.Members
if len(existigMembers) > 0 {
memberToRemove := existigMembers[r.Intn(len(existigMembers))]
@ -621,7 +621,7 @@ func SimulateMsgUpdateGroupMembers(ak group.AccountKeeper,
if !isDuplicateMember {
m := memberToRemove.Member
m.Weight = "0"
members = append(members, *m)
members = append(members, group.MemberToMemberRequest(m))
}
}
@ -1274,9 +1274,9 @@ func findAccount(accounts []simtypes.Account, addr string) (idx int) {
return idx
}
func genGroupMembers(r *rand.Rand, accounts []simtypes.Account) []group.Member {
func genGroupMembers(r *rand.Rand, accounts []simtypes.Account) []group.MemberRequest {
if len(accounts) == 1 {
return []group.Member{
return []group.MemberRequest{
{
Address: accounts[0].Address.String(),
Weight: fmt.Sprintf("%d", simtypes.RandIntBetween(r, 1, 10)),
@ -1291,10 +1291,10 @@ func genGroupMembers(r *rand.Rand, accounts []simtypes.Account) []group.Member {
}
membersLen := simtypes.RandIntBetween(r, 1, max)
members := make([]group.Member, membersLen)
members := make([]group.MemberRequest, membersLen)
for i := 0; i < membersLen; i++ {
members[i] = group.Member{
members[i] = group.MemberRequest{
Address: accounts[i].Address.String(),
Weight: fmt.Sprintf("%d", simtypes.RandIntBetween(r, 1, 10)),
Metadata: simtypes.RandStringOfLength(r, 10),

View File

@ -162,7 +162,7 @@ func (suite *SimTestSuite) TestSimulateCreateGroupPolicy() {
_, err := suite.app.GroupKeeper.CreateGroup(sdk.WrapSDKContext(suite.ctx),
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -205,7 +205,7 @@ func (suite *SimTestSuite) TestSimulateSubmitProposal() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -259,7 +259,7 @@ func (suite *SimTestSuite) TestWithdrawProposal() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: addr,
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: addr,
Weight: "1",
@ -325,7 +325,7 @@ func (suite *SimTestSuite) TestSimulateVote() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: addr,
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: addr,
Weight: "1",
@ -392,7 +392,7 @@ func (suite *SimTestSuite) TestSimulateExec() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: addr,
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: addr,
Weight: "1",
@ -465,7 +465,7 @@ func (suite *SimTestSuite) TestSimulateUpdateGroupAdmin() {
_, err := suite.app.GroupKeeper.CreateGroup(sdk.WrapSDKContext(suite.ctx),
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -507,7 +507,7 @@ func (suite *SimTestSuite) TestSimulateUpdateGroupMetadata() {
_, err := suite.app.GroupKeeper.CreateGroup(sdk.WrapSDKContext(suite.ctx),
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -549,7 +549,7 @@ func (suite *SimTestSuite) TestSimulateUpdateGroupMembers() {
_, err := suite.app.GroupKeeper.CreateGroup(sdk.WrapSDKContext(suite.ctx),
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -592,7 +592,7 @@ func (suite *SimTestSuite) TestSimulateUpdateGroupPolicyAdmin() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -645,7 +645,7 @@ func (suite *SimTestSuite) TestSimulateUpdateGroupPolicyDecisionPolicy() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -698,7 +698,7 @@ func (suite *SimTestSuite) TestSimulateUpdateGroupPolicyMetadata() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: acc.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: acc.Address.String(),
Weight: "1",
@ -756,7 +756,7 @@ func (suite *SimTestSuite) TestSimulateLeaveGroup() {
groupRes, err := suite.app.GroupKeeper.CreateGroup(ctx,
&group.MsgCreateGroup{
Admin: admin.Address.String(),
Members: []group.Member{
Members: []group.MemberRequest{
{
Address: member1.Address.String(),
Weight: "1",

View File

@ -68,7 +68,7 @@ type MsgCreateGroup struct {
// admin is the account address of the group admin.
Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"`
// members defines the group members.
Members []Member `protobuf:"bytes,2,rep,name=members,proto3" json:"members"`
Members []MemberRequest `protobuf:"bytes,2,rep,name=members,proto3" json:"members"`
// metadata is any arbitrary metadata to attached to the group.
Metadata string `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
}
@ -113,7 +113,7 @@ func (m *MsgCreateGroup) GetAdmin() string {
return ""
}
func (m *MsgCreateGroup) GetMembers() []Member {
func (m *MsgCreateGroup) GetMembers() []MemberRequest {
if m != nil {
return m.Members
}
@ -181,7 +181,7 @@ type MsgUpdateGroupMembers struct {
GroupId uint64 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
// member_updates is the list of members to update,
// set weight to 0 to remove a member.
MemberUpdates []Member `protobuf:"bytes,3,rep,name=member_updates,json=memberUpdates,proto3" json:"member_updates"`
MemberUpdates []MemberRequest `protobuf:"bytes,3,rep,name=member_updates,json=memberUpdates,proto3" json:"member_updates"`
}
func (m *MsgUpdateGroupMembers) Reset() { *m = MsgUpdateGroupMembers{} }
@ -231,7 +231,7 @@ func (m *MsgUpdateGroupMembers) GetGroupId() uint64 {
return 0
}
func (m *MsgUpdateGroupMembers) GetMemberUpdates() []Member {
func (m *MsgUpdateGroupMembers) GetMemberUpdates() []MemberRequest {
if m != nil {
return m.MemberUpdates
}
@ -637,7 +637,7 @@ type MsgCreateGroupWithPolicy struct {
// admin is the account address of the group and group policy admin.
Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"`
// members defines the group members.
Members []Member `protobuf:"bytes,2,rep,name=members,proto3" json:"members"`
Members []MemberRequest `protobuf:"bytes,2,rep,name=members,proto3" json:"members"`
// group_metadata is any arbitrary metadata attached to the group.
GroupMetadata string `protobuf:"bytes,3,opt,name=group_metadata,json=groupMetadata,proto3" json:"group_metadata,omitempty"`
// group_policy_metadata is any arbitrary metadata attached to the group policy.
@ -1495,87 +1495,87 @@ func init() {
func init() { proto.RegisterFile("cosmos/group/v1/tx.proto", fileDescriptor_6b8d3d629f136420) }
var fileDescriptor_6b8d3d629f136420 = []byte{
// 1271 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4f, 0x6f, 0x1b, 0x45,
0x14, 0xf7, 0xda, 0x6e, 0xe2, 0x3c, 0xb7, 0x4e, 0xb2, 0x71, 0x1a, 0x67, 0xd3, 0xda, 0x66, 0x49,
0x93, 0xd4, 0x6a, 0xd6, 0xc4, 0xa1, 0x42, 0x0a, 0x08, 0x94, 0x3f, 0x06, 0x05, 0x61, 0x88, 0x36,
0x2d, 0x05, 0x2e, 0x66, 0xe3, 0xdd, 0x6e, 0x57, 0xd8, 0x1e, 0x6b, 0x67, 0x9d, 0x38, 0x47, 0x10,
0x07, 0xfe, 0x5c, 0x90, 0xfa, 0x05, 0x40, 0x7c, 0x01, 0x0e, 0xf9, 0x04, 0x70, 0xa9, 0x38, 0x55,
0x9c, 0x10, 0x07, 0x84, 0x92, 0x03, 0x57, 0x3e, 0x02, 0xda, 0x99, 0xdd, 0xb1, 0xd7, 0x5e, 0x67,
0x37, 0x96, 0x0b, 0xa7, 0xd6, 0xfb, 0x7e, 0xef, 0xbd, 0xdf, 0xef, 0xcd, 0x9b, 0x79, 0x33, 0x81,
0x4c, 0x0d, 0xe1, 0x06, 0xc2, 0x45, 0xdd, 0x44, 0xed, 0x56, 0xf1, 0x78, 0xa3, 0x68, 0x75, 0xa4,
0x96, 0x89, 0x2c, 0xc4, 0x4f, 0x53, 0x8b, 0x44, 0x2c, 0xd2, 0xf1, 0x86, 0x90, 0xd6, 0x91, 0x8e,
0x88, 0xad, 0x68, 0xff, 0x8f, 0xc2, 0x84, 0x45, 0x0a, 0xab, 0x52, 0x83, 0xe3, 0xe3, 0x98, 0x74,
0x84, 0xf4, 0xba, 0x56, 0x24, 0xbf, 0x8e, 0xda, 0x8f, 0x8b, 0x4a, 0xf3, 0xd4, 0x31, 0x2d, 0x0d,
0xa4, 0x3d, 0x6d, 0x69, 0xae, 0xdf, 0x82, 0x63, 0x6c, 0x60, 0xdd, 0x36, 0x35, 0xb0, 0x4e, 0x0d,
0xe2, 0x0f, 0x1c, 0xa4, 0x2a, 0x58, 0xdf, 0x35, 0x35, 0xc5, 0xd2, 0xde, 0xb1, 0x5d, 0x79, 0x09,
0xae, 0x29, 0x6a, 0xc3, 0x68, 0x66, 0xb8, 0x3c, 0xb7, 0x36, 0xb5, 0x93, 0xf9, 0xed, 0x6c, 0x3d,
0xed, 0x90, 0xd8, 0x56, 0x55, 0x53, 0xc3, 0xf8, 0xd0, 0x32, 0x8d, 0xa6, 0x2e, 0x53, 0x18, 0xff,
0x1a, 0x4c, 0x36, 0xb4, 0xc6, 0x91, 0x66, 0xe2, 0x4c, 0x34, 0x1f, 0x5b, 0x4b, 0x96, 0x16, 0xa4,
0x3e, 0x9d, 0x52, 0x85, 0xd8, 0x77, 0xe2, 0xcf, 0xfe, 0xcc, 0x45, 0x64, 0x17, 0xcd, 0x0b, 0x90,
0x68, 0x68, 0x96, 0xa2, 0x2a, 0x96, 0x92, 0x89, 0xd9, 0xb9, 0x64, 0xf6, 0x7b, 0x0b, 0xbe, 0xf8,
0xfb, 0xa7, 0x02, 0x4d, 0x20, 0x6e, 0xc2, 0x4d, 0x2f, 0x45, 0x59, 0xc3, 0x2d, 0xd4, 0xc4, 0x1a,
0xbf, 0x08, 0x09, 0x92, 0xa3, 0x6a, 0xa8, 0x84, 0x6d, 0x5c, 0x9e, 0x24, 0xbf, 0xf7, 0x55, 0xf1,
0x8c, 0x83, 0xf9, 0x0a, 0xd6, 0x1f, 0xb6, 0x54, 0xd7, 0xab, 0xe2, 0xa4, 0xbd, 0xaa, 0xbe, 0xde,
0x24, 0x51, 0x4f, 0x12, 0x7e, 0x0f, 0x52, 0x54, 0x4c, 0xb5, 0x4d, 0xf2, 0xe0, 0x4c, 0x2c, 0x4c,
0x05, 0x6e, 0x50, 0x27, 0xca, 0x0d, 0x7b, 0xb4, 0xe6, 0xe0, 0xb6, 0x2f, 0x6b, 0x57, 0xb2, 0xf8,
0x23, 0x07, 0x73, 0x5e, 0xc4, 0x36, 0x61, 0x39, 0x46, 0x55, 0xf7, 0x61, 0xaa, 0xa9, 0x9d, 0x54,
0x69, 0xb8, 0x58, 0x40, 0xb8, 0x44, 0x53, 0x3b, 0x21, 0x0c, 0x3c, 0x32, 0x6e, 0xc3, 0x92, 0x0f,
0x49, 0x26, 0xe2, 0x5b, 0x8e, 0x2c, 0xa9, 0x47, 0x26, 0x5d, 0xf8, 0x71, 0xea, 0x08, 0xdb, 0x5f,
0x79, 0xc8, 0xfa, 0x93, 0x61, 0x7c, 0xff, 0xe1, 0x20, 0xed, 0x6d, 0xc1, 0x03, 0x54, 0x37, 0x6a,
0xa7, 0xff, 0x11, 0x5b, 0x5e, 0x81, 0x69, 0x55, 0xab, 0x19, 0xd8, 0x40, 0xcd, 0x6a, 0x8b, 0x64,
0xce, 0xc4, 0xf3, 0xdc, 0x5a, 0xb2, 0x94, 0x96, 0xe8, 0x81, 0x20, 0xb9, 0x07, 0x82, 0xb4, 0xdd,
0x3c, 0xdd, 0x11, 0x7f, 0x3d, 0x5b, 0xcf, 0xf6, 0x77, 0xe0, 0x9e, 0x13, 0x80, 0x32, 0x97, 0x53,
0xaa, 0xe7, 0xf7, 0x56, 0xea, 0xab, 0xef, 0x73, 0x91, 0x9e, 0xa2, 0xc8, 0x70, 0xcb, 0x4f, 0x31,
0xdb, 0x7a, 0x25, 0x98, 0x54, 0xa8, 0xc2, 0x40, 0xed, 0x2e, 0x50, 0xfc, 0x83, 0x83, 0x45, 0x6f,
0xa5, 0x69, 0xd0, 0xd1, 0x3a, 0xf8, 0x5d, 0x48, 0xd3, 0x5a, 0xd2, 0x8a, 0x54, 0x5d, 0x3a, 0xd1,
0x00, 0x77, 0x5e, 0xef, 0xcd, 0x4c, 0x2c, 0xe3, 0x68, 0xf9, 0x2f, 0x63, 0x90, 0xf1, 0x56, 0xec,
0x91, 0x61, 0x3d, 0x19, 0xb1, 0x4f, 0x46, 0x3e, 0x53, 0xef, 0x40, 0x8a, 0x16, 0xa5, 0xaf, 0x97,
0x6e, 0xe8, 0x9e, 0x5d, 0x56, 0x82, 0x79, 0x4f, 0xed, 0x18, 0x3a, 0x4e, 0xd0, 0x73, 0x3d, 0x25,
0x62, 0x3e, 0x1b, 0x7d, 0x3e, 0x0a, 0x76, 0xea, 0x75, 0x2d, 0xcf, 0xad, 0x25, 0xbc, 0x65, 0xc5,
0x74, 0x49, 0x7d, 0xfa, 0x76, 0xe2, 0x05, 0xf7, 0xed, 0xd7, 0x1c, 0xe4, 0x87, 0x2d, 0x43, 0x88,
0xb9, 0x31, 0xce, 0xae, 0x12, 0x5f, 0x86, 0x97, 0x86, 0xb6, 0x3b, 0x3b, 0x5b, 0x9e, 0x46, 0x41,
0xf4, 0x43, 0x79, 0x75, 0xff, 0xaf, 0xbb, 0xc3, 0x67, 0x19, 0x63, 0x2f, 0x78, 0x19, 0xef, 0x41,
0x21, 0xb8, 0x28, 0xac, 0x86, 0x3f, 0x73, 0xe4, 0xb4, 0x1a, 0x80, 0x8f, 0x3c, 0x55, 0xc6, 0x59,
0xbd, 0xb0, 0x63, 0x68, 0x05, 0x96, 0x2f, 0xd3, 0xc0, 0xc4, 0x7e, 0x13, 0x85, 0xd9, 0x0a, 0xd6,
0x0f, 0xdb, 0x47, 0x0d, 0xc3, 0x3a, 0x30, 0x51, 0x0b, 0x61, 0xa5, 0x3e, 0x94, 0x31, 0x37, 0x02,
0xe3, 0x5b, 0x30, 0xd5, 0x22, 0x71, 0xdd, 0xf3, 0x67, 0x4a, 0xee, 0x7e, 0xb8, 0x74, 0x50, 0xbd,
0x62, 0xdb, 0x30, 0x56, 0x74, 0x0d, 0x67, 0xe2, 0xe4, 0xe0, 0xf2, 0x6d, 0x11, 0x99, 0xa1, 0xf8,
0xbb, 0x10, 0xd7, 0x3a, 0x5a, 0x8d, 0x1c, 0x22, 0xa9, 0xd2, 0xfc, 0xc0, 0x31, 0x57, 0xee, 0x68,
0x35, 0x99, 0x40, 0xb6, 0x78, 0xb7, 0x47, 0xba, 0x64, 0xc4, 0x37, 0xc8, 0x44, 0xf1, 0xd6, 0x82,
0x6d, 0xf3, 0x1c, 0x24, 0x5b, 0xce, 0xb7, 0xee, 0x4e, 0x07, 0xf7, 0xd3, 0xbe, 0x2a, 0x76, 0xc8,
0x5d, 0xca, 0x3e, 0x20, 0x54, 0x53, 0x39, 0x61, 0xb5, 0x0c, 0xf2, 0xeb, 0x1d, 0x7e, 0xd1, 0x90,
0xc3, 0x6f, 0xeb, 0xba, 0xcd, 0x9c, 0x8d, 0x42, 0x7a, 0x41, 0xea, 0xcf, 0xcc, 0xd6, 0xf8, 0x9c,
0x83, 0xc9, 0x0a, 0xd6, 0x3f, 0x44, 0x56, 0xb0, 0x0a, 0xbb, 0xb9, 0x8f, 0x91, 0xa5, 0x99, 0x81,
0x5c, 0x28, 0x8c, 0xdf, 0x84, 0x09, 0xd4, 0xb2, 0x0c, 0x44, 0x27, 0x5d, 0xaa, 0xb4, 0x34, 0x50,
0x74, 0x3b, 0xef, 0x07, 0x04, 0x22, 0x3b, 0x50, 0xcf, 0xaa, 0xc7, 0xfb, 0x56, 0xfd, 0x0a, 0x6b,
0x48, 0x1b, 0x9e, 0xf0, 0x10, 0x67, 0x61, 0xda, 0xd1, 0xc8, 0x74, 0x37, 0x88, 0x6c, 0x1b, 0x1f,
0x2c, 0xfb, 0x55, 0x48, 0xd8, 0x21, 0xdb, 0x16, 0x0a, 0x56, 0xce, 0x90, 0x5b, 0x49, 0x9b, 0xc0,
0x04, 0x36, 0xf4, 0xa6, 0x66, 0x8a, 0x32, 0x61, 0x40, 0xe8, 0xb9, 0x3d, 0xf3, 0x16, 0x4c, 0x98,
0x1a, 0x6e, 0xd7, 0x2d, 0x12, 0x33, 0x55, 0x5a, 0x1d, 0x50, 0xe3, 0x2e, 0x56, 0xd9, 0x09, 0x29,
0x13, 0xb8, 0xec, 0xb8, 0x89, 0x75, 0xb8, 0x51, 0xc1, 0xfa, 0x7b, 0x9a, 0x72, 0xec, 0xbc, 0xa7,
0x46, 0xb8, 0x29, 0x5d, 0x72, 0x4f, 0xec, 0xeb, 0xa3, 0x05, 0xf2, 0xca, 0xe9, 0x66, 0x73, 0x75,
0x14, 0x0a, 0x10, 0x27, 0x65, 0x4c, 0xc3, 0x4c, 0xf9, 0xa3, 0xf2, 0x6e, 0xf5, 0xe1, 0xfb, 0x87,
0x07, 0xe5, 0xdd, 0xfd, 0xb7, 0xf7, 0xcb, 0x7b, 0x33, 0x11, 0xfe, 0x3a, 0x24, 0xc8, 0xd7, 0x07,
0xf2, 0xc7, 0x33, 0x5c, 0xe9, 0x97, 0x24, 0xc4, 0x2a, 0x58, 0xe7, 0x1f, 0x41, 0xb2, 0xf7, 0x21,
0x98, 0x1b, 0xbc, 0x73, 0x78, 0x06, 0xab, 0xb0, 0x1a, 0x00, 0x60, 0x45, 0xad, 0x03, 0xef, 0xf3,
0x10, 0x5b, 0xf1, 0x73, 0x1f, 0xc4, 0x09, 0x52, 0x38, 0x1c, 0xcb, 0xf6, 0x18, 0x66, 0x06, 0x9e,
0x47, 0xcb, 0x01, 0x31, 0x08, 0x4a, 0xb8, 0x17, 0x06, 0xc5, 0xf2, 0x20, 0x98, 0xf3, 0x7b, 0xc1,
0xac, 0x06, 0xd2, 0xa5, 0x40, 0xa1, 0x18, 0x12, 0xc8, 0x12, 0x1a, 0x30, 0x3b, 0xf8, 0x04, 0xb9,
0x13, 0xb0, 0x08, 0x14, 0x26, 0xac, 0x87, 0x82, 0xb1, 0x54, 0x6d, 0x98, 0xf7, 0xbf, 0xc9, 0xde,
0x0d, 0x88, 0xd3, 0x85, 0x0a, 0x1b, 0xa1, 0xa1, 0x2c, 0x6d, 0x07, 0x6e, 0x0e, 0x79, 0x1d, 0x14,
0x02, 0x8a, 0xd5, 0x83, 0x15, 0x4a, 0xe1, 0xb1, 0x2c, 0xf3, 0x53, 0x0e, 0x72, 0x41, 0x77, 0xb0,
0xcd, 0x50, 0x71, 0xbd, 0x4e, 0xc2, 0xeb, 0x23, 0x38, 0x31, 0x56, 0x9f, 0x73, 0xb0, 0x38, 0xfc,
0x56, 0xb3, 0x1e, 0x2a, 0x34, 0xeb, 0xb7, 0xfb, 0x57, 0x82, 0x33, 0x0e, 0x9f, 0x42, 0xaa, 0xef,
0xae, 0x21, 0xfa, 0x05, 0xf2, 0x62, 0x84, 0x42, 0x30, 0xa6, 0x77, 0xc3, 0x0e, 0xcc, 0x60, 0xdf,
0x0d, 0xdb, 0x8f, 0xf2, 0xdf, 0xb0, 0xc3, 0xa6, 0x2a, 0xbf, 0x03, 0x71, 0x32, 0x51, 0x33, 0x7e,
0x5e, 0xb6, 0x45, 0xc8, 0x0f, 0xb3, 0xf4, 0xc6, 0x20, 0xe7, 0xaa, 0x6f, 0x0c, 0xdb, 0xe2, 0x1f,
0xc3, 0x33, 0x63, 0x1e, 0x00, 0xf4, 0xcc, 0x87, 0xac, 0x1f, 0xbe, 0x6b, 0x17, 0x56, 0x2e, 0xb7,
0xbb, 0x51, 0x77, 0xde, 0x7c, 0x76, 0x9e, 0xe5, 0x9e, 0x9f, 0x67, 0xb9, 0xbf, 0xce, 0xb3, 0xdc,
0x77, 0x17, 0xd9, 0xc8, 0xf3, 0x8b, 0x6c, 0xe4, 0xf7, 0x8b, 0x6c, 0xe4, 0x93, 0x65, 0xdd, 0xb0,
0x9e, 0xb4, 0x8f, 0xa4, 0x1a, 0x6a, 0x38, 0x7f, 0x4e, 0x74, 0xfe, 0x59, 0xc7, 0xea, 0x67, 0xc5,
0x0e, 0xfd, 0x93, 0xe1, 0xd1, 0x04, 0xb9, 0xa1, 0x6d, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xf1,
0xa7, 0x43, 0xdc, 0xc0, 0x14, 0x00, 0x00,
// 1276 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x41, 0x73, 0xdb, 0x44,
0x14, 0xb6, 0x6c, 0x37, 0x71, 0x9e, 0x1b, 0x27, 0x51, 0x9c, 0xd6, 0x51, 0x5a, 0xdb, 0x88, 0x34,
0x49, 0x3d, 0x8d, 0x4c, 0x1c, 0x7a, 0x09, 0x4c, 0x99, 0x24, 0x35, 0x4c, 0x00, 0x43, 0x46, 0x69,
0x29, 0x70, 0x31, 0x8a, 0xb5, 0x55, 0x35, 0xd8, 0x96, 0xd1, 0xca, 0x89, 0x73, 0x84, 0x13, 0xd0,
0x0b, 0x33, 0xfd, 0x03, 0xcc, 0x70, 0xe1, 0xc8, 0xa1, 0x37, 0x6e, 0x70, 0xe9, 0x70, 0xea, 0x70,
0x62, 0x38, 0x30, 0x4c, 0x72, 0xe0, 0xca, 0x4f, 0x60, 0xb4, 0x2b, 0xad, 0x2d, 0x5b, 0x8e, 0x14,
0xe3, 0xc2, 0xa9, 0xb5, 0xde, 0xf7, 0xde, 0xfb, 0xbe, 0xb7, 0x6f, 0xf7, 0xed, 0x06, 0x32, 0x35,
0x03, 0x37, 0x0c, 0x5c, 0xd4, 0x4c, 0xa3, 0xdd, 0x2a, 0x1e, 0x6d, 0x14, 0xad, 0x8e, 0xd4, 0x32,
0x0d, 0xcb, 0xe0, 0x67, 0xa8, 0x45, 0x22, 0x16, 0xe9, 0x68, 0x43, 0x48, 0x6b, 0x86, 0x66, 0x10,
0x5b, 0xd1, 0xfe, 0x1f, 0x85, 0x09, 0x8b, 0x14, 0x56, 0xa5, 0x06, 0xc7, 0xc7, 0x31, 0x69, 0x86,
0xa1, 0xd5, 0x51, 0x91, 0xfc, 0x3a, 0x6c, 0x3f, 0x2c, 0x2a, 0xcd, 0x13, 0xc7, 0xb4, 0x34, 0x90,
0xf6, 0xa4, 0x85, 0x5c, 0xbf, 0xab, 0x8e, 0xb1, 0x81, 0x35, 0xdb, 0xd4, 0xc0, 0x1a, 0x35, 0x88,
0xdf, 0x73, 0x90, 0xaa, 0x60, 0x6d, 0xd7, 0x44, 0x8a, 0x85, 0xde, 0xb2, 0x5d, 0x79, 0x09, 0x2e,
0x29, 0x6a, 0x43, 0x6f, 0x66, 0xb8, 0x3c, 0xb7, 0x36, 0xb5, 0x93, 0xf9, 0xf5, 0xe9, 0x7a, 0xda,
0x21, 0xb1, 0xad, 0xaa, 0x26, 0xc2, 0xf8, 0xc0, 0x32, 0xf5, 0xa6, 0x26, 0x53, 0x18, 0x7f, 0x07,
0x26, 0x1b, 0xa8, 0x71, 0x88, 0x4c, 0x9c, 0x89, 0xe6, 0x63, 0x6b, 0xc9, 0x52, 0x56, 0xea, 0xd3,
0x29, 0x55, 0x88, 0x5d, 0x46, 0x9f, 0xb5, 0x11, 0xb6, 0x76, 0xe2, 0xcf, 0xfe, 0xc8, 0x45, 0x64,
0xd7, 0x89, 0x17, 0x20, 0xd1, 0x40, 0x96, 0xa2, 0x2a, 0x96, 0x92, 0x89, 0xd9, 0x29, 0x65, 0xf6,
0x7b, 0x0b, 0xbe, 0xf8, 0xeb, 0x87, 0x02, 0xcd, 0x23, 0x6e, 0xc2, 0x15, 0x2f, 0x53, 0x19, 0xe1,
0x96, 0xd1, 0xc4, 0x88, 0x5f, 0x84, 0x04, 0x49, 0x55, 0xd5, 0x55, 0x42, 0x3a, 0x2e, 0x4f, 0x92,
0xdf, 0x7b, 0xaa, 0xf8, 0x23, 0x07, 0x0b, 0x15, 0xac, 0xdd, 0x6f, 0xa9, 0xae, 0x57, 0xc5, 0x49,
0x7b, 0x51, 0x99, 0xbd, 0x49, 0xa2, 0x9e, 0x24, 0xfc, 0x3b, 0x90, 0xa2, 0x62, 0xaa, 0x6d, 0x92,
0x07, 0x67, 0x62, 0x17, 0x28, 0xc4, 0x34, 0xf5, 0xa5, 0x14, 0xb1, 0x47, 0x72, 0x0e, 0xae, 0xfb,
0x92, 0x77, 0x95, 0x8b, 0xdf, 0x71, 0x30, 0xef, 0x45, 0x6c, 0x13, 0xb2, 0x63, 0x14, 0x77, 0x1b,
0xa6, 0x9a, 0xe8, 0xb8, 0x4a, 0xc3, 0xc5, 0x02, 0xc2, 0x25, 0x9a, 0xe8, 0x98, 0x30, 0xf0, 0xc8,
0xb8, 0x0e, 0x4b, 0x3e, 0x24, 0x99, 0x88, 0xc7, 0x1c, 0x59, 0x59, 0x8f, 0x4c, 0xba, 0xfe, 0xe3,
0xd4, 0x11, 0xb6, 0xcd, 0xf2, 0x90, 0xf5, 0x27, 0xc3, 0xf8, 0xfe, 0xcd, 0x41, 0xda, 0xdb, 0x89,
0xfb, 0x46, 0x5d, 0xaf, 0x9d, 0xfc, 0x47, 0x6c, 0x79, 0x05, 0x66, 0x54, 0x54, 0xd3, 0xb1, 0x6e,
0x34, 0xab, 0x2d, 0x92, 0x39, 0x13, 0xcf, 0x73, 0x6b, 0xc9, 0x52, 0x5a, 0xa2, 0xc7, 0x83, 0xe4,
0x1e, 0x0f, 0xd2, 0x76, 0xf3, 0x64, 0x47, 0xfc, 0xe5, 0xe9, 0x7a, 0xb6, 0xbf, 0x11, 0xef, 0x3a,
0x01, 0x28, 0x73, 0x39, 0xa5, 0x7a, 0x7e, 0x6f, 0xa5, 0xbe, 0xfc, 0x36, 0x17, 0xe9, 0x29, 0x8a,
0x0c, 0xd7, 0xfc, 0x14, 0xb3, 0x1d, 0x58, 0x82, 0x49, 0x85, 0x2a, 0x0c, 0xd4, 0xee, 0x02, 0xc5,
0xdf, 0x39, 0x58, 0xf4, 0x56, 0x9a, 0x06, 0x1d, 0xad, 0x83, 0xdf, 0x86, 0x34, 0xad, 0x25, 0xad,
0x48, 0xd5, 0xa5, 0x13, 0x0d, 0x70, 0xe7, 0xb5, 0xde, 0xcc, 0xc4, 0x32, 0x8e, 0x96, 0x7f, 0x1c,
0x83, 0x8c, 0xb7, 0x62, 0x0f, 0x74, 0xeb, 0xd1, 0x88, 0x7d, 0xf2, 0x6f, 0x4f, 0xd8, 0x1b, 0x90,
0xa2, 0xb5, 0xe9, 0x6b, 0xa9, 0x69, 0xcd, 0xb3, 0xd9, 0x4a, 0xb0, 0xe0, 0x29, 0x21, 0x43, 0xc7,
0x09, 0x7a, 0xbe, 0xa7, 0x52, 0xcc, 0x67, 0xa3, 0xcf, 0x47, 0xc1, 0x4e, 0xd9, 0x2e, 0xe5, 0xb9,
0xb5, 0x84, 0xb7, 0xba, 0x98, 0xae, 0xac, 0x4f, 0xfb, 0x4e, 0xbc, 0xe0, 0xf6, 0xfd, 0x8a, 0x83,
0xfc, 0xb0, 0xd5, 0x08, 0x31, 0x45, 0xc6, 0xd9, 0x5c, 0xe2, 0xcb, 0xf0, 0xd2, 0xd0, 0xae, 0x67,
0x47, 0xcc, 0x93, 0x28, 0x88, 0x7e, 0x28, 0xaf, 0xee, 0xff, 0x75, 0x93, 0xf8, 0x2c, 0x63, 0xec,
0x05, 0x2f, 0xe3, 0x2d, 0x28, 0x04, 0x17, 0x85, 0xd5, 0xf0, 0x27, 0x8e, 0x1c, 0x5a, 0x03, 0xf0,
0x91, 0x87, 0xcb, 0x38, 0xab, 0x17, 0x76, 0x1a, 0xad, 0xc0, 0xf2, 0x79, 0x1a, 0x98, 0xd8, 0xaf,
0xa3, 0x30, 0x57, 0xc1, 0xda, 0x41, 0xfb, 0xb0, 0xa1, 0x5b, 0xfb, 0xa6, 0xd1, 0x32, 0xb0, 0x52,
0x1f, 0xca, 0x98, 0x1b, 0x81, 0xf1, 0x35, 0x98, 0x6a, 0x91, 0xb8, 0xee, 0x31, 0x34, 0x25, 0x77,
0x3f, 0x9c, 0x3b, 0xaf, 0x5e, 0xb1, 0x6d, 0x18, 0x2b, 0x1a, 0xc2, 0x99, 0x38, 0x39, 0xbf, 0x7c,
0x5b, 0x44, 0x66, 0x28, 0xfe, 0x26, 0xc4, 0x51, 0x07, 0xd5, 0xc8, 0x21, 0x92, 0x2a, 0x2d, 0x0c,
0x9c, 0x76, 0xe5, 0x0e, 0xaa, 0xc9, 0x04, 0xb2, 0xc5, 0xbb, 0x3d, 0xd2, 0x25, 0x23, 0xbe, 0x4e,
0x06, 0x8b, 0xb7, 0x16, 0x6c, 0x9b, 0xe7, 0x20, 0xd9, 0x72, 0xbe, 0x75, 0x77, 0x3a, 0xb8, 0x9f,
0xf6, 0x54, 0xb1, 0x43, 0xae, 0x54, 0xf6, 0x01, 0xa1, 0x9a, 0xca, 0x31, 0xab, 0x65, 0x90, 0x5f,
0xef, 0x0c, 0x8c, 0x86, 0x9c, 0x81, 0x5b, 0x97, 0x6d, 0xe6, 0x6c, 0x22, 0xd2, 0x7b, 0x52, 0x7f,
0x66, 0xb6, 0xc6, 0xa7, 0x1c, 0x4c, 0x56, 0xb0, 0xf6, 0x81, 0x61, 0x05, 0xab, 0xb0, 0x9b, 0xfb,
0xc8, 0xb0, 0x90, 0x19, 0xc8, 0x85, 0xc2, 0xf8, 0x4d, 0x98, 0x30, 0x5a, 0x96, 0x6e, 0xd0, 0x81,
0x97, 0x2a, 0x2d, 0x0d, 0x14, 0xdd, 0xce, 0xfb, 0x3e, 0x81, 0xc8, 0x0e, 0xd4, 0xb3, 0xea, 0xf1,
0xbe, 0x55, 0xbf, 0xc0, 0x1a, 0xd2, 0x86, 0x27, 0x3c, 0xc4, 0x39, 0x98, 0x71, 0x34, 0x32, 0xdd,
0x0d, 0x22, 0xdb, 0xc6, 0x07, 0xcb, 0x7e, 0x15, 0x12, 0x76, 0xc8, 0xb6, 0x65, 0x04, 0x2b, 0x67,
0xc8, 0xad, 0xa4, 0x4d, 0x60, 0x02, 0xeb, 0x5a, 0x13, 0x99, 0xa2, 0x4c, 0x18, 0x10, 0x7a, 0x6e,
0xcf, 0xbc, 0x01, 0x13, 0x26, 0xc2, 0xed, 0xba, 0x45, 0x62, 0xa6, 0x4a, 0xab, 0x03, 0x6a, 0xdc,
0xc5, 0x2a, 0x3b, 0x21, 0x65, 0x02, 0x97, 0x1d, 0x37, 0xb1, 0x0e, 0xd3, 0x15, 0xac, 0xbd, 0x8b,
0x94, 0x23, 0xe7, 0x91, 0x35, 0xc2, 0x85, 0xe9, 0x9c, 0xeb, 0x62, 0x5f, 0x1f, 0x5d, 0x25, 0x6f,
0x9e, 0x6e, 0x36, 0x57, 0x47, 0xa1, 0x00, 0x71, 0x52, 0xc6, 0x34, 0xcc, 0x96, 0x3f, 0x2c, 0xef,
0x56, 0xef, 0xbf, 0x77, 0xb0, 0x5f, 0xde, 0xdd, 0x7b, 0x73, 0xaf, 0x7c, 0x77, 0x36, 0xc2, 0x5f,
0x86, 0x04, 0xf9, 0x7a, 0x4f, 0xfe, 0x68, 0x96, 0x2b, 0xfd, 0x9c, 0x84, 0x58, 0x05, 0x6b, 0xfc,
0x03, 0x48, 0xf6, 0xbe, 0x0e, 0x73, 0x83, 0x57, 0x0f, 0xcf, 0x60, 0x15, 0x56, 0x03, 0x00, 0xac,
0xa8, 0x75, 0xe0, 0x7d, 0x9e, 0x65, 0x2b, 0x7e, 0xee, 0x83, 0x38, 0x41, 0x0a, 0x87, 0x63, 0xd9,
0x1e, 0xc2, 0xec, 0xc0, 0x2b, 0x69, 0x39, 0x20, 0x06, 0x41, 0x09, 0xb7, 0xc2, 0xa0, 0x58, 0x1e,
0x03, 0xe6, 0xfd, 0x1e, 0x32, 0xab, 0x81, 0x74, 0x29, 0x50, 0x28, 0x86, 0x04, 0xb2, 0x84, 0x3a,
0xcc, 0x0d, 0xbe, 0x44, 0x6e, 0x04, 0x2c, 0x02, 0x85, 0x09, 0xeb, 0xa1, 0x60, 0x2c, 0x55, 0x1b,
0x16, 0xfc, 0x2f, 0xb4, 0x37, 0x03, 0xe2, 0x74, 0xa1, 0xc2, 0x46, 0x68, 0x28, 0x4b, 0xdb, 0x81,
0x2b, 0x43, 0x1e, 0x09, 0x85, 0x80, 0x62, 0xf5, 0x60, 0x85, 0x52, 0x78, 0x2c, 0xcb, 0xfc, 0x84,
0x83, 0x5c, 0xd0, 0x1d, 0x6c, 0x33, 0x54, 0x5c, 0xaf, 0x93, 0xf0, 0xda, 0x08, 0x4e, 0x8c, 0xd5,
0xe7, 0x1c, 0x2c, 0x0e, 0xbf, 0xd5, 0xac, 0x87, 0x0a, 0xcd, 0xfa, 0xed, 0xf6, 0x85, 0xe0, 0x8c,
0xc3, 0x27, 0x90, 0xea, 0xbb, 0x6b, 0x88, 0x7e, 0x81, 0xbc, 0x18, 0xa1, 0x10, 0x8c, 0xe9, 0xdd,
0xb0, 0x03, 0x33, 0xd8, 0x77, 0xc3, 0xf6, 0xa3, 0xfc, 0x37, 0xec, 0xb0, 0xa9, 0xca, 0xef, 0x40,
0x9c, 0x4c, 0xd4, 0x8c, 0x9f, 0x97, 0x6d, 0x11, 0xf2, 0xc3, 0x2c, 0xbd, 0x31, 0xc8, 0xb9, 0xea,
0x1b, 0xc3, 0xb6, 0xf8, 0xc7, 0xf0, 0xcc, 0x98, 0x7b, 0x00, 0x3d, 0xf3, 0x21, 0xeb, 0x87, 0xef,
0xda, 0x85, 0x95, 0xf3, 0xed, 0x6e, 0xd4, 0x9d, 0x3b, 0xcf, 0x4e, 0xb3, 0xdc, 0xf3, 0xd3, 0x2c,
0xf7, 0xe7, 0x69, 0x96, 0xfb, 0xe6, 0x2c, 0x1b, 0x79, 0x7e, 0x96, 0x8d, 0xfc, 0x76, 0x96, 0x8d,
0x7c, 0xbc, 0xac, 0xe9, 0xd6, 0xa3, 0xf6, 0xa1, 0x54, 0x33, 0x1a, 0xce, 0xdf, 0x18, 0x9d, 0x7f,
0xd6, 0xb1, 0xfa, 0x69, 0xb1, 0x43, 0xff, 0x8e, 0x78, 0x38, 0x41, 0x6e, 0x68, 0x9b, 0xff, 0x04,
0x00, 0x00, 0xff, 0xff, 0xee, 0x01, 0x59, 0xf1, 0xd5, 0x14, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -3752,7 +3752,7 @@ func (m *MsgCreateGroup) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Members = append(m.Members, Member{})
m.Members = append(m.Members, MemberRequest{})
if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
@ -3988,7 +3988,7 @@ func (m *MsgUpdateGroupMembers) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.MemberUpdates = append(m.MemberUpdates, Member{})
m.MemberUpdates = append(m.MemberUpdates, MemberRequest{})
if err := m.MemberUpdates[len(m.MemberUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
@ -4917,7 +4917,7 @@ func (m *MsgCreateGroupWithPolicy) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Members = append(m.Members, Member{})
m.Members = append(m.Members, MemberRequest{})
if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}

View File

@ -348,13 +348,25 @@ func (g GroupMember) ValidateBasic() error {
return sdkerrors.Wrap(errors.ErrEmpty, "group member's group id")
}
err := g.Member.ValidateBasic()
err := MemberToMemberRequest(g.Member).ValidateBasic()
if err != nil {
return sdkerrors.Wrap(err, "group member")
}
return nil
}
// MemberToMemberRequest converts a `Member` (used for storage)
// to a `MemberRequest` (used in requests). The only difference
// between the two is that `MemberRequest` doesn't have any `AddedAt` field
// since it cannot be set as part of requests.
func MemberToMemberRequest(m *Member) MemberRequest {
return MemberRequest{
Address: m.Address,
Weight: m.Weight,
Metadata: m.Metadata,
}
}
func (p Proposal) ValidateBasic() error {
if p.Id == 0 {

View File

@ -156,7 +156,7 @@ func (ProposalExecutorResult) EnumDescriptor() ([]byte, []int) {
}
// Member represents a group member with an account address,
// non-zero weight and metadata.
// non-zero weight, metadata and added_at timestamp.
type Member struct {
// address is the member's account address.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
@ -229,24 +229,30 @@ func (m *Member) GetAddedAt() time.Time {
return time.Time{}
}
// Members defines a repeated slice of Member objects.
type Members struct {
// members is the list of members.
Members []Member `protobuf:"bytes,1,rep,name=members,proto3" json:"members"`
// MemberRequest represents a group member to be used in Msg server requests.
// Contrary to `Member`, it doesn't have any `added_at` field
// since this field cannot be set as part of requests.
type MemberRequest struct {
// address is the member's account address.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// weight is the member's voting weight that should be greater than 0.
Weight string `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"`
// metadata is any arbitrary metadata attached to the member.
Metadata string `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
}
func (m *Members) Reset() { *m = Members{} }
func (m *Members) String() string { return proto.CompactTextString(m) }
func (*Members) ProtoMessage() {}
func (*Members) Descriptor() ([]byte, []int) {
func (m *MemberRequest) Reset() { *m = MemberRequest{} }
func (m *MemberRequest) String() string { return proto.CompactTextString(m) }
func (*MemberRequest) ProtoMessage() {}
func (*MemberRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_f5bddd15d7a54a9d, []int{1}
}
func (m *Members) XXX_Unmarshal(b []byte) error {
func (m *MemberRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *Members) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (m *MemberRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_Members.Marshal(b, m, deterministic)
return xxx_messageInfo_MemberRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@ -256,23 +262,37 @@ func (m *Members) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return b[:n], nil
}
}
func (m *Members) XXX_Merge(src proto.Message) {
xxx_messageInfo_Members.Merge(m, src)
func (m *MemberRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_MemberRequest.Merge(m, src)
}
func (m *Members) XXX_Size() int {
func (m *MemberRequest) XXX_Size() int {
return m.Size()
}
func (m *Members) XXX_DiscardUnknown() {
xxx_messageInfo_Members.DiscardUnknown(m)
func (m *MemberRequest) XXX_DiscardUnknown() {
xxx_messageInfo_MemberRequest.DiscardUnknown(m)
}
var xxx_messageInfo_Members proto.InternalMessageInfo
var xxx_messageInfo_MemberRequest proto.InternalMessageInfo
func (m *Members) GetMembers() []Member {
func (m *MemberRequest) GetAddress() string {
if m != nil {
return m.Members
return m.Address
}
return nil
return ""
}
func (m *MemberRequest) GetWeight() string {
if m != nil {
return m.Weight
}
return ""
}
func (m *MemberRequest) GetMetadata() string {
if m != nil {
return m.Metadata
}
return ""
}
// ThresholdDecisionPolicy is a decision policy where a proposal passes when it
@ -871,7 +891,7 @@ func init() {
proto.RegisterEnum("cosmos.group.v1.ProposalStatus", ProposalStatus_name, ProposalStatus_value)
proto.RegisterEnum("cosmos.group.v1.ProposalExecutorResult", ProposalExecutorResult_name, ProposalExecutorResult_value)
proto.RegisterType((*Member)(nil), "cosmos.group.v1.Member")
proto.RegisterType((*Members)(nil), "cosmos.group.v1.Members")
proto.RegisterType((*MemberRequest)(nil), "cosmos.group.v1.MemberRequest")
proto.RegisterType((*ThresholdDecisionPolicy)(nil), "cosmos.group.v1.ThresholdDecisionPolicy")
proto.RegisterType((*PercentageDecisionPolicy)(nil), "cosmos.group.v1.PercentageDecisionPolicy")
proto.RegisterType((*DecisionPolicyWindows)(nil), "cosmos.group.v1.DecisionPolicyWindows")
@ -886,89 +906,89 @@ func init() {
func init() { proto.RegisterFile("cosmos/group/v1/types.proto", fileDescriptor_f5bddd15d7a54a9d) }
var fileDescriptor_f5bddd15d7a54a9d = []byte{
// 1311 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcf, 0x6f, 0x1b, 0xc5,
0x17, 0xf7, 0xda, 0x8e, 0x7f, 0x3c, 0xa7, 0xb6, 0xbf, 0xd3, 0x7c, 0x9b, 0x4d, 0x52, 0xec, 0x60,
0x2a, 0x88, 0x8a, 0x62, 0xb7, 0xae, 0x44, 0xa5, 0x1e, 0x00, 0xdb, 0xd9, 0x52, 0x57, 0xad, 0x6d,
0xed, 0xae, 0x13, 0xca, 0x65, 0xb5, 0xf1, 0x4e, 0x37, 0x2b, 0xec, 0x1d, 0x6b, 0x77, 0x9c, 0xd4,
0xff, 0x41, 0x2f, 0x88, 0x1e, 0xb9, 0x20, 0x55, 0xe2, 0x2f, 0x40, 0xea, 0x01, 0x71, 0xe1, 0x5a,
0xf5, 0x80, 0x2a, 0x4e, 0x9c, 0x00, 0xb5, 0x17, 0x38, 0x71, 0xe5, 0x88, 0x76, 0x66, 0x36, 0xf1,
0x8f, 0xc4, 0xb4, 0x15, 0x9c, 0xe2, 0x79, 0x9f, 0xcf, 0x7b, 0xf3, 0x7e, 0x4f, 0x16, 0x36, 0x7a,
0xc4, 0x1f, 0x10, 0xbf, 0x62, 0x7b, 0x64, 0x34, 0xac, 0x1c, 0x5e, 0xad, 0xd0, 0xf1, 0x10, 0xfb,
0xe5, 0xa1, 0x47, 0x28, 0x41, 0x39, 0x0e, 0x96, 0x19, 0x58, 0x3e, 0xbc, 0xba, 0xbe, 0x62, 0x13,
0x9b, 0x30, 0xac, 0x12, 0xfc, 0xe2, 0xb4, 0xf5, 0x82, 0x4d, 0x88, 0xdd, 0xc7, 0x15, 0x76, 0xda,
0x1f, 0xdd, 0xaf, 0x58, 0x23, 0xcf, 0xa4, 0x0e, 0x71, 0x05, 0x5e, 0x9c, 0xc5, 0xa9, 0x33, 0xc0,
0x3e, 0x35, 0x07, 0x43, 0x41, 0x58, 0xe3, 0xf7, 0x18, 0xdc, 0xb2, 0xb8, 0x54, 0x40, 0xb3, 0xba,
0xa6, 0x3b, 0xe6, 0x50, 0xe9, 0x5b, 0x09, 0x12, 0x77, 0xf1, 0x60, 0x1f, 0x7b, 0xa8, 0x0a, 0x49,
0xd3, 0xb2, 0x3c, 0xec, 0xfb, 0xb2, 0xb4, 0x29, 0x6d, 0xa5, 0xeb, 0xf2, 0x4f, 0x4f, 0xb6, 0x57,
0x84, 0xa1, 0x1a, 0x47, 0x34, 0xea, 0x39, 0xae, 0xad, 0x86, 0x44, 0x74, 0x01, 0x12, 0x47, 0xd8,
0xb1, 0x0f, 0xa8, 0x1c, 0x0d, 0x54, 0x54, 0x71, 0x42, 0xeb, 0x90, 0x1a, 0x60, 0x6a, 0x5a, 0x26,
0x35, 0xe5, 0x18, 0x43, 0x8e, 0xcf, 0xe8, 0x23, 0x48, 0x99, 0x96, 0x85, 0x2d, 0xc3, 0xa4, 0x72,
0x7c, 0x53, 0xda, 0xca, 0x54, 0xd7, 0xcb, 0xdc, 0xc1, 0x72, 0xe8, 0x60, 0x59, 0x0f, 0x83, 0xab,
0xa7, 0x9e, 0xfe, 0x52, 0x8c, 0x3c, 0xfa, 0xb5, 0x28, 0xb1, 0x4b, 0xb1, 0x55, 0xa3, 0xa5, 0x3a,
0x24, 0xb9, 0xcb, 0x3e, 0xba, 0x0e, 0xc9, 0x01, 0xff, 0x29, 0x4b, 0x9b, 0xb1, 0xad, 0x4c, 0x75,
0xb5, 0x3c, 0x93, 0xee, 0x32, 0xa7, 0xd6, 0xe3, 0x81, 0x1d, 0x35, 0x64, 0x97, 0xbe, 0x90, 0x60,
0x55, 0x3f, 0xf0, 0xb0, 0x7f, 0x40, 0xfa, 0xd6, 0x0e, 0xee, 0x39, 0xbe, 0x43, 0xdc, 0x0e, 0xe9,
0x3b, 0xbd, 0x31, 0xba, 0x08, 0x69, 0x1a, 0x42, 0x3c, 0x15, 0xea, 0x89, 0x00, 0x7d, 0x0c, 0xc9,
0x23, 0xc7, 0xb5, 0xc8, 0x91, 0xcf, 0x62, 0xce, 0x54, 0xdf, 0x9d, 0xbb, 0x72, 0xda, 0xde, 0x1e,
0x67, 0xab, 0xa1, 0xda, 0x0d, 0xf4, 0xec, 0xc9, 0x76, 0x76, 0x9a, 0x53, 0x7a, 0x24, 0x81, 0xdc,
0xc1, 0x5e, 0x0f, 0xbb, 0xd4, 0xb4, 0xf1, 0x8c, 0x43, 0x05, 0x80, 0xe1, 0x31, 0x26, 0x3c, 0x9a,
0x90, 0xfc, 0x47, 0x2e, 0x7d, 0x27, 0xc1, 0xff, 0x4f, 0x55, 0x43, 0xb7, 0xe0, 0xdc, 0x21, 0xa1,
0x8e, 0x6b, 0x1b, 0x43, 0xec, 0x39, 0x84, 0x27, 0x29, 0x53, 0x5d, 0x9b, 0x2b, 0xe3, 0x8e, 0xe8,
0x61, 0x5e, 0xc5, 0xaf, 0x82, 0x2a, 0x2e, 0x73, 0xcd, 0x0e, 0x53, 0x44, 0x5d, 0x58, 0x19, 0x38,
0xae, 0x81, 0x1f, 0xe0, 0xde, 0x28, 0x20, 0x86, 0x06, 0xa3, 0xaf, 0x6e, 0x10, 0x0d, 0x1c, 0x57,
0x09, 0xf5, 0xb9, 0xd9, 0xd2, 0x1f, 0x12, 0xa4, 0x3f, 0x09, 0x42, 0x6f, 0xba, 0xf7, 0x09, 0xca,
0x42, 0xd4, 0xe1, 0x3e, 0xc6, 0xd5, 0xa8, 0x63, 0xa1, 0x32, 0x2c, 0x99, 0xd6, 0xc0, 0x71, 0x79,
0xcf, 0x2e, 0x68, 0x73, 0x4e, 0x5b, 0xd8, 0xcc, 0x32, 0x24, 0x0f, 0xb1, 0x17, 0xa4, 0x88, 0xf5,
0x72, 0x5c, 0x0d, 0x8f, 0xe8, 0x6d, 0x58, 0xa6, 0x84, 0x9a, 0x7d, 0x43, 0x0c, 0xc8, 0x12, 0xd3,
0xcc, 0x30, 0xd9, 0x1e, 0x9f, 0x92, 0x06, 0x40, 0xcf, 0xc3, 0x26, 0xe5, 0xb3, 0x90, 0x78, 0x8d,
0x59, 0x48, 0x0b, 0xbd, 0x1a, 0x2d, 0xdd, 0x83, 0x0c, 0x0b, 0x55, 0x4c, 0xf1, 0x1a, 0xa4, 0x58,
0xd1, 0x8d, 0xe3, 0x90, 0x93, 0xec, 0xdc, 0xb4, 0x50, 0x05, 0x12, 0xbc, 0xfd, 0x45, 0x7a, 0xcf,
0x9a, 0x15, 0x55, 0xd0, 0x4a, 0x7f, 0x45, 0x21, 0xc7, 0x6c, 0xf3, 0xf2, 0xb3, 0x64, 0xbe, 0xc9,
0x96, 0x98, 0xf4, 0x29, 0x3a, 0xed, 0xd3, 0x71, 0x2d, 0x62, 0xaf, 0x5f, 0x8b, 0xf8, 0xd9, 0xb5,
0x58, 0x9a, 0xae, 0x85, 0x09, 0x39, 0x4b, 0x74, 0xb2, 0x31, 0x64, 0xb1, 0x88, 0x6c, 0xaf, 0xcc,
0x65, 0xbb, 0xe6, 0x8e, 0xeb, 0xa5, 0x67, 0x4f, 0xb6, 0x0b, 0x8b, 0x27, 0x48, 0xcd, 0x5a, 0xd3,
0x33, 0x3a, 0x5d, 0xcb, 0xe4, 0x1b, 0xd5, 0xf2, 0x46, 0xea, 0xe1, 0xe3, 0x62, 0xe4, 0xf7, 0xc7,
0x45, 0xa9, 0xf4, 0xc3, 0x12, 0xa4, 0x3a, 0x1e, 0x19, 0x12, 0xdf, 0xec, 0xcf, 0x35, 0xf0, 0x6d,
0x58, 0xe1, 0xf9, 0xe4, 0xb1, 0x18, 0x61, 0x41, 0xfe, 0xa9, 0x9f, 0x91, 0x7d, 0x52, 0x4c, 0x81,
0x2c, 0x6c, 0xee, 0x0f, 0x20, 0x3d, 0x64, 0x3e, 0x04, 0xfb, 0x35, 0xbe, 0x19, 0x5b, 0x68, 0xfc,
0x84, 0x8a, 0x14, 0xc8, 0xf8, 0xa3, 0xfd, 0x81, 0x43, 0x8d, 0xe0, 0x91, 0x62, 0xc5, 0x78, 0xd5,
0x64, 0x00, 0x57, 0x0c, 0x20, 0xf4, 0x0e, 0x9c, 0xe3, 0x61, 0x86, 0x55, 0x4d, 0xb0, 0x0c, 0x2c,
0x33, 0xe1, 0xae, 0x28, 0xed, 0x95, 0x99, 0x5c, 0x84, 0xdc, 0x24, 0xe3, 0x4e, 0x46, 0x1c, 0x6a,
0x5c, 0x87, 0x84, 0x4f, 0x4d, 0x3a, 0xf2, 0xe5, 0xd4, 0xa6, 0xb4, 0x95, 0xad, 0x16, 0xe7, 0xc6,
0x20, 0x4c, 0xbc, 0xc6, 0x68, 0xaa, 0xa0, 0xa3, 0x0e, 0xa0, 0xfb, 0x8e, 0x6b, 0xf6, 0x0d, 0x6a,
0xf6, 0xfb, 0x63, 0xc3, 0xc3, 0xfe, 0xa8, 0x4f, 0xe5, 0x34, 0x8b, 0xee, 0xe2, 0x9c, 0x11, 0x3d,
0x20, 0xa9, 0x8c, 0x23, 0x1e, 0x9f, 0x3c, 0xd3, 0x9e, 0x90, 0xa3, 0x0e, 0xfc, 0x6f, 0x6a, 0x91,
0x1a, 0xd8, 0xb5, 0x64, 0x78, 0x8d, 0x74, 0xe5, 0x26, 0xb7, 0xa9, 0xe2, 0x5a, 0xa8, 0x03, 0x39,
0xbe, 0x4c, 0x89, 0x17, 0x3a, 0x98, 0x61, 0x51, 0xbe, 0x77, 0x66, 0x94, 0x8a, 0xe0, 0x73, 0x9f,
0xd4, 0x2c, 0x9e, 0x3a, 0xa3, 0x2b, 0x41, 0x83, 0xf8, 0xbe, 0x69, 0x63, 0x5f, 0x5e, 0x66, 0x6f,
0xec, 0xa9, 0x43, 0xa3, 0x1e, 0xb3, 0x6e, 0xc4, 0x83, 0x2e, 0x2e, 0x7d, 0x2d, 0x41, 0x66, 0x32,
0xd6, 0x0d, 0x48, 0x8f, 0xb1, 0x6f, 0xf4, 0xc8, 0xc8, 0xa5, 0xe2, 0x0d, 0x4b, 0x8d, 0xb1, 0xdf,
0x08, 0xce, 0x41, 0xa9, 0xcd, 0x7d, 0x9f, 0x9a, 0x8e, 0x2b, 0x08, 0xfc, 0xdf, 0x89, 0x65, 0x21,
0xe4, 0xa4, 0x35, 0x48, 0xb9, 0x44, 0xe0, 0xbc, 0x55, 0x93, 0x2e, 0xe1, 0xd0, 0xfb, 0x80, 0x5c,
0x62, 0x1c, 0x39, 0xf4, 0xc0, 0x38, 0xc4, 0x34, 0x24, 0xf1, 0x05, 0x91, 0x73, 0xc9, 0x9e, 0x43,
0x0f, 0x76, 0x31, 0xe5, 0x64, 0xe1, 0xdf, 0x9f, 0x12, 0xc4, 0x77, 0x09, 0xc5, 0xa8, 0x08, 0x99,
0xa1, 0x48, 0xc5, 0xc9, 0xd2, 0x84, 0x50, 0xc4, 0x77, 0xd4, 0x21, 0xa1, 0x62, 0x6d, 0x2e, 0xdc,
0x51, 0x8c, 0x86, 0xae, 0x41, 0x82, 0x0c, 0x83, 0xd7, 0x88, 0x79, 0x99, 0xad, 0x6e, 0xcc, 0xa5,
0x3e, 0xb8, 0xb7, 0xcd, 0x28, 0xaa, 0xa0, 0x2e, 0x5c, 0x6c, 0xff, 0xce, 0x3c, 0x5d, 0xfe, 0x52,
0x02, 0x38, 0xb9, 0x19, 0x6d, 0xc0, 0xea, 0x6e, 0x5b, 0x57, 0x8c, 0x76, 0x47, 0x6f, 0xb6, 0x5b,
0x46, 0xb7, 0xa5, 0x75, 0x94, 0x46, 0xf3, 0x66, 0x53, 0xd9, 0xc9, 0x47, 0xd0, 0x79, 0xc8, 0x4d,
0x82, 0xf7, 0x14, 0x2d, 0x2f, 0xa1, 0x55, 0x38, 0x3f, 0x29, 0xac, 0xd5, 0x35, 0xbd, 0xd6, 0x6c,
0xe5, 0xa3, 0x08, 0x41, 0x76, 0x12, 0x68, 0xb5, 0xf3, 0x31, 0x74, 0x11, 0xe4, 0x69, 0x99, 0xb1,
0xd7, 0xd4, 0x6f, 0x19, 0xbb, 0x8a, 0xde, 0xce, 0xc7, 0xd7, 0xe3, 0x0f, 0xbf, 0x29, 0x44, 0x2e,
0xff, 0x28, 0x41, 0x76, 0x7a, 0xd8, 0x50, 0x11, 0x36, 0x3a, 0x6a, 0xbb, 0xd3, 0xd6, 0x6a, 0x77,
0x0c, 0x4d, 0xaf, 0xe9, 0x5d, 0x6d, 0xc6, 0xb3, 0xb7, 0x60, 0x6d, 0x96, 0xa0, 0x75, 0xeb, 0x77,
0x9b, 0xba, 0xae, 0xec, 0xe4, 0xa5, 0xe0, 0xda, 0x59, 0xb8, 0xd6, 0x68, 0x28, 0x9d, 0x00, 0x8d,
0x9e, 0x86, 0xaa, 0xca, 0x6d, 0xa5, 0x11, 0xa0, 0xb1, 0x20, 0x23, 0x73, 0xba, 0xf5, 0xb6, 0x1a,
0x80, 0xf1, 0xd3, 0xee, 0x0d, 0x02, 0xda, 0x51, 0x6b, 0x7b, 0xad, 0xfc, 0x92, 0x08, 0xe8, 0x7b,
0x09, 0x2e, 0x9c, 0x3e, 0x57, 0x68, 0x0b, 0x2e, 0x1d, 0xeb, 0x2b, 0x9f, 0x2a, 0x8d, 0xae, 0xde,
0x56, 0x0d, 0x55, 0xd1, 0xba, 0x77, 0xf4, 0x99, 0x08, 0x2f, 0xc1, 0xe6, 0x99, 0xcc, 0x56, 0x5b,
0x37, 0xd4, 0x6e, 0x2b, 0x2f, 0x2d, 0x64, 0x69, 0xdd, 0x46, 0x43, 0xd1, 0xb4, 0x7c, 0x74, 0x21,
0xeb, 0x66, 0xad, 0x79, 0xa7, 0xab, 0x2a, 0xf9, 0x18, 0x77, 0xbe, 0xfe, 0xe1, 0xd3, 0x17, 0x05,
0xe9, 0xf9, 0x8b, 0x82, 0xf4, 0xdb, 0x8b, 0x82, 0xf4, 0xe8, 0x65, 0x21, 0xf2, 0xfc, 0x65, 0x21,
0xf2, 0xf3, 0xcb, 0x42, 0xe4, 0xb3, 0x4b, 0xb6, 0x43, 0x0f, 0x46, 0xfb, 0xe5, 0x1e, 0x19, 0x88,
0x2f, 0x0b, 0xf1, 0x67, 0xdb, 0xb7, 0x3e, 0xaf, 0x3c, 0xe0, 0x1f, 0x3e, 0xfb, 0x09, 0xd6, 0x89,
0xd7, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xb5, 0x45, 0xe0, 0x5b, 0x0f, 0x0d, 0x00, 0x00,
// 1299 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4d, 0x6f, 0x1b, 0x45,
0x18, 0xf6, 0xda, 0x8e, 0x3f, 0x5e, 0xa7, 0xb6, 0x99, 0x86, 0x66, 0x93, 0x14, 0x3b, 0x98, 0x0a,
0xa2, 0xa2, 0xd8, 0x6d, 0x2a, 0x81, 0xd4, 0x03, 0x60, 0x3b, 0x5b, 0xea, 0xaa, 0xb5, 0xad, 0xdd,
0x75, 0x42, 0xb9, 0xac, 0x36, 0xde, 0xe9, 0x66, 0x85, 0xbd, 0x63, 0x76, 0xc7, 0x49, 0xfd, 0x0f,
0x7a, 0x41, 0xf4, 0xc8, 0x05, 0xa9, 0x12, 0xbf, 0x00, 0xa9, 0x07, 0xc4, 0x85, 0x6b, 0xd5, 0x03,
0xaa, 0x38, 0x71, 0x02, 0xd4, 0x5e, 0xe0, 0xc4, 0x95, 0x23, 0xda, 0x99, 0xd9, 0xc4, 0x1f, 0x89,
0x69, 0x2a, 0xe0, 0x94, 0xcc, 0x3c, 0xcf, 0xfb, 0xce, 0xf3, 0x7e, 0xae, 0x0c, 0x6b, 0x5d, 0xe2,
0xf7, 0x89, 0x5f, 0xb1, 0x3d, 0x32, 0x1c, 0x54, 0x0e, 0xae, 0x56, 0xe8, 0x68, 0x80, 0xfd, 0xf2,
0xc0, 0x23, 0x94, 0xa0, 0x1c, 0x07, 0xcb, 0x0c, 0x2c, 0x1f, 0x5c, 0x5d, 0x5d, 0xb2, 0x89, 0x4d,
0x18, 0x56, 0x09, 0xfe, 0xe3, 0xb4, 0xd5, 0x82, 0x4d, 0x88, 0xdd, 0xc3, 0x15, 0x76, 0xda, 0x1b,
0xde, 0xab, 0x58, 0x43, 0xcf, 0xa4, 0x0e, 0x71, 0x05, 0x5e, 0x9c, 0xc6, 0xa9, 0xd3, 0xc7, 0x3e,
0x35, 0xfb, 0x03, 0x41, 0x58, 0xe1, 0xef, 0x18, 0xdc, 0xb3, 0x78, 0x54, 0x40, 0xd3, 0xb6, 0xa6,
0x3b, 0xe2, 0x50, 0xe9, 0x5b, 0x09, 0x12, 0x77, 0x70, 0x7f, 0x0f, 0x7b, 0x68, 0x0b, 0x92, 0xa6,
0x65, 0x79, 0xd8, 0xf7, 0x65, 0x69, 0x5d, 0xda, 0x48, 0xd7, 0xe4, 0x9f, 0x1e, 0x6f, 0x2e, 0x09,
0x47, 0x55, 0x8e, 0x68, 0xd4, 0x73, 0x5c, 0x5b, 0x0d, 0x89, 0xe8, 0x02, 0x24, 0x0e, 0xb1, 0x63,
0xef, 0x53, 0x39, 0x1a, 0x98, 0xa8, 0xe2, 0x84, 0x56, 0x21, 0xd5, 0xc7, 0xd4, 0xb4, 0x4c, 0x6a,
0xca, 0x31, 0x86, 0x1c, 0x9d, 0xd1, 0x87, 0x90, 0x32, 0x2d, 0x0b, 0x5b, 0x86, 0x49, 0xe5, 0xf8,
0xba, 0xb4, 0x91, 0xd9, 0x5a, 0x2d, 0x73, 0x81, 0xe5, 0x50, 0x60, 0x59, 0x0f, 0x83, 0xab, 0xa5,
0x9e, 0xfc, 0x52, 0x8c, 0x3c, 0xfc, 0xb5, 0x28, 0xb1, 0x47, 0xb1, 0x55, 0xa5, 0xa5, 0x43, 0x38,
0xc7, 0x25, 0xab, 0xf8, 0xf3, 0x21, 0xf6, 0xe9, 0xff, 0xa5, 0xbc, 0xf4, 0x85, 0x04, 0xcb, 0xfa,
0xbe, 0x87, 0xfd, 0x7d, 0xd2, 0xb3, 0xb6, 0x71, 0xd7, 0xf1, 0x1d, 0xe2, 0xb6, 0x49, 0xcf, 0xe9,
0x8e, 0xd0, 0x45, 0x48, 0xd3, 0x10, 0xe2, 0x2a, 0xd4, 0xe3, 0x0b, 0xf4, 0x11, 0x24, 0x0f, 0x1d,
0xd7, 0x22, 0x87, 0x3e, 0x7b, 0x2e, 0xb3, 0xf5, 0x76, 0x79, 0xaa, 0x2d, 0xca, 0x93, 0xfe, 0x76,
0x39, 0x5b, 0x0d, 0xcd, 0xae, 0xa3, 0xa7, 0x8f, 0x37, 0xb3, 0x93, 0x9c, 0xd2, 0x43, 0x09, 0xe4,
0x36, 0xf6, 0xba, 0xd8, 0xa5, 0xa6, 0x8d, 0xa7, 0x04, 0x15, 0x00, 0x06, 0x47, 0x98, 0x50, 0x34,
0x76, 0xf3, 0x1f, 0x49, 0xfa, 0x4e, 0x82, 0xd7, 0x4f, 0x34, 0x43, 0x37, 0xe1, 0xdc, 0x01, 0xa1,
0x8e, 0x6b, 0x1b, 0x03, 0xec, 0x39, 0x84, 0x27, 0x29, 0xb3, 0xb5, 0x32, 0x53, 0xfb, 0x6d, 0xd1,
0xf8, 0xbc, 0xf4, 0x5f, 0x05, 0xa5, 0x5f, 0xe4, 0x96, 0x6d, 0x66, 0x88, 0x3a, 0xb0, 0xd4, 0x77,
0x5c, 0x03, 0xdf, 0xc7, 0xdd, 0x61, 0x40, 0x0c, 0x1d, 0x46, 0x5f, 0xde, 0x21, 0xea, 0x3b, 0xae,
0x12, 0xda, 0x73, 0xb7, 0xa5, 0x3f, 0x24, 0x48, 0x7f, 0x1c, 0x84, 0xde, 0x70, 0xef, 0x11, 0x94,
0x85, 0xa8, 0xc3, 0x35, 0xc6, 0xd5, 0xa8, 0x63, 0xa1, 0x32, 0x2c, 0x98, 0x56, 0xdf, 0x71, 0x79,
0xbb, 0xcc, 0xe9, 0x30, 0x4e, 0x9b, 0x3b, 0x01, 0x32, 0x24, 0x0f, 0xb0, 0x17, 0xa4, 0x88, 0x0d,
0x40, 0x5c, 0x0d, 0x8f, 0xe8, 0x4d, 0x58, 0xa4, 0x84, 0x9a, 0x3d, 0x43, 0xf4, 0xe6, 0x02, 0xb3,
0xcc, 0xb0, 0xbb, 0x5d, 0xde, 0xa0, 0x75, 0x80, 0xae, 0x87, 0x4d, 0xca, 0x07, 0x28, 0x71, 0x86,
0x01, 0x4a, 0x0b, 0xbb, 0x2a, 0x2d, 0xdd, 0x85, 0x0c, 0x0b, 0x55, 0x8c, 0xfe, 0x0a, 0xa4, 0x58,
0xd1, 0x8d, 0xa3, 0x90, 0x93, 0xec, 0xdc, 0xb0, 0x50, 0x05, 0x12, 0x7d, 0x46, 0x12, 0xe9, 0x5d,
0x9e, 0xe9, 0x12, 0x31, 0x8b, 0x82, 0x56, 0xfa, 0x2b, 0x0a, 0x39, 0xe6, 0x9b, 0x97, 0x9f, 0x25,
0xf3, 0x55, 0x06, 0x74, 0x5c, 0x53, 0x74, 0x52, 0xd3, 0x51, 0x2d, 0x62, 0x67, 0xaf, 0x45, 0xfc,
0xf4, 0x5a, 0x2c, 0x4c, 0xd6, 0xc2, 0x84, 0x9c, 0x25, 0x3a, 0xd9, 0x18, 0xb0, 0x58, 0x44, 0xb6,
0x97, 0x66, 0xb2, 0x5d, 0x75, 0x47, 0xb5, 0xd2, 0xd3, 0xc7, 0x9b, 0x85, 0xf9, 0x13, 0xa4, 0x66,
0xad, 0xc9, 0x19, 0x9d, 0xac, 0x65, 0xf2, 0x95, 0x6a, 0x79, 0x3d, 0xf5, 0xe0, 0x51, 0x31, 0xf2,
0xfb, 0xa3, 0xa2, 0x54, 0xfa, 0x61, 0x01, 0x52, 0x6d, 0x8f, 0x0c, 0x88, 0x6f, 0xf6, 0x66, 0x1a,
0xf8, 0x16, 0x2c, 0xf1, 0x7c, 0xf2, 0x58, 0x8c, 0xb0, 0x20, 0xff, 0xd4, 0xcf, 0xc8, 0x3e, 0x2e,
0xa6, 0x40, 0xe6, 0x36, 0xf7, 0x7b, 0x90, 0x1e, 0x30, 0x0d, 0xd8, 0xf3, 0xe5, 0xf8, 0x7a, 0x6c,
0xae, 0xf3, 0x63, 0x2a, 0x52, 0x20, 0xe3, 0x0f, 0xf7, 0xfa, 0x0e, 0x35, 0x82, 0x2f, 0x1b, 0x2b,
0xc6, 0xcb, 0x26, 0x03, 0xb8, 0x61, 0x00, 0xa1, 0xb7, 0xe0, 0x1c, 0x0f, 0x33, 0xac, 0x6a, 0x82,
0x65, 0x60, 0x91, 0x5d, 0xee, 0x88, 0xd2, 0x5e, 0x99, 0xca, 0x45, 0xc8, 0x4d, 0x32, 0xee, 0x78,
0xc4, 0xa1, 0xc5, 0xfb, 0x90, 0xf0, 0xa9, 0x49, 0x87, 0xbe, 0x9c, 0x5a, 0x97, 0x36, 0xb2, 0x5b,
0xc5, 0x99, 0x31, 0x08, 0x13, 0xaf, 0x31, 0x9a, 0x2a, 0xe8, 0xa8, 0x0d, 0xe8, 0x9e, 0xe3, 0x9a,
0x3d, 0x83, 0x9a, 0xbd, 0xde, 0xc8, 0xf0, 0xb0, 0x3f, 0xec, 0x51, 0x39, 0xcd, 0xa2, 0xbb, 0x38,
0xe3, 0x44, 0x0f, 0x48, 0x2a, 0xe3, 0xd4, 0xe2, 0x41, 0x7c, 0x6a, 0x9e, 0x59, 0x8f, 0xdd, 0xa3,
0x36, 0xbc, 0x36, 0xb1, 0x48, 0x0d, 0xec, 0x5a, 0x32, 0x9c, 0x21, 0x5d, 0xb9, 0xf1, 0x6d, 0xaa,
0xb8, 0x16, 0x6a, 0x43, 0x8e, 0x2f, 0x53, 0xe2, 0x85, 0x02, 0x33, 0x2c, 0xca, 0x77, 0x4e, 0x8d,
0x52, 0x11, 0x7c, 0xae, 0x49, 0xcd, 0xe2, 0x89, 0x33, 0xba, 0x12, 0x34, 0x88, 0xef, 0x9b, 0x36,
0xf6, 0xe5, 0xc5, 0xf5, 0xd8, 0x69, 0x43, 0xa3, 0x1e, 0xb1, 0xae, 0xc7, 0x83, 0x2e, 0x2e, 0x7d,
0x2d, 0x41, 0x66, 0x3c, 0xd6, 0x35, 0x48, 0x8f, 0xb0, 0x6f, 0x74, 0xc9, 0xd0, 0xa5, 0xe2, 0x1b,
0x96, 0x1a, 0x61, 0xbf, 0x1e, 0x9c, 0x83, 0x52, 0x9b, 0x7b, 0x3e, 0x35, 0x1d, 0x57, 0x10, 0xf8,
0x97, 0x7c, 0x51, 0x5c, 0x72, 0xd2, 0x0a, 0xa4, 0x5c, 0x22, 0x70, 0xde, 0xaa, 0x49, 0x97, 0x70,
0xe8, 0x5d, 0x40, 0x2e, 0x31, 0x0e, 0x1d, 0xba, 0x6f, 0x1c, 0x60, 0x1a, 0x92, 0xf8, 0x82, 0xc8,
0xb9, 0x64, 0xd7, 0xa1, 0xfb, 0x3b, 0x98, 0x72, 0xb2, 0xd0, 0xf7, 0xa7, 0x04, 0xf1, 0x1d, 0x42,
0x31, 0x2a, 0x42, 0x66, 0x20, 0x52, 0x71, 0xbc, 0x34, 0x21, 0xbc, 0xe2, 0x3b, 0xea, 0x80, 0x50,
0xb1, 0x36, 0xe7, 0xee, 0x28, 0x46, 0x43, 0xd7, 0x20, 0x41, 0x06, 0xc1, 0xd7, 0x88, 0xa9, 0xcc,
0x6e, 0xad, 0xcd, 0xa4, 0x3e, 0x78, 0xb7, 0xc5, 0x28, 0xaa, 0xa0, 0xce, 0x5d, 0x6c, 0xff, 0xce,
0x3c, 0x5d, 0xfe, 0x52, 0x02, 0x38, 0x7e, 0x19, 0xad, 0xc1, 0xf2, 0x4e, 0x4b, 0x57, 0x8c, 0x56,
0x5b, 0x6f, 0xb4, 0x9a, 0x46, 0xa7, 0xa9, 0xb5, 0x95, 0x7a, 0xe3, 0x46, 0x43, 0xd9, 0xce, 0x47,
0xd0, 0x79, 0xc8, 0x8d, 0x83, 0x77, 0x15, 0x2d, 0x2f, 0xa1, 0x65, 0x38, 0x3f, 0x7e, 0x59, 0xad,
0x69, 0x7a, 0xb5, 0xd1, 0xcc, 0x47, 0x11, 0x82, 0xec, 0x38, 0xd0, 0x6c, 0xe5, 0x63, 0xe8, 0x22,
0xc8, 0x93, 0x77, 0xc6, 0x6e, 0x43, 0xbf, 0x69, 0xec, 0x28, 0x7a, 0x2b, 0x1f, 0x5f, 0x8d, 0x3f,
0xf8, 0xa6, 0x10, 0xb9, 0xfc, 0xa3, 0x04, 0xd9, 0xc9, 0x61, 0x43, 0x45, 0x58, 0x6b, 0xab, 0xad,
0x76, 0x4b, 0xab, 0xde, 0x36, 0x34, 0xbd, 0xaa, 0x77, 0xb4, 0x29, 0x65, 0x6f, 0xc0, 0xca, 0x34,
0x41, 0xeb, 0xd4, 0xee, 0x34, 0x74, 0x5d, 0xd9, 0xce, 0x4b, 0xc1, 0xb3, 0xd3, 0x70, 0xb5, 0x5e,
0x57, 0xda, 0x01, 0x1a, 0x3d, 0x09, 0x55, 0x95, 0x5b, 0x4a, 0x3d, 0x40, 0x63, 0x41, 0x46, 0x66,
0x6c, 0x6b, 0x2d, 0x35, 0x00, 0xe3, 0x27, 0xbd, 0x1b, 0x04, 0xb4, 0xad, 0x56, 0x77, 0x9b, 0xf9,
0x05, 0x11, 0xd0, 0xf7, 0x12, 0x5c, 0x38, 0x79, 0xae, 0xd0, 0x06, 0x5c, 0x3a, 0xb2, 0x57, 0x3e,
0x51, 0xea, 0x1d, 0xbd, 0xa5, 0x1a, 0xaa, 0xa2, 0x75, 0x6e, 0xeb, 0x53, 0x11, 0x5e, 0x82, 0xf5,
0x53, 0x99, 0xcd, 0x96, 0x6e, 0xa8, 0x9d, 0x66, 0x5e, 0x9a, 0xcb, 0xd2, 0x3a, 0xf5, 0xba, 0xa2,
0x69, 0xf9, 0xe8, 0x5c, 0xd6, 0x8d, 0x6a, 0xe3, 0x76, 0x47, 0x55, 0xf2, 0x31, 0x2e, 0xbe, 0xf6,
0xc1, 0x93, 0xe7, 0x05, 0xe9, 0xd9, 0xf3, 0x82, 0xf4, 0xdb, 0xf3, 0x82, 0xf4, 0xf0, 0x45, 0x21,
0xf2, 0xec, 0x45, 0x21, 0xf2, 0xf3, 0x8b, 0x42, 0xe4, 0xd3, 0x4b, 0xb6, 0x43, 0xf7, 0x87, 0x7b,
0xe5, 0x2e, 0xe9, 0x8b, 0x9f, 0x23, 0xe2, 0xcf, 0xa6, 0x6f, 0x7d, 0x56, 0xb9, 0xcf, 0x7f, 0x2d,
0xed, 0x25, 0x58, 0x27, 0x5e, 0xfb, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xea, 0x13, 0x0f, 0x14, 0x44,
0x0d, 0x00, 0x00,
}
func (this *GroupPolicyInfo) Equal(that interface{}) bool {
@ -1065,7 +1085,7 @@ func (m *Member) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *Members) Marshal() (dAtA []byte, err error) {
func (m *MemberRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@ -1075,29 +1095,36 @@ func (m *Members) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *Members) MarshalTo(dAtA []byte) (int, error) {
func (m *MemberRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *Members) MarshalToSizedBuffer(dAtA []byte) (int, error) {
func (m *MemberRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.Members) > 0 {
for iNdEx := len(m.Members) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Members[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintTypes(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
}
if len(m.Metadata) > 0 {
i -= len(m.Metadata)
copy(dAtA[i:], m.Metadata)
i = encodeVarintTypes(dAtA, i, uint64(len(m.Metadata)))
i--
dAtA[i] = 0x1a
}
if len(m.Weight) > 0 {
i -= len(m.Weight)
copy(dAtA[i:], m.Weight)
i = encodeVarintTypes(dAtA, i, uint64(len(m.Weight)))
i--
dAtA[i] = 0x12
}
if len(m.Address) > 0 {
i -= len(m.Address)
copy(dAtA[i:], m.Address)
i = encodeVarintTypes(dAtA, i, uint64(len(m.Address)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@ -1652,17 +1679,23 @@ func (m *Member) Size() (n int) {
return n
}
func (m *Members) Size() (n int) {
func (m *MemberRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.Members) > 0 {
for _, e := range m.Members {
l = e.Size()
n += 1 + l + sovTypes(uint64(l))
}
l = len(m.Address)
if l > 0 {
n += 1 + l + sovTypes(uint64(l))
}
l = len(m.Weight)
if l > 0 {
n += 1 + l + sovTypes(uint64(l))
}
l = len(m.Metadata)
if l > 0 {
n += 1 + l + sovTypes(uint64(l))
}
return n
}
@ -2077,7 +2110,7 @@ func (m *Member) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *Members) Unmarshal(dAtA []byte) error {
func (m *MemberRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -2100,17 +2133,17 @@ func (m *Members) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: Members: wiretype end group for non-group")
return fmt.Errorf("proto: MemberRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: Members: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: MemberRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType)
}
var msglen int
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
@ -2120,25 +2153,87 @@ func (m *Members) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthTypes
}
postIndex := iNdEx + msglen
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTypes
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Members = append(m.Members, Member{})
if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
m.Address = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Weight", 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.Weight = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Metadata", 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.Metadata = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex

View File

@ -6,10 +6,15 @@ import (
"github.com/cosmos/cosmos-sdk/x/group/errors"
)
// MemberRequests defines a repeated slice of MemberRequest objects.
type MemberRequests struct {
Members []MemberRequest
}
// ValidateBasic performs stateless validation on an array of members. On top
// of validating each member individually, it also makes sure there are no
// duplicate addresses.
func (ms Members) ValidateBasic() error {
func (ms MemberRequests) ValidateBasic() error {
index := make(map[string]struct{}, len(ms.Members))
for i := range ms.Members {
member := ms.Members[i]