diff --git a/abci/types/types.pb.go b/abci/types/types.pb.go index e220f23e6..547323e17 100644 --- a/abci/types/types.pb.go +++ b/abci/types/types.pb.go @@ -555,7 +555,7 @@ type RequestInitChain struct { ConsensusParams *types1.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators"` AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"` - InitialHeight int64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` + InitialHeight uint64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` } func (m *RequestInitChain) Reset() { *m = RequestInitChain{} } @@ -626,7 +626,7 @@ func (m *RequestInitChain) GetAppStateBytes() []byte { return nil } -func (m *RequestInitChain) GetInitialHeight() int64 { +func (m *RequestInitChain) GetInitialHeight() uint64 { if m != nil { return m.InitialHeight } @@ -636,7 +636,7 @@ func (m *RequestInitChain) GetInitialHeight() int64 { type RequestQuery struct { Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` - Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` Prove bool `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"` } @@ -687,7 +687,7 @@ func (m *RequestQuery) GetPath() string { return "" } -func (m *RequestQuery) GetHeight() int64 { +func (m *RequestQuery) GetHeight() uint64 { if m != nil { return m.Height } @@ -2938,7 +2938,7 @@ func init() { func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) } var fileDescriptor_252557cfdd89a31a = []byte{ - // 2584 bytes of a gzipped FileDescriptorProto + // 2580 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0x4b, 0x73, 0x1b, 0xc7, 0x11, 0xc6, 0x93, 0xc0, 0x36, 0x09, 0x10, 0x1c, 0xd1, 0x32, 0x04, 0x4b, 0xa4, 0xbc, 0x2a, 0x39, 0x96, 0x6c, 0x93, 0x31, 0x55, 0x52, 0xe4, 0x72, 0x1e, 0x26, 0x20, 0x28, 0xa0, 0xc5, 0x90, 0xcc, @@ -2989,118 +2989,118 @@ var fileDescriptor_252557cfdd89a31a = []byte{ 0xb2, 0x47, 0x3e, 0xcb, 0x43, 0xc7, 0xd0, 0x29, 0xa9, 0xe7, 0xd8, 0x72, 0x71, 0x44, 0x12, 0xbd, 0x01, 0xcb, 0xba, 0xe3, 0x68, 0x1e, 0xd5, 0x29, 0xd1, 0x3a, 0xa7, 0x94, 0x78, 0x3c, 0x6c, 0x2d, 0xe1, 0x92, 0xee, 0x38, 0x87, 0x8c, 0x5a, 0x67, 0x44, 0x74, 0x1d, 0xca, 0x2c, 0xc2, 0x99, 0xfa, - 0x40, 0xeb, 0x13, 0xb3, 0xd7, 0xa7, 0x3c, 0x40, 0x65, 0x71, 0x49, 0x52, 0x5b, 0x9c, 0xa8, 0x1a, + 0x40, 0xeb, 0x13, 0xb3, 0xd7, 0xa7, 0x3c, 0x40, 0xe5, 0x70, 0x49, 0x52, 0x5b, 0x9c, 0xa8, 0x1a, 0xc1, 0x89, 0xf3, 0xe8, 0x86, 0x10, 0xe4, 0x0c, 0x9d, 0xea, 0xdc, 0x92, 0x4b, 0x98, 0x8f, 0x19, - 0xcd, 0xd1, 0x69, 0x5f, 0xda, 0x87, 0x8f, 0xd1, 0x45, 0x58, 0x90, 0x6a, 0xb3, 0x5c, 0xad, 0x9c, - 0xa1, 0x55, 0xc8, 0x3b, 0xae, 0x7d, 0x4c, 0xf8, 0xd1, 0x15, 0xb1, 0x98, 0xa8, 0xbf, 0xce, 0xc0, - 0xca, 0x44, 0x1c, 0x64, 0x7a, 0xfb, 0xba, 0xd7, 0xf7, 0x7f, 0x8b, 0x8d, 0xd1, 0x1d, 0xa6, 0x57, - 0x37, 0x88, 0x2b, 0x73, 0x47, 0x75, 0xd2, 0xd4, 0x2d, 0xfe, 0x5d, 0x9a, 0x46, 0x72, 0xa3, 0x7d, - 0xa8, 0x0c, 0x74, 0x8f, 0x6a, 0x22, 0xae, 0x68, 0x91, 0x3c, 0x32, 0x19, 0x4d, 0x77, 0x75, 0x3f, - 0x12, 0xb1, 0x4b, 0x2d, 0x15, 0x95, 0x07, 0x31, 0x2a, 0xc2, 0xb0, 0xda, 0x39, 0xfd, 0x42, 0xb7, - 0xa8, 0x69, 0x11, 0x6d, 0xe2, 0xe4, 0x2e, 0x4d, 0x28, 0x6d, 0x1e, 0x9b, 0x06, 0xb1, 0xba, 0xfe, - 0x91, 0x5d, 0x08, 0x84, 0x83, 0x23, 0xf5, 0x54, 0x0c, 0xe5, 0x78, 0x24, 0x47, 0x65, 0xc8, 0xd0, - 0x13, 0x69, 0x80, 0x0c, 0x3d, 0x41, 0xdf, 0x85, 0x1c, 0xdb, 0x24, 0xdf, 0x7c, 0x79, 0x4a, 0x0a, - 0x94, 0x72, 0xed, 0x53, 0x87, 0x60, 0xce, 0xa9, 0xaa, 0x81, 0x3b, 0x04, 0xd1, 0x7d, 0x5c, 0xab, - 0x7a, 0x03, 0x96, 0xc7, 0xc2, 0x77, 0xe4, 0xfc, 0xd2, 0xdc, 0x0b, 0xe5, 0x4c, 0x5d, 0x86, 0x52, - 0x2c, 0x56, 0xab, 0x17, 0x61, 0x75, 0x5a, 0xe8, 0x55, 0xfb, 0x01, 0x3d, 0x16, 0x42, 0xd1, 0x6d, - 0x28, 0x06, 0xb1, 0x57, 0xb8, 0xe3, 0xa4, 0xad, 0x7c, 0x66, 0x1c, 0xb0, 0x32, 0x3f, 0x64, 0xd7, - 0x9a, 0xdf, 0x87, 0x0c, 0x5f, 0x78, 0x41, 0x77, 0x9c, 0x96, 0xee, 0xf5, 0xd5, 0x4f, 0xa1, 0x9a, - 0x14, 0x57, 0x93, 0xb6, 0xc1, 0xe8, 0x47, 0xb6, 0x3b, 0xd4, 0x29, 0x57, 0x56, 0xc2, 0x72, 0xc6, - 0xae, 0xa7, 0x88, 0xb1, 0x59, 0x4e, 0x16, 0x13, 0x55, 0x83, 0x4b, 0x89, 0xb1, 0x95, 0x89, 0x98, - 0x96, 0x41, 0x84, 0x3d, 0x4b, 0x58, 0x4c, 0x42, 0x45, 0x62, 0xb1, 0x62, 0xc2, 0x7e, 0xd6, 0xe3, - 0x7b, 0xe5, 0xfa, 0x15, 0x2c, 0x67, 0xea, 0xef, 0x8b, 0x50, 0xc4, 0xc4, 0x73, 0x58, 0x4c, 0x40, - 0x75, 0x50, 0xc8, 0x49, 0x97, 0x38, 0xd4, 0x0f, 0xa3, 0xd3, 0x51, 0x83, 0xe0, 0x6e, 0xfa, 0x9c, - 0x2c, 0x65, 0x07, 0x62, 0xe8, 0x96, 0x44, 0x65, 0xc9, 0x00, 0x4b, 0x8a, 0x47, 0x61, 0xd9, 0x1d, - 0x1f, 0x96, 0x65, 0x13, 0xb3, 0xb4, 0x90, 0x1a, 0xc3, 0x65, 0xb7, 0x24, 0x2e, 0xcb, 0xcd, 0xf8, - 0xb1, 0x18, 0x30, 0x6b, 0xc4, 0x80, 0x59, 0x7e, 0xc6, 0x36, 0x13, 0x90, 0xd9, 0x1d, 0x1f, 0x99, - 0x2d, 0xcc, 0x58, 0xf1, 0x18, 0x34, 0xbb, 0x1f, 0x87, 0x66, 0x02, 0x56, 0x5d, 0x4b, 0x94, 0x4e, - 0xc4, 0x66, 0x3f, 0x88, 0x60, 0xb3, 0x62, 0x22, 0x30, 0x12, 0x4a, 0xa6, 0x80, 0xb3, 0x46, 0x0c, - 0x9c, 0x29, 0x33, 0x6c, 0x90, 0x80, 0xce, 0x3e, 0x88, 0xa2, 0x33, 0x48, 0x04, 0x78, 0xf2, 0xbc, - 0xa7, 0xc1, 0xb3, 0xf7, 0x02, 0x78, 0xb6, 0x98, 0x88, 0x2f, 0xe5, 0x1e, 0xc6, 0xf1, 0xd9, 0xfe, - 0x04, 0x3e, 0x13, 0x78, 0xea, 0x8d, 0x44, 0x15, 0x33, 0x00, 0xda, 0xfe, 0x04, 0x40, 0x2b, 0xcd, - 0x50, 0x38, 0x03, 0xa1, 0xfd, 0x62, 0x3a, 0x42, 0x4b, 0xc6, 0x50, 0x72, 0x99, 0xf3, 0x41, 0x34, - 0x2d, 0x01, 0xa2, 0x2d, 0x73, 0xf5, 0x6f, 0x25, 0xaa, 0x3f, 0x3f, 0x46, 0xbb, 0xc1, 0x32, 0xe4, - 0x98, 0xcf, 0xb3, 0x28, 0x43, 0x5c, 0xd7, 0x76, 0x25, 0xda, 0x12, 0x13, 0xf5, 0x4d, 0x96, 0xb3, - 0x43, 0xff, 0x3e, 0x03, 0xcf, 0xf1, 0x68, 0x1e, 0xf1, 0x69, 0xf5, 0x8f, 0xe9, 0x50, 0x96, 0xa7, - 0xb9, 0x68, 0xbe, 0x57, 0x64, 0xbe, 0x8f, 0xa0, 0xbc, 0x4c, 0x1c, 0xe5, 0xad, 0xc3, 0x22, 0x8b, - 0xd2, 0x63, 0x00, 0x4e, 0x77, 0x02, 0x00, 0x77, 0x13, 0x56, 0x78, 0x1a, 0x16, 0x58, 0x50, 0x86, - 0xe6, 0x1c, 0x67, 0x5b, 0x66, 0x1f, 0xc4, 0xe5, 0x14, 0x31, 0xfa, 0x1d, 0xb8, 0x10, 0xe1, 0x0d, - 0xa2, 0xbf, 0x40, 0x33, 0x95, 0x80, 0x7b, 0x5b, 0xa6, 0x81, 0x3f, 0xa7, 0x43, 0x0b, 0x85, 0xc8, - 0x6f, 0x1a, 0x48, 0x4b, 0xff, 0x8f, 0x40, 0x5a, 0xe6, 0xbf, 0x06, 0x69, 0xd1, 0x6c, 0x96, 0x8d, - 0x67, 0xb3, 0x7f, 0xa5, 0xc3, 0x33, 0x09, 0x20, 0x57, 0xd7, 0x36, 0x88, 0xcc, 0x2f, 0x7c, 0x8c, - 0x2a, 0x90, 0x1d, 0xd8, 0x3d, 0x99, 0x45, 0xd8, 0x90, 0x71, 0x05, 0x41, 0x58, 0x91, 0x31, 0x36, - 0x48, 0x4d, 0x79, 0x8e, 0xc1, 0x64, 0x6a, 0xaa, 0x40, 0xf6, 0x09, 0x11, 0x21, 0x73, 0x09, 0xb3, - 0x21, 0xe3, 0xe3, 0x97, 0x8c, 0x07, 0xc2, 0x25, 0x2c, 0x26, 0xe8, 0x2e, 0x28, 0xbc, 0x0d, 0xa1, - 0xd9, 0x8e, 0x27, 0xa3, 0xdb, 0x6b, 0xd1, 0xbd, 0x8a, 0x6e, 0xc3, 0xc6, 0x01, 0xe3, 0xd9, 0x77, - 0x3c, 0x5c, 0x74, 0xe4, 0x28, 0x92, 0x75, 0x95, 0x58, 0xd6, 0xbd, 0x0c, 0x0a, 0x5b, 0xbd, 0xe7, - 0xe8, 0x5d, 0xc2, 0x43, 0x95, 0x82, 0x43, 0x82, 0xfa, 0x18, 0xd0, 0x64, 0xc0, 0x45, 0x2d, 0x58, - 0x20, 0xc7, 0xc4, 0xa2, 0xec, 0xd8, 0x98, 0xb9, 0x2f, 0x4e, 0x41, 0x56, 0xc4, 0xa2, 0xf5, 0x2a, - 0x33, 0xf2, 0x3f, 0xbf, 0x59, 0xaf, 0x08, 0xee, 0xb7, 0xed, 0xa1, 0x49, 0xc9, 0xd0, 0xa1, 0xa7, - 0x58, 0xca, 0xab, 0xbf, 0xca, 0x30, 0x98, 0x13, 0x0b, 0xc6, 0x53, 0x6d, 0xeb, 0x5f, 0xf9, 0x4c, - 0x04, 0xe2, 0xce, 0x67, 0xef, 0x35, 0x80, 0x9e, 0xee, 0x69, 0x4f, 0x75, 0x8b, 0x12, 0x43, 0x1a, - 0x3d, 0x42, 0x41, 0x35, 0x28, 0xb2, 0xd9, 0xc8, 0x23, 0x86, 0x44, 0xdb, 0xc1, 0x3c, 0xb2, 0xcf, - 0xc2, 0xb7, 0xdb, 0x67, 0xdc, 0xca, 0xc5, 0x71, 0x2b, 0xff, 0x26, 0x13, 0xba, 0x49, 0x88, 0x08, - 0xff, 0xff, 0xec, 0xf0, 0x5b, 0x5e, 0x27, 0xc6, 0xb3, 0x22, 0x3a, 0x84, 0x95, 0xc0, 0x4b, 0xb5, - 0x11, 0xf7, 0x5e, 0xff, 0xde, 0xcd, 0xeb, 0xe6, 0x95, 0xe3, 0x38, 0xd9, 0x43, 0x1f, 0xc3, 0xab, - 0x63, 0x21, 0x28, 0x50, 0x9d, 0x99, 0x37, 0x12, 0xbd, 0x12, 0x8f, 0x44, 0xbe, 0xea, 0xd0, 0x58, - 0xd9, 0x6f, 0xe9, 0x1c, 0x3b, 0xac, 0xf4, 0x88, 0x26, 0xf9, 0xa9, 0xc7, 0x7f, 0x0d, 0x4a, 0x2e, - 0xa1, 0xac, 0x1c, 0x8e, 0x14, 0x77, 0x39, 0xbc, 0x24, 0x88, 0xb2, 0x64, 0x3c, 0x80, 0x57, 0xa6, - 0x26, 0x7b, 0xf4, 0x3d, 0x50, 0x42, 0x9c, 0x90, 0x4e, 0xa8, 0x93, 0x02, 0xec, 0x1f, 0xf2, 0xaa, - 0x7f, 0x4a, 0x87, 0x2a, 0xe3, 0xd5, 0x44, 0x13, 0x16, 0x5c, 0xe2, 0x8d, 0x06, 0x02, 0xdf, 0x97, - 0xb7, 0xde, 0x99, 0x0f, 0x26, 0x30, 0xea, 0x68, 0x40, 0xb1, 0x14, 0x56, 0x1f, 0xc3, 0x82, 0xa0, - 0xa0, 0x45, 0x28, 0x3c, 0xdc, 0x7b, 0xb0, 0xb7, 0xff, 0xd1, 0x5e, 0x25, 0x85, 0x00, 0x16, 0xb6, - 0x1b, 0x8d, 0xe6, 0x41, 0xbb, 0x92, 0x46, 0x0a, 0xe4, 0xb7, 0xeb, 0xfb, 0xb8, 0x5d, 0xc9, 0x30, - 0x32, 0x6e, 0x7e, 0xd8, 0x6c, 0xb4, 0x2b, 0x59, 0xb4, 0x02, 0x25, 0x31, 0xd6, 0xee, 0xef, 0xe3, - 0x9f, 0x6c, 0xb7, 0x2b, 0xb9, 0x08, 0xe9, 0xb0, 0xb9, 0x77, 0xaf, 0x89, 0x2b, 0x79, 0xf5, 0x5d, - 0x56, 0x40, 0x24, 0x00, 0x8b, 0xb0, 0x54, 0x48, 0x47, 0x4a, 0x05, 0xf5, 0x77, 0x19, 0xa8, 0x25, - 0xa3, 0x05, 0xf4, 0xe1, 0xd8, 0xc6, 0xb7, 0xce, 0x01, 0x35, 0xc6, 0x76, 0x8f, 0xae, 0x43, 0xd9, - 0x25, 0x47, 0x84, 0x76, 0xfb, 0x02, 0xbd, 0x88, 0xcc, 0x56, 0xc2, 0x25, 0x49, 0xe5, 0x42, 0x9e, - 0x60, 0xfb, 0x8c, 0x74, 0xa9, 0x26, 0xaa, 0x16, 0x71, 0xe9, 0x14, 0xc6, 0xc6, 0xa8, 0x87, 0x82, - 0xa8, 0x7e, 0x7a, 0x2e, 0x5b, 0x2a, 0x90, 0xc7, 0xcd, 0x36, 0xfe, 0xb8, 0x92, 0x45, 0x08, 0xca, - 0x7c, 0xa8, 0x1d, 0xee, 0x6d, 0x1f, 0x1c, 0xb6, 0xf6, 0x99, 0x2d, 0x2f, 0xc0, 0xb2, 0x6f, 0x4b, - 0x9f, 0x98, 0x57, 0x3f, 0x81, 0x72, 0xbc, 0x44, 0x67, 0x26, 0x74, 0xed, 0x91, 0x65, 0x70, 0x63, - 0xe4, 0xb1, 0x98, 0xa0, 0xdb, 0x90, 0x3f, 0xb6, 0x85, 0x9b, 0x4d, 0xbf, 0x6b, 0x8f, 0x6c, 0x4a, - 0x22, 0x25, 0xbe, 0xe0, 0x56, 0xbf, 0x80, 0x3c, 0xf7, 0x1a, 0xe6, 0x01, 0xbc, 0xd8, 0x96, 0xd8, - 0x87, 0x8d, 0xd1, 0x27, 0x00, 0x3a, 0xa5, 0xae, 0xd9, 0x19, 0x85, 0x8a, 0xd7, 0xa7, 0x7b, 0xdd, - 0xb6, 0xcf, 0x57, 0xbf, 0x2c, 0xdd, 0x6f, 0x35, 0x14, 0x8d, 0xb8, 0x60, 0x44, 0xa1, 0xba, 0x07, - 0xe5, 0xb8, 0xac, 0x9f, 0xad, 0xd3, 0x53, 0xb2, 0x75, 0x26, 0x9a, 0xad, 0x83, 0x5c, 0x9f, 0x15, - 0x8d, 0x15, 0x3e, 0x51, 0x9f, 0xa5, 0xa1, 0xd8, 0x3e, 0x91, 0xe7, 0x91, 0x54, 0x0c, 0x07, 0xa2, - 0x99, 0x68, 0x05, 0x2b, 0x9a, 0x04, 0xd9, 0xa0, 0xf5, 0xf0, 0x41, 0x70, 0xe3, 0x72, 0xf3, 0x16, - 0x2a, 0x7e, 0x0f, 0x46, 0x7a, 0xd9, 0xfb, 0xa0, 0x04, 0x31, 0x93, 0x81, 0x48, 0xdd, 0x30, 0x5c, - 0xe2, 0x79, 0x72, 0x6f, 0xfe, 0x94, 0xb7, 0x88, 0xec, 0xa7, 0xb2, 0x46, 0xce, 0x62, 0x31, 0x51, - 0x0d, 0x58, 0x1e, 0x0b, 0xb8, 0xe8, 0x7d, 0x28, 0x38, 0xa3, 0x8e, 0xe6, 0x9b, 0x67, 0xec, 0x49, - 0xc0, 0x87, 0x27, 0xa3, 0xce, 0xc0, 0xec, 0x3e, 0x20, 0xa7, 0xfe, 0x62, 0x9c, 0x51, 0xe7, 0x81, - 0xb0, 0xa2, 0xf8, 0x95, 0x4c, 0xf4, 0x57, 0x8e, 0xa1, 0xe8, 0x5f, 0x0a, 0xf4, 0x43, 0x50, 0x82, - 0x58, 0x1e, 0x74, 0x0e, 0x13, 0x93, 0x80, 0x54, 0x1f, 0x8a, 0x30, 0xac, 0xeb, 0x99, 0x3d, 0x8b, - 0x18, 0x5a, 0x08, 0x63, 0xf9, 0xaf, 0x15, 0xf1, 0xb2, 0xf8, 0xb0, 0xeb, 0x63, 0x58, 0xf5, 0xdf, - 0x69, 0x28, 0xfa, 0x1d, 0x22, 0xf4, 0x6e, 0xe4, 0xde, 0x95, 0xa7, 0xd4, 0xd3, 0x3e, 0x63, 0xd8, - 0xe5, 0x89, 0xaf, 0x35, 0x73, 0xfe, 0xb5, 0xc6, 0xdb, 0x75, 0xe1, 0xd5, 0xf0, 0x1b, 0xa7, 0xb9, - 0x73, 0x37, 0x4e, 0xdf, 0x06, 0x44, 0x6d, 0xaa, 0x0f, 0xb4, 0x63, 0x9b, 0x9a, 0x56, 0x4f, 0x13, - 0xc6, 0x16, 0x58, 0xa0, 0xc2, 0xbf, 0x3c, 0xe2, 0x1f, 0x0e, 0xb8, 0xdd, 0x7f, 0x99, 0x86, 0x62, - 0x10, 0xd4, 0xcf, 0xdb, 0xb4, 0xb9, 0x08, 0x0b, 0x32, 0x6e, 0x89, 0xae, 0x8d, 0x9c, 0x05, 0xfd, - 0xc3, 0x5c, 0xa4, 0x7f, 0x58, 0x83, 0xe2, 0x90, 0x50, 0x9d, 0x67, 0x36, 0x51, 0x49, 0x04, 0xf3, - 0x9b, 0xef, 0xc1, 0x62, 0xa4, 0x7f, 0xc6, 0x3c, 0x6f, 0xaf, 0xf9, 0x51, 0x25, 0x55, 0x2b, 0x3c, - 0xfb, 0xf2, 0x6a, 0x76, 0x8f, 0x3c, 0x65, 0x77, 0x16, 0x37, 0x1b, 0xad, 0x66, 0xe3, 0x41, 0x25, - 0x5d, 0x5b, 0x7c, 0xf6, 0xe5, 0xd5, 0x02, 0x26, 0xbc, 0x96, 0xbf, 0xd9, 0x82, 0xa5, 0xe8, 0xa9, - 0xc4, 0x43, 0x1f, 0x82, 0xf2, 0xbd, 0x87, 0x07, 0xbb, 0x3b, 0x8d, 0xed, 0x76, 0x53, 0x7b, 0xb4, - 0xdf, 0x6e, 0x56, 0xd2, 0xe8, 0x55, 0xb8, 0xb0, 0xbb, 0xf3, 0xe3, 0x56, 0x5b, 0x6b, 0xec, 0xee, - 0x34, 0xf7, 0xda, 0xda, 0x76, 0xbb, 0xbd, 0xdd, 0x78, 0x50, 0xc9, 0x6c, 0xfd, 0x41, 0x81, 0xe5, - 0xed, 0x7a, 0x63, 0x87, 0x85, 0x6d, 0xb3, 0xab, 0xf3, 0x32, 0xaf, 0x01, 0x39, 0x5e, 0xc8, 0x9d, - 0xf9, 0xba, 0x56, 0x3b, 0xbb, 0xcb, 0x83, 0xee, 0x43, 0x9e, 0xd7, 0x78, 0xe8, 0xec, 0xe7, 0xb6, - 0xda, 0x8c, 0xb6, 0x0f, 0x5b, 0x0c, 0x77, 0x8f, 0x33, 0xdf, 0xdf, 0x6a, 0x67, 0x77, 0x81, 0x10, - 0x06, 0x25, 0x04, 0x9f, 0xb3, 0xdf, 0xa3, 0x6a, 0x73, 0x04, 0x1b, 0xb4, 0x0b, 0x05, 0x1f, 0xd6, - 0xcf, 0x7a, 0x21, 0xab, 0xcd, 0x6c, 0xd3, 0x30, 0x73, 0x89, 0xf2, 0xeb, 0xec, 0xe7, 0xbe, 0xda, - 0x8c, 0x9e, 0x13, 0xda, 0x81, 0x05, 0x09, 0xa8, 0x66, 0xbc, 0x7a, 0xd5, 0x66, 0xb5, 0x5d, 0x98, - 0xd1, 0xc2, 0xc2, 0x76, 0xf6, 0x23, 0x66, 0x6d, 0x8e, 0x76, 0x1a, 0x7a, 0x08, 0x10, 0x29, 0xb6, - 0xe6, 0x78, 0x9d, 0xac, 0xcd, 0xd3, 0x26, 0x43, 0xfb, 0x50, 0x0c, 0x40, 0xf5, 0xcc, 0xb7, 0xc2, - 0xda, 0xec, 0x7e, 0x15, 0x7a, 0x0c, 0xa5, 0x38, 0x98, 0x9c, 0xef, 0x05, 0xb0, 0x36, 0x67, 0x23, - 0x8a, 0xe9, 0x8f, 0x23, 0xcb, 0xf9, 0x5e, 0x04, 0x6b, 0x73, 0xf6, 0xa5, 0xd0, 0x67, 0xb0, 0x32, - 0x89, 0xfc, 0xe6, 0x7f, 0x20, 0xac, 0x9d, 0xa3, 0x53, 0x85, 0x86, 0x80, 0xa6, 0x20, 0xc6, 0x73, - 0xbc, 0x17, 0xd6, 0xce, 0xd3, 0xb8, 0xaa, 0x37, 0xbf, 0x7a, 0xb1, 0x96, 0xfe, 0xfa, 0xc5, 0x5a, - 0xfa, 0x1f, 0x2f, 0xd6, 0xd2, 0xcf, 0x5f, 0xae, 0xa5, 0xbe, 0x7e, 0xb9, 0x96, 0xfa, 0xdb, 0xcb, - 0xb5, 0xd4, 0xcf, 0xde, 0xea, 0x99, 0xb4, 0x3f, 0xea, 0x6c, 0x74, 0xed, 0xe1, 0x66, 0xf4, 0x8f, - 0x08, 0xd3, 0xfe, 0x1c, 0xd1, 0x59, 0xe0, 0x49, 0xe5, 0xd6, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x11, 0xc8, 0x63, 0xb7, 0x3c, 0x21, 0x00, 0x00, + 0xcd, 0xd1, 0x69, 0x5f, 0xda, 0x87, 0x8f, 0xd1, 0x45, 0x58, 0x90, 0x6a, 0xc5, 0x29, 0xca, 0x19, + 0x5a, 0x85, 0xbc, 0xe3, 0xda, 0xc7, 0x84, 0x1f, 0x5d, 0x11, 0x8b, 0x89, 0xfa, 0xeb, 0x0c, 0xac, + 0x4c, 0xc4, 0x41, 0xa6, 0xb7, 0xaf, 0x7b, 0x7d, 0xff, 0xb7, 0xd8, 0x18, 0xdd, 0x61, 0x7a, 0x75, + 0x83, 0xb8, 0x32, 0x77, 0x54, 0x27, 0x4d, 0xdd, 0xe2, 0xdf, 0xa5, 0x69, 0x24, 0x37, 0xda, 0x87, + 0xca, 0x40, 0xf7, 0xa8, 0x26, 0xe2, 0x8a, 0x16, 0xc9, 0x23, 0x93, 0xd1, 0x74, 0x57, 0xf7, 0x23, + 0x11, 0xbb, 0xd4, 0x52, 0x51, 0x79, 0x10, 0xa3, 0x22, 0x0c, 0xab, 0x9d, 0xd3, 0x2f, 0x74, 0x8b, + 0x9a, 0x16, 0xd1, 0x26, 0x4e, 0xee, 0xd2, 0x84, 0xd2, 0xe6, 0xb1, 0x69, 0x10, 0xab, 0xeb, 0x1f, + 0xd9, 0x85, 0x40, 0x38, 0x38, 0x52, 0x4f, 0xc5, 0x50, 0x8e, 0x47, 0x72, 0x54, 0x86, 0x0c, 0x3d, + 0x91, 0x06, 0xc8, 0xd0, 0x13, 0xf4, 0x5d, 0xc8, 0xb1, 0x4d, 0xf2, 0xcd, 0x97, 0xa7, 0xa4, 0x40, + 0x29, 0xd7, 0x3e, 0x75, 0x08, 0xe6, 0x9c, 0xaa, 0x1a, 0xb8, 0x43, 0x10, 0xdd, 0xc7, 0xb5, 0xaa, + 0x37, 0x60, 0x79, 0x2c, 0x7c, 0x47, 0xce, 0x2f, 0x1d, 0x3d, 0x3f, 0x75, 0x19, 0x4a, 0xb1, 0x58, + 0xad, 0x5e, 0x84, 0xd5, 0x69, 0xa1, 0x57, 0xed, 0x07, 0xf4, 0x58, 0x08, 0x45, 0xb7, 0xa1, 0x18, + 0xc4, 0x5e, 0xe1, 0x8e, 0x93, 0xb6, 0xf2, 0x99, 0x71, 0xc0, 0xca, 0xfc, 0x90, 0x5d, 0x6b, 0x7e, + 0x1f, 0x32, 0x7c, 0xe1, 0x05, 0xdd, 0x71, 0x5a, 0xba, 0xd7, 0x57, 0x3f, 0x85, 0x6a, 0x52, 0x5c, + 0x4d, 0xda, 0x06, 0xa3, 0x1f, 0xd9, 0xee, 0x50, 0xa7, 0x5c, 0x59, 0x09, 0xcb, 0x19, 0xbb, 0x9e, + 0x22, 0xc6, 0x66, 0x39, 0x59, 0x4c, 0x54, 0x0d, 0x2e, 0x25, 0xc6, 0x56, 0x26, 0x62, 0x5a, 0x06, + 0x11, 0xf6, 0x2c, 0x61, 0x31, 0x09, 0x15, 0x89, 0xc5, 0x8a, 0x09, 0xfb, 0x59, 0x8f, 0xef, 0x95, + 0xeb, 0x57, 0xb0, 0x9c, 0xa9, 0xbf, 0x2f, 0x42, 0x11, 0x13, 0xcf, 0x61, 0x31, 0x01, 0xd5, 0x41, + 0x21, 0x27, 0x5d, 0xe2, 0x50, 0x3f, 0x8c, 0x4e, 0x47, 0x0d, 0x82, 0xbb, 0xe9, 0x73, 0xb2, 0x94, + 0x1d, 0x88, 0xa1, 0x5b, 0x12, 0x95, 0x25, 0x03, 0x2c, 0x29, 0x1e, 0x85, 0x65, 0x77, 0x7c, 0x58, + 0x96, 0x4d, 0xcc, 0xd2, 0x42, 0x6a, 0x0c, 0x97, 0xdd, 0x92, 0xb8, 0x2c, 0x37, 0xe3, 0xc7, 0x62, + 0xc0, 0xac, 0x11, 0x03, 0x66, 0xf9, 0x19, 0xdb, 0x4c, 0x40, 0x66, 0x77, 0x7c, 0x64, 0xb6, 0x30, + 0x63, 0xc5, 0x63, 0xd0, 0xec, 0x7e, 0x1c, 0x9a, 0x09, 0x58, 0x75, 0x2d, 0x51, 0x3a, 0x11, 0x9b, + 0xfd, 0x20, 0x82, 0xcd, 0x8a, 0x89, 0xc0, 0x48, 0x28, 0x99, 0x02, 0xce, 0x1a, 0x31, 0x70, 0xa6, + 0xcc, 0xb0, 0x41, 0x02, 0x3a, 0xfb, 0x20, 0x8a, 0xce, 0x20, 0x11, 0xe0, 0xc9, 0xf3, 0x9e, 0x06, + 0xcf, 0xde, 0x0b, 0xe0, 0xd9, 0x62, 0x22, 0xbe, 0x94, 0x7b, 0x18, 0xc7, 0x67, 0xfb, 0x13, 0xf8, + 0x4c, 0xe0, 0xa9, 0x37, 0x12, 0x55, 0xcc, 0x00, 0x68, 0xfb, 0x13, 0x00, 0xad, 0x34, 0x43, 0xe1, + 0x0c, 0x84, 0xf6, 0x8b, 0xe9, 0x08, 0x2d, 0x19, 0x43, 0xc9, 0x65, 0xce, 0x07, 0xd1, 0xb4, 0x04, + 0x88, 0xb6, 0xcc, 0xd5, 0xbf, 0x95, 0xa8, 0xfe, 0xfc, 0x18, 0xed, 0x06, 0xcb, 0x90, 0x63, 0x3e, + 0xcf, 0xa2, 0x0c, 0x71, 0x5d, 0xdb, 0x95, 0x68, 0x4b, 0x4c, 0xd4, 0x37, 0x59, 0xce, 0x0e, 0xfd, + 0xfb, 0x0c, 0x3c, 0xc7, 0xa3, 0x79, 0xc4, 0xa7, 0xd5, 0x3f, 0xa6, 0x43, 0x59, 0x9e, 0xe6, 0xa2, + 0xf9, 0x5e, 0x91, 0xf9, 0x3e, 0x82, 0xf2, 0x32, 0x71, 0x94, 0xb7, 0x0e, 0x8b, 0x2c, 0x4a, 0x8f, + 0x01, 0x38, 0xdd, 0x09, 0x00, 0xdc, 0x4d, 0x58, 0xe1, 0x69, 0x58, 0x60, 0x41, 0x19, 0x9a, 0x73, + 0x9c, 0x6d, 0x99, 0x7d, 0x10, 0x97, 0x53, 0xc4, 0xe8, 0x77, 0xe0, 0x42, 0x84, 0x37, 0x88, 0xfe, + 0x02, 0xcd, 0x54, 0x02, 0xee, 0x6d, 0x99, 0x06, 0xfe, 0x9c, 0x0e, 0x2d, 0x14, 0x22, 0xbf, 0x69, + 0x20, 0x2d, 0xfd, 0x3f, 0x02, 0x69, 0x99, 0xff, 0x1a, 0xa4, 0x45, 0xb3, 0x59, 0x36, 0x9e, 0xcd, + 0xfe, 0x95, 0x0e, 0xcf, 0x24, 0x80, 0x5c, 0x5d, 0xdb, 0x20, 0x32, 0xbf, 0xf0, 0x31, 0xaa, 0x40, + 0x76, 0x60, 0xf7, 0x64, 0x16, 0x61, 0x43, 0xc6, 0x15, 0x04, 0x61, 0x45, 0xc6, 0xd8, 0x20, 0x35, + 0x31, 0x9b, 0x65, 0xfd, 0xd4, 0x54, 0x81, 0xec, 0x13, 0x22, 0x42, 0xe6, 0x12, 0x66, 0x43, 0xc6, + 0xc7, 0x2f, 0x19, 0x0f, 0x84, 0x4b, 0x58, 0x4c, 0xd0, 0x5d, 0x50, 0x78, 0x1b, 0x42, 0xb3, 0x1d, + 0x4f, 0x46, 0xb7, 0xd7, 0xa2, 0x7b, 0x15, 0xdd, 0x86, 0x8d, 0x03, 0xc6, 0xb3, 0xef, 0x78, 0xb8, + 0xe8, 0xc8, 0x51, 0x24, 0xeb, 0x2a, 0xb1, 0xac, 0x7b, 0x19, 0x14, 0xb6, 0x7a, 0xcf, 0xd1, 0xbb, + 0x84, 0x87, 0x2a, 0x05, 0x87, 0x04, 0xf5, 0x31, 0xa0, 0xc9, 0x80, 0x8b, 0x5a, 0xb0, 0x40, 0x8e, + 0x89, 0x45, 0xd9, 0xb1, 0x31, 0x73, 0x5f, 0x9c, 0x82, 0xac, 0x88, 0x45, 0xeb, 0x55, 0x66, 0xe4, + 0x7f, 0x7e, 0xb3, 0x5e, 0x11, 0xdc, 0x6f, 0xdb, 0x43, 0x93, 0x92, 0xa1, 0x43, 0x4f, 0xb1, 0x94, + 0x57, 0x7f, 0x95, 0x61, 0x30, 0x27, 0x16, 0x8c, 0xa7, 0xda, 0xd6, 0xbf, 0xf2, 0x99, 0x08, 0xc4, + 0x9d, 0xcf, 0xde, 0x6b, 0x00, 0x3d, 0xdd, 0xd3, 0x9e, 0xea, 0x16, 0x25, 0x86, 0x34, 0x7a, 0x84, + 0x82, 0x6a, 0x50, 0x64, 0xb3, 0x91, 0x47, 0x0c, 0x6e, 0xfe, 0x2c, 0x0e, 0xe6, 0x91, 0x7d, 0x16, + 0xbe, 0xdd, 0x3e, 0xe3, 0x56, 0x2e, 0x8e, 0x5b, 0xf9, 0x37, 0x99, 0xd0, 0x4d, 0x42, 0x44, 0xf8, + 0xff, 0x67, 0x87, 0xdf, 0xf2, 0x3a, 0x31, 0x9e, 0x15, 0xd1, 0x21, 0xac, 0x04, 0x5e, 0xaa, 0x8d, + 0xb8, 0xf7, 0xfa, 0xf7, 0x6e, 0x5e, 0x37, 0xaf, 0x1c, 0xc7, 0xc9, 0x1e, 0xfa, 0x18, 0x5e, 0x1d, + 0x0b, 0x41, 0x81, 0xea, 0xcc, 0xbc, 0x91, 0xe8, 0x95, 0x78, 0x24, 0xf2, 0x55, 0x87, 0xc6, 0xca, + 0x7e, 0x4b, 0xe7, 0xd8, 0x61, 0xa5, 0x47, 0x34, 0xc9, 0x4f, 0x3d, 0xfe, 0x6b, 0x50, 0x72, 0x09, + 0x65, 0xe5, 0x70, 0xac, 0xb8, 0x5b, 0x12, 0x44, 0x59, 0x32, 0x1e, 0xc0, 0x2b, 0x53, 0x93, 0x3d, + 0xfa, 0x1e, 0x28, 0x21, 0x4e, 0x48, 0x27, 0xd4, 0x49, 0x01, 0xf6, 0x0f, 0x79, 0xd5, 0x3f, 0xa5, + 0x43, 0x95, 0xf1, 0x6a, 0xa2, 0x09, 0x0b, 0x2e, 0xf1, 0x46, 0x03, 0x81, 0xef, 0xcb, 0x5b, 0xef, + 0xcc, 0x07, 0x13, 0x18, 0x75, 0x34, 0xa0, 0x58, 0x0a, 0xab, 0x8f, 0x61, 0x41, 0x50, 0xd0, 0x22, + 0x14, 0x1e, 0xee, 0x3d, 0xd8, 0xdb, 0xff, 0x68, 0xaf, 0x92, 0x42, 0x00, 0x0b, 0xdb, 0x8d, 0x46, + 0xf3, 0xa0, 0x5d, 0x49, 0x23, 0x05, 0xf2, 0xdb, 0xf5, 0x7d, 0xdc, 0xae, 0x64, 0x18, 0x19, 0x37, + 0x3f, 0x6c, 0x36, 0xda, 0x95, 0x2c, 0x5a, 0x81, 0x92, 0x18, 0x6b, 0xf7, 0xf7, 0xf1, 0x4f, 0xb6, + 0xdb, 0x95, 0x5c, 0x84, 0x74, 0xd8, 0xdc, 0xbb, 0xd7, 0xc4, 0x95, 0xbc, 0xfa, 0x2e, 0x2b, 0x20, + 0x12, 0x80, 0x45, 0x58, 0x2a, 0xa4, 0x23, 0xa5, 0x82, 0xfa, 0xbb, 0x0c, 0xd4, 0x92, 0xd1, 0x02, + 0xfa, 0x70, 0x6c, 0xe3, 0x5b, 0xe7, 0x80, 0x1a, 0x63, 0xbb, 0x47, 0xd7, 0xa1, 0xec, 0x92, 0x23, + 0x42, 0xbb, 0x7d, 0x81, 0x5e, 0x44, 0x66, 0x2b, 0xe1, 0x92, 0xa4, 0x72, 0x21, 0x4f, 0xb0, 0x7d, + 0x46, 0xba, 0x54, 0x13, 0x55, 0x8b, 0xb8, 0x74, 0x0a, 0x63, 0x63, 0xd4, 0x43, 0x41, 0x54, 0x3f, + 0x3d, 0x97, 0x2d, 0x15, 0xc8, 0xe3, 0x66, 0x1b, 0x7f, 0x5c, 0xc9, 0x22, 0x04, 0x65, 0x3e, 0xd4, + 0x0e, 0xf7, 0xb6, 0x0f, 0x0e, 0x5b, 0xfb, 0xcc, 0x96, 0x17, 0x60, 0xd9, 0xb7, 0xa5, 0x4f, 0xcc, + 0xab, 0x9f, 0x40, 0x39, 0x5e, 0xa2, 0x33, 0x13, 0xba, 0xf6, 0xc8, 0x32, 0xb8, 0x31, 0xf2, 0x58, + 0x4c, 0xd0, 0x6d, 0xc8, 0x1f, 0xdb, 0xc2, 0xcd, 0xa6, 0xdf, 0xb5, 0x47, 0x36, 0x25, 0x91, 0x12, + 0x5f, 0x70, 0xab, 0x5f, 0x40, 0x9e, 0x7b, 0x0d, 0xf3, 0x00, 0x5e, 0x6c, 0x4b, 0xec, 0xc3, 0xc6, + 0xe8, 0x13, 0x00, 0x9d, 0x52, 0xd7, 0xec, 0x8c, 0x42, 0xc5, 0xeb, 0xd3, 0xbd, 0x6e, 0xdb, 0xe7, + 0xab, 0x5f, 0x96, 0xee, 0xb7, 0x1a, 0x8a, 0x46, 0x5c, 0x30, 0xa2, 0x50, 0xdd, 0x83, 0x72, 0x5c, + 0xd6, 0xcf, 0xd6, 0xe9, 0x29, 0xd9, 0x3a, 0x13, 0xcd, 0xd6, 0x41, 0xae, 0xcf, 0x8a, 0xc6, 0x0a, + 0x9f, 0xa8, 0xcf, 0xd2, 0x50, 0x6c, 0x9f, 0xc8, 0xf3, 0x48, 0x2a, 0x86, 0x03, 0xd1, 0x4c, 0xb4, + 0x82, 0x15, 0x4d, 0x82, 0x6c, 0xd0, 0x7a, 0xf8, 0x20, 0xb8, 0x71, 0xb9, 0x79, 0x0b, 0x15, 0xbf, + 0x07, 0x23, 0xbd, 0xec, 0x7d, 0x50, 0x82, 0x98, 0xc9, 0x40, 0xa4, 0x6e, 0x18, 0x2e, 0xf1, 0x3c, + 0xb9, 0x37, 0x7f, 0xca, 0x5b, 0x44, 0xf6, 0x53, 0x59, 0x23, 0x67, 0xb1, 0x98, 0xa8, 0x06, 0x2c, + 0x8f, 0x05, 0x5c, 0xf4, 0x3e, 0x14, 0x9c, 0x51, 0x47, 0xf3, 0xcd, 0x33, 0xf6, 0x24, 0xe0, 0xc3, + 0x93, 0x51, 0x67, 0x60, 0x76, 0x1f, 0x90, 0x53, 0x7f, 0x31, 0xce, 0xa8, 0xf3, 0x40, 0x58, 0x51, + 0xfc, 0x4a, 0x26, 0xfa, 0x2b, 0xc7, 0x50, 0xf4, 0x2f, 0x05, 0xfa, 0x21, 0x28, 0x41, 0x2c, 0x0f, + 0x3a, 0x87, 0x89, 0x49, 0x40, 0xaa, 0x0f, 0x45, 0x18, 0xd6, 0xf5, 0xcc, 0x9e, 0x45, 0x0c, 0x2d, + 0x84, 0xb1, 0xfc, 0xd7, 0x8a, 0x78, 0x59, 0x7c, 0xd8, 0xf5, 0x31, 0xac, 0xfa, 0xef, 0x34, 0x14, + 0xfd, 0x0e, 0x11, 0x7a, 0x37, 0x72, 0xef, 0xca, 0x53, 0xea, 0x69, 0x9f, 0x31, 0xec, 0xf2, 0xc4, + 0xd7, 0x9a, 0x39, 0xff, 0x5a, 0x93, 0xda, 0x75, 0x7e, 0xe3, 0x34, 0x77, 0xee, 0xc6, 0xe9, 0xdb, + 0x80, 0xa8, 0x4d, 0xf5, 0x81, 0x76, 0x6c, 0x53, 0xd3, 0xea, 0x69, 0xc2, 0xd8, 0x02, 0x0b, 0x54, + 0xf8, 0x97, 0x47, 0xfc, 0xc3, 0x01, 0xb7, 0xfb, 0x2f, 0xd3, 0x50, 0x0c, 0x82, 0xfa, 0x79, 0x9b, + 0x36, 0x17, 0x61, 0x41, 0xc6, 0x2d, 0xd1, 0xb5, 0x91, 0xb3, 0xa0, 0x7f, 0x98, 0x8b, 0xf4, 0x0f, + 0x6b, 0x50, 0x1c, 0x12, 0xaa, 0xf3, 0xcc, 0x26, 0x2a, 0x89, 0x60, 0x7e, 0xf3, 0x3d, 0x58, 0x8c, + 0xf4, 0xcf, 0x98, 0xe7, 0xed, 0x35, 0x3f, 0xaa, 0xa4, 0x6a, 0x85, 0x67, 0x5f, 0x5e, 0xcd, 0xee, + 0x91, 0xa7, 0xec, 0xce, 0xe2, 0x66, 0xa3, 0xd5, 0x6c, 0x3c, 0xa8, 0xa4, 0x6b, 0x8b, 0xcf, 0xbe, + 0xbc, 0x5a, 0xc0, 0x84, 0xd7, 0xf2, 0x37, 0x5b, 0xb0, 0x14, 0x3d, 0x95, 0x78, 0xe8, 0x43, 0x50, + 0xbe, 0xf7, 0xf0, 0x60, 0x77, 0xa7, 0xb1, 0xdd, 0x6e, 0x6a, 0x8f, 0xf6, 0xdb, 0xcd, 0x4a, 0x1a, + 0xbd, 0x0a, 0x17, 0x76, 0x77, 0x7e, 0xdc, 0x6a, 0x6b, 0x8d, 0xdd, 0x9d, 0xe6, 0x5e, 0x5b, 0xdb, + 0x6e, 0xb7, 0xb7, 0x1b, 0x0f, 0x2a, 0x99, 0xad, 0x3f, 0x28, 0xb0, 0xbc, 0x5d, 0x6f, 0xec, 0xb0, + 0xb0, 0x6d, 0x76, 0x75, 0x5e, 0xe6, 0x35, 0x20, 0xc7, 0x0b, 0xb9, 0x33, 0x5f, 0xd7, 0x6a, 0x67, + 0x77, 0x79, 0xd0, 0x7d, 0xc8, 0xf3, 0x1a, 0x0f, 0x9d, 0xfd, 0xdc, 0x56, 0x9b, 0xd1, 0xf6, 0x61, + 0x8b, 0xe1, 0xee, 0x71, 0xe6, 0xfb, 0x5b, 0xed, 0xec, 0x2e, 0x10, 0xc2, 0xa0, 0x84, 0xe0, 0x73, + 0xf6, 0x7b, 0x54, 0x6d, 0x8e, 0x60, 0x83, 0x76, 0xa1, 0xe0, 0xc3, 0xfa, 0x59, 0x2f, 0x64, 0xb5, + 0x99, 0x6d, 0x1a, 0x66, 0x2e, 0x51, 0x7e, 0x9d, 0xfd, 0xdc, 0x57, 0x9b, 0xd1, 0x73, 0x42, 0x3b, + 0xb0, 0x20, 0x01, 0xd5, 0x8c, 0x57, 0xaf, 0xda, 0xac, 0xb6, 0x0b, 0x33, 0x5a, 0x58, 0xd8, 0xce, + 0x7e, 0xc4, 0xac, 0xcd, 0xd1, 0x4e, 0x43, 0x0f, 0x01, 0x22, 0xc5, 0xd6, 0x1c, 0xaf, 0x93, 0xb5, + 0x79, 0xda, 0x64, 0x68, 0x1f, 0x8a, 0x01, 0xa8, 0x9e, 0xf9, 0x56, 0x58, 0x9b, 0xdd, 0xaf, 0x42, + 0x8f, 0xa1, 0x14, 0x07, 0x93, 0xf3, 0xbd, 0x00, 0xd6, 0xe6, 0x6c, 0x44, 0x31, 0xfd, 0x71, 0x64, + 0x39, 0xdf, 0x8b, 0x60, 0x6d, 0xce, 0xbe, 0x14, 0xfa, 0x0c, 0x56, 0x26, 0x91, 0xdf, 0xfc, 0x0f, + 0x84, 0xb5, 0x73, 0x74, 0xaa, 0xd0, 0x10, 0xd0, 0x14, 0xc4, 0x78, 0x8e, 0xf7, 0xc2, 0xda, 0x79, + 0x1a, 0x57, 0xf5, 0xe6, 0x57, 0x2f, 0xd6, 0xd2, 0x5f, 0xbf, 0x58, 0x4b, 0xff, 0xe3, 0xc5, 0x5a, + 0xfa, 0xf9, 0xcb, 0xb5, 0xd4, 0xd7, 0x2f, 0xd7, 0x52, 0x7f, 0x7b, 0xb9, 0x96, 0xfa, 0xd9, 0x5b, + 0x3d, 0x93, 0xf6, 0x47, 0x9d, 0x8d, 0xae, 0x3d, 0xdc, 0x8c, 0xfe, 0x11, 0x61, 0xda, 0x9f, 0x23, + 0x3a, 0x0b, 0x3c, 0xa9, 0xdc, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x6b, 0xd5, 0xbf, + 0x3c, 0x21, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -8167,7 +8167,7 @@ func (m *RequestInitChain) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.InitialHeight |= int64(b&0x7F) << shift + m.InitialHeight |= uint64(b&0x7F) << shift if b < 0x80 { break } @@ -8302,7 +8302,7 @@ func (m *RequestQuery) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Height |= int64(b&0x7F) << shift + m.Height |= uint64(b&0x7F) << shift if b < 0x80 { break } diff --git a/cmd/tendermint/commands/light.go b/cmd/tendermint/commands/light.go index 80d8f0750..a8da441c9 100644 --- a/cmd/tendermint/commands/light.go +++ b/cmd/tendermint/commands/light.go @@ -66,7 +66,7 @@ var ( sequential bool trustingPeriod time.Duration - trustedHeight int64 + trustedHeight uint64 trustedHash []byte trustLevelStr string @@ -92,7 +92,7 @@ func init() { "maximum number of simultaneous connections (including WebSocket).") LightCmd.Flags().DurationVar(&trustingPeriod, "trusting-period", 168*time.Hour, "trusting period that headers can be verified within. Should be significantly less than the unbonding period") - LightCmd.Flags().Int64Var(&trustedHeight, "height", 1, "Trusted header's height") + LightCmd.Flags().Uint64Var(&trustedHeight, "height", 1, "Trusted header's height") LightCmd.Flags().BytesHexVar(&trustedHash, "hash", []byte{}, "Trusted header's hash") LightCmd.Flags().BoolVar(&verbose, "verbose", false, "Verbose output") LightCmd.Flags().StringVar(&trustLevelStr, "trust-level", "1/3", diff --git a/cmd/tendermint/commands/testnet.go b/cmd/tendermint/commands/testnet.go index cfda5aa57..eb4a4fe33 100644 --- a/cmd/tendermint/commands/testnet.go +++ b/cmd/tendermint/commands/testnet.go @@ -22,7 +22,7 @@ import ( var ( nValidators int nNonValidators int - initialHeight int64 + initialHeight uint64 configFile string outputDir string nodeDirPrefix string @@ -51,7 +51,7 @@ func init() { "directory to store initialization data for the testnet") TestnetFilesCmd.Flags().StringVar(&nodeDirPrefix, "node-dir-prefix", "node", "prefix the directory name for each node with (node results in node0, node1, ...)") - TestnetFilesCmd.Flags().Int64Var(&initialHeight, "initial-height", 0, + TestnetFilesCmd.Flags().Uint64Var(&initialHeight, "initial-height", 0, "initial height of the first block") TestnetFilesCmd.Flags().BoolVar(&populatePersistentPeers, "populate-persistent-peers", true, diff --git a/config/config.go b/config/config.go index 7313f0184..130ec3884 100644 --- a/config/config.go +++ b/config/config.go @@ -738,7 +738,7 @@ type StateSyncConfig struct { TempDir string `mapstructure:"temp-dir"` RPCServers []string `mapstructure:"rpc-servers"` TrustPeriod time.Duration `mapstructure:"trust-period"` - TrustHeight int64 `mapstructure:"trust-height"` + TrustHeight uint64 `mapstructure:"trust-height"` TrustHash string `mapstructure:"trust-hash"` DiscoveryTime time.Duration `mapstructure:"discovery-time"` } diff --git a/evidence/pool.go b/evidence/pool.go index 34c267c0c..b0b737632 100644 --- a/evidence/pool.go +++ b/evidence/pool.go @@ -48,7 +48,7 @@ type Pool struct { // evidence before the height with which the evidence happened is finished. consensusBuffer []duplicateVoteSet - pruningHeight int64 + pruningHeight uint64 pruningTime time.Time } diff --git a/light/client.go b/light/client.go index e3db270bb..1fe10a364 100644 --- a/light/client.go +++ b/light/client.go @@ -385,7 +385,7 @@ func (c *Client) compareWithLatestHeight(height uint64) (uint64, error) { if err != nil { return 0, fmt.Errorf("can't get last trusted height: %w", err) } - if latestHeight == -1 { + if latestHeight == -1 { // todo standardize errors return 0, errors.New("no headers exist") } @@ -442,7 +442,7 @@ func (c *Client) Update(ctx context.Context, now time.Time) (*types.LightBlock, // primary. // // It will replace the primary provider if an error from a request to the provider occurs -func (c *Client) VerifyLightBlockAtHeight(ctx context.Context, height int64, now time.Time) (*types.LightBlock, error) { +func (c *Client) VerifyLightBlockAtHeight(ctx context.Context, height uint64, now time.Time) (*types.LightBlock, error) { if height <= 0 { return nil, errors.New("negative or zero height") } diff --git a/light/helpers_test.go b/light/helpers_test.go index 5a8138d6f..84a248726 100644 --- a/light/helpers_test.go +++ b/light/helpers_test.go @@ -141,7 +141,7 @@ func genHeader(chainID string, height uint64, bTime time.Time, txs types.Txs, } // GenSignedHeader calls genHeader and signHeader and combines them into a SignedHeader. -func (pkz privKeys) GenSignedHeader(chainID string, height int64, bTime time.Time, txs types.Txs, +func (pkz privKeys) GenSignedHeader(chainID string, height uint64, bTime time.Time, txs types.Txs, valset, nextValset *types.ValidatorSet, appHash, consHash, resHash []byte, first, last int) *types.SignedHeader { header := genHeader(chainID, height, bTime, txs, valset, nextValset, appHash, consHash, resHash) @@ -152,7 +152,7 @@ func (pkz privKeys) GenSignedHeader(chainID string, height int64, bTime time.Tim } // GenSignedHeaderLastBlockID calls genHeader and signHeader and combines them into a SignedHeader. -func (pkz privKeys) GenSignedHeaderLastBlockID(chainID string, height int64, bTime time.Time, txs types.Txs, +func (pkz privKeys) GenSignedHeaderLastBlockID(chainID string, height uint64, bTime time.Time, txs types.Txs, valset, nextValset *types.ValidatorSet, appHash, consHash, resHash []byte, first, last int, lastBlockID types.BlockID) *types.SignedHeader { @@ -212,7 +212,7 @@ func genMockNodeWithKeys( valVariationInt = int(totalVariation) totalVariation = -float32(valVariationInt) newKeys = keys.ChangeKeys(valVariationInt) - currentHeader = keys.GenSignedHeaderLastBlockID(chainID, height, bTime.Add(time.Duration(height)*time.Minute), + currentHeader = keys.GenSignedHeaderLastBlockID(chainID, uint64(height), bTime.Add(time.Duration(height)*time.Minute), nil, keys.ToValidators(2, 0), newKeys.ToValidators(2, 0), hash("app_hash"), hash("cons_hash"), hash("results_hash"), 0, len(keys), types.BlockID{Hash: lastHeader.Hash()}) diff --git a/light/provider/http/http.go b/light/provider/http/http.go index c28d732ca..33172ce35 100644 --- a/light/provider/http/http.go +++ b/light/provider/http/http.go @@ -59,7 +59,7 @@ func (p *http) String() string { // LightBlock fetches a LightBlock at the given height and checks the // chainID matches. -func (p *http) LightBlock(ctx context.Context, height int64) (*types.LightBlock, error) { +func (p *http) LightBlock(ctx context.Context, height uint64) (*types.LightBlock, error) { h, err := validateHeight(height) if err != nil { return nil, provider.ErrBadLightBlock{Reason: err} @@ -94,7 +94,7 @@ func (p *http) ReportEvidence(ctx context.Context, ev types.Evidence) error { return err } -func (p *http) validatorSet(ctx context.Context, height *int64) (*types.ValidatorSet, error) { +func (p *http) validatorSet(ctx context.Context, height *uint64) (*types.ValidatorSet, error) { // Since the malicious node could report a massive number of pages, making us // spend a considerable time iterating, we restrict the number of pages here. // => 10000 validators max @@ -152,7 +152,7 @@ func (p *http) validatorSet(ctx context.Context, height *int64) (*types.Validato return valSet, nil } -func (p *http) signedHeader(ctx context.Context, height *int64) (*types.SignedHeader, error) { +func (p *http) signedHeader(ctx context.Context, height *uint64) (*types.SignedHeader, error) { for attempt := 1; attempt <= maxRetryAttempts; attempt++ { commit, err := p.client.Commit(ctx, height) if err != nil { @@ -169,7 +169,7 @@ func (p *http) signedHeader(ctx context.Context, height *int64) (*types.SignedHe return nil, provider.ErrNoResponse } -func validateHeight(height int64) (*int64, error) { +func validateHeight(height uint64) (*uint64, error) { if height < 0 { return nil, fmt.Errorf("expected height >= 0, got height %d", height) } diff --git a/light/provider/mock/deadmock.go b/light/provider/mock/deadmock.go index 76ea9e9d0..7e402d79d 100644 --- a/light/provider/mock/deadmock.go +++ b/light/provider/mock/deadmock.go @@ -24,7 +24,7 @@ func (p *deadMock) String() string { return fmt.Sprintf("DeadMock-%s", p.id) } -func (p *deadMock) LightBlock(_ context.Context, height int64) (*types.LightBlock, error) { +func (p *deadMock) LightBlock(_ context.Context, height uint64) (*types.LightBlock, error) { return nil, errNoResp } diff --git a/light/provider/mock/mock.go b/light/provider/mock/mock.go index 310646de0..fa422d482 100644 --- a/light/provider/mock/mock.go +++ b/light/provider/mock/mock.go @@ -44,7 +44,7 @@ func (p *Mock) String() string { return fmt.Sprintf("Mock{id: %s, headers: %s, vals: %v}", p.id, headers.String(), vals.String()) } -func (p *Mock) LightBlock(_ context.Context, height int64) (*types.LightBlock, error) { +func (p *Mock) LightBlock(_ context.Context, height uint64) (*types.LightBlock, error) { var lb *types.LightBlock if height == 0 && len(p.headers) > 0 { sh := p.headers[int64(len(p.headers))] @@ -55,9 +55,9 @@ func (p *Mock) LightBlock(_ context.Context, height int64) (*types.LightBlock, e } } - if _, ok := p.headers[height]; ok { - sh := p.headers[height] - vals := p.vals[height] + if _, ok := p.headers[int64(height)]; ok { + sh := p.headers[int64(height)] + vals := p.vals[int64(height)] lb = &types.LightBlock{ SignedHeader: sh, ValidatorSet: vals, diff --git a/light/proxy/routes.go b/light/proxy/routes.go index 0ed7f9433..db8df9783 100644 --- a/light/proxy/routes.go +++ b/light/proxy/routes.go @@ -166,10 +166,10 @@ func makeConsensusStateFunc(c *lrpc.Client) rpcConsensusStateFunc { } } -type rpcConsensusParamsFunc func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultConsensusParams, error) +type rpcConsensusParamsFunc func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultConsensusParams, error) func makeConsensusParamsFunc(c *lrpc.Client) rpcConsensusParamsFunc { - return func(ctx *rpctypes.Context, height *int64) (*ctypes.ResultConsensusParams, error) { + return func(ctx *rpctypes.Context, height *uint64) (*ctypes.ResultConsensusParams, error) { return c.ConsensusParams(ctx.Context(), height) } } @@ -215,11 +215,11 @@ func makeBroadcastTxAsyncFunc(c *lrpc.Client) rpcBroadcastTxAsyncFunc { } type rpcABCIQueryFunc func(ctx *rpctypes.Context, path string, - data bytes.HexBytes, height int64, prove bool) (*ctypes.ResultABCIQuery, error) + data bytes.HexBytes, height uint64, prove bool) (*ctypes.ResultABCIQuery, error) func makeABCIQueryFunc(c *lrpc.Client) rpcABCIQueryFunc { return func(ctx *rpctypes.Context, path string, data bytes.HexBytes, - height int64, prove bool) (*ctypes.ResultABCIQuery, error) { + height uint64, prove bool) (*ctypes.ResultABCIQuery, error) { return c.ABCIQueryWithOptions(ctx.Context(), path, data, rpcclient.ABCIQueryOptions{ Height: height, diff --git a/light/rpc/client.go b/light/rpc/client.go index 2f28afda7..27b2b41b7 100644 --- a/light/rpc/client.go +++ b/light/rpc/client.go @@ -28,8 +28,8 @@ type KeyPathFunc func(path string, key []byte) (merkle.KeyPath, error) // LightClient is an interface that contains functionality needed by Client from the light client. type LightClient interface { ChainID() string - VerifyLightBlockAtHeight(ctx context.Context, height int64, now time.Time) (*types.LightBlock, error) - TrustedLightBlock(height int64) (*types.LightBlock, error) + VerifyLightBlockAtHeight(ctx context.Context, height uint64, now time.Time) (*types.LightBlock, error) + TrustedLightBlock(height uint64) (*types.LightBlock, error) } // Client is an RPC client, which uses light#Client to verify data (if it can @@ -233,7 +233,7 @@ func (c *Client) Health(ctx context.Context) (*ctypes.ResultHealth, error) { // BlockchainInfo calls rpcclient#BlockchainInfo and then verifies every header // returned. -func (c *Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight int64) (*ctypes.ResultBlockchainInfo, error) { +func (c *Client) BlockchainInfo(ctx context.Context, minHeight, maxHeight uint64) (*ctypes.ResultBlockchainInfo, error) { res, err := c.next.BlockchainInfo(ctx, minHeight, maxHeight) if err != nil { return nil, err @@ -277,7 +277,7 @@ func (c *Client) Genesis(ctx context.Context) (*ctypes.ResultGenesis, error) { } // Block calls rpcclient#Block and then verifies the result. -func (c *Client) Block(ctx context.Context, height *int64) (*ctypes.ResultBlock, error) { +func (c *Client) Block(ctx context.Context, height *uint64) (*ctypes.ResultBlock, error) { res, err := c.next.Block(ctx, height) if err != nil { return nil, err @@ -346,8 +346,8 @@ func (c *Client) BlockByHash(ctx context.Context, hash []byte) (*ctypes.ResultBl // BlockResults returns the block results for the given height. If no height is // provided, the results of the block preceding the latest are returned. -func (c *Client) BlockResults(ctx context.Context, height *int64) (*ctypes.ResultBlockResults, error) { - var h int64 +func (c *Client) BlockResults(ctx context.Context, height *uint64) (*ctypes.ResultBlockResults, error) { + var h uint64 if height == nil { res, err := c.next.Status(ctx) if err != nil { @@ -407,7 +407,7 @@ func (c *Client) BlockResults(ctx context.Context, height *int64) (*ctypes.Resul return res, nil } -func (c *Client) Commit(ctx context.Context, height *int64) (*ctypes.ResultCommit, error) { +func (c *Client) Commit(ctx context.Context, height *uint64) (*ctypes.ResultCommit, error) { // Update the light client if we're behind and retrieve the light block at the requested height l, err := c.updateLightClientIfNeededTo(ctx, *height) if err != nil { @@ -449,7 +449,7 @@ func (c *Client) TxSearch(ctx context.Context, query string, prove bool, page, p } // Validators fetches and verifies validators. -func (c *Client) Validators(ctx context.Context, height *int64, pagePtr, perPagePtr *int) (*ctypes.ResultValidators, +func (c *Client) Validators(ctx context.Context, height *uint64, pagePtr, perPagePtr *int) (*ctypes.ResultValidators, error) { // Update the light client if we're behind and retrieve the light block at the requested height. l, err := c.updateLightClientIfNeededTo(ctx, *height) @@ -492,7 +492,7 @@ func (c *Client) UnsubscribeAll(ctx context.Context, subscriber string) error { return c.next.UnsubscribeAll(ctx, subscriber) } -func (c *Client) updateLightClientIfNeededTo(ctx context.Context, height int64) (*types.LightBlock, error) { +func (c *Client) updateLightClientIfNeededTo(ctx context.Context, height uint64) (*types.LightBlock, error) { l, err := c.lc.VerifyLightBlockAtHeight(ctx, height, time.Now()) if err != nil { return nil, fmt.Errorf("failed to update light client to %d: %w", height, err) diff --git a/light/rpc/mocks/light_client.go b/light/rpc/mocks/light_client.go index 2f512d881..3613472a9 100644 --- a/light/rpc/mocks/light_client.go +++ b/light/rpc/mocks/light_client.go @@ -32,7 +32,7 @@ func (_m *LightClient) ChainID() string { } // TrustedLightBlock provides a mock function with given fields: height -func (_m *LightClient) TrustedLightBlock(height int64) (*types.LightBlock, error) { +func (_m *LightClient) TrustedLightBlock(height uint64) (*types.LightBlock, error) { ret := _m.Called(height) var r0 *types.LightBlock diff --git a/light/store/db/db.go b/light/store/db/db.go index ee3973c8e..4e622518b 100644 --- a/light/store/db/db.go +++ b/light/store/db/db.go @@ -83,7 +83,7 @@ func (s *dbs) SaveLightBlock(lb *types.LightBlock) error { // the db. // // Safe for concurrent use by multiple goroutines. -func (s *dbs) DeleteLightBlock(height int64) error { +func (s *dbs) DeleteLightBlock(height uint64) error { if height <= 0 { panic("negative or zero height") } @@ -110,7 +110,7 @@ func (s *dbs) DeleteLightBlock(height int64) error { // LightBlock retrieves the LightBlock at the given height. // // Safe for concurrent use by multiple goroutines. -func (s *dbs) LightBlock(height int64) (*types.LightBlock, error) { +func (s *dbs) LightBlock(height uint64) (*types.LightBlock, error) { if height <= 0 { panic("negative or zero height") } @@ -140,7 +140,7 @@ func (s *dbs) LightBlock(height int64) (*types.LightBlock, error) { // LastLightBlockHeight returns the last LightBlock height stored. // // Safe for concurrent use by multiple goroutines. -func (s *dbs) LastLightBlockHeight() (int64, error) { +func (s *dbs) LastLightBlockHeight() (uint64, error) { itr, err := s.db.ReverseIterator( s.lbKey(1), append(s.lbKey(1<<63-1), byte(0x00)), @@ -154,13 +154,13 @@ func (s *dbs) LastLightBlockHeight() (int64, error) { return s.decodeLbKey(itr.Key()) } - return -1, itr.Error() + return 0, itr.Error() } // FirstLightBlockHeight returns the first LightBlock height stored. // // Safe for concurrent use by multiple goroutines. -func (s *dbs) FirstLightBlockHeight() (int64, error) { +func (s *dbs) FirstLightBlockHeight() (uint64, error) { itr, err := s.db.Iterator( s.lbKey(1), append(s.lbKey(1<<63-1), byte(0x00)), @@ -174,14 +174,14 @@ func (s *dbs) FirstLightBlockHeight() (int64, error) { return s.decodeLbKey(itr.Key()) } - return -1, itr.Error() + return 0, itr.Error() } // LightBlockBefore iterates over light blocks until it finds a block before // the given height. It returns ErrLightBlockNotFound if no such block exists. // // Safe for concurrent use by multiple goroutines. -func (s *dbs) LightBlockBefore(height int64) (*types.LightBlock, error) { +func (s *dbs) LightBlockBefore(height uint64) (*types.LightBlock, error) { if height <= 0 { panic("negative or zero height") } @@ -286,7 +286,7 @@ func (s *dbs) sizeKey() []byte { return key } -func (s *dbs) lbKey(height int64) []byte { +func (s *dbs) lbKey(height uint64) []byte { key, err := orderedcode.Append(nil, prefixLightBlock, height) if err != nil { panic(err) @@ -294,7 +294,7 @@ func (s *dbs) lbKey(height int64) []byte { return key } -func (s *dbs) decodeLbKey(key []byte) (height int64, err error) { +func (s *dbs) decodeLbKey(key []byte) (height uint64, err error) { var lightBlockPrefix int64 remaining, err := orderedcode.Parse(string(key), &lightBlockPrefix, &height) if err != nil { diff --git a/light/store/db/db_test.go b/light/store/db/db_test.go index 6d9b2e27a..7b68f1815 100644 --- a/light/store/db/db_test.go +++ b/light/store/db/db_test.go @@ -30,7 +30,7 @@ func TestLast_FirstLightBlockHeight(t *testing.T) { assert.EqualValues(t, -1, height) // 1 key - err = dbStore.SaveLightBlock(randLightBlock(int64(1))) + err = dbStore.SaveLightBlock(randLightBlock(uint64(1))) require.NoError(t, err) height, err = dbStore.LastLightBlockHeight() @@ -80,7 +80,7 @@ func Test_LightBlockBefore(t *testing.T) { _, _ = dbStore.LightBlockBefore(100) }) - err := dbStore.SaveLightBlock(randLightBlock(int64(2))) + err := dbStore.SaveLightBlock(randLightBlock(uint64(2))) require.NoError(t, err) h, err := dbStore.LightBlockBefore(3) @@ -117,7 +117,7 @@ func Test_Prune(t *testing.T) { // Multiple headers for i := 1; i <= 10; i++ { - err = dbStore.SaveLightBlock(randLightBlock(int64(i))) + err = dbStore.SaveLightBlock(randLightBlock(uint64(i))) require.NoError(t, err) } @@ -134,9 +134,9 @@ func Test_Concurrency(t *testing.T) { dbStore := New(dbm.NewMemDB()) var wg sync.WaitGroup - for i := 1; i <= 100; i++ { + for i := uint64(1); i <= 100; i++ { wg.Add(1) - go func(i int64) { + go func(i uint64) { defer wg.Done() err := dbStore.SaveLightBlock(randLightBlock(i)) @@ -176,13 +176,13 @@ func Test_Concurrency(t *testing.T) { } } - }(int64(i)) + }(i) } wg.Wait() } -func randLightBlock(height int64) *types.LightBlock { +func randLightBlock(height uint64) *types.LightBlock { vals, _ := types.RandValidatorSet(2, 1) return &types.LightBlock{ SignedHeader: &types.SignedHeader{ diff --git a/proto/tendermint/abci/types.proto b/proto/tendermint/abci/types.proto index 26f04abd6..3373d2e80 100644 --- a/proto/tendermint/abci/types.proto +++ b/proto/tendermint/abci/types.proto @@ -58,13 +58,13 @@ message RequestInitChain { tendermint.types.ConsensusParams consensus_params = 3; repeated ValidatorUpdate validators = 4 [(gogoproto.nullable) = false]; bytes app_state_bytes = 5; - int64 initial_height = 6; + uint64 initial_height = 6; } message RequestQuery { bytes data = 1; string path = 2; - int64 height = 3; + uint64 height = 3; bool prove = 4; } diff --git a/rpc/client/rpc_test.go b/rpc/client/rpc_test.go index 7232ed9dd..f6ee80451 100644 --- a/rpc/client/rpc_test.go +++ b/rpc/client/rpc_test.go @@ -172,7 +172,7 @@ func TestGenesisAndValidators(t *testing.T) { gval := gen.Genesis.Validators[0] // get the current validators - h := int64(1) + h := uint64(1) vals, err := c.Validators(context.Background(), &h, nil, nil) require.Nil(t, err, "%d: %+v", i, err) require.Equal(t, 1, len(vals.Validators)) @@ -604,8 +604,8 @@ func TestTxSearch(t *testing.T) { // check pagination perPage = 3 var ( - seen = map[int64]bool{} - maxHeight int64 + seen = map[uint64]bool{} + maxHeight uint64 pages = int(math.Ceil(float64(txCount) / float64(perPage))) ) @@ -658,7 +658,7 @@ func testBatchedJSONRPCCalls(t *testing.T, c *rpchttp.HTTP) { bresult2, ok := bresults[1].(*ctypes.ResultBroadcastTxCommit) require.True(t, ok) require.Equal(t, *bresult2, *r2) - apph := tmmath.MaxInt64(bresult1.Height, bresult2.Height) + 1 + apph := tmmath.MaxUint64(bresult1.Height, bresult2.Height) + 1 err = client.WaitForHeight(c, apph, nil) require.NoError(t, err) diff --git a/rpc/client/types.go b/rpc/client/types.go index 6a23fa450..062201b38 100644 --- a/rpc/client/types.go +++ b/rpc/client/types.go @@ -3,7 +3,7 @@ package client // ABCIQueryOptions can be used to provide options for ABCIQuery call other // than the DefaultABCIQueryOptions. type ABCIQueryOptions struct { - Height int64 + Height uint64 Prove bool } diff --git a/rpc/core/abci.go b/rpc/core/abci.go index 65dcf13e2..0c0e19ec8 100644 --- a/rpc/core/abci.go +++ b/rpc/core/abci.go @@ -14,7 +14,7 @@ func ABCIQuery( ctx *rpctypes.Context, path string, data bytes.HexBytes, - height int64, + height uint64, prove bool, ) (*ctypes.ResultABCIQuery, error) { resQuery, err := env.ProxyAppQuery.QuerySync(ctx.Context(), abci.RequestQuery{ diff --git a/rpc/core/blocks_test.go b/rpc/core/blocks_test.go index ac5807c5d..58a557be7 100644 --- a/rpc/core/blocks_test.go +++ b/rpc/core/blocks_test.go @@ -117,7 +117,7 @@ type mockBlockStore struct { func (mockBlockStore) Base() uint64 { return 1 } func (store mockBlockStore) Height() uint64 { return store.height } -func (store mockBlockStore) Size() int64 { return int64(store.height) } +func (store mockBlockStore) Size() uint64 { return store.height } func (mockBlockStore) LoadBaseMeta() *types.BlockMeta { return nil } func (mockBlockStore) LoadBlockMeta(height uint64) *types.BlockMeta { return nil } func (mockBlockStore) LoadBlock(height uint64) *types.Block { return nil } diff --git a/state/mocks/store.go b/state/mocks/store.go index d1e3a3746..a3f7ead1f 100644 --- a/state/mocks/store.go +++ b/state/mocks/store.go @@ -52,11 +52,11 @@ func (_m *Store) Load() (state.State, error) { } // LoadABCIResponses provides a mock function with given fields: _a0 -func (_m *Store) LoadABCIResponses(_a0 int64) (*tendermintstate.ABCIResponses, error) { +func (_m *Store) LoadABCIResponses(_a0 uint64) (*tendermintstate.ABCIResponses, error) { ret := _m.Called(_a0) var r0 *tendermintstate.ABCIResponses - if rf, ok := ret.Get(0).(func(int64) *tendermintstate.ABCIResponses); ok { + if rf, ok := ret.Get(0).(func(uint64) *tendermintstate.ABCIResponses); ok { r0 = rf(_a0) } else { if ret.Get(0) != nil { @@ -65,7 +65,7 @@ func (_m *Store) LoadABCIResponses(_a0 int64) (*tendermintstate.ABCIResponses, e } var r1 error - if rf, ok := ret.Get(1).(func(int64) error); ok { + if rf, ok := ret.Get(1).(func(uint64) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) @@ -75,18 +75,18 @@ func (_m *Store) LoadABCIResponses(_a0 int64) (*tendermintstate.ABCIResponses, e } // LoadConsensusParams provides a mock function with given fields: _a0 -func (_m *Store) LoadConsensusParams(_a0 int64) (types.ConsensusParams, error) { +func (_m *Store) LoadConsensusParams(_a0 uint64) (types.ConsensusParams, error) { ret := _m.Called(_a0) var r0 types.ConsensusParams - if rf, ok := ret.Get(0).(func(int64) types.ConsensusParams); ok { + if rf, ok := ret.Get(0).(func(uint64) types.ConsensusParams); ok { r0 = rf(_a0) } else { r0 = ret.Get(0).(types.ConsensusParams) } var r1 error - if rf, ok := ret.Get(1).(func(int64) error); ok { + if rf, ok := ret.Get(1).(func(uint64) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) @@ -138,11 +138,11 @@ func (_m *Store) LoadFromDBOrGenesisFile(_a0 string) (state.State, error) { } // LoadValidators provides a mock function with given fields: _a0 -func (_m *Store) LoadValidators(_a0 int64) (*types.ValidatorSet, error) { +func (_m *Store) LoadValidators(_a0 uint64) (*types.ValidatorSet, error) { ret := _m.Called(_a0) var r0 *types.ValidatorSet - if rf, ok := ret.Get(0).(func(int64) *types.ValidatorSet); ok { + if rf, ok := ret.Get(0).(func(uint64) *types.ValidatorSet); ok { r0 = rf(_a0) } else { if ret.Get(0) != nil { @@ -151,7 +151,7 @@ func (_m *Store) LoadValidators(_a0 int64) (*types.ValidatorSet, error) { } var r1 error - if rf, ok := ret.Get(1).(func(int64) error); ok { + if rf, ok := ret.Get(1).(func(uint64) error); ok { r1 = rf(_a0) } else { r1 = ret.Error(1) @@ -161,11 +161,11 @@ func (_m *Store) LoadValidators(_a0 int64) (*types.ValidatorSet, error) { } // PruneStates provides a mock function with given fields: _a0 -func (_m *Store) PruneStates(_a0 int64) error { +func (_m *Store) PruneStates(_a0 uint64) error { ret := _m.Called(_a0) var r0 error - if rf, ok := ret.Get(0).(func(int64) error); ok { + if rf, ok := ret.Get(0).(func(uint64) error); ok { r0 = rf(_a0) } else { r0 = ret.Error(0) @@ -189,11 +189,11 @@ func (_m *Store) Save(_a0 state.State) error { } // SaveABCIResponses provides a mock function with given fields: _a0, _a1 -func (_m *Store) SaveABCIResponses(_a0 int64, _a1 *tendermintstate.ABCIResponses) error { +func (_m *Store) SaveABCIResponses(_a0 uint64, _a1 *tendermintstate.ABCIResponses) error { ret := _m.Called(_a0, _a1) var r0 error - if rf, ok := ret.Get(0).(func(int64, *tendermintstate.ABCIResponses) error); ok { + if rf, ok := ret.Get(0).(func(uint64, *tendermintstate.ABCIResponses) error); ok { r0 = rf(_a0, _a1) } else { r0 = ret.Error(0)