feat: add proto for cons pubkey rotation (#18140)

This commit is contained in:
atheeshp 2023-10-17 18:12:16 +05:30 committed by GitHub
parent 93770f59d9
commit 8f8e242e78
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 4439 additions and 1067 deletions

View File

@ -2723,6 +2723,8 @@ func (*MsgRevokeAllowanceResponse) Descriptor() ([]byte, []int) {
}
// MsgPruneAllowances prunes expired fee allowances.
//
// Since cosmos-sdk 0.50
type MsgPruneAllowances struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -2760,6 +2762,8 @@ func (x *MsgPruneAllowances) GetPruner() string {
}
// MsgPruneAllowancesResponse defines the Msg/PruneAllowancesResponse response type.
//
// Since cosmos-sdk 0.50
type MsgPruneAllowancesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache

View File

@ -36,7 +36,9 @@ type MsgClient interface {
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, opts ...grpc.CallOption) (*MsgRevokeAllowanceResponse, error)
// PruneAllowances prunes expired fee allowances.
// PruneAllowances prunes expired fee allowances, currently up to 75 at a time.
//
// Since cosmos-sdk 0.50
PruneAllowances(ctx context.Context, in *MsgPruneAllowances, opts ...grpc.CallOption) (*MsgPruneAllowancesResponse, error)
}
@ -85,7 +87,9 @@ type MsgServer interface {
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
RevokeAllowance(context.Context, *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error)
// PruneAllowances prunes expired fee allowances.
// PruneAllowances prunes expired fee allowances, currently up to 75 at a time.
//
// Since cosmos-sdk 0.50
PruneAllowances(context.Context, *MsgPruneAllowances) (*MsgPruneAllowancesResponse, error)
mustEmbedUnimplementedMsgServer()
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -26,6 +26,7 @@ const (
Msg_Undelegate_FullMethodName = "/cosmos.staking.v1beta1.Msg/Undelegate"
Msg_CancelUnbondingDelegation_FullMethodName = "/cosmos.staking.v1beta1.Msg/CancelUnbondingDelegation"
Msg_UpdateParams_FullMethodName = "/cosmos.staking.v1beta1.Msg/UpdateParams"
Msg_RotateConsPubKey_FullMethodName = "/cosmos.staking.v1beta1.Msg/RotateConsPubKey"
)
// MsgClient is the client API for Msg service.
@ -54,6 +55,10 @@ type MsgClient interface {
// parameters.
// Since: cosmos-sdk 0.47
UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error)
// RotateConsPubKey defines an operation for rotating the consensus keys
// of a validator.
// Since: cosmos-sdk 0.48
RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error)
}
type msgClient struct {
@ -127,6 +132,15 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts
return out, nil
}
func (c *msgClient) RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error) {
out := new(MsgRotateConsPubKeyResponse)
err := c.cc.Invoke(ctx, Msg_RotateConsPubKey_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// MsgServer is the server API for Msg service.
// All implementations must embed UnimplementedMsgServer
// for forward compatibility
@ -153,6 +167,10 @@ type MsgServer interface {
// parameters.
// Since: cosmos-sdk 0.47
UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error)
// RotateConsPubKey defines an operation for rotating the consensus keys
// of a validator.
// Since: cosmos-sdk 0.48
RotateConsPubKey(context.Context, *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error)
mustEmbedUnimplementedMsgServer()
}
@ -181,6 +199,9 @@ func (UnimplementedMsgServer) CancelUnbondingDelegation(context.Context, *MsgCan
func (UnimplementedMsgServer) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented")
}
func (UnimplementedMsgServer) RotateConsPubKey(context.Context, *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RotateConsPubKey not implemented")
}
func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {}
// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service.
@ -320,6 +341,24 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in
return interceptor(ctx, in, info, handler)
}
func _Msg_RotateConsPubKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgRotateConsPubKey)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).RotateConsPubKey(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Msg_RotateConsPubKey_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).RotateConsPubKey(ctx, req.(*MsgRotateConsPubKey))
}
return interceptor(ctx, in, info, handler)
}
// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@ -355,6 +394,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{
MethodName: "UpdateParams",
Handler: _Msg_UpdateParams_Handler,
},
{
MethodName: "RotateConsPubKey",
Handler: _Msg_RotateConsPubKey_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cosmos/staking/v1beta1/tx.proto",

View File

@ -404,3 +404,26 @@ enum Infraction {
message ValidatorUpdates {
repeated tendermint.abci.ValidatorUpdate updates = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
// ConsPubKeyRotationHistory contains a validator's consensus public key rotation history.
message ConsPubKeyRotationHistory {
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
// operator_address defines the address of the validator's operator; bech encoded in JSON.
string operator_address = 1;
// old_cons_pubkey is the old consensus public key of the validator, as a Protobuf Any.
google.protobuf.Any old_cons_pubkey = 2 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"];
// new_cons_pubkey is the new consensus public key of the validator, as a Protobuf Any.
google.protobuf.Any new_cons_pubkey = 3 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"];
// height defines the block height at which the rotation event occured.
uint64 height = 4;
// fee holds the amount of fee deduced for the rotation.
cosmos.base.v1beta1.Coin fee = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
// ValAddrsOfRotatedConsKeys contains the array of validator addresses which rotated their keys
// This is to block the validator's next rotation till unbonding period.
message ValAddrsOfRotatedConsKeys {
repeated string addresses = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}

View File

@ -45,6 +45,11 @@ service Msg {
// parameters.
// Since: cosmos-sdk 0.47
rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
// RotateConsPubKey defines an operation for rotating the consensus keys
// of a validator.
// Since: cosmos-sdk 0.48
rpc RotateConsPubKey(MsgRotateConsPubKey) returns (MsgRotateConsPubKeyResponse);
}
// MsgCreateValidator defines a SDK message for creating a new validator.
@ -204,3 +209,23 @@ message MsgUpdateParams {
//
// Since: cosmos-sdk 0.47
message MsgUpdateParamsResponse {};
// MsgRotateConsPubKey is the Msg/RotateConsPubKey request type.
//
// Since: cosmos-sdk 0.51
message MsgRotateConsPubKey {
option (cosmos.msg.v1.signer) = "validator_address";
option (amino.name) = "cosmos-sdk/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"];
}
// MsgRotateConsPubKeyResponse defines the response structure for executing a
// MsgRotateConsPubKey message.
//
// Since: cosmos-sdk 0.51
message MsgRotateConsPubKeyResponse {}

View File

@ -226,6 +226,8 @@ func (m *MsgRevokeAllowanceResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgRevokeAllowanceResponse proto.InternalMessageInfo
// MsgPruneAllowances prunes expired fee allowances.
//
// Since cosmos-sdk 0.50
type MsgPruneAllowances struct {
// pruner is the address of the user pruning expired allowances.
Pruner string `protobuf:"bytes,1,opt,name=pruner,proto3" json:"pruner,omitempty"`
@ -272,6 +274,8 @@ func (m *MsgPruneAllowances) GetPruner() string {
}
// MsgPruneAllowancesResponse defines the Msg/PruneAllowancesResponse response type.
//
// Since cosmos-sdk 0.50
type MsgPruneAllowancesResponse struct {
}
@ -370,7 +374,9 @@ type MsgClient interface {
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
RevokeAllowance(ctx context.Context, in *MsgRevokeAllowance, opts ...grpc.CallOption) (*MsgRevokeAllowanceResponse, error)
// PruneAllowances prunes expired fee allowances.
// PruneAllowances prunes expired fee allowances, currently up to 75 at a time.
//
// Since cosmos-sdk 0.50
PruneAllowances(ctx context.Context, in *MsgPruneAllowances, opts ...grpc.CallOption) (*MsgPruneAllowancesResponse, error)
}
@ -417,7 +423,9 @@ type MsgServer interface {
// RevokeAllowance revokes any fee allowance of granter's account that
// has been granted to the grantee.
RevokeAllowance(context.Context, *MsgRevokeAllowance) (*MsgRevokeAllowanceResponse, error)
// PruneAllowances prunes expired fee allowances.
// PruneAllowances prunes expired fee allowances, currently up to 75 at a time.
//
// Since cosmos-sdk 0.50
PruneAllowances(context.Context, *MsgPruneAllowances) (*MsgPruneAllowancesResponse, error)
}

View File

@ -604,3 +604,7 @@ func (k msgServer) UpdateParams(ctx context.Context, msg *types.MsgUpdateParams)
return &types.MsgUpdateParamsResponse{}, nil
}
func (k msgServer) RotateConsPubKey(_ context.Context, _ *types.MsgRotateConsPubKey) (*types.MsgRotateConsPubKeyResponse, error) {
return nil, nil
}

File diff suppressed because it is too large Load Diff

View File

@ -649,6 +649,87 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo
// MsgRotateConsPubKey is the Msg/RotateConsPubKey request type.
//
// 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"`
}
func (m *MsgRotateConsPubKey) Reset() { *m = MsgRotateConsPubKey{} }
func (m *MsgRotateConsPubKey) String() string { return proto.CompactTextString(m) }
func (*MsgRotateConsPubKey) ProtoMessage() {}
func (*MsgRotateConsPubKey) Descriptor() ([]byte, []int) {
return fileDescriptor_0926ef28816b35ab, []int{14}
}
func (m *MsgRotateConsPubKey) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgRotateConsPubKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgRotateConsPubKey.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *MsgRotateConsPubKey) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgRotateConsPubKey.Merge(m, src)
}
func (m *MsgRotateConsPubKey) XXX_Size() int {
return m.Size()
}
func (m *MsgRotateConsPubKey) XXX_DiscardUnknown() {
xxx_messageInfo_MsgRotateConsPubKey.DiscardUnknown(m)
}
var xxx_messageInfo_MsgRotateConsPubKey proto.InternalMessageInfo
// MsgRotateConsPubKeyResponse defines the response structure for executing a
// MsgRotateConsPubKey message.
//
// Since: cosmos-sdk 0.51
type MsgRotateConsPubKeyResponse struct {
}
func (m *MsgRotateConsPubKeyResponse) Reset() { *m = MsgRotateConsPubKeyResponse{} }
func (m *MsgRotateConsPubKeyResponse) String() string { return proto.CompactTextString(m) }
func (*MsgRotateConsPubKeyResponse) ProtoMessage() {}
func (*MsgRotateConsPubKeyResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_0926ef28816b35ab, []int{15}
}
func (m *MsgRotateConsPubKeyResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgRotateConsPubKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgRotateConsPubKeyResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *MsgRotateConsPubKeyResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgRotateConsPubKeyResponse.Merge(m, src)
}
func (m *MsgRotateConsPubKeyResponse) XXX_Size() int {
return m.Size()
}
func (m *MsgRotateConsPubKeyResponse) XXX_DiscardUnknown() {
xxx_messageInfo_MsgRotateConsPubKeyResponse.DiscardUnknown(m)
}
var xxx_messageInfo_MsgRotateConsPubKeyResponse proto.InternalMessageInfo
func init() {
proto.RegisterType((*MsgCreateValidator)(nil), "cosmos.staking.v1beta1.MsgCreateValidator")
proto.RegisterType((*MsgCreateValidatorResponse)(nil), "cosmos.staking.v1beta1.MsgCreateValidatorResponse")
@ -664,84 +745,91 @@ func init() {
proto.RegisterType((*MsgCancelUnbondingDelegationResponse)(nil), "cosmos.staking.v1beta1.MsgCancelUnbondingDelegationResponse")
proto.RegisterType((*MsgUpdateParams)(nil), "cosmos.staking.v1beta1.MsgUpdateParams")
proto.RegisterType((*MsgUpdateParamsResponse)(nil), "cosmos.staking.v1beta1.MsgUpdateParamsResponse")
proto.RegisterType((*MsgRotateConsPubKey)(nil), "cosmos.staking.v1beta1.MsgRotateConsPubKey")
proto.RegisterType((*MsgRotateConsPubKeyResponse)(nil), "cosmos.staking.v1beta1.MsgRotateConsPubKeyResponse")
}
func init() { proto.RegisterFile("cosmos/staking/v1beta1/tx.proto", fileDescriptor_0926ef28816b35ab) }
var fileDescriptor_0926ef28816b35ab = []byte{
// 1142 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x57, 0x4f, 0x6f, 0xdc, 0x44,
0x14, 0x5f, 0xef, 0x36, 0x0b, 0x99, 0x90, 0x7f, 0x4e, 0xd2, 0x6e, 0xdc, 0xb2, 0x5b, 0xdc, 0x40,
0xa2, 0xc0, 0xda, 0x6d, 0x40, 0x20, 0x96, 0x0a, 0x35, 0xdb, 0xb4, 0x50, 0x60, 0x51, 0xe4, 0x90,
0x22, 0x21, 0xa4, 0x65, 0xd6, 0x9e, 0x78, 0xad, 0x5d, 0x7b, 0x5c, 0xcf, 0x6c, 0xd4, 0xbd, 0x21,
0x4e, 0xc0, 0x85, 0x7e, 0x81, 0x4a, 0xe5, 0x80, 0x04, 0xb7, 0x1c, 0xf2, 0x15, 0x90, 0x2a, 0x4e,
0x55, 0x4e, 0xa8, 0x87, 0x80, 0x92, 0x43, 0xfa, 0x1d, 0xb8, 0x20, 0xdb, 0x63, 0xaf, 0xed, 0xfd,
0x9b, 0x40, 0x2f, 0xbd, 0x24, 0xce, 0xcc, 0xef, 0xfd, 0xe6, 0xbd, 0xf7, 0x7b, 0x6f, 0xe6, 0x05,
0x14, 0x54, 0x4c, 0x4c, 0x4c, 0x64, 0x42, 0x61, 0xc3, 0xb0, 0x74, 0x79, 0xf7, 0x5a, 0x0d, 0x51,
0x78, 0x4d, 0xa6, 0xf7, 0x25, 0xdb, 0xc1, 0x14, 0xf3, 0xe7, 0x7d, 0x80, 0xc4, 0x00, 0x12, 0x03,
0x08, 0x8b, 0x3a, 0xc6, 0x7a, 0x13, 0xc9, 0x1e, 0xaa, 0xd6, 0xda, 0x91, 0xa1, 0xd5, 0xf6, 0x4d,
0x84, 0x42, 0x72, 0x8b, 0x1a, 0x26, 0x22, 0x14, 0x9a, 0x36, 0x03, 0xcc, 0xeb, 0x58, 0xc7, 0xde,
0xa7, 0xec, 0x7e, 0xb1, 0xd5, 0x45, 0xff, 0xa4, 0xaa, 0xbf, 0xc1, 0x8e, 0xf5, 0xb7, 0xf2, 0xcc,
0xcb, 0x1a, 0x24, 0x28, 0x74, 0x51, 0xc5, 0x86, 0xc5, 0xf6, 0x97, 0xfa, 0x44, 0x11, 0x38, 0xed,
0xa3, 0x2e, 0x30, 0x94, 0x49, 0x5c, 0x84, 0xfb, 0x8b, 0x6d, 0xcc, 0x42, 0xd3, 0xb0, 0xb0, 0xec,
0xfd, 0xf4, 0x97, 0xc4, 0x7f, 0xce, 0x01, 0xbe, 0x42, 0xf4, 0x9b, 0x0e, 0x82, 0x14, 0xdd, 0x85,
0x4d, 0x43, 0x83, 0x14, 0x3b, 0xfc, 0x26, 0x98, 0xd0, 0x10, 0x51, 0x1d, 0xc3, 0xa6, 0x06, 0xb6,
0x72, 0xdc, 0x65, 0x6e, 0x65, 0x62, 0xed, 0x8a, 0xd4, 0x3b, 0x47, 0xd2, 0x46, 0x07, 0x5a, 0x1e,
0x7f, 0x7c, 0x58, 0x48, 0xfd, 0x7a, 0xb2, 0xb7, 0xca, 0x29, 0x51, 0x0a, 0x5e, 0x01, 0x40, 0xc5,
0xa6, 0x69, 0x10, 0xe2, 0x12, 0xa6, 0x3d, 0xc2, 0xe5, 0x7e, 0x84, 0x37, 0x43, 0xa4, 0x02, 0x29,
0x22, 0x51, 0xd2, 0x08, 0x0b, 0xff, 0x0d, 0x98, 0x33, 0x0d, 0xab, 0x4a, 0x50, 0x73, 0xa7, 0xaa,
0xa1, 0x26, 0xd2, 0xa1, 0xe7, 0x6d, 0xe6, 0x32, 0xb7, 0x32, 0x5e, 0xbe, 0xea, 0xda, 0x3c, 0x3d,
0x2c, 0x2c, 0xf8, 0x67, 0x10, 0xad, 0x21, 0x19, 0x58, 0x36, 0x21, 0xad, 0x4b, 0x77, 0x2c, 0x7a,
0xb0, 0x5f, 0x04, 0xec, 0xf0, 0x3b, 0x16, 0xf5, 0xa9, 0x67, 0x4d, 0xc3, 0xda, 0x42, 0xcd, 0x9d,
0x8d, 0x90, 0x8a, 0xff, 0x08, 0xcc, 0x32, 0x62, 0xec, 0x54, 0xa1, 0xa6, 0x39, 0x88, 0x90, 0xdc,
0x39, 0x8f, 0x5f, 0x38, 0xd8, 0x2f, 0xce, 0x33, 0x8a, 0x75, 0x7f, 0x67, 0x8b, 0x3a, 0x86, 0xa5,
0xe7, 0x38, 0x65, 0x26, 0x34, 0x62, 0x3b, 0xfc, 0xe7, 0x60, 0x76, 0x37, 0xc8, 0x6e, 0x48, 0x34,
0xe6, 0x11, 0xbd, 0x76, 0xb0, 0x5f, 0x7c, 0x95, 0x11, 0x85, 0x0a, 0xc4, 0x18, 0x95, 0x99, 0xdd,
0xc4, 0x3a, 0x7f, 0x1b, 0x64, 0xed, 0x56, 0xad, 0x81, 0xda, 0xb9, 0xac, 0x97, 0xca, 0x79, 0xc9,
0x2f, 0x46, 0x29, 0x28, 0x46, 0x69, 0xdd, 0x6a, 0x97, 0x73, 0x7f, 0x74, 0x7c, 0x54, 0x9d, 0xb6,
0x4d, 0xb1, 0xb4, 0xd9, 0xaa, 0x7d, 0x8a, 0xda, 0x0a, 0xb3, 0xe6, 0x4b, 0x60, 0x6c, 0x17, 0x36,
0x5b, 0x28, 0xf7, 0x92, 0x47, 0xb3, 0x18, 0x28, 0xe2, 0x56, 0x60, 0x44, 0x0e, 0x23, 0x26, 0xac,
0x6f, 0x52, 0xba, 0xf1, 0xfd, 0xa3, 0x42, 0xea, 0xd9, 0xa3, 0x42, 0xea, 0xbb, 0x93, 0xbd, 0xd5,
0xee, 0xf0, 0x7e, 0x3c, 0xd9, 0x5b, 0x65, 0x71, 0x15, 0x89, 0xd6, 0x90, 0xbb, 0xcb, 0x4c, 0xbc,
0x04, 0x84, 0xee, 0x55, 0x05, 0x11, 0x1b, 0x5b, 0x04, 0x89, 0xbf, 0x64, 0xc0, 0x4c, 0x85, 0xe8,
0xb7, 0x34, 0x83, 0x3e, 0xcf, 0xca, 0xec, 0x29, 0x4d, 0xfa, 0xec, 0xd2, 0xdc, 0x05, 0xd3, 0x9d,
0x1a, 0xad, 0x3a, 0x90, 0x22, 0x56, 0x91, 0xc5, 0xa7, 0x87, 0x85, 0x8b, 0xdd, 0xd5, 0xf8, 0x19,
0xd2, 0xa1, 0xda, 0xde, 0x40, 0x6a, 0xa4, 0x26, 0x37, 0x90, 0xaa, 0x4c, 0xa9, 0xb1, 0x2e, 0xe0,
0xbf, 0xec, 0x5d, 0xed, 0x7e, 0x35, 0x2e, 0x8f, 0x58, 0xe9, 0x3d, 0x8a, 0xbc, 0xf4, 0xe1, 0x70,
0x1d, 0x2f, 0xc6, 0x75, 0x8c, 0x49, 0x22, 0x0a, 0x20, 0x97, 0x5c, 0x0b, 0x35, 0x7c, 0x98, 0x06,
0x13, 0x15, 0xa2, 0xb3, 0xd3, 0x10, 0x7f, 0xab, 0x57, 0x43, 0x71, 0x5e, 0x08, 0xb9, 0x7e, 0x0d,
0x35, 0x6a, 0x3b, 0xfd, 0x07, 0xcd, 0xae, 0x83, 0x2c, 0x34, 0x71, 0xcb, 0xa2, 0x9e, 0x54, 0xa3,
0xf6, 0x01, 0xb3, 0x29, 0xbd, 0x1f, 0x4b, 0x60, 0x57, 0x7c, 0x6e, 0x02, 0xcf, 0xc7, 0x13, 0x18,
0xe4, 0x43, 0x5c, 0x00, 0x73, 0x91, 0x3f, 0xc3, 0xb4, 0xfd, 0x90, 0xf1, 0xae, 0xe5, 0x32, 0xd2,
0x0d, 0x4b, 0x41, 0xda, 0xff, 0x9c, 0xbd, 0x6d, 0xb0, 0xd0, 0xc9, 0x1e, 0x71, 0xd4, 0xd3, 0x67,
0x70, 0x2e, 0xb4, 0xdf, 0x72, 0xd4, 0x9e, 0xb4, 0x1a, 0xa1, 0x21, 0x6d, 0xe6, 0xf4, 0xb4, 0x1b,
0x84, 0x76, 0x6b, 0x73, 0xee, 0x0c, 0xda, 0xdc, 0x18, 0xae, 0x4d, 0xe2, 0x92, 0x4a, 0x24, 0x5d,
0xb4, 0xbd, 0x4b, 0x2a, 0xb1, 0x1a, 0x28, 0xc5, 0x2b, 0x5e, 0xb7, 0xdb, 0x4d, 0xe4, 0xb6, 0x52,
0xd5, 0x9d, 0x00, 0xd8, 0x9d, 0x24, 0x74, 0xdd, 0xc8, 0x5f, 0x04, 0xe3, 0x41, 0x79, 0xd2, 0xf5,
0xf3, 0xc1, 0x5f, 0x05, 0xce, 0xf7, 0x75, 0xaa, 0xc3, 0xe0, 0x62, 0xc4, 0x9f, 0xd3, 0x60, 0xb2,
0x42, 0xf4, 0x6d, 0x4b, 0x7b, 0xa1, 0xdb, 0xe6, 0x83, 0xe1, 0xd2, 0xe4, 0xe2, 0xd2, 0x74, 0x32,
0x22, 0xfe, 0xc6, 0x81, 0x85, 0xd8, 0xca, 0xf3, 0x54, 0x24, 0x12, 0x68, 0xfa, 0xf4, 0x81, 0x8a,
0xcf, 0xd2, 0xe0, 0x92, 0xfb, 0xce, 0x41, 0x4b, 0x45, 0xcd, 0x6d, 0xab, 0x86, 0x2d, 0xcd, 0xb0,
0xf4, 0xc8, 0x98, 0xf1, 0x22, 0xca, 0xcb, 0x2f, 0x83, 0x69, 0xd5, 0x7d, 0xd9, 0x5d, 0x15, 0xea,
0xc8, 0xd0, 0xeb, 0x7e, 0x03, 0x67, 0x94, 0xa9, 0x60, 0xf9, 0x63, 0x6f, 0xb5, 0xf4, 0xc9, 0xf0,
0x3a, 0x58, 0x4e, 0xcc, 0x11, 0xfd, 0x32, 0x29, 0xbe, 0x01, 0x96, 0x06, 0xed, 0x87, 0x17, 0xec,
0xef, 0x1c, 0x98, 0x76, 0xcb, 0xc7, 0xd6, 0x20, 0x45, 0x9b, 0xd0, 0x81, 0x26, 0xe1, 0xdf, 0x05,
0xe3, 0xb0, 0x45, 0xeb, 0xd8, 0x31, 0x68, 0x7b, 0x68, 0xf6, 0x3b, 0x50, 0x7e, 0x1d, 0x64, 0x6d,
0x8f, 0x81, 0x15, 0x47, 0xbe, 0xdf, 0x34, 0xe2, 0x9f, 0x13, 0xcb, 0x95, 0x6f, 0x58, 0x7a, 0xcf,
0x0d, 0xbd, 0x43, 0xe9, 0x86, 0xbc, 0x14, 0x09, 0xf9, 0x7e, 0x38, 0xf1, 0x27, 0x7c, 0x16, 0x17,
0xc1, 0x85, 0xc4, 0x52, 0x10, 0xe2, 0xda, 0xc3, 0x2c, 0xc8, 0x54, 0x88, 0xce, 0xdf, 0x03, 0xd3,
0xc9, 0xf1, 0x7e, 0xb5, 0x9f, 0x87, 0xdd, 0xd3, 0x98, 0xb0, 0x36, 0x3a, 0x36, 0x6c, 0xc1, 0x06,
0x98, 0x8c, 0x4f, 0x6d, 0x2b, 0x03, 0x48, 0x62, 0x48, 0xe1, 0xea, 0xa8, 0xc8, 0xf0, 0xb0, 0xaf,
0xc1, 0xcb, 0xe1, 0x78, 0x71, 0x65, 0x80, 0x75, 0x00, 0x12, 0xde, 0x1c, 0x01, 0x14, 0xb2, 0xdf,
0x03, 0xd3, 0xc9, 0x57, 0x78, 0x50, 0xf6, 0x12, 0xd8, 0x81, 0xd9, 0xeb, 0xf7, 0xa4, 0xd4, 0x00,
0x88, 0x5c, 0xfd, 0xaf, 0x0f, 0x60, 0xe8, 0xc0, 0x84, 0xe2, 0x48, 0xb0, 0xf0, 0x8c, 0x9f, 0x38,
0xb0, 0xd8, 0xff, 0x3e, 0x7a, 0x67, 0x90, 0xe6, 0xfd, 0xac, 0x84, 0xeb, 0x67, 0xb1, 0x0a, 0x3d,
0xaa, 0x83, 0x57, 0x62, 0xdd, 0xb8, 0x3c, 0x28, 0xa0, 0x08, 0x50, 0x90, 0x47, 0x04, 0x06, 0x27,
0x09, 0x63, 0xdf, 0xba, 0xbd, 0x57, 0xbe, 0xfd, 0xf8, 0x28, 0xcf, 0x3d, 0x39, 0xca, 0x73, 0x7f,
0x1f, 0xe5, 0xb9, 0x07, 0xc7, 0xf9, 0xd4, 0x93, 0xe3, 0x7c, 0xea, 0xcf, 0xe3, 0x7c, 0xea, 0xab,
0xb7, 0x74, 0x83, 0xd6, 0x5b, 0x35, 0x49, 0xc5, 0x26, 0xfb, 0xff, 0x5c, 0xee, 0xd9, 0x8c, 0xb4,
0x6d, 0x23, 0x52, 0xcb, 0x7a, 0xcf, 0xc9, 0xdb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x91,
0x57, 0x78, 0x63, 0x10, 0x00, 0x00,
// 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,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -778,6 +866,10 @@ type MsgClient interface {
// parameters.
// Since: cosmos-sdk 0.47
UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error)
// RotateConsPubKey defines an operation for rotating the consensus keys
// of a validator.
// Since: cosmos-sdk 0.48
RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error)
}
type msgClient struct {
@ -851,6 +943,15 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts
return out, nil
}
func (c *msgClient) RotateConsPubKey(ctx context.Context, in *MsgRotateConsPubKey, opts ...grpc.CallOption) (*MsgRotateConsPubKeyResponse, error) {
out := new(MsgRotateConsPubKeyResponse)
err := c.cc.Invoke(ctx, "/cosmos.staking.v1beta1.Msg/RotateConsPubKey", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// MsgServer is the server API for Msg service.
type MsgServer interface {
// CreateValidator defines a method for creating a new validator.
@ -875,6 +976,10 @@ type MsgServer interface {
// parameters.
// Since: cosmos-sdk 0.47
UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error)
// RotateConsPubKey defines an operation for rotating the consensus keys
// of a validator.
// Since: cosmos-sdk 0.48
RotateConsPubKey(context.Context, *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error)
}
// UnimplementedMsgServer can be embedded to have forward compatible implementations.
@ -902,6 +1007,9 @@ func (*UnimplementedMsgServer) CancelUnbondingDelegation(ctx context.Context, re
func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented")
}
func (*UnimplementedMsgServer) RotateConsPubKey(ctx context.Context, req *MsgRotateConsPubKey) (*MsgRotateConsPubKeyResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RotateConsPubKey not implemented")
}
func RegisterMsgServer(s grpc1.Server, srv MsgServer) {
s.RegisterService(&_Msg_serviceDesc, srv)
@ -1033,6 +1141,24 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in
return interceptor(ctx, in, info, handler)
}
func _Msg_RotateConsPubKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgRotateConsPubKey)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).RotateConsPubKey(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/cosmos.staking.v1beta1.Msg/RotateConsPubKey",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).RotateConsPubKey(ctx, req.(*MsgRotateConsPubKey))
}
return interceptor(ctx, in, info, handler)
}
var _Msg_serviceDesc = grpc.ServiceDesc{
ServiceName: "cosmos.staking.v1beta1.Msg",
HandlerType: (*MsgServer)(nil),
@ -1065,6 +1191,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "UpdateParams",
Handler: _Msg_UpdateParams_Handler,
},
{
MethodName: "RotateConsPubKey",
Handler: _Msg_RotateConsPubKey_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "cosmos/staking/v1beta1/tx.proto",
@ -1650,6 +1780,71 @@ func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
return len(dAtA) - i, nil
}
func (m *MsgRotateConsPubKey) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MsgRotateConsPubKey) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgRotateConsPubKey) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.NewPubkey != nil {
{
size, err := m.NewPubkey.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x1a
}
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
}
return len(dAtA) - i, nil
}
func (m *MsgRotateConsPubKeyResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MsgRotateConsPubKeyResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgRotateConsPubKeyResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
return len(dAtA) - i, nil
}
func encodeVarintTx(dAtA []byte, offset int, v uint64) int {
offset -= sovTx(v)
base := offset
@ -1880,6 +2075,32 @@ func (m *MsgUpdateParamsResponse) Size() (n int) {
return n
}
func (m *MsgRotateConsPubKey) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.ValidatorAddress)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
if m.NewPubkey != nil {
l = m.NewPubkey.Size()
n += 1 + l + sovTx(uint64(l))
}
return n
}
func (m *MsgRotateConsPubKeyResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
return n
}
func sovTx(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@ -3559,6 +3780,174 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *MsgRotateConsPubKey) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgRotateConsPubKey: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgRotateConsPubKey: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ValidatorAddress = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field NewPubkey", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.NewPubkey == nil {
m.NewPubkey = &types.Any{}
}
if err := m.NewPubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthTx
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *MsgRotateConsPubKeyResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgRotateConsPubKeyResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgRotateConsPubKeyResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthTx
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipTx(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0