From 1a8cdf2e52c31ad675c464e916e7bf3399da79d2 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 14:13:29 +0700 Subject: [PATCH 01/14] add constitution --- api/cosmos/gov/v1/genesis.pulsar.go | 297 +++++++++++++++++----------- proto/cosmos/gov/v1/genesis.proto | 18 +- x/gov/types/v1/genesis.pb.go | 145 +++++++++----- 3 files changed, 295 insertions(+), 165 deletions(-) diff --git a/api/cosmos/gov/v1/genesis.pulsar.go b/api/cosmos/gov/v1/genesis.pulsar.go index 645e02ec192e..7c6769ef9c74 100644 --- a/api/cosmos/gov/v1/genesis.pulsar.go +++ b/api/cosmos/gov/v1/genesis.pulsar.go @@ -12,161 +12,162 @@ import ( sync "sync" ) -var _ protoreflect.List = (*_GenesisState_2_list)(nil) +var _ protoreflect.List = (*_GenesisState_3_list)(nil) -type _GenesisState_2_list struct { +type _GenesisState_3_list struct { list *[]*Deposit } -func (x *_GenesisState_2_list) Len() int { +func (x *_GenesisState_3_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_2_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_3_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_3_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Deposit) (*x.list)[i] = concreteValue } -func (x *_GenesisState_2_list) Append(value protoreflect.Value) { +func (x *_GenesisState_3_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Deposit) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_3_list) AppendMutable() protoreflect.Value { v := new(Deposit) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_2_list) Truncate(n int) { +func (x *_GenesisState_3_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_2_list) NewElement() protoreflect.Value { +func (x *_GenesisState_3_list) NewElement() protoreflect.Value { v := new(Deposit) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_2_list) IsValid() bool { +func (x *_GenesisState_3_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_3_list)(nil) +var _ protoreflect.List = (*_GenesisState_4_list)(nil) -type _GenesisState_3_list struct { +type _GenesisState_4_list struct { list *[]*Vote } -func (x *_GenesisState_3_list) Len() int { +func (x *_GenesisState_4_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_3_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_4_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_3_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_4_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Vote) (*x.list)[i] = concreteValue } -func (x *_GenesisState_3_list) Append(value protoreflect.Value) { +func (x *_GenesisState_4_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Vote) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_3_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_4_list) AppendMutable() protoreflect.Value { v := new(Vote) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_3_list) Truncate(n int) { +func (x *_GenesisState_4_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_3_list) NewElement() protoreflect.Value { +func (x *_GenesisState_4_list) NewElement() protoreflect.Value { v := new(Vote) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_3_list) IsValid() bool { +func (x *_GenesisState_4_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_4_list)(nil) +var _ protoreflect.List = (*_GenesisState_5_list)(nil) -type _GenesisState_4_list struct { +type _GenesisState_5_list struct { list *[]*Proposal } -func (x *_GenesisState_4_list) Len() int { +func (x *_GenesisState_5_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_4_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_5_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_4_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_5_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Proposal) (*x.list)[i] = concreteValue } -func (x *_GenesisState_4_list) Append(value protoreflect.Value) { +func (x *_GenesisState_5_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Proposal) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_4_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_5_list) AppendMutable() protoreflect.Value { v := new(Proposal) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_4_list) Truncate(n int) { +func (x *_GenesisState_5_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_4_list) NewElement() protoreflect.Value { +func (x *_GenesisState_5_list) NewElement() protoreflect.Value { v := new(Proposal) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_4_list) IsValid() bool { +func (x *_GenesisState_5_list) IsValid() bool { return x.list != nil } var ( md_GenesisState protoreflect.MessageDescriptor + fd_GenesisState_constitution protoreflect.FieldDescriptor fd_GenesisState_starting_proposal_id protoreflect.FieldDescriptor fd_GenesisState_deposits protoreflect.FieldDescriptor fd_GenesisState_votes protoreflect.FieldDescriptor @@ -180,6 +181,7 @@ var ( func init() { file_cosmos_gov_v1_genesis_proto_init() md_GenesisState = File_cosmos_gov_v1_genesis_proto.Messages().ByName("GenesisState") + fd_GenesisState_constitution = md_GenesisState.Fields().ByName("constitution") fd_GenesisState_starting_proposal_id = md_GenesisState.Fields().ByName("starting_proposal_id") fd_GenesisState_deposits = md_GenesisState.Fields().ByName("deposits") fd_GenesisState_votes = md_GenesisState.Fields().ByName("votes") @@ -255,6 +257,12 @@ func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage { // While iterating, mutating operations may only be performed // on the current field descriptor. func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Constitution != "" { + value := protoreflect.ValueOfString(x.Constitution) + if !f(fd_GenesisState_constitution, value) { + return + } + } if x.StartingProposalId != uint64(0) { value := protoreflect.ValueOfUint64(x.StartingProposalId) if !f(fd_GenesisState_starting_proposal_id, value) { @@ -262,19 +270,19 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, } } if len(x.Deposits) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_2_list{list: &x.Deposits}) + value := protoreflect.ValueOfList(&_GenesisState_3_list{list: &x.Deposits}) if !f(fd_GenesisState_deposits, value) { return } } if len(x.Votes) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_3_list{list: &x.Votes}) + value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.Votes}) if !f(fd_GenesisState_votes, value) { return } } if len(x.Proposals) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.Proposals}) + value := protoreflect.ValueOfList(&_GenesisState_5_list{list: &x.Proposals}) if !f(fd_GenesisState_proposals, value) { return } @@ -318,6 +326,8 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, // a repeated field is populated if it is non-empty. func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { + case "cosmos.gov.v1.GenesisState.constitution": + return x.Constitution != "" case "cosmos.gov.v1.GenesisState.starting_proposal_id": return x.StartingProposalId != uint64(0) case "cosmos.gov.v1.GenesisState.deposits": @@ -350,6 +360,8 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool // Clear is a mutating operation and unsafe for concurrent use. func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { + case "cosmos.gov.v1.GenesisState.constitution": + x.Constitution = "" case "cosmos.gov.v1.GenesisState.starting_proposal_id": x.StartingProposalId = uint64(0) case "cosmos.gov.v1.GenesisState.deposits": @@ -382,26 +394,29 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { // of the value; to obtain a mutable reference, use Mutable. func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { + case "cosmos.gov.v1.GenesisState.constitution": + value := x.Constitution + return protoreflect.ValueOfString(value) case "cosmos.gov.v1.GenesisState.starting_proposal_id": value := x.StartingProposalId return protoreflect.ValueOfUint64(value) case "cosmos.gov.v1.GenesisState.deposits": if len(x.Deposits) == 0 { - return protoreflect.ValueOfList(&_GenesisState_2_list{}) + return protoreflect.ValueOfList(&_GenesisState_3_list{}) } - listValue := &_GenesisState_2_list{list: &x.Deposits} + listValue := &_GenesisState_3_list{list: &x.Deposits} return protoreflect.ValueOfList(listValue) case "cosmos.gov.v1.GenesisState.votes": if len(x.Votes) == 0 { - return protoreflect.ValueOfList(&_GenesisState_3_list{}) + return protoreflect.ValueOfList(&_GenesisState_4_list{}) } - listValue := &_GenesisState_3_list{list: &x.Votes} + listValue := &_GenesisState_4_list{list: &x.Votes} return protoreflect.ValueOfList(listValue) case "cosmos.gov.v1.GenesisState.proposals": if len(x.Proposals) == 0 { - return protoreflect.ValueOfList(&_GenesisState_4_list{}) + return protoreflect.ValueOfList(&_GenesisState_5_list{}) } - listValue := &_GenesisState_4_list{list: &x.Proposals} + listValue := &_GenesisState_5_list{list: &x.Proposals} return protoreflect.ValueOfList(listValue) case "cosmos.gov.v1.GenesisState.deposit_params": value := x.DepositParams @@ -435,19 +450,21 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto // Set is a mutating operation and unsafe for concurrent use. func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { + case "cosmos.gov.v1.GenesisState.constitution": + x.Constitution = value.Interface().(string) case "cosmos.gov.v1.GenesisState.starting_proposal_id": x.StartingProposalId = value.Uint() case "cosmos.gov.v1.GenesisState.deposits": lv := value.List() - clv := lv.(*_GenesisState_2_list) + clv := lv.(*_GenesisState_3_list) x.Deposits = *clv.list case "cosmos.gov.v1.GenesisState.votes": lv := value.List() - clv := lv.(*_GenesisState_3_list) + clv := lv.(*_GenesisState_4_list) x.Votes = *clv.list case "cosmos.gov.v1.GenesisState.proposals": lv := value.List() - clv := lv.(*_GenesisState_4_list) + clv := lv.(*_GenesisState_5_list) x.Proposals = *clv.list case "cosmos.gov.v1.GenesisState.deposit_params": x.DepositParams = value.Message().Interface().(*DepositParams) @@ -481,19 +498,19 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p if x.Deposits == nil { x.Deposits = []*Deposit{} } - value := &_GenesisState_2_list{list: &x.Deposits} + value := &_GenesisState_3_list{list: &x.Deposits} return protoreflect.ValueOfList(value) case "cosmos.gov.v1.GenesisState.votes": if x.Votes == nil { x.Votes = []*Vote{} } - value := &_GenesisState_3_list{list: &x.Votes} + value := &_GenesisState_4_list{list: &x.Votes} return protoreflect.ValueOfList(value) case "cosmos.gov.v1.GenesisState.proposals": if x.Proposals == nil { x.Proposals = []*Proposal{} } - value := &_GenesisState_4_list{list: &x.Proposals} + value := &_GenesisState_5_list{list: &x.Proposals} return protoreflect.ValueOfList(value) case "cosmos.gov.v1.GenesisState.deposit_params": if x.DepositParams == nil { @@ -515,6 +532,8 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p x.Params = new(Params) } return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + case "cosmos.gov.v1.GenesisState.constitution": + panic(fmt.Errorf("field constitution of message cosmos.gov.v1.GenesisState is not mutable")) case "cosmos.gov.v1.GenesisState.starting_proposal_id": panic(fmt.Errorf("field starting_proposal_id of message cosmos.gov.v1.GenesisState is not mutable")) default: @@ -530,17 +549,19 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p // For lists, maps, and messages, this returns a new, empty, mutable value. func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { + case "cosmos.gov.v1.GenesisState.constitution": + return protoreflect.ValueOfString("") case "cosmos.gov.v1.GenesisState.starting_proposal_id": return protoreflect.ValueOfUint64(uint64(0)) case "cosmos.gov.v1.GenesisState.deposits": list := []*Deposit{} - return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_3_list{list: &list}) case "cosmos.gov.v1.GenesisState.votes": list := []*Vote{} - return protoreflect.ValueOfList(&_GenesisState_3_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) case "cosmos.gov.v1.GenesisState.proposals": list := []*Proposal{} - return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_5_list{list: &list}) case "cosmos.gov.v1.GenesisState.deposit_params": m := new(DepositParams) return protoreflect.ValueOfMessage(m.ProtoReflect()) @@ -622,6 +643,10 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { var n int var l int _ = l + l = len(x.Constitution) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.StartingProposalId != 0 { n += 1 + runtime.Sov(uint64(x.StartingProposalId)) } @@ -700,7 +725,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x4a } if x.TallyParams != nil { encoded, err := options.Marshal(x.TallyParams) @@ -714,7 +739,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 } if x.VotingParams != nil { encoded, err := options.Marshal(x.VotingParams) @@ -728,7 +753,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x32 + dAtA[i] = 0x3a } if x.DepositParams != nil { encoded, err := options.Marshal(x.DepositParams) @@ -742,7 +767,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x32 } if len(x.Proposals) > 0 { for iNdEx := len(x.Proposals) - 1; iNdEx >= 0; iNdEx-- { @@ -757,7 +782,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } } if len(x.Votes) > 0 { @@ -773,7 +798,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } } if len(x.Deposits) > 0 { @@ -789,13 +814,20 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } } if x.StartingProposalId != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.StartingProposalId)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0x10 + } + if len(x.Constitution) > 0 { + i -= len(x.Constitution) + copy(dAtA[i:], x.Constitution) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Constitution))) + i-- + dAtA[i] = 0xa } if input.Buf != nil { input.Buf = append(input.Buf, dAtA...) @@ -847,6 +879,38 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { } switch fieldNum { case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Constitution = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field StartingProposalId", wireType) } @@ -865,7 +929,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 2: + case 3: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Deposits", wireType) } @@ -899,7 +963,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 3: + case 4: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) } @@ -933,7 +997,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 4: + case 5: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Proposals", wireType) } @@ -967,7 +1031,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 5: + case 6: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DepositParams", wireType) } @@ -1003,7 +1067,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 6: + case 7: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VotingParams", wireType) } @@ -1039,7 +1103,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 7: + case 8: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TallyParams", wireType) } @@ -1075,7 +1139,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 8: + case 9: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } @@ -1167,33 +1231,35 @@ type GenesisState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be a statement of purpose and intent. + Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` // starting_proposal_id is the ID of the starting proposal. - StartingProposalId uint64 `protobuf:"varint,1,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` + StartingProposalId uint64 `protobuf:"varint,2,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` // deposits defines all the deposits present at genesis. - Deposits []*Deposit `protobuf:"bytes,2,rep,name=deposits,proto3" json:"deposits,omitempty"` + Deposits []*Deposit `protobuf:"bytes,3,rep,name=deposits,proto3" json:"deposits,omitempty"` // votes defines all the votes present at genesis. - Votes []*Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"` + Votes []*Vote `protobuf:"bytes,4,rep,name=votes,proto3" json:"votes,omitempty"` // proposals defines all the proposals present at genesis. - Proposals []*Proposal `protobuf:"bytes,4,rep,name=proposals,proto3" json:"proposals,omitempty"` + Proposals []*Proposal `protobuf:"bytes,5,rep,name=proposals,proto3" json:"proposals,omitempty"` // Deprecated: Prefer to use `params` instead. // deposit_params defines all the paramaters of related to deposit. // // Deprecated: Do not use. - DepositParams *DepositParams `protobuf:"bytes,5,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` + DepositParams *DepositParams `protobuf:"bytes,6,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` // Deprecated: Prefer to use `params` instead. // voting_params defines all the paramaters of related to voting. // // Deprecated: Do not use. - VotingParams *VotingParams `protobuf:"bytes,6,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` + VotingParams *VotingParams `protobuf:"bytes,7,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` // Deprecated: Prefer to use `params` instead. // tally_params defines all the paramaters of related to tally. // // Deprecated: Do not use. - TallyParams *TallyParams `protobuf:"bytes,7,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` + TallyParams *TallyParams `protobuf:"bytes,8,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` // params defines all the paramaters of x/gov module. // // Since: cosmos-sdk 0.47 - Params *Params `protobuf:"bytes,8,opt,name=params,proto3" json:"params,omitempty"` + Params *Params `protobuf:"bytes,9,opt,name=params,proto3" json:"params,omitempty"` } func (x *GenesisState) Reset() { @@ -1216,6 +1282,13 @@ func (*GenesisState) Descriptor() ([]byte, []int) { return file_cosmos_gov_v1_genesis_proto_rawDescGZIP(), []int{0} } +func (x *GenesisState) GetConstitution() string { + if x != nil { + return x.Constitution + } + return "" +} + func (x *GenesisState) GetStartingProposalId() uint64 { if x != nil { return x.StartingProposalId @@ -1282,47 +1355,49 @@ var file_cosmos_gov_v1_genesis_proto_rawDesc = []byte{ 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd7, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x73, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfb, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, + 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, + 0x12, 0x29, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, + 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x05, - 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, - 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x47, - 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, - 0x0c, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, - 0x9d, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, - 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x24, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, - 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, - 0x58, 0xaa, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x76, + 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, + 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x42, 0x9d, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x24, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, + 0x6f, 0x76, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, + 0x6f, 0x76, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, + 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x6f, 0x76, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/gov/v1/genesis.proto b/proto/cosmos/gov/v1/genesis.proto index b9cf573f7430..8b34a215713b 100644 --- a/proto/cosmos/gov/v1/genesis.proto +++ b/proto/cosmos/gov/v1/genesis.proto @@ -9,25 +9,27 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; // GenesisState defines the gov module's genesis state. message GenesisState { + // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be a statement of purpose and intent. + string constitution = 1; // starting_proposal_id is the ID of the starting proposal. - uint64 starting_proposal_id = 1; + uint64 starting_proposal_id = 2; // deposits defines all the deposits present at genesis. - repeated Deposit deposits = 2; + repeated Deposit deposits = 3; // votes defines all the votes present at genesis. - repeated Vote votes = 3; + repeated Vote votes = 4; // proposals defines all the proposals present at genesis. - repeated Proposal proposals = 4; + repeated Proposal proposals = 5; // Deprecated: Prefer to use `params` instead. // deposit_params defines all the paramaters of related to deposit. - DepositParams deposit_params = 5 [deprecated = true]; + DepositParams deposit_params = 6 [deprecated = true]; // Deprecated: Prefer to use `params` instead. // voting_params defines all the paramaters of related to voting. - VotingParams voting_params = 6 [deprecated = true]; + VotingParams voting_params = 7 [deprecated = true]; // Deprecated: Prefer to use `params` instead. // tally_params defines all the paramaters of related to tally. - TallyParams tally_params = 7 [deprecated = true]; + TallyParams tally_params = 8 [deprecated = true]; // params defines all the paramaters of x/gov module. // // Since: cosmos-sdk 0.47 - Params params = 8; + Params params = 9; } diff --git a/x/gov/types/v1/genesis.pb.go b/x/gov/types/v1/genesis.pb.go index dac10386d51d..8b48fa1b754d 100644 --- a/x/gov/types/v1/genesis.pb.go +++ b/x/gov/types/v1/genesis.pb.go @@ -24,27 +24,29 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the gov module's genesis state. type GenesisState struct { + // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be a statement of purpose and intent. + Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` // starting_proposal_id is the ID of the starting proposal. - StartingProposalId uint64 `protobuf:"varint,1,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` + StartingProposalId uint64 `protobuf:"varint,2,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` // deposits defines all the deposits present at genesis. - Deposits []*Deposit `protobuf:"bytes,2,rep,name=deposits,proto3" json:"deposits,omitempty"` + Deposits []*Deposit `protobuf:"bytes,3,rep,name=deposits,proto3" json:"deposits,omitempty"` // votes defines all the votes present at genesis. - Votes []*Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"` + Votes []*Vote `protobuf:"bytes,4,rep,name=votes,proto3" json:"votes,omitempty"` // proposals defines all the proposals present at genesis. - Proposals []*Proposal `protobuf:"bytes,4,rep,name=proposals,proto3" json:"proposals,omitempty"` + Proposals []*Proposal `protobuf:"bytes,5,rep,name=proposals,proto3" json:"proposals,omitempty"` // Deprecated: Prefer to use `params` instead. // deposit_params defines all the paramaters of related to deposit. - DepositParams *DepositParams `protobuf:"bytes,5,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` // Deprecated: Do not use. + DepositParams *DepositParams `protobuf:"bytes,6,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` // Deprecated: Do not use. // Deprecated: Prefer to use `params` instead. // voting_params defines all the paramaters of related to voting. - VotingParams *VotingParams `protobuf:"bytes,6,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` // Deprecated: Do not use. + VotingParams *VotingParams `protobuf:"bytes,7,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` // Deprecated: Do not use. // Deprecated: Prefer to use `params` instead. // tally_params defines all the paramaters of related to tally. - TallyParams *TallyParams `protobuf:"bytes,7,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` // Deprecated: Do not use. + TallyParams *TallyParams `protobuf:"bytes,8,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` // Deprecated: Do not use. // params defines all the paramaters of x/gov module. // // Since: cosmos-sdk 0.47 - Params *Params `protobuf:"bytes,8,opt,name=params,proto3" json:"params,omitempty"` + Params *Params `protobuf:"bytes,9,opt,name=params,proto3" json:"params,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -80,6 +82,13 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo +func (m *GenesisState) GetConstitution() string { + if m != nil { + return m.Constitution + } + return "" +} + func (m *GenesisState) GetStartingProposalId() uint64 { if m != nil { return m.StartingProposalId @@ -146,30 +155,31 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1/genesis.proto", fileDescriptor_ef7cfd15e3ded621) } var fileDescriptor_ef7cfd15e3ded621 = []byte{ - // 358 bytes of a gzipped FileDescriptorProto + // 378 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xcd, 0x4e, 0xfa, 0x40, - 0x14, 0xc5, 0x19, 0xbe, 0xfe, 0xfc, 0x07, 0x70, 0x31, 0x7e, 0xd0, 0x80, 0x69, 0x88, 0x2b, 0x8c, - 0xa1, 0x15, 0x8c, 0x0f, 0x20, 0xc1, 0x10, 0x77, 0xa4, 0x1a, 0x17, 0x6e, 0x48, 0xa1, 0x93, 0xda, - 0x08, 0xdc, 0xa6, 0x77, 0x9c, 0xc8, 0x5b, 0xf8, 0x58, 0x2e, 0xd9, 0xe9, 0xd2, 0xc0, 0x8b, 0x18, - 0x66, 0x5a, 0xc1, 0xea, 0x6a, 0x92, 0x7b, 0x7e, 0xe7, 0xcc, 0xc9, 0xcd, 0xa5, 0x8d, 0x09, 0xe0, - 0x0c, 0xd0, 0xf6, 0x41, 0xda, 0xb2, 0x63, 0xfb, 0x7c, 0xce, 0x31, 0x40, 0x2b, 0x8c, 0x40, 0x00, - 0xab, 0x6a, 0xd1, 0xf2, 0x41, 0x5a, 0xb2, 0x53, 0xaf, 0xa5, 0x58, 0x90, 0x9a, 0x3b, 0x79, 0xcf, - 0xd1, 0xca, 0x40, 0x3b, 0x6f, 0x85, 0x2b, 0x38, 0x3b, 0xa7, 0x07, 0x28, 0xdc, 0x48, 0x04, 0x73, - 0x7f, 0x14, 0x46, 0x10, 0x02, 0xba, 0xd3, 0x51, 0xe0, 0x19, 0xa4, 0x49, 0x5a, 0x79, 0x87, 0x25, - 0xda, 0x30, 0x96, 0x6e, 0x3c, 0xd6, 0xa5, 0x25, 0x8f, 0x87, 0x80, 0x81, 0x40, 0x23, 0xdb, 0xcc, - 0xb5, 0xca, 0xdd, 0x23, 0xeb, 0xc7, 0xef, 0x56, 0x5f, 0xcb, 0xce, 0x37, 0xc7, 0x4e, 0x69, 0x41, - 0x82, 0xe0, 0x68, 0xe4, 0x94, 0x61, 0x3f, 0x65, 0xb8, 0x07, 0xc1, 0x1d, 0x4d, 0xb0, 0x4b, 0xfa, - 0x3f, 0xe9, 0x81, 0x46, 0x5e, 0xe1, 0xb5, 0x14, 0x9e, 0x94, 0x71, 0xb6, 0x24, 0x1b, 0xd0, 0xbd, - 0xf8, 0xb7, 0x51, 0xe8, 0x46, 0xee, 0x0c, 0x8d, 0x42, 0x93, 0xb4, 0xca, 0xdd, 0xe3, 0xbf, 0xbb, - 0x0d, 0x15, 0xd3, 0xcb, 0x1a, 0xc4, 0xa9, 0x7a, 0xbb, 0x23, 0xd6, 0xa7, 0x55, 0x09, 0x7a, 0x1d, - 0x3a, 0xa7, 0xa8, 0x72, 0x1a, 0xbf, 0x2b, 0x6f, 0xd6, 0xb2, 0x8d, 0xa9, 0xc8, 0x9d, 0x09, 0xbb, - 0xa2, 0x15, 0xe1, 0x4e, 0xa7, 0x8b, 0x24, 0xe4, 0x9f, 0x0a, 0xa9, 0xa7, 0x42, 0xee, 0x36, 0xc8, - 0x4e, 0x46, 0x59, 0x6c, 0x07, 0xac, 0x4d, 0x8b, 0xb1, 0xb9, 0xa4, 0xcc, 0x87, 0xe9, 0x2d, 0x28, - 0xd1, 0x89, 0xa1, 0xde, 0xf5, 0xdb, 0xca, 0x24, 0xcb, 0x95, 0x49, 0x3e, 0x57, 0x26, 0x79, 0x5d, - 0x9b, 0x99, 0xe5, 0xda, 0xcc, 0x7c, 0xac, 0xcd, 0xcc, 0xc3, 0x99, 0x1f, 0x88, 0xc7, 0xe7, 0xb1, - 0x35, 0x81, 0x99, 0x1d, 0xdf, 0x85, 0x7e, 0xda, 0xe8, 0x3d, 0xd9, 0x2f, 0xea, 0x48, 0xc4, 0x22, - 0xe4, 0x68, 0xcb, 0xce, 0xb8, 0xa8, 0xee, 0xe4, 0xe2, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xb2, - 0x17, 0xb2, 0x6e, 0x02, 0x00, 0x00, + 0x14, 0xc5, 0x19, 0xbe, 0xfe, 0x30, 0x94, 0xff, 0x62, 0xfc, 0xa0, 0x01, 0xd3, 0x34, 0xac, 0x6a, + 0x0c, 0xad, 0x60, 0x7c, 0x00, 0x09, 0x86, 0xb8, 0x23, 0xd5, 0xb8, 0x70, 0x43, 0x0a, 0x6d, 0x6a, + 0x23, 0xf4, 0x36, 0x9d, 0x61, 0x22, 0x6f, 0xe1, 0x63, 0xb9, 0x64, 0xe9, 0xd2, 0xc0, 0x63, 0xb8, + 0x31, 0xcc, 0xb4, 0x02, 0xd5, 0xd5, 0x24, 0xf7, 0xfc, 0xce, 0x99, 0x93, 0x9b, 0x8b, 0x5b, 0x53, + 0xa0, 0x73, 0xa0, 0x96, 0x0f, 0xdc, 0xe2, 0x5d, 0xcb, 0xf7, 0x42, 0x8f, 0x06, 0xd4, 0x8c, 0x62, + 0x60, 0x40, 0xea, 0x52, 0x34, 0x7d, 0xe0, 0x26, 0xef, 0x36, 0x1b, 0x19, 0x16, 0xb8, 0xe4, 0xda, + 0x5f, 0x05, 0xac, 0x0c, 0xa5, 0xf3, 0x9e, 0x39, 0xcc, 0x23, 0x6d, 0xac, 0x4c, 0x21, 0xa4, 0x2c, + 0x60, 0x0b, 0x16, 0x40, 0xa8, 0x22, 0x1d, 0x19, 0x55, 0xfb, 0x60, 0x46, 0x2e, 0xf1, 0x31, 0x65, + 0x4e, 0xcc, 0x82, 0xd0, 0x1f, 0x47, 0x31, 0x44, 0x40, 0x9d, 0xd9, 0x38, 0x70, 0xd5, 0xbc, 0x8e, + 0x8c, 0xa2, 0x4d, 0x52, 0x6d, 0x94, 0x48, 0x77, 0x2e, 0xe9, 0xe1, 0x8a, 0xeb, 0x45, 0x40, 0x03, + 0x46, 0xd5, 0x82, 0x5e, 0x30, 0x6a, 0xbd, 0x53, 0xf3, 0xa0, 0xa1, 0x39, 0x90, 0xb2, 0xfd, 0xc3, + 0x91, 0x73, 0x5c, 0xe2, 0xc0, 0x3c, 0xaa, 0x16, 0x85, 0xe1, 0x28, 0x63, 0x78, 0x04, 0xe6, 0xd9, + 0x92, 0x20, 0xd7, 0xb8, 0x9a, 0xf6, 0xa0, 0x6a, 0x49, 0xe0, 0x8d, 0x0c, 0x9e, 0x96, 0xb1, 0x77, + 0x24, 0x19, 0xe2, 0xff, 0xc9, 0x6f, 0xe3, 0xc8, 0x89, 0x9d, 0x39, 0x55, 0xcb, 0x3a, 0x32, 0x6a, + 0xbd, 0xb3, 0xbf, 0xbb, 0x8d, 0x04, 0xd3, 0xcf, 0xab, 0xc8, 0xae, 0xbb, 0xfb, 0x23, 0x32, 0xc0, + 0x75, 0x0e, 0x72, 0x1d, 0x32, 0xe7, 0x9f, 0xc8, 0x69, 0xfd, 0xae, 0xbc, 0x5d, 0xcb, 0x2e, 0x46, + 0xe1, 0x7b, 0x13, 0x72, 0x83, 0x15, 0xe6, 0xcc, 0x66, 0xcb, 0x34, 0xa4, 0x22, 0x42, 0x9a, 0x99, + 0x90, 0x87, 0x2d, 0xb2, 0x97, 0x51, 0x63, 0xbb, 0x01, 0xe9, 0xe0, 0x72, 0x62, 0xae, 0x0a, 0xf3, + 0x49, 0x76, 0x0b, 0x42, 0xb4, 0x13, 0xa8, 0x7f, 0xfb, 0xbe, 0xd6, 0xd0, 0x6a, 0xad, 0xa1, 0xcf, + 0xb5, 0x86, 0xde, 0x36, 0x5a, 0x6e, 0xb5, 0xd1, 0x72, 0x1f, 0x1b, 0x2d, 0xf7, 0x74, 0xe1, 0x07, + 0xec, 0x79, 0x31, 0x31, 0xa7, 0x30, 0xb7, 0x92, 0xdb, 0x91, 0x4f, 0x87, 0xba, 0x2f, 0xd6, 0xab, + 0x38, 0x24, 0xb6, 0x8c, 0x3c, 0x6a, 0xf1, 0xee, 0xa4, 0x2c, 0x6e, 0xe9, 0xea, 0x3b, 0x00, 0x00, + 0xff, 0xff, 0x65, 0x28, 0x36, 0xbe, 0x92, 0x02, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -202,7 +212,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x42 + dAtA[i] = 0x4a } if m.TallyParams != nil { { @@ -214,7 +224,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 } if m.VotingParams != nil { { @@ -226,7 +236,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x32 + dAtA[i] = 0x3a } if m.DepositParams != nil { { @@ -238,7 +248,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x32 } if len(m.Proposals) > 0 { for iNdEx := len(m.Proposals) - 1; iNdEx >= 0; iNdEx-- { @@ -251,7 +261,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 + dAtA[i] = 0x2a } } if len(m.Votes) > 0 { @@ -265,7 +275,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } } if len(m.Deposits) > 0 { @@ -279,13 +289,20 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } } if m.StartingProposalId != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.StartingProposalId)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0x10 + } + if len(m.Constitution) > 0 { + i -= len(m.Constitution) + copy(dAtA[i:], m.Constitution) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Constitution))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -307,6 +324,10 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l + l = len(m.Constitution) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } if m.StartingProposalId != 0 { n += 1 + sovGenesis(uint64(m.StartingProposalId)) } @@ -383,6 +404,38 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Constitution = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StartingProposalId", wireType) } @@ -401,7 +454,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Deposits", wireType) } @@ -435,7 +488,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 3: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) } @@ -469,7 +522,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Proposals", wireType) } @@ -503,7 +556,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: + case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DepositParams", wireType) } @@ -539,7 +592,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: + case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field VotingParams", wireType) } @@ -575,7 +628,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 7: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field TallyParams", wireType) } @@ -611,7 +664,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } From 35e4b41c433c3fd2c68c7a1ea6e4f2c5afe765d2 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 14:50:36 +0700 Subject: [PATCH 02/14] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d47390899d5..1675b1ef571c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features +* (x/gov) [#14057](https://github.com/cosmos/cosmos-sdk/pull/14057) Add new proto field `constitution` of type `string` to gov module genesis state, which allows chain builders to lay a strong foundation by specifying purpose. * (x/evidence) [#13740](https://github.com/cosmos/cosmos-sdk/pull/13740) Add new proto field `hash` of type `string` to `QueryEvidenceRequest` which helps to decode the hash properly while using query API. * (core) [#13306](https://github.com/cosmos/cosmos-sdk/pull/13306) Add a `FormatCoins` function to in `core/coins` to format sdk Coins following the Value Renderers spec. * (math) [#13306](https://github.com/cosmos/cosmos-sdk/pull/13306) Add `FormatInt` and `FormatDec` functiosn in `math` to format integers and decimals following the Value Renderers spec. From 0f56dc8d6bd30e58593c621a5b43e059eb3e8fe5 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 14:59:02 +0700 Subject: [PATCH 03/14] Update genesis.go --- x/gov/genesis.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/gov/genesis.go b/x/gov/genesis.go index 89c8d683c281..f7dd61746a7c 100644 --- a/x/gov/genesis.go +++ b/x/gov/genesis.go @@ -73,6 +73,7 @@ func ExportGenesis(ctx sdk.Context, k *keeper.Keeper) *v1.GenesisState { } return &v1.GenesisState{ + Constitution: constitution, StartingProposalId: startingProposalID, Deposits: proposalsDeposits, Votes: proposalsVotes, From c9251f8752193f95311f48d4746b742398b81735 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 15:02:30 +0700 Subject: [PATCH 04/14] Update json_test.go --- x/gov/migrations/v2/json_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/gov/migrations/v2/json_test.go b/x/gov/migrations/v2/json_test.go index 9203bf014943..65ce3ce827e5 100644 --- a/x/gov/migrations/v2/json_test.go +++ b/x/gov/migrations/v2/json_test.go @@ -47,6 +47,7 @@ func TestMigrateJSON(t *testing.T) { // Make sure about: // - Votes are all ADR-037 weighted votes with weight 1. expected := `{ + "constitution": "", "deposit_params": { "max_deposit_period": "0s", "min_deposit": [] From c7e6221af522b4e8608ac7fd44bdfbcc06e88a0e Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 15:03:51 +0700 Subject: [PATCH 05/14] Update json_test.go --- x/gov/migrations/v3/json_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/gov/migrations/v3/json_test.go b/x/gov/migrations/v3/json_test.go index 7adf946227c1..41af52688cd0 100644 --- a/x/gov/migrations/v3/json_test.go +++ b/x/gov/migrations/v3/json_test.go @@ -74,6 +74,7 @@ func TestMigrateJSON(t *testing.T) { // Make sure about: // - Proposals use MsgExecLegacyContent expected := `{ + "constitution": "", "deposit_params": { "max_deposit_period": "172800s", "min_deposit": [ From 3865ebba497c71a2cef76fa2d86aabe475f9b43b Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 15:04:34 +0700 Subject: [PATCH 06/14] Update json_test.go --- x/gov/migrations/v4/json_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/gov/migrations/v4/json_test.go b/x/gov/migrations/v4/json_test.go index 0b58e63d7607..0268a56f635c 100644 --- a/x/gov/migrations/v4/json_test.go +++ b/x/gov/migrations/v4/json_test.go @@ -37,6 +37,7 @@ func TestMigrateJSON(t *testing.T) { // Make sure about: // - Proposals use MsgExecLegacyContent expected := `{ + "constitution": "", "deposit_params": null, "deposits": [], "params": { From 85f2f107d098a99ed4a85a3b8b64d252d5f4cd3f Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 15:34:26 +0700 Subject: [PATCH 07/14] gov changes only --- api/cosmos/gov/v1/genesis.pulsar.go | 4 +++- proto/cosmos/gov/v1/genesis.proto | 4 +++- proto/cosmos/gov/v1beta1/gov.proto | 2 +- x/gov/README.md | 10 ++++++++++ x/gov/genesis.go | 1 - x/gov/migrations/v2/json_test.go | 1 - x/gov/types/v1/genesis.pb.go | 4 +++- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/api/cosmos/gov/v1/genesis.pulsar.go b/api/cosmos/gov/v1/genesis.pulsar.go index 7c6769ef9c74..6d6dd4f7824b 100644 --- a/api/cosmos/gov/v1/genesis.pulsar.go +++ b/api/cosmos/gov/v1/genesis.pulsar.go @@ -1231,7 +1231,9 @@ type GenesisState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be a statement of purpose and intent. + // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: + // delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be + // a statement of purpose and intent. Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` // starting_proposal_id is the ID of the starting proposal. StartingProposalId uint64 `protobuf:"varint,2,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` diff --git a/proto/cosmos/gov/v1/genesis.proto b/proto/cosmos/gov/v1/genesis.proto index 8b34a215713b..fbf3a961b618 100644 --- a/proto/cosmos/gov/v1/genesis.proto +++ b/proto/cosmos/gov/v1/genesis.proto @@ -9,7 +9,9 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; // GenesisState defines the gov module's genesis state. message GenesisState { - // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be a statement of purpose and intent. + // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: + // delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be + // a statement of purpose and intent. string constitution = 1; // starting_proposal_id is the ID of the starting proposal. uint64 starting_proposal_id = 2; diff --git a/proto/cosmos/gov/v1beta1/gov.proto b/proto/cosmos/gov/v1beta1/gov.proto index d10153faf0c4..292d04598297 100644 --- a/proto/cosmos/gov/v1beta1/gov.proto +++ b/proto/cosmos/gov/v1beta1/gov.proto @@ -146,7 +146,7 @@ message TallyResult { // Vote defines a vote on a governance proposal. // A Vote consists of a proposal ID, the voter, and the vote option. message Vote { - option (gogoproto.equal) = false; + option (gogoproto.equal) = false; uint64 proposal_id = 1 [(gogoproto.jsontag) = "id", (amino.field_name) = "id", (amino.dont_omitempty) = true]; string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; diff --git a/x/gov/README.md b/x/gov/README.md index 15ea845bcc06..a21746d22427 100644 --- a/x/gov/README.md +++ b/x/gov/README.md @@ -268,6 +268,16 @@ Validators and full nodes can use an automation tool, such as [Cosmovisor](https ## State +### Constitution + +`Constitution` is found in the genesis state. It is a string field intended to be used to descibe the purpose of a particular blockchain, and its expected norms. A few examples of how the constitution field can be used: + +* define the purpose of the chain, laying a foundation for its future development +* set expectations for delegators +* set expectations for validators +* define the chain's relationship to "meatspace" entities, like a foundation or corporation + + ### Proposals `Proposal` objects are used to tally votes and generally track the proposal's state. diff --git a/x/gov/genesis.go b/x/gov/genesis.go index f7dd61746a7c..89c8d683c281 100644 --- a/x/gov/genesis.go +++ b/x/gov/genesis.go @@ -73,7 +73,6 @@ func ExportGenesis(ctx sdk.Context, k *keeper.Keeper) *v1.GenesisState { } return &v1.GenesisState{ - Constitution: constitution, StartingProposalId: startingProposalID, Deposits: proposalsDeposits, Votes: proposalsVotes, diff --git a/x/gov/migrations/v2/json_test.go b/x/gov/migrations/v2/json_test.go index 65ce3ce827e5..9203bf014943 100644 --- a/x/gov/migrations/v2/json_test.go +++ b/x/gov/migrations/v2/json_test.go @@ -47,7 +47,6 @@ func TestMigrateJSON(t *testing.T) { // Make sure about: // - Votes are all ADR-037 weighted votes with weight 1. expected := `{ - "constitution": "", "deposit_params": { "max_deposit_period": "0s", "min_deposit": [] diff --git a/x/gov/types/v1/genesis.pb.go b/x/gov/types/v1/genesis.pb.go index 8b48fa1b754d..1de1b0cd6e41 100644 --- a/x/gov/types/v1/genesis.pb.go +++ b/x/gov/types/v1/genesis.pb.go @@ -24,7 +24,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the gov module's genesis state. type GenesisState struct { - // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be a statement of purpose and intent. + // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: + // delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be + // a statement of purpose and intent. Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` // starting_proposal_id is the ID of the starting proposal. StartingProposalId uint64 `protobuf:"varint,2,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` From fef31aff021936431598743a6662ce1589de5d6e Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 17:23:52 +0700 Subject: [PATCH 08/14] constitution --- api/cosmos/gov/v1/genesis.pulsar.go | 354 ++++++++++++++-------------- proto/cosmos/gov/v1/genesis.proto | 25 +- x/gov/types/v1/genesis.pb.go | 190 +++++++-------- 3 files changed, 285 insertions(+), 284 deletions(-) diff --git a/api/cosmos/gov/v1/genesis.pulsar.go b/api/cosmos/gov/v1/genesis.pulsar.go index 6d6dd4f7824b..635a061d23ac 100644 --- a/api/cosmos/gov/v1/genesis.pulsar.go +++ b/api/cosmos/gov/v1/genesis.pulsar.go @@ -12,162 +12,161 @@ import ( sync "sync" ) -var _ protoreflect.List = (*_GenesisState_3_list)(nil) +var _ protoreflect.List = (*_GenesisState_2_list)(nil) -type _GenesisState_3_list struct { +type _GenesisState_2_list struct { list *[]*Deposit } -func (x *_GenesisState_3_list) Len() int { +func (x *_GenesisState_2_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_3_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_2_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_3_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Deposit) (*x.list)[i] = concreteValue } -func (x *_GenesisState_3_list) Append(value protoreflect.Value) { +func (x *_GenesisState_2_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Deposit) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_3_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value { v := new(Deposit) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_3_list) Truncate(n int) { +func (x *_GenesisState_2_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_3_list) NewElement() protoreflect.Value { +func (x *_GenesisState_2_list) NewElement() protoreflect.Value { v := new(Deposit) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_3_list) IsValid() bool { +func (x *_GenesisState_2_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_4_list)(nil) +var _ protoreflect.List = (*_GenesisState_3_list)(nil) -type _GenesisState_4_list struct { +type _GenesisState_3_list struct { list *[]*Vote } -func (x *_GenesisState_4_list) Len() int { +func (x *_GenesisState_3_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_4_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_3_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_4_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_3_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Vote) (*x.list)[i] = concreteValue } -func (x *_GenesisState_4_list) Append(value protoreflect.Value) { +func (x *_GenesisState_3_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Vote) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_4_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_3_list) AppendMutable() protoreflect.Value { v := new(Vote) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_4_list) Truncate(n int) { +func (x *_GenesisState_3_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_4_list) NewElement() protoreflect.Value { +func (x *_GenesisState_3_list) NewElement() protoreflect.Value { v := new(Vote) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_4_list) IsValid() bool { +func (x *_GenesisState_3_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_5_list)(nil) +var _ protoreflect.List = (*_GenesisState_4_list)(nil) -type _GenesisState_5_list struct { +type _GenesisState_4_list struct { list *[]*Proposal } -func (x *_GenesisState_5_list) Len() int { +func (x *_GenesisState_4_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_5_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_4_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_5_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_4_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Proposal) (*x.list)[i] = concreteValue } -func (x *_GenesisState_5_list) Append(value protoreflect.Value) { +func (x *_GenesisState_4_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*Proposal) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_5_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_4_list) AppendMutable() protoreflect.Value { v := new(Proposal) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_5_list) Truncate(n int) { +func (x *_GenesisState_4_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_5_list) NewElement() protoreflect.Value { +func (x *_GenesisState_4_list) NewElement() protoreflect.Value { v := new(Proposal) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_5_list) IsValid() bool { +func (x *_GenesisState_4_list) IsValid() bool { return x.list != nil } var ( md_GenesisState protoreflect.MessageDescriptor - fd_GenesisState_constitution protoreflect.FieldDescriptor fd_GenesisState_starting_proposal_id protoreflect.FieldDescriptor fd_GenesisState_deposits protoreflect.FieldDescriptor fd_GenesisState_votes protoreflect.FieldDescriptor @@ -176,12 +175,12 @@ var ( fd_GenesisState_voting_params protoreflect.FieldDescriptor fd_GenesisState_tally_params protoreflect.FieldDescriptor fd_GenesisState_params protoreflect.FieldDescriptor + fd_GenesisState_constitution protoreflect.FieldDescriptor ) func init() { file_cosmos_gov_v1_genesis_proto_init() md_GenesisState = File_cosmos_gov_v1_genesis_proto.Messages().ByName("GenesisState") - fd_GenesisState_constitution = md_GenesisState.Fields().ByName("constitution") fd_GenesisState_starting_proposal_id = md_GenesisState.Fields().ByName("starting_proposal_id") fd_GenesisState_deposits = md_GenesisState.Fields().ByName("deposits") fd_GenesisState_votes = md_GenesisState.Fields().ByName("votes") @@ -190,6 +189,7 @@ func init() { fd_GenesisState_voting_params = md_GenesisState.Fields().ByName("voting_params") fd_GenesisState_tally_params = md_GenesisState.Fields().ByName("tally_params") fd_GenesisState_params = md_GenesisState.Fields().ByName("params") + fd_GenesisState_constitution = md_GenesisState.Fields().ByName("constitution") } var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) @@ -257,12 +257,6 @@ func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage { // While iterating, mutating operations may only be performed // on the current field descriptor. func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if x.Constitution != "" { - value := protoreflect.ValueOfString(x.Constitution) - if !f(fd_GenesisState_constitution, value) { - return - } - } if x.StartingProposalId != uint64(0) { value := protoreflect.ValueOfUint64(x.StartingProposalId) if !f(fd_GenesisState_starting_proposal_id, value) { @@ -270,19 +264,19 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, } } if len(x.Deposits) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_3_list{list: &x.Deposits}) + value := protoreflect.ValueOfList(&_GenesisState_2_list{list: &x.Deposits}) if !f(fd_GenesisState_deposits, value) { return } } if len(x.Votes) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.Votes}) + value := protoreflect.ValueOfList(&_GenesisState_3_list{list: &x.Votes}) if !f(fd_GenesisState_votes, value) { return } } if len(x.Proposals) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_5_list{list: &x.Proposals}) + value := protoreflect.ValueOfList(&_GenesisState_4_list{list: &x.Proposals}) if !f(fd_GenesisState_proposals, value) { return } @@ -311,6 +305,12 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if x.Constitution != "" { + value := protoreflect.ValueOfString(x.Constitution) + if !f(fd_GenesisState_constitution, value) { + return + } + } } // Has reports whether a field is populated. @@ -326,8 +326,6 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, // a repeated field is populated if it is non-empty. func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.gov.v1.GenesisState.constitution": - return x.Constitution != "" case "cosmos.gov.v1.GenesisState.starting_proposal_id": return x.StartingProposalId != uint64(0) case "cosmos.gov.v1.GenesisState.deposits": @@ -344,6 +342,8 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool return x.TallyParams != nil case "cosmos.gov.v1.GenesisState.params": return x.Params != nil + case "cosmos.gov.v1.GenesisState.constitution": + return x.Constitution != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.GenesisState")) @@ -360,8 +360,6 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool // Clear is a mutating operation and unsafe for concurrent use. func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.gov.v1.GenesisState.constitution": - x.Constitution = "" case "cosmos.gov.v1.GenesisState.starting_proposal_id": x.StartingProposalId = uint64(0) case "cosmos.gov.v1.GenesisState.deposits": @@ -378,6 +376,8 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { x.TallyParams = nil case "cosmos.gov.v1.GenesisState.params": x.Params = nil + case "cosmos.gov.v1.GenesisState.constitution": + x.Constitution = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.GenesisState")) @@ -394,29 +394,26 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { // of the value; to obtain a mutable reference, use Mutable. func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.gov.v1.GenesisState.constitution": - value := x.Constitution - return protoreflect.ValueOfString(value) case "cosmos.gov.v1.GenesisState.starting_proposal_id": value := x.StartingProposalId return protoreflect.ValueOfUint64(value) case "cosmos.gov.v1.GenesisState.deposits": if len(x.Deposits) == 0 { - return protoreflect.ValueOfList(&_GenesisState_3_list{}) + return protoreflect.ValueOfList(&_GenesisState_2_list{}) } - listValue := &_GenesisState_3_list{list: &x.Deposits} + listValue := &_GenesisState_2_list{list: &x.Deposits} return protoreflect.ValueOfList(listValue) case "cosmos.gov.v1.GenesisState.votes": if len(x.Votes) == 0 { - return protoreflect.ValueOfList(&_GenesisState_4_list{}) + return protoreflect.ValueOfList(&_GenesisState_3_list{}) } - listValue := &_GenesisState_4_list{list: &x.Votes} + listValue := &_GenesisState_3_list{list: &x.Votes} return protoreflect.ValueOfList(listValue) case "cosmos.gov.v1.GenesisState.proposals": if len(x.Proposals) == 0 { - return protoreflect.ValueOfList(&_GenesisState_5_list{}) + return protoreflect.ValueOfList(&_GenesisState_4_list{}) } - listValue := &_GenesisState_5_list{list: &x.Proposals} + listValue := &_GenesisState_4_list{list: &x.Proposals} return protoreflect.ValueOfList(listValue) case "cosmos.gov.v1.GenesisState.deposit_params": value := x.DepositParams @@ -430,6 +427,9 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto case "cosmos.gov.v1.GenesisState.params": value := x.Params return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.gov.v1.GenesisState.constitution": + value := x.Constitution + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.GenesisState")) @@ -450,21 +450,19 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto // Set is a mutating operation and unsafe for concurrent use. func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.gov.v1.GenesisState.constitution": - x.Constitution = value.Interface().(string) case "cosmos.gov.v1.GenesisState.starting_proposal_id": x.StartingProposalId = value.Uint() case "cosmos.gov.v1.GenesisState.deposits": lv := value.List() - clv := lv.(*_GenesisState_3_list) + clv := lv.(*_GenesisState_2_list) x.Deposits = *clv.list case "cosmos.gov.v1.GenesisState.votes": lv := value.List() - clv := lv.(*_GenesisState_4_list) + clv := lv.(*_GenesisState_3_list) x.Votes = *clv.list case "cosmos.gov.v1.GenesisState.proposals": lv := value.List() - clv := lv.(*_GenesisState_5_list) + clv := lv.(*_GenesisState_4_list) x.Proposals = *clv.list case "cosmos.gov.v1.GenesisState.deposit_params": x.DepositParams = value.Message().Interface().(*DepositParams) @@ -474,6 +472,8 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value x.TallyParams = value.Message().Interface().(*TallyParams) case "cosmos.gov.v1.GenesisState.params": x.Params = value.Message().Interface().(*Params) + case "cosmos.gov.v1.GenesisState.constitution": + x.Constitution = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.GenesisState")) @@ -498,19 +498,19 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p if x.Deposits == nil { x.Deposits = []*Deposit{} } - value := &_GenesisState_3_list{list: &x.Deposits} + value := &_GenesisState_2_list{list: &x.Deposits} return protoreflect.ValueOfList(value) case "cosmos.gov.v1.GenesisState.votes": if x.Votes == nil { x.Votes = []*Vote{} } - value := &_GenesisState_4_list{list: &x.Votes} + value := &_GenesisState_3_list{list: &x.Votes} return protoreflect.ValueOfList(value) case "cosmos.gov.v1.GenesisState.proposals": if x.Proposals == nil { x.Proposals = []*Proposal{} } - value := &_GenesisState_5_list{list: &x.Proposals} + value := &_GenesisState_4_list{list: &x.Proposals} return protoreflect.ValueOfList(value) case "cosmos.gov.v1.GenesisState.deposit_params": if x.DepositParams == nil { @@ -532,10 +532,10 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p x.Params = new(Params) } return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) - case "cosmos.gov.v1.GenesisState.constitution": - panic(fmt.Errorf("field constitution of message cosmos.gov.v1.GenesisState is not mutable")) case "cosmos.gov.v1.GenesisState.starting_proposal_id": panic(fmt.Errorf("field starting_proposal_id of message cosmos.gov.v1.GenesisState is not mutable")) + case "cosmos.gov.v1.GenesisState.constitution": + panic(fmt.Errorf("field constitution of message cosmos.gov.v1.GenesisState is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.GenesisState")) @@ -549,19 +549,17 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p // For lists, maps, and messages, this returns a new, empty, mutable value. func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.gov.v1.GenesisState.constitution": - return protoreflect.ValueOfString("") case "cosmos.gov.v1.GenesisState.starting_proposal_id": return protoreflect.ValueOfUint64(uint64(0)) case "cosmos.gov.v1.GenesisState.deposits": list := []*Deposit{} - return protoreflect.ValueOfList(&_GenesisState_3_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list}) case "cosmos.gov.v1.GenesisState.votes": list := []*Vote{} - return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_3_list{list: &list}) case "cosmos.gov.v1.GenesisState.proposals": list := []*Proposal{} - return protoreflect.ValueOfList(&_GenesisState_5_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_4_list{list: &list}) case "cosmos.gov.v1.GenesisState.deposit_params": m := new(DepositParams) return protoreflect.ValueOfMessage(m.ProtoReflect()) @@ -574,6 +572,8 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "cosmos.gov.v1.GenesisState.params": m := new(Params) return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.gov.v1.GenesisState.constitution": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.GenesisState")) @@ -643,10 +643,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { var n int var l int _ = l - l = len(x.Constitution) - if l > 0 { - n += 1 + l + runtime.Sov(uint64(l)) - } if x.StartingProposalId != 0 { n += 1 + runtime.Sov(uint64(x.StartingProposalId)) } @@ -684,6 +680,10 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { l = options.Size(x.Params) n += 1 + l + runtime.Sov(uint64(l)) } + l = len(x.Constitution) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -713,6 +713,13 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.Constitution) > 0 { + i -= len(x.Constitution) + copy(dAtA[i:], x.Constitution) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Constitution))) + i-- + dAtA[i] = 0x4a + } if x.Params != nil { encoded, err := options.Marshal(x.Params) if err != nil { @@ -725,7 +732,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x4a + dAtA[i] = 0x42 } if x.TallyParams != nil { encoded, err := options.Marshal(x.TallyParams) @@ -739,7 +746,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x3a } if x.VotingParams != nil { encoded, err := options.Marshal(x.VotingParams) @@ -753,7 +760,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x3a + dAtA[i] = 0x32 } if x.DepositParams != nil { encoded, err := options.Marshal(x.DepositParams) @@ -767,7 +774,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x32 + dAtA[i] = 0x2a } if len(x.Proposals) > 0 { for iNdEx := len(x.Proposals) - 1; iNdEx >= 0; iNdEx-- { @@ -782,7 +789,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } } if len(x.Votes) > 0 { @@ -798,7 +805,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x1a } } if len(x.Deposits) > 0 { @@ -814,20 +821,13 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { copy(dAtA[i:], encoded) i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } } if x.StartingProposalId != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.StartingProposalId)) i-- - dAtA[i] = 0x10 - } - if len(x.Constitution) > 0 { - i -= len(x.Constitution) - copy(dAtA[i:], x.Constitution) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Constitution))) - i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } if input.Buf != nil { input.Buf = append(input.Buf, dAtA...) @@ -879,38 +879,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { } switch fieldNum { case 1: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - x.Constitution = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: if wireType != 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field StartingProposalId", wireType) } @@ -929,7 +897,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { break } } - case 3: + case 2: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Deposits", wireType) } @@ -963,7 +931,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) } @@ -997,7 +965,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Proposals", wireType) } @@ -1031,7 +999,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 6: + case 5: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DepositParams", wireType) } @@ -1067,7 +1035,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 7: + case 6: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VotingParams", wireType) } @@ -1103,7 +1071,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 8: + case 7: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TallyParams", wireType) } @@ -1139,7 +1107,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 9: + case 8: if wireType != 2 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } @@ -1175,6 +1143,38 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 9: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Constitution = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -1231,37 +1231,37 @@ type GenesisState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: - // delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be - // a statement of purpose and intent. - Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` // starting_proposal_id is the ID of the starting proposal. - StartingProposalId uint64 `protobuf:"varint,2,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` + StartingProposalId uint64 `protobuf:"varint,1,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` // deposits defines all the deposits present at genesis. - Deposits []*Deposit `protobuf:"bytes,3,rep,name=deposits,proto3" json:"deposits,omitempty"` + Deposits []*Deposit `protobuf:"bytes,2,rep,name=deposits,proto3" json:"deposits,omitempty"` // votes defines all the votes present at genesis. - Votes []*Vote `protobuf:"bytes,4,rep,name=votes,proto3" json:"votes,omitempty"` + Votes []*Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"` // proposals defines all the proposals present at genesis. - Proposals []*Proposal `protobuf:"bytes,5,rep,name=proposals,proto3" json:"proposals,omitempty"` + Proposals []*Proposal `protobuf:"bytes,4,rep,name=proposals,proto3" json:"proposals,omitempty"` // Deprecated: Prefer to use `params` instead. // deposit_params defines all the paramaters of related to deposit. // // Deprecated: Do not use. - DepositParams *DepositParams `protobuf:"bytes,6,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` + DepositParams *DepositParams `protobuf:"bytes,5,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` // Deprecated: Prefer to use `params` instead. // voting_params defines all the paramaters of related to voting. // // Deprecated: Do not use. - VotingParams *VotingParams `protobuf:"bytes,7,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` + VotingParams *VotingParams `protobuf:"bytes,6,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` // Deprecated: Prefer to use `params` instead. // tally_params defines all the paramaters of related to tally. // // Deprecated: Do not use. - TallyParams *TallyParams `protobuf:"bytes,8,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` + TallyParams *TallyParams `protobuf:"bytes,7,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` // params defines all the paramaters of x/gov module. // // Since: cosmos-sdk 0.47 - Params *Params `protobuf:"bytes,9,opt,name=params,proto3" json:"params,omitempty"` + Params *Params `protobuf:"bytes,8,opt,name=params,proto3" json:"params,omitempty"` + // The constitution allows builders to lay a foundation and define purpose. + // This is an immutable string set in genesis. + // There are no amendments, to go outside of scope, just fork. + Constitution string `protobuf:"bytes,9,opt,name=constitution,proto3" json:"constitution,omitempty"` } func (x *GenesisState) Reset() { @@ -1284,13 +1284,6 @@ func (*GenesisState) Descriptor() ([]byte, []int) { return file_cosmos_gov_v1_genesis_proto_rawDescGZIP(), []int{0} } -func (x *GenesisState) GetConstitution() string { - if x != nil { - return x.Constitution - } - return "" -} - func (x *GenesisState) GetStartingProposalId() uint64 { if x != nil { return x.StartingProposalId @@ -1350,6 +1343,13 @@ func (x *GenesisState) GetParams() *Params { return nil } +func (x *GenesisState) GetConstitution() string { + if x != nil { + return x.Constitution + } + return "" +} + var File_cosmos_gov_v1_genesis_proto protoreflect.FileDescriptor var file_cosmos_gov_v1_genesis_proto_rawDesc = []byte{ @@ -1358,38 +1358,38 @@ var file_cosmos_gov_v1_genesis_proto_rawDesc = []byte{ 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfb, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, - 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, - 0x12, 0x29, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x76, - 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, - 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, - 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x42, 0x9d, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x05, + 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x47, + 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, + 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, + 0x0c, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x9d, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x24, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, diff --git a/proto/cosmos/gov/v1/genesis.proto b/proto/cosmos/gov/v1/genesis.proto index fbf3a961b618..f71d4a6615fe 100644 --- a/proto/cosmos/gov/v1/genesis.proto +++ b/proto/cosmos/gov/v1/genesis.proto @@ -9,29 +9,30 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; // GenesisState defines the gov module's genesis state. message GenesisState { - // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: - // delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be - // a statement of purpose and intent. - string constitution = 1; // starting_proposal_id is the ID of the starting proposal. - uint64 starting_proposal_id = 2; + uint64 starting_proposal_id = 1; // deposits defines all the deposits present at genesis. - repeated Deposit deposits = 3; + repeated Deposit deposits = 2; // votes defines all the votes present at genesis. - repeated Vote votes = 4; + repeated Vote votes = 3; // proposals defines all the proposals present at genesis. - repeated Proposal proposals = 5; + repeated Proposal proposals = 4; // Deprecated: Prefer to use `params` instead. // deposit_params defines all the paramaters of related to deposit. - DepositParams deposit_params = 6 [deprecated = true]; + DepositParams deposit_params = 5 [deprecated = true]; // Deprecated: Prefer to use `params` instead. // voting_params defines all the paramaters of related to voting. - VotingParams voting_params = 7 [deprecated = true]; + VotingParams voting_params = 6 [deprecated = true]; // Deprecated: Prefer to use `params` instead. // tally_params defines all the paramaters of related to tally. - TallyParams tally_params = 8 [deprecated = true]; + TallyParams tally_params = 7 [deprecated = true]; // params defines all the paramaters of x/gov module. // // Since: cosmos-sdk 0.47 - Params params = 9; + Params params = 8; + + // The constitution allows builders to lay a foundation and define purpose. + // This is an immutable string set in genesis. + // There are no amendments, to go outside of scope, just fork. + string constitution = 9; } diff --git a/x/gov/types/v1/genesis.pb.go b/x/gov/types/v1/genesis.pb.go index 1de1b0cd6e41..55ffe533e655 100644 --- a/x/gov/types/v1/genesis.pb.go +++ b/x/gov/types/v1/genesis.pb.go @@ -24,31 +24,31 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the gov module's genesis state. type GenesisState struct { - // constitution is the foundational document of a chain, describing its purpose and the duties of its user groups, eg: - // delegators and validators. It may contain ideas for the evolution of the chain, or not, but should at the least be - // a statement of purpose and intent. - Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` // starting_proposal_id is the ID of the starting proposal. - StartingProposalId uint64 `protobuf:"varint,2,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` + StartingProposalId uint64 `protobuf:"varint,1,opt,name=starting_proposal_id,json=startingProposalId,proto3" json:"starting_proposal_id,omitempty"` // deposits defines all the deposits present at genesis. - Deposits []*Deposit `protobuf:"bytes,3,rep,name=deposits,proto3" json:"deposits,omitempty"` + Deposits []*Deposit `protobuf:"bytes,2,rep,name=deposits,proto3" json:"deposits,omitempty"` // votes defines all the votes present at genesis. - Votes []*Vote `protobuf:"bytes,4,rep,name=votes,proto3" json:"votes,omitempty"` + Votes []*Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"` // proposals defines all the proposals present at genesis. - Proposals []*Proposal `protobuf:"bytes,5,rep,name=proposals,proto3" json:"proposals,omitempty"` + Proposals []*Proposal `protobuf:"bytes,4,rep,name=proposals,proto3" json:"proposals,omitempty"` // Deprecated: Prefer to use `params` instead. // deposit_params defines all the paramaters of related to deposit. - DepositParams *DepositParams `protobuf:"bytes,6,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` // Deprecated: Do not use. + DepositParams *DepositParams `protobuf:"bytes,5,opt,name=deposit_params,json=depositParams,proto3" json:"deposit_params,omitempty"` // Deprecated: Do not use. // Deprecated: Prefer to use `params` instead. // voting_params defines all the paramaters of related to voting. - VotingParams *VotingParams `protobuf:"bytes,7,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` // Deprecated: Do not use. + VotingParams *VotingParams `protobuf:"bytes,6,opt,name=voting_params,json=votingParams,proto3" json:"voting_params,omitempty"` // Deprecated: Do not use. // Deprecated: Prefer to use `params` instead. // tally_params defines all the paramaters of related to tally. - TallyParams *TallyParams `protobuf:"bytes,8,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` // Deprecated: Do not use. + TallyParams *TallyParams `protobuf:"bytes,7,opt,name=tally_params,json=tallyParams,proto3" json:"tally_params,omitempty"` // Deprecated: Do not use. // params defines all the paramaters of x/gov module. // // Since: cosmos-sdk 0.47 - Params *Params `protobuf:"bytes,9,opt,name=params,proto3" json:"params,omitempty"` + Params *Params `protobuf:"bytes,8,opt,name=params,proto3" json:"params,omitempty"` + // The constitution allows builders to lay a foundation and define purpose. + // This is an immutable string set in genesis. + // There are no amendments, to go outside of scope, just fork. + Constitution string `protobuf:"bytes,9,opt,name=constitution,proto3" json:"constitution,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -84,13 +84,6 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetConstitution() string { - if m != nil { - return m.Constitution - } - return "" -} - func (m *GenesisState) GetStartingProposalId() uint64 { if m != nil { return m.StartingProposalId @@ -150,6 +143,13 @@ func (m *GenesisState) GetParams() *Params { return nil } +func (m *GenesisState) GetConstitution() string { + if m != nil { + return m.Constitution + } + return "" +} + func init() { proto.RegisterType((*GenesisState)(nil), "cosmos.gov.v1.GenesisState") } @@ -157,7 +157,7 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1/genesis.proto", fileDescriptor_ef7cfd15e3ded621) } var fileDescriptor_ef7cfd15e3ded621 = []byte{ - // 378 bytes of a gzipped FileDescriptorProto + // 379 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xcd, 0x4e, 0xfa, 0x40, 0x14, 0xc5, 0x19, 0xbe, 0xfe, 0x30, 0x94, 0xff, 0x62, 0xfc, 0xa0, 0x01, 0xd3, 0x34, 0xac, 0x6a, 0x0c, 0xad, 0x60, 0x7c, 0x00, 0x09, 0x86, 0xb8, 0x23, 0xd5, 0xb8, 0x70, 0x43, 0x0a, 0x6d, 0x6a, @@ -165,23 +165,23 @@ var fileDescriptor_ef7cfd15e3ded621 = []byte{ 0x31, 0xcc, 0xb4, 0x02, 0xd5, 0xd5, 0x24, 0xf7, 0xfc, 0xce, 0x99, 0x93, 0x9b, 0x8b, 0x5b, 0x53, 0xa0, 0x73, 0xa0, 0x96, 0x0f, 0xdc, 0xe2, 0x5d, 0xcb, 0xf7, 0x42, 0x8f, 0x06, 0xd4, 0x8c, 0x62, 0x60, 0x40, 0xea, 0x52, 0x34, 0x7d, 0xe0, 0x26, 0xef, 0x36, 0x1b, 0x19, 0x16, 0xb8, 0xe4, 0xda, - 0x5f, 0x05, 0xac, 0x0c, 0xa5, 0xf3, 0x9e, 0x39, 0xcc, 0x23, 0x6d, 0xac, 0x4c, 0x21, 0xa4, 0x2c, - 0x60, 0x0b, 0x16, 0x40, 0xa8, 0x22, 0x1d, 0x19, 0x55, 0xfb, 0x60, 0x46, 0x2e, 0xf1, 0x31, 0x65, - 0x4e, 0xcc, 0x82, 0xd0, 0x1f, 0x47, 0x31, 0x44, 0x40, 0x9d, 0xd9, 0x38, 0x70, 0xd5, 0xbc, 0x8e, - 0x8c, 0xa2, 0x4d, 0x52, 0x6d, 0x94, 0x48, 0x77, 0x2e, 0xe9, 0xe1, 0x8a, 0xeb, 0x45, 0x40, 0x03, - 0x46, 0xd5, 0x82, 0x5e, 0x30, 0x6a, 0xbd, 0x53, 0xf3, 0xa0, 0xa1, 0x39, 0x90, 0xb2, 0xfd, 0xc3, - 0x91, 0x73, 0x5c, 0xe2, 0xc0, 0x3c, 0xaa, 0x16, 0x85, 0xe1, 0x28, 0x63, 0x78, 0x04, 0xe6, 0xd9, - 0x92, 0x20, 0xd7, 0xb8, 0x9a, 0xf6, 0xa0, 0x6a, 0x49, 0xe0, 0x8d, 0x0c, 0x9e, 0x96, 0xb1, 0x77, - 0x24, 0x19, 0xe2, 0xff, 0xc9, 0x6f, 0xe3, 0xc8, 0x89, 0x9d, 0x39, 0x55, 0xcb, 0x3a, 0x32, 0x6a, - 0xbd, 0xb3, 0xbf, 0xbb, 0x8d, 0x04, 0xd3, 0xcf, 0xab, 0xc8, 0xae, 0xbb, 0xfb, 0x23, 0x32, 0xc0, - 0x75, 0x0e, 0x72, 0x1d, 0x32, 0xe7, 0x9f, 0xc8, 0x69, 0xfd, 0xae, 0xbc, 0x5d, 0xcb, 0x2e, 0x46, - 0xe1, 0x7b, 0x13, 0x72, 0x83, 0x15, 0xe6, 0xcc, 0x66, 0xcb, 0x34, 0xa4, 0x22, 0x42, 0x9a, 0x99, - 0x90, 0x87, 0x2d, 0xb2, 0x97, 0x51, 0x63, 0xbb, 0x01, 0xe9, 0xe0, 0x72, 0x62, 0xae, 0x0a, 0xf3, - 0x49, 0x76, 0x0b, 0x42, 0xb4, 0x13, 0xa8, 0x7f, 0xfb, 0xbe, 0xd6, 0xd0, 0x6a, 0xad, 0xa1, 0xcf, - 0xb5, 0x86, 0xde, 0x36, 0x5a, 0x6e, 0xb5, 0xd1, 0x72, 0x1f, 0x1b, 0x2d, 0xf7, 0x74, 0xe1, 0x07, - 0xec, 0x79, 0x31, 0x31, 0xa7, 0x30, 0xb7, 0x92, 0xdb, 0x91, 0x4f, 0x87, 0xba, 0x2f, 0xd6, 0xab, - 0x38, 0x24, 0xb6, 0x8c, 0x3c, 0x6a, 0xf1, 0xee, 0xa4, 0x2c, 0x6e, 0xe9, 0xea, 0x3b, 0x00, 0x00, - 0xff, 0xff, 0x65, 0x28, 0x36, 0xbe, 0x92, 0x02, 0x00, 0x00, + 0x5f, 0x05, 0xac, 0x0c, 0xa5, 0xf3, 0x9e, 0x39, 0xcc, 0x23, 0x97, 0xf8, 0x98, 0x32, 0x27, 0x66, + 0x41, 0xe8, 0x8f, 0xa3, 0x18, 0x22, 0xa0, 0xce, 0x6c, 0x1c, 0xb8, 0x2a, 0xd2, 0x91, 0x51, 0xb4, + 0x49, 0xaa, 0x8d, 0x12, 0xe9, 0xce, 0x25, 0x3d, 0x5c, 0x71, 0xbd, 0x08, 0x68, 0xc0, 0xa8, 0x9a, + 0xd7, 0x0b, 0x46, 0xad, 0x77, 0x6a, 0x1e, 0xfc, 0x6e, 0x0e, 0xa4, 0x6c, 0xff, 0x70, 0xe4, 0x1c, + 0x97, 0x38, 0x30, 0x8f, 0xaa, 0x05, 0x61, 0x38, 0xca, 0x18, 0x1e, 0x81, 0x79, 0xb6, 0x24, 0xc8, + 0x35, 0xae, 0xa6, 0x3d, 0xa8, 0x5a, 0x14, 0x78, 0x23, 0x83, 0xa7, 0x65, 0xec, 0x1d, 0x49, 0x86, + 0xf8, 0x7f, 0xf2, 0xdb, 0x38, 0x72, 0x62, 0x67, 0x4e, 0xd5, 0x92, 0x8e, 0x8c, 0x5a, 0xef, 0xec, + 0xef, 0x6e, 0x23, 0xc1, 0xf4, 0xf3, 0x2a, 0xb2, 0xeb, 0xee, 0xfe, 0x88, 0x0c, 0x70, 0x9d, 0x83, + 0x5c, 0x87, 0xcc, 0x29, 0x8b, 0x9c, 0xd6, 0xef, 0xca, 0xdb, 0xb5, 0xec, 0x62, 0x14, 0xbe, 0x37, + 0x21, 0x37, 0x58, 0x61, 0xce, 0x6c, 0xb6, 0x4c, 0x43, 0xfe, 0x89, 0x90, 0x66, 0x26, 0xe4, 0x61, + 0x8b, 0xec, 0x65, 0xd4, 0xd8, 0x6e, 0x40, 0x3a, 0xb8, 0x9c, 0x98, 0x2b, 0xc2, 0x7c, 0x92, 0xdd, + 0x82, 0x10, 0xed, 0x04, 0x22, 0x6d, 0xac, 0x4c, 0x21, 0xa4, 0x2c, 0x60, 0x0b, 0x16, 0x40, 0xa8, + 0x56, 0x75, 0x64, 0x54, 0xed, 0x83, 0x59, 0xff, 0xf6, 0x7d, 0xad, 0xa1, 0xd5, 0x5a, 0x43, 0x9f, + 0x6b, 0x0d, 0xbd, 0x6d, 0xb4, 0xdc, 0x6a, 0xa3, 0xe5, 0x3e, 0x36, 0x5a, 0xee, 0xe9, 0xc2, 0x0f, + 0xd8, 0xf3, 0x62, 0x62, 0x4e, 0x61, 0x6e, 0x25, 0xb7, 0x23, 0x9f, 0x0e, 0x75, 0x5f, 0xac, 0x57, + 0x71, 0x48, 0x6c, 0x19, 0x79, 0xd4, 0xe2, 0xdd, 0x49, 0x59, 0xdc, 0xd2, 0xd5, 0x77, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x1b, 0x69, 0x07, 0x35, 0x92, 0x02, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -204,6 +204,13 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Constitution) > 0 { + i -= len(m.Constitution) + copy(dAtA[i:], m.Constitution) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Constitution))) + i-- + dAtA[i] = 0x4a + } if m.Params != nil { { size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) @@ -214,7 +221,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x4a + dAtA[i] = 0x42 } if m.TallyParams != nil { { @@ -226,7 +233,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x42 + dAtA[i] = 0x3a } if m.VotingParams != nil { { @@ -238,7 +245,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x32 } if m.DepositParams != nil { { @@ -250,7 +257,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x32 + dAtA[i] = 0x2a } if len(m.Proposals) > 0 { for iNdEx := len(m.Proposals) - 1; iNdEx >= 0; iNdEx-- { @@ -263,7 +270,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } } if len(m.Votes) > 0 { @@ -277,7 +284,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x22 + dAtA[i] = 0x1a } } if len(m.Deposits) > 0 { @@ -291,20 +298,13 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } } if m.StartingProposalId != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.StartingProposalId)) i-- - dAtA[i] = 0x10 - } - if len(m.Constitution) > 0 { - i -= len(m.Constitution) - copy(dAtA[i:], m.Constitution) - i = encodeVarintGenesis(dAtA, i, uint64(len(m.Constitution))) - i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } @@ -326,10 +326,6 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l - l = len(m.Constitution) - if l > 0 { - n += 1 + l + sovGenesis(uint64(l)) - } if m.StartingProposalId != 0 { n += 1 + sovGenesis(uint64(m.StartingProposalId)) } @@ -367,6 +363,10 @@ func (m *GenesisState) Size() (n int) { l = m.Params.Size() n += 1 + l + sovGenesis(uint64(l)) } + l = len(m.Constitution) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } return n } @@ -406,38 +406,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Constitution = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field StartingProposalId", wireType) } @@ -456,7 +424,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } - case 3: + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Deposits", wireType) } @@ -490,7 +458,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) } @@ -524,7 +492,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Proposals", wireType) } @@ -558,7 +526,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 6: + case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DepositParams", wireType) } @@ -594,7 +562,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 7: + case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field VotingParams", wireType) } @@ -630,7 +598,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 7: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field TallyParams", wireType) } @@ -666,7 +634,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 9: + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } @@ -702,6 +670,38 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Constitution = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) From 1a429fffa3efba2dac0ecfc1a0f725390591f4bc Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 18:10:14 +0700 Subject: [PATCH 09/14] more constitution relatec changes --- api/cosmos/gov/v1/query.pulsar.go | 1527 ++++++++++++++++++++++------ api/cosmos/gov/v1/query_grpc.pb.go | 36 + proto/cosmos/gov/v1/query.proto | 17 + x/gov/keeper/constitution.go | 12 + x/gov/keeper/grpc_query.go | 7 + x/gov/types/v1/query.pb.go | 486 +++++++-- x/gov/types/v1/query.pb.gw.go | 65 ++ 7 files changed, 1749 insertions(+), 401 deletions(-) create mode 100644 x/gov/keeper/constitution.go diff --git a/api/cosmos/gov/v1/query.pulsar.go b/api/cosmos/gov/v1/query.pulsar.go index 677db1c20190..d7893b3629af 100644 --- a/api/cosmos/gov/v1/query.pulsar.go +++ b/api/cosmos/gov/v1/query.pulsar.go @@ -15,6 +15,782 @@ import ( sync "sync" ) +var ( + md_QueryConstitutionRequest protoreflect.MessageDescriptor +) + +func init() { + file_cosmos_gov_v1_query_proto_init() + md_QueryConstitutionRequest = File_cosmos_gov_v1_query_proto.Messages().ByName("QueryConstitutionRequest") +} + +var _ protoreflect.Message = (*fastReflection_QueryConstitutionRequest)(nil) + +type fastReflection_QueryConstitutionRequest QueryConstitutionRequest + +func (x *QueryConstitutionRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryConstitutionRequest)(x) +} + +func (x *QueryConstitutionRequest) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_gov_v1_query_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryConstitutionRequest_messageType fastReflection_QueryConstitutionRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryConstitutionRequest_messageType{} + +type fastReflection_QueryConstitutionRequest_messageType struct{} + +func (x fastReflection_QueryConstitutionRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryConstitutionRequest)(nil) +} +func (x fastReflection_QueryConstitutionRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryConstitutionRequest) +} +func (x fastReflection_QueryConstitutionRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryConstitutionRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryConstitutionRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryConstitutionRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryConstitutionRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryConstitutionRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryConstitutionRequest) New() protoreflect.Message { + return new(fastReflection_QueryConstitutionRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryConstitutionRequest) Interface() protoreflect.ProtoMessage { + return (*QueryConstitutionRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryConstitutionRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryConstitutionRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionRequest")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionRequest")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryConstitutionRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionRequest")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionRequest")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionRequest")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryConstitutionRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionRequest")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryConstitutionRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.gov.v1.QueryConstitutionRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryConstitutionRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryConstitutionRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryConstitutionRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryConstitutionRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryConstitutionRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryConstitutionRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConstitutionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConstitutionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryConstitutionResponse protoreflect.MessageDescriptor + fd_QueryConstitutionResponse_constitution protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_gov_v1_query_proto_init() + md_QueryConstitutionResponse = File_cosmos_gov_v1_query_proto.Messages().ByName("QueryConstitutionResponse") + fd_QueryConstitutionResponse_constitution = md_QueryConstitutionResponse.Fields().ByName("constitution") +} + +var _ protoreflect.Message = (*fastReflection_QueryConstitutionResponse)(nil) + +type fastReflection_QueryConstitutionResponse QueryConstitutionResponse + +func (x *QueryConstitutionResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryConstitutionResponse)(x) +} + +func (x *QueryConstitutionResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_gov_v1_query_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryConstitutionResponse_messageType fastReflection_QueryConstitutionResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryConstitutionResponse_messageType{} + +type fastReflection_QueryConstitutionResponse_messageType struct{} + +func (x fastReflection_QueryConstitutionResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryConstitutionResponse)(nil) +} +func (x fastReflection_QueryConstitutionResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryConstitutionResponse) +} +func (x fastReflection_QueryConstitutionResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryConstitutionResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryConstitutionResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryConstitutionResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryConstitutionResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryConstitutionResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryConstitutionResponse) New() protoreflect.Message { + return new(fastReflection_QueryConstitutionResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryConstitutionResponse) Interface() protoreflect.ProtoMessage { + return (*QueryConstitutionResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryConstitutionResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Constitution != "" { + value := protoreflect.ValueOfString(x.Constitution) + if !f(fd_QueryConstitutionResponse_constitution, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryConstitutionResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.gov.v1.QueryConstitutionResponse.constitution": + return x.Constitution != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionResponse")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.gov.v1.QueryConstitutionResponse.constitution": + x.Constitution = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionResponse")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryConstitutionResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.gov.v1.QueryConstitutionResponse.constitution": + value := x.Constitution + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionResponse")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.gov.v1.QueryConstitutionResponse.constitution": + x.Constitution = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionResponse")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.gov.v1.QueryConstitutionResponse.constitution": + panic(fmt.Errorf("field constitution of message cosmos.gov.v1.QueryConstitutionResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionResponse")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryConstitutionResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.gov.v1.QueryConstitutionResponse.constitution": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.QueryConstitutionResponse")) + } + panic(fmt.Errorf("message cosmos.gov.v1.QueryConstitutionResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryConstitutionResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.gov.v1.QueryConstitutionResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryConstitutionResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryConstitutionResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryConstitutionResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryConstitutionResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryConstitutionResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Constitution) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryConstitutionResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Constitution) > 0 { + i -= len(x.Constitution) + copy(dAtA[i:], x.Constitution) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Constitution))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryConstitutionResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConstitutionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConstitutionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Constitution = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var ( md_QueryProposalRequest protoreflect.MessageDescriptor fd_QueryProposalRequest_proposal_id protoreflect.FieldDescriptor @@ -35,7 +811,7 @@ func (x *QueryProposalRequest) ProtoReflect() protoreflect.Message { } func (x *QueryProposalRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[0] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -439,7 +1215,7 @@ func (x *QueryProposalResponse) ProtoReflect() protoreflect.Message { } func (x *QueryProposalResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[1] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -880,7 +1656,7 @@ func (x *QueryProposalsRequest) ProtoReflect() protoreflect.Message { } func (x *QueryProposalsRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[2] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1538,7 +2314,7 @@ func (x *QueryProposalsResponse) ProtoReflect() protoreflect.Message { } func (x *QueryProposalsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[3] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2060,7 +2836,7 @@ func (x *QueryVoteRequest) ProtoReflect() protoreflect.Message { } func (x *QueryVoteRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[4] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2526,7 +3302,7 @@ func (x *QueryVoteResponse) ProtoReflect() protoreflect.Message { } func (x *QueryVoteResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[5] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2963,7 +3739,7 @@ func (x *QueryVotesRequest) ProtoReflect() protoreflect.Message { } func (x *QueryVotesRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[6] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3497,7 +4273,7 @@ func (x *QueryVotesResponse) ProtoReflect() protoreflect.Message { } func (x *QueryVotesResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[7] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4017,7 +4793,7 @@ func (x *QueryParamsRequest) ProtoReflect() protoreflect.Message { } func (x *QueryParamsRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[8] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4443,7 +5219,7 @@ func (x *QueryParamsResponse) ProtoReflect() protoreflect.Message { } func (x *QueryParamsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[9] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5111,7 +5887,7 @@ func (x *QueryDepositRequest) ProtoReflect() protoreflect.Message { } func (x *QueryDepositRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[10] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5577,7 +6353,7 @@ func (x *QueryDepositResponse) ProtoReflect() protoreflect.Message { } func (x *QueryDepositResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[11] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6014,7 +6790,7 @@ func (x *QueryDepositsRequest) ProtoReflect() protoreflect.Message { } func (x *QueryDepositsRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[12] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6548,7 +7324,7 @@ func (x *QueryDepositsResponse) ProtoReflect() protoreflect.Message { } func (x *QueryDepositsResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[13] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7068,7 +7844,7 @@ func (x *QueryTallyResultRequest) ProtoReflect() protoreflect.Message { } func (x *QueryTallyResultRequest) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[14] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7472,7 +8248,7 @@ func (x *QueryTallyResultResponse) ProtoReflect() protoreflect.Message { } func (x *QueryTallyResultResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[15] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7902,6 +8678,69 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// QueryConstitutionRequest is the request type for the Query/Constitution RPC method +type QueryConstitutionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QueryConstitutionRequest) Reset() { + *x = QueryConstitutionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_gov_v1_query_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryConstitutionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryConstitutionRequest) ProtoMessage() {} + +// Deprecated: Use QueryConstitutionRequest.ProtoReflect.Descriptor instead. +func (*QueryConstitutionRequest) Descriptor() ([]byte, []int) { + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{0} +} + +// QueryConstitutionResponse is the response type for the Query/Constitution RPC method +type QueryConstitutionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` +} + +func (x *QueryConstitutionResponse) Reset() { + *x = QueryConstitutionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_gov_v1_query_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryConstitutionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryConstitutionResponse) ProtoMessage() {} + +// Deprecated: Use QueryConstitutionResponse.ProtoReflect.Descriptor instead. +func (*QueryConstitutionResponse) Descriptor() ([]byte, []int) { + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{1} +} + +func (x *QueryConstitutionResponse) GetConstitution() string { + if x != nil { + return x.Constitution + } + return "" +} + // QueryProposalRequest is the request type for the Query/Proposal RPC method. type QueryProposalRequest struct { state protoimpl.MessageState @@ -7915,7 +8754,7 @@ type QueryProposalRequest struct { func (x *QueryProposalRequest) Reset() { *x = QueryProposalRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[0] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7929,7 +8768,7 @@ func (*QueryProposalRequest) ProtoMessage() {} // Deprecated: Use QueryProposalRequest.ProtoReflect.Descriptor instead. func (*QueryProposalRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{0} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{2} } func (x *QueryProposalRequest) GetProposalId() uint64 { @@ -7951,7 +8790,7 @@ type QueryProposalResponse struct { func (x *QueryProposalResponse) Reset() { *x = QueryProposalResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[1] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7965,7 +8804,7 @@ func (*QueryProposalResponse) ProtoMessage() {} // Deprecated: Use QueryProposalResponse.ProtoReflect.Descriptor instead. func (*QueryProposalResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{1} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{3} } func (x *QueryProposalResponse) GetProposal() *Proposal { @@ -7994,7 +8833,7 @@ type QueryProposalsRequest struct { func (x *QueryProposalsRequest) Reset() { *x = QueryProposalsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[2] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8008,7 +8847,7 @@ func (*QueryProposalsRequest) ProtoMessage() {} // Deprecated: Use QueryProposalsRequest.ProtoReflect.Descriptor instead. func (*QueryProposalsRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{2} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{4} } func (x *QueryProposalsRequest) GetProposalStatus() ProposalStatus { @@ -8054,7 +8893,7 @@ type QueryProposalsResponse struct { func (x *QueryProposalsResponse) Reset() { *x = QueryProposalsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[3] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8068,7 +8907,7 @@ func (*QueryProposalsResponse) ProtoMessage() {} // Deprecated: Use QueryProposalsResponse.ProtoReflect.Descriptor instead. func (*QueryProposalsResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{3} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{5} } func (x *QueryProposalsResponse) GetProposals() []*Proposal { @@ -8100,7 +8939,7 @@ type QueryVoteRequest struct { func (x *QueryVoteRequest) Reset() { *x = QueryVoteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[4] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8114,7 +8953,7 @@ func (*QueryVoteRequest) ProtoMessage() {} // Deprecated: Use QueryVoteRequest.ProtoReflect.Descriptor instead. func (*QueryVoteRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{4} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{6} } func (x *QueryVoteRequest) GetProposalId() uint64 { @@ -8144,7 +8983,7 @@ type QueryVoteResponse struct { func (x *QueryVoteResponse) Reset() { *x = QueryVoteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[5] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8158,7 +8997,7 @@ func (*QueryVoteResponse) ProtoMessage() {} // Deprecated: Use QueryVoteResponse.ProtoReflect.Descriptor instead. func (*QueryVoteResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{5} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{7} } func (x *QueryVoteResponse) GetVote() *Vote { @@ -8183,7 +9022,7 @@ type QueryVotesRequest struct { func (x *QueryVotesRequest) Reset() { *x = QueryVotesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[6] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8197,7 +9036,7 @@ func (*QueryVotesRequest) ProtoMessage() {} // Deprecated: Use QueryVotesRequest.ProtoReflect.Descriptor instead. func (*QueryVotesRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{6} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{8} } func (x *QueryVotesRequest) GetProposalId() uint64 { @@ -8229,7 +9068,7 @@ type QueryVotesResponse struct { func (x *QueryVotesResponse) Reset() { *x = QueryVotesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[7] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8243,7 +9082,7 @@ func (*QueryVotesResponse) ProtoMessage() {} // Deprecated: Use QueryVotesResponse.ProtoReflect.Descriptor instead. func (*QueryVotesResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{7} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{9} } func (x *QueryVotesResponse) GetVotes() []*Vote { @@ -8274,7 +9113,7 @@ type QueryParamsRequest struct { func (x *QueryParamsRequest) Reset() { *x = QueryParamsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[8] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8288,7 +9127,7 @@ func (*QueryParamsRequest) ProtoMessage() {} // Deprecated: Use QueryParamsRequest.ProtoReflect.Descriptor instead. func (*QueryParamsRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{8} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{10} } func (x *QueryParamsRequest) GetParamsType() string { @@ -8328,7 +9167,7 @@ type QueryParamsResponse struct { func (x *QueryParamsResponse) Reset() { *x = QueryParamsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[9] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8342,7 +9181,7 @@ func (*QueryParamsResponse) ProtoMessage() {} // Deprecated: Use QueryParamsResponse.ProtoReflect.Descriptor instead. func (*QueryParamsResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{9} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{11} } // Deprecated: Do not use. @@ -8391,7 +9230,7 @@ type QueryDepositRequest struct { func (x *QueryDepositRequest) Reset() { *x = QueryDepositRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[10] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8405,7 +9244,7 @@ func (*QueryDepositRequest) ProtoMessage() {} // Deprecated: Use QueryDepositRequest.ProtoReflect.Descriptor instead. func (*QueryDepositRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{10} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{12} } func (x *QueryDepositRequest) GetProposalId() uint64 { @@ -8435,7 +9274,7 @@ type QueryDepositResponse struct { func (x *QueryDepositResponse) Reset() { *x = QueryDepositResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[11] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8449,7 +9288,7 @@ func (*QueryDepositResponse) ProtoMessage() {} // Deprecated: Use QueryDepositResponse.ProtoReflect.Descriptor instead. func (*QueryDepositResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{11} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{13} } func (x *QueryDepositResponse) GetDeposit() *Deposit { @@ -8474,7 +9313,7 @@ type QueryDepositsRequest struct { func (x *QueryDepositsRequest) Reset() { *x = QueryDepositsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[12] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8488,7 +9327,7 @@ func (*QueryDepositsRequest) ProtoMessage() {} // Deprecated: Use QueryDepositsRequest.ProtoReflect.Descriptor instead. func (*QueryDepositsRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{12} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{14} } func (x *QueryDepositsRequest) GetProposalId() uint64 { @@ -8519,7 +9358,7 @@ type QueryDepositsResponse struct { func (x *QueryDepositsResponse) Reset() { *x = QueryDepositsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[13] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8533,7 +9372,7 @@ func (*QueryDepositsResponse) ProtoMessage() {} // Deprecated: Use QueryDepositsResponse.ProtoReflect.Descriptor instead. func (*QueryDepositsResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{13} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{15} } func (x *QueryDepositsResponse) GetDeposits() []*Deposit { @@ -8563,7 +9402,7 @@ type QueryTallyResultRequest struct { func (x *QueryTallyResultRequest) Reset() { *x = QueryTallyResultRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[14] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8577,7 +9416,7 @@ func (*QueryTallyResultRequest) ProtoMessage() {} // Deprecated: Use QueryTallyResultRequest.ProtoReflect.Descriptor instead. func (*QueryTallyResultRequest) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{14} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{16} } func (x *QueryTallyResultRequest) GetProposalId() uint64 { @@ -8600,7 +9439,7 @@ type QueryTallyResultResponse struct { func (x *QueryTallyResultResponse) Reset() { *x = QueryTallyResultResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_gov_v1_query_proto_msgTypes[15] + mi := &file_cosmos_gov_v1_query_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8614,7 +9453,7 @@ func (*QueryTallyResultResponse) ProtoMessage() {} // Deprecated: Use QueryTallyResultResponse.ProtoReflect.Descriptor instead. func (*QueryTallyResultResponse) Descriptor() ([]byte, []int) { - return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{15} + return file_cosmos_gov_v1_query_proto_rawDescGZIP(), []int{17} } func (x *QueryTallyResultResponse) GetTally() *TallyResult { @@ -8637,208 +9476,222 @@ var file_cosmos_gov_v1_query_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x37, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 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, 0x4c, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, + 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1a, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x4c, + 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x8f, 0x02, 0x0a, + 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x36, + 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, + 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, - 0x8f, 0x02, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 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, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x10, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 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, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, + 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x10, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x3c, + 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x22, 0x7c, 0x0a, 0x11, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 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, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x96, 0x02, 0x0a, + 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x76, 0x6f, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, 0x6c, 0x6c, 0x79, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x6e, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x36, 0x0a, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 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, 0x05, 0x76, 0x6f, 0x74, 0x65, - 0x72, 0x22, 0x3c, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, - 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x22, - 0x7c, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 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, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, - 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, - 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x96, 0x02, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, - 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x47, 0x0a, - 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, - 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x6c, - 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x74, 0x61, - 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x6e, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 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, 0x09, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x48, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x30, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x22, 0x7f, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x46, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, - 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x17, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x4c, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x74, - 0x61, 0x6c, 0x6c, 0x79, 0x32, 0xda, 0x08, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x85, - 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x23, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x7a, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x48, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, + 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, + 0x7f, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x94, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x47, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, 0x4c, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x6c, 0x6c, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x30, 0x0a, 0x05, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x74, 0x61, 0x6c, 0x6c, + 0x79, 0x32, 0xe3, 0x09, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x0c, + 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, - 0x6f, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x7d, 0x12, 0x82, 0x01, 0x0a, - 0x05, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x6f, 0x74, 0x65, - 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, - 0x97, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x22, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x63, + 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, + 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, + 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x7a, 0x0a, 0x09, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x04, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, + 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x2f, 0x7b, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x08, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x74, 0x65, + 0x72, 0x7d, 0x12, 0x82, 0x01, 0x0a, 0x05, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, - 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x61, 0x6c, 0x6c, - 0x79, 0x42, 0x9b, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x24, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, - 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, - 0x58, 0xaa, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x7d, 0x2f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, + 0x12, 0x23, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 0x97, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x12, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, + 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x7d, 0x12, + 0x8e, 0x01, 0x0a, 0x08, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, + 0x2f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x73, + 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, + 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x42, 0x9b, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x24, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x6f, + 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -8853,73 +9706,77 @@ func file_cosmos_gov_v1_query_proto_rawDescGZIP() []byte { return file_cosmos_gov_v1_query_proto_rawDescData } -var file_cosmos_gov_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_cosmos_gov_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_cosmos_gov_v1_query_proto_goTypes = []interface{}{ - (*QueryProposalRequest)(nil), // 0: cosmos.gov.v1.QueryProposalRequest - (*QueryProposalResponse)(nil), // 1: cosmos.gov.v1.QueryProposalResponse - (*QueryProposalsRequest)(nil), // 2: cosmos.gov.v1.QueryProposalsRequest - (*QueryProposalsResponse)(nil), // 3: cosmos.gov.v1.QueryProposalsResponse - (*QueryVoteRequest)(nil), // 4: cosmos.gov.v1.QueryVoteRequest - (*QueryVoteResponse)(nil), // 5: cosmos.gov.v1.QueryVoteResponse - (*QueryVotesRequest)(nil), // 6: cosmos.gov.v1.QueryVotesRequest - (*QueryVotesResponse)(nil), // 7: cosmos.gov.v1.QueryVotesResponse - (*QueryParamsRequest)(nil), // 8: cosmos.gov.v1.QueryParamsRequest - (*QueryParamsResponse)(nil), // 9: cosmos.gov.v1.QueryParamsResponse - (*QueryDepositRequest)(nil), // 10: cosmos.gov.v1.QueryDepositRequest - (*QueryDepositResponse)(nil), // 11: cosmos.gov.v1.QueryDepositResponse - (*QueryDepositsRequest)(nil), // 12: cosmos.gov.v1.QueryDepositsRequest - (*QueryDepositsResponse)(nil), // 13: cosmos.gov.v1.QueryDepositsResponse - (*QueryTallyResultRequest)(nil), // 14: cosmos.gov.v1.QueryTallyResultRequest - (*QueryTallyResultResponse)(nil), // 15: cosmos.gov.v1.QueryTallyResultResponse - (*Proposal)(nil), // 16: cosmos.gov.v1.Proposal - (ProposalStatus)(0), // 17: cosmos.gov.v1.ProposalStatus - (*v1beta1.PageRequest)(nil), // 18: cosmos.base.query.v1beta1.PageRequest - (*v1beta1.PageResponse)(nil), // 19: cosmos.base.query.v1beta1.PageResponse - (*Vote)(nil), // 20: cosmos.gov.v1.Vote - (*VotingParams)(nil), // 21: cosmos.gov.v1.VotingParams - (*DepositParams)(nil), // 22: cosmos.gov.v1.DepositParams - (*TallyParams)(nil), // 23: cosmos.gov.v1.TallyParams - (*Params)(nil), // 24: cosmos.gov.v1.Params - (*Deposit)(nil), // 25: cosmos.gov.v1.Deposit - (*TallyResult)(nil), // 26: cosmos.gov.v1.TallyResult + (*QueryConstitutionRequest)(nil), // 0: cosmos.gov.v1.QueryConstitutionRequest + (*QueryConstitutionResponse)(nil), // 1: cosmos.gov.v1.QueryConstitutionResponse + (*QueryProposalRequest)(nil), // 2: cosmos.gov.v1.QueryProposalRequest + (*QueryProposalResponse)(nil), // 3: cosmos.gov.v1.QueryProposalResponse + (*QueryProposalsRequest)(nil), // 4: cosmos.gov.v1.QueryProposalsRequest + (*QueryProposalsResponse)(nil), // 5: cosmos.gov.v1.QueryProposalsResponse + (*QueryVoteRequest)(nil), // 6: cosmos.gov.v1.QueryVoteRequest + (*QueryVoteResponse)(nil), // 7: cosmos.gov.v1.QueryVoteResponse + (*QueryVotesRequest)(nil), // 8: cosmos.gov.v1.QueryVotesRequest + (*QueryVotesResponse)(nil), // 9: cosmos.gov.v1.QueryVotesResponse + (*QueryParamsRequest)(nil), // 10: cosmos.gov.v1.QueryParamsRequest + (*QueryParamsResponse)(nil), // 11: cosmos.gov.v1.QueryParamsResponse + (*QueryDepositRequest)(nil), // 12: cosmos.gov.v1.QueryDepositRequest + (*QueryDepositResponse)(nil), // 13: cosmos.gov.v1.QueryDepositResponse + (*QueryDepositsRequest)(nil), // 14: cosmos.gov.v1.QueryDepositsRequest + (*QueryDepositsResponse)(nil), // 15: cosmos.gov.v1.QueryDepositsResponse + (*QueryTallyResultRequest)(nil), // 16: cosmos.gov.v1.QueryTallyResultRequest + (*QueryTallyResultResponse)(nil), // 17: cosmos.gov.v1.QueryTallyResultResponse + (*Proposal)(nil), // 18: cosmos.gov.v1.Proposal + (ProposalStatus)(0), // 19: cosmos.gov.v1.ProposalStatus + (*v1beta1.PageRequest)(nil), // 20: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 21: cosmos.base.query.v1beta1.PageResponse + (*Vote)(nil), // 22: cosmos.gov.v1.Vote + (*VotingParams)(nil), // 23: cosmos.gov.v1.VotingParams + (*DepositParams)(nil), // 24: cosmos.gov.v1.DepositParams + (*TallyParams)(nil), // 25: cosmos.gov.v1.TallyParams + (*Params)(nil), // 26: cosmos.gov.v1.Params + (*Deposit)(nil), // 27: cosmos.gov.v1.Deposit + (*TallyResult)(nil), // 28: cosmos.gov.v1.TallyResult } var file_cosmos_gov_v1_query_proto_depIdxs = []int32{ - 16, // 0: cosmos.gov.v1.QueryProposalResponse.proposal:type_name -> cosmos.gov.v1.Proposal - 17, // 1: cosmos.gov.v1.QueryProposalsRequest.proposal_status:type_name -> cosmos.gov.v1.ProposalStatus - 18, // 2: cosmos.gov.v1.QueryProposalsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 16, // 3: cosmos.gov.v1.QueryProposalsResponse.proposals:type_name -> cosmos.gov.v1.Proposal - 19, // 4: cosmos.gov.v1.QueryProposalsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 20, // 5: cosmos.gov.v1.QueryVoteResponse.vote:type_name -> cosmos.gov.v1.Vote - 18, // 6: cosmos.gov.v1.QueryVotesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 20, // 7: cosmos.gov.v1.QueryVotesResponse.votes:type_name -> cosmos.gov.v1.Vote - 19, // 8: cosmos.gov.v1.QueryVotesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 21, // 9: cosmos.gov.v1.QueryParamsResponse.voting_params:type_name -> cosmos.gov.v1.VotingParams - 22, // 10: cosmos.gov.v1.QueryParamsResponse.deposit_params:type_name -> cosmos.gov.v1.DepositParams - 23, // 11: cosmos.gov.v1.QueryParamsResponse.tally_params:type_name -> cosmos.gov.v1.TallyParams - 24, // 12: cosmos.gov.v1.QueryParamsResponse.params:type_name -> cosmos.gov.v1.Params - 25, // 13: cosmos.gov.v1.QueryDepositResponse.deposit:type_name -> cosmos.gov.v1.Deposit - 18, // 14: cosmos.gov.v1.QueryDepositsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest - 25, // 15: cosmos.gov.v1.QueryDepositsResponse.deposits:type_name -> cosmos.gov.v1.Deposit - 19, // 16: cosmos.gov.v1.QueryDepositsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse - 26, // 17: cosmos.gov.v1.QueryTallyResultResponse.tally:type_name -> cosmos.gov.v1.TallyResult - 0, // 18: cosmos.gov.v1.Query.Proposal:input_type -> cosmos.gov.v1.QueryProposalRequest - 2, // 19: cosmos.gov.v1.Query.Proposals:input_type -> cosmos.gov.v1.QueryProposalsRequest - 4, // 20: cosmos.gov.v1.Query.Vote:input_type -> cosmos.gov.v1.QueryVoteRequest - 6, // 21: cosmos.gov.v1.Query.Votes:input_type -> cosmos.gov.v1.QueryVotesRequest - 8, // 22: cosmos.gov.v1.Query.Params:input_type -> cosmos.gov.v1.QueryParamsRequest - 10, // 23: cosmos.gov.v1.Query.Deposit:input_type -> cosmos.gov.v1.QueryDepositRequest - 12, // 24: cosmos.gov.v1.Query.Deposits:input_type -> cosmos.gov.v1.QueryDepositsRequest - 14, // 25: cosmos.gov.v1.Query.TallyResult:input_type -> cosmos.gov.v1.QueryTallyResultRequest - 1, // 26: cosmos.gov.v1.Query.Proposal:output_type -> cosmos.gov.v1.QueryProposalResponse - 3, // 27: cosmos.gov.v1.Query.Proposals:output_type -> cosmos.gov.v1.QueryProposalsResponse - 5, // 28: cosmos.gov.v1.Query.Vote:output_type -> cosmos.gov.v1.QueryVoteResponse - 7, // 29: cosmos.gov.v1.Query.Votes:output_type -> cosmos.gov.v1.QueryVotesResponse - 9, // 30: cosmos.gov.v1.Query.Params:output_type -> cosmos.gov.v1.QueryParamsResponse - 11, // 31: cosmos.gov.v1.Query.Deposit:output_type -> cosmos.gov.v1.QueryDepositResponse - 13, // 32: cosmos.gov.v1.Query.Deposits:output_type -> cosmos.gov.v1.QueryDepositsResponse - 15, // 33: cosmos.gov.v1.Query.TallyResult:output_type -> cosmos.gov.v1.QueryTallyResultResponse - 26, // [26:34] is the sub-list for method output_type - 18, // [18:26] is the sub-list for method input_type + 18, // 0: cosmos.gov.v1.QueryProposalResponse.proposal:type_name -> cosmos.gov.v1.Proposal + 19, // 1: cosmos.gov.v1.QueryProposalsRequest.proposal_status:type_name -> cosmos.gov.v1.ProposalStatus + 20, // 2: cosmos.gov.v1.QueryProposalsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 18, // 3: cosmos.gov.v1.QueryProposalsResponse.proposals:type_name -> cosmos.gov.v1.Proposal + 21, // 4: cosmos.gov.v1.QueryProposalsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 22, // 5: cosmos.gov.v1.QueryVoteResponse.vote:type_name -> cosmos.gov.v1.Vote + 20, // 6: cosmos.gov.v1.QueryVotesRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 22, // 7: cosmos.gov.v1.QueryVotesResponse.votes:type_name -> cosmos.gov.v1.Vote + 21, // 8: cosmos.gov.v1.QueryVotesResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 23, // 9: cosmos.gov.v1.QueryParamsResponse.voting_params:type_name -> cosmos.gov.v1.VotingParams + 24, // 10: cosmos.gov.v1.QueryParamsResponse.deposit_params:type_name -> cosmos.gov.v1.DepositParams + 25, // 11: cosmos.gov.v1.QueryParamsResponse.tally_params:type_name -> cosmos.gov.v1.TallyParams + 26, // 12: cosmos.gov.v1.QueryParamsResponse.params:type_name -> cosmos.gov.v1.Params + 27, // 13: cosmos.gov.v1.QueryDepositResponse.deposit:type_name -> cosmos.gov.v1.Deposit + 20, // 14: cosmos.gov.v1.QueryDepositsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 27, // 15: cosmos.gov.v1.QueryDepositsResponse.deposits:type_name -> cosmos.gov.v1.Deposit + 21, // 16: cosmos.gov.v1.QueryDepositsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 28, // 17: cosmos.gov.v1.QueryTallyResultResponse.tally:type_name -> cosmos.gov.v1.TallyResult + 0, // 18: cosmos.gov.v1.Query.Constitution:input_type -> cosmos.gov.v1.QueryConstitutionRequest + 2, // 19: cosmos.gov.v1.Query.Proposal:input_type -> cosmos.gov.v1.QueryProposalRequest + 4, // 20: cosmos.gov.v1.Query.Proposals:input_type -> cosmos.gov.v1.QueryProposalsRequest + 6, // 21: cosmos.gov.v1.Query.Vote:input_type -> cosmos.gov.v1.QueryVoteRequest + 8, // 22: cosmos.gov.v1.Query.Votes:input_type -> cosmos.gov.v1.QueryVotesRequest + 10, // 23: cosmos.gov.v1.Query.Params:input_type -> cosmos.gov.v1.QueryParamsRequest + 12, // 24: cosmos.gov.v1.Query.Deposit:input_type -> cosmos.gov.v1.QueryDepositRequest + 14, // 25: cosmos.gov.v1.Query.Deposits:input_type -> cosmos.gov.v1.QueryDepositsRequest + 16, // 26: cosmos.gov.v1.Query.TallyResult:input_type -> cosmos.gov.v1.QueryTallyResultRequest + 1, // 27: cosmos.gov.v1.Query.Constitution:output_type -> cosmos.gov.v1.QueryConstitutionResponse + 3, // 28: cosmos.gov.v1.Query.Proposal:output_type -> cosmos.gov.v1.QueryProposalResponse + 5, // 29: cosmos.gov.v1.Query.Proposals:output_type -> cosmos.gov.v1.QueryProposalsResponse + 7, // 30: cosmos.gov.v1.Query.Vote:output_type -> cosmos.gov.v1.QueryVoteResponse + 9, // 31: cosmos.gov.v1.Query.Votes:output_type -> cosmos.gov.v1.QueryVotesResponse + 11, // 32: cosmos.gov.v1.Query.Params:output_type -> cosmos.gov.v1.QueryParamsResponse + 13, // 33: cosmos.gov.v1.Query.Deposit:output_type -> cosmos.gov.v1.QueryDepositResponse + 15, // 34: cosmos.gov.v1.Query.Deposits:output_type -> cosmos.gov.v1.QueryDepositsResponse + 17, // 35: cosmos.gov.v1.Query.TallyResult:output_type -> cosmos.gov.v1.QueryTallyResultResponse + 27, // [27:36] is the sub-list for method output_type + 18, // [18:27] is the sub-list for method input_type 18, // [18:18] is the sub-list for extension type_name 18, // [18:18] is the sub-list for extension extendee 0, // [0:18] is the sub-list for field type_name @@ -8933,7 +9790,7 @@ func file_cosmos_gov_v1_query_proto_init() { file_cosmos_gov_v1_gov_proto_init() if !protoimpl.UnsafeEnabled { file_cosmos_gov_v1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProposalRequest); i { + switch v := v.(*QueryConstitutionRequest); i { case 0: return &v.state case 1: @@ -8945,7 +9802,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProposalResponse); i { + switch v := v.(*QueryConstitutionResponse); i { case 0: return &v.state case 1: @@ -8957,7 +9814,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProposalsRequest); i { + switch v := v.(*QueryProposalRequest); i { case 0: return &v.state case 1: @@ -8969,7 +9826,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryProposalsResponse); i { + switch v := v.(*QueryProposalResponse); i { case 0: return &v.state case 1: @@ -8981,7 +9838,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryVoteRequest); i { + switch v := v.(*QueryProposalsRequest); i { case 0: return &v.state case 1: @@ -8993,7 +9850,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryVoteResponse); i { + switch v := v.(*QueryProposalsResponse); i { case 0: return &v.state case 1: @@ -9005,7 +9862,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryVotesRequest); i { + switch v := v.(*QueryVoteRequest); i { case 0: return &v.state case 1: @@ -9017,7 +9874,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryVotesResponse); i { + switch v := v.(*QueryVoteResponse); i { case 0: return &v.state case 1: @@ -9029,7 +9886,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryParamsRequest); i { + switch v := v.(*QueryVotesRequest); i { case 0: return &v.state case 1: @@ -9041,7 +9898,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryParamsResponse); i { + switch v := v.(*QueryVotesResponse); i { case 0: return &v.state case 1: @@ -9053,7 +9910,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryDepositRequest); i { + switch v := v.(*QueryParamsRequest); i { case 0: return &v.state case 1: @@ -9065,7 +9922,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryDepositResponse); i { + switch v := v.(*QueryParamsResponse); i { case 0: return &v.state case 1: @@ -9077,7 +9934,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryDepositsRequest); i { + switch v := v.(*QueryDepositRequest); i { case 0: return &v.state case 1: @@ -9089,7 +9946,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryDepositsResponse); i { + switch v := v.(*QueryDepositResponse); i { case 0: return &v.state case 1: @@ -9101,7 +9958,7 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryTallyResultRequest); i { + switch v := v.(*QueryDepositsRequest); i { case 0: return &v.state case 1: @@ -9113,6 +9970,30 @@ func file_cosmos_gov_v1_query_proto_init() { } } file_cosmos_gov_v1_query_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryDepositsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_gov_v1_query_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryTallyResultRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_gov_v1_query_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryTallyResultResponse); i { case 0: return &v.state @@ -9131,7 +10012,7 @@ func file_cosmos_gov_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_gov_v1_query_proto_rawDesc, NumEnums: 0, - NumMessages: 16, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cosmos/gov/v1/query_grpc.pb.go b/api/cosmos/gov/v1/query_grpc.pb.go index dea418e542e1..4b134d291c7d 100644 --- a/api/cosmos/gov/v1/query_grpc.pb.go +++ b/api/cosmos/gov/v1/query_grpc.pb.go @@ -22,6 +22,7 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type QueryClient interface { + Constitution(ctx context.Context, in *QueryConstitutionRequest, opts ...grpc.CallOption) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(ctx context.Context, in *QueryProposalRequest, opts ...grpc.CallOption) (*QueryProposalResponse, error) // Proposals queries all proposals based on given status. @@ -48,6 +49,15 @@ func NewQueryClient(cc grpc.ClientConnInterface) QueryClient { return &queryClient{cc} } +func (c *queryClient) Constitution(ctx context.Context, in *QueryConstitutionRequest, opts ...grpc.CallOption) (*QueryConstitutionResponse, error) { + out := new(QueryConstitutionResponse) + err := c.cc.Invoke(ctx, "/cosmos.gov.v1.Query/Constitution", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) Proposal(ctx context.Context, in *QueryProposalRequest, opts ...grpc.CallOption) (*QueryProposalResponse, error) { out := new(QueryProposalResponse) err := c.cc.Invoke(ctx, "/cosmos.gov.v1.Query/Proposal", in, out, opts...) @@ -124,6 +134,7 @@ func (c *queryClient) TallyResult(ctx context.Context, in *QueryTallyResultReque // All implementations must embed UnimplementedQueryServer // for forward compatibility type QueryServer interface { + Constitution(context.Context, *QueryConstitutionRequest) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(context.Context, *QueryProposalRequest) (*QueryProposalResponse, error) // Proposals queries all proposals based on given status. @@ -147,6 +158,9 @@ type QueryServer interface { type UnimplementedQueryServer struct { } +func (UnimplementedQueryServer) Constitution(context.Context, *QueryConstitutionRequest) (*QueryConstitutionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Constitution not implemented") +} func (UnimplementedQueryServer) Proposal(context.Context, *QueryProposalRequest) (*QueryProposalResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Proposal not implemented") } @@ -184,6 +198,24 @@ func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) { s.RegisterService(&Query_ServiceDesc, srv) } +func _Query_Constitution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryConstitutionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Constitution(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cosmos.gov.v1.Query/Constitution", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Constitution(ctx, req.(*QueryConstitutionRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_Proposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProposalRequest) if err := dec(in); err != nil { @@ -335,6 +367,10 @@ var Query_ServiceDesc = grpc.ServiceDesc{ ServiceName: "cosmos.gov.v1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Constitution", + Handler: _Query_Constitution_Handler, + }, { MethodName: "Proposal", Handler: _Query_Proposal_Handler, diff --git a/proto/cosmos/gov/v1/query.proto b/proto/cosmos/gov/v1/query.proto index c4c815f3b250..233f5f7e0974 100644 --- a/proto/cosmos/gov/v1/query.proto +++ b/proto/cosmos/gov/v1/query.proto @@ -12,6 +12,10 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; // Query defines the gRPC querier service for gov module service Query { + rpc Constitution (QueryConstitutionRequest) returns (QueryConstitutionResponse) { + option (google.api.http).get = "/cosmos/gov/v1/constitution"; + } + // Proposal queries proposal details based on ProposalID. rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) { option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}"; @@ -53,6 +57,15 @@ service Query { } } +// QueryConstitutionRequest is the request type for the Query/Constitution RPC method +message QueryConstitutionRequest { +} + +// QueryConstitutionResponse is the response type for the Query/Constitution RPC method +message QueryConstitutionResponse { + string constitution = 1; +} + // QueryProposalRequest is the request type for the Query/Proposal RPC method. message QueryProposalRequest { // proposal_id defines the unique id of the proposal. @@ -103,6 +116,8 @@ message QueryVoteResponse { Vote vote = 1; } + + // QueryVotesRequest is the request type for the Query/Votes RPC method. message QueryVotesRequest { // proposal_id defines the unique id of the proposal. @@ -188,3 +203,5 @@ message QueryTallyResultResponse { // tally defines the requested tally. TallyResult tally = 1; } + + diff --git a/x/gov/keeper/constitution.go b/x/gov/keeper/constitution.go new file mode 100644 index 000000000000..921a621b6c14 --- /dev/null +++ b/x/gov/keeper/constitution.go @@ -0,0 +1,12 @@ +package keeper + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (keeper Keeper) GetConstitution(ctx sdk.Context) (constitution string) { + store := ctx.KVStore(keeper.storeKey) + bz := store.Get([]byte("constitution")) + + return string(bz) +} diff --git a/x/gov/keeper/grpc_query.go b/x/gov/keeper/grpc_query.go index 7ebaf4a59e67..88f897c1db88 100644 --- a/x/gov/keeper/grpc_query.go +++ b/x/gov/keeper/grpc_query.go @@ -17,6 +17,13 @@ import ( var _ v1.QueryServer = Keeper{} +func (q Keeper) Constitution(c context.Context, req *v1.QueryConstitutionRequest) (*v1.QueryConstitutionResponse, error) { + ctx := sdk.UnwrapSDKContext(c) + constitution := q.GetConstitution(ctx) + + return &v1.QueryConstitutionResponse{Constitution: constitution}, nil +} + // Proposal returns proposal details based on ProposalID func (q Keeper) Proposal(c context.Context, req *v1.QueryProposalRequest) (*v1.QueryProposalResponse, error) { if req == nil { diff --git a/x/gov/types/v1/query.pb.go b/x/gov/types/v1/query.pb.go index 0895a1cce497..cd687bfd1bf7 100644 --- a/x/gov/types/v1/query.pb.go +++ b/x/gov/types/v1/query.pb.go @@ -30,6 +30,88 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +// QueryConstitutionRequest is the request type for the Query/Constitution RPC method +type QueryConstitutionRequest struct { +} + +func (m *QueryConstitutionRequest) Reset() { *m = QueryConstitutionRequest{} } +func (m *QueryConstitutionRequest) String() string { return proto.CompactTextString(m) } +func (*QueryConstitutionRequest) ProtoMessage() {} +func (*QueryConstitutionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_46a436d1109b50d0, []int{0} +} +func (m *QueryConstitutionRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryConstitutionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryConstitutionRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryConstitutionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryConstitutionRequest.Merge(m, src) +} +func (m *QueryConstitutionRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryConstitutionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryConstitutionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryConstitutionRequest proto.InternalMessageInfo + +// QueryConstitutionResponse is the response type for the Query/Constitution RPC method +type QueryConstitutionResponse struct { + Constitution string `protobuf:"bytes,1,opt,name=constitution,proto3" json:"constitution,omitempty"` +} + +func (m *QueryConstitutionResponse) Reset() { *m = QueryConstitutionResponse{} } +func (m *QueryConstitutionResponse) String() string { return proto.CompactTextString(m) } +func (*QueryConstitutionResponse) ProtoMessage() {} +func (*QueryConstitutionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_46a436d1109b50d0, []int{1} +} +func (m *QueryConstitutionResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryConstitutionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryConstitutionResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryConstitutionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryConstitutionResponse.Merge(m, src) +} +func (m *QueryConstitutionResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryConstitutionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryConstitutionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryConstitutionResponse proto.InternalMessageInfo + +func (m *QueryConstitutionResponse) GetConstitution() string { + if m != nil { + return m.Constitution + } + return "" +} + // QueryProposalRequest is the request type for the Query/Proposal RPC method. type QueryProposalRequest struct { // proposal_id defines the unique id of the proposal. @@ -40,7 +122,7 @@ func (m *QueryProposalRequest) Reset() { *m = QueryProposalRequest{} } func (m *QueryProposalRequest) String() string { return proto.CompactTextString(m) } func (*QueryProposalRequest) ProtoMessage() {} func (*QueryProposalRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{0} + return fileDescriptor_46a436d1109b50d0, []int{2} } func (m *QueryProposalRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -85,7 +167,7 @@ func (m *QueryProposalResponse) Reset() { *m = QueryProposalResponse{} } func (m *QueryProposalResponse) String() string { return proto.CompactTextString(m) } func (*QueryProposalResponse) ProtoMessage() {} func (*QueryProposalResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{1} + return fileDescriptor_46a436d1109b50d0, []int{3} } func (m *QueryProposalResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -137,7 +219,7 @@ func (m *QueryProposalsRequest) Reset() { *m = QueryProposalsRequest{} } func (m *QueryProposalsRequest) String() string { return proto.CompactTextString(m) } func (*QueryProposalsRequest) ProtoMessage() {} func (*QueryProposalsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{2} + return fileDescriptor_46a436d1109b50d0, []int{4} } func (m *QueryProposalsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -206,7 +288,7 @@ func (m *QueryProposalsResponse) Reset() { *m = QueryProposalsResponse{} func (m *QueryProposalsResponse) String() string { return proto.CompactTextString(m) } func (*QueryProposalsResponse) ProtoMessage() {} func (*QueryProposalsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{3} + return fileDescriptor_46a436d1109b50d0, []int{5} } func (m *QueryProposalsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -261,7 +343,7 @@ func (m *QueryVoteRequest) Reset() { *m = QueryVoteRequest{} } func (m *QueryVoteRequest) String() string { return proto.CompactTextString(m) } func (*QueryVoteRequest) ProtoMessage() {} func (*QueryVoteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{4} + return fileDescriptor_46a436d1109b50d0, []int{6} } func (m *QueryVoteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -314,7 +396,7 @@ func (m *QueryVoteResponse) Reset() { *m = QueryVoteResponse{} } func (m *QueryVoteResponse) String() string { return proto.CompactTextString(m) } func (*QueryVoteResponse) ProtoMessage() {} func (*QueryVoteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{5} + return fileDescriptor_46a436d1109b50d0, []int{7} } func (m *QueryVoteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -362,7 +444,7 @@ func (m *QueryVotesRequest) Reset() { *m = QueryVotesRequest{} } func (m *QueryVotesRequest) String() string { return proto.CompactTextString(m) } func (*QueryVotesRequest) ProtoMessage() {} func (*QueryVotesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{6} + return fileDescriptor_46a436d1109b50d0, []int{8} } func (m *QueryVotesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -417,7 +499,7 @@ func (m *QueryVotesResponse) Reset() { *m = QueryVotesResponse{} } func (m *QueryVotesResponse) String() string { return proto.CompactTextString(m) } func (*QueryVotesResponse) ProtoMessage() {} func (*QueryVotesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{7} + return fileDescriptor_46a436d1109b50d0, []int{9} } func (m *QueryVotesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -471,7 +553,7 @@ func (m *QueryParamsRequest) Reset() { *m = QueryParamsRequest{} } func (m *QueryParamsRequest) String() string { return proto.CompactTextString(m) } func (*QueryParamsRequest) ProtoMessage() {} func (*QueryParamsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{8} + return fileDescriptor_46a436d1109b50d0, []int{10} } func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -528,7 +610,7 @@ func (m *QueryParamsResponse) Reset() { *m = QueryParamsResponse{} } func (m *QueryParamsResponse) String() string { return proto.CompactTextString(m) } func (*QueryParamsResponse) ProtoMessage() {} func (*QueryParamsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{9} + return fileDescriptor_46a436d1109b50d0, []int{11} } func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -600,7 +682,7 @@ func (m *QueryDepositRequest) Reset() { *m = QueryDepositRequest{} } func (m *QueryDepositRequest) String() string { return proto.CompactTextString(m) } func (*QueryDepositRequest) ProtoMessage() {} func (*QueryDepositRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{10} + return fileDescriptor_46a436d1109b50d0, []int{12} } func (m *QueryDepositRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -653,7 +735,7 @@ func (m *QueryDepositResponse) Reset() { *m = QueryDepositResponse{} } func (m *QueryDepositResponse) String() string { return proto.CompactTextString(m) } func (*QueryDepositResponse) ProtoMessage() {} func (*QueryDepositResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{11} + return fileDescriptor_46a436d1109b50d0, []int{13} } func (m *QueryDepositResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -701,7 +783,7 @@ func (m *QueryDepositsRequest) Reset() { *m = QueryDepositsRequest{} } func (m *QueryDepositsRequest) String() string { return proto.CompactTextString(m) } func (*QueryDepositsRequest) ProtoMessage() {} func (*QueryDepositsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{12} + return fileDescriptor_46a436d1109b50d0, []int{14} } func (m *QueryDepositsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -755,7 +837,7 @@ func (m *QueryDepositsResponse) Reset() { *m = QueryDepositsResponse{} } func (m *QueryDepositsResponse) String() string { return proto.CompactTextString(m) } func (*QueryDepositsResponse) ProtoMessage() {} func (*QueryDepositsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{13} + return fileDescriptor_46a436d1109b50d0, []int{15} } func (m *QueryDepositsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -808,7 +890,7 @@ func (m *QueryTallyResultRequest) Reset() { *m = QueryTallyResultRequest func (m *QueryTallyResultRequest) String() string { return proto.CompactTextString(m) } func (*QueryTallyResultRequest) ProtoMessage() {} func (*QueryTallyResultRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{14} + return fileDescriptor_46a436d1109b50d0, []int{16} } func (m *QueryTallyResultRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -854,7 +936,7 @@ func (m *QueryTallyResultResponse) Reset() { *m = QueryTallyResultRespon func (m *QueryTallyResultResponse) String() string { return proto.CompactTextString(m) } func (*QueryTallyResultResponse) ProtoMessage() {} func (*QueryTallyResultResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_46a436d1109b50d0, []int{15} + return fileDescriptor_46a436d1109b50d0, []int{17} } func (m *QueryTallyResultResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -891,6 +973,8 @@ func (m *QueryTallyResultResponse) GetTally() *TallyResult { } func init() { + proto.RegisterType((*QueryConstitutionRequest)(nil), "cosmos.gov.v1.QueryConstitutionRequest") + proto.RegisterType((*QueryConstitutionResponse)(nil), "cosmos.gov.v1.QueryConstitutionResponse") proto.RegisterType((*QueryProposalRequest)(nil), "cosmos.gov.v1.QueryProposalRequest") proto.RegisterType((*QueryProposalResponse)(nil), "cosmos.gov.v1.QueryProposalResponse") proto.RegisterType((*QueryProposalsRequest)(nil), "cosmos.gov.v1.QueryProposalsRequest") @@ -912,68 +996,71 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1/query.proto", fileDescriptor_46a436d1109b50d0) } var fileDescriptor_46a436d1109b50d0 = []byte{ - // 964 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4b, 0x6f, 0xdc, 0x54, - 0x14, 0x8e, 0x27, 0x8f, 0xce, 0x9c, 0x34, 0x01, 0x4e, 0x1f, 0x19, 0x4c, 0x99, 0x06, 0x87, 0x26, - 0x81, 0x12, 0x5f, 0x26, 0x7d, 0x49, 0x50, 0x16, 0x0d, 0x25, 0x05, 0x89, 0x45, 0x98, 0x56, 0x2c, - 0xd8, 0x44, 0x4e, 0xc6, 0x32, 0x16, 0x13, 0x5f, 0x77, 0xee, 0x9d, 0x11, 0x21, 0x8d, 0x90, 0x2a, - 0x21, 0x58, 0x01, 0x12, 0x15, 0xf0, 0x43, 0xf8, 0x11, 0x2c, 0x2b, 0xd8, 0x20, 0x56, 0x28, 0xe1, - 0x87, 0x20, 0xdf, 0x7b, 0xec, 0xb1, 0x1d, 0x8f, 0x33, 0x53, 0x55, 0xac, 0x22, 0xdf, 0xfb, 0x9d, - 0xef, 0x7c, 0xe7, 0x79, 0x33, 0xf0, 0xf2, 0x2e, 0x17, 0x7b, 0x5c, 0x30, 0x8f, 0xf7, 0x59, 0xbf, - 0xc9, 0x1e, 0xf6, 0xdc, 0xee, 0xbe, 0x1d, 0x76, 0xb9, 0xe4, 0x38, 0xa7, 0xaf, 0x6c, 0x8f, 0xf7, - 0xed, 0x7e, 0xd3, 0x7c, 0x93, 0x90, 0x3b, 0x8e, 0x70, 0x35, 0x8e, 0xf5, 0x9b, 0x3b, 0xae, 0x74, - 0x9a, 0x2c, 0x74, 0x3c, 0x3f, 0x70, 0xa4, 0xcf, 0x03, 0x6d, 0x6a, 0x5e, 0xf2, 0x38, 0xf7, 0x3a, - 0x2e, 0x73, 0x42, 0x9f, 0x39, 0x41, 0xc0, 0xa5, 0xba, 0x14, 0x74, 0xbb, 0x90, 0xf5, 0x19, 0xf1, - 0xeb, 0x0b, 0x12, 0xb3, 0xad, 0xbe, 0x18, 0xb9, 0x57, 0x1f, 0xd6, 0x2d, 0x38, 0xff, 0x49, 0xe4, - 0x73, 0xab, 0xcb, 0x43, 0x2e, 0x9c, 0x4e, 0xcb, 0x7d, 0xd8, 0x73, 0x85, 0xc4, 0xcb, 0x30, 0x1b, - 0xd2, 0xd1, 0xb6, 0xdf, 0xae, 0x1b, 0x8b, 0xc6, 0xea, 0x54, 0x0b, 0xe2, 0xa3, 0x8f, 0xda, 0xd6, - 0xc7, 0x70, 0x21, 0x67, 0x28, 0x42, 0x1e, 0x08, 0x17, 0xaf, 0x41, 0x35, 0x86, 0x29, 0xb3, 0xd9, - 0xf5, 0x05, 0x3b, 0x13, 0xb1, 0x9d, 0x98, 0x24, 0x40, 0xeb, 0x87, 0x4a, 0x8e, 0x4e, 0xc4, 0x42, - 0x36, 0xe1, 0x85, 0x44, 0x88, 0x90, 0x8e, 0xec, 0x09, 0xc5, 0x3a, 0xbf, 0xfe, 0xea, 0x10, 0xd6, - 0xfb, 0x0a, 0xd4, 0x9a, 0x0f, 0x33, 0xdf, 0x68, 0xc3, 0x74, 0x9f, 0x4b, 0xb7, 0x5b, 0xaf, 0x2c, - 0x1a, 0xab, 0xb5, 0x8d, 0xfa, 0x1f, 0xbf, 0xad, 0x9d, 0x27, 0x82, 0x3b, 0xed, 0x76, 0xd7, 0x15, - 0xe2, 0xbe, 0xec, 0xfa, 0x81, 0xd7, 0xd2, 0x30, 0xbc, 0x09, 0xb5, 0xb6, 0x1b, 0x72, 0xe1, 0x4b, - 0xde, 0xad, 0x4f, 0x9e, 0x62, 0x33, 0x80, 0xe2, 0x26, 0xc0, 0xa0, 0x6c, 0xf5, 0x29, 0x95, 0x80, - 0xe5, 0x58, 0x6a, 0x54, 0x63, 0x5b, 0xf7, 0x02, 0xd5, 0xd8, 0xde, 0x72, 0x3c, 0x97, 0x62, 0x6d, - 0xa5, 0x2c, 0xad, 0x5f, 0x0d, 0xb8, 0x98, 0xcf, 0x08, 0x65, 0xf8, 0x06, 0xd4, 0xe2, 0xe0, 0xa2, - 0x64, 0x4c, 0x96, 0xa5, 0x78, 0x80, 0xc4, 0x7b, 0x19, 0x65, 0x15, 0xa5, 0x6c, 0xe5, 0x54, 0x65, - 0xda, 0x67, 0x46, 0xda, 0x2e, 0xbc, 0xa8, 0x94, 0x7d, 0xca, 0xa5, 0x3b, 0x6a, 0xbf, 0x8c, 0x9b, - 0x7f, 0xeb, 0x36, 0xbc, 0x94, 0x72, 0x42, 0x91, 0xaf, 0xc0, 0x54, 0x74, 0x4b, 0x7d, 0x75, 0x2e, - 0x17, 0xb4, 0x82, 0x2a, 0x80, 0xf5, 0x28, 0x65, 0x2d, 0x46, 0xd6, 0xb8, 0x59, 0x90, 0xa1, 0x67, - 0xa9, 0xdd, 0x77, 0x06, 0x60, 0xda, 0x3d, 0xa9, 0x7f, 0x43, 0xa7, 0x20, 0xae, 0x59, 0xa1, 0x7c, - 0x8d, 0x78, 0x7e, 0xb5, 0xba, 0x41, 0x4a, 0xb6, 0x9c, 0xae, 0xb3, 0x97, 0xc9, 0x84, 0x3a, 0xd8, - 0x96, 0xfb, 0xa1, 0x4e, 0x67, 0x2d, 0x32, 0x8b, 0x8e, 0x1e, 0xec, 0x87, 0xae, 0xf5, 0x73, 0x05, - 0xce, 0x65, 0xec, 0x28, 0x84, 0xbb, 0x30, 0xd7, 0xe7, 0xd2, 0x0f, 0xbc, 0x6d, 0x0d, 0xa6, 0x4a, - 0xbc, 0x72, 0x32, 0x14, 0x3f, 0xf0, 0xb4, 0xed, 0x46, 0xa5, 0x6e, 0xb4, 0xce, 0xf6, 0x53, 0x27, - 0x78, 0x0f, 0xe6, 0x69, 0x60, 0x62, 0x1a, 0x1d, 0xe1, 0xa5, 0x1c, 0xcd, 0x5d, 0x0d, 0x4a, 0xf1, - 0xcc, 0xb5, 0xd3, 0x47, 0x78, 0x07, 0xce, 0x4a, 0xa7, 0xd3, 0xd9, 0x8f, 0x69, 0x26, 0x15, 0x8d, - 0x99, 0xa3, 0x79, 0x10, 0x41, 0x52, 0x24, 0xb3, 0x72, 0x70, 0x80, 0x6b, 0x30, 0x43, 0xc6, 0x7a, - 0x56, 0x2f, 0xe4, 0x27, 0x49, 0x27, 0x80, 0x40, 0x56, 0x40, 0x79, 0x21, 0x69, 0x23, 0xb7, 0x56, - 0x66, 0x9d, 0x54, 0x46, 0x5e, 0x27, 0xd6, 0x87, 0xb4, 0x9f, 0x13, 0x7f, 0x54, 0x88, 0xb7, 0xe1, - 0x0c, 0x81, 0xa8, 0x04, 0x17, 0x8b, 0x73, 0xd7, 0x8a, 0x61, 0xd6, 0xd7, 0x59, 0xa6, 0xff, 0x7f, - 0x2a, 0x9e, 0x18, 0xb4, 0xe3, 0x07, 0x0a, 0x28, 0x98, 0x75, 0xa8, 0x92, 0xca, 0x78, 0x36, 0x86, - 0x45, 0x93, 0xe0, 0x9e, 0xdf, 0x84, 0xbc, 0x03, 0x0b, 0x4a, 0x95, 0xea, 0x92, 0x96, 0x2b, 0x7a, - 0x1d, 0x39, 0xc6, 0x23, 0x58, 0x3f, 0x69, 0x9b, 0x54, 0x68, 0x5a, 0xf5, 0x19, 0xd5, 0xa7, 0xb0, - 0x29, 0xc9, 0x44, 0x03, 0xd7, 0xff, 0xae, 0xc2, 0xb4, 0xa2, 0xc3, 0x6f, 0x0c, 0xa8, 0xc6, 0x2b, - 0x1c, 0x97, 0x72, 0x96, 0x45, 0xef, 0xb5, 0xf9, 0x7a, 0x39, 0x48, 0x6b, 0xb2, 0xec, 0xc7, 0x7f, - 0xfe, 0xfb, 0x53, 0x65, 0x15, 0x97, 0x59, 0xf6, 0x5f, 0x85, 0xe4, 0x91, 0x60, 0x07, 0xa9, 0x80, - 0x0f, 0xf1, 0x2b, 0xa8, 0x25, 0xcf, 0x0f, 0x96, 0xba, 0x88, 0xdb, 0xc9, 0xbc, 0x72, 0x0a, 0x8a, - 0x94, 0x2c, 0x2a, 0x25, 0x26, 0xd6, 0x87, 0x29, 0xc1, 0x6f, 0x0d, 0x98, 0x8a, 0x56, 0x22, 0x5e, - 0x2e, 0x62, 0x4c, 0xbd, 0x3d, 0xe6, 0xe2, 0x70, 0x00, 0x79, 0xbb, 0xad, 0xbc, 0xdd, 0xc4, 0xeb, - 0xa3, 0xc5, 0xcd, 0xd4, 0x12, 0x66, 0x07, 0xea, 0x25, 0x3a, 0xc4, 0xc7, 0x06, 0x4c, 0xab, 0x4d, - 0x8e, 0x43, 0x3d, 0x25, 0xe1, 0xbf, 0x56, 0x82, 0x20, 0x31, 0xd7, 0x95, 0x18, 0x1b, 0xdf, 0x1a, - 0x47, 0x0c, 0x3e, 0x82, 0x19, 0xda, 0x58, 0x85, 0x2e, 0x32, 0xfb, 0xdd, 0xb4, 0xca, 0x20, 0x24, - 0xe3, 0xaa, 0x92, 0x71, 0x05, 0x97, 0xf2, 0x32, 0x14, 0x8c, 0x1d, 0xa4, 0x1e, 0x88, 0x43, 0xfc, - 0xc5, 0x80, 0x33, 0x34, 0x83, 0x58, 0x48, 0x9e, 0xdd, 0x87, 0xe6, 0x52, 0x29, 0x86, 0x14, 0xbc, - 0xaf, 0x14, 0xbc, 0x87, 0xef, 0x8e, 0x98, 0x88, 0x78, 0xf6, 0xd9, 0x41, 0xb2, 0x1f, 0x0f, 0xf1, - 0x7b, 0x03, 0xaa, 0xf1, 0x42, 0xc1, 0x32, 0xb7, 0xa2, 0x74, 0x54, 0xf2, 0x3b, 0xc9, 0xba, 0xa5, - 0xc4, 0x35, 0x91, 0x8d, 0x29, 0x0e, 0x9f, 0x18, 0x30, 0x9b, 0x1a, 0x6e, 0x5c, 0x2e, 0x72, 0x77, - 0x72, 0xd9, 0x98, 0x2b, 0xa7, 0xe2, 0x9e, 0xb1, 0x7f, 0xd4, 0x72, 0xd9, 0xf8, 0xe0, 0xf7, 0xa3, - 0x86, 0xf1, 0xf4, 0xa8, 0x61, 0xfc, 0x73, 0xd4, 0x30, 0x7e, 0x3c, 0x6e, 0x4c, 0x3c, 0x3d, 0x6e, - 0x4c, 0xfc, 0x75, 0xdc, 0x98, 0xf8, 0xec, 0xaa, 0xe7, 0xcb, 0xcf, 0x7b, 0x3b, 0xf6, 0x2e, 0xdf, - 0x8b, 0x19, 0xf5, 0x9f, 0x35, 0xd1, 0xfe, 0x82, 0x7d, 0xa9, 0xe8, 0xa3, 0x2e, 0x10, 0xd1, 0xef, - 0x92, 0x19, 0xf5, 0xb3, 0xe1, 0xda, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9f, 0xe4, 0xf6, 0xe9, - 0xe0, 0x0c, 0x00, 0x00, + // 1023 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x5b, 0x6f, 0xdc, 0x44, + 0x14, 0x8e, 0x37, 0x97, 0x66, 0x4f, 0x2e, 0xc0, 0xe9, 0x25, 0xae, 0xdb, 0x6e, 0x83, 0x43, 0x93, + 0x40, 0x89, 0xcd, 0xa6, 0x37, 0x09, 0x8a, 0x50, 0xd3, 0x92, 0x82, 0xc4, 0x43, 0x70, 0x2b, 0x1e, + 0x78, 0x89, 0x9c, 0xac, 0x65, 0x2c, 0x36, 0x1e, 0x77, 0x67, 0x76, 0x45, 0x48, 0x23, 0xa4, 0x4a, + 0x5c, 0x9e, 0x00, 0x89, 0x0a, 0xf8, 0x21, 0xfc, 0x08, 0x1e, 0x2b, 0x78, 0xe1, 0x11, 0x25, 0xfc, + 0x10, 0xe4, 0x99, 0x63, 0xaf, 0xed, 0x78, 0x6f, 0x55, 0xd5, 0xa7, 0x95, 0x67, 0xbe, 0xf3, 0x9d, + 0xef, 0x9c, 0x39, 0x73, 0xce, 0x2c, 0x9c, 0xdf, 0x65, 0x7c, 0x8f, 0x71, 0xdb, 0x67, 0x1d, 0xbb, + 0x53, 0xb7, 0x1f, 0xb5, 0xbd, 0xd6, 0xbe, 0x15, 0xb5, 0x98, 0x60, 0x38, 0xa7, 0xb6, 0x2c, 0x9f, + 0x75, 0xac, 0x4e, 0xdd, 0x78, 0x8b, 0x90, 0x3b, 0x2e, 0xf7, 0x14, 0xce, 0xee, 0xd4, 0x77, 0x3c, + 0xe1, 0xd6, 0xed, 0xc8, 0xf5, 0x83, 0xd0, 0x15, 0x01, 0x0b, 0x95, 0xa9, 0x71, 0xd1, 0x67, 0xcc, + 0x6f, 0x7a, 0xb6, 0x1b, 0x05, 0xb6, 0x1b, 0x86, 0x4c, 0xc8, 0x4d, 0x4e, 0xbb, 0x0b, 0x79, 0x9f, + 0x31, 0xbf, 0xda, 0x20, 0x31, 0xdb, 0xf2, 0xcb, 0x26, 0xf7, 0xf2, 0xc3, 0x34, 0x40, 0xff, 0x34, + 0xf6, 0x79, 0x97, 0x85, 0x5c, 0x04, 0xa2, 0x1d, 0xf3, 0x39, 0xde, 0xa3, 0xb6, 0xc7, 0x85, 0xf9, + 0x01, 0x9c, 0x2f, 0xd9, 0xe3, 0x11, 0x0b, 0xb9, 0x87, 0x26, 0xcc, 0xee, 0x66, 0xd6, 0x75, 0x6d, + 0x51, 0x5b, 0xad, 0x3a, 0xb9, 0x35, 0xf3, 0x16, 0x9c, 0x91, 0x04, 0x5b, 0x2d, 0x16, 0x31, 0xee, + 0x36, 0x89, 0x18, 0x2f, 0xc3, 0x4c, 0x44, 0x4b, 0xdb, 0x41, 0x43, 0x9a, 0x4e, 0x38, 0x90, 0x2c, + 0x7d, 0xdc, 0x30, 0x3f, 0x81, 0xb3, 0x05, 0x43, 0xf2, 0x7a, 0x0d, 0xa6, 0x13, 0x98, 0x34, 0x9b, + 0x59, 0x5f, 0xb0, 0x72, 0xe9, 0xb4, 0x52, 0x93, 0x14, 0x68, 0xfe, 0x54, 0x29, 0xd0, 0xf1, 0x44, + 0xc8, 0x26, 0xbc, 0x92, 0x0a, 0xe1, 0xc2, 0x15, 0x6d, 0x2e, 0x59, 0xe7, 0xd7, 0x2f, 0xf5, 0x60, + 0x7d, 0x20, 0x41, 0xce, 0x7c, 0x94, 0xfb, 0x46, 0x0b, 0x26, 0x3b, 0x4c, 0x78, 0x2d, 0xbd, 0x12, + 0x67, 0x61, 0x43, 0xff, 0xeb, 0x8f, 0xb5, 0x33, 0x44, 0x70, 0xa7, 0xd1, 0x68, 0x79, 0x9c, 0x3f, + 0x10, 0xad, 0x20, 0xf4, 0x1d, 0x05, 0xc3, 0x9b, 0x50, 0x6d, 0x78, 0x11, 0xe3, 0x81, 0x60, 0x2d, + 0x7d, 0x7c, 0x80, 0x4d, 0x17, 0x8a, 0x9b, 0x00, 0xdd, 0x9a, 0xd0, 0x27, 0x64, 0x02, 0x96, 0x13, + 0xa9, 0x71, 0x01, 0x59, 0xaa, 0xd0, 0xa8, 0x80, 0xac, 0x2d, 0xd7, 0xf7, 0x28, 0x56, 0x27, 0x63, + 0x69, 0xfe, 0xae, 0xc1, 0xb9, 0x62, 0x46, 0x28, 0xc3, 0x37, 0xa0, 0x9a, 0x04, 0x17, 0x27, 0x63, + 0xbc, 0x5f, 0x8a, 0xbb, 0x48, 0xbc, 0x9f, 0x53, 0x56, 0x91, 0xca, 0x56, 0x06, 0x2a, 0x53, 0x3e, + 0x73, 0xd2, 0x76, 0xe1, 0x55, 0xa9, 0xec, 0x33, 0x26, 0xbc, 0x61, 0xeb, 0x65, 0xd4, 0xfc, 0x9b, + 0xb7, 0xe1, 0xb5, 0x8c, 0x13, 0x8a, 0x7c, 0x05, 0x26, 0xe2, 0x5d, 0xaa, 0xab, 0xd3, 0x85, 0xa0, + 0x25, 0x54, 0x02, 0xcc, 0xc7, 0x19, 0x6b, 0x3e, 0xb4, 0xc6, 0xcd, 0x92, 0x0c, 0x3d, 0xcf, 0xd9, + 0xfd, 0xa0, 0x01, 0x66, 0xdd, 0x93, 0xfa, 0x37, 0x55, 0x0a, 0x92, 0x33, 0x2b, 0x95, 0xaf, 0x10, + 0x2f, 0xee, 0xac, 0x6e, 0x90, 0x92, 0x2d, 0xb7, 0xe5, 0xee, 0xe5, 0x32, 0x21, 0x17, 0xb6, 0xc5, + 0x7e, 0xe4, 0x51, 0x63, 0x00, 0xb5, 0xf4, 0x70, 0x3f, 0xf2, 0xcc, 0x5f, 0x2b, 0x70, 0x3a, 0x67, + 0x47, 0x21, 0xdc, 0x83, 0xb9, 0x0e, 0x13, 0x41, 0xe8, 0x6f, 0x2b, 0x30, 0x9d, 0xc4, 0x85, 0x93, + 0xa1, 0x04, 0xa1, 0xaf, 0x6c, 0x37, 0x2a, 0xba, 0xe6, 0xcc, 0x76, 0x32, 0x2b, 0x78, 0x1f, 0xe6, + 0xe9, 0xc2, 0x24, 0x34, 0x2a, 0xc2, 0x8b, 0x05, 0x9a, 0x7b, 0x0a, 0x94, 0xe1, 0x99, 0x6b, 0x64, + 0x97, 0xf0, 0x0e, 0xcc, 0x0a, 0xb7, 0xd9, 0xdc, 0x4f, 0x68, 0xc6, 0x25, 0x8d, 0x51, 0xa0, 0x79, + 0x18, 0x43, 0x32, 0x24, 0x33, 0xa2, 0xbb, 0x80, 0x6b, 0x30, 0x45, 0xc6, 0xea, 0xae, 0x9e, 0x2d, + 0xde, 0x24, 0x95, 0x00, 0x02, 0x99, 0x21, 0xe5, 0x85, 0xa4, 0x0d, 0x5d, 0x5a, 0xb9, 0x76, 0x52, + 0x19, 0xba, 0x9d, 0x98, 0x1f, 0x51, 0x7f, 0x4e, 0xfd, 0xd1, 0x41, 0xbc, 0x03, 0xa7, 0x08, 0x44, + 0x47, 0x70, 0xae, 0x3c, 0x77, 0x4e, 0x02, 0x33, 0xbf, 0xc9, 0x33, 0xbd, 0xfc, 0x5b, 0xf1, 0x54, + 0xa3, 0x1e, 0xdf, 0x55, 0x40, 0xc1, 0xac, 0xc3, 0x34, 0xa9, 0x4c, 0xee, 0x46, 0xaf, 0x68, 0x52, + 0xdc, 0x8b, 0xbb, 0x21, 0xef, 0xc2, 0x82, 0x54, 0x25, 0xab, 0xc4, 0xf1, 0x78, 0xbb, 0x29, 0x46, + 0x18, 0x82, 0xfa, 0x49, 0xdb, 0xf4, 0x84, 0x26, 0x65, 0x9d, 0xd1, 0xf9, 0x94, 0x16, 0x25, 0x99, + 0x28, 0xe0, 0xfa, 0x71, 0x15, 0x26, 0x25, 0x1d, 0x7e, 0xa7, 0xc1, 0x6c, 0x76, 0xa4, 0xe3, 0x4a, + 0xc1, 0xba, 0xd7, 0x83, 0xc0, 0x58, 0x1d, 0x0c, 0x54, 0xfa, 0xcc, 0xa5, 0x27, 0x7f, 0xff, 0xf7, + 0x4b, 0xe5, 0x12, 0x5e, 0xb0, 0xf3, 0x6f, 0x92, 0xec, 0xf3, 0x00, 0xbf, 0xd5, 0x60, 0x3a, 0x99, + 0x25, 0xb8, 0x54, 0xc6, 0x5d, 0x78, 0x38, 0x18, 0x6f, 0xf4, 0x07, 0x91, 0x73, 0x4b, 0x3a, 0x5f, + 0xc5, 0xe5, 0x82, 0xf3, 0x74, 0x5a, 0xd9, 0x07, 0x99, 0xcc, 0x1f, 0xe2, 0xd7, 0x50, 0x4d, 0xe7, + 0x20, 0xf6, 0x75, 0x91, 0xd4, 0xb5, 0x71, 0x65, 0x00, 0x8a, 0x94, 0x2c, 0x4a, 0x25, 0x06, 0xea, + 0xbd, 0x94, 0xe0, 0xf7, 0x1a, 0x4c, 0xc4, 0xbd, 0x19, 0x2f, 0x97, 0x31, 0x66, 0x86, 0xa0, 0xb1, + 0xd8, 0x1b, 0x40, 0xde, 0x6e, 0x4b, 0x6f, 0x37, 0xf1, 0xfa, 0x70, 0x71, 0xdb, 0x72, 0x1a, 0xd8, + 0x07, 0x72, 0x24, 0x1e, 0xe2, 0x13, 0x0d, 0x26, 0xe5, 0x48, 0xc1, 0x9e, 0x9e, 0xd2, 0xf0, 0x5f, + 0xef, 0x83, 0x20, 0x31, 0xd7, 0xa5, 0x18, 0x0b, 0xdf, 0x1e, 0x45, 0x0c, 0x3e, 0x86, 0x29, 0x6a, + 0x9d, 0xa5, 0x2e, 0x72, 0x83, 0xc6, 0x30, 0xfb, 0x41, 0x48, 0xc6, 0x55, 0x29, 0xe3, 0x0a, 0x2e, + 0x15, 0x65, 0x48, 0x98, 0x7d, 0x90, 0x99, 0x54, 0x87, 0xf8, 0x9b, 0x06, 0xa7, 0xa8, 0x19, 0x60, + 0x29, 0x79, 0xbe, 0x31, 0x1b, 0x4b, 0x7d, 0x31, 0xa4, 0xe0, 0xae, 0x54, 0xf0, 0x3e, 0xbe, 0x37, + 0x64, 0x22, 0x92, 0x26, 0x64, 0x1f, 0xa4, 0x8d, 0xfa, 0x10, 0x7f, 0xd4, 0x60, 0x3a, 0xe9, 0x6c, + 0xd8, 0xcf, 0x2d, 0xef, 0x7b, 0x55, 0x8a, 0xcd, 0xd1, 0xbc, 0x25, 0xc5, 0xd5, 0xd1, 0x1e, 0x51, + 0x1c, 0x3e, 0xd5, 0x60, 0x26, 0xd3, 0x65, 0x70, 0xb9, 0xcc, 0xdd, 0xc9, 0xae, 0x67, 0xac, 0x0c, + 0xc4, 0x3d, 0x67, 0xfd, 0xc8, 0x2e, 0xb7, 0xf1, 0xe1, 0x9f, 0x47, 0x35, 0xed, 0xd9, 0x51, 0x4d, + 0xfb, 0xf7, 0xa8, 0xa6, 0xfd, 0x7c, 0x5c, 0x1b, 0x7b, 0x76, 0x5c, 0x1b, 0xfb, 0xe7, 0xb8, 0x36, + 0xf6, 0xf9, 0x55, 0x3f, 0x10, 0x5f, 0xb4, 0x77, 0xac, 0x5d, 0xb6, 0x97, 0x30, 0xaa, 0x9f, 0x35, + 0xde, 0xf8, 0xd2, 0xfe, 0x4a, 0xd2, 0xc7, 0x55, 0xc0, 0xe3, 0x7f, 0x5f, 0x53, 0xf2, 0xcf, 0xd1, + 0xb5, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x34, 0xfb, 0x7f, 0x51, 0xc6, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -988,6 +1075,7 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { + Constitution(ctx context.Context, in *QueryConstitutionRequest, opts ...grpc.CallOption) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(ctx context.Context, in *QueryProposalRequest, opts ...grpc.CallOption) (*QueryProposalResponse, error) // Proposals queries all proposals based on given status. @@ -1014,6 +1102,15 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } +func (c *queryClient) Constitution(ctx context.Context, in *QueryConstitutionRequest, opts ...grpc.CallOption) (*QueryConstitutionResponse, error) { + out := new(QueryConstitutionResponse) + err := c.cc.Invoke(ctx, "/cosmos.gov.v1.Query/Constitution", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) Proposal(ctx context.Context, in *QueryProposalRequest, opts ...grpc.CallOption) (*QueryProposalResponse, error) { out := new(QueryProposalResponse) err := c.cc.Invoke(ctx, "/cosmos.gov.v1.Query/Proposal", in, out, opts...) @@ -1088,6 +1185,7 @@ func (c *queryClient) TallyResult(ctx context.Context, in *QueryTallyResultReque // QueryServer is the server API for Query service. type QueryServer interface { + Constitution(context.Context, *QueryConstitutionRequest) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(context.Context, *QueryProposalRequest) (*QueryProposalResponse, error) // Proposals queries all proposals based on given status. @@ -1110,6 +1208,9 @@ type QueryServer interface { type UnimplementedQueryServer struct { } +func (*UnimplementedQueryServer) Constitution(ctx context.Context, req *QueryConstitutionRequest) (*QueryConstitutionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Constitution not implemented") +} func (*UnimplementedQueryServer) Proposal(ctx context.Context, req *QueryProposalRequest) (*QueryProposalResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Proposal not implemented") } @@ -1139,6 +1240,24 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } +func _Query_Constitution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryConstitutionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Constitution(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cosmos.gov.v1.Query/Constitution", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Constitution(ctx, req.(*QueryConstitutionRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_Proposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProposalRequest) if err := dec(in); err != nil { @@ -1287,6 +1406,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "cosmos.gov.v1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Constitution", + Handler: _Query_Constitution_Handler, + }, { MethodName: "Proposal", Handler: _Query_Proposal_Handler, @@ -1324,6 +1447,59 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Metadata: "cosmos/gov/v1/query.proto", } +func (m *QueryConstitutionRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryConstitutionRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryConstitutionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryConstitutionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryConstitutionResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryConstitutionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Constitution) > 0 { + i -= len(m.Constitution) + copy(dAtA[i:], m.Constitution) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Constitution))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *QueryProposalRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1983,6 +2159,28 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *QueryConstitutionRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryConstitutionResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Constitution) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func (m *QueryProposalRequest) Size() (n int) { if m == nil { return 0 @@ -2248,6 +2446,138 @@ func sovQuery(x uint64) (n int) { func sozQuery(x uint64) (n int) { return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *QueryConstitutionRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryConstitutionRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryConstitutionRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryConstitutionResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryConstitutionResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryConstitutionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Constitution", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Constitution = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *QueryProposalRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/gov/types/v1/query.pb.gw.go b/x/gov/types/v1/query.pb.gw.go index 18bdf04d96c7..7babaed36ba0 100644 --- a/x/gov/types/v1/query.pb.gw.go +++ b/x/gov/types/v1/query.pb.gw.go @@ -33,6 +33,24 @@ var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage var _ = metadata.Join +func request_Query_Constitution_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryConstitutionRequest + var metadata runtime.ServerMetadata + + msg, err := client.Constitution(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Constitution_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryConstitutionRequest + var metadata runtime.ServerMetadata + + msg, err := server.Constitution(ctx, &protoReq) + return msg, metadata, err + +} + func request_Query_Proposal_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryProposalRequest var metadata runtime.ServerMetadata @@ -533,6 +551,29 @@ func local_request_Query_TallyResult_0(ctx context.Context, marshaler runtime.Ma // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { + mux.Handle("GET", pattern_Query_Constitution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_Constitution_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Constitution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_Proposal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -758,6 +799,26 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc // "QueryClient" to call the correct interceptors. func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { + mux.Handle("GET", pattern_Query_Constitution_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_Constitution_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Constitution_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_Proposal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -922,6 +983,8 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( + pattern_Query_Constitution_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cosmos", "gov", "v1", "constitution"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_Proposal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"cosmos", "gov", "v1", "proposals", "proposal_id"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_Proposals_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cosmos", "gov", "v1", "proposals"}, "", runtime.AssumeColonVerbOpt(false))) @@ -940,6 +1003,8 @@ var ( ) var ( + forward_Query_Constitution_0 = runtime.ForwardResponseMessage + forward_Query_Proposal_0 = runtime.ForwardResponseMessage forward_Query_Proposals_0 = runtime.ForwardResponseMessage From 1dcc129e0f474c4268bd2362433f29b35eccd2df Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 18:18:31 +0700 Subject: [PATCH 10/14] constitution (draft) --- proto/cosmos/gov/v1/genesis.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/cosmos/gov/v1/genesis.proto b/proto/cosmos/gov/v1/genesis.proto index f71d4a6615fe..a3377ccca4b1 100644 --- a/proto/cosmos/gov/v1/genesis.proto +++ b/proto/cosmos/gov/v1/genesis.proto @@ -34,5 +34,6 @@ message GenesisState { // The constitution allows builders to lay a foundation and define purpose. // This is an immutable string set in genesis. // There are no amendments, to go outside of scope, just fork. + // constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. string constitution = 9; } From f606fa65da161570779cc6170d2d20eed90d437c Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 29 Nov 2022 18:44:25 +0700 Subject: [PATCH 11/14] constitution (draft) --- proto/cosmos/gov/v1/query.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/cosmos/gov/v1/query.proto b/proto/cosmos/gov/v1/query.proto index 233f5f7e0974..1d82bf6e53b8 100644 --- a/proto/cosmos/gov/v1/query.proto +++ b/proto/cosmos/gov/v1/query.proto @@ -12,6 +12,7 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; // Query defines the gRPC querier service for gov module service Query { + // Constitution queries the chain's constitution. rpc Constitution (QueryConstitutionRequest) returns (QueryConstitutionResponse) { option (google.api.http).get = "/cosmos/gov/v1/constitution"; } From 8f6b1a779f4fb6b11e98c1bbd1679b28570e1880 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Wed, 21 Dec 2022 03:10:45 +0700 Subject: [PATCH 12/14] constitution --- api/cosmos/gov/v1/genesis.pulsar.go | 1 + api/cosmos/gov/v1/query_grpc.pb.go | 2 ++ proto/cosmos/gov/v1/query.proto | 9 ++------- proto/cosmos/upgrade/v1beta1/upgrade.proto | 6 +++--- x/gov/types/v1/genesis.pb.go | 1 + x/gov/types/v1/query.pb.go | 2 ++ 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/api/cosmos/gov/v1/genesis.pulsar.go b/api/cosmos/gov/v1/genesis.pulsar.go index 635a061d23ac..bb1ffe03274e 100644 --- a/api/cosmos/gov/v1/genesis.pulsar.go +++ b/api/cosmos/gov/v1/genesis.pulsar.go @@ -1261,6 +1261,7 @@ type GenesisState struct { // The constitution allows builders to lay a foundation and define purpose. // This is an immutable string set in genesis. // There are no amendments, to go outside of scope, just fork. + // constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. Constitution string `protobuf:"bytes,9,opt,name=constitution,proto3" json:"constitution,omitempty"` } diff --git a/api/cosmos/gov/v1/query_grpc.pb.go b/api/cosmos/gov/v1/query_grpc.pb.go index 4b134d291c7d..abe2b949e1bc 100644 --- a/api/cosmos/gov/v1/query_grpc.pb.go +++ b/api/cosmos/gov/v1/query_grpc.pb.go @@ -22,6 +22,7 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type QueryClient interface { + // Constitution queries the chain's constitution. Constitution(ctx context.Context, in *QueryConstitutionRequest, opts ...grpc.CallOption) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(ctx context.Context, in *QueryProposalRequest, opts ...grpc.CallOption) (*QueryProposalResponse, error) @@ -134,6 +135,7 @@ func (c *queryClient) TallyResult(ctx context.Context, in *QueryTallyResultReque // All implementations must embed UnimplementedQueryServer // for forward compatibility type QueryServer interface { + // Constitution queries the chain's constitution. Constitution(context.Context, *QueryConstitutionRequest) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(context.Context, *QueryProposalRequest) (*QueryProposalResponse, error) diff --git a/proto/cosmos/gov/v1/query.proto b/proto/cosmos/gov/v1/query.proto index 9f6ce6fe9579..ce308c7db24c 100644 --- a/proto/cosmos/gov/v1/query.proto +++ b/proto/cosmos/gov/v1/query.proto @@ -13,7 +13,7 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; // Query defines the gRPC querier service for gov module service Query { // Constitution queries the chain's constitution. - rpc Constitution (QueryConstitutionRequest) returns (QueryConstitutionResponse) { + rpc Constitution(QueryConstitutionRequest) returns (QueryConstitutionResponse) { option (google.api.http).get = "/cosmos/gov/v1/constitution"; } @@ -59,8 +59,7 @@ service Query { } // QueryConstitutionRequest is the request type for the Query/Constitution RPC method -message QueryConstitutionRequest { -} +message QueryConstitutionRequest {} // QueryConstitutionResponse is the response type for the Query/Constitution RPC method message QueryConstitutionResponse { @@ -119,8 +118,6 @@ message QueryVoteResponse { Vote vote = 1; } - - // QueryVotesRequest is the request type for the Query/Votes RPC method. message QueryVotesRequest { // proposal_id defines the unique id of the proposal. @@ -207,5 +204,3 @@ message QueryTallyResultResponse { // tally defines the requested tally. TallyResult tally = 1; } - - diff --git a/proto/cosmos/upgrade/v1beta1/upgrade.proto b/proto/cosmos/upgrade/v1beta1/upgrade.proto index 8605c8854c94..85f48080cb8b 100644 --- a/proto/cosmos/upgrade/v1beta1/upgrade.proto +++ b/proto/cosmos/upgrade/v1beta1/upgrade.proto @@ -54,13 +54,13 @@ message SoftwareUpgradeProposal { option (gogoproto.equal) = true; // title of the proposal - string title = 1; + string title = 1; // description of the proposal string description = 2; // plan of the proposal - Plan plan = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + Plan plan = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } // CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software @@ -74,7 +74,7 @@ message CancelSoftwareUpgradeProposal { option (gogoproto.equal) = true; // title of the proposal - string title = 1; + string title = 1; // description of the proposal string description = 2; diff --git a/x/gov/types/v1/genesis.pb.go b/x/gov/types/v1/genesis.pb.go index 55ffe533e655..01328605743b 100644 --- a/x/gov/types/v1/genesis.pb.go +++ b/x/gov/types/v1/genesis.pb.go @@ -48,6 +48,7 @@ type GenesisState struct { // The constitution allows builders to lay a foundation and define purpose. // This is an immutable string set in genesis. // There are no amendments, to go outside of scope, just fork. + // constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. Constitution string `protobuf:"bytes,9,opt,name=constitution,proto3" json:"constitution,omitempty"` } diff --git a/x/gov/types/v1/query.pb.go b/x/gov/types/v1/query.pb.go index bc4e58360357..099611e21d89 100644 --- a/x/gov/types/v1/query.pb.go +++ b/x/gov/types/v1/query.pb.go @@ -1078,6 +1078,7 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { + // Constitution queries the chain's constitution. Constitution(ctx context.Context, in *QueryConstitutionRequest, opts ...grpc.CallOption) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(ctx context.Context, in *QueryProposalRequest, opts ...grpc.CallOption) (*QueryProposalResponse, error) @@ -1188,6 +1189,7 @@ func (c *queryClient) TallyResult(ctx context.Context, in *QueryTallyResultReque // QueryServer is the server API for Query service. type QueryServer interface { + // Constitution queries the chain's constitution. Constitution(context.Context, *QueryConstitutionRequest) (*QueryConstitutionResponse, error) // Proposal queries proposal details based on ProposalID. Proposal(context.Context, *QueryProposalRequest) (*QueryProposalResponse, error) From 9277e6381be605383e67bc46c8d1162819419d35 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 26 Dec 2022 00:05:00 +0700 Subject: [PATCH 13/14] Update README.md --- x/gov/README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/x/gov/README.md b/x/gov/README.md index 7ba745b55d81..41de2469b872 100644 --- a/x/gov/README.md +++ b/x/gov/README.md @@ -277,6 +277,30 @@ Validators and full nodes can use an automation tool, such as [Cosmovisor](https * set expectations for validators * define the chain's relationship to "meatspace" entities, like a foundation or corporation +Since this is more of a social feature than a technical feature, we'll now get into some items that may have been useful to have in a genesis constitution: + +* What limitations on governance exist, if any? + * is it okay for the community to slash the wallet of a whale that they no longer feel that they want around? (viz: Juno Proposal 4 and 16) + * can governance "socially slash" a validator who is using unapproved MEV? (viz: commonwealth.im/osmosis) + * In the event of an economic emergency, what should validators do? + * Terra crash of May, 2022, saw validators choose to run a new binary with code that had not been approved by governance, because the governance token had been inflated to nothing. +* What is the purpose of the chain, specifically? + * best example of this is the Cosmos hub, where different founding groups, have different interpertations of the purpose of the network. + +This genesis entry, "constitution" hasn't been designed for existing chains, who should likely just ratify a constitution using their governance system. Instead, this is for new chains. It will allow for validators to have a much clearer idea of purpose and the expecations placed on them while operating thier nodes. Likewise, for community members, the constitution will give them some idea of what to expect from both the "chain team" and the validators, respectively. + +This constitution is designed to be immutable, and placed only in genesis, though that could change over time by a pull request to the cosmos-sdk that allows for the constitution to be changed by governance. Communities whishing to make amendments to their original constitution should use the governance mechanism and a "signaling proposal" to do exactly that. + +**Ideal use scenario for a cosmos chain constitution** + +As a chain developer, you decide that you'd like to provide clarity to your key user groups: + +* validators +* token holders +* developers (yourself) + +You use the constitution to immutably store some Markdown in genesis, so that when difficult questions come up, the constutituon can provide guidance to the community. + ### Proposals From 32dd5d3b02aaa80df7d8280844f8e16b7bc06fd0 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Tue, 27 Dec 2022 17:35:58 +0700 Subject: [PATCH 14/14] Update proto/cosmos/gov/v1/genesis.proto Co-authored-by: Julien Robert --- proto/cosmos/gov/v1/genesis.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proto/cosmos/gov/v1/genesis.proto b/proto/cosmos/gov/v1/genesis.proto index a3377ccca4b1..2054600b9c0f 100644 --- a/proto/cosmos/gov/v1/genesis.proto +++ b/proto/cosmos/gov/v1/genesis.proto @@ -35,5 +35,7 @@ message GenesisState { // This is an immutable string set in genesis. // There are no amendments, to go outside of scope, just fork. // constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. + // + // Since: cosmos-sdk 0.48 string constitution = 9; }