refactor(staking)!: remove historical info (#20845)

Co-authored-by: Facundo <facundomedica@gmail.com>
This commit is contained in:
Marko 2024-07-05 11:28:49 +02:00 committed by GitHub
parent 25d2043909
commit b68eb39412
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 2670 additions and 3456 deletions

View File

@ -12225,16 +12225,14 @@ func (x *fastReflection_QueryHistoricalInfoRequest) ProtoMethods() *protoiface.M
}
var (
md_QueryHistoricalInfoResponse protoreflect.MessageDescriptor
fd_QueryHistoricalInfoResponse_hist protoreflect.FieldDescriptor
fd_QueryHistoricalInfoResponse_historical_record protoreflect.FieldDescriptor
md_QueryHistoricalInfoResponse protoreflect.MessageDescriptor
fd_QueryHistoricalInfoResponse_hist protoreflect.FieldDescriptor
)
func init() {
file_cosmos_staking_v1beta1_query_proto_init()
md_QueryHistoricalInfoResponse = File_cosmos_staking_v1beta1_query_proto.Messages().ByName("QueryHistoricalInfoResponse")
fd_QueryHistoricalInfoResponse_hist = md_QueryHistoricalInfoResponse.Fields().ByName("hist")
fd_QueryHistoricalInfoResponse_historical_record = md_QueryHistoricalInfoResponse.Fields().ByName("historical_record")
}
var _ protoreflect.Message = (*fastReflection_QueryHistoricalInfoResponse)(nil)
@ -12308,12 +12306,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Range(f func(protoreflect.F
return
}
}
if x.HistoricalRecord != nil {
value := protoreflect.ValueOfMessage(x.HistoricalRecord.ProtoReflect())
if !f(fd_QueryHistoricalInfoResponse_historical_record, value) {
return
}
}
}
// Has reports whether a field is populated.
@ -12331,8 +12323,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Has(fd protoreflect.FieldDe
switch fd.FullName() {
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist":
return x.Hist != nil
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record":
return x.HistoricalRecord != nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse"))
@ -12351,8 +12341,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Clear(fd protoreflect.Field
switch fd.FullName() {
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist":
x.Hist = nil
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record":
x.HistoricalRecord = nil
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse"))
@ -12372,9 +12360,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Get(descriptor protoreflect
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist":
value := x.Hist
return protoreflect.ValueOfMessage(value.ProtoReflect())
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record":
value := x.HistoricalRecord
return protoreflect.ValueOfMessage(value.ProtoReflect())
default:
if descriptor.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse"))
@ -12397,8 +12382,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Set(fd protoreflect.FieldDe
switch fd.FullName() {
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist":
x.Hist = value.Message().Interface().(*HistoricalInfo)
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record":
x.HistoricalRecord = value.Message().Interface().(*HistoricalRecord)
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse"))
@ -12424,11 +12407,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Mutable(fd protoreflect.Fie
x.Hist = new(HistoricalInfo)
}
return protoreflect.ValueOfMessage(x.Hist.ProtoReflect())
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record":
if x.HistoricalRecord == nil {
x.HistoricalRecord = new(HistoricalRecord)
}
return protoreflect.ValueOfMessage(x.HistoricalRecord.ProtoReflect())
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse"))
@ -12445,9 +12423,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) NewField(fd protoreflect.Fi
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist":
m := new(HistoricalInfo)
return protoreflect.ValueOfMessage(m.ProtoReflect())
case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record":
m := new(HistoricalRecord)
return protoreflect.ValueOfMessage(m.ProtoReflect())
default:
if fd.IsExtension() {
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse"))
@ -12521,10 +12496,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface.
l = options.Size(x.Hist)
n += 1 + l + runtime.Sov(uint64(l))
}
if x.HistoricalRecord != nil {
l = options.Size(x.HistoricalRecord)
n += 1 + l + runtime.Sov(uint64(l))
}
if x.unknownFields != nil {
n += len(x.unknownFields)
}
@ -12554,20 +12525,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface.
i -= len(x.unknownFields)
copy(dAtA[i:], x.unknownFields)
}
if x.HistoricalRecord != nil {
encoded, err := options.Marshal(x.HistoricalRecord)
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] = 0x12
}
if x.Hist != nil {
encoded, err := options.Marshal(x.Hist)
if err != nil {
@ -12667,42 +12624,6 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface.
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HistoricalRecord", 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.HistoricalRecord == nil {
x.HistoricalRecord = &HistoricalRecord{}
}
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.HistoricalRecord); err != nil {
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := runtime.Skip(dAtA[iNdEx:])
@ -14379,6 +14300,7 @@ func (x *QueryValidatorsRequest) GetPagination() *v1beta1.PageRequest {
return nil
}
// ValidatorInfo contains the validator's address and public key.
type ValidatorInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -15378,6 +15300,8 @@ func (x *QueryDelegatorValidatorResponse) GetValidator() *Validator {
// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
// method.
//
// Deprecated: Do not use.
type QueryHistoricalInfoRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -15416,6 +15340,8 @@ func (x *QueryHistoricalInfoRequest) GetHeight() int64 {
// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
// method.
//
// Deprecated: Do not use.
type QueryHistoricalInfoResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -15424,8 +15350,7 @@ type QueryHistoricalInfoResponse struct {
// hist defines the historical info at the given height.
//
// Deprecated: Do not use.
Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"`
HistoricalRecord *HistoricalRecord `protobuf:"bytes,2,opt,name=historical_record,json=historicalRecord,proto3" json:"historical_record,omitempty"`
Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"`
}
func (x *QueryHistoricalInfoResponse) Reset() {
@ -15456,13 +15381,6 @@ func (x *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo {
return nil
}
func (x *QueryHistoricalInfoResponse) GetHistoricalRecord() *HistoricalRecord {
if x != nil {
return x.HistoricalRecord
}
return nil
}
// QueryPoolRequest is request type for the Query/Pool RPC method.
type QueryPoolRequest struct {
state protoimpl.MessageState
@ -15870,22 +15788,17 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{
0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09,
0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x34, 0x0a, 0x1a, 0x51, 0x75, 0x65,
0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x38, 0x0a, 0x1a, 0x51, 0x75, 0x65,
0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22,
0xb4, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69,
0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x3e, 0x0a, 0x04, 0x68, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61,
0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x69, 0x73, 0x74, 0x12,
0x55, 0x0a, 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65,
0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x73,
0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65,
0x63, 0x6f, 0x72, 0x64, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c,
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a,
0x02, 0x18, 0x01, 0x22, 0x61, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74,
0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x68, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e,
0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x69,
0x73, 0x74, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,
0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x11, 0x51, 0x75,
0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x3b, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
@ -15898,7 +15811,7 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{
0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8,
0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xb0, 0x16, 0x0a,
0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xb3, 0x16, 0x0a,
0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64,
0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73,
0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51,
@ -16048,7 +15961,7 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{
0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64,
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x76,
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64,
0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x48,
0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x0e, 0x48,
0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x2e,
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74,
@ -16056,43 +15969,43 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{
0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x68, 0x69, 0x73,
0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x7b, 0x68, 0x65,
0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x28,
0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f,
0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x88, 0x02, 0x01, 0x88, 0xe7, 0xb0, 0x2a, 0x01,
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f,
0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f,
0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f,
0x6c, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69,
0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4,
0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61,
0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x6f,
0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x2e, 0x63,
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x29, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e,
0x12, 0x1c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e,
0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x8e,
0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d,
0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73,
0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51,
0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12,
0x1e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67,
0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42,
0xda, 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, 0x0a,
0x51, 0x75, 0x65, 0x72, 0x79, 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,
0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93,
0x02, 0x20, 0x12, 0x1e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b,
0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x42, 0xda, 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, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 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 (
@ -16145,9 +16058,8 @@ var file_cosmos_staking_v1beta1_query_proto_goTypes = []interface{}{
(*UnbondingDelegation)(nil), // 33: cosmos.staking.v1beta1.UnbondingDelegation
(*RedelegationResponse)(nil), // 34: cosmos.staking.v1beta1.RedelegationResponse
(*HistoricalInfo)(nil), // 35: cosmos.staking.v1beta1.HistoricalInfo
(*HistoricalRecord)(nil), // 36: cosmos.staking.v1beta1.HistoricalRecord
(*Pool)(nil), // 37: cosmos.staking.v1beta1.Pool
(*Params)(nil), // 38: cosmos.staking.v1beta1.Params
(*Pool)(nil), // 36: cosmos.staking.v1beta1.Pool
(*Params)(nil), // 37: cosmos.staking.v1beta1.Params
}
var file_cosmos_staking_v1beta1_query_proto_depIdxs = []int32{
29, // 0: cosmos.staking.v1beta1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest
@ -16177,42 +16089,41 @@ var file_cosmos_staking_v1beta1_query_proto_depIdxs = []int32{
31, // 24: cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse
30, // 25: cosmos.staking.v1beta1.QueryDelegatorValidatorResponse.validator:type_name -> cosmos.staking.v1beta1.Validator
35, // 26: cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist:type_name -> cosmos.staking.v1beta1.HistoricalInfo
36, // 27: cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record:type_name -> cosmos.staking.v1beta1.HistoricalRecord
37, // 28: cosmos.staking.v1beta1.QueryPoolResponse.pool:type_name -> cosmos.staking.v1beta1.Pool
38, // 29: cosmos.staking.v1beta1.QueryParamsResponse.params:type_name -> cosmos.staking.v1beta1.Params
0, // 30: cosmos.staking.v1beta1.Query.Validators:input_type -> cosmos.staking.v1beta1.QueryValidatorsRequest
3, // 31: cosmos.staking.v1beta1.Query.Validator:input_type -> cosmos.staking.v1beta1.QueryValidatorRequest
5, // 32: cosmos.staking.v1beta1.Query.ValidatorDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsRequest
7, // 33: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest
9, // 34: cosmos.staking.v1beta1.Query.Delegation:input_type -> cosmos.staking.v1beta1.QueryDelegationRequest
11, // 35: cosmos.staking.v1beta1.Query.UnbondingDelegation:input_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationRequest
13, // 36: cosmos.staking.v1beta1.Query.DelegatorDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest
15, // 37: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest
17, // 38: cosmos.staking.v1beta1.Query.Redelegations:input_type -> cosmos.staking.v1beta1.QueryRedelegationsRequest
19, // 39: cosmos.staking.v1beta1.Query.DelegatorValidators:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest
21, // 40: cosmos.staking.v1beta1.Query.DelegatorValidator:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorRequest
23, // 41: cosmos.staking.v1beta1.Query.HistoricalInfo:input_type -> cosmos.staking.v1beta1.QueryHistoricalInfoRequest
25, // 42: cosmos.staking.v1beta1.Query.Pool:input_type -> cosmos.staking.v1beta1.QueryPoolRequest
27, // 43: cosmos.staking.v1beta1.Query.Params:input_type -> cosmos.staking.v1beta1.QueryParamsRequest
2, // 44: cosmos.staking.v1beta1.Query.Validators:output_type -> cosmos.staking.v1beta1.QueryValidatorsResponse
4, // 45: cosmos.staking.v1beta1.Query.Validator:output_type -> cosmos.staking.v1beta1.QueryValidatorResponse
6, // 46: cosmos.staking.v1beta1.Query.ValidatorDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsResponse
8, // 47: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse
10, // 48: cosmos.staking.v1beta1.Query.Delegation:output_type -> cosmos.staking.v1beta1.QueryDelegationResponse
12, // 49: cosmos.staking.v1beta1.Query.UnbondingDelegation:output_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationResponse
14, // 50: cosmos.staking.v1beta1.Query.DelegatorDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse
16, // 51: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse
18, // 52: cosmos.staking.v1beta1.Query.Redelegations:output_type -> cosmos.staking.v1beta1.QueryRedelegationsResponse
20, // 53: cosmos.staking.v1beta1.Query.DelegatorValidators:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse
22, // 54: cosmos.staking.v1beta1.Query.DelegatorValidator:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorResponse
24, // 55: cosmos.staking.v1beta1.Query.HistoricalInfo:output_type -> cosmos.staking.v1beta1.QueryHistoricalInfoResponse
26, // 56: cosmos.staking.v1beta1.Query.Pool:output_type -> cosmos.staking.v1beta1.QueryPoolResponse
28, // 57: cosmos.staking.v1beta1.Query.Params:output_type -> cosmos.staking.v1beta1.QueryParamsResponse
44, // [44:58] is the sub-list for method output_type
30, // [30:44] is the sub-list for method input_type
30, // [30:30] is the sub-list for extension type_name
30, // [30:30] is the sub-list for extension extendee
0, // [0:30] is the sub-list for field type_name
36, // 27: cosmos.staking.v1beta1.QueryPoolResponse.pool:type_name -> cosmos.staking.v1beta1.Pool
37, // 28: cosmos.staking.v1beta1.QueryParamsResponse.params:type_name -> cosmos.staking.v1beta1.Params
0, // 29: cosmos.staking.v1beta1.Query.Validators:input_type -> cosmos.staking.v1beta1.QueryValidatorsRequest
3, // 30: cosmos.staking.v1beta1.Query.Validator:input_type -> cosmos.staking.v1beta1.QueryValidatorRequest
5, // 31: cosmos.staking.v1beta1.Query.ValidatorDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsRequest
7, // 32: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest
9, // 33: cosmos.staking.v1beta1.Query.Delegation:input_type -> cosmos.staking.v1beta1.QueryDelegationRequest
11, // 34: cosmos.staking.v1beta1.Query.UnbondingDelegation:input_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationRequest
13, // 35: cosmos.staking.v1beta1.Query.DelegatorDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest
15, // 36: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest
17, // 37: cosmos.staking.v1beta1.Query.Redelegations:input_type -> cosmos.staking.v1beta1.QueryRedelegationsRequest
19, // 38: cosmos.staking.v1beta1.Query.DelegatorValidators:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest
21, // 39: cosmos.staking.v1beta1.Query.DelegatorValidator:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorRequest
23, // 40: cosmos.staking.v1beta1.Query.HistoricalInfo:input_type -> cosmos.staking.v1beta1.QueryHistoricalInfoRequest
25, // 41: cosmos.staking.v1beta1.Query.Pool:input_type -> cosmos.staking.v1beta1.QueryPoolRequest
27, // 42: cosmos.staking.v1beta1.Query.Params:input_type -> cosmos.staking.v1beta1.QueryParamsRequest
2, // 43: cosmos.staking.v1beta1.Query.Validators:output_type -> cosmos.staking.v1beta1.QueryValidatorsResponse
4, // 44: cosmos.staking.v1beta1.Query.Validator:output_type -> cosmos.staking.v1beta1.QueryValidatorResponse
6, // 45: cosmos.staking.v1beta1.Query.ValidatorDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsResponse
8, // 46: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse
10, // 47: cosmos.staking.v1beta1.Query.Delegation:output_type -> cosmos.staking.v1beta1.QueryDelegationResponse
12, // 48: cosmos.staking.v1beta1.Query.UnbondingDelegation:output_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationResponse
14, // 49: cosmos.staking.v1beta1.Query.DelegatorDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse
16, // 50: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse
18, // 51: cosmos.staking.v1beta1.Query.Redelegations:output_type -> cosmos.staking.v1beta1.QueryRedelegationsResponse
20, // 52: cosmos.staking.v1beta1.Query.DelegatorValidators:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse
22, // 53: cosmos.staking.v1beta1.Query.DelegatorValidator:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorResponse
24, // 54: cosmos.staking.v1beta1.Query.HistoricalInfo:output_type -> cosmos.staking.v1beta1.QueryHistoricalInfoResponse
26, // 55: cosmos.staking.v1beta1.Query.Pool:output_type -> cosmos.staking.v1beta1.QueryPoolResponse
28, // 56: cosmos.staking.v1beta1.Query.Params:output_type -> cosmos.staking.v1beta1.QueryParamsResponse
43, // [43:57] is the sub-list for method output_type
29, // [29:43] is the sub-list for method input_type
29, // [29:29] is the sub-list for extension type_name
29, // [29:29] is the sub-list for extension extendee
0, // [0:29] is the sub-list for field type_name
}
func init() { file_cosmos_staking_v1beta1_query_proto_init() }

View File

@ -86,6 +86,7 @@ type QueryClient interface {
// DelegatorValidator queries validator info for given delegator validator
// pair.
DelegatorValidator(ctx context.Context, in *QueryDelegatorValidatorRequest, opts ...grpc.CallOption) (*QueryDelegatorValidatorResponse, error)
// Deprecated: Do not use.
// HistoricalInfo queries the historical info for given height.
HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error)
// Pool queries the pool info.
@ -201,6 +202,7 @@ func (c *queryClient) DelegatorValidator(ctx context.Context, in *QueryDelegator
return out, nil
}
// Deprecated: Do not use.
func (c *queryClient) HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error) {
out := new(QueryHistoricalInfoResponse)
err := c.cc.Invoke(ctx, Query_HistoricalInfo_FullMethodName, in, out, opts...)
@ -279,6 +281,7 @@ type QueryServer interface {
// DelegatorValidator queries validator info for given delegator validator
// pair.
DelegatorValidator(context.Context, *QueryDelegatorValidatorRequest) (*QueryDelegatorValidatorResponse, error)
// Deprecated: Do not use.
// HistoricalInfo queries the historical info for given height.
HistoricalInfo(context.Context, *QueryHistoricalInfoRequest) (*QueryHistoricalInfoResponse, error)
// Pool queries the pool info.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -162,7 +162,6 @@ func (c *Consensus[T]) Query(ctx context.Context, req *abciproto.QueryRequest) (
// otherwise it is a KV store query
if err == nil {
res, err := c.app.Query(ctx, uint64(req.Height), protoMsg)
if err != nil {
resp := queryResult(err)
resp.Height = req.Height

View File

@ -20,8 +20,8 @@ import (
"cosmossdk.io/server/v2/cometbft/client/rpc"
auth "cosmossdk.io/x/auth/client/cli"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client"
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/query"

View File

@ -17,6 +17,7 @@ replace (
cosmossdk.io/x/bank => ../../../x/bank
cosmossdk.io/x/consensus => ../../../x/consensus
cosmossdk.io/x/staking => ../../../x/staking
cosmossdk.io/x/tx => ../../../x/tx
github.com/cosmos/cosmos-sdk => ../../../
)

View File

@ -10,8 +10,6 @@ cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0=
cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U=
cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE=
cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k=
cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g=
cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs=

View File

@ -94,8 +94,7 @@ func TestAppImportExport(t *testing.T) {
skipPrefixes := map[string][][]byte{
stakingtypes.StoreKey: {
stakingtypes.UnbondingQueueKey, stakingtypes.RedelegationQueueKey, stakingtypes.ValidatorQueueKey,
stakingtypes.HistoricalInfoKey, stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey,
stakingtypes.UnbondingTypeKey,
stakingtypes.UnbondingIDKey, stakingtypes.UnbondingIndexKey, stakingtypes.UnbondingTypeKey,
},
authzkeeper.StoreKey: {authzkeeper.GrantQueuePrefix},
feegrant.StoreKey: {feegrant.FeeAllowanceQueueKeyPrefix},

View File

@ -19,7 +19,6 @@ import (
"cosmossdk.io/simapp/v2"
confixcmd "cosmossdk.io/tools/confix/cmd"
authcmd "cosmossdk.io/x/auth/client/cli"
banktypes "cosmossdk.io/x/bank/types"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/debug"
@ -91,7 +90,7 @@ func initRootCmd[AppT serverv2.AppI[T], T transaction.Tx](
genutilcli.InitCmd(moduleManager),
debug.Cmd(),
confixcmd.ConfigCommand(),
NewTestnetCmd(moduleManager, banktypes.GenesisBalancesIterator{}),
NewTestnetCmd(moduleManager),
// pruning.Cmd(newApp), // TODO add to comet server
// snapshot.Cmd(newApp), // TODO add to comet server
)

View File

@ -32,7 +32,6 @@ import (
"github.com/cosmos/cosmos-sdk/crypto/hd"
"github.com/cosmos/cosmos-sdk/crypto/keyring"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
// srvconfig "github.com/cosmos/cosmos-sdk/server/config"
"github.com/cosmos/cosmos-sdk/testutil"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/version"
@ -86,7 +85,7 @@ func addTestnetFlagsToCmd(cmd *cobra.Command) {
// NewTestnetCmd creates a root testnet command with subcommands to run an in-process testnet or initialize
// validator configuration files for running a multi-validator testnet in a separate process
func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T], genBalIterator banktypes.GenesisBalancesIterator) *cobra.Command {
func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T]) *cobra.Command {
testnetCmd := &cobra.Command{
Use: "testnet",
Short: "subcommands for starting or configuring local testnets",
@ -95,13 +94,13 @@ func NewTestnetCmd[T transaction.Tx](mm *runtimev2.MM[T], genBalIterator banktyp
RunE: client.ValidateCmd,
}
testnetCmd.AddCommand(testnetInitFilesCmd(mm, genBalIterator))
testnetCmd.AddCommand(testnetInitFilesCmd(mm))
return testnetCmd
}
// testnetInitFilesCmd returns a cmd to initialize all files for CometBFT testnet and application
func testnetInitFilesCmd[T transaction.Tx](mm *runtimev2.MM[T], genBalIterator banktypes.GenesisBalancesIterator) *cobra.Command {
func testnetInitFilesCmd[T transaction.Tx](mm *runtimev2.MM[T]) *cobra.Command {
cmd := &cobra.Command{
Use: "init-files",
Short: "Initialize config directories & files for a multi-validator testnet running locally via separate processes (e.g. Docker Compose or similar)",
@ -142,7 +141,7 @@ Example:
return err
}
return initTestnetFiles(clientCtx, cmd, config, mm, genBalIterator, args)
return initTestnetFiles(clientCtx, cmd, config, mm, args)
},
}
@ -167,7 +166,6 @@ func initTestnetFiles[T transaction.Tx](
cmd *cobra.Command,
nodeConfig *cmtconfig.Config,
mm *runtimev2.MM[T],
genBalIterator banktypes.GenesisBalancesIterator,
args initArgs,
) error {
if args.chainID == "" {
@ -353,7 +351,7 @@ func initTestnetFiles[T transaction.Tx](
err := collectGenFiles(
clientCtx, nodeConfig, args.chainID, nodeIDs, valPubKeys, args.numValidators,
args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome, genBalIterator,
args.outputDir, args.nodeDirPrefix, args.nodeDaemonHome,
rpcPort, p2pPortStart, args.singleMachine,
)
if err != nil {
@ -417,7 +415,7 @@ func initGenFiles[T transaction.Tx](
func collectGenFiles(
clientCtx client.Context, nodeConfig *cmtconfig.Config, chainID string,
nodeIDs []string, valPubKeys []cryptotypes.PubKey, numValidators int,
outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator,
outputDir, nodeDirPrefix, nodeDaemonHome string,
rpcPortStart, p2pPortStart int,
singleMachine bool,
) error {
@ -446,7 +444,7 @@ func collectGenFiles(
return err
}
nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, appGenesis, genBalIterator, genutiltypes.DefaultMessageValidator,
nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.Codec, clientCtx.TxConfig, nodeConfig, initCfg, appGenesis, genutiltypes.DefaultMessageValidator,
clientCtx.ValidatorAddressCodec, clientCtx.AddressCodec)
if err != nil {
return err

View File

@ -472,7 +472,7 @@ func TestGRPCValidatorDelegations(t *testing.T) {
ValidatorAddr: validator.OperatorAddress,
}
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.ValidatorDelegations, 14637, false)
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.ValidatorDelegations, 14610, false)
}
func TestGRPCValidatorUnbondingDelegations(t *testing.T) {
@ -562,7 +562,7 @@ func TestGRPCDelegation(t *testing.T) {
DelegatorAddr: delegator1,
}
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.Delegation, 4689, false)
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.Delegation, 4680, false)
}
func TestGRPCUnbondingDelegation(t *testing.T) {
@ -645,7 +645,7 @@ func TestGRPCDelegatorDelegations(t *testing.T) {
DelegatorAddr: delegator1,
}
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorDelegations, 4292, false)
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorDelegations, 4283, false)
}
func TestGRPCDelegatorValidator(t *testing.T) {
@ -732,47 +732,6 @@ func TestGRPCDelegatorUnbondingDelegations(t *testing.T) {
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.DelegatorUnbondingDelegations, 1302, false)
}
func TestGRPCHistoricalInfo(t *testing.T) {
t.Parallel()
f := initDeterministicFixture(t)
rapid.Check(t, func(rt *rapid.T) {
historical := stakingtypes.HistoricalRecord{}
height := rapid.Int64Min(0).Draw(rt, "height")
assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set(
f.ctx,
uint64(height),
historical,
))
req := &stakingtypes.QueryHistoricalInfoRequest{
Height: height,
}
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.HistoricalInfo, 0, true)
})
f = initDeterministicFixture(t) // reset
historicalInfo := stakingtypes.HistoricalRecord{}
height := int64(127)
assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set(
f.ctx,
uint64(height),
historicalInfo,
))
req := &stakingtypes.QueryHistoricalInfoRequest{
Height: height,
}
testdata.DeterministicIterations(t, f.ctx, req, f.queryClient.HistoricalInfo, 1027, false)
}
func TestGRPCDelegatorValidators(t *testing.T) {
t.Parallel()
f := initDeterministicFixture(t)
@ -821,7 +780,7 @@ func TestGRPCPool(t *testing.T) {
f = initDeterministicFixture(t) // reset
getStaticValidator(t, f)
testdata.DeterministicIterations(t, f.ctx, &stakingtypes.QueryPoolRequest{}, f.queryClient.Pool, 6296, false)
testdata.DeterministicIterations(t, f.ctx, &stakingtypes.QueryPoolRequest{}, f.queryClient.Pool, 6287, false)
}
func TestGRPCRedelegations(t *testing.T) {

View File

@ -5,7 +5,6 @@ import (
"fmt"
"testing"
cmtproto "github.com/cometbft/cometbft/api/cometbft/types/v1"
"gotest.tools/v3/assert"
"cosmossdk.io/collections"
@ -20,17 +19,11 @@ import (
func createValidatorAccs(t *testing.T, f *fixture) ([]sdk.AccAddress, []types.Validator) {
t.Helper()
addrs, _, validators := createValidators(&testing.T{}, f, []int64{9, 8, 7})
header := cmtproto.Header{
ChainID: "HelloChain",
Height: 5,
}
// sort a copy of the validators, so that original validators does not
// have its order changed
sortedVals := make([]types.Validator, len(validators))
copy(sortedVals, validators)
hi := types.HistoricalRecord{Time: &header.Time, Apphash: header.AppHash, ValidatorsHash: header.NextValidatorsHash}
assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set(f.sdkCtx, uint64(5), hi))
return addrs, validators
}
@ -725,71 +718,11 @@ func TestGRPCQueryPoolParameters(t *testing.T) {
func TestGRPCQueryHistoricalInfo(t *testing.T) {
t.Parallel()
f := initFixture(t)
ctx := f.sdkCtx
_, _ = createValidatorAccs(t, f)
qr := f.app.QueryHelper()
queryClient := types.NewQueryClient(qr)
hi, found := f.stakingKeeper.HistoricalInfo.Get(ctx, uint64(5))
assert.Assert(t, found)
var req *types.QueryHistoricalInfoRequest
testCases := []struct {
msg string
malleate func()
expPass bool
expErrMsg string
}{
{
"empty request",
func() {
req = &types.QueryHistoricalInfoRequest{}
},
false,
"historical info for height 0 not found",
},
{
"invalid request with negative height",
func() {
req = &types.QueryHistoricalInfoRequest{Height: -1}
},
false,
"height cannot be negative",
},
{
"valid request with old height",
func() {
req = &types.QueryHistoricalInfoRequest{Height: 4}
},
false,
"historical info for height 4 not found",
},
{
"valid request with current height",
func() {
req = &types.QueryHistoricalInfoRequest{Height: 5}
},
true,
"",
},
}
for _, tc := range testCases {
t.Run(fmt.Sprintf("Case %s", tc.msg), func(t *testing.T) {
tc.malleate()
res, err := queryClient.HistoricalInfo(gocontext.Background(), req)
if tc.expPass {
assert.NilError(t, err)
assert.Assert(t, res != nil)
assert.DeepEqual(t, &hi, res.HistoricalRecord)
} else {
assert.ErrorContains(t, err, tc.expErrMsg)
assert.Assert(t, res == nil)
}
})
}
_, err := queryClient.HistoricalInfo(gocontext.Background(), &types.QueryHistoricalInfoRequest{}) // nolint:staticcheck // SA1019: deprecated endpoint
assert.ErrorContains(t, err, "this endpoint has been deprecated and removed in 0.52")
}
func TestGRPCQueryRedelegations(t *testing.T) {

View File

@ -28,6 +28,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
### Bug Fixes
* [#20688](https://github.com/cosmos/cosmos-sdk/pull/20688) Avoid overslashing unbonding delegations after a redelegation.
* [#19226](https://github.com/cosmos/cosmos-sdk/pull/19226) Ensure `GetLastValidators` in `x/staking` does not return an error when `MaxValidators` exceeds total number of bonded validators.
### Features
@ -42,9 +43,6 @@ Ref: https://keepachangelog.com/en/1.0.0/
* [#18636](https://github.com/cosmos/cosmos-sdk/pull/18636) `IterateBondedValidatorsByPower`, `GetDelegatorBonded`, `Delegate`, `Unbond`, `Slash`, `Jail`, `SlashRedelegation`, `ApplyAndReturnValidatorSetUpdates` methods no longer panics on any kind of errors but instead returns appropriate errors.
* [#18506](https://github.com/cosmos/cosmos-sdk/pull/18506) Detect the length of the ed25519 pubkey in CreateValidator to prevent panic.
### Bug Fixes
* [#19226](https://github.com/cosmos/cosmos-sdk/pull/19226) Ensure `GetLastValidators` in `x/staking` does not return an error when `MaxValidators` exceeds total number of bonded validators.
### API Breaking Changes
@ -92,20 +90,16 @@ Ref: https://keepachangelog.com/en/1.0.0/
* remove from `types`: `GetValidatorByConsAddrKey`
* [#17248](https://github.com/cosmos/cosmos-sdk/pull/17248) Use collections for `UnbondingType`.
* remove from `types`: `GetUnbondingTypeKey`.
* [#17063](https://github.com/cosmos/cosmos-sdk/pull/17063) Use collections for `HistoricalInfo`:
* remove `Keeper`: `GetHistoricalInfo`, `SetHistoricalInfo`
* [#17062](https://github.com/cosmos/cosmos-sdk/pull/17062), [#19788](https://github.com/cosmos/cosmos-sdk/pull/19788) Remove `GetValidatorUpdates` and `ValidatorUpdates` storage.
* [#17026](https://github.com/cosmos/cosmos-sdk/pull/17026) Use collections for `LastTotalPower`:
* remove `Keeper`: `SetLastTotalPower`, `GetLastTotalPower`
* [#17335](https://github.com/cosmos/cosmos-sdk/pull/17335) Remove usage of `"cosmossdk.io/x/staking/types".Infraction_*` in favour of `"cosmossdk.io/api/cosmos/staking/v1beta1".Infraction_` in order to remove dependency between modules on staking
* [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `QueryHistoricalInfo` was adjusted to return `HistoricalRecord` and marked `Hist` as deprecated.
* [#20295](https://github.com/cosmos/cosmos-sdk/pull/20295) `GetValidatorByConsAddr` now returns the Cosmos SDK `cryptotypes.Pubkey` instead of `cometcrypto.Publickey`. The caller is responsible to translate the returned value to the expected type.
* Remove `CmtConsPublicKey()` and `TmConsPublicKey()` from `Validator` interface and as methods on the `Validator` struct.
* [#20728](https://github.com/cosmos/cosmos-sdk/pull/20728) Remove `NewHistoricalInfo` and related functions to Historical Info & `GetCmtConsPubKey`, `ToCmtValidator` & `ToCmtValidators` as comet validator type is no longer used in the staking module.
### State Breaking changes
* [#18841](https://github.com/cosmos/cosmos-sdk/pull/18841) In a undelegation or redelegation if the shares being left delegated correspond to less than 1 token (in base denom) the entire delegation gets removed.
* [#18142](https://github.com/cosmos/cosmos-sdk/pull/18142) Introduce `key_rotation_fee` param to calculate fees while rotating the keys
* [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `HistoricalInfo` was replaced with `HistoricalRecord`, it removes the validator set and comet header and only keep what is needed for IBC.
* [#19740](https://github.com/cosmos/cosmos-sdk/pull/19740) `InitGenesis` and `ExportGenesis` module code and keeper code do not panic but return errors.
* [#20845](https://github.com/cosmoc/cosmos-sdk/pull/20845) Remove HistoricalInfo from the staking modules storage

View File

@ -30,7 +30,6 @@ network.
* [UnbondingDelegation](#unbondingdelegation)
* [Redelegation](#redelegation)
* [Queues](#queues)
* [HistoricalInfo](#historicalinfo)
* [ConsPubkeyRotation](#conspubkeyrotation)
* [State Transitions](#state-transitions)
* [Validators](#validators)
@ -361,20 +360,8 @@ the present store info and append the `ValAddress` to the array and set it back
https://github.com/cosmos/cosmos-sdk/blob/8f0d5b15f0b10da7645d7fc1aa868fe44e3f3a44/proto/cosmos/staking/v1beta1/staking.proto#L429-L433
```
### HistoricalInfo
HistoricalInfo objects are stored and pruned at each block such that the staking keeper persists
the `n` most recent historical info defined by staking module parameter: `HistoricalEntries`.
```go reference
https://github.com/cosmos/cosmos-sdk/blob/v0.47.0-rc1/proto/cosmos/staking/v1beta1/staking.proto#L17-L24
```
At each BeginBlock, the staking keeper will persist the current Header and the Validators that committed
the current block in a `HistoricalInfo` object. The Validators are sorted on their address to ensure that
they are in a deterministic order.
The oldest HistoricalEntries will be pruned to ensure that there only exist the parameter-defined number of
historical entries.
## State Transitions
@ -796,18 +783,6 @@ The message handling can fail if:
* The `max_cons_pubkey_rotations` limit reached within unbonding period.
* The validator doesn't have enough balance to pay for the rotation.
## Begin-Block
Each abci begin block call, the historical info will get stored and pruned
according to the `HistoricalEntries` parameter.
### Historical Info Tracking
If the `HistoricalEntries` parameter is 0, then the `BeginBlock` performs a no-op.
Otherwise, the latest historical info is stored under the key `historicalInfoKey|height`, while any entries older than `height - HistoricalEntries` is deleted.
In most cases, this results in a single entry being pruned per block.
However, if the parameter `HistoricalEntries` has changed to a lower value there will be multiple entries in the store that must be pruned.
## End-Block
@ -2279,84 +2254,6 @@ Example Output:
}
```
#### HistoricalInfo
```bash
cosmos.staking.v1beta1.Query/HistoricalInfo
```
Example:
```bash
grpcurl -plaintext -d '{"height" : 1}' localhost:9090 cosmos.staking.v1beta1.Query/HistoricalInfo
```
Example Output:
```bash
{
"hist": {
"header": {
"version": {
"block": "11",
"app": "0"
},
"chain_id": "simd-1",
"height": "140142",
"time": "2021-10-11T10:56:29.720079569Z",
"last_block_id": {
"hash": "9gri/4LLJUBFqioQ3NzZIP9/7YHR9QqaM6B2aJNQA7o=",
"part_set_header": {
"total": 1,
"hash": "Hk1+C864uQkl9+I6Zn7IurBZBKUevqlVtU7VqaZl1tc="
}
},
"last_commit_hash": "VxrcS27GtvGruS3I9+AlpT7udxIT1F0OrRklrVFSSKc=",
"data_hash": "80BjOrqNYUOkTnmgWyz9AQ8n7SoEmPVi4QmAe8RbQBY=",
"validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=",
"next_validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=",
"consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=",
"app_hash": "ZZaxnSY3E6Ex5Bvkm+RigYCK82g8SSUL53NymPITeOE=",
"last_results_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"proposer_address": "aH6dO428B+ItuoqPq70efFHrSMY="
},
"valset": [
{
"operator_address": "cosmosvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "1426045203613",
"delegator_shares": "1426045203613.000000000000000000",
"description": {
"moniker": "SG-1",
"identity": "48608633F99D1B60",
"website": "https://sg-1.online",
"security_contact": "",
"details": "SG-1 - your favorite validator on Witval. We offer 100% Soft Slash protection."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.037500000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.030000000000000000"
},
"update_time": "2021-10-01T15:00:00Z"
},
"min_self_delegation": "1"
}
]
}
}
```
#### Pool
The `Pool` endpoint queries the pool information.
@ -2659,114 +2556,6 @@ Example Output:
}
```
#### HistoricalInfo
The `HistoricalInfo` REST endpoint queries the historical information for given height.
```bash
/cosmos/staking/v1beta1/historical_info/{height}
```
Example:
```bash
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/historical_info/153332" -H "accept: application/json"
```
Example Output:
```bash
{
"hist": {
"header": {
"version": {
"block": "11",
"app": "0"
},
"chain_id": "cosmos-1",
"height": "153332",
"time": "2021-10-12T09:05:35.062230221Z",
"last_block_id": {
"hash": "NX8HevR5khb7H6NGKva+jVz7cyf0skF1CrcY9A0s+d8=",
"part_set_header": {
"total": 1,
"hash": "zLQ2FiKM5tooL3BInt+VVfgzjlBXfq0Hc8Iux/xrhdg="
}
},
"last_commit_hash": "P6IJrK8vSqU3dGEyRHnAFocoDGja0bn9euLuy09s350=",
"data_hash": "eUd+6acHWrNXYju8Js449RJ99lOYOs16KpqQl4SMrEM=",
"validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=",
"next_validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=",
"consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=",
"app_hash": "fuELArKRK+CptnZ8tu54h6xEleSWenHNmqC84W866fU=",
"last_results_hash": "p/BPexV4LxAzlVcPRvW+lomgXb6Yze8YLIQUo/4Kdgc=",
"evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"proposer_address": "G0MeY8xQx7ooOsni8KE/3R/Ib3Q="
},
"valset": [
{
"operator_address": "cosmosvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "1416521659632",
"delegator_shares": "1416521659632.000000000000000000",
"description": {
"moniker": "SG-1",
"identity": "48608633F99D1B60",
"website": "https://sg-1.online",
"security_contact": "",
"details": "SG-1 - your favorite validator on cosmos. We offer 100% Soft Slash protection."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.037500000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.030000000000000000"
},
"update_time": "2021-10-01T15:00:00Z"
},
"min_self_delegation": "1"
},
{
"operator_address": "cosmosvaloper1t8ehvswxjfn3ejzkjtntcyrqwvmvuknzmvtaaa",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "uExZyjNLtr2+FFIhNDAMcQ8+yTrqE7ygYTsI7khkA5Y="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "1348298958808",
"delegator_shares": "1348298958808.000000000000000000",
"description": {
"moniker": "Cosmostation",
"identity": "AE4C403A6E7AA1AC",
"website": "https://www.cosmostation.io",
"security_contact": "admin@stamper.network",
"details": "Cosmostation validator node. Delegate your tokens and Start Earning Staking Rewards"
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.050000000000000000",
"max_rate": "1.000000000000000000",
"max_change_rate": "0.200000000000000000"
},
"update_time": "2021-10-01T15:06:38.821314287Z"
},
"min_self_delegation": "1"
}
]
}
}
```
#### Parameters
The `Parameters` REST endpoint queries the staking parameters.

View File

@ -9,13 +9,6 @@ import (
"github.com/cosmos/cosmos-sdk/telemetry"
)
// BeginBlocker will persist the current header and validator set as a historical entry
// and prune the oldest entry based on the HistoricalEntries parameter
func (k *Keeper) BeginBlocker(ctx context.Context) error {
defer telemetry.ModuleMeasureSince(types.ModuleName, telemetry.Now(), telemetry.MetricKeyBeginBlocker)
return k.TrackHistoricalInfo(ctx)
}
// EndBlocker called at every block, update validator set
func (k *Keeper) EndBlocker(ctx context.Context) ([]appmodule.ValidatorUpdate, error) {
start := telemetry.Now()

View File

@ -404,21 +404,12 @@ func (k Querier) DelegatorUnbondingDelegations(ctx context.Context, req *types.Q
}
// HistoricalInfo queries the historical info for given height
func (k Querier) HistoricalInfo(ctx context.Context, req *types.QueryHistoricalInfoRequest) (*types.QueryHistoricalInfoResponse, error) {
func (k Querier) HistoricalInfo(ctx context.Context, req *types.QueryHistoricalInfoRequest) (*types.QueryHistoricalInfoResponse, error) { // nolint:staticcheck // SA1019: deprecated endpoint
if req == nil {
return nil, status.Error(codes.InvalidArgument, "empty request")
}
if req.Height < 0 {
return nil, status.Error(codes.InvalidArgument, "height cannot be negative")
}
hi, err := k.Keeper.HistoricalInfo.Get(ctx, uint64(req.Height))
if err != nil {
return nil, status.Errorf(codes.NotFound, "historical info for height %d not found", req.Height)
}
return &types.QueryHistoricalInfoResponse{HistoricalRecord: &hi}, nil
return nil, status.Error(codes.Internal, "this endpoint has been deprecated and removed in 0.52")
}
// Redelegations queries redelegations of given address

View File

@ -1,53 +0,0 @@
package keeper
import (
"context"
"cosmossdk.io/x/staking/types"
)
// TrackHistoricalInfo saves the latest historical-info and deletes the oldest
// heights that are below pruning height
func (k Keeper) TrackHistoricalInfo(ctx context.Context) error {
entryNum, err := k.HistoricalEntries(ctx)
if err != nil {
return err
}
headerInfo := k.HeaderService.HeaderInfo(ctx)
// Prune store to ensure we only have parameter-defined historical entries.
// In most cases, this will involve removing a single historical entry.
// In the rare scenario when the historical entries gets reduced to a lower value k'
// from the original value k. k - k' entries must be deleted from the store.
// Since the entries to be deleted are always in a continuous range, we can iterate
// over the historical entries starting from the most recent version to be pruned
// and then return at the first empty entry.
for i := headerInfo.Height - int64(entryNum); i >= 0; i-- {
has, err := k.HistoricalInfo.Has(ctx, uint64(i))
if err != nil {
return err
}
if !has {
break
}
if err = k.HistoricalInfo.Remove(ctx, uint64(i)); err != nil {
return err
}
}
// if there is no need to persist historicalInfo, return
if entryNum == 0 {
return nil
}
ci := k.cometInfoService.CometInfo(ctx)
historicalEntry := types.HistoricalRecord{
Time: &headerInfo.Time,
ValidatorsHash: ci.ValidatorsHash,
Apphash: headerInfo.AppHash,
}
// Set latest HistoricalInfo at current height
return k.HistoricalInfo.Set(ctx, uint64(headerInfo.Height), historicalEntry)
}

View File

@ -1,173 +0,0 @@
package keeper_test
import (
"time"
"cosmossdk.io/collections"
coreheader "cosmossdk.io/core/header"
"cosmossdk.io/math"
"cosmossdk.io/x/staking/testutil"
stakingtypes "cosmossdk.io/x/staking/types"
)
// IsValSetSorted reports whether valset is sorted.
func IsValSetSorted(data []stakingtypes.Validator, powerReduction math.Int) bool {
n := len(data)
for i := n - 1; i > 0; i-- {
if stakingtypes.ValidatorsByVotingPower(data).Less(i, i-1, powerReduction) {
return false
}
}
return true
}
func (s *KeeperTestSuite) TestHistoricalInfo() {
ctx, keeper := s.ctx, s.stakingKeeper
require := s.Require()
_, addrVals := createValAddrs(50)
validators := make([]stakingtypes.Validator, len(addrVals))
for i, valAddr := range addrVals {
validators[i] = testutil.NewValidator(s.T(), valAddr, PKs[i])
}
time := ctx.BlockTime()
hi := stakingtypes.HistoricalRecord{
Time: &time,
ValidatorsHash: ctx.CometInfo().ValidatorsHash,
Apphash: ctx.HeaderInfo().AppHash,
}
require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(2), hi))
recv, err := keeper.HistoricalInfo.Get(ctx, uint64(2))
require.NoError(err, "HistoricalInfo found after set")
require.Equal(hi, recv, "HistoricalInfo not equal")
require.NoError(keeper.HistoricalInfo.Remove(ctx, uint64(2)))
recv, err = keeper.HistoricalInfo.Get(ctx, uint64(2))
require.ErrorIs(err, collections.ErrNotFound, "HistoricalInfo not found after delete")
require.Equal(stakingtypes.HistoricalRecord{}, recv, "HistoricalInfo is not empty")
}
func (s *KeeperTestSuite) TestTrackHistoricalInfo() {
ctx, keeper := s.ctx, s.stakingKeeper
require := s.Require()
_, addrVals := createValAddrs(50)
// set historical entries in params to 5
params := stakingtypes.DefaultParams()
params.HistoricalEntries = 5
require.NoError(keeper.Params.Set(ctx, params))
// set historical info at 5, 4 which should be pruned
// and check that it has been stored
t := time.Now().Round(0).UTC()
hi4 := stakingtypes.HistoricalRecord{
Time: &t,
ValidatorsHash: []byte("validatorHash"),
Apphash: []byte("AppHash"),
}
hi5 := stakingtypes.HistoricalRecord{
Time: &t,
ValidatorsHash: []byte("validatorHash"),
Apphash: []byte("AppHash"),
}
require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(4), hi4))
require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(5), hi5))
recv, err := keeper.HistoricalInfo.Get(ctx, uint64(4))
require.NoError(err)
require.Equal(hi4, recv)
recv, err = keeper.HistoricalInfo.Get(ctx, uint64(5))
require.NoError(err)
require.Equal(hi5, recv)
// Set bonded validators in keeper
val1 := testutil.NewValidator(s.T(), addrVals[2], PKs[2])
val1.Status = stakingtypes.Bonded // when not bonded, consensus power is Zero
val1.Tokens = keeper.TokensFromConsensusPower(ctx, 10)
require.NoError(keeper.SetValidator(ctx, val1))
valbz, err := keeper.ValidatorAddressCodec().StringToBytes(val1.GetOperator())
require.NoError(err)
require.NoError(keeper.SetLastValidatorPower(ctx, valbz, 10))
val2 := testutil.NewValidator(s.T(), addrVals[3], PKs[3])
val1.Status = stakingtypes.Bonded
val2.Tokens = keeper.TokensFromConsensusPower(ctx, 80)
require.NoError(keeper.SetValidator(ctx, val2))
valbz, err = keeper.ValidatorAddressCodec().StringToBytes(val2.GetOperator())
require.NoError(err)
require.NoError(keeper.SetLastValidatorPower(ctx, valbz, 80))
vals := []stakingtypes.Validator{val1, val2}
require.True(IsValSetSorted(vals, keeper.PowerReduction(ctx)))
// Set Header for BeginBlock context
ctx = ctx.WithHeaderInfo(coreheader.Info{
ChainID: "HelloChain",
Height: 10,
Time: t,
})
require.NoError(keeper.TrackHistoricalInfo(ctx))
// Check HistoricalInfo at height 10 is persisted
expected := stakingtypes.HistoricalRecord{
Time: &t,
ValidatorsHash: ctx.CometInfo().ValidatorsHash,
Apphash: ctx.HeaderInfo().AppHash,
}
recv, err = keeper.HistoricalInfo.Get(ctx, uint64(10))
require.NoError(err, "GetHistoricalInfo failed after BeginBlock")
require.Equal(expected, recv, "GetHistoricalInfo returned unexpected result")
// Check HistoricalInfo at height 5, 4 is pruned
recv, err = keeper.HistoricalInfo.Get(ctx, uint64(4))
require.ErrorIs(err, collections.ErrNotFound, "GetHistoricalInfo did not prune earlier height")
require.Equal(stakingtypes.HistoricalRecord{}, recv, "GetHistoricalInfo at height 4 is not empty after prune")
recv, err = keeper.HistoricalInfo.Get(ctx, uint64(5))
require.ErrorIs(err, collections.ErrNotFound, "GetHistoricalInfo did not prune first prune height")
require.Equal(stakingtypes.HistoricalRecord{}, recv, "GetHistoricalInfo at height 5 is not empty after prune")
}
func (s *KeeperTestSuite) TestGetAllHistoricalInfo() {
ctx, keeper := s.ctx, s.stakingKeeper
require := s.Require()
t := time.Now().Round(0).UTC()
hist1 := stakingtypes.HistoricalRecord{
Time: &t,
ValidatorsHash: nil,
Apphash: nil,
}
hist2 := stakingtypes.HistoricalRecord{
Time: &t,
ValidatorsHash: nil,
Apphash: nil,
}
hist3 := stakingtypes.HistoricalRecord{
Time: &t,
ValidatorsHash: nil,
Apphash: nil,
}
expHistInfos := []stakingtypes.HistoricalRecord{hist1, hist2, hist3}
for i, hi := range expHistInfos {
require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(int64(9+i)), hi))
}
var infos []stakingtypes.HistoricalRecord
err := keeper.HistoricalInfo.Walk(ctx, nil, func(key uint64, info stakingtypes.HistoricalRecord) (stop bool, err error) {
infos = append(infos, info)
return false, nil
})
require.NoError(err)
require.Equal(expHistInfos, infos)
}

View File

@ -25,22 +25,6 @@ var _ types.ValidatorSet = Keeper{}
// Implements DelegationSet interface
var _ types.DelegationSet = Keeper{}
func HistoricalInfoCodec(cdc codec.BinaryCodec) collcodec.ValueCodec[types.HistoricalRecord] {
return collcodec.NewAltValueCodec(codec.CollValue[types.HistoricalRecord](cdc), func(b []byte) (types.HistoricalRecord, error) {
historicalinfo := types.HistoricalInfo{} //nolint: staticcheck // HistoricalInfo is deprecated
err := historicalinfo.Unmarshal(b)
if err != nil {
return types.HistoricalRecord{}, err
}
return types.HistoricalRecord{
Apphash: historicalinfo.Header.AppHash,
Time: &historicalinfo.Header.Time,
ValidatorsHash: historicalinfo.Header.NextValidatorsHash,
}, nil
})
}
type rotationHistoryIndexes struct {
Block *indexes.Multi[uint64, collections.Pair[[]byte, uint64], types.ConsPubKeyRotationHistory]
}
@ -81,8 +65,6 @@ type Keeper struct {
Schema collections.Schema
// HistoricalInfo key: Height | value: HistoricalInfo
HistoricalInfo collections.Map[uint64, types.HistoricalRecord]
// LastTotalPower value: LastTotalPower
LastTotalPower collections.Item[math.Int]
// DelegationsByValidator key: valAddr+delAddr | value: none used (index key for delegations by validator index)
@ -172,7 +154,6 @@ func NewKeeper(
consensusAddressCodec: consensusAddressCodec,
cometInfoService: cometInfoService,
LastTotalPower: collections.NewItem(sb, types.LastTotalPowerKey, "last_total_power", sdk.IntValue),
HistoricalInfo: collections.NewMap(sb, types.HistoricalInfoKey, "historical_info", collections.Uint64Key, HistoricalInfoCodec(cdc)),
Delegations: collections.NewMap(
sb, types.DelegationKey, "delegations",
collections.PairKeyCodec(

View File

@ -286,7 +286,7 @@ func (s *KeeperTestSuite) TestLastTotalPowerMigrationToColls() {
s.ctx.KVStore(s.key).Set(getLastValidatorPowerKey(valAddrs[i]), bz)
},
"198aa9b8c1d9bc02308b7b2a48944f3e4b05c6b8312cb0bcc73518d1260f682d",
"d9690cb1904ab91c618a3f6d27ef90bfe6fb57a2c01970b7c088ec4ecd0613eb",
)
s.Require().NoError(err)
@ -301,7 +301,7 @@ func (s *KeeperTestSuite) TestLastTotalPowerMigrationToColls() {
err = s.stakingKeeper.LastValidatorPower.Set(s.ctx, valAddrs[i], intV)
s.Require().NoError(err)
},
"198aa9b8c1d9bc02308b7b2a48944f3e4b05c6b8312cb0bcc73518d1260f682d",
"d9690cb1904ab91c618a3f6d27ef90bfe6fb57a2c01970b7c088ec4ecd0613eb",
)
s.Require().NoError(err)
}
@ -319,7 +319,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{})
},
"cae99e5c0498356a290f9478b7db73d522840b736878a9d4c00b56d1ddd7fd04",
"43ab9766738a05bfe5f1fd5dd0fb01c05b574f7d43c004dbf228deb437e0eb7c",
)
s.Require().NoError(err)
@ -332,7 +332,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)
},
"cae99e5c0498356a290f9478b7db73d522840b736878a9d4c00b56d1ddd7fd04",
"43ab9766738a05bfe5f1fd5dd0fb01c05b574f7d43c004dbf228deb437e0eb7c",
)
s.Require().NoError(err)
@ -351,7 +351,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{})
},
"1b7687449a83f8176a60aeced7bcfc69a2b957b9eefad60c69a9fae9acfdaa81", // this hash obtained when ran this test in main branch
"70c00b5171cbef019742d236096df60fc423cd7568c4933ab165baa3c68a64a1", // this hash obtained when ran this test in main branch
)
s.Require().NoError(err)
@ -364,7 +364,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)
},
"1b7687449a83f8176a60aeced7bcfc69a2b957b9eefad60c69a9fae9acfdaa81",
"70c00b5171cbef019742d236096df60fc423cd7568c4933ab165baa3c68a64a1",
)
s.Require().NoError(err)
@ -395,7 +395,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{})
},
"70454ad98368368aaff32d207a7a115fba49133ecf2a225d8e3eca88c6b2324c",
"bae8a1f2070bea541bfeca8e7e4a1203cb316126451325b846b303897e8e7082",
)
s.Require().NoError(err)
@ -419,7 +419,7 @@ func (s *KeeperTestSuite) TestUnbondingDelegationsMigrationToColls() {
err := s.stakingKeeper.SetUnbondingDelegation(s.ctx, ubd)
s.Require().NoError(err)
},
"70454ad98368368aaff32d207a7a115fba49133ecf2a225d8e3eca88c6b2324c",
"bae8a1f2070bea541bfeca8e7e4a1203cb316126451325b846b303897e8e7082",
)
s.Require().NoError(err)
}
@ -436,7 +436,7 @@ func (s *KeeperTestSuite) TestUBDQueueMigrationToColls() {
// legacy Set method
s.ctx.KVStore(s.key).Set(getUnbondingDelegationTimeKey(date), []byte{})
},
"2dd1dd08ea1cc2b0a076c420e3888b218647b9409b435f75e5730b0e4f25e890",
"3f2de3f984c99cce5307db45961237220212c02981654b01b7b52f7a68b5b21b",
)
s.Require().NoError(err)
@ -449,7 +449,7 @@ func (s *KeeperTestSuite) TestUBDQueueMigrationToColls() {
err := s.stakingKeeper.SetUBDQueueTimeSlice(s.ctx, date, nil)
s.Require().NoError(err)
},
"2dd1dd08ea1cc2b0a076c420e3888b218647b9409b435f75e5730b0e4f25e890",
"3f2de3f984c99cce5307db45961237220212c02981654b01b7b52f7a68b5b21b",
)
s.Require().NoError(err)
}
@ -483,7 +483,7 @@ func (s *KeeperTestSuite) TestValidatorsMigrationToColls() {
// legacy Set method
s.ctx.KVStore(s.key).Set(getValidatorKey(valAddrs[i]), valBz)
},
"aa495d55fb45df89fcf1d4326331bfc1244ef879764abe76f6ce2a41ccd4180d",
"d8acdcf8b7c8e17f3e83f0a4c293f89ad619a5dcb14d232911ccc5da15653177",
)
s.Require().NoError(err)
@ -509,7 +509,7 @@ func (s *KeeperTestSuite) TestValidatorsMigrationToColls() {
err := s.stakingKeeper.SetValidator(s.ctx, val)
s.Require().NoError(err)
},
"aa495d55fb45df89fcf1d4326331bfc1244ef879764abe76f6ce2a41ccd4180d",
"d8acdcf8b7c8e17f3e83f0a4c293f89ad619a5dcb14d232911ccc5da15653177",
)
s.Require().NoError(err)
}
@ -532,7 +532,7 @@ func (s *KeeperTestSuite) TestValidatorQueueMigrationToColls() {
// legacy Set method
s.ctx.KVStore(s.key).Set(getValidatorQueueKey(endTime, endHeight), bz)
},
"b23a5905ced2b76c46ddd0f7d39e2ed7dcc68cd81993c497ee314b2e1a158595",
"a631942cd94450d778706c98afc4f83231524e3e94c88474cdab79a01a4899a0",
)
s.Require().NoError(err)
@ -547,7 +547,7 @@ func (s *KeeperTestSuite) TestValidatorQueueMigrationToColls() {
err := s.stakingKeeper.SetUnbondingValidatorsQueue(s.ctx, endTime, endHeight, addrs)
s.Require().NoError(err)
},
"b23a5905ced2b76c46ddd0f7d39e2ed7dcc68cd81993c497ee314b2e1a158595",
"a631942cd94450d778706c98afc4f83231524e3e94c88474cdab79a01a4899a0",
)
s.Require().NoError(err)
}
@ -575,7 +575,7 @@ func (s *KeeperTestSuite) TestRedelegationQueueMigrationToColls() {
s.Require().NoError(err)
s.ctx.KVStore(s.key).Set(getRedelegationTimeKey(date), bz)
},
"d6a1c46c7c5793ff7094b67252c82883aecb75c8359428a59aacd3657fa16235",
"58722ccde0cacda42aa81d71d7da1123b2c4a8e35d961d55f1507c3f10ffbc96",
)
s.Require().NoError(err)
@ -597,7 +597,7 @@ func (s *KeeperTestSuite) TestRedelegationQueueMigrationToColls() {
err := s.stakingKeeper.SetRedelegationQueueTimeSlice(s.ctx, date, dvvTriplets.Triplets)
s.Require().NoError(err)
},
"d6a1c46c7c5793ff7094b67252c82883aecb75c8359428a59aacd3657fa16235",
"58722ccde0cacda42aa81d71d7da1123b2c4a8e35d961d55f1507c3f10ffbc96",
)
s.Require().NoError(err)
}

View File

@ -1149,7 +1149,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() {
UnbondingTime: types.DefaultUnbondingTime,
MaxValidators: types.DefaultMaxValidators,
MaxEntries: types.DefaultMaxEntries,
HistoricalEntries: types.DefaultHistoricalEntries,
HistoricalEntries: 0,
BondDenom: types.BondStatusBonded,
},
},
@ -1164,7 +1164,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() {
UnbondingTime: types.DefaultUnbondingTime,
MaxValidators: types.DefaultMaxValidators,
MaxEntries: types.DefaultMaxEntries,
HistoricalEntries: types.DefaultHistoricalEntries,
HistoricalEntries: 0,
BondDenom: types.BondStatusBonded,
},
},
@ -1179,7 +1179,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() {
UnbondingTime: types.DefaultUnbondingTime,
MaxValidators: types.DefaultMaxValidators,
MaxEntries: types.DefaultMaxEntries,
HistoricalEntries: types.DefaultHistoricalEntries,
HistoricalEntries: 0,
BondDenom: "",
},
},
@ -1194,7 +1194,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() {
UnbondingTime: types.DefaultUnbondingTime,
MaxValidators: 0,
MaxEntries: types.DefaultMaxEntries,
HistoricalEntries: types.DefaultHistoricalEntries,
HistoricalEntries: 0,
BondDenom: types.BondStatusBonded,
},
},
@ -1209,7 +1209,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() {
UnbondingTime: types.DefaultUnbondingTime,
MaxValidators: types.DefaultMaxValidators,
MaxEntries: 0,
HistoricalEntries: types.DefaultHistoricalEntries,
HistoricalEntries: 0,
BondDenom: types.BondStatusBonded,
},
},
@ -1223,7 +1223,7 @@ func (s *KeeperTestSuite) TestMsgUpdateParams() {
UnbondingTime: time.Hour * 24 * 7 * 3 * -1,
MaxEntries: types.DefaultMaxEntries,
MaxValidators: types.DefaultMaxValidators,
HistoricalEntries: types.DefaultHistoricalEntries,
HistoricalEntries: 0,
MinCommissionRate: types.DefaultMinCommissionRate,
BondDenom: "denom",
},

View File

@ -2,4 +2,7 @@ package v6
import "cosmossdk.io/collections"
var ValidatorUpdatesKey = collections.NewPrefix(97)
var (
ValidatorUpdatesKey = collections.NewPrefix(97)
HistoricalInfoKey = collections.NewPrefix(80) // prefix for the historical info
)

View File

@ -12,5 +12,6 @@ import (
// It deletes the ValidatorUpdatesKey from the store.
func MigrateStore(ctx context.Context, store storetypes.KVStore, cdc codec.BinaryCodec) error {
store.Delete(ValidatorUpdatesKey)
store.Delete(HistoricalInfoKey)
return nil
}

View File

@ -37,7 +37,6 @@ var (
_ module.HasABCIEndBlock = AppModule{}
_ appmodule.AppModule = AppModule{}
_ appmodule.HasBeginBlocker = AppModule{}
_ appmodule.HasServices = AppModule{}
_ appmodule.HasMigrations = AppModule{}
_ appmodule.HasRegisterInterfaces = AppModule{}
@ -171,11 +170,6 @@ func (am AppModule) ExportGenesis(ctx context.Context) (json.RawMessage, error)
// ConsensusVersion implements HasConsensusVersion
func (AppModule) ConsensusVersion() uint64 { return consensusVersion }
// BeginBlock returns the begin blocker for the staking module.
func (am AppModule) BeginBlock(ctx context.Context) error {
return am.keeper.BeginBlocker(ctx)
}
// EndBlock returns the end blocker for the staking module.
func (am AppModule) EndBlock(ctx context.Context) ([]appmodule.ValidatorUpdate, error) {
return am.keeper.EndBlocker(ctx)

View File

@ -113,6 +113,7 @@ service Query {
// HistoricalInfo queries the historical info for given height.
rpc HistoricalInfo(QueryHistoricalInfoRequest) returns (QueryHistoricalInfoResponse) {
option deprecated = true;
option (cosmos.query.v1.module_query_safe) = true;
option (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}";
}
@ -139,6 +140,7 @@ message QueryValidatorsRequest {
cosmos.base.query.v1beta1.PageRequest pagination = 2;
}
// ValidatorInfo contains the validator's address and public key.
message ValidatorInfo {
option (cosmos_proto.message_added_in) = "x/staking v0.2.0";
// consensus_address is the consensus address of the validator.
@ -367,6 +369,7 @@ message QueryDelegatorValidatorResponse {
// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
// method.
message QueryHistoricalInfoRequest {
option deprecated = true;
// height defines at which height to query the historical info.
int64 height = 1;
}
@ -374,9 +377,9 @@ message QueryHistoricalInfoRequest {
// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
// method.
message QueryHistoricalInfoResponse {
option deprecated = true;
// hist defines the historical info at the given height.
HistoricalInfo hist = 1 [deprecated = true];
HistoricalRecord historical_record = 2;
HistoricalInfo hist = 1 [deprecated = true];
}
// QueryPoolRequest is request type for the Query/Pool RPC method.

View File

@ -25,16 +25,6 @@ message HistoricalInfo {
repeated Validator valset = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
}
// HistoricalRecord contains a set of minimum values needed for evaluating historical validator sets and blocks.
// It is stored as part of staking module's state, which persists the `n` most
// recent HistoricalInfo
// (`n` is set by the staking module's `historical_entries` parameter).
message HistoricalRecord {
bytes apphash = 1;
google.protobuf.Timestamp time = 2 [(gogoproto.stdtime) = true];
bytes validators_hash = 3;
}
// CommissionRates defines the initial commission rates to be used for creating
// a validator.
message CommissionRates {
@ -231,7 +221,7 @@ message UnbondingDelegation {
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
// entries are the unbonding delegation entries.
repeated UnbondingDelegationEntry entries = 3
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // unbonding delegation entries
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // unbonding delegation entries
}
// UnbondingDelegationEntry defines an unbonding object with relevant metadata.
@ -304,7 +294,7 @@ message Redelegation {
string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"];
// entries are the redelegation entries.
repeated RedelegationEntry entries = 4
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // redelegation entries
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // redelegation entries
}
// Params defines the parameters for the x/staking module.
@ -320,7 +310,7 @@ message Params {
// max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio).
uint32 max_entries = 3;
// historical_entries is the number of historical entries to persist.
uint32 historical_entries = 4;
uint32 historical_entries = 4 [deprecated = true];
// bond_denom defines the bondable coin denomination.
string bond_denom = 5;
// min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators

View File

@ -34,7 +34,7 @@ func genMaxValidators(r *rand.Rand) (maxValidators uint32) {
// getHistEntries returns randomized HistoricalEntries between 0-100.
func getHistEntries(r *rand.Rand) uint32 {
return uint32(r.Intn(int(types.DefaultHistoricalEntries + 1)))
return uint32(r.Intn(int(0 + 1)))
}
// getKeyRotationFee returns randomized keyRotationFee between 10000-1000000.
@ -64,7 +64,7 @@ func RandomizedGenState(simState *module.SimulationState) {
// 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, rotationFee)
params := types.NewParams(simState.UnbondTime, maxVals, 7, simState.BondDenom, minCommissionRate, rotationFee)
// validators & delegations
var (

View File

@ -51,7 +51,7 @@ func TestRandomizedGenState(t *testing.T) {
require.Equal(t, uint32(207), stakingGenesis.Params.MaxValidators)
require.Equal(t, uint32(7), stakingGenesis.Params.MaxEntries)
require.Equal(t, uint32(8687), stakingGenesis.Params.HistoricalEntries)
require.Equal(t, uint32(0), stakingGenesis.Params.HistoricalEntries)
require.Equal(t, "stake", stakingGenesis.Params.BondDenom)
require.Equal(t, float64(238280), stakingGenesis.Params.UnbondingTime.Seconds())
// check numbers of Delegations and Validators

View File

@ -39,7 +39,6 @@ var (
ErrDelegatorShareExRateInvalid = errors.Register(ModuleName, 34, "cannot delegate to validators with invalid (zero) ex-rate")
ErrBothShareMsgsGiven = errors.Register(ModuleName, 35, "both shares amount and shares percent provided")
ErrNeitherShareMsgsGiven = errors.Register(ModuleName, 36, "neither shares amount nor shares percent provided")
ErrInvalidHistoricalInfo = errors.Register(ModuleName, 37, "invalid historical info")
ErrEmptyValidatorPubKey = errors.Register(ModuleName, 39, "empty validator public key")
ErrCommissionLTMinRate = errors.Register(ModuleName, 40, "commission cannot be less than min rate")
ErrUnbondingNotFound = errors.Register(ModuleName, 41, "unbonding operation not found")

View File

@ -57,8 +57,7 @@ var (
RedelegationQueueKey = collections.NewPrefix(66) // prefix for the timestamps in redelegations queue
ValidatorQueueKey = collections.NewPrefix(67) // prefix for the timestamps in validator queue
HistoricalInfoKey = collections.NewPrefix(80) // prefix for the historical info
ParamsKey = collections.NewPrefix(81) // prefix for parameters for module x/staking
ParamsKey = collections.NewPrefix(81) // prefix for parameters for module x/staking
DelegationByValIndexKey = collections.NewPrefix(113) // key for delegations by a validator

View File

@ -24,11 +24,6 @@ const (
// Default maximum entries in a UBD/RED pair
DefaultMaxEntries uint32 = 7
// DefaultHistorical entries is 10000. Apps that don't use IBC can ignore this
// value by not adding the staking module to the application module manager's
// SetOrderBeginBlockers.
DefaultHistoricalEntries uint32 = 10000
)
var (
@ -41,7 +36,7 @@ var (
// NewParams creates a new Params instance
func NewParams(unbondingTime time.Duration,
maxValidators, maxEntries, historicalEntries uint32,
maxValidators, maxEntries uint32,
bondDenom string, minCommissionRate math.LegacyDec,
keyRotationFee sdk.Coin,
) Params {
@ -49,7 +44,7 @@ func NewParams(unbondingTime time.Duration,
UnbondingTime: unbondingTime,
MaxValidators: maxValidators,
MaxEntries: maxEntries,
HistoricalEntries: historicalEntries,
HistoricalEntries: 0,
BondDenom: bondDenom,
MinCommissionRate: minCommissionRate,
KeyRotationFee: keyRotationFee,
@ -62,7 +57,6 @@ func DefaultParams() Params {
DefaultUnbondingTime,
DefaultMaxValidators,
DefaultMaxEntries,
DefaultHistoricalEntries,
sdk.DefaultBondDenom,
DefaultMinCommissionRate,
DefaultKeyRotationFee,

View File

@ -87,6 +87,7 @@ func (m *QueryValidatorsRequest) GetPagination() *query.PageRequest {
return nil
}
// ValidatorInfo contains the validator's address and public key.
type ValidatorInfo struct {
// consensus_address is the consensus address of the validator.
ConsensusAddress string `protobuf:"bytes,1,opt,name=consensus_address,json=consensusAddress,proto3" json:"consensus_address,omitempty"`
@ -1188,6 +1189,8 @@ func (m *QueryDelegatorValidatorResponse) GetValidator() Validator {
// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
// method.
//
// Deprecated: Do not use.
type QueryHistoricalInfoRequest struct {
// height defines at which height to query the historical info.
Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
@ -1235,10 +1238,11 @@ func (m *QueryHistoricalInfoRequest) GetHeight() int64 {
// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
// method.
//
// Deprecated: Do not use.
type QueryHistoricalInfoResponse struct {
// hist defines the historical info at the given height.
Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` // Deprecated: Do not use.
HistoricalRecord *HistoricalRecord `protobuf:"bytes,2,opt,name=historical_record,json=historicalRecord,proto3" json:"historical_record,omitempty"`
Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` // Deprecated: Do not use.
}
func (m *QueryHistoricalInfoResponse) Reset() { *m = QueryHistoricalInfoResponse{} }
@ -1282,13 +1286,6 @@ func (m *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo {
return nil
}
func (m *QueryHistoricalInfoResponse) GetHistoricalRecord() *HistoricalRecord {
if m != nil {
return m.HistoricalRecord
}
return nil
}
// QueryPoolRequest is request type for the Query/Pool RPC method.
type QueryPoolRequest struct {
}
@ -1492,100 +1489,99 @@ func init() {
}
var fileDescriptor_f270127f442bbcd8 = []byte{
// 1487 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdd, 0x6f, 0x14, 0x65,
0x17, 0xef, 0xb3, 0xed, 0xdb, 0xbc, 0x3d, 0x04, 0xd2, 0x3e, 0xbb, 0xd4, 0x32, 0x94, 0xed, 0x32,
0x41, 0x2c, 0xc5, 0xce, 0x40, 0x41, 0x40, 0x8c, 0xc0, 0x56, 0xa2, 0x20, 0x04, 0xcb, 0x1a, 0xaa,
0xf1, 0x23, 0xcd, 0xb4, 0x3b, 0xcc, 0x4e, 0x68, 0x67, 0x96, 0x79, 0xa6, 0x0d, 0x84, 0x10, 0x13,
0x2f, 0x0c, 0xde, 0x18, 0x13, 0xef, 0x0d, 0x97, 0xc6, 0x68, 0xc2, 0x45, 0x31, 0x7a, 0x21, 0x97,
0x86, 0x0b, 0x63, 0x08, 0x06, 0xa3, 0x5e, 0xa0, 0x69, 0x4d, 0xf4, 0xc6, 0xff, 0xc0, 0x18, 0x33,
0x33, 0x67, 0xbe, 0x3a, 0x9f, 0xbb, 0xdd, 0x26, 0xe5, 0xa6, 0xe9, 0x3e, 0x73, 0x3e, 0x7e, 0xbf,
0xf3, 0xf1, 0xcc, 0x39, 0xbb, 0xc0, 0xcf, 0xe9, 0x6c, 0x41, 0x67, 0x22, 0x33, 0xa5, 0x2b, 0xaa,
0xa6, 0x88, 0x4b, 0x07, 0x67, 0x65, 0x53, 0x3a, 0x28, 0x5e, 0x5d, 0x94, 0x8d, 0xeb, 0x42, 0xd3,
0xd0, 0x4d, 0x9d, 0x0e, 0x3a, 0x32, 0x02, 0xca, 0x08, 0x28, 0xc3, 0x8d, 0xa1, 0xee, 0xac, 0xc4,
0x64, 0x47, 0xc1, 0x53, 0x6f, 0x4a, 0x8a, 0xaa, 0x49, 0xa6, 0xaa, 0x6b, 0x8e, 0x0d, 0xae, 0xa4,
0xe8, 0x8a, 0x6e, 0xff, 0x2b, 0x5a, 0xff, 0xe1, 0xe9, 0xb0, 0xa2, 0xeb, 0xca, 0xbc, 0x2c, 0x4a,
0x4d, 0x55, 0x94, 0x34, 0x4d, 0x37, 0x6d, 0x15, 0x86, 0x4f, 0xf7, 0x24, 0x60, 0x73, 0x71, 0x38,
0x52, 0x3b, 0x1c, 0xa9, 0x19, 0xc7, 0x38, 0x42, 0x75, 0x1e, 0xed, 0x44, 0x03, 0x2e, 0xb6, 0x20,
0x2b, 0x6e, 0x40, 0x5a, 0x50, 0x35, 0x5d, 0xb4, 0xff, 0x3a, 0x47, 0xfc, 0x35, 0x18, 0xbc, 0x68,
0x49, 0x4c, 0x4b, 0xf3, 0x6a, 0x5d, 0x32, 0x75, 0x83, 0xd5, 0xe4, 0xab, 0x8b, 0x32, 0x33, 0xe9,
0x20, 0xf4, 0x32, 0x53, 0x32, 0x17, 0xd9, 0x10, 0xa9, 0x90, 0xd1, 0xbe, 0x1a, 0x7e, 0xa2, 0x2f,
0x03, 0xf8, 0x54, 0x87, 0x0a, 0x15, 0x32, 0xba, 0x65, 0x62, 0xaf, 0x80, 0x20, 0xac, 0xb8, 0x08,
0x8e, 0x4b, 0x84, 0x2e, 0x4c, 0x49, 0x8a, 0x8c, 0x36, 0x6b, 0x01, 0x4d, 0xbe, 0x01, 0x5b, 0x3d,
0xa7, 0x67, 0xb5, 0xcb, 0x3a, 0xad, 0xc2, 0xc0, 0x9c, 0xae, 0x31, 0x59, 0x63, 0x8b, 0x6c, 0x46,
0xaa, 0xd7, 0x0d, 0x99, 0xa1, 0xef, 0xc9, 0xd2, 0xaf, 0xcb, 0xe3, 0xfd, 0xd7, 0xdc, 0x28, 0x54,
0x96, 0x0e, 0x08, 0x13, 0xc2, 0x81, 0x5a, 0xbf, 0x27, 0x5e, 0x75, 0xa4, 0x8f, 0x97, 0x1e, 0xc6,
0xc8, 0xf1, 0x1f, 0x16, 0xe0, 0xa9, 0x08, 0x49, 0xd6, 0xb4, 0x94, 0xe9, 0x79, 0x80, 0x25, 0xef,
0x74, 0x88, 0x54, 0xba, 0x47, 0xb7, 0x4c, 0xec, 0x16, 0xe2, 0xb3, 0x2f, 0x78, 0xfa, 0x93, 0x7d,
0xf7, 0x1f, 0x8f, 0x74, 0x7d, 0xf6, 0xe7, 0x9d, 0x31, 0x52, 0x0b, 0xe8, 0xd3, 0x37, 0x60, 0x9b,
0xf7, 0x69, 0x46, 0xd5, 0x2e, 0xeb, 0x43, 0x05, 0xdb, 0xe2, 0xd3, 0x99, 0x16, 0xad, 0x08, 0x04,
0xad, 0x6e, 0x5d, 0x0a, 0xc5, 0xe6, 0x95, 0x50, 0xd0, 0xbb, 0xed, 0xa0, 0x3f, 0x93, 0x19, 0x74,
0x87, 0x63, 0x28, 0xea, 0x12, 0x6c, 0x0f, 0x87, 0xc2, 0x4d, 0xf7, 0x99, 0x20, 0x74, 0x2b, 0xfa,
0x18, 0xfa, 0xdd, 0x0f, 0x97, 0xc7, 0x77, 0xa1, 0x23, 0x4f, 0x09, 0xe3, 0xfd, 0xba, 0x69, 0xa8,
0x9a, 0x12, 0xc0, 0x6a, 0x9d, 0xf3, 0xf5, 0xb5, 0x25, 0xe5, 0x05, 0xfb, 0x55, 0xe8, 0xf3, 0x44,
0x6d, 0xf3, 0xad, 0xc6, 0xda, 0x57, 0xe7, 0x97, 0x09, 0x54, 0xc2, 0x6e, 0x4e, 0xcb, 0xf3, 0xb2,
0xe2, 0x74, 0x53, 0xc7, 0x49, 0x75, 0xac, 0xea, 0xff, 0x26, 0xb0, 0x3b, 0x05, 0x36, 0x06, 0xea,
0x3d, 0x28, 0xd5, 0xbd, 0xe3, 0x19, 0x03, 0x8f, 0xdd, 0xfa, 0x1c, 0x4b, 0x8a, 0x99, 0x6f, 0xca,
0xb5, 0x34, 0x59, 0xb1, 0x82, 0xf7, 0xf9, 0x6f, 0x23, 0xc5, 0xe8, 0x33, 0xe6, 0xc4, 0xb4, 0x58,
0x8f, 0x3e, 0x59, 0x53, 0x6f, 0x85, 0xf6, 0xeb, 0xed, 0x5b, 0x02, 0xfb, 0xc2, 0x7c, 0x2f, 0x69,
0xb3, 0xba, 0x56, 0x57, 0x35, 0xe5, 0x89, 0xc8, 0xd7, 0x63, 0x02, 0x63, 0x79, 0xf0, 0x63, 0xe2,
0x14, 0x28, 0x2e, 0xba, 0xcf, 0x23, 0x79, 0xdb, 0x9f, 0x94, 0xb7, 0x18, 0x93, 0xc1, 0xaa, 0xa7,
0x9e, 0xc9, 0x0d, 0x48, 0xd0, 0x97, 0x04, 0xdb, 0x35, 0x58, 0x20, 0x4e, 0x36, 0x4e, 0xc2, 0x36,
0xac, 0x8d, 0x70, 0x36, 0x86, 0x1e, 0x2e, 0x8f, 0x97, 0xd0, 0xd5, 0x9a, 0x24, 0x78, 0xf2, 0x76,
0x12, 0xa2, 0xe9, 0x2c, 0xb4, 0x97, 0xce, 0xe3, 0xff, 0xbf, 0x75, 0x7b, 0xa4, 0xeb, 0xaf, 0xdb,
0x23, 0x5d, 0xfc, 0x12, 0xde, 0xe5, 0xd1, 0x7a, 0xa6, 0x6f, 0x43, 0x31, 0xa6, 0x6b, 0xf0, 0xa2,
0x69, 0xa1, 0x69, 0x6a, 0x34, 0xda, 0x12, 0xfc, 0x57, 0x04, 0x46, 0x6c, 0xc7, 0x31, 0xc9, 0xda,
0xd4, 0x01, 0x33, 0xf0, 0x9e, 0x8c, 0xc5, 0x8d, 0x91, 0xbb, 0x00, 0xbd, 0x4e, 0x8d, 0x61, 0xb0,
0xda, 0xad, 0x54, 0xb4, 0xc2, 0xdf, 0x75, 0x2f, 0xe7, 0xd3, 0x2e, 0xbd, 0x98, 0x66, 0x5f, 0x77,
0xb4, 0x3a, 0xd4, 0xe3, 0x81, 0x58, 0xfd, 0xe4, 0xde, 0xce, 0xf1, 0xb8, 0x31, 0x5a, 0x8d, 0x8e,
0xdd, 0xce, 0x81, 0xd0, 0x6d, 0xec, 0x35, 0x7c, 0xcf, 0xbd, 0x86, 0x3d, 0x62, 0x69, 0xd7, 0xf0,
0x26, 0xcc, 0x8c, 0x77, 0x0f, 0x67, 0x10, 0x78, 0x62, 0xef, 0xe1, 0x7b, 0x05, 0xd8, 0x61, 0x13,
0xac, 0xc9, 0xf5, 0x0d, 0xc9, 0x08, 0x65, 0xc6, 0xdc, 0x4c, 0xec, 0xed, 0x92, 0x6c, 0xa4, 0x9f,
0x19, 0x73, 0xd3, 0x6b, 0xde, 0xab, 0xb4, 0xce, 0xcc, 0xb5, 0x76, 0xba, 0xb3, 0xec, 0xd4, 0x99,
0x39, 0x9d, 0xf2, 0x7e, 0xee, 0xe9, 0x40, 0x85, 0x3c, 0x22, 0xc0, 0xc5, 0x05, 0x10, 0x2b, 0x42,
0x83, 0x41, 0x43, 0x4e, 0x69, 0xdb, 0x67, 0x93, 0x8a, 0x22, 0x68, 0x2e, 0xae, 0x71, 0xb7, 0x1b,
0xf2, 0x86, 0xb6, 0xee, 0xb2, 0xfb, 0xe2, 0xf1, 0x2a, 0x3f, 0xba, 0xab, 0x6d, 0xc2, 0x86, 0xfd,
0x26, 0xf2, 0x0a, 0xd8, 0xf0, 0xed, 0xab, 0x63, 0x21, 0xbf, 0x4b, 0xa0, 0x9c, 0x80, 0x7d, 0x53,
0xbf, 0xea, 0x17, 0x12, 0x2b, 0x65, 0x43, 0x56, 0xb0, 0xc3, 0xd8, 0x70, 0x67, 0x54, 0x66, 0xea,
0x86, 0x3a, 0x27, 0xcd, 0x5b, 0xbb, 0x6a, 0xe0, 0xfb, 0x83, 0x86, 0xac, 0x2a, 0x0d, 0xd3, 0x76,
0xd3, 0x5d, 0xc3, 0x4f, 0x56, 0x3d, 0xef, 0x8c, 0x55, 0x43, 0x84, 0x27, 0xa0, 0xa7, 0xa1, 0x32,
0x13, 0xc1, 0xed, 0x4d, 0x02, 0x17, 0xd6, 0x9e, 0x2c, 0x0c, 0x91, 0x9a, 0xad, 0x47, 0x2f, 0xc1,
0x40, 0xc3, 0x7b, 0x36, 0x63, 0xc8, 0x73, 0xba, 0x51, 0xc7, 0x62, 0x18, 0xcd, 0x36, 0x56, 0xb3,
0xe5, 0x6b, 0xfd, 0x8d, 0x35, 0x27, 0x3c, 0x85, 0x7e, 0x1b, 0xf5, 0x94, 0xae, 0xcf, 0x23, 0x45,
0x7e, 0x0a, 0x06, 0x02, 0x67, 0x88, 0xff, 0x05, 0xe8, 0x69, 0xea, 0xfa, 0x3c, 0xe2, 0x1f, 0x4e,
0x72, 0x69, 0xe9, 0x04, 0xe3, 0x6a, 0x2b, 0xf1, 0x25, 0xa0, 0x8e, 0x45, 0xc9, 0x90, 0x16, 0xdc,
0xf6, 0xe6, 0xdf, 0x84, 0x62, 0xe8, 0x14, 0x3d, 0x55, 0xa1, 0xb7, 0x69, 0x9f, 0xa0, 0xaf, 0x72,
0xa2, 0x2f, 0x5b, 0x2a, 0x34, 0xa8, 0x39, 0x8a, 0x13, 0x77, 0x06, 0xe1, 0x7f, 0xb6, 0x69, 0xfa,
0x29, 0x01, 0xf0, 0x3b, 0x94, 0x0a, 0x49, 0xb6, 0xe2, 0xbf, 0x2d, 0xe2, 0xc4, 0xdc, 0xf2, 0x38,
0x4f, 0x8b, 0xb7, 0x2c, 0x20, 0xef, 0xff, 0xf8, 0xc7, 0x27, 0x85, 0x3d, 0x94, 0x17, 0x13, 0xbe,
0xf7, 0x0a, 0x74, 0xf7, 0x17, 0x04, 0xfa, 0x3c, 0x3b, 0x74, 0x3c, 0x9f, 0x3f, 0x17, 0x9e, 0x90,
0x57, 0x1c, 0xd1, 0x9d, 0xf2, 0xd1, 0x3d, 0x47, 0x0f, 0x65, 0xa3, 0x13, 0x6f, 0x84, 0x9b, 0xf9,
0x26, 0xfd, 0x85, 0x40, 0x29, 0x6e, 0xc7, 0xa7, 0xc7, 0xf2, 0x41, 0x89, 0x8e, 0x65, 0xdc, 0xf3,
0x6d, 0x68, 0x22, 0x9f, 0xf3, 0x3e, 0x9f, 0x2a, 0x3d, 0xd9, 0x06, 0x1f, 0x31, 0xf0, 0x4e, 0xa5,
0xff, 0x12, 0xd8, 0x95, 0xba, 0x0f, 0xd3, 0x6a, 0x3e, 0xa8, 0x29, 0x43, 0x28, 0x37, 0xb9, 0x1e,
0x13, 0x48, 0x7b, 0xda, 0xa7, 0x7d, 0x8e, 0x9e, 0x6d, 0x87, 0xb6, 0x3f, 0x45, 0x06, 0x03, 0xf0,
0x3d, 0x01, 0xf0, 0xfd, 0x65, 0x34, 0x4b, 0x64, 0x4f, 0xcc, 0x68, 0x96, 0xe8, 0x9e, 0xc0, 0xbf,
0xeb, 0xf3, 0xa8, 0xd1, 0xa9, 0x75, 0xa6, 0x4f, 0xbc, 0x11, 0x7e, 0x73, 0xdd, 0xa4, 0xff, 0x10,
0x28, 0xc6, 0xc4, 0x91, 0x1e, 0x4d, 0xc5, 0x99, 0xbc, 0x08, 0x73, 0xc7, 0x5a, 0x57, 0x44, 0xa6,
0x86, 0xcf, 0x54, 0xa1, 0x72, 0xa7, 0x99, 0xc6, 0xa6, 0x93, 0xfe, 0x40, 0xa0, 0x14, 0xb7, 0xf0,
0x65, 0xb4, 0x6a, 0xca, 0x6e, 0x9b, 0xd1, 0xaa, 0x69, 0xdb, 0x25, 0x5f, 0xf5, 0x23, 0x70, 0x84,
0x1e, 0x4e, 0x8a, 0x40, 0x6a, 0x3e, 0xad, 0xfe, 0x4c, 0xdd, 0x93, 0x32, 0xfa, 0x33, 0xcf, 0x92,
0x98, 0xd1, 0x9f, 0xb9, 0xd6, 0xb4, 0x9c, 0xfd, 0xe9, 0xd1, 0xcb, 0x99, 0x50, 0x46, 0xbf, 0x23,
0xb0, 0x35, 0xb4, 0x06, 0xd0, 0x83, 0xa9, 0x68, 0xe3, 0x76, 0x2e, 0x6e, 0xa2, 0x15, 0x15, 0x24,
0x74, 0xc1, 0x27, 0xf4, 0x12, 0xad, 0xb6, 0x43, 0xc8, 0x08, 0xc1, 0x7e, 0x44, 0xa0, 0x18, 0x33,
0x40, 0x67, 0x74, 0x66, 0xf2, 0xa6, 0xc0, 0x1d, 0x6b, 0x5d, 0x11, 0xa9, 0x9d, 0xf3, 0xa9, 0x9d,
0xa2, 0x27, 0xda, 0xa1, 0x16, 0x78, 0x99, 0xaf, 0x12, 0xa0, 0x51, 0x67, 0xf4, 0x48, 0x8b, 0xe8,
0x5c, 0x56, 0x47, 0x5b, 0xd6, 0x43, 0x52, 0xef, 0xf8, 0xa4, 0x2e, 0xd2, 0xd7, 0xd6, 0x47, 0x2a,
0x3a, 0x03, 0x7c, 0x4d, 0x60, 0x5b, 0x78, 0x4e, 0xa5, 0xe9, 0x45, 0x15, 0x3b, 0x49, 0x73, 0x87,
0x5a, 0xd2, 0x41, 0x66, 0x2f, 0xfa, 0xcc, 0x26, 0xe8, 0x81, 0x24, 0x66, 0x81, 0x49, 0x59, 0xd5,
0x2e, 0xeb, 0xe2, 0x0d, 0x67, 0x48, 0xbf, 0x49, 0x3f, 0x20, 0xd0, 0x63, 0x8d, 0xa8, 0x74, 0x34,
0xd5, 0x79, 0x60, 0x1a, 0xe6, 0xf6, 0xe5, 0x90, 0x44, 0x70, 0xfb, 0x7c, 0x70, 0x65, 0x3a, 0x9c,
0x04, 0xce, 0x9a, 0x88, 0xe9, 0x47, 0x04, 0x7a, 0x9d, 0xf9, 0x95, 0x8e, 0xa5, 0x3b, 0x08, 0x8e,
0xcc, 0xdc, 0xfe, 0x5c, 0xb2, 0x08, 0x67, 0xbf, 0x0f, 0xa7, 0x42, 0xcb, 0x89, 0x70, 0x9c, 0x29,
0xfa, 0xc8, 0xfd, 0x95, 0x32, 0x79, 0xb0, 0x52, 0x26, 0xbf, 0xaf, 0x94, 0xc9, 0xc7, 0xab, 0xe5,
0xae, 0x07, 0xab, 0xe5, 0xae, 0x9f, 0x57, 0xcb, 0x5d, 0x6f, 0x0d, 0x3b, 0x8a, 0xac, 0x7e, 0x45,
0x50, 0x75, 0xd1, 0xfb, 0x19, 0x52, 0x34, 0xaf, 0x37, 0x65, 0x36, 0xdb, 0x6b, 0xff, 0xe0, 0x7a,
0xe8, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x96, 0x14, 0xcd, 0x7f, 0x1e, 0x00, 0x00,
// 1467 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdd, 0x6b, 0x1c, 0x55,
0x14, 0xcf, 0xdd, 0xc4, 0x60, 0x4e, 0x69, 0x49, 0xef, 0x6e, 0xe3, 0x76, 0x9a, 0x6e, 0xb6, 0x43,
0xad, 0x69, 0x6a, 0x66, 0xda, 0x54, 0xdb, 0x58, 0xa1, 0xed, 0xc6, 0xa2, 0xad, 0x2d, 0x35, 0x5d,
0x31, 0x8a, 0x1f, 0x84, 0x49, 0x76, 0x3a, 0x19, 0x9a, 0xcc, 0x6c, 0xe7, 0x4e, 0x42, 0x4b, 0x29,
0x82, 0x0f, 0x52, 0x5f, 0x44, 0xf0, 0x5d, 0xfa, 0x28, 0xa2, 0x20, 0x98, 0x0a, 0x22, 0xf6, 0x51,
0xfa, 0x20, 0x52, 0x2a, 0x15, 0xf5, 0xa1, 0x4a, 0x23, 0xe8, 0x8b, 0xff, 0x81, 0x88, 0xcc, 0xcc,
0x99, 0xaf, 0xcc, 0xe7, 0x6e, 0x76, 0x21, 0x7d, 0x09, 0xd9, 0x3b, 0xf7, 0x9c, 0xf3, 0xfb, 0xfd,
0xce, 0x39, 0x77, 0xce, 0xdd, 0x05, 0x7e, 0x5e, 0x67, 0x4b, 0x3a, 0x13, 0x99, 0x29, 0x5d, 0x52,
0x35, 0x45, 0x5c, 0x39, 0x34, 0x27, 0x9b, 0xd2, 0x21, 0xf1, 0xf2, 0xb2, 0x6c, 0x5c, 0x15, 0x9a,
0x86, 0x6e, 0xea, 0x74, 0xc8, 0xd9, 0x23, 0xe0, 0x1e, 0x01, 0xf7, 0x70, 0x63, 0x68, 0x3b, 0x27,
0x31, 0xd9, 0x31, 0xf0, 0xcc, 0x9b, 0x92, 0xa2, 0x6a, 0x92, 0xa9, 0xea, 0x9a, 0xe3, 0x83, 0x2b,
0x29, 0xba, 0xa2, 0xdb, 0xff, 0x8a, 0xd6, 0x7f, 0xb8, 0x3a, 0xac, 0xe8, 0xba, 0xb2, 0x28, 0x8b,
0x52, 0x53, 0x15, 0x25, 0x4d, 0xd3, 0x4d, 0xdb, 0x84, 0xe1, 0xd3, 0xbd, 0x09, 0xd8, 0x5c, 0x1c,
0xce, 0xae, 0x9d, 0xce, 0xae, 0x59, 0xc7, 0x39, 0x42, 0x75, 0x1e, 0xed, 0x42, 0x07, 0x2e, 0xb6,
0x20, 0x2b, 0x6e, 0xbb, 0xb4, 0xa4, 0x6a, 0xba, 0x68, 0xff, 0x75, 0x96, 0xf8, 0x2b, 0x30, 0x74,
0xc1, 0xda, 0x31, 0x23, 0x2d, 0xaa, 0x0d, 0xc9, 0xd4, 0x0d, 0x56, 0x97, 0x2f, 0x2f, 0xcb, 0xcc,
0xa4, 0x43, 0xd0, 0xcf, 0x4c, 0xc9, 0x5c, 0x66, 0x65, 0x52, 0x25, 0xa3, 0x03, 0x75, 0xfc, 0x44,
0x5f, 0x04, 0xf0, 0xa9, 0x96, 0x0b, 0x55, 0x32, 0xba, 0x65, 0x62, 0x9f, 0x80, 0x20, 0x2c, 0x5d,
0x04, 0x27, 0x24, 0x42, 0x17, 0xa6, 0x25, 0x45, 0x46, 0x9f, 0xf5, 0x80, 0x25, 0xbf, 0x00, 0x5b,
0xbd, 0xa0, 0x67, 0xb4, 0x8b, 0x3a, 0xad, 0xc1, 0xf6, 0x79, 0x5d, 0x63, 0xb2, 0xc6, 0x96, 0xd9,
0xac, 0xd4, 0x68, 0x18, 0x32, 0xc3, 0xd8, 0x53, 0xa5, 0xdf, 0x56, 0xc7, 0x07, 0xaf, 0xb8, 0x2a,
0x54, 0x57, 0x0e, 0x0a, 0x13, 0xc2, 0xc1, 0xfa, 0xa0, 0xb7, 0xbd, 0xe6, 0xec, 0x3e, 0x56, 0xba,
0x17, 0xb3, 0x8f, 0xff, 0xa0, 0x00, 0x4f, 0x44, 0x48, 0xb2, 0xa6, 0x65, 0x4c, 0xcf, 0x01, 0xac,
0x78, 0xab, 0x65, 0x52, 0xed, 0x1d, 0xdd, 0x32, 0xb1, 0x47, 0x88, 0xcf, 0xbe, 0xe0, 0xd9, 0x4f,
0x0d, 0xdc, 0x79, 0x30, 0xd2, 0xf3, 0xe9, 0x5f, 0x5f, 0x8e, 0x91, 0x7a, 0xc0, 0x9e, 0xbe, 0x0e,
0xdb, 0xbc, 0x4f, 0xb3, 0xaa, 0x76, 0x51, 0x2f, 0x17, 0x6c, 0x8f, 0x4f, 0x66, 0x7a, 0xb4, 0x14,
0x08, 0x7a, 0xdd, 0xba, 0x12, 0xd2, 0xe6, 0xa5, 0x90, 0xe8, 0xbd, 0xb6, 0xe8, 0x4f, 0x65, 0x8a,
0xee, 0x70, 0x0c, 0xa9, 0x2e, 0xc1, 0x8e, 0xb0, 0x14, 0x6e, 0xba, 0x4f, 0x07, 0xa1, 0x5b, 0xea,
0xa3, 0xf4, 0x7b, 0xee, 0xad, 0x8e, 0xef, 0xc6, 0x40, 0x9e, 0x11, 0xea, 0xfd, 0xaa, 0x69, 0xa8,
0x9a, 0x12, 0xc0, 0x6a, 0xad, 0xf3, 0x8d, 0xf5, 0x25, 0xe5, 0x89, 0xfd, 0x32, 0x0c, 0x78, 0x5b,
0x6d, 0xf7, 0xad, 0x6a, 0xed, 0x9b, 0xf3, 0xab, 0x04, 0xaa, 0xe1, 0x30, 0xa7, 0xe4, 0x45, 0x59,
0x71, 0xba, 0xa9, 0xe3, 0xa4, 0x3a, 0x56, 0xf5, 0xff, 0x10, 0xd8, 0x93, 0x02, 0x1b, 0x85, 0x7a,
0x17, 0x4a, 0x0d, 0x6f, 0x79, 0xd6, 0xc0, 0x65, 0xb7, 0x3e, 0xc7, 0x92, 0x34, 0xf3, 0x5d, 0xb9,
0x9e, 0xa6, 0xaa, 0x96, 0x78, 0x9f, 0xfd, 0x3e, 0x52, 0x8c, 0x3e, 0x63, 0x8e, 0xa6, 0xc5, 0x46,
0xf4, 0xc9, 0xba, 0x7a, 0x2b, 0xb4, 0x5f, 0x6f, 0xdf, 0x11, 0xd8, 0x1f, 0xe6, 0xfb, 0x9a, 0x36,
0xa7, 0x6b, 0x0d, 0x55, 0x53, 0x1e, 0x89, 0x7c, 0x3d, 0x20, 0x30, 0x96, 0x07, 0x3f, 0x26, 0x4e,
0x81, 0xe2, 0xb2, 0xfb, 0x3c, 0x92, 0xb7, 0x03, 0x49, 0x79, 0x8b, 0x71, 0x19, 0xac, 0x7a, 0xea,
0xb9, 0xec, 0x42, 0x82, 0xbe, 0x20, 0xd8, 0xae, 0xc1, 0x02, 0x71, 0xb2, 0x71, 0x02, 0xb6, 0x61,
0x6d, 0x84, 0xb3, 0x51, 0xbe, 0xb7, 0x3a, 0x5e, 0xc2, 0x50, 0xeb, 0x92, 0xe0, 0xed, 0xb7, 0x93,
0x10, 0x4d, 0x67, 0xa1, 0xbd, 0x74, 0x1e, 0x7b, 0xfc, 0xc6, 0xcd, 0x91, 0x9e, 0xbf, 0x6f, 0x8e,
0xf4, 0xf0, 0x2b, 0x78, 0x96, 0x47, 0xeb, 0x99, 0xbe, 0x05, 0xc5, 0x98, 0xae, 0xc1, 0x83, 0xa6,
0x85, 0xa6, 0xa9, 0xd3, 0x68, 0x4b, 0xf0, 0x5f, 0x13, 0x18, 0xb1, 0x03, 0xc7, 0x24, 0x6b, 0x53,
0x0b, 0x66, 0xe0, 0x39, 0x19, 0x8b, 0x1b, 0x95, 0x3b, 0x0f, 0xfd, 0x4e, 0x8d, 0xa1, 0x58, 0xed,
0x56, 0x2a, 0x7a, 0xe1, 0x6f, 0xb9, 0x87, 0xf3, 0x29, 0x97, 0x5e, 0x4c, 0xb3, 0x6f, 0x58, 0xad,
0x0e, 0xf5, 0x78, 0x40, 0xab, 0x9f, 0xdd, 0xd3, 0x39, 0x1e, 0x37, 0xaa, 0xb5, 0xd0, 0xb1, 0xd3,
0x39, 0x20, 0x5d, 0x77, 0x8f, 0xe1, 0xdb, 0xee, 0x31, 0xec, 0x11, 0x4b, 0x3b, 0x86, 0x37, 0x61,
0x66, 0xbc, 0x73, 0x38, 0x83, 0xc0, 0x23, 0x7b, 0x0e, 0xdf, 0x2e, 0xc0, 0x4e, 0x9b, 0x60, 0x5d,
0x6e, 0x74, 0x25, 0x23, 0x94, 0x19, 0xf3, 0xb3, 0xb1, 0xa7, 0x4b, 0xb2, 0x93, 0x41, 0x66, 0xcc,
0xcf, 0xac, 0x7b, 0xaf, 0xd2, 0x06, 0x33, 0xd7, 0xfb, 0xe9, 0xcd, 0xf2, 0xd3, 0x60, 0xe6, 0x4c,
0xca, 0xfb, 0xb9, 0xaf, 0x03, 0x15, 0x72, 0x9f, 0x00, 0x17, 0x27, 0x20, 0x56, 0x84, 0x06, 0x43,
0x86, 0x9c, 0xd2, 0xb6, 0x4f, 0x27, 0x15, 0x45, 0xd0, 0x5d, 0x5c, 0xe3, 0xee, 0x30, 0xe4, 0xae,
0xb6, 0xee, 0xaa, 0xfb, 0xe2, 0xf1, 0x2a, 0x3f, 0x7a, 0x57, 0xdb, 0x84, 0x0d, 0xfb, 0x4d, 0xe4,
0x15, 0xd0, 0xf5, 0xdb, 0x57, 0xc7, 0x24, 0xbf, 0x45, 0xa0, 0x92, 0x80, 0x7d, 0x53, 0xbf, 0xea,
0x97, 0x12, 0x2b, 0xa5, 0x2b, 0x57, 0xb0, 0x49, 0x6c, 0xb8, 0xd3, 0x2a, 0x33, 0x75, 0x43, 0x9d,
0x97, 0x16, 0xad, 0xbb, 0x6a, 0xe0, 0xfb, 0x83, 0x05, 0x59, 0x55, 0x16, 0x4c, 0x3b, 0x4c, 0x6f,
0x1d, 0x3f, 0x1d, 0x2b, 0x94, 0x09, 0x2f, 0xc1, 0xae, 0x58, 0x4b, 0x04, 0x79, 0x1c, 0xfa, 0x16,
0x54, 0x66, 0x22, 0xbe, 0x7d, 0x49, 0xf8, 0xc2, 0xd6, 0x53, 0x85, 0x32, 0xa9, 0xdb, 0x76, 0x76,
0x08, 0x0a, 0x83, 0x76, 0x88, 0x69, 0x5d, 0x5f, 0x44, 0x48, 0xfc, 0x34, 0x6c, 0x0f, 0xac, 0x61,
0xb0, 0xe7, 0xa1, 0xaf, 0xa9, 0xeb, 0x8b, 0x18, 0x6c, 0x38, 0x29, 0x98, 0x65, 0x13, 0xd4, 0xc1,
0x36, 0xe2, 0x4b, 0x40, 0x1d, 0x8f, 0x92, 0x21, 0x2d, 0xb9, 0xed, 0xc8, 0xbf, 0x01, 0xc5, 0xd0,
0x2a, 0x46, 0xaa, 0x41, 0x7f, 0xd3, 0x5e, 0xc1, 0x58, 0x95, 0xc4, 0x58, 0xf6, 0xae, 0xd0, 0x60,
0xe5, 0x18, 0x4e, 0x7c, 0x35, 0x04, 0x8f, 0xd9, 0xae, 0xe9, 0x27, 0x04, 0xc0, 0xef, 0x28, 0x2a,
0x24, 0xf9, 0x8a, 0xff, 0x76, 0x87, 0x13, 0x73, 0xef, 0xc7, 0xf9, 0x57, 0xbc, 0x61, 0x01, 0x79,
0xef, 0xa7, 0x3f, 0x3f, 0x2e, 0xec, 0xa5, 0xbc, 0x98, 0xf0, 0x3d, 0x55, 0xa0, 0x1b, 0x3f, 0x27,
0x30, 0xe0, 0xf9, 0xa1, 0xe3, 0xf9, 0xe2, 0xb9, 0xf0, 0x84, 0xbc, 0xdb, 0x11, 0xdd, 0x49, 0x1f,
0xdd, 0xb3, 0xf4, 0x70, 0x36, 0x3a, 0xf1, 0x5a, 0xb8, 0xf9, 0xae, 0xd3, 0x5f, 0x09, 0x94, 0xe2,
0xee, 0xe4, 0x74, 0x32, 0x1f, 0x94, 0xe8, 0x18, 0xc5, 0x3d, 0xd7, 0x86, 0x25, 0xf2, 0x39, 0xe7,
0xf3, 0xa9, 0xd1, 0x13, 0x6d, 0xf0, 0x11, 0x03, 0xef, 0x40, 0xfa, 0x1f, 0x81, 0xdd, 0xa9, 0xf7,
0x57, 0x5a, 0xcb, 0x07, 0x35, 0x65, 0x68, 0xe4, 0xa6, 0x36, 0xe2, 0x02, 0x69, 0xcf, 0xf8, 0xb4,
0xcf, 0xd2, 0x33, 0xed, 0xd0, 0xf6, 0xa7, 0xbe, 0xa0, 0x00, 0x3f, 0x10, 0x00, 0x3f, 0x5e, 0x46,
0xb3, 0x44, 0xee, 0x75, 0x19, 0xcd, 0x12, 0x9d, 0xeb, 0xf9, 0x77, 0x7c, 0x1e, 0x75, 0x3a, 0xbd,
0xc1, 0xf4, 0x89, 0xd7, 0xc2, 0x6f, 0x9a, 0xeb, 0xf4, 0x5f, 0x02, 0xc5, 0x18, 0x1d, 0xe9, 0xd1,
0x54, 0x9c, 0xc9, 0x17, 0x57, 0x6e, 0xb2, 0x75, 0x43, 0x64, 0x6a, 0xf8, 0x4c, 0x15, 0x2a, 0x77,
0x9a, 0x69, 0x6c, 0x3a, 0xe9, 0x8f, 0x04, 0x4a, 0x71, 0x17, 0xb4, 0x8c, 0x56, 0x4d, 0xb9, 0x8b,
0x66, 0xb4, 0x6a, 0xda, 0x6d, 0x90, 0xaf, 0xf9, 0x0a, 0x1c, 0xa1, 0xcf, 0x24, 0x29, 0x90, 0x9a,
0x4f, 0xab, 0x3f, 0x53, 0xef, 0x35, 0x19, 0xfd, 0x99, 0xe7, 0x52, 0x97, 0xd1, 0x9f, 0xb9, 0xae,
0x55, 0x39, 0xfb, 0xd3, 0xa3, 0x97, 0x33, 0xa1, 0x8c, 0x7e, 0x4f, 0x60, 0x6b, 0x68, 0x6c, 0xa7,
0x87, 0x52, 0xd1, 0xc6, 0xdd, 0x91, 0xb8, 0x89, 0x56, 0x4c, 0x90, 0xd0, 0x79, 0x9f, 0xd0, 0x0b,
0xb4, 0xd6, 0x0e, 0x21, 0x23, 0x04, 0xfb, 0x3e, 0x81, 0x62, 0xcc, 0xc0, 0x9b, 0xd1, 0x99, 0xc9,
0x93, 0x3d, 0x37, 0xd9, 0xba, 0x21, 0x52, 0x3b, 0xeb, 0x53, 0x3b, 0x49, 0x8f, 0xb7, 0x43, 0x2d,
0xf0, 0x32, 0x5f, 0x23, 0x40, 0xa3, 0xc1, 0xe8, 0x91, 0x16, 0xd1, 0xb9, 0xac, 0x8e, 0xb6, 0x6c,
0x87, 0xa4, 0xde, 0xf6, 0x49, 0x5d, 0xa0, 0xaf, 0x6c, 0x8c, 0x54, 0x74, 0x06, 0xf8, 0x96, 0xc0,
0xb6, 0xf0, 0x50, 0x49, 0xd3, 0x8b, 0x2a, 0x76, 0xf2, 0xe5, 0x0e, 0xb7, 0x64, 0x13, 0x9d, 0x60,
0x26, 0xe8, 0xc1, 0x24, 0x66, 0x0b, 0x9e, 0xb1, 0xfd, 0xf3, 0x92, 0x78, 0xcd, 0x19, 0xaa, 0xaf,
0xdf, 0x28, 0x10, 0xfa, 0x3e, 0x81, 0x3e, 0x6b, 0x4a, 0xa5, 0xa3, 0xa9, 0xf1, 0x03, 0x03, 0x31,
0xb7, 0x3f, 0xc7, 0x4e, 0xc4, 0xb7, 0xdf, 0xc7, 0x57, 0xa1, 0xc3, 0x49, 0xf8, 0xac, 0xa1, 0x98,
0x7e, 0x48, 0xa0, 0xdf, 0x19, 0x61, 0xe9, 0x58, 0x7a, 0x80, 0xe0, 0xd4, 0xcc, 0x1d, 0xc8, 0xb5,
0x17, 0xe1, 0x1c, 0xf0, 0xe1, 0x54, 0x69, 0x25, 0x11, 0x8e, 0x33, 0x48, 0x1f, 0xb9, 0xf3, 0xb0,
0x42, 0xee, 0x3e, 0xac, 0x90, 0x3f, 0x1e, 0x56, 0xc8, 0x47, 0x6b, 0x95, 0x9e, 0xbb, 0x6b, 0x95,
0x9e, 0x5f, 0xd6, 0x2a, 0x3d, 0x6f, 0x0e, 0x3b, 0x86, 0xac, 0x71, 0x49, 0x50, 0x75, 0xd1, 0xfb,
0xe5, 0x50, 0x34, 0xaf, 0x36, 0x65, 0x36, 0xd7, 0x6f, 0xff, 0x46, 0x7a, 0xf8, 0xff, 0x00, 0x00,
0x00, 0xff, 0xff, 0x02, 0x10, 0x70, 0xd8, 0x32, 0x1e, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -1762,6 +1758,7 @@ func (c *queryClient) DelegatorValidator(ctx context.Context, in *QueryDelegator
return out, nil
}
// Deprecated: Do not use.
func (c *queryClient) HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error) {
out := new(QueryHistoricalInfoResponse)
err := c.cc.Invoke(ctx, "/cosmos.staking.v1beta1.Query/HistoricalInfo", in, out, opts...)
@ -3232,18 +3229,6 @@ func (m *QueryHistoricalInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, er
_ = i
var l int
_ = l
if m.HistoricalRecord != nil {
{
size, err := m.HistoricalRecord.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
if m.Hist != nil {
{
size, err := m.Hist.MarshalToSizedBuffer(dAtA[:i])
@ -3793,10 +3778,6 @@ func (m *QueryHistoricalInfoResponse) Size() (n int) {
l = m.Hist.Size()
n += 1 + l + sovQuery(uint64(l))
}
if m.HistoricalRecord != nil {
l = m.HistoricalRecord.Size()
n += 1 + l + sovQuery(uint64(l))
}
return n
}
@ -6585,42 +6566,6 @@ func (m *QueryHistoricalInfoResponse) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field HistoricalRecord", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.HistoricalRecord == nil {
m.HistoricalRecord = &HistoricalRecord{}
}
if err := m.HistoricalRecord.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])

File diff suppressed because it is too large Load Diff