From d3d6448eca2c255adcd2176a4e18d21d6c798603 Mon Sep 17 00:00:00 2001 From: Marko Date: Wed, 12 Jun 2024 15:50:58 +0200 Subject: [PATCH] fix(x/gov): limit execution in gov (#20348) Co-authored-by: Alexander Peters --- api/cosmos/circuit/v1/tx_grpc.pb.go | 2 +- api/cosmos/gov/v1/gov.pulsar.go | 211 +++++++++++++------- x/accounts/go.mod | 2 +- x/circuit/types/tx.pb.go | 2 +- x/gov/CHANGELOG.md | 1 + x/gov/README.md | 8 +- x/gov/go.mod | 4 +- x/gov/keeper/abci.go | 32 ++- x/gov/migrations/v6/store.go | 3 +- x/gov/proto/cosmos/gov/v1/gov.proto | 6 +- x/gov/simulation/genesis.go | 1 + x/gov/types/v1/gov.pb.go | 291 ++++++++++++++++------------ x/gov/types/v1/params.go | 44 +++-- 13 files changed, 363 insertions(+), 244 deletions(-) diff --git a/api/cosmos/circuit/v1/tx_grpc.pb.go b/api/cosmos/circuit/v1/tx_grpc.pb.go index a3b22335e577..2b4b95d37fe2 100644 --- a/api/cosmos/circuit/v1/tx_grpc.pb.go +++ b/api/cosmos/circuit/v1/tx_grpc.pb.go @@ -83,7 +83,7 @@ type MsgServer interface { // TripCircuitBreaker pauses processing of Msg's in the state machine. TripCircuitBreaker(context.Context, *MsgTripCircuitBreaker) (*MsgTripCircuitBreakerResponse, error) // ResetCircuitBreaker resumes processing of Msg's in the state machine that - // have been been paused using TripCircuitBreaker. + // have been paused using TripCircuitBreaker. ResetCircuitBreaker(context.Context, *MsgResetCircuitBreaker) (*MsgResetCircuitBreakerResponse, error) mustEmbedUnimplementedMsgServer() } diff --git a/api/cosmos/gov/v1/gov.pulsar.go b/api/cosmos/gov/v1/gov.pulsar.go index d4322dfe9e08..f0dd9abb81f3 100644 --- a/api/cosmos/gov/v1/gov.pulsar.go +++ b/api/cosmos/gov/v1/gov.pulsar.go @@ -6645,6 +6645,7 @@ var ( fd_Params_optimistic_rejected_threshold protoreflect.FieldDescriptor fd_Params_yes_quorum protoreflect.FieldDescriptor fd_Params_expedited_quorum protoreflect.FieldDescriptor + fd_Params_proposal_execution_gas protoreflect.FieldDescriptor ) func init() { @@ -6671,6 +6672,7 @@ func init() { fd_Params_optimistic_rejected_threshold = md_Params.Fields().ByName("optimistic_rejected_threshold") fd_Params_yes_quorum = md_Params.Fields().ByName("yes_quorum") fd_Params_expedited_quorum = md_Params.Fields().ByName("expedited_quorum") + fd_Params_proposal_execution_gas = md_Params.Fields().ByName("proposal_execution_gas") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -6864,6 +6866,12 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } + if x.ProposalExecutionGas != uint64(0) { + value := protoreflect.ValueOfUint64(x.ProposalExecutionGas) + if !f(fd_Params_proposal_execution_gas, value) { + return + } + } } // Has reports whether a field is populated. @@ -6921,6 +6929,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.YesQuorum != "" case "cosmos.gov.v1.Params.expedited_quorum": return x.ExpeditedQuorum != "" + case "cosmos.gov.v1.Params.proposal_execution_gas": + return x.ProposalExecutionGas != uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.Params")) @@ -6979,6 +6989,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.YesQuorum = "" case "cosmos.gov.v1.Params.expedited_quorum": x.ExpeditedQuorum = "" + case "cosmos.gov.v1.Params.proposal_execution_gas": + x.ProposalExecutionGas = uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.Params")) @@ -7067,6 +7079,9 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "cosmos.gov.v1.Params.expedited_quorum": value := x.ExpeditedQuorum return protoreflect.ValueOfString(value) + case "cosmos.gov.v1.Params.proposal_execution_gas": + value := x.ProposalExecutionGas + return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.Params")) @@ -7135,6 +7150,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.YesQuorum = value.Interface().(string) case "cosmos.gov.v1.Params.expedited_quorum": x.ExpeditedQuorum = value.Interface().(string) + case "cosmos.gov.v1.Params.proposal_execution_gas": + x.ProposalExecutionGas = value.Uint() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.Params")) @@ -7218,6 +7235,8 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field yes_quorum of message cosmos.gov.v1.Params is not mutable")) case "cosmos.gov.v1.Params.expedited_quorum": panic(fmt.Errorf("field expedited_quorum of message cosmos.gov.v1.Params is not mutable")) + case "cosmos.gov.v1.Params.proposal_execution_gas": + panic(fmt.Errorf("field proposal_execution_gas of message cosmos.gov.v1.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.Params")) @@ -7279,6 +7298,8 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfString("") case "cosmos.gov.v1.Params.expedited_quorum": return protoreflect.ValueOfString("") + case "cosmos.gov.v1.Params.proposal_execution_gas": + return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.gov.v1.Params")) @@ -7435,6 +7456,9 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if l > 0 { n += 2 + l + runtime.Sov(uint64(l)) } + if x.ProposalExecutionGas != 0 { + n += 2 + runtime.Sov(uint64(x.ProposalExecutionGas)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -7464,6 +7488,13 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.ProposalExecutionGas != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ProposalExecutionGas)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb0 + } if len(x.ExpeditedQuorum) > 0 { i -= len(x.ExpeditedQuorum) copy(dAtA[i:], x.ExpeditedQuorum) @@ -8374,6 +8405,25 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } x.ExpeditedQuorum = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 22: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProposalExecutionGas", wireType) + } + x.ProposalExecutionGas = 0 + 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++ + x.ProposalExecutionGas |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -10084,7 +10134,8 @@ type Params struct { YesQuorum string `protobuf:"bytes,20,opt,name=yes_quorum,json=yesQuorum,proto3" json:"yes_quorum,omitempty"` // Minimum percentage of total stake needed to vote for a result to be // considered valid for an expedited proposal. - ExpeditedQuorum string `protobuf:"bytes,21,opt,name=expedited_quorum,json=expeditedQuorum,proto3" json:"expedited_quorum,omitempty"` + ExpeditedQuorum string `protobuf:"bytes,21,opt,name=expedited_quorum,json=expeditedQuorum,proto3" json:"expedited_quorum,omitempty"` + ProposalExecutionGas uint64 `protobuf:"varint,22,opt,name=proposal_execution_gas,json=proposalExecutionGas,proto3" json:"proposal_execution_gas,omitempty"` } func (x *Params) Reset() { @@ -10254,6 +10305,13 @@ func (x *Params) GetExpeditedQuorum() string { return "" } +func (x *Params) GetProposalExecutionGas() uint64 { + if x != nil { + return x.ProposalExecutionGas + } + return 0 +} + // MessageBasedParams defines the parameters of specific messages in a proposal. // It is used to define the parameters of a proposal that is based on a specific message. // Once a message has message based params, it only supports a standard proposal type. @@ -10511,7 +10569,7 @@ var file_cosmos_gov_v1_gov_proto_rawDesc = []byte{ 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0d, 0x76, 0x65, 0x74, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x3a, 0x02, 0x18, 0x01, - 0x22, 0xff, 0x0c, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, + 0x22, 0xc7, 0x0d, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, @@ -10612,78 +10670,83 @@ var file_cosmos_gov_v1_gov_proto_rawDesc = []byte{ 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xda, 0xb4, 0x2d, 0x0c, - 0x78, 0x2f, 0x67, 0x6f, 0x76, 0x20, 0x76, 0x30, 0x2e, 0x32, 0x2e, 0x30, 0x52, 0x0f, 0x65, 0x78, - 0x70, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x3a, 0x13, 0xd2, - 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, - 0x34, 0x37, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x61, - 0x73, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x6f, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x98, 0xdf, 0x1f, - 0x01, 0x52, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, - 0x26, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, - 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x2d, 0x0a, 0x0a, 0x79, 0x65, 0x73, 0x5f, 0x71, - 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, - 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x09, 0x79, 0x65, 0x73, - 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x0e, 0x76, 0x65, 0x74, 0x6f, 0x5f, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, - 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0d, 0x76, 0x65, - 0x74, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x3a, 0x10, 0xd2, 0xb4, 0x2d, - 0x0c, 0x78, 0x2f, 0x67, 0x6f, 0x76, 0x20, 0x76, 0x30, 0x2e, 0x32, 0x2e, 0x30, 0x2a, 0xa7, 0x01, - 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, - 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x52, 0x4f, - 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, - 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x48, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, - 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, - 0x54, 0x49, 0x4d, 0x49, 0x53, 0x54, 0x49, 0x43, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x52, - 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x45, - 0x44, 0x49, 0x54, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xfa, 0x01, 0x0a, 0x0a, 0x56, 0x6f, 0x74, 0x65, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, - 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, - 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, - 0x13, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x53, - 0x54, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, - 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x56, - 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x10, 0x03, 0x12, - 0x15, 0x0a, 0x11, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x48, 0x52, 0x45, 0x45, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, - 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x56, 0x45, - 0x54, 0x4f, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x55, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x4f, - 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x50, 0x41, 0x4d, 0x10, 0x05, - 0x1a, 0x02, 0x10, 0x01, 0x2a, 0xce, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x52, 0x4f, 0x50, 0x4f, - 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x50, 0x4f, - 0x53, 0x49, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, - 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x56, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x02, 0x12, - 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, - 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, - 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x4f, - 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x10, 0x05, 0x42, 0x99, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x47, 0x6f, 0x76, - 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, + 0x78, 0x2f, 0x67, 0x6f, 0x76, 0x20, 0x76, 0x31, 0x2e, 0x30, 0x2e, 0x30, 0x52, 0x0f, 0x65, 0x78, + 0x70, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x46, 0x0a, + 0x16, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x42, 0x10, 0xda, + 0xb4, 0x2d, 0x0c, 0x78, 0x2f, 0x67, 0x6f, 0x76, 0x20, 0x76, 0x30, 0x2e, 0x32, 0x2e, 0x30, 0x52, + 0x14, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x61, 0x73, 0x3a, 0x13, 0xd2, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x37, 0x22, 0xa8, 0x02, 0x0a, 0x12, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x61, 0x73, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x04, 0x98, 0xdf, 0x1f, 0x01, 0x52, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, + 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, + 0x2d, 0x0a, 0x0a, 0x79, 0x65, 0x73, 0x5f, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x44, 0x65, 0x63, 0x52, 0x09, 0x79, 0x65, 0x73, 0x51, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x2c, + 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, + 0x63, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x0e, + 0x76, 0x65, 0x74, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0d, 0x76, 0x65, 0x74, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x3a, 0x10, 0xd2, 0xb4, 0x2d, 0x0c, 0x78, 0x2f, 0x67, 0x6f, 0x76, 0x20, 0x76, + 0x30, 0x2e, 0x32, 0x2e, 0x30, 0x2a, 0xa7, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, + 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, + 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x48, 0x4f, 0x49, + 0x43, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x54, 0x49, 0x43, + 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x44, 0x49, 0x54, 0x45, 0x44, 0x10, 0x04, 0x2a, + 0xfa, 0x01, 0x0a, 0x0a, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, + 0x0a, 0x17, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x56, + 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x59, 0x45, 0x53, 0x10, 0x01, + 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x53, 0x54, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x13, + 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x57, + 0x4f, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x4f, 0x54, 0x45, 0x5f, + 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x45, 0x10, 0x03, 0x12, 0x1c, + 0x0a, 0x18, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, + 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x56, 0x45, 0x54, 0x4f, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, + 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x55, 0x52, + 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x50, 0x41, 0x4d, 0x10, 0x05, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0xce, 0x01, 0x0a, + 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1f, 0x0a, 0x1b, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x49, + 0x4f, 0x44, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x56, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, + 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, + 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, + 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x42, 0x99, 0x01, + 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x42, 0x08, 0x47, 0x6f, 0x76, 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/x/accounts/go.mod b/x/accounts/go.mod index 56fa7562f60a..e0d0e7bc36e3 100644 --- a/x/accounts/go.mod +++ b/x/accounts/go.mod @@ -8,6 +8,7 @@ require ( cosmossdk.io/core v0.12.1-0.20231114100755-569e3ff6a0d7 cosmossdk.io/core/testing v0.0.0-00010101000000-000000000000 cosmossdk.io/depinject v1.0.0-alpha.4 + cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 cosmossdk.io/x/tx v0.13.3 github.com/cosmos/cosmos-sdk v0.51.0 github.com/cosmos/gogoproto v1.5.0 @@ -27,7 +28,6 @@ require ( cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc // indirect cosmossdk.io/x/accounts/defaults/lockup v0.0.0-20240417181816-5e7aae0db1f5 cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 // indirect - cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 // indirect filippo.io/edwards25519 v1.1.0 // indirect diff --git a/x/circuit/types/tx.pb.go b/x/circuit/types/tx.pb.go index 667cce9d9d7a..61b184831ac3 100644 --- a/x/circuit/types/tx.pb.go +++ b/x/circuit/types/tx.pb.go @@ -453,7 +453,7 @@ type MsgServer interface { // TripCircuitBreaker pauses processing of Msg's in the state machine. TripCircuitBreaker(context.Context, *MsgTripCircuitBreaker) (*MsgTripCircuitBreakerResponse, error) // ResetCircuitBreaker resumes processing of Msg's in the state machine that - // have been been paused using TripCircuitBreaker. + // have been paused using TripCircuitBreaker. ResetCircuitBreaker(context.Context, *MsgResetCircuitBreaker) (*MsgResetCircuitBreakerResponse, error) } diff --git a/x/gov/CHANGELOG.md b/x/gov/CHANGELOG.md index 4570b966a1b5..231a520171a9 100644 --- a/x/gov/CHANGELOG.md +++ b/x/gov/CHANGELOG.md @@ -56,6 +56,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [#18762](https://github.com/cosmos/cosmos-sdk/pull/18762) Add multiple choice proposals. * [#18856](https://github.com/cosmos/cosmos-sdk/pull/18856) Add `ProposalCancelMaxPeriod` parameters. * [#19167](https://github.com/cosmos/cosmos-sdk/pull/19167) Add `YesQuorum` parameter. +* [#20348](https://github.com/cosmos/cosmos-sdk/pull/20348) Limit gov execution of proposals to a max gas limit. The limit was added to parameters and can be modified. With this version the default is set to 10 million gas. Before it was infinite gas. ### Client Breaking Changes diff --git a/x/gov/README.md b/x/gov/README.md index b8bf1383e689..b8890b501aaa 100644 --- a/x/gov/README.md +++ b/x/gov/README.md @@ -24,7 +24,7 @@ they don't vote themselves. deposits if the proposal was accepted or rejected. If the proposal was vetoed, or never entered voting period (minimum deposit not reached within deposit period), the deposit is burned. This module is in use on the Cosmos Hub (a.k.a [gaia](https://github.com/cosmos/gaia)). -Features that may be added in the future are described in [Future Improvements](#future-improvements). + ## Contents @@ -278,6 +278,12 @@ There are three parameters that define if the deposit of a proposal should be bu > Note: These parameters are modifiable via governance. +#### Execution + +Execution is the process of executing the messages contained in a proposal. The execution phase will commence after the proposal has been accepted by the network. The messages contained in the proposal will be executed in the order they were submitted. + +Execution has a upper limit on how much gas can be consumed in a single block. This limit is defined by the `ProposalExecutionGas` parameter. + ## State ### Constitution diff --git a/x/gov/go.mod b/x/gov/go.mod index c049416fa50d..3a8b004bbe88 100644 --- a/x/gov/go.mod +++ b/x/gov/go.mod @@ -13,7 +13,9 @@ require ( cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.1-0.20240418092142-896cdf1971bc cosmossdk.io/x/accounts v0.0.0-20240226161501-23359a0b6d91 // indirect + cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 cosmossdk.io/x/bank v0.0.0-20240226161501-23359a0b6d91 + cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/protocolpool v0.0.0-20230925135524-a1bc045b3190 cosmossdk.io/x/staking v0.0.0-00010101000000-000000000000 github.com/chzyer/readline v1.5.1 @@ -39,8 +41,6 @@ require ( require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.34.1-20240312114316-c0d3497e35d6.1 // indirect cosmossdk.io/x/accounts/defaults/lockup v0.0.0-20240417181816-5e7aae0db1f5 // indirect - cosmossdk.io/x/auth v0.0.0-00010101000000-000000000000 - cosmossdk.io/x/consensus v0.0.0-00010101000000-000000000000 // indirect cosmossdk.io/x/tx v0.13.3 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect diff --git a/x/gov/keeper/abci.go b/x/gov/keeper/abci.go index 02183342d5a5..f45c3d4c0a66 100644 --- a/x/gov/keeper/abci.go +++ b/x/gov/keeper/abci.go @@ -35,6 +35,11 @@ func (k Keeper) EndBlocker(ctx context.Context) error { return err } + params, err := k.Params.Get(ctx) + if err != nil { + return err + } + for _, prop := range inactiveProps { proposal, err := k.Proposals.Get(ctx, prop.Key.K2()) if err != nil { @@ -61,10 +66,6 @@ func (k Keeper) EndBlocker(ctx context.Context) error { return err } - params, err := k.Params.Get(ctx) - if err != nil { - return err - } if !params.BurnProposalDepositPrevote { err = k.RefundAndDeleteDeposits(ctx, proposal.Id) // refund deposit if proposal got removed without getting 100% of the proposal } else { @@ -77,7 +78,7 @@ func (k Keeper) EndBlocker(ctx context.Context) error { // called when proposal become inactive // call hook when proposal become inactive - if err := k.BranchService.Execute(ctx, func(ctx context.Context) error { + if err = k.BranchService.Execute(ctx, func(ctx context.Context) error { return k.Hooks().AfterProposalFailedMinDeposit(ctx, proposal.Id) }); err != nil { // purposely ignoring the error here not to halt the chain if the hook fails @@ -193,16 +194,10 @@ func (k Keeper) EndBlocker(ctx context.Context) error { // Messages may mutate state thus we use a cached context. If one of // the handlers fails, no state mutation is written and the error // message is logged. - if err := k.BranchService.Execute(ctx, func(ctx context.Context) error { + _, err = k.BranchService.ExecuteWithGasLimit(ctx, params.ProposalExecutionGas, func(ctx context.Context) error { // execute all messages for idx, msg = range messages { if _, err := safeExecuteHandler(ctx, msg, k.MsgRouterService); err != nil { - // `idx` and `err` are populated with the msg index and error. - proposal.Status = v1.StatusFailed - proposal.FailedReason = err.Error() - tagValue = types.AttributeValueProposalFailed - logMsg = fmt.Sprintf("passed, but msg %d (%s) failed on execution: %s", idx, sdk.MsgTypeURL(msg), err) - return err } } @@ -212,7 +207,14 @@ func (k Keeper) EndBlocker(ctx context.Context) error { logMsg = "passed" return nil - }); err != nil { + }) + if err != nil { + // `idx` and `err` are populated with the msg index and error. + proposal.Status = v1.StatusFailed + proposal.FailedReason = err.Error() + tagValue = types.AttributeValueProposalFailed + logMsg = fmt.Sprintf("passed, but msg %d (%s) failed on execution: %s", idx, sdk.MsgTypeURL(msg), err) + break // We do not anything with the error. Returning an error halts the chain, and proposal struct is already updated. } case !burnDeposits && (proposal.ProposalType == v1.ProposalType_PROPOSAL_TYPE_EXPEDITED || @@ -222,10 +224,6 @@ func (k Keeper) EndBlocker(ctx context.Context) error { // once the regular voting period expires again, the tally is repeated // according to the regular proposal rules. proposal.ProposalType = v1.ProposalType_PROPOSAL_TYPE_STANDARD - params, err := k.Params.Get(ctx) - if err != nil { - return err - } endTime := proposal.VotingStartTime.Add(*params.VotingPeriod) proposal.VotingEndTime = &endTime diff --git a/x/gov/migrations/v6/store.go b/x/gov/migrations/v6/store.go index f45388e89aeb..7a05b6730447 100644 --- a/x/gov/migrations/v6/store.go +++ b/x/gov/migrations/v6/store.go @@ -11,7 +11,7 @@ import ( var votingPeriodProposalKeyPrefix = collections.NewPrefix(4) // VotingPeriodProposalKeyPrefix stores which proposals are on voting period. -// MigrateStore performs in-place store migrations from v5 (v0.50) to v6 (v0.51). The +// MigrateStore performs in-place store migrations from v5 (v0.50) to v6 (v0.52). The // migration includes: // // Addition of new field in params to store types of proposals that can be submitted. @@ -56,6 +56,7 @@ func MigrateStore(ctx context.Context, storeService corestoretypes.KVStoreServic govParams.OptimisticAuthorizedAddresses = defaultParams.OptimisticAuthorizedAddresses govParams.OptimisticRejectedThreshold = defaultParams.OptimisticRejectedThreshold govParams.ProposalCancelMaxPeriod = defaultParams.ProposalCancelMaxPeriod + govParams.ProposalExecutionGas = defaultParams.ProposalExecutionGas return paramsCollection.Set(ctx, govParams) } diff --git a/x/gov/proto/cosmos/gov/v1/gov.proto b/x/gov/proto/cosmos/gov/v1/gov.proto index e402e5cff0be..0a76009c4179 100644 --- a/x/gov/proto/cosmos/gov/v1/gov.proto +++ b/x/gov/proto/cosmos/gov/v1/gov.proto @@ -342,7 +342,9 @@ message Params { // Minimum percentage of total stake needed to vote for a result to be // considered valid for an expedited proposal. - string expedited_quorum = 21 [(cosmos_proto.scalar) = "cosmos.Dec", (cosmos_proto.field_added_in) = "x/gov v0.2.0"]; + string expedited_quorum = 21 [(cosmos_proto.scalar) = "cosmos.Dec", (cosmos_proto.field_added_in) = "x/gov v1.0.0"]; + + uint64 proposal_execution_gas = 22 [(cosmos_proto.field_added_in) = "x/gov v0.2.0"]; } // MessageBasedParams defines the parameters of specific messages in a proposal. @@ -365,4 +367,4 @@ message MessageBasedParams { // Minimum value of Veto votes to Total votes ratio for proposal to be vetoed. string veto_threshold = 4 [(cosmos_proto.scalar) = "cosmos.Dec"]; -} \ No newline at end of file +} diff --git a/x/gov/simulation/genesis.go b/x/gov/simulation/genesis.go index f029f692f07d..6363a3a5548d 100644 --- a/x/gov/simulation/genesis.go +++ b/x/gov/simulation/genesis.go @@ -194,6 +194,7 @@ func RandomizedGenState(simState *module.SimulationState) { minDepositRatio.String(), optimisticRejectedThreshold.String(), []string{}, + 10_000_000, ), ) diff --git a/x/gov/types/v1/gov.pb.go b/x/gov/types/v1/gov.pb.go index 80797e0381ec..c1d9c97e3e76 100644 --- a/x/gov/types/v1/gov.pb.go +++ b/x/gov/types/v1/gov.pb.go @@ -1003,7 +1003,8 @@ type Params struct { YesQuorum string `protobuf:"bytes,20,opt,name=yes_quorum,json=yesQuorum,proto3" json:"yes_quorum,omitempty"` // Minimum percentage of total stake needed to vote for a result to be // considered valid for an expedited proposal. - ExpeditedQuorum string `protobuf:"bytes,21,opt,name=expedited_quorum,json=expeditedQuorum,proto3" json:"expedited_quorum,omitempty"` + ExpeditedQuorum string `protobuf:"bytes,21,opt,name=expedited_quorum,json=expeditedQuorum,proto3" json:"expedited_quorum,omitempty"` + ProposalExecutionGas uint64 `protobuf:"varint,22,opt,name=proposal_execution_gas,json=proposalExecutionGas,proto3" json:"proposal_execution_gas,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -1186,6 +1187,13 @@ func (m *Params) GetExpeditedQuorum() string { return "" } +func (m *Params) GetProposalExecutionGas() uint64 { + if m != nil { + return m.ProposalExecutionGas + } + return 0 +} + // MessageBasedParams defines the parameters of specific messages in a proposal. // It is used to define the parameters of a proposal that is based on a specific message. // Once a message has message based params, it only supports a standard proposal type. @@ -1291,131 +1299,133 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1/gov.proto", fileDescriptor_e05cb1c0d030febb) } var fileDescriptor_e05cb1c0d030febb = []byte{ - // 1971 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcf, 0x6f, 0xdb, 0xc8, - 0x15, 0x0e, 0x25, 0x59, 0xb6, 0x9e, 0x25, 0x99, 0x1e, 0xdb, 0x6b, 0xc6, 0x5e, 0xcb, 0x8e, 0x50, - 0x2c, 0xdc, 0xec, 0x5a, 0xb2, 0xb3, 0x75, 0xbb, 0x4d, 0x37, 0x07, 0xc9, 0x62, 0x36, 0x0c, 0x62, - 0x4b, 0xa5, 0x18, 0x27, 0x69, 0x51, 0x10, 0xb4, 0x39, 0xb1, 0xb9, 0x2b, 0x72, 0x54, 0x72, 0x64, - 0xc7, 0xfd, 0x2b, 0xf6, 0xd8, 0x53, 0xd1, 0x5b, 0xf7, 0xd8, 0x43, 0xd0, 0x7b, 0x6f, 0x8b, 0x1e, - 0x8a, 0x45, 0x4e, 0xc5, 0x02, 0x4d, 0x8b, 0xe4, 0x50, 0x60, 0xff, 0x84, 0xa2, 0x40, 0x8b, 0x19, - 0x0e, 0x45, 0xea, 0x87, 0x63, 0x79, 0xd1, 0x4b, 0x22, 0xcf, 0xfb, 0xbe, 0x6f, 0xde, 0xbc, 0x5f, - 0x33, 0x12, 0x2c, 0x1f, 0x93, 0xc0, 0x25, 0x41, 0xf5, 0x84, 0x9c, 0x55, 0xcf, 0x76, 0xd8, 0x7f, - 0x95, 0xae, 0x4f, 0x28, 0x41, 0x85, 0xd0, 0x50, 0x61, 0x2b, 0x67, 0x3b, 0x2b, 0x25, 0x81, 0x3b, - 0xb2, 0x02, 0x5c, 0x3d, 0xdb, 0x39, 0xc2, 0xd4, 0xda, 0xa9, 0x1e, 0x13, 0xc7, 0x0b, 0xe1, 0x2b, - 0x8b, 0x27, 0xe4, 0x84, 0xf0, 0x8f, 0x55, 0xf6, 0x49, 0xac, 0xae, 0x9f, 0x10, 0x72, 0xd2, 0xc1, - 0x55, 0xfe, 0xd7, 0x51, 0xef, 0x79, 0x95, 0x3a, 0x2e, 0x0e, 0xa8, 0xe5, 0x76, 0x05, 0xe0, 0xe6, - 0x30, 0xc0, 0xf2, 0x2e, 0x84, 0xa9, 0x34, 0x6c, 0xb2, 0x7b, 0xbe, 0x45, 0x1d, 0x12, 0xed, 0x78, - 0x33, 0xf4, 0xc8, 0x0c, 0x37, 0x15, 0xde, 0x86, 0xa6, 0x79, 0xcb, 0x75, 0x3c, 0x52, 0xe5, 0xff, - 0x86, 0x4b, 0x65, 0x02, 0xe8, 0x09, 0x76, 0x4e, 0x4e, 0x29, 0xb6, 0x0f, 0x09, 0xc5, 0xcd, 0x2e, - 0x53, 0x42, 0x3b, 0x90, 0x25, 0xfc, 0x93, 0x22, 0x6d, 0x48, 0x9b, 0xc5, 0x3b, 0x37, 0x2b, 0x03, - 0xa7, 0xae, 0xc4, 0x50, 0x5d, 0x00, 0xd1, 0x07, 0x90, 0x3d, 0xe7, 0x42, 0x4a, 0x6a, 0x43, 0xda, - 0xcc, 0xd5, 0x8b, 0xaf, 0x5e, 0x6e, 0x81, 0x60, 0x35, 0xf0, 0xb1, 0x2e, 0xac, 0xe5, 0xdf, 0x4b, - 0x30, 0xdd, 0xc0, 0x5d, 0x12, 0x38, 0x14, 0xad, 0xc3, 0x6c, 0xd7, 0x27, 0x5d, 0x12, 0x58, 0x1d, - 0xd3, 0xb1, 0xf9, 0x5e, 0x19, 0x1d, 0xa2, 0x25, 0xcd, 0x46, 0x3f, 0x86, 0x9c, 0x1d, 0x62, 0x89, - 0x2f, 0x74, 0x95, 0x57, 0x2f, 0xb7, 0x16, 0x85, 0x6e, 0xcd, 0xb6, 0x7d, 0x1c, 0x04, 0x6d, 0xea, - 0x3b, 0xde, 0x89, 0x1e, 0x43, 0xd1, 0xa7, 0x90, 0xb5, 0x5c, 0xd2, 0xf3, 0xa8, 0x92, 0xde, 0x48, - 0x6f, 0xce, 0xc6, 0xfe, 0xb3, 0x34, 0x55, 0x44, 0x9a, 0x2a, 0x7b, 0xc4, 0xf1, 0xea, 0xb9, 0xaf, - 0x5f, 0xaf, 0xdf, 0xf8, 0xea, 0x5f, 0x7f, 0xbc, 0x2d, 0xe9, 0x82, 0x53, 0xfe, 0xf3, 0x34, 0xcc, - 0xb4, 0x84, 0x13, 0xa8, 0x08, 0xa9, 0xbe, 0x6b, 0x29, 0xc7, 0x46, 0xdb, 0x30, 0xe3, 0xe2, 0x20, - 0xb0, 0x4e, 0x70, 0xa0, 0xa4, 0xb8, 0xf8, 0x62, 0x25, 0xcc, 0x48, 0x25, 0xca, 0x48, 0xa5, 0xe6, - 0x5d, 0xe8, 0x7d, 0x14, 0xda, 0x85, 0x6c, 0x40, 0x2d, 0xda, 0x0b, 0x94, 0x34, 0x0f, 0xe6, 0xda, - 0x50, 0x30, 0xa3, 0xad, 0xda, 0x1c, 0xa4, 0x0b, 0x30, 0x7a, 0x00, 0xe8, 0xb9, 0xe3, 0x59, 0x1d, - 0x93, 0x5a, 0x9d, 0xce, 0x85, 0xe9, 0xe3, 0xa0, 0xd7, 0xa1, 0x4a, 0x66, 0x43, 0xda, 0x9c, 0xbd, - 0xb3, 0x32, 0x24, 0x61, 0x30, 0x88, 0xce, 0x11, 0xba, 0xcc, 0x59, 0x89, 0x15, 0x54, 0x83, 0xd9, - 0xa0, 0x77, 0xe4, 0x3a, 0xd4, 0x64, 0x65, 0xa6, 0x4c, 0x09, 0x89, 0x61, 0xaf, 0x8d, 0xa8, 0x06, - 0xeb, 0x99, 0x2f, 0xff, 0xb1, 0x2e, 0xe9, 0x10, 0x92, 0xd8, 0x32, 0x7a, 0x08, 0xb2, 0x88, 0xae, - 0x89, 0x3d, 0x3b, 0xd4, 0xc9, 0x4e, 0xa8, 0x53, 0x14, 0x4c, 0xd5, 0xb3, 0xb9, 0x96, 0x06, 0x05, - 0x4a, 0xa8, 0xd5, 0x31, 0xc5, 0xba, 0x32, 0x7d, 0x8d, 0x1c, 0xe5, 0x39, 0x35, 0x2a, 0xa0, 0x47, - 0x30, 0x7f, 0x46, 0xa8, 0xe3, 0x9d, 0x98, 0x01, 0xb5, 0x7c, 0x71, 0xbe, 0x99, 0x09, 0xfd, 0x9a, - 0x0b, 0xa9, 0x6d, 0xc6, 0xe4, 0x8e, 0x3d, 0x00, 0xb1, 0x14, 0x9f, 0x31, 0x37, 0xa1, 0x56, 0x21, - 0x24, 0x46, 0x47, 0x5c, 0x61, 0x45, 0x42, 0x2d, 0xdb, 0xa2, 0x96, 0x02, 0xac, 0x6c, 0xf5, 0xfe, - 0xdf, 0xe8, 0x87, 0x30, 0x45, 0x1d, 0xda, 0xc1, 0xca, 0x2c, 0xaf, 0xe7, 0x85, 0x6f, 0x5f, 0x6e, - 0xcd, 0x85, 0x27, 0xdf, 0x0a, 0xec, 0x2f, 0x36, 0xb6, 0x2b, 0x3f, 0xfa, 0x89, 0x1e, 0x22, 0xd0, - 0x16, 0x4c, 0x07, 0x3d, 0xd7, 0xb5, 0xfc, 0x0b, 0x25, 0x7f, 0x39, 0x38, 0xc2, 0xa0, 0xcf, 0x60, - 0x26, 0xec, 0x1d, 0xec, 0x2b, 0x05, 0x8e, 0xff, 0xf0, 0xb2, 0x66, 0x19, 0xa7, 0xd3, 0x27, 0xa3, - 0x8f, 0x21, 0x87, 0x5f, 0x74, 0xb1, 0xed, 0x50, 0x6c, 0x2b, 0xc5, 0x0d, 0x69, 0x73, 0xa6, 0xbe, - 0x34, 0xc2, 0xd8, 0xdd, 0x56, 0x24, 0x3d, 0xc6, 0xa1, 0x4f, 0xa0, 0xf0, 0xdc, 0x72, 0x3a, 0xd8, - 0x36, 0x7d, 0x6c, 0x05, 0xc4, 0x53, 0xe6, 0x2e, 0x71, 0x79, 0x77, 0x5b, 0xcf, 0x87, 0x48, 0x9d, - 0x03, 0x91, 0x0e, 0x85, 0xfe, 0x18, 0xa0, 0x17, 0x5d, 0xac, 0xc8, 0xbc, 0x4f, 0x56, 0x2f, 0xe9, - 0x13, 0xe3, 0xa2, 0x8b, 0xeb, 0xf2, 0xb7, 0x2f, 0xb7, 0xf2, 0x2f, 0xd8, 0x5c, 0xde, 0x38, 0xdb, - 0xae, 0xdc, 0xa9, 0x6c, 0xeb, 0xf9, 0x6e, 0xc2, 0x5e, 0xfe, 0x8b, 0x04, 0x0b, 0x11, 0x21, 0x9e, - 0x56, 0x01, 0x5a, 0x03, 0x08, 0x07, 0x96, 0x49, 0x3c, 0xcc, 0xdb, 0x3a, 0xa7, 0xe7, 0xc2, 0x95, - 0xa6, 0x87, 0x13, 0x66, 0x7a, 0x4e, 0xc2, 0x89, 0x13, 0x99, 0x8d, 0x73, 0x82, 0x6e, 0x41, 0x3e, - 0x32, 0x9f, 0xfa, 0x18, 0xf3, 0x86, 0xce, 0xe9, 0xb3, 0x02, 0xc0, 0x96, 0xd8, 0x4c, 0x13, 0x90, - 0xe7, 0xa4, 0xe7, 0xf3, 0x7e, 0xcd, 0xe9, 0x42, 0xf4, 0x3e, 0xe9, 0xf9, 0x09, 0x40, 0xd0, 0xb5, - 0x5c, 0xde, 0x8d, 0x7d, 0x40, 0xbb, 0x6b, 0xb9, 0x77, 0xe5, 0x57, 0x43, 0x47, 0x2b, 0xff, 0x27, - 0x0d, 0xb3, 0xc9, 0x86, 0xde, 0x82, 0xdc, 0x05, 0x0e, 0xcc, 0x63, 0x3e, 0xe1, 0xf8, 0x19, 0xea, - 0x72, 0x62, 0xdc, 0x6a, 0x6c, 0x55, 0x9f, 0xb9, 0xc0, 0xc1, 0x1e, 0x43, 0xa0, 0x5d, 0x28, 0x58, - 0x47, 0x01, 0xb5, 0x1c, 0x4f, 0x50, 0x52, 0x97, 0x50, 0xf2, 0x02, 0x16, 0xd2, 0x3e, 0x84, 0x19, - 0x8f, 0x08, 0x46, 0xfa, 0x12, 0xc6, 0xb4, 0x47, 0x42, 0xf0, 0x3d, 0x40, 0x1e, 0x31, 0xcf, 0x1d, - 0x7a, 0x6a, 0x9e, 0x61, 0x1a, 0xd1, 0x32, 0x97, 0xd0, 0xe6, 0x3c, 0xf2, 0xc4, 0xa1, 0xa7, 0x87, - 0x98, 0x0a, 0xfa, 0x27, 0x20, 0xc7, 0x69, 0x11, 0xe4, 0xa9, 0x91, 0x7b, 0x44, 0xf3, 0xa8, 0x5e, - 0xec, 0x27, 0x6b, 0x98, 0x49, 0xcf, 0xa3, 0x6d, 0xb3, 0xef, 0x62, 0x1a, 0xe7, 0x62, 0xcf, 0x4f, - 0x01, 0x25, 0x93, 0x29, 0xb8, 0xd3, 0x63, 0xb9, 0x72, 0x22, 0xc5, 0x21, 0xfb, 0x2e, 0xcc, 0x27, - 0xf2, 0x2c, 0xc8, 0x33, 0x63, 0xc9, 0x73, 0x71, 0xf6, 0x43, 0xee, 0x16, 0x00, 0xcb, 0xbd, 0x20, - 0xe5, 0xc6, 0x92, 0x72, 0x0c, 0xc1, 0xe1, 0xe5, 0x3f, 0x49, 0x90, 0x61, 0x35, 0x7c, 0xf5, 0x7d, - 0x59, 0x81, 0xa9, 0x33, 0x42, 0xf1, 0xd5, 0x77, 0x65, 0x08, 0x43, 0x3f, 0x83, 0xe9, 0xd0, 0xb7, - 0x40, 0xc9, 0xf0, 0x21, 0x7c, 0x6b, 0xa8, 0xe7, 0x46, 0xdf, 0x06, 0x7a, 0xc4, 0x18, 0x18, 0x72, - 0x53, 0x83, 0x43, 0xee, 0x61, 0x66, 0x26, 0x2d, 0x67, 0xca, 0x7f, 0x97, 0xa0, 0x20, 0x46, 0x75, - 0xcb, 0xf2, 0x2d, 0x37, 0x40, 0xcf, 0x60, 0xd6, 0x75, 0xbc, 0xfe, 0xe4, 0x97, 0xae, 0x9a, 0xfc, - 0x6b, 0x6c, 0xf2, 0x7f, 0xf7, 0x7a, 0x7d, 0x29, 0xc1, 0xfa, 0x88, 0xb8, 0x0e, 0xc5, 0x6e, 0x97, - 0x5e, 0xe8, 0xe0, 0x3a, 0x5e, 0x74, 0x17, 0xb8, 0x80, 0x5c, 0xeb, 0x45, 0x04, 0x32, 0xbb, 0xd8, - 0x77, 0x88, 0xcd, 0x03, 0xc1, 0x76, 0x18, 0x1e, 0xe0, 0x0d, 0xf1, 0x68, 0xaa, 0xff, 0xe0, 0xbb, - 0xd7, 0xeb, 0xef, 0x8f, 0x12, 0xe3, 0x4d, 0x7e, 0xcb, 0xe6, 0xbb, 0xec, 0x5a, 0x2f, 0xa2, 0x93, - 0x70, 0xfb, 0xdd, 0x94, 0x22, 0x95, 0x9f, 0x42, 0xfe, 0x90, 0xcf, 0x7d, 0x71, 0xba, 0x06, 0x88, - 0x7b, 0x20, 0xda, 0x5d, 0xba, 0x6a, 0xf7, 0x0c, 0x57, 0xcf, 0x87, 0xac, 0x84, 0xf2, 0xef, 0x24, - 0xd1, 0xf1, 0x42, 0xf9, 0x03, 0xc8, 0xfe, 0xba, 0x47, 0xfc, 0x9e, 0x2b, 0xda, 0x7d, 0xe4, 0x75, - 0x15, 0x5a, 0xd1, 0x47, 0x90, 0x63, 0xc5, 0x1c, 0x9c, 0x92, 0x8e, 0x7d, 0xc9, 0x43, 0x2c, 0x06, - 0xa0, 0x5d, 0x28, 0xf2, 0x66, 0x8d, 0x29, 0xe9, 0xb1, 0x94, 0x02, 0x43, 0x19, 0x11, 0x88, 0x3b, - 0xf8, 0xdf, 0x3c, 0x64, 0x85, 0x6f, 0xea, 0x35, 0x73, 0x9a, 0xb8, 0xcd, 0x93, 0xf9, 0xdb, 0xff, - 0x7e, 0xf9, 0xcb, 0x8c, 0xcf, 0xcf, 0x68, 0x2e, 0xd2, 0xdf, 0x23, 0x17, 0x89, 0xb8, 0x67, 0x26, - 0x8f, 0xfb, 0xd4, 0xf5, 0xe3, 0x9e, 0x9d, 0x20, 0xee, 0x48, 0x83, 0x9b, 0x2c, 0xd0, 0x8e, 0xe7, - 0x50, 0x27, 0x7e, 0x3e, 0x99, 0xdc, 0xfd, 0x31, 0x73, 0x8b, 0x29, 0xbc, 0xe7, 0x3a, 0x9e, 0x16, - 0xe2, 0x45, 0x78, 0x74, 0x86, 0x46, 0x8f, 0x61, 0xa9, 0x3f, 0x49, 0x8e, 0x2d, 0xef, 0x18, 0x77, - 0x84, 0x4c, 0x38, 0xc1, 0x6e, 0x0d, 0xca, 0x8c, 0xbb, 0xc2, 0x17, 0x22, 0xfe, 0x1e, 0xa7, 0x87, - 0xb2, 0xbf, 0x82, 0xc5, 0x61, 0x59, 0x1b, 0x07, 0xd1, 0x88, 0x9b, 0xfc, 0x35, 0xb2, 0xbb, 0xad, - 0xa3, 0x41, 0xfd, 0x06, 0x0e, 0x28, 0xfa, 0x1c, 0x96, 0xfb, 0xef, 0x0d, 0x73, 0x30, 0xbb, 0x70, - 0x55, 0x76, 0x97, 0x59, 0x76, 0xc7, 0x6d, 0xb4, 0xd4, 0x97, 0x3c, 0x4c, 0x66, 0x5e, 0x87, 0x85, - 0x78, 0xaf, 0x38, 0x51, 0xb3, 0x93, 0xc6, 0x07, 0xf5, 0xd9, 0x71, 0x02, 0x9f, 0x42, 0xbc, 0x99, - 0x99, 0xec, 0x99, 0xfc, 0x35, 0x7a, 0x26, 0x76, 0x6b, 0x3f, 0x6e, 0x9e, 0x7b, 0x20, 0x1f, 0xf5, - 0x7c, 0x8f, 0x05, 0x05, 0x9b, 0xa2, 0x62, 0x0b, 0xfc, 0xe1, 0x36, 0xf6, 0xc9, 0x58, 0x64, 0x60, - 0x36, 0xd3, 0x7f, 0x1e, 0x96, 0xef, 0x21, 0xac, 0x71, 0x7a, 0x3f, 0x79, 0xfd, 0x2e, 0xf4, 0x31, - 0x93, 0x14, 0x8f, 0xc0, 0xb1, 0x5a, 0x2b, 0x8c, 0x19, 0x3d, 0xb5, 0xa2, 0x1e, 0x0c, 0x69, 0xe8, - 0xa7, 0x50, 0x8c, 0xdd, 0x62, 0xc5, 0xcc, 0x1f, 0x85, 0x97, 0x08, 0xe5, 0x23, 0xa7, 0xd8, 0xb3, - 0x00, 0xed, 0xc3, 0x7c, 0x22, 0x42, 0xa2, 0x3a, 0xe5, 0x49, 0xa3, 0x3f, 0x17, 0x0f, 0x96, 0xb0, - 0x32, 0x7f, 0x09, 0x2b, 0xc3, 0x95, 0xc9, 0xa6, 0x8d, 0xa8, 0x9e, 0x79, 0xae, 0x5b, 0x1a, 0xd1, - 0x1d, 0x7c, 0x61, 0x2e, 0x0f, 0x96, 0xe4, 0xbe, 0xf5, 0x42, 0xd4, 0x4a, 0x17, 0xd6, 0xd9, 0xa5, - 0xe8, 0x3a, 0x01, 0x75, 0x8e, 0x4d, 0xab, 0x47, 0x4f, 0x89, 0xef, 0xfc, 0x06, 0xdb, 0xa6, 0x15, - 0x56, 0x39, 0x0e, 0x14, 0xb4, 0x91, 0xde, 0xcc, 0xd5, 0x37, 0xdf, 0xd1, 0x01, 0x83, 0x7b, 0xad, - 0xc5, 0x82, 0xb5, 0xbe, 0x5e, 0x2d, 0x92, 0x43, 0x47, 0x90, 0x00, 0x98, 0x3e, 0xfe, 0x1c, 0x1f, - 0x0f, 0xd6, 0xe9, 0xc2, 0x44, 0x27, 0x5a, 0x8d, 0x45, 0x74, 0xa1, 0x11, 0x57, 0xeb, 0x3d, 0x00, - 0xf6, 0xca, 0x14, 0xd5, 0xb4, 0x38, 0x91, 0x20, 0x7b, 0x97, 0x8a, 0x9a, 0xd2, 0x40, 0x8e, 0x8b, - 0x5d, 0x88, 0x2c, 0x4d, 0x24, 0x32, 0xd7, 0xe7, 0x85, 0x52, 0x77, 0x17, 0x5e, 0x8d, 0x96, 0x4b, - 0xf9, 0xab, 0x14, 0xa0, 0xfd, 0xf0, 0x3b, 0x76, 0xdd, 0x0a, 0xb0, 0xfd, 0xff, 0xbc, 0x83, 0x13, - 0x73, 0x3f, 0xf5, 0xce, 0xb9, 0xbf, 0x35, 0x26, 0x46, 0x23, 0x83, 0x3f, 0x8e, 0xc9, 0xc0, 0x35, - 0x91, 0xbe, 0xfe, 0x35, 0x91, 0x99, 0xe4, 0x7a, 0x1e, 0xf9, 0xfe, 0x70, 0xfb, 0x0f, 0x12, 0xe4, - 0x93, 0xdf, 0x9e, 0xd0, 0x1a, 0xdc, 0x6c, 0xe9, 0xcd, 0x56, 0xb3, 0x5d, 0x7b, 0x64, 0x1a, 0xcf, - 0x5a, 0xaa, 0xf9, 0xf8, 0xa0, 0xdd, 0x52, 0xf7, 0xb4, 0xfb, 0x9a, 0xda, 0x90, 0x6f, 0xa0, 0x15, - 0x78, 0x6f, 0xd0, 0xdc, 0x36, 0x6a, 0x07, 0x8d, 0x9a, 0xde, 0x90, 0x25, 0x74, 0x0b, 0xd6, 0x06, - 0x6d, 0xfb, 0x8f, 0x1f, 0x19, 0x5a, 0xeb, 0x91, 0x6a, 0xee, 0x3d, 0x68, 0x6a, 0x7b, 0xaa, 0x9c, - 0x42, 0xef, 0x83, 0x32, 0x08, 0x69, 0xb6, 0x0c, 0x6d, 0x5f, 0x6b, 0x1b, 0xda, 0x9e, 0x9c, 0x46, - 0xab, 0xb0, 0x3c, 0x68, 0x55, 0x9f, 0xb6, 0xd4, 0x86, 0x66, 0xa8, 0x0d, 0x39, 0x73, 0xfb, 0xdf, - 0x12, 0x40, 0xe2, 0x77, 0xa8, 0x55, 0x58, 0x3e, 0x6c, 0x1a, 0xa1, 0x40, 0xf3, 0x60, 0xc8, 0xcb, - 0x05, 0x98, 0x4b, 0x1a, 0x9f, 0xa9, 0x6d, 0x59, 0x1a, 0x5e, 0x6c, 0x1e, 0xa8, 0xb2, 0x84, 0x96, - 0x61, 0x21, 0xb9, 0x58, 0xab, 0xb7, 0x8d, 0x9a, 0x76, 0x20, 0xa7, 0x86, 0xd1, 0xc6, 0x93, 0xa6, - 0x9c, 0x42, 0x08, 0x8a, 0xc9, 0xc5, 0x83, 0xa6, 0x9c, 0x46, 0x4b, 0x30, 0x3f, 0x00, 0x7c, 0xa0, - 0xab, 0xaa, 0x9c, 0x66, 0x27, 0x1d, 0x84, 0x9a, 0x4f, 0x34, 0xe3, 0x81, 0x79, 0xa8, 0x1a, 0x4d, - 0x39, 0x83, 0x16, 0x41, 0x4e, 0x5a, 0xef, 0x37, 0x1f, 0xeb, 0xa3, 0xab, 0xed, 0x56, 0x6d, 0x5f, - 0x9e, 0x5a, 0x49, 0xc9, 0xd2, 0xed, 0xbf, 0x4a, 0x50, 0x1c, 0xfc, 0x31, 0x08, 0xad, 0xc3, 0x6a, - 0x3f, 0x58, 0x6d, 0xa3, 0x66, 0x3c, 0x6e, 0x0f, 0x05, 0xa1, 0x0c, 0xa5, 0x61, 0x40, 0x43, 0x6d, - 0x35, 0xdb, 0x9a, 0x61, 0xb6, 0x54, 0x5d, 0x6b, 0x0e, 0xa7, 0x4c, 0x60, 0x0e, 0x9b, 0x86, 0x76, - 0xf0, 0x59, 0x04, 0x49, 0x0d, 0x64, 0x5c, 0x40, 0x5a, 0xb5, 0x76, 0x5b, 0x6d, 0x84, 0x87, 0x1c, - 0xb6, 0xe9, 0xea, 0x43, 0x75, 0x8f, 0x67, 0x6c, 0x1c, 0xf3, 0x7e, 0x4d, 0x7b, 0xa4, 0x36, 0xe4, - 0xa9, 0xfa, 0xee, 0xd7, 0x6f, 0x4a, 0xd2, 0x37, 0x6f, 0x4a, 0xd2, 0x3f, 0xdf, 0x94, 0xa4, 0x2f, - 0xdf, 0x96, 0x6e, 0x7c, 0xf3, 0xb6, 0x74, 0xe3, 0x6f, 0x6f, 0x4b, 0x37, 0x7e, 0xb1, 0x1a, 0x96, - 0x6f, 0x60, 0x7f, 0x51, 0x71, 0x48, 0x95, 0x17, 0x6b, 0x95, 0x7d, 0xf5, 0x0f, 0xaa, 0x67, 0x3b, - 0x47, 0x59, 0xde, 0xa3, 0x1f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xa8, 0xeb, 0xae, 0x28, 0x84, - 0x15, 0x00, 0x00, + // 2006 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6f, 0xdb, 0xc8, + 0x19, 0x0e, 0x25, 0xf9, 0x43, 0xaf, 0x25, 0x99, 0x1e, 0xdb, 0x31, 0x63, 0xaf, 0x3f, 0x62, 0x14, + 0x0b, 0x37, 0xbb, 0x96, 0xec, 0x6c, 0xdd, 0x6e, 0xd3, 0xcd, 0x41, 0xb2, 0x98, 0x84, 0x41, 0x6c, + 0xa9, 0x14, 0xe3, 0x24, 0x2d, 0x0a, 0x82, 0x36, 0x27, 0x32, 0x77, 0x45, 0x8e, 0x4a, 0x8e, 0x6c, + 0xab, 0xbf, 0x62, 0x8f, 0x3d, 0x15, 0xbd, 0x75, 0x8f, 0x3d, 0x04, 0xbd, 0xf7, 0xd4, 0x45, 0x0f, + 0xc5, 0x22, 0xa7, 0x62, 0x81, 0xa6, 0x45, 0x72, 0x28, 0xb0, 0x3f, 0xa1, 0xe8, 0xa1, 0x98, 0xe1, + 0x50, 0xa4, 0x3e, 0x1c, 0xcb, 0x8b, 0x5e, 0x12, 0x79, 0xe6, 0x79, 0x9e, 0x79, 0xe7, 0xfd, 0x9a, + 0x57, 0x82, 0xa5, 0x13, 0x12, 0xb8, 0x24, 0x28, 0x35, 0xc9, 0x59, 0xe9, 0x6c, 0x97, 0xfd, 0x57, + 0x6c, 0xfb, 0x84, 0x12, 0x94, 0x0f, 0x37, 0x8a, 0x6c, 0xe5, 0x6c, 0x77, 0x79, 0x4d, 0xe0, 0x8e, + 0xad, 0x00, 0x97, 0xce, 0x76, 0x8f, 0x31, 0xb5, 0x76, 0x4b, 0x27, 0xc4, 0xf1, 0x42, 0xf8, 0xf2, + 0x42, 0x93, 0x34, 0x09, 0xff, 0x58, 0x62, 0x9f, 0xc4, 0xea, 0x7a, 0x93, 0x90, 0x66, 0x0b, 0x97, + 0xf8, 0x5f, 0xc7, 0x9d, 0x97, 0x25, 0xea, 0xb8, 0x38, 0xa0, 0x96, 0xdb, 0x16, 0x80, 0x5b, 0x83, + 0x00, 0xcb, 0xeb, 0x8a, 0xad, 0xb5, 0xc1, 0x2d, 0xbb, 0xe3, 0x5b, 0xd4, 0x21, 0xd1, 0x89, 0xb7, + 0x42, 0x8b, 0xcc, 0xf0, 0x50, 0x61, 0x6d, 0xb8, 0x35, 0x67, 0xb9, 0x8e, 0x47, 0x4a, 0xfc, 0xdf, + 0x70, 0x69, 0x93, 0x00, 0x7a, 0x86, 0x9d, 0xe6, 0x29, 0xc5, 0xf6, 0x11, 0xa1, 0xb8, 0xd6, 0x66, + 0x4a, 0x68, 0x17, 0x26, 0x09, 0xff, 0xa4, 0x48, 0x1b, 0xd2, 0x56, 0xe1, 0xee, 0xad, 0x62, 0xdf, + 0xad, 0x8b, 0x31, 0x54, 0x17, 0x40, 0xf4, 0x21, 0x4c, 0x9e, 0x73, 0x21, 0x25, 0xb5, 0x21, 0x6d, + 0x65, 0x2b, 0x85, 0xd7, 0xaf, 0xb6, 0x41, 0xb0, 0xaa, 0xf8, 0x44, 0x17, 0xbb, 0x9b, 0xbf, 0x97, + 0x60, 0xaa, 0x8a, 0xdb, 0x24, 0x70, 0x28, 0x5a, 0x87, 0x99, 0xb6, 0x4f, 0xda, 0x24, 0xb0, 0x5a, + 0xa6, 0x63, 0xf3, 0xb3, 0x32, 0x3a, 0x44, 0x4b, 0x9a, 0x8d, 0x7e, 0x0c, 0x59, 0x3b, 0xc4, 0x12, + 0x5f, 0xe8, 0x2a, 0xaf, 0x5f, 0x6d, 0x2f, 0x08, 0xdd, 0xb2, 0x6d, 0xfb, 0x38, 0x08, 0x1a, 0xd4, + 0x77, 0xbc, 0xa6, 0x1e, 0x43, 0xd1, 0x67, 0x30, 0x69, 0xb9, 0xa4, 0xe3, 0x51, 0x25, 0xbd, 0x91, + 0xde, 0x9a, 0x89, 0xed, 0x67, 0x61, 0x2a, 0x8a, 0x30, 0x15, 0xf7, 0x89, 0xe3, 0x55, 0xb2, 0x5f, + 0xbf, 0x59, 0xbf, 0xf1, 0xd5, 0xbf, 0xff, 0x78, 0x47, 0xd2, 0x05, 0x67, 0xf3, 0xcf, 0x53, 0x30, + 0x5d, 0x17, 0x46, 0xa0, 0x02, 0xa4, 0x7a, 0xa6, 0xa5, 0x1c, 0x1b, 0xed, 0xc0, 0xb4, 0x8b, 0x83, + 0xc0, 0x6a, 0xe2, 0x40, 0x49, 0x71, 0xf1, 0x85, 0x62, 0x18, 0x91, 0x62, 0x14, 0x91, 0x62, 0xd9, + 0xeb, 0xea, 0x3d, 0x14, 0xda, 0x83, 0xc9, 0x80, 0x5a, 0xb4, 0x13, 0x28, 0x69, 0xee, 0xcc, 0xd5, + 0x01, 0x67, 0x46, 0x47, 0x35, 0x38, 0x48, 0x17, 0x60, 0xf4, 0x08, 0xd0, 0x4b, 0xc7, 0xb3, 0x5a, + 0x26, 0xb5, 0x5a, 0xad, 0xae, 0xe9, 0xe3, 0xa0, 0xd3, 0xa2, 0x4a, 0x66, 0x43, 0xda, 0x9a, 0xb9, + 0xbb, 0x3c, 0x20, 0x61, 0x30, 0x88, 0xce, 0x11, 0xba, 0xcc, 0x59, 0x89, 0x15, 0x54, 0x86, 0x99, + 0xa0, 0x73, 0xec, 0x3a, 0xd4, 0x64, 0x69, 0xa6, 0x4c, 0x08, 0x89, 0x41, 0xab, 0x8d, 0x28, 0x07, + 0x2b, 0x99, 0x2f, 0xff, 0xb9, 0x2e, 0xe9, 0x10, 0x92, 0xd8, 0x32, 0x7a, 0x0c, 0xb2, 0xf0, 0xae, + 0x89, 0x3d, 0x3b, 0xd4, 0x99, 0x1c, 0x53, 0xa7, 0x20, 0x98, 0xaa, 0x67, 0x73, 0x2d, 0x0d, 0xf2, + 0x94, 0x50, 0xab, 0x65, 0x8a, 0x75, 0x65, 0xea, 0x1a, 0x31, 0xca, 0x71, 0x6a, 0x94, 0x40, 0x4f, + 0x60, 0xee, 0x8c, 0x50, 0xc7, 0x6b, 0x9a, 0x01, 0xb5, 0x7c, 0x71, 0xbf, 0xe9, 0x31, 0xed, 0x9a, + 0x0d, 0xa9, 0x0d, 0xc6, 0xe4, 0x86, 0x3d, 0x02, 0xb1, 0x14, 0xdf, 0x31, 0x3b, 0xa6, 0x56, 0x3e, + 0x24, 0x46, 0x57, 0x5c, 0x66, 0x49, 0x42, 0x2d, 0xdb, 0xa2, 0x96, 0x02, 0x2c, 0x6d, 0xf5, 0xde, + 0xdf, 0xe8, 0x87, 0x30, 0x41, 0x1d, 0xda, 0xc2, 0xca, 0x0c, 0xcf, 0xe7, 0xf9, 0x6f, 0x5f, 0x6d, + 0xcf, 0x86, 0x37, 0xdf, 0x0e, 0xec, 0x2f, 0x36, 0x76, 0x8a, 0x3f, 0xfa, 0x89, 0x1e, 0x22, 0xd0, + 0x36, 0x4c, 0x05, 0x1d, 0xd7, 0xb5, 0xfc, 0xae, 0x92, 0xbb, 0x1c, 0x1c, 0x61, 0xd0, 0x43, 0x98, + 0x0e, 0x6b, 0x07, 0xfb, 0x4a, 0x9e, 0xe3, 0x3f, 0xba, 0xac, 0x58, 0x46, 0xe9, 0xf4, 0xc8, 0xe8, + 0x13, 0xc8, 0xe2, 0x8b, 0x36, 0xb6, 0x1d, 0x8a, 0x6d, 0xa5, 0xb0, 0x21, 0x6d, 0x4d, 0x57, 0x16, + 0x87, 0x18, 0x7b, 0x3b, 0x8a, 0xa4, 0xc7, 0x38, 0xf4, 0x29, 0xe4, 0x5f, 0x5a, 0x4e, 0x0b, 0xdb, + 0xa6, 0x8f, 0xad, 0x80, 0x78, 0xca, 0xec, 0x25, 0x26, 0xef, 0xed, 0xe8, 0xb9, 0x10, 0xa9, 0x73, + 0x20, 0xd2, 0x21, 0xdf, 0x6b, 0x03, 0xb4, 0xdb, 0xc6, 0x8a, 0xcc, 0xeb, 0x64, 0xe5, 0x92, 0x3a, + 0x31, 0xba, 0x6d, 0x5c, 0x91, 0xbf, 0x7d, 0xb5, 0x9d, 0xbb, 0x60, 0x7d, 0x79, 0xe3, 0x6c, 0xa7, + 0x78, 0xb7, 0xb8, 0xa3, 0xe7, 0xda, 0x89, 0xfd, 0xcd, 0xbf, 0x4a, 0x30, 0x1f, 0x11, 0xe2, 0x6e, + 0x15, 0xa0, 0x55, 0x80, 0xb0, 0x61, 0x99, 0xc4, 0xc3, 0xbc, 0xac, 0xb3, 0x7a, 0x36, 0x5c, 0xa9, + 0x79, 0x38, 0xb1, 0x4d, 0xcf, 0x49, 0xd8, 0x71, 0xa2, 0x6d, 0xe3, 0x9c, 0xa0, 0xdb, 0x90, 0x8b, + 0xb6, 0x4f, 0x7d, 0x8c, 0x79, 0x41, 0x67, 0xf5, 0x19, 0x01, 0x60, 0x4b, 0xac, 0xa7, 0x09, 0xc8, + 0x4b, 0xd2, 0xf1, 0x79, 0xbd, 0x66, 0x75, 0x21, 0xfa, 0x80, 0x74, 0xfc, 0x04, 0x20, 0x68, 0x5b, + 0x2e, 0xaf, 0xc6, 0x1e, 0xa0, 0xd1, 0xb6, 0xdc, 0x7b, 0xf2, 0xeb, 0x81, 0xab, 0x6d, 0xfe, 0x37, + 0x0d, 0x33, 0xc9, 0x82, 0xde, 0x86, 0x6c, 0x17, 0x07, 0xe6, 0x09, 0xef, 0x70, 0xfc, 0x0e, 0x15, + 0x39, 0xd1, 0x6e, 0x35, 0xb6, 0xaa, 0x4f, 0x77, 0x71, 0xb0, 0xcf, 0x10, 0x68, 0x0f, 0xf2, 0xd6, + 0x71, 0x40, 0x2d, 0xc7, 0x13, 0x94, 0xd4, 0x25, 0x94, 0x9c, 0x80, 0x85, 0xb4, 0x8f, 0x60, 0xda, + 0x23, 0x82, 0x91, 0xbe, 0x84, 0x31, 0xe5, 0x91, 0x10, 0x7c, 0x1f, 0x90, 0x47, 0xcc, 0x73, 0x87, + 0x9e, 0x9a, 0x67, 0x98, 0x46, 0xb4, 0xcc, 0x25, 0xb4, 0x59, 0x8f, 0x3c, 0x73, 0xe8, 0xe9, 0x11, + 0xa6, 0x82, 0xfe, 0x29, 0xc8, 0x71, 0x58, 0x04, 0x79, 0x62, 0xe8, 0x1d, 0xd1, 0x3c, 0xaa, 0x17, + 0x7a, 0xc1, 0x1a, 0x64, 0xd2, 0xf3, 0xe8, 0xd8, 0xc9, 0xf7, 0x31, 0x8d, 0x73, 0x71, 0xe6, 0x67, + 0x80, 0x92, 0xc1, 0x14, 0xdc, 0xa9, 0x91, 0x5c, 0x39, 0x11, 0xe2, 0x90, 0x7d, 0x0f, 0xe6, 0x12, + 0x71, 0x16, 0xe4, 0xe9, 0x91, 0xe4, 0xd9, 0x38, 0xfa, 0x21, 0x77, 0x1b, 0x80, 0xc5, 0x5e, 0x90, + 0xb2, 0x23, 0x49, 0x59, 0x86, 0xe0, 0xf0, 0xcd, 0x3f, 0x49, 0x90, 0x61, 0x39, 0x7c, 0xf5, 0x7b, + 0x59, 0x84, 0x89, 0x33, 0x42, 0xf1, 0xd5, 0x6f, 0x65, 0x08, 0x43, 0x3f, 0x83, 0xa9, 0xd0, 0xb6, + 0x40, 0xc9, 0xf0, 0x26, 0x7c, 0x7b, 0xa0, 0xe6, 0x86, 0x67, 0x03, 0x3d, 0x62, 0xf4, 0x35, 0xb9, + 0x89, 0xfe, 0x26, 0xf7, 0x38, 0x33, 0x9d, 0x96, 0x33, 0x9b, 0xff, 0x90, 0x20, 0x2f, 0x5a, 0x75, + 0xdd, 0xf2, 0x2d, 0x37, 0x40, 0x2f, 0x60, 0xc6, 0x75, 0xbc, 0x5e, 0xe7, 0x97, 0xae, 0xea, 0xfc, + 0xab, 0xac, 0xf3, 0x7f, 0xf7, 0x66, 0x7d, 0x31, 0xc1, 0xfa, 0x98, 0xb8, 0x0e, 0xc5, 0x6e, 0x9b, + 0x76, 0x75, 0x70, 0x1d, 0x2f, 0x7a, 0x0b, 0x5c, 0x40, 0xae, 0x75, 0x11, 0x81, 0xcc, 0x36, 0xf6, + 0x1d, 0x62, 0x73, 0x47, 0xb0, 0x13, 0x06, 0x1b, 0x78, 0x55, 0x0c, 0x4d, 0x95, 0x1f, 0x7c, 0xf7, + 0x66, 0xfd, 0x83, 0x61, 0x62, 0x7c, 0xc8, 0x6f, 0x59, 0x7f, 0x97, 0x5d, 0xeb, 0x22, 0xba, 0x09, + 0xdf, 0xbf, 0x97, 0x52, 0xa4, 0xcd, 0xe7, 0x90, 0x3b, 0xe2, 0x7d, 0x5f, 0xdc, 0xae, 0x0a, 0xe2, + 0x1d, 0x88, 0x4e, 0x97, 0xae, 0x3a, 0x3d, 0xc3, 0xd5, 0x73, 0x21, 0x2b, 0xa1, 0xfc, 0x3b, 0x49, + 0x54, 0xbc, 0x50, 0xfe, 0x10, 0x26, 0x7f, 0xdd, 0x21, 0x7e, 0xc7, 0x15, 0xe5, 0x3e, 0x34, 0x5d, + 0x85, 0xbb, 0xe8, 0x63, 0xc8, 0xb2, 0x64, 0x0e, 0x4e, 0x49, 0xcb, 0xbe, 0x64, 0x10, 0x8b, 0x01, + 0x68, 0x0f, 0x0a, 0xbc, 0x58, 0x63, 0x4a, 0x7a, 0x24, 0x25, 0xcf, 0x50, 0x46, 0x04, 0xe2, 0x06, + 0xfe, 0x25, 0x0f, 0x93, 0xc2, 0x36, 0xf5, 0x9a, 0x31, 0x4d, 0xbc, 0xe6, 0xc9, 0xf8, 0x1d, 0x7c, + 0xbf, 0xf8, 0x65, 0x46, 0xc7, 0x67, 0x38, 0x16, 0xe9, 0xef, 0x11, 0x8b, 0x84, 0xdf, 0x33, 0xe3, + 0xfb, 0x7d, 0xe2, 0xfa, 0x7e, 0x9f, 0x1c, 0xc3, 0xef, 0x48, 0x83, 0x5b, 0xcc, 0xd1, 0x8e, 0xe7, + 0x50, 0x27, 0x1e, 0x9f, 0x4c, 0x6e, 0xfe, 0x88, 0xbe, 0xc5, 0x14, 0x6e, 0xba, 0x8e, 0xa7, 0x85, + 0x78, 0xe1, 0x1e, 0x9d, 0xa1, 0xd1, 0x53, 0x58, 0xec, 0x75, 0x92, 0x13, 0xcb, 0x3b, 0xc1, 0x2d, + 0x21, 0x13, 0x76, 0xb0, 0xdb, 0xfd, 0x32, 0xa3, 0x9e, 0xf0, 0xf9, 0x88, 0xbf, 0xcf, 0xe9, 0xa1, + 0xec, 0xaf, 0x60, 0x61, 0x50, 0xd6, 0xc6, 0x41, 0xd4, 0xe2, 0xc6, 0x9f, 0x46, 0xf6, 0x76, 0x74, + 0xd4, 0xaf, 0x5f, 0xc5, 0x01, 0x45, 0x9f, 0xc3, 0x52, 0x6f, 0xde, 0x30, 0xfb, 0xa3, 0x0b, 0x57, + 0x45, 0x77, 0x89, 0x45, 0x77, 0xd4, 0x41, 0x8b, 0x3d, 0xc9, 0xa3, 0x64, 0xe4, 0x75, 0x98, 0x8f, + 0xcf, 0x8a, 0x03, 0x35, 0x33, 0xae, 0x7f, 0x50, 0x8f, 0x1d, 0x07, 0xf0, 0x39, 0xc4, 0x87, 0x99, + 0xc9, 0x9a, 0xc9, 0x5d, 0xa3, 0x66, 0x62, 0xb3, 0x0e, 0xe2, 0xe2, 0xb9, 0x0f, 0xf2, 0x71, 0xc7, + 0xf7, 0x98, 0x53, 0xb0, 0x29, 0x32, 0x36, 0xcf, 0x07, 0xb7, 0x91, 0x23, 0x63, 0x81, 0x81, 0x59, + 0x4f, 0xff, 0x79, 0x98, 0xbe, 0x47, 0xb0, 0xca, 0xe9, 0xbd, 0xe0, 0xf5, 0xaa, 0xd0, 0xc7, 0x4c, + 0x52, 0x0c, 0x81, 0x23, 0xb5, 0x96, 0x19, 0x33, 0x1a, 0xb5, 0xa2, 0x1a, 0x0c, 0x69, 0xe8, 0xa7, + 0x50, 0x88, 0xcd, 0x62, 0xc9, 0xcc, 0x87, 0xc2, 0x4b, 0x84, 0x72, 0x91, 0x51, 0x6c, 0x2c, 0x40, + 0x07, 0x30, 0x97, 0xf0, 0x90, 0xc8, 0x4e, 0x79, 0x5c, 0xef, 0xcf, 0xc6, 0x8d, 0x25, 0xcc, 0xcc, + 0x5f, 0xc2, 0xf2, 0x60, 0x66, 0xb2, 0x6e, 0x23, 0xb2, 0x67, 0x8e, 0xeb, 0xae, 0x0d, 0xe9, 0xf6, + 0x4f, 0x98, 0x4b, 0xfd, 0x29, 0x79, 0x60, 0x5d, 0x88, 0x5c, 0x69, 0xc3, 0x3a, 0x7b, 0x14, 0x5d, + 0x27, 0xa0, 0xce, 0x89, 0x69, 0x75, 0xe8, 0x29, 0xf1, 0x9d, 0xdf, 0x60, 0xdb, 0xb4, 0xc2, 0x2c, + 0xc7, 0x81, 0x82, 0x36, 0xd2, 0x5b, 0xd9, 0xca, 0xd6, 0x7b, 0x2a, 0xa0, 0xff, 0xac, 0xd5, 0x58, + 0xb0, 0xdc, 0xd3, 0x2b, 0x47, 0x72, 0xe8, 0x18, 0x12, 0x00, 0xd3, 0xc7, 0x9f, 0xe3, 0x93, 0xfe, + 0x3c, 0x9d, 0x1f, 0xeb, 0x46, 0x2b, 0xb1, 0x88, 0x2e, 0x34, 0xe2, 0x6c, 0xbd, 0x0f, 0xc0, 0xa6, + 0x4c, 0x91, 0x4d, 0x0b, 0x63, 0x09, 0xb2, 0xb9, 0x54, 0xe4, 0x94, 0x06, 0x72, 0x9c, 0xec, 0x42, + 0x64, 0xf1, 0x0a, 0x91, 0xdd, 0xe2, 0x4e, 0x71, 0x47, 0x9f, 0xed, 0xf1, 0x84, 0xd4, 0x03, 0xb8, + 0xd9, 0x0b, 0x1e, 0xbe, 0xc0, 0x27, 0x1d, 0x3e, 0x77, 0x35, 0xad, 0x40, 0xb9, 0xc9, 0x46, 0xa0, + 0x11, 0x5f, 0x06, 0x7a, 0x6d, 0x48, 0x8d, 0xe0, 0x0f, 0xad, 0xe0, 0xde, 0xfc, 0xeb, 0xe1, 0xb4, + 0xdb, 0xfc, 0x2a, 0x05, 0xe8, 0x20, 0xfc, 0xae, 0x5e, 0xb1, 0x02, 0x6c, 0xff, 0x3f, 0xdf, 0xf2, + 0xc4, 0xfb, 0x91, 0x7a, 0xef, 0xfb, 0xb1, 0x3d, 0xc2, 0xd7, 0x43, 0x0f, 0x48, 0xec, 0xdb, 0xbe, + 0xe7, 0x26, 0x7d, 0xfd, 0xe7, 0x26, 0x33, 0xce, 0x33, 0x3f, 0xf4, 0x3d, 0xe4, 0xce, 0x1f, 0x24, + 0xc8, 0x25, 0xbf, 0x85, 0xa1, 0x55, 0xb8, 0x55, 0xd7, 0x6b, 0xf5, 0x5a, 0xa3, 0xfc, 0xc4, 0x34, + 0x5e, 0xd4, 0x55, 0xf3, 0xe9, 0x61, 0xa3, 0xae, 0xee, 0x6b, 0x0f, 0x34, 0xb5, 0x2a, 0xdf, 0x40, + 0xcb, 0x70, 0xb3, 0x7f, 0xbb, 0x61, 0x94, 0x0f, 0xab, 0x65, 0xbd, 0x2a, 0x4b, 0xe8, 0x36, 0xac, + 0xf6, 0xef, 0x1d, 0x3c, 0x7d, 0x62, 0x68, 0xf5, 0x27, 0xaa, 0xb9, 0xff, 0xa8, 0xa6, 0xed, 0xab, + 0x72, 0x0a, 0x7d, 0x00, 0x4a, 0x3f, 0xa4, 0x56, 0x37, 0xb4, 0x03, 0xad, 0x61, 0x68, 0xfb, 0x72, + 0x1a, 0xad, 0xc0, 0x52, 0xff, 0xae, 0xfa, 0xbc, 0xae, 0x56, 0x35, 0x43, 0xad, 0xca, 0x99, 0x3b, + 0xff, 0x91, 0x00, 0x12, 0xbf, 0x67, 0xad, 0xc0, 0xd2, 0x51, 0xcd, 0x08, 0x05, 0x6a, 0x87, 0x03, + 0x56, 0xce, 0xc3, 0x6c, 0x72, 0xf3, 0x85, 0xda, 0x90, 0xa5, 0xc1, 0xc5, 0xda, 0xa1, 0x2a, 0x4b, + 0x68, 0x09, 0xe6, 0x93, 0x8b, 0xe5, 0x4a, 0xc3, 0x28, 0x6b, 0x87, 0x72, 0x6a, 0x10, 0x6d, 0x3c, + 0xab, 0xc9, 0x29, 0x84, 0xa0, 0x90, 0x5c, 0x3c, 0xac, 0xc9, 0x69, 0xb4, 0x08, 0x73, 0x7d, 0xc0, + 0x47, 0xba, 0xaa, 0xca, 0x69, 0x76, 0xd3, 0x7e, 0xa8, 0xf9, 0x4c, 0x33, 0x1e, 0x99, 0x47, 0xaa, + 0x51, 0x93, 0x33, 0x68, 0x01, 0xe4, 0xe4, 0xee, 0x83, 0xda, 0x53, 0x7d, 0x78, 0xb5, 0x51, 0x2f, + 0x1f, 0xc8, 0x13, 0xcb, 0x29, 0x59, 0xba, 0xf3, 0x37, 0x09, 0x0a, 0xfd, 0x3f, 0x2a, 0xa1, 0x75, + 0x58, 0xe9, 0x39, 0xab, 0x61, 0x94, 0x8d, 0xa7, 0x8d, 0x01, 0x27, 0x6c, 0xc2, 0xda, 0x20, 0xa0, + 0xaa, 0xd6, 0x6b, 0x0d, 0xcd, 0x30, 0xeb, 0xaa, 0xae, 0xd5, 0x06, 0x43, 0x26, 0x30, 0x47, 0x35, + 0x43, 0x3b, 0x7c, 0x18, 0x41, 0x52, 0x7d, 0x11, 0x17, 0x90, 0x7a, 0xb9, 0xd1, 0x50, 0xab, 0xe1, + 0x25, 0x07, 0xf7, 0x74, 0xf5, 0xb1, 0xba, 0xcf, 0x23, 0x36, 0x8a, 0xf9, 0xa0, 0xac, 0x3d, 0x51, + 0xab, 0xf2, 0x44, 0x65, 0xef, 0xeb, 0xb7, 0x6b, 0xd2, 0x37, 0x6f, 0xd7, 0xa4, 0x7f, 0xbd, 0x5d, + 0x93, 0xbe, 0x7c, 0xb7, 0x76, 0xe3, 0x9b, 0x77, 0x6b, 0x37, 0xfe, 0xfe, 0x6e, 0xed, 0xc6, 0x2f, + 0x56, 0xc2, 0xf4, 0x0d, 0xec, 0x2f, 0x8a, 0x0e, 0x29, 0xf1, 0x64, 0x2d, 0xd1, 0x6e, 0x1b, 0x07, + 0xa5, 0xb3, 0xdd, 0xe3, 0x49, 0x5e, 0xa3, 0x9f, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x10, 0x4b, + 0xae, 0xb9, 0xcc, 0x15, 0x00, 0x00, } func (m *WeightedVoteOption) Marshal() (dAtA []byte, err error) { @@ -2011,6 +2021,13 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.ProposalExecutionGas != 0 { + i = encodeVarintGov(dAtA, i, uint64(m.ProposalExecutionGas)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb0 + } if len(m.ExpeditedQuorum) > 0 { i -= len(m.ExpeditedQuorum) copy(dAtA[i:], m.ExpeditedQuorum) @@ -2638,6 +2655,9 @@ func (m *Params) Size() (n int) { if l > 0 { n += 2 + l + sovGov(uint64(l)) } + if m.ProposalExecutionGas != 0 { + n += 2 + sovGov(uint64(m.ProposalExecutionGas)) + } return n } @@ -5195,6 +5215,25 @@ func (m *Params) Unmarshal(dAtA []byte) error { } m.ExpeditedQuorum = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 22: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposalExecutionGas", wireType) + } + m.ProposalExecutionGas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGov + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProposalExecutionGas |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGov(dAtA[iNdEx:]) diff --git a/x/gov/types/v1/params.go b/x/gov/types/v1/params.go index 1f594e368cca..0bddd772fb3f 100644 --- a/x/gov/types/v1/params.go +++ b/x/gov/types/v1/params.go @@ -19,24 +19,25 @@ const ( // Default governance params var ( - DefaultMinDepositTokens = sdkmath.NewInt(10000000) - DefaultMinExpeditedDepositTokens = DefaultMinDepositTokens.Mul(sdkmath.NewInt(DefaultMinExpeditedDepositTokensRatio)) - DefaultQuorum = sdkmath.LegacyNewDecWithPrec(334, 3) - DefaultYesQuorum = sdkmath.LegacyNewDecWithPrec(0, 1) - DefaultExpeditedQuorum = sdkmath.LegacyNewDecWithPrec(500, 3) - DefaultThreshold = sdkmath.LegacyNewDecWithPrec(5, 1) - DefaultExpeditedThreshold = sdkmath.LegacyNewDecWithPrec(667, 3) - DefaultVetoThreshold = sdkmath.LegacyNewDecWithPrec(334, 3) - DefaultMinInitialDepositRatio = sdkmath.LegacyZeroDec() - DefaultProposalCancelRatio = sdkmath.LegacyMustNewDecFromStr("0.5") - DefaultProposalCancelDestAddress = "" - DefaultProposalCancelMaxPeriod = sdkmath.LegacyMustNewDecFromStr("0.5") - DefaultBurnProposalPrevote = false // set to false to replicate behavior of when this change was made (0.47) - DefaultBurnVoteQuorum = false // set to false to replicate behavior of when this change was made (0.47) - DefaultBurnVoteVeto = true // set to true to replicate behavior of when this change was made (0.47) - DefaultMinDepositRatio = sdkmath.LegacyMustNewDecFromStr("0.01") - DefaultOptimisticRejectedThreshold = sdkmath.LegacyMustNewDecFromStr("0.1") - DefaultOptimisticAuthorizedAddreses = []string(nil) + DefaultMinDepositTokens = sdkmath.NewInt(10000000) + DefaultMinExpeditedDepositTokens = DefaultMinDepositTokens.Mul(sdkmath.NewInt(DefaultMinExpeditedDepositTokensRatio)) + DefaultQuorum = sdkmath.LegacyNewDecWithPrec(334, 3) + DefaultYesQuorum = sdkmath.LegacyNewDecWithPrec(0, 1) + DefaultExpeditedQuorum = sdkmath.LegacyNewDecWithPrec(500, 3) + DefaultThreshold = sdkmath.LegacyNewDecWithPrec(5, 1) + DefaultExpeditedThreshold = sdkmath.LegacyNewDecWithPrec(667, 3) + DefaultVetoThreshold = sdkmath.LegacyNewDecWithPrec(334, 3) + DefaultMinInitialDepositRatio = sdkmath.LegacyZeroDec() + DefaultProposalCancelRatio = sdkmath.LegacyMustNewDecFromStr("0.5") + DefaultProposalCancelDestAddress = "" + DefaultProposalCancelMaxPeriod = sdkmath.LegacyMustNewDecFromStr("0.5") + DefaultBurnProposalPrevote = false // set to false to replicate behavior of when this change was made (0.47) + DefaultBurnVoteQuorum = false // set to false to replicate behavior of when this change was made (0.47) + DefaultBurnVoteVeto = true // set to true to replicate behavior of when this change was made (0.47) + DefaultMinDepositRatio = sdkmath.LegacyMustNewDecFromStr("0.01") + DefaultOptimisticRejectedThreshold = sdkmath.LegacyMustNewDecFromStr("0.1") + DefaultOptimisticAuthorizedAddreses = []string(nil) + DefaultProposalExecutionGas uint64 = 10_000_000 // ten million ) // NewParams creates a new Params instance with given values. @@ -47,6 +48,7 @@ func NewParams( burnProposalDeposit, burnVoteQuorum, burnVoteVeto bool, minDepositRatio, optimisticRejectedThreshold string, optimisticAuthorizedAddresses []string, + proposalExecutionGas uint64, ) Params { return Params{ MinDeposit: minDeposit, @@ -70,6 +72,7 @@ func NewParams( MinDepositRatio: minDepositRatio, OptimisticRejectedThreshold: optimisticRejectedThreshold, OptimisticAuthorizedAddresses: optimisticAuthorizedAddresses, + ProposalExecutionGas: proposalExecutionGas, } } @@ -97,6 +100,7 @@ func DefaultParams() Params { DefaultMinDepositRatio.String(), DefaultOptimisticRejectedThreshold.String(), DefaultOptimisticAuthorizedAddreses, + DefaultProposalExecutionGas, ) } @@ -266,6 +270,10 @@ func (p Params) ValidateBasic(addressCodec address.Codec) error { } } + if p.ProposalExecutionGas == 0 { + return fmt.Errorf("proposal execution gas must be positive: %d", p.ProposalExecutionGas) + } + return nil }