feat: add required params for cons pubkey rotation (#18142)

This commit is contained in:
atheeshp
2023-10-18 13:06:59 +00:00
committed by GitHub
parent e89a0cc163
commit 3a8f114327
16 changed files with 1337 additions and 1108 deletions
+1
View File
@@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Features
* (x/staking) [#18142](https://github.com/cosmos/cosmos-sdk/pull/18142) introduce `key_rotation_fee` param to calculate fees while rotating the keys
* (server) [#18110](https://github.com/cosmos/cosmos-sdk/pull/18110) Start gRPC & API server in standalone mode
* (client) [#18101](https://github.com/cosmos/cosmos-sdk/pull/18101) Add a `keyring-default-keyname` in `client.toml` for specifying a default key name, and skip the need to use the `--from` flag when signing transactions.
* (tests) [#17868](https://github.com/cosmos/cosmos-sdk/pull/17868) Added helper method `SubmitTestTx` in testutil to broadcast test txns to test e2e tests.
+225 -130
View File
@@ -9983,6 +9983,7 @@ var (
fd_Params_historical_entries protoreflect.FieldDescriptor
fd_Params_bond_denom protoreflect.FieldDescriptor
fd_Params_min_commission_rate protoreflect.FieldDescriptor
fd_Params_key_rotation_fee protoreflect.FieldDescriptor
)
func init() {
@@ -9994,6 +9995,7 @@ func init() {
fd_Params_historical_entries = md_Params.Fields().ByName("historical_entries")
fd_Params_bond_denom = md_Params.Fields().ByName("bond_denom")
fd_Params_min_commission_rate = md_Params.Fields().ByName("min_commission_rate")
fd_Params_key_rotation_fee = md_Params.Fields().ByName("key_rotation_fee")
}
var _ protoreflect.Message = (*fastReflection_Params)(nil)
@@ -10097,6 +10099,12 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto
return
}
}
if x.KeyRotationFee != nil {
value := protoreflect.ValueOfMessage(x.KeyRotationFee.ProtoReflect())
if !f(fd_Params_key_rotation_fee, value) {
return
}
}
}
// Has reports whether a field is populated.
@@ -10124,6 +10132,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool {
return x.BondDenom != ""
case "cosmos.staking.v1beta1.Params.min_commission_rate":
return x.MinCommissionRate != ""
case "cosmos.staking.v1beta1.Params.key_rotation_fee":
return x.KeyRotationFee != nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params"))
@@ -10152,6 +10162,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) {
x.BondDenom = ""
case "cosmos.staking.v1beta1.Params.min_commission_rate":
x.MinCommissionRate = ""
case "cosmos.staking.v1beta1.Params.key_rotation_fee":
x.KeyRotationFee = nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params"))
@@ -10186,6 +10198,9 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro
case "cosmos.staking.v1beta1.Params.min_commission_rate":
value := x.MinCommissionRate
return protoreflect.ValueOfString(value)
case "cosmos.staking.v1beta1.Params.key_rotation_fee":
value := x.KeyRotationFee
return protoreflect.ValueOfMessage(value.ProtoReflect())
default:
if descriptor.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params"))
@@ -10218,6 +10233,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto
x.BondDenom = value.Interface().(string)
case "cosmos.staking.v1beta1.Params.min_commission_rate":
x.MinCommissionRate = value.Interface().(string)
case "cosmos.staking.v1beta1.Params.key_rotation_fee":
x.KeyRotationFee = value.Message().Interface().(*v1beta1.Coin)
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params"))
@@ -10243,6 +10260,11 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore
x.UnbondingTime = new(durationpb.Duration)
}
return protoreflect.ValueOfMessage(x.UnbondingTime.ProtoReflect())
case "cosmos.staking.v1beta1.Params.key_rotation_fee":
if x.KeyRotationFee == nil {
x.KeyRotationFee = new(v1beta1.Coin)
}
return protoreflect.ValueOfMessage(x.KeyRotationFee.ProtoReflect())
case "cosmos.staking.v1beta1.Params.max_validators":
panic(fmt.Errorf("field max_validators of message cosmos.staking.v1beta1.Params is not mutable"))
case "cosmos.staking.v1beta1.Params.max_entries":
@@ -10279,6 +10301,9 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor
return protoreflect.ValueOfString("")
case "cosmos.staking.v1beta1.Params.min_commission_rate":
return protoreflect.ValueOfString("")
case "cosmos.staking.v1beta1.Params.key_rotation_fee":
m := new(v1beta1.Coin)
return protoreflect.ValueOfMessage(m.ProtoReflect())
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.Params"))
@@ -10369,6 +10394,10 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods {
if l > 0 {
n += 1 + l + runtime.Sov(uint64(l))
}
if x.KeyRotationFee != nil {
l = options.Size(x.KeyRotationFee)
n += 1 + l + runtime.Sov(uint64(l))
}
if x.unknownFields != nil {
n += len(x.unknownFields)
}
@@ -10398,6 +10427,20 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods {
i -= len(x.unknownFields)
copy(dAtA[i:], x.unknownFields)
}
if x.KeyRotationFee != nil {
encoded, err := options.Marshal(x.KeyRotationFee)
if err != nil {
return protoiface.MarshalOutput{
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
Buf: input.Buf,
}, err
}
i -= len(encoded)
copy(dAtA[i:], encoded)
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
i--
dAtA[i] = 0x3a
}
if len(x.MinCommissionRate) > 0 {
i -= len(x.MinCommissionRate)
copy(dAtA[i:], x.MinCommissionRate)
@@ -10647,6 +10690,42 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods {
}
x.MinCommissionRate = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 7:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field KeyRotationFee", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
}
if iNdEx >= l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
}
if postIndex > l {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
}
if x.KeyRotationFee == nil {
x.KeyRotationFee = &v1beta1.Coin{}
}
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.KeyRotationFee); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := runtime.Skip(dAtA[iNdEx:])
@@ -15556,6 +15635,9 @@ type Params struct {
BondDenom string `protobuf:"bytes,5,opt,name=bond_denom,json=bondDenom,proto3" json:"bond_denom,omitempty"`
// min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators
MinCommissionRate string `protobuf:"bytes,6,opt,name=min_commission_rate,json=minCommissionRate,proto3" json:"min_commission_rate,omitempty"`
// key_rotation_fee is fee to be spent when rotating validator's key
// (either consensus pubkey or operator key)
KeyRotationFee *v1beta1.Coin `protobuf:"bytes,7,opt,name=key_rotation_fee,json=keyRotationFee,proto3" json:"key_rotation_fee,omitempty"`
}
func (x *Params) Reset() {
@@ -15620,6 +15702,13 @@ func (x *Params) GetMinCommissionRate() string {
return ""
}
func (x *Params) GetKeyRotationFee() *v1beta1.Coin {
if x != nil {
return x.KeyRotationFee
}
return nil
}
// DelegationResponse is equivalent to Delegation except that it contains a
// balance in addition to shares which is more suitable for client responses.
type DelegationResponse struct {
@@ -16236,7 +16325,7 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{
0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65,
0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f,
0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a,
0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x9c, 0x03, 0x0a, 0x06, 0x50, 0x61,
0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xe7, 0x03, 0x0a, 0x06, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e,
0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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,
@@ -16260,124 +16349,129 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{
0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xd2, 0xb4, 0x2d, 0x0a,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52,
0x11, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61,
0x74, 0x65, 0x3a, 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e,
0x67, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c,
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x4d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c,
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0,
0x2a, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e,
0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 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, 0x00,
0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04,
0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xcd, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
0x74, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 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, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x6b,
0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x3a, 0x24, 0xe8,
0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73,
0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x64, 0x65,
0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x64,
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c,
0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 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, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01,
0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22,
0xcd, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a,
0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e,
0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52,
0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x42, 0x2b, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49,
0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74,
0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22,
0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65,
0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8,
0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x45, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e,
0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde,
0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d,
0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04,
0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a,
0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64,
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8,
0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64,
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a,
0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00,
0x22, 0xeb, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x71, 0x0a, 0x11, 0x6e, 0x6f, 0x74,
0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x45, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f,
0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e,
0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65,
0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6e, 0x6f, 0x74,
0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x66, 0x0a, 0x0d,
0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49,
0x6e, 0x74, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b,
0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52,
0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a,
0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e,
0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xeb, 0x01, 0x0a, 0x04,
0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x71, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64,
0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
0x45, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73,
0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xea, 0xde,
0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b,
0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e,
0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f,
0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, 0x01, 0x22, 0x59,
0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74,
0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01,
0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x19, 0x43, 0x6f,
0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61,
0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65,
0x73, 0x73, 0x12, 0x56, 0x0a, 0x0f, 0x6f, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70,
0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72,
0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6f, 0x6c, 0x64,
0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x65,
0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62,
0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b,
0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x66, 0x65,
0x65, 0x18, 0x05, 0x20, 0x01, 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, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x66,
0x65, 0x65, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x53, 0x0a, 0x19,
0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x73, 0x4f, 0x66, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65,
0x64, 0x43, 0x6f, 0x6e, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65,
0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a,
0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26,
0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e,
0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e,
0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53,
0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10,
0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67,
0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f,
0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e,
0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52,
0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49,
0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01,
0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44,
0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f,
0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e,
0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca,
0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67,
0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18,
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a,
0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6e, 0x6f, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x65,
0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x66, 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65,
0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41,
0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64,
0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f,
0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4,
0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a,
0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a,
0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, 0x01, 0x22, 0x59, 0x0a, 0x10, 0x56, 0x61, 0x6c,
0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, 0x0a,
0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69,
0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62,
0x4b, 0x65, 0x79, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61,
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a,
0x0f, 0x6f, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4,
0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e,
0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0d, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x50,
0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e,
0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0d,
0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a,
0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68,
0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01,
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, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x3a, 0x08, 0x88,
0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x53, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x41, 0x64,
0x64, 0x72, 0x73, 0x4f, 0x66, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x73,
0x4b, 0x65, 0x79, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65,
0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a,
0x0a, 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42,
0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e,
0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e,
0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45,
0x44, 0x10, 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65,
0x64, 0x12, 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d,
0x20, 0x09, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42,
0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45,
0x44, 0x10, 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a,
0x04, 0x88, 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f,
0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f,
0x55, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49,
0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49,
0x4d, 0x45, 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69,
0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53,
0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69,
0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -16446,20 +16540,21 @@ var file_cosmos_staking_v1beta1_staking_proto_depIdxs = []int32{
27, // 14: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp
16, // 15: cosmos.staking.v1beta1.Redelegation.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntry
29, // 16: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration
13, // 17: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation
30, // 18: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin
16, // 19: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry
17, // 20: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation
20, // 21: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse
31, // 22: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate
28, // 23: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey:type_name -> google.protobuf.Any
28, // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey:type_name -> google.protobuf.Any
30, // 25: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee:type_name -> cosmos.base.v1beta1.Coin
26, // [26:26] is the sub-list for method output_type
26, // [26:26] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name
30, // 17: cosmos.staking.v1beta1.Params.key_rotation_fee:type_name -> cosmos.base.v1beta1.Coin
13, // 18: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation
30, // 19: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin
16, // 20: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry
17, // 21: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation
20, // 22: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse
31, // 23: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate
28, // 24: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.old_cons_pubkey:type_name -> google.protobuf.Any
28, // 25: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.new_cons_pubkey:type_name -> google.protobuf.Any
30, // 26: cosmos.staking.v1beta1.ConsPubKeyRotationHistory.fee:type_name -> cosmos.base.v1beta1.Coin
27, // [27:27] is the sub-list for method output_type
27, // [27:27] is the sub-list for method input_type
27, // [27:27] is the sub-list for extension type_name
27, // [27:27] is the sub-list for extension extendee
0, // [0:27] is the sub-list for field type_name
}
func init() { file_cosmos_staking_v1beta1_staking_proto_init() }
+8 -8
View File
@@ -7440,14 +7440,14 @@ func (x *fastReflection_MsgRotateConsPubKey) ProtoMethods() *protoiface.Methods
copy(dAtA[i:], encoded)
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
i--
dAtA[i] = 0x1a
dAtA[i] = 0x12
}
if len(x.ValidatorAddress) > 0 {
i -= len(x.ValidatorAddress)
copy(dAtA[i:], x.ValidatorAddress)
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorAddress)))
i--
dAtA[i] = 0x12
dAtA[i] = 0xa
}
if input.Buf != nil {
input.Buf = append(input.Buf, dAtA...)
@@ -7498,7 +7498,7 @@ func (x *fastReflection_MsgRotateConsPubKey) ProtoMethods() *protoiface.Methods
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgRotateConsPubKey: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 2:
case 1:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
}
@@ -7530,7 +7530,7 @@ func (x *fastReflection_MsgRotateConsPubKey) ProtoMethods() *protoiface.Methods
}
x.ValidatorAddress = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NewPubkey", wireType)
}
@@ -8636,8 +8636,8 @@ type MsgRotateConsPubKey struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
NewPubkey *anypb.Any `protobuf:"bytes,3,opt,name=new_pubkey,json=newPubkey,proto3" json:"new_pubkey,omitempty"`
ValidatorAddress string `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
NewPubkey *anypb.Any `protobuf:"bytes,2,opt,name=new_pubkey,json=newPubkey,proto3" json:"new_pubkey,omitempty"`
}
func (x *MsgRotateConsPubKey) Reset() {
@@ -8917,11 +8917,11 @@ var file_cosmos_staking_v1beta1_tx_proto_rawDesc = []byte{
0x6e, 0x73, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x52, 0x6f, 0x74, 0x61, 0x74,
0x65, 0x43, 0x6f, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x11, 0x76,
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xd2, 0xb4, 0x2d, 0x1d, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64,
0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4d, 0x0a, 0x0a, 0x6e,
0x65, 0x77, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x65, 0x77, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52,
@@ -332,6 +332,10 @@ message Params {
(amino.dont_omitempty) = true,
(cosmos_proto.scalar) = "cosmos.Dec"
];
// key_rotation_fee is fee to be spent when rotating validator's key
// (either consensus pubkey or operator key)
cosmos.base.v1beta1.Coin key_rotation_fee = 7 [(gogoproto.nullable) = false];
}
// DelegationResponse is equivalent to Delegation except that it contains a
+2 -2
View File
@@ -220,8 +220,8 @@ message MsgRotateConsPubKey {
option (gogoproto.goproto_getters) = false;
option (gogoproto.equal) = false;
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
google.protobuf.Any new_pubkey = 3 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"];
string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
google.protobuf.Any new_pubkey = 2 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"];
}
// MsgRotateConsPubKeyResponse defines the response structure for executing a
+1 -1
View File
@@ -3,7 +3,7 @@ module github.com/cosmos/cosmos-sdk/tests
go 1.21
require (
cosmossdk.io/api v0.7.2
cosmossdk.io/api v0.7.3-0.20231018072017-35c402025504
cosmossdk.io/collections v0.4.0
cosmossdk.io/core v0.12.0
cosmossdk.io/depinject v1.0.0-alpha.4
+2 -2
View File
@@ -187,8 +187,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
cosmossdk.io/api v0.7.2 h1:BO3i5fvKMKvfaUiMkCznxViuBEfyWA/k6w2eAF6q1C4=
cosmossdk.io/api v0.7.2/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38=
cosmossdk.io/api v0.7.3-0.20231018072017-35c402025504 h1:DrOuHptmmjB+jIsOG/eLq9cLdb5BZy3y70E60gnZINw=
cosmossdk.io/api v0.7.3-0.20231018072017-35c402025504/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38=
cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s=
cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0=
cosmossdk.io/core v0.12.0 h1:aFuvkG6eDv0IQC+UDjx86wxNWVAxdCFk7OABJ1Vh4RU=
@@ -422,7 +422,7 @@ func TestGRPCValidatorDelegations(t *testing.T) {
ValidatorAddr: validator.OperatorAddress,
}
testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.ValidatorDelegations, 14475, false)
testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.ValidatorDelegations, 14637, false)
}
func TestGRPCValidatorUnbondingDelegations(t *testing.T) {
@@ -502,7 +502,7 @@ func TestGRPCDelegation(t *testing.T) {
DelegatorAddr: delegator1,
}
testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.Delegation, 4635, false)
testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.Delegation, 4689, false)
}
func TestGRPCUnbondingDelegation(t *testing.T) {
@@ -577,7 +577,7 @@ func TestGRPCDelegatorDelegations(t *testing.T) {
DelegatorAddr: delegator1,
}
testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.DelegatorDelegations, 4238, false)
testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.DelegatorDelegations, 4292, false)
}
func TestGRPCDelegatorValidator(t *testing.T) {
@@ -742,7 +742,7 @@ func TestGRPCPool(t *testing.T) {
f = initDeterministicFixture(t) // reset
getStaticValidator(t, f)
testdata.DeterministicIterations(f.ctx, t, &stakingtypes.QueryPoolRequest{}, f.queryClient.Pool, 6242, false)
testdata.DeterministicIterations(f.ctx, t, &stakingtypes.QueryPoolRequest{}, f.queryClient.Pool, 6296, false)
}
func TestGRPCRedelegations(t *testing.T) {
@@ -815,13 +815,15 @@ func TestGRPCParams(t *testing.T) {
f := initDeterministicFixture(t)
rapid.Check(t, func(rt *rapid.T) {
bondDenom := rapid.StringMatching(sdk.DefaultCoinDenomRegex()).Draw(rt, "bond-denom")
params := stakingtypes.Params{
BondDenom: rapid.StringMatching(sdk.DefaultCoinDenomRegex()).Draw(rt, "bond-denom"),
BondDenom: bondDenom,
UnbondingTime: durationGenerator().Draw(rt, "duration"),
MaxValidators: rapid.Uint32Min(1).Draw(rt, "max-validators"),
MaxEntries: rapid.Uint32Min(1).Draw(rt, "max-entries"),
HistoricalEntries: rapid.Uint32Min(1).Draw(rt, "historical-entries"),
MinCommissionRate: math.LegacyNewDecWithPrec(rapid.Int64Range(0, 100).Draw(rt, "commission"), 2),
KeyRotationFee: sdk.NewInt64Coin(bondDenom, rapid.Int64Range(10000, 100000).Draw(rt, "amount")),
}
err := f.stakingKeeper.Params.Set(f.ctx, params)
@@ -837,10 +839,11 @@ func TestGRPCParams(t *testing.T) {
MaxEntries: 5,
HistoricalEntries: 5,
MinCommissionRate: math.LegacyNewDecWithPrec(5, 2),
KeyRotationFee: sdk.NewInt64Coin("denom", 10000),
}
err := f.stakingKeeper.Params.Set(f.ctx, params)
assert.NilError(t, err)
testdata.DeterministicIterations(f.ctx, t, &stakingtypes.QueryParamsRequest{}, f.queryClient.Params, 1114, false)
testdata.DeterministicIterations(f.ctx, t, &stakingtypes.QueryParamsRequest{}, f.queryClient.Params, 1162, false)
}
@@ -346,6 +346,20 @@ func TestAminoJSON_LegacyParity(t *testing.T) {
MinSignedPerWindow: dec10bz,
},
},
"staking/msg_update_params": {
gogo: &stakingtypes.MsgUpdateParams{
Params: stakingtypes.Params{
UnbondingTime: 0,
KeyRotationFee: types.Coin{},
},
},
pulsar: &stakingapi.MsgUpdateParams{
Params: &stakingapi.Params{
UnbondingTime: &durationpb.Duration{Seconds: 0},
KeyRotationFee: &v1beta1.Coin{},
},
},
},
"staking/create_validator": {
gogo: &stakingtypes.MsgCreateValidator{Pubkey: pubkeyAny},
pulsar: &stakingapi.MsgCreateValidator{
+16 -16
View File
@@ -251,7 +251,7 @@ func (s *KeeperTestSuite) TestLastTotalPowerMigrationToColls() {
s.ctx.KVStore(s.key).Set(getLastValidatorPowerKey(valAddrs[i]), bz)
},
"f28811f2b0a0ab9db60cdcae93680faff9dbadd4a3a8a2d088bb19b0428ad3a9",
"198aa9b8c1d9bc02308b7b2a48944f3e4b05c6b8312cb0bcc73518d1260f682d",
)
s.Require().NoError(err)
@@ -266,7 +266,7 @@ func (s *KeeperTestSuite) TestLastTotalPowerMigrationToColls() {
err = s.stakingKeeper.LastValidatorPower.Set(s.ctx, valAddrs[i], intV)
s.Require().NoError(err)
},
"f28811f2b0a0ab9db60cdcae93680faff9dbadd4a3a8a2d088bb19b0428ad3a9",
"198aa9b8c1d9bc02308b7b2a48944f3e4b05c6b8312cb0bcc73518d1260f682d",
)
s.Require().NoError(err)
}
@@ -284,7 +284,7 @@ func (s *KeeperTestSuite) TestSrcRedelegationsMigrationToColls() {
// legacy method to set in the state
s.ctx.KVStore(s.key).Set(getREDByValSrcIndexKey(addrs[i], valAddrs[i], valAddrs[i+1]), []byte{})
},
"cb7b7086b1e03add24f85f894531fb36b3b9746f2e661e1640ec528a4f23a3d9",
"cae99e5c0498356a290f9478b7db73d522840b736878a9d4c00b56d1ddd7fd04",
)
s.Require().NoError(err)
@@ -297,7 +297,7 @@ func (s *KeeperTestSuite) TestSrcRedelegationsMigrationToColls() {
err := s.stakingKeeper.RedelegationsByValSrc.Set(s.ctx, collections.Join3(valAddrs[i].Bytes(), addrs[i].Bytes(), valAddrs[i+1].Bytes()), []byte{})
s.Require().NoError(err)
},
"cb7b7086b1e03add24f85f894531fb36b3b9746f2e661e1640ec528a4f23a3d9",
"cae99e5c0498356a290f9478b7db73d522840b736878a9d4c00b56d1ddd7fd04",
)
s.Require().NoError(err)
@@ -316,7 +316,7 @@ func (s *KeeperTestSuite) TestDstRedelegationsMigrationToColls() {
// legacy method to set in the state
s.ctx.KVStore(s.key).Set(getREDByValDstIndexKey(addrs[i], valAddrs[i], valAddrs[i+1]), []byte{})
},
"4beb77994beff3c8ad9cecca9ee3a74fb551356250f0b8bd3936c4e4f506443b", // this hash obtained when ran this test in main branch
"1b7687449a83f8176a60aeced7bcfc69a2b957b9eefad60c69a9fae9acfdaa81", // this hash obtained when ran this test in main branch
)
s.Require().NoError(err)
@@ -329,7 +329,7 @@ func (s *KeeperTestSuite) TestDstRedelegationsMigrationToColls() {
err := s.stakingKeeper.RedelegationsByValDst.Set(s.ctx, collections.Join3(valAddrs[i+1].Bytes(), addrs[i].Bytes(), valAddrs[i].Bytes()), []byte{})
s.Require().NoError(err)
},
"4beb77994beff3c8ad9cecca9ee3a74fb551356250f0b8bd3936c4e4f506443b",
"1b7687449a83f8176a60aeced7bcfc69a2b957b9eefad60c69a9fae9acfdaa81",
)
s.Require().NoError(err)
@@ -360,7 +360,7 @@ func (s *KeeperTestSuite) TestUnbondingDelegationsMigrationToColls() {
s.ctx.KVStore(s.key).Set(getUBDKey(delAddrs[i], valAddrs[i]), bz)
s.ctx.KVStore(s.key).Set(getUBDByValIndexKey(delAddrs[i], valAddrs[i]), []byte{})
},
"d03ca412f3f6849b5148a2ca49ac2555f65f90b7fab6a289575ed337f15c0f4b",
"70454ad98368368aaff32d207a7a115fba49133ecf2a225d8e3eca88c6b2324c",
)
s.Require().NoError(err)
@@ -384,7 +384,7 @@ func (s *KeeperTestSuite) TestUnbondingDelegationsMigrationToColls() {
err := s.stakingKeeper.SetUnbondingDelegation(s.ctx, ubd)
s.Require().NoError(err)
},
"d03ca412f3f6849b5148a2ca49ac2555f65f90b7fab6a289575ed337f15c0f4b",
"70454ad98368368aaff32d207a7a115fba49133ecf2a225d8e3eca88c6b2324c",
)
s.Require().NoError(err)
}
@@ -401,7 +401,7 @@ func (s *KeeperTestSuite) TestUBDQueueMigrationToColls() {
// legacy Set method
s.ctx.KVStore(s.key).Set(getUnbondingDelegationTimeKey(date), []byte{})
},
"7b8965aacc97646d6766a5a53bae397fe149d1c98fed027bea8774a18621ce6a",
"2dd1dd08ea1cc2b0a076c420e3888b218647b9409b435f75e5730b0e4f25e890",
)
s.Require().NoError(err)
@@ -414,7 +414,7 @@ func (s *KeeperTestSuite) TestUBDQueueMigrationToColls() {
err := s.stakingKeeper.SetUBDQueueTimeSlice(s.ctx, date, nil)
s.Require().NoError(err)
},
"7b8965aacc97646d6766a5a53bae397fe149d1c98fed027bea8774a18621ce6a",
"2dd1dd08ea1cc2b0a076c420e3888b218647b9409b435f75e5730b0e4f25e890",
)
s.Require().NoError(err)
}
@@ -448,7 +448,7 @@ func (s *KeeperTestSuite) TestValidatorsMigrationToColls() {
// legacy Set method
s.ctx.KVStore(s.key).Set(getValidatorKey(valAddrs[i]), valBz)
},
"6a8737af6309d53494a601e900832ec27763adefd7fe8ff104477d8130d7405f",
"aa495d55fb45df89fcf1d4326331bfc1244ef879764abe76f6ce2a41ccd4180d",
)
s.Require().NoError(err)
@@ -474,7 +474,7 @@ func (s *KeeperTestSuite) TestValidatorsMigrationToColls() {
err := s.stakingKeeper.SetValidator(s.ctx, val)
s.Require().NoError(err)
},
"6a8737af6309d53494a601e900832ec27763adefd7fe8ff104477d8130d7405f",
"aa495d55fb45df89fcf1d4326331bfc1244ef879764abe76f6ce2a41ccd4180d",
)
s.Require().NoError(err)
}
@@ -497,7 +497,7 @@ func (s *KeeperTestSuite) TestValidatorQueueMigrationToColls() {
// legacy Set method
s.ctx.KVStore(s.key).Set(getValidatorQueueKey(endTime, endHeight), bz)
},
"8cf5fb4def683e83ea4cc4f14d8b2abc4c6af66709ad8af391dc749e63ef7524",
"b23a5905ced2b76c46ddd0f7d39e2ed7dcc68cd81993c497ee314b2e1a158595",
)
s.Require().NoError(err)
@@ -512,7 +512,7 @@ func (s *KeeperTestSuite) TestValidatorQueueMigrationToColls() {
err := s.stakingKeeper.SetUnbondingValidatorsQueue(s.ctx, endTime, endHeight, addrs)
s.Require().NoError(err)
},
"8cf5fb4def683e83ea4cc4f14d8b2abc4c6af66709ad8af391dc749e63ef7524",
"b23a5905ced2b76c46ddd0f7d39e2ed7dcc68cd81993c497ee314b2e1a158595",
)
s.Require().NoError(err)
}
@@ -540,7 +540,7 @@ func (s *KeeperTestSuite) TestRedelegationQueueMigrationToColls() {
s.Require().NoError(err)
s.ctx.KVStore(s.key).Set(getRedelegationTimeKey(date), bz)
},
"de104dd19c7a72c6b0ad03d25c897313bb1473befc118952ad88e6a8726749c9",
"d6a1c46c7c5793ff7094b67252c82883aecb75c8359428a59aacd3657fa16235",
)
s.Require().NoError(err)
@@ -562,7 +562,7 @@ func (s *KeeperTestSuite) TestRedelegationQueueMigrationToColls() {
err := s.stakingKeeper.SetRedelegationQueueTimeSlice(s.ctx, date, dvvTriplets.Triplets)
s.Require().NoError(err)
},
"de104dd19c7a72c6b0ad03d25c897313bb1473befc118952ad88e6a8726749c9",
"d6a1c46c7c5793ff7094b67252c82883aecb75c8359428a59aacd3657fa16235",
)
s.Require().NoError(err)
}
+10 -1
View File
@@ -19,6 +19,7 @@ const (
unbondingTime = "unbonding_time"
maxValidators = "max_validators"
historicalEntries = "historical_entries"
keyRotationFee = "cons_pubkey_rotation_fee"
)
// genUnbondingTime returns randomized UnbondingTime
@@ -36,6 +37,11 @@ func getHistEntries(r *rand.Rand) uint32 {
return uint32(r.Intn(int(types.DefaultHistoricalEntries + 1)))
}
// getKeyRotationFee returns randomized keyRotationFee between 10000-1000000.
func getKeyRotationFee(r *rand.Rand) sdk.Coin {
return sdk.NewInt64Coin(sdk.DefaultBondDenom, r.Int63n(types.DefaultKeyRotationFee.Amount.Int64()-10000)+10000)
}
// RandomizedGenState generates a random GenesisState for staking
func RandomizedGenState(simState *module.SimulationState) {
// params
@@ -44,6 +50,7 @@ func RandomizedGenState(simState *module.SimulationState) {
maxVals uint32
histEntries uint32
minCommissionRate sdkmath.LegacyDec
rotationFee sdk.Coin
)
simState.AppParams.GetOrGenerate(unbondingTime, &unbondTime, simState.Rand, func(r *rand.Rand) { unbondTime = genUnbondingTime(r) })
@@ -52,10 +59,12 @@ func RandomizedGenState(simState *module.SimulationState) {
simState.AppParams.GetOrGenerate(historicalEntries, &histEntries, simState.Rand, func(r *rand.Rand) { histEntries = getHistEntries(r) })
simState.AppParams.GetOrGenerate(keyRotationFee, &histEntries, simState.Rand, func(r *rand.Rand) { rotationFee = getKeyRotationFee(r) })
// NOTE: the slashing module need to be defined after the staking module on the
// NewSimulationManager constructor for this to work
simState.UnbondTime = unbondTime
params := types.NewParams(simState.UnbondTime, maxVals, 7, histEntries, simState.BondDenom, minCommissionRate)
params := types.NewParams(simState.UnbondTime, maxVals, 7, histEntries, simState.BondDenom, minCommissionRate, rotationFee)
// validators & delegations
var (
+3 -3
View File
@@ -64,9 +64,9 @@ func TestRandomizedGenState(t *testing.T) {
require.Equal(t, "BOND_STATUS_UNBONDED", stakingGenesis.Validators[2].Status.String())
require.Equal(t, "1000", stakingGenesis.Validators[2].Tokens.String())
require.Equal(t, "1000.000000000000000000", stakingGenesis.Validators[2].DelegatorShares.String())
require.Equal(t, "0.292059246265731326", stakingGenesis.Validators[2].Commission.CommissionRates.Rate.String())
require.Equal(t, "0.330000000000000000", stakingGenesis.Validators[2].Commission.CommissionRates.MaxRate.String())
require.Equal(t, "0.038337453731274481", stakingGenesis.Validators[2].Commission.CommissionRates.MaxChangeRate.String())
require.Equal(t, "0.760000000000000000", stakingGenesis.Validators[2].Commission.CommissionRates.Rate.String())
require.Equal(t, "0.760000000000000000", stakingGenesis.Validators[2].Commission.CommissionRates.MaxRate.String())
require.Equal(t, "0.312739151653465930", stakingGenesis.Validators[2].Commission.CommissionRates.MaxChangeRate.String())
require.Equal(t, "1", stakingGenesis.Validators[2].MinSelfDelegation.String())
}
+34 -3
View File
@@ -31,11 +31,20 @@ const (
DefaultHistoricalEntries uint32 = 10000
)
// DefaultMinCommissionRate is set to 0%
var DefaultMinCommissionRate = math.LegacyZeroDec()
var (
// DefaultMinCommissionRate is set to 0%
DefaultMinCommissionRate = math.LegacyZeroDec()
// DefaultKeyRotationFee is fees used to rotate the ConsPubkey or Operator key
DefaultKeyRotationFee = sdk.NewInt64Coin(sdk.DefaultBondDenom, 1000000)
)
// NewParams creates a new Params instance
func NewParams(unbondingTime time.Duration, maxValidators, maxEntries, historicalEntries uint32, bondDenom string, minCommissionRate math.LegacyDec) Params {
func NewParams(unbondingTime time.Duration,
maxValidators, maxEntries, historicalEntries uint32,
bondDenom string, minCommissionRate math.LegacyDec,
keyRotationFee sdk.Coin,
) Params {
return Params{
UnbondingTime: unbondingTime,
MaxValidators: maxValidators,
@@ -43,6 +52,7 @@ func NewParams(unbondingTime time.Duration, maxValidators, maxEntries, historica
HistoricalEntries: historicalEntries,
BondDenom: bondDenom,
MinCommissionRate: minCommissionRate,
KeyRotationFee: keyRotationFee,
}
}
@@ -55,6 +65,7 @@ func DefaultParams() Params {
DefaultHistoricalEntries,
sdk.DefaultBondDenom,
DefaultMinCommissionRate,
DefaultKeyRotationFee,
)
}
@@ -104,6 +115,10 @@ func (p Params) Validate() error {
return err
}
if err := validateKeyRotationFee(p.KeyRotationFee); err != nil {
return err
}
return nil
}
@@ -203,3 +218,19 @@ func validateMinCommissionRate(i interface{}) error {
return nil
}
func validateKeyRotationFee(i interface{}) error {
v, ok := i.(sdk.Coin)
if !ok {
return fmt.Errorf("invalid parameter type: %T", i)
}
if v.IsNil() {
return fmt.Errorf("cons pubkey rotation fee cannot be nil: %s", v)
}
if v.IsLTE(sdk.NewInt64Coin(sdk.DefaultBondDenom, 0)) {
return fmt.Errorf("cons pubkey rotation fee cannot be negative or zero: %s", v)
}
return nil
}
+11 -1
View File
@@ -7,6 +7,7 @@ import (
"cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/staking/types"
)
@@ -27,13 +28,22 @@ func TestParamsEqual(t *testing.T) {
func TestValidateParams(t *testing.T) {
params := types.DefaultParams()
coinZero := sdk.NewInt64Coin("stake", 0)
// default params have no error
require.NoError(t, params.Validate())
// validate mincommission
// validate min commission rate
params.MinCommissionRate = math.LegacyNewDec(-1)
require.Error(t, params.Validate())
params.MinCommissionRate = math.LegacyNewDec(2)
require.Error(t, params.Validate())
// reset params to default
params = types.DefaultParams()
// check keyRotationFee
params.KeyRotationFee = coinZero
require.Error(t, params.Validate())
}
File diff suppressed because it is too large Load Diff
+84 -84
View File
@@ -653,8 +653,8 @@ var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo
//
// Since: cosmos-sdk 0.51
type MsgRotateConsPubKey struct {
ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
NewPubkey *types.Any `protobuf:"bytes,3,opt,name=new_pubkey,json=newPubkey,proto3" json:"new_pubkey,omitempty"`
ValidatorAddress string `protobuf:"bytes,1,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
NewPubkey *types.Any `protobuf:"bytes,2,opt,name=new_pubkey,json=newPubkey,proto3" json:"new_pubkey,omitempty"`
}
func (m *MsgRotateConsPubKey) Reset() { *m = MsgRotateConsPubKey{} }
@@ -752,84 +752,84 @@ func init() {
func init() { proto.RegisterFile("cosmos/staking/v1beta1/tx.proto", fileDescriptor_0926ef28816b35ab) }
var fileDescriptor_0926ef28816b35ab = []byte{
// 1217 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0xc5,
0x17, 0xf7, 0xda, 0x6d, 0xfa, 0xcd, 0xe4, 0x9b, 0x5f, 0x9b, 0xa4, 0x75, 0x36, 0xad, 0x5d, 0xb6,
0x81, 0x44, 0x01, 0xaf, 0xdb, 0x14, 0x81, 0x30, 0x15, 0x6a, 0x9c, 0xb4, 0x50, 0xc0, 0x28, 0xda,
0x90, 0x22, 0x21, 0x24, 0x33, 0xde, 0x9d, 0xac, 0x57, 0xf1, 0xce, 0xb8, 0x3b, 0xe3, 0xb4, 0xbe,
0x21, 0x4e, 0xc0, 0x85, 0x4a, 0x9c, 0x91, 0xca, 0x01, 0x09, 0x6e, 0x39, 0xe4, 0x5f, 0x40, 0xaa,
0x38, 0x55, 0x39, 0xa1, 0x1e, 0x02, 0x4a, 0x0e, 0xe9, 0x7f, 0xc0, 0x81, 0x0b, 0xda, 0xdd, 0xd9,
0xf5, 0xee, 0xfa, 0x67, 0x42, 0x7b, 0xe9, 0x25, 0x71, 0xde, 0x7c, 0xde, 0x67, 0xe6, 0xbd, 0xcf,
0x9b, 0x37, 0x2f, 0x06, 0x59, 0x8d, 0x50, 0x8b, 0xd0, 0x3c, 0x65, 0x70, 0xdb, 0xc4, 0x46, 0x7e,
0xe7, 0x5a, 0x05, 0x31, 0x78, 0x2d, 0xcf, 0x1e, 0x28, 0x75, 0x9b, 0x30, 0x22, 0x9e, 0xf7, 0x00,
0x0a, 0x07, 0x28, 0x1c, 0x20, 0xcd, 0x1a, 0x84, 0x18, 0x35, 0x94, 0x77, 0x51, 0x95, 0xc6, 0x56,
0x1e, 0xe2, 0xa6, 0xe7, 0x22, 0x65, 0xe3, 0x4b, 0xcc, 0xb4, 0x10, 0x65, 0xd0, 0xaa, 0x73, 0xc0,
0xb4, 0x41, 0x0c, 0xe2, 0x7e, 0xcc, 0x3b, 0x9f, 0xb8, 0x75, 0xd6, 0xdb, 0xa9, 0xec, 0x2d, 0xf0,
0x6d, 0xbd, 0xa5, 0x0c, 0x3f, 0x65, 0x05, 0x52, 0x14, 0x1c, 0x51, 0x23, 0x26, 0xe6, 0xeb, 0xf3,
0x5d, 0xa2, 0xf0, 0x0f, 0xed, 0xa1, 0x2e, 0x70, 0x94, 0x45, 0x1d, 0x84, 0xf3, 0x8b, 0x2f, 0x4c,
0x42, 0xcb, 0xc4, 0x24, 0xef, 0xfe, 0xf4, 0x4c, 0xf2, 0x3f, 0x67, 0x80, 0x58, 0xa2, 0xc6, 0xaa,
0x8d, 0x20, 0x43, 0x77, 0x61, 0xcd, 0xd4, 0x21, 0x23, 0xb6, 0xb8, 0x0e, 0x46, 0x74, 0x44, 0x35,
0xdb, 0xac, 0x33, 0x93, 0xe0, 0xb4, 0x70, 0x59, 0x58, 0x1c, 0x59, 0xbe, 0xa2, 0x74, 0xce, 0x91,
0xb2, 0xd6, 0x82, 0x16, 0x87, 0x1f, 0x1f, 0x64, 0x13, 0xbf, 0x1c, 0xef, 0x2e, 0x09, 0x6a, 0x98,
0x42, 0x54, 0x01, 0xd0, 0x88, 0x65, 0x99, 0x94, 0x3a, 0x84, 0x49, 0x97, 0x70, 0xa1, 0x1b, 0xe1,
0x6a, 0x80, 0x54, 0x21, 0x43, 0x34, 0x4c, 0x1a, 0x62, 0x11, 0xbf, 0x04, 0x53, 0x96, 0x89, 0xcb,
0x14, 0xd5, 0xb6, 0xca, 0x3a, 0xaa, 0x21, 0x03, 0xba, 0xa7, 0x4d, 0x5d, 0x16, 0x16, 0x87, 0x8b,
0x57, 0x1d, 0x9f, 0xa7, 0x07, 0xd9, 0x19, 0x6f, 0x0f, 0xaa, 0x6f, 0x2b, 0x26, 0xc9, 0x5b, 0x90,
0x55, 0x95, 0x3b, 0x98, 0xed, 0xef, 0xe5, 0x00, 0xdf, 0xfc, 0x0e, 0x66, 0x1e, 0xf5, 0xa4, 0x65,
0xe2, 0x0d, 0x54, 0xdb, 0x5a, 0x0b, 0xa8, 0xc4, 0xf7, 0xc1, 0x24, 0x27, 0x26, 0x76, 0x19, 0xea,
0xba, 0x8d, 0x28, 0x4d, 0x9f, 0x71, 0xf9, 0xa5, 0xfd, 0xbd, 0xdc, 0x34, 0xa7, 0x58, 0xf1, 0x56,
0x36, 0x98, 0x6d, 0x62, 0x23, 0x2d, 0xa8, 0x13, 0x81, 0x13, 0x5f, 0x11, 0x3f, 0x01, 0x93, 0x3b,
0x7e, 0x76, 0x03, 0xa2, 0xb3, 0x2e, 0xd1, 0x2b, 0xfb, 0x7b, 0xb9, 0x4b, 0x9c, 0x28, 0x50, 0x20,
0xc2, 0xa8, 0x4e, 0xec, 0xc4, 0xec, 0xe2, 0x6d, 0x30, 0x54, 0x6f, 0x54, 0xb6, 0x51, 0x33, 0x3d,
0xe4, 0xa6, 0x72, 0x5a, 0xf1, 0x8a, 0x51, 0xf1, 0x8b, 0x51, 0x59, 0xc1, 0xcd, 0x62, 0xfa, 0xf7,
0xd6, 0x19, 0x35, 0xbb, 0x59, 0x67, 0x44, 0x59, 0x6f, 0x54, 0x3e, 0x42, 0x4d, 0x95, 0x7b, 0x8b,
0x05, 0x70, 0x76, 0x07, 0xd6, 0x1a, 0x28, 0x7d, 0xce, 0xa5, 0x99, 0xf5, 0x15, 0x71, 0x2a, 0x30,
0x24, 0x87, 0x19, 0x11, 0xd6, 0x73, 0x29, 0xdc, 0xfc, 0xe6, 0x51, 0x36, 0xf1, 0xec, 0x51, 0x36,
0xf1, 0xf5, 0xf1, 0xee, 0x52, 0x7b, 0x78, 0xdf, 0x1d, 0xef, 0x2e, 0xf1, 0xb8, 0x72, 0x54, 0xdf,
0xce, 0xb7, 0x97, 0x99, 0x7c, 0x11, 0x48, 0xed, 0x56, 0x15, 0xd1, 0x3a, 0xc1, 0x14, 0xc9, 0x3f,
0xa7, 0xc0, 0x44, 0x89, 0x1a, 0xb7, 0x74, 0x93, 0xbd, 0xc8, 0xca, 0xec, 0x28, 0x4d, 0xf2, 0xf4,
0xd2, 0xdc, 0x05, 0xe3, 0xad, 0x1a, 0x2d, 0xdb, 0x90, 0x21, 0x5e, 0x91, 0xb9, 0xa7, 0x07, 0xd9,
0xb9, 0xf6, 0x6a, 0xfc, 0x18, 0x19, 0x50, 0x6b, 0xae, 0x21, 0x2d, 0x54, 0x93, 0x6b, 0x48, 0x53,
0xc7, 0xb4, 0xc8, 0x2d, 0x10, 0x3f, 0xeb, 0x5c, 0xed, 0x5e, 0x35, 0x2e, 0x0c, 0x58, 0xe9, 0x1d,
0x8a, 0xbc, 0xf0, 0x5e, 0x7f, 0x1d, 0xe7, 0xa2, 0x3a, 0x46, 0x24, 0x91, 0x25, 0x90, 0x8e, 0xdb,
0x02, 0x0d, 0x7f, 0x4c, 0x82, 0x91, 0x12, 0x35, 0xf8, 0x6e, 0x48, 0xbc, 0xd5, 0xe9, 0x42, 0x09,
0x6e, 0x08, 0xe9, 0x6e, 0x17, 0x6a, 0xd0, 0xeb, 0xf4, 0x1f, 0x34, 0xbb, 0x01, 0x86, 0xa0, 0x45,
0x1a, 0x98, 0xb9, 0x52, 0x0d, 0x7a, 0x0f, 0xb8, 0x4f, 0xe1, 0x9d, 0x48, 0x02, 0xdb, 0xe2, 0x73,
0x12, 0x78, 0x3e, 0x9a, 0x40, 0x3f, 0x1f, 0xf2, 0x0c, 0x98, 0x0a, 0xfd, 0x19, 0xa4, 0xed, 0xdb,
0x94, 0xdb, 0x96, 0x8b, 0xc8, 0x30, 0xb1, 0x8a, 0xf4, 0xe7, 0x9c, 0xbd, 0x4d, 0x30, 0xd3, 0xca,
0x1e, 0xb5, 0xb5, 0x93, 0x67, 0x70, 0x2a, 0xf0, 0xdf, 0xb0, 0xb5, 0x8e, 0xb4, 0x3a, 0x65, 0x01,
0x6d, 0xea, 0xe4, 0xb4, 0x6b, 0x94, 0xb5, 0x6b, 0x73, 0xe6, 0x14, 0xda, 0xdc, 0xec, 0xaf, 0x4d,
0xac, 0x49, 0xc5, 0x92, 0x2e, 0xd7, 0xdd, 0x26, 0x15, 0xb3, 0xfa, 0x4a, 0x89, 0xaa, 0x7b, 0xdb,
0xeb, 0x35, 0xe4, 0x5c, 0xa5, 0xb2, 0x33, 0x01, 0xf0, 0x9e, 0x24, 0xb5, 0x75, 0xe4, 0x4f, 0xfd,
0xf1, 0xa0, 0x38, 0xea, 0x9c, 0xf3, 0xe1, 0x9f, 0x59, 0xc1, 0x3b, 0xeb, 0x58, 0x8b, 0xc1, 0xc1,
0xc8, 0x3f, 0x25, 0xc1, 0x68, 0x89, 0x1a, 0x9b, 0x58, 0x7f, 0xa9, 0xaf, 0xcd, 0xbb, 0xfd, 0xa5,
0x49, 0x47, 0xa5, 0x69, 0x65, 0x44, 0xfe, 0x55, 0x00, 0x33, 0x11, 0xcb, 0x8b, 0x54, 0x24, 0x14,
0x68, 0xf2, 0xe4, 0x81, 0xca, 0xcf, 0x92, 0xe0, 0xa2, 0xf3, 0xce, 0x41, 0xac, 0xa1, 0xda, 0x26,
0xae, 0x10, 0xac, 0x9b, 0xd8, 0x08, 0x8d, 0x19, 0x2f, 0xa3, 0xbc, 0xe2, 0x02, 0x18, 0xd7, 0x9c,
0x97, 0xdd, 0x51, 0xa1, 0x8a, 0x4c, 0xa3, 0xea, 0x5d, 0xe0, 0x94, 0x3a, 0xe6, 0x9b, 0x3f, 0x70,
0xad, 0x85, 0x0f, 0xfb, 0xd7, 0xc1, 0x42, 0x6c, 0x8e, 0xe8, 0x96, 0x49, 0xf9, 0x35, 0x30, 0xdf,
0x6b, 0x3d, 0x68, 0xb0, 0xbf, 0x09, 0x60, 0xdc, 0x29, 0x9f, 0xba, 0x0e, 0x19, 0x5a, 0x87, 0x36,
0xb4, 0xa8, 0xf8, 0x16, 0x18, 0x86, 0x0d, 0x56, 0x25, 0xb6, 0xc9, 0x9a, 0x7d, 0xb3, 0xdf, 0x82,
0x8a, 0x2b, 0x60, 0xa8, 0xee, 0x32, 0xf0, 0xe2, 0xc8, 0x74, 0x9b, 0x46, 0xbc, 0x7d, 0x22, 0xb9,
0xf2, 0x1c, 0x0b, 0x6f, 0x3b, 0xa1, 0xb7, 0x28, 0x9d, 0x90, 0xe7, 0x43, 0x21, 0x3f, 0x08, 0x26,
0xfe, 0xd8, 0x99, 0xe5, 0x59, 0x70, 0x21, 0x66, 0x0a, 0x42, 0xfc, 0x5b, 0x70, 0xdf, 0x16, 0x95,
0x30, 0xc8, 0xd0, 0x2a, 0xc1, 0xd4, 0x1b, 0xfd, 0x9e, 0x7b, 0x95, 0x94, 0x00, 0xc0, 0xe8, 0x7e,
0x99, 0x8f, 0xa3, 0xa9, 0x53, 0x8d, 0xa3, 0xc3, 0x18, 0xdd, 0x5f, 0x77, 0x09, 0x0a, 0x2b, 0xfd,
0xa7, 0x91, 0x4c, 0xb4, 0x1a, 0xe2, 0x11, 0xca, 0x97, 0xc0, 0x5c, 0x07, 0xb3, 0x9f, 0x98, 0xe5,
0x1f, 0xce, 0x81, 0x54, 0x89, 0x1a, 0xe2, 0x3d, 0x30, 0x1e, 0xff, 0xbf, 0x67, 0xa9, 0x9b, 0x74,
0xed, 0x63, 0xaa, 0xb4, 0x3c, 0x38, 0x36, 0xe8, 0x4d, 0xdb, 0x60, 0x34, 0x3a, 0xce, 0x2e, 0xf6,
0x20, 0x89, 0x20, 0xa5, 0xab, 0x83, 0x22, 0x83, 0xcd, 0xbe, 0x00, 0xff, 0x0b, 0xe6, 0xae, 0x2b,
0x3d, 0xbc, 0x7d, 0x90, 0xf4, 0xfa, 0x00, 0xa0, 0x80, 0xfd, 0x1e, 0x18, 0x8f, 0x8f, 0x27, 0xbd,
0xb2, 0x17, 0xc3, 0xf6, 0xcc, 0x5e, 0xb7, 0xb7, 0xb6, 0x02, 0x40, 0xe8, 0x4d, 0x7c, 0xb5, 0x07,
0x43, 0x0b, 0x26, 0xe5, 0x06, 0x82, 0x05, 0x7b, 0x7c, 0x2f, 0x80, 0xd9, 0xee, 0x8d, 0xfa, 0xcd,
0x5e, 0x9a, 0x77, 0xf3, 0x92, 0x6e, 0x9c, 0xc6, 0x2b, 0x38, 0x51, 0x15, 0xfc, 0x3f, 0xd2, 0xa6,
0x16, 0x7a, 0x05, 0x14, 0x02, 0x4a, 0xf9, 0x01, 0x81, 0xc1, 0x4e, 0x0c, 0x4c, 0xb4, 0x75, 0x8b,
0x5e, 0x35, 0x11, 0x07, 0x4b, 0xd7, 0x4f, 0x00, 0xf6, 0x77, 0x95, 0xce, 0x7e, 0xe5, 0xb4, 0xc2,
0xe2, 0xed, 0xc7, 0x87, 0x19, 0xe1, 0xc9, 0x61, 0x46, 0xf8, 0xeb, 0x30, 0x23, 0x3c, 0x3c, 0xca,
0x24, 0x9e, 0x1c, 0x65, 0x12, 0x7f, 0x1c, 0x65, 0x12, 0x9f, 0xbf, 0x61, 0x98, 0xac, 0xda, 0xa8,
0x28, 0x1a, 0xb1, 0xf8, 0xd7, 0x25, 0xf9, 0x8e, 0xbd, 0x91, 0x35, 0xeb, 0x88, 0x56, 0x86, 0xdc,
0x96, 0x73, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x89, 0x9a, 0x5a, 0xa8, 0xf2, 0x11, 0x00,
0x00,
// 1218 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0x45,
0x14, 0xf6, 0xda, 0x6d, 0x4a, 0x26, 0xe4, 0xd7, 0x26, 0x69, 0x9d, 0x4d, 0x6b, 0x97, 0x6d, 0x20,
0x51, 0xc0, 0xeb, 0x36, 0x45, 0x20, 0x4c, 0x85, 0x1a, 0x27, 0x2d, 0x14, 0x30, 0x8a, 0x36, 0xa4,
0x48, 0x08, 0xc9, 0x8c, 0x77, 0x27, 0xeb, 0x55, 0xbc, 0x33, 0xee, 0xce, 0x38, 0xad, 0x6f, 0x88,
0x13, 0x70, 0xa1, 0x12, 0x67, 0xa4, 0x72, 0x40, 0x82, 0x5b, 0x0e, 0xf9, 0x17, 0x90, 0x2a, 0x4e,
0x55, 0x4e, 0xa8, 0x87, 0x80, 0x92, 0x43, 0xfa, 0x1f, 0x70, 0xe0, 0x82, 0x76, 0x77, 0x76, 0xbd,
0xbb, 0xfe, 0x99, 0x40, 0x2f, 0xbd, 0x24, 0xce, 0x9b, 0xef, 0x7d, 0x33, 0xef, 0x7d, 0x6f, 0xde,
0xbc, 0x18, 0x64, 0x35, 0x42, 0x2d, 0x42, 0xf3, 0x94, 0xc1, 0x6d, 0x13, 0x1b, 0xf9, 0x9d, 0x6b,
0x15, 0xc4, 0xe0, 0xb5, 0x3c, 0x7b, 0xa0, 0xd4, 0x6d, 0xc2, 0x88, 0x78, 0xde, 0x03, 0x28, 0x1c,
0xa0, 0x70, 0x80, 0x34, 0x6b, 0x10, 0x62, 0xd4, 0x50, 0xde, 0x45, 0x55, 0x1a, 0x5b, 0x79, 0x88,
0x9b, 0x9e, 0x8b, 0x94, 0x8d, 0x2f, 0x31, 0xd3, 0x42, 0x94, 0x41, 0xab, 0xce, 0x01, 0xd3, 0x06,
0x31, 0x88, 0xfb, 0x31, 0xef, 0x7c, 0xe2, 0xd6, 0x59, 0x6f, 0xa7, 0xb2, 0xb7, 0xc0, 0xb7, 0xf5,
0x96, 0x32, 0xfc, 0x94, 0x15, 0x48, 0x51, 0x70, 0x44, 0x8d, 0x98, 0x98, 0xaf, 0xcf, 0x77, 0x89,
0xc2, 0x3f, 0xb4, 0x87, 0xba, 0xc0, 0x51, 0x16, 0x75, 0x10, 0xce, 0x2f, 0xbe, 0x30, 0x09, 0x2d,
0x13, 0x93, 0xbc, 0xfb, 0xd3, 0x33, 0xc9, 0xff, 0x9c, 0x01, 0x62, 0x89, 0x1a, 0xab, 0x36, 0x82,
0x0c, 0xdd, 0x85, 0x35, 0x53, 0x87, 0x8c, 0xd8, 0xe2, 0x3a, 0x18, 0xd1, 0x11, 0xd5, 0x6c, 0xb3,
0xce, 0x4c, 0x82, 0xd3, 0xc2, 0x65, 0x61, 0x71, 0x64, 0xf9, 0x8a, 0xd2, 0x39, 0x47, 0xca, 0x5a,
0x0b, 0x5a, 0x1c, 0x7e, 0x7c, 0x90, 0x4d, 0xfc, 0x72, 0xbc, 0xbb, 0x24, 0xa8, 0x61, 0x0a, 0x51,
0x05, 0x40, 0x23, 0x96, 0x65, 0x52, 0xea, 0x10, 0x26, 0x5d, 0xc2, 0x85, 0x6e, 0x84, 0xab, 0x01,
0x52, 0x85, 0x0c, 0xd1, 0x30, 0x69, 0x88, 0x45, 0xfc, 0x12, 0x4c, 0x59, 0x26, 0x2e, 0x53, 0x54,
0xdb, 0x2a, 0xeb, 0xa8, 0x86, 0x0c, 0xe8, 0x9e, 0x36, 0x75, 0x59, 0x58, 0x1c, 0x2e, 0x5e, 0x75,
0x7c, 0x9e, 0x1e, 0x64, 0x67, 0xbc, 0x3d, 0xa8, 0xbe, 0xad, 0x98, 0x24, 0x6f, 0x41, 0x56, 0x55,
0xee, 0x60, 0xb6, 0xbf, 0x97, 0x03, 0x7c, 0xf3, 0x3b, 0x98, 0x79, 0xd4, 0x93, 0x96, 0x89, 0x37,
0x50, 0x6d, 0x6b, 0x2d, 0xa0, 0x12, 0xdf, 0x07, 0x93, 0x9c, 0x98, 0xd8, 0x65, 0xa8, 0xeb, 0x36,
0xa2, 0x34, 0x7d, 0xc6, 0xe5, 0x97, 0xf6, 0xf7, 0x72, 0xd3, 0x9c, 0x62, 0xc5, 0x5b, 0xd9, 0x60,
0xb6, 0x89, 0x8d, 0xb4, 0xa0, 0x4e, 0x04, 0x4e, 0x7c, 0x45, 0xfc, 0x04, 0x4c, 0xee, 0xf8, 0xd9,
0x0d, 0x88, 0xce, 0xba, 0x44, 0xaf, 0xec, 0xef, 0xe5, 0x2e, 0x71, 0xa2, 0x40, 0x81, 0x08, 0xa3,
0x3a, 0xb1, 0x13, 0xb3, 0x8b, 0xb7, 0xc1, 0x50, 0xbd, 0x51, 0xd9, 0x46, 0xcd, 0xf4, 0x90, 0x9b,
0xca, 0x69, 0xc5, 0x2b, 0x46, 0xc5, 0x2f, 0x46, 0x65, 0x05, 0x37, 0x8b, 0xe9, 0xdf, 0x5b, 0x67,
0xd4, 0xec, 0x66, 0x9d, 0x11, 0x65, 0xbd, 0x51, 0xf9, 0x08, 0x35, 0x55, 0xee, 0x2d, 0x16, 0xc0,
0xd9, 0x1d, 0x58, 0x6b, 0xa0, 0xf4, 0x39, 0x97, 0x66, 0xd6, 0x57, 0xc4, 0xa9, 0xc0, 0x90, 0x1c,
0x66, 0x44, 0x58, 0xcf, 0xa5, 0x70, 0xf3, 0x9b, 0x47, 0xd9, 0xc4, 0xb3, 0x47, 0xd9, 0xc4, 0xd7,
0xc7, 0xbb, 0x4b, 0xed, 0xe1, 0x7d, 0x77, 0xbc, 0xbb, 0xc4, 0xe3, 0xca, 0x51, 0x7d, 0x3b, 0xdf,
0x5e, 0x66, 0xf2, 0x45, 0x20, 0xb5, 0x5b, 0x55, 0x44, 0xeb, 0x04, 0x53, 0x24, 0xff, 0x9c, 0x02,
0x13, 0x25, 0x6a, 0xdc, 0xd2, 0x4d, 0xf6, 0x3c, 0x2b, 0xb3, 0xa3, 0x34, 0xc9, 0xd3, 0x4b, 0x73,
0x17, 0x8c, 0xb7, 0x6a, 0xb4, 0x6c, 0x43, 0x86, 0x78, 0x45, 0xe6, 0x9e, 0x1e, 0x64, 0xe7, 0xda,
0xab, 0xf1, 0x63, 0x64, 0x40, 0xad, 0xb9, 0x86, 0xb4, 0x50, 0x4d, 0xae, 0x21, 0x4d, 0x1d, 0xd3,
0x22, 0xb7, 0x40, 0xfc, 0xac, 0x73, 0xb5, 0x7b, 0xd5, 0xb8, 0x30, 0x60, 0xa5, 0x77, 0x28, 0xf2,
0xc2, 0x7b, 0xfd, 0x75, 0x9c, 0x8b, 0xea, 0x18, 0x91, 0x44, 0x96, 0x40, 0x3a, 0x6e, 0x0b, 0x34,
0xfc, 0x31, 0x09, 0x46, 0x4a, 0xd4, 0xe0, 0xbb, 0x21, 0xf1, 0x56, 0xa7, 0x0b, 0x25, 0xb8, 0x21,
0xa4, 0xbb, 0x5d, 0xa8, 0x41, 0xaf, 0xd3, 0x7f, 0xd0, 0xec, 0x06, 0x18, 0x82, 0x16, 0x69, 0x60,
0xe6, 0x4a, 0x35, 0xe8, 0x3d, 0xe0, 0x3e, 0x85, 0x77, 0x22, 0x09, 0x6c, 0x8b, 0xcf, 0x49, 0xe0,
0xf9, 0x68, 0x02, 0xfd, 0x7c, 0xc8, 0x33, 0x60, 0x2a, 0xf4, 0x67, 0x90, 0xb6, 0x6f, 0x53, 0x6e,
0x5b, 0x2e, 0x22, 0xc3, 0xc4, 0x2a, 0xd2, 0xff, 0xe7, 0xec, 0x6d, 0x82, 0x99, 0x56, 0xf6, 0xa8,
0xad, 0x9d, 0x3c, 0x83, 0x53, 0x81, 0xff, 0x86, 0xad, 0x75, 0xa4, 0xd5, 0x29, 0x0b, 0x68, 0x53,
0x27, 0xa7, 0x5d, 0xa3, 0xac, 0x5d, 0x9b, 0x33, 0xa7, 0xd0, 0xe6, 0x66, 0x7f, 0x6d, 0x62, 0x4d,
0x2a, 0x96, 0x74, 0xb9, 0xee, 0x36, 0xa9, 0x98, 0xd5, 0x57, 0x4a, 0x54, 0xdd, 0xdb, 0x5e, 0xaf,
0x21, 0xe7, 0x2a, 0x95, 0x9d, 0x09, 0x80, 0xf7, 0x24, 0xa9, 0xad, 0x23, 0x7f, 0xea, 0x8f, 0x07,
0xc5, 0x51, 0xe7, 0x9c, 0x0f, 0xff, 0xcc, 0x0a, 0xde, 0x59, 0xc7, 0x5a, 0x0c, 0x0e, 0x46, 0xfe,
0x29, 0x09, 0x46, 0x4b, 0xd4, 0xd8, 0xc4, 0xfa, 0x0b, 0x7d, 0x6d, 0xde, 0xed, 0x2f, 0x4d, 0x3a,
0x2a, 0x4d, 0x2b, 0x23, 0xf2, 0xaf, 0x02, 0x98, 0x89, 0x58, 0x9e, 0xa7, 0x22, 0xa1, 0x40, 0x93,
0x27, 0x0f, 0x54, 0x7e, 0x96, 0x04, 0x17, 0x9d, 0x77, 0x0e, 0x62, 0x0d, 0xd5, 0x36, 0x71, 0x85,
0x60, 0xdd, 0xc4, 0x46, 0x68, 0xcc, 0x78, 0x11, 0xe5, 0x15, 0x17, 0xc0, 0xb8, 0xe6, 0xbc, 0xec,
0x8e, 0x0a, 0x55, 0x64, 0x1a, 0x55, 0xef, 0x02, 0xa7, 0xd4, 0x31, 0xdf, 0xfc, 0x81, 0x6b, 0x2d,
0x7c, 0xd8, 0xbf, 0x0e, 0x16, 0x62, 0x73, 0x44, 0xb7, 0x4c, 0xca, 0xaf, 0x81, 0xf9, 0x5e, 0xeb,
0x41, 0x83, 0xfd, 0x4d, 0x00, 0xe3, 0x4e, 0xf9, 0xd4, 0x75, 0xc8, 0xd0, 0x3a, 0xb4, 0xa1, 0x45,
0xc5, 0xb7, 0xc0, 0x30, 0x6c, 0xb0, 0x2a, 0xb1, 0x4d, 0xd6, 0xec, 0x9b, 0xfd, 0x16, 0x54, 0x5c,
0x01, 0x43, 0x75, 0x97, 0x81, 0x17, 0x47, 0xa6, 0xdb, 0x34, 0xe2, 0xed, 0x13, 0xc9, 0x95, 0xe7,
0x58, 0x78, 0xdb, 0x09, 0xbd, 0x45, 0xe9, 0x84, 0x3c, 0x1f, 0x0a, 0xf9, 0x41, 0x30, 0xf1, 0xc7,
0xce, 0x2c, 0xcf, 0x82, 0x0b, 0x31, 0x53, 0x10, 0xe2, 0xdf, 0x82, 0xfb, 0xb6, 0xa8, 0x84, 0x41,
0x86, 0x56, 0x09, 0xa6, 0xde, 0xe8, 0xd7, 0xb9, 0x4a, 0x84, 0xd3, 0x57, 0x49, 0x09, 0x00, 0x8c,
0xee, 0x97, 0xf9, 0x38, 0x9a, 0x3c, 0xd5, 0x38, 0x3a, 0x8c, 0xd1, 0xfd, 0x75, 0x97, 0xa0, 0xb0,
0xd2, 0x7f, 0x1a, 0xc9, 0x44, 0xab, 0x21, 0x1e, 0xa1, 0x7c, 0x09, 0xcc, 0x75, 0x30, 0xfb, 0x89,
0x59, 0xfe, 0xe1, 0x1c, 0x48, 0x95, 0xa8, 0x21, 0xde, 0x03, 0xe3, 0xf1, 0xff, 0x7b, 0x96, 0xba,
0x49, 0xd7, 0x3e, 0xa6, 0x4a, 0xcb, 0x83, 0x63, 0x83, 0xde, 0xb4, 0x0d, 0x46, 0xa3, 0xe3, 0xec,
0x62, 0x0f, 0x92, 0x08, 0x52, 0xba, 0x3a, 0x28, 0x32, 0xd8, 0xec, 0x0b, 0xf0, 0x52, 0x30, 0x77,
0x5d, 0xe9, 0xe1, 0xed, 0x83, 0xa4, 0xd7, 0x07, 0x00, 0x05, 0xec, 0xf7, 0xc0, 0x78, 0x7c, 0x3c,
0xe9, 0x95, 0xbd, 0x18, 0xb6, 0x67, 0xf6, 0xba, 0xbd, 0xb5, 0x15, 0x00, 0x42, 0x6f, 0xe2, 0xab,
0x3d, 0x18, 0x5a, 0x30, 0x29, 0x37, 0x10, 0x2c, 0xd8, 0xe3, 0x7b, 0x01, 0xcc, 0x76, 0x6f, 0xd4,
0x6f, 0xf6, 0xd2, 0xbc, 0x9b, 0x97, 0x74, 0xe3, 0x34, 0x5e, 0xc1, 0x89, 0xaa, 0xe0, 0xe5, 0x48,
0x9b, 0x5a, 0xe8, 0x15, 0x50, 0x08, 0x28, 0xe5, 0x07, 0x04, 0x06, 0x3b, 0x31, 0x30, 0xd1, 0xd6,
0x2d, 0x7a, 0xd5, 0x44, 0x1c, 0x2c, 0x5d, 0x3f, 0x01, 0xd8, 0xdf, 0x55, 0x3a, 0xfb, 0x95, 0xd3,
0x0a, 0x8b, 0xb7, 0x1f, 0x1f, 0x66, 0x84, 0x27, 0x87, 0x19, 0xe1, 0xaf, 0xc3, 0x8c, 0xf0, 0xf0,
0x28, 0x93, 0x78, 0x72, 0x94, 0x49, 0xfc, 0x71, 0x94, 0x49, 0x7c, 0xfe, 0x86, 0x61, 0xb2, 0x6a,
0xa3, 0xa2, 0x68, 0xc4, 0xe2, 0x5f, 0x97, 0xe4, 0x3b, 0xf6, 0x46, 0xd6, 0xac, 0x23, 0x5a, 0x19,
0x72, 0x5b, 0xce, 0xf5, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x04, 0x47, 0x81, 0x91, 0xf2, 0x11,
0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1810,14 +1810,14 @@ func (m *MsgRotateConsPubKey) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
dAtA[i] = 0x12
}
if len(m.ValidatorAddress) > 0 {
i -= len(m.ValidatorAddress)
copy(dAtA[i:], m.ValidatorAddress)
i = encodeVarintTx(dAtA, i, uint64(len(m.ValidatorAddress)))
i--
dAtA[i] = 0x12
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@@ -3809,7 +3809,7 @@ func (m *MsgRotateConsPubKey) Unmarshal(dAtA []byte) error {
return fmt.Errorf("proto: MsgRotateConsPubKey: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 2:
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
}
@@ -3841,7 +3841,7 @@ func (m *MsgRotateConsPubKey) Unmarshal(dAtA []byte) error {
}
m.ValidatorAddress = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field NewPubkey", wireType)
}