feat: Integrate tendermint Block endpoints into the cli (#14659)

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
cipherZ
2023-02-14 19:23:45 +01:00
committed by GitHub
co-authored by Aleksandr Bezobchuk Julien Robert
parent cb23af6d97
commit 86eca4c72b
20 changed files with 1876 additions and 321 deletions
+445 -58
View File
@@ -6,6 +6,7 @@ package types
import (
fmt "fmt"
types1 "github.com/cometbft/cometbft/abci/types"
types2 "github.com/cometbft/cometbft/proto/tendermint/types"
types "github.com/cosmos/cosmos-sdk/codec/types"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
@@ -619,6 +620,96 @@ func (m *SearchTxsResult) GetTxs() []*TxResponse {
return nil
}
// SearchBlocksResult defines a structure for querying blocks pageable
type SearchBlocksResult struct {
// Count of all blocks
TotalCount int64 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
// Count of blocks in current page
Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
// Index of current page, start from 1
PageNumber int64 `protobuf:"varint,3,opt,name=page_number,json=pageNumber,proto3" json:"page_number,omitempty"`
// Count of total pages
PageTotal int64 `protobuf:"varint,4,opt,name=page_total,json=pageTotal,proto3" json:"page_total,omitempty"`
// Max count blocks per page
Limit int64 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"`
// List of blocks in current page
Blocks []*types2.Block `protobuf:"bytes,6,rep,name=blocks,proto3" json:"blocks,omitempty"`
}
func (m *SearchBlocksResult) Reset() { *m = SearchBlocksResult{} }
func (*SearchBlocksResult) ProtoMessage() {}
func (*SearchBlocksResult) Descriptor() ([]byte, []int) {
return fileDescriptor_4e37629bc7eb0df8, []int{10}
}
func (m *SearchBlocksResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *SearchBlocksResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_SearchBlocksResult.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *SearchBlocksResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_SearchBlocksResult.Merge(m, src)
}
func (m *SearchBlocksResult) XXX_Size() int {
return m.Size()
}
func (m *SearchBlocksResult) XXX_DiscardUnknown() {
xxx_messageInfo_SearchBlocksResult.DiscardUnknown(m)
}
var xxx_messageInfo_SearchBlocksResult proto.InternalMessageInfo
func (m *SearchBlocksResult) GetTotalCount() int64 {
if m != nil {
return m.TotalCount
}
return 0
}
func (m *SearchBlocksResult) GetCount() int64 {
if m != nil {
return m.Count
}
return 0
}
func (m *SearchBlocksResult) GetPageNumber() int64 {
if m != nil {
return m.PageNumber
}
return 0
}
func (m *SearchBlocksResult) GetPageTotal() int64 {
if m != nil {
return m.PageTotal
}
return 0
}
func (m *SearchBlocksResult) GetLimit() int64 {
if m != nil {
return m.Limit
}
return 0
}
func (m *SearchBlocksResult) GetBlocks() []*types2.Block {
if m != nil {
return m.Blocks
}
return nil
}
func init() {
proto.RegisterType((*TxResponse)(nil), "cosmos.base.abci.v1beta1.TxResponse")
proto.RegisterType((*ABCIMessageLog)(nil), "cosmos.base.abci.v1beta1.ABCIMessageLog")
@@ -630,6 +721,7 @@ func init() {
proto.RegisterType((*MsgData)(nil), "cosmos.base.abci.v1beta1.MsgData")
proto.RegisterType((*TxMsgData)(nil), "cosmos.base.abci.v1beta1.TxMsgData")
proto.RegisterType((*SearchTxsResult)(nil), "cosmos.base.abci.v1beta1.SearchTxsResult")
proto.RegisterType((*SearchBlocksResult)(nil), "cosmos.base.abci.v1beta1.SearchBlocksResult")
}
func init() {
@@ -637,64 +729,68 @@ func init() {
}
var fileDescriptor_4e37629bc7eb0df8 = []byte{
// 909 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xcd, 0x6f, 0x1b, 0x45,
0x14, 0xf7, 0xda, 0xdb, 0x75, 0x3c, 0x8e, 0x29, 0x1a, 0x45, 0xe9, 0xa4, 0x80, 0x6d, 0xdc, 0x22,
0x59, 0x48, 0xac, 0xd5, 0xb4, 0x42, 0xb4, 0xa7, 0xd6, 0xe1, 0x2b, 0x52, 0xcb, 0x61, 0xe3, 0x0a,
0x89, 0x8b, 0x35, 0xb6, 0xa7, 0xe3, 0x55, 0xbd, 0x3b, 0xd6, 0xce, 0x6c, 0xb2, 0xb9, 0x71, 0x83,
0x23, 0x27, 0xce, 0x5c, 0xe1, 0x2f, 0xe9, 0x81, 0x43, 0x8e, 0x3d, 0x54, 0x01, 0x92, 0x1b, 0x7f,
0x05, 0x7a, 0x6f, 0xc6, 0x1f, 0x25, 0x75, 0xd5, 0x93, 0xdf, 0xfc, 0xde, 0x87, 0xdf, 0xfb, 0xbd,
0xdf, 0xce, 0x90, 0x5b, 0x63, 0xa5, 0x13, 0xa5, 0x7b, 0x23, 0xae, 0x45, 0x8f, 0x8f, 0xc6, 0x71,
0xef, 0xf8, 0xce, 0x48, 0x18, 0x7e, 0x07, 0x0f, 0xe1, 0x3c, 0x53, 0x46, 0x51, 0x66, 0x83, 0x42,
0x08, 0x0a, 0x11, 0x77, 0x41, 0x37, 0x77, 0xa4, 0x92, 0x0a, 0x83, 0x7a, 0x60, 0xd9, 0xf8, 0x9b,
0x1f, 0x18, 0x91, 0x4e, 0x44, 0x96, 0xc4, 0xa9, 0xb1, 0x35, 0xcd, 0xe9, 0x5c, 0x68, 0xe7, 0xdc,
0x93, 0x4a, 0xc9, 0x99, 0xe8, 0xe1, 0x69, 0x94, 0x3f, 0xeb, 0xf1, 0xf4, 0xd4, 0xba, 0x3a, 0x7f,
0x56, 0x08, 0x19, 0x14, 0x91, 0xd0, 0x73, 0x95, 0x6a, 0x41, 0x77, 0x49, 0x30, 0x15, 0xb1, 0x9c,
0x1a, 0xe6, 0xb5, 0xbd, 0x6e, 0x25, 0x72, 0x27, 0xda, 0x21, 0x81, 0x29, 0xa6, 0x5c, 0x4f, 0x59,
0xb9, 0xed, 0x75, 0x6b, 0x7d, 0x72, 0x71, 0xde, 0x0a, 0x06, 0xc5, 0xb7, 0x5c, 0x4f, 0x23, 0xe7,
0xa1, 0x1f, 0x92, 0xda, 0x58, 0x4d, 0x84, 0x9e, 0xf3, 0xb1, 0x60, 0x15, 0x08, 0x8b, 0x56, 0x00,
0xa5, 0xc4, 0x87, 0x03, 0xf3, 0xdb, 0x5e, 0xb7, 0x11, 0xa1, 0x0d, 0xd8, 0x84, 0x1b, 0xce, 0xae,
0x61, 0x30, 0xda, 0xf4, 0x06, 0xa9, 0x66, 0xfc, 0x64, 0x38, 0x53, 0x92, 0x05, 0x08, 0x07, 0x19,
0x3f, 0x79, 0xac, 0x24, 0x7d, 0x4a, 0xfc, 0x99, 0x92, 0x9a, 0x55, 0xdb, 0x95, 0x6e, 0x7d, 0xbf,
0x1b, 0x6e, 0x22, 0x28, 0x7c, 0xd4, 0x3f, 0x38, 0x7c, 0x22, 0xb4, 0xe6, 0x52, 0x3c, 0x56, 0xb2,
0x7f, 0xe3, 0xc5, 0x79, 0xab, 0xf4, 0xc7, 0x5f, 0xad, 0xeb, 0xaf, 0xe3, 0x3a, 0xc2, 0x72, 0xd0,
0x43, 0x9c, 0x3e, 0x53, 0x6c, 0xcb, 0xf6, 0x00, 0x36, 0xfd, 0x88, 0x10, 0xc9, 0xf5, 0xf0, 0x84,
0xa7, 0x46, 0x4c, 0x58, 0x0d, 0x99, 0xa8, 0x49, 0xae, 0xbf, 0x47, 0x80, 0xee, 0x91, 0x2d, 0x70,
0xe7, 0x5a, 0x4c, 0x18, 0x41, 0x67, 0x55, 0x72, 0xfd, 0x54, 0x8b, 0x09, 0xbd, 0x4d, 0xca, 0xa6,
0x60, 0xf5, 0xb6, 0xd7, 0xad, 0xef, 0xef, 0x84, 0x96, 0xf6, 0x70, 0x41, 0x7b, 0xf8, 0x28, 0x3d,
0x8d, 0xca, 0xa6, 0x00, 0xa6, 0x4c, 0x9c, 0x08, 0x6d, 0x78, 0x32, 0x67, 0xdb, 0x96, 0xa9, 0x25,
0x40, 0xef, 0x91, 0x40, 0x1c, 0x8b, 0xd4, 0x68, 0xd6, 0xc0, 0x51, 0x77, 0xc3, 0xd5, 0x6e, 0xed,
0xa4, 0x5f, 0x81, 0xbb, 0xef, 0xc3, 0x60, 0x91, 0x8b, 0x7d, 0xe0, 0xff, 0xfc, 0x5b, 0xab, 0xd4,
0xf9, 0xdd, 0x23, 0xef, 0xbd, 0x3e, 0x27, 0xfd, 0x94, 0xd4, 0x12, 0x2d, 0x87, 0x71, 0x3a, 0x11,
0x05, 0x6e, 0xb5, 0xd1, 0x6f, 0xfc, 0x7b, 0xde, 0x5a, 0x81, 0xd1, 0x56, 0xa2, 0xe5, 0x21, 0x58,
0xf4, 0x7d, 0x52, 0x01, 0xe2, 0x71, 0xc7, 0x11, 0x98, 0xf4, 0x68, 0xd9, 0x4c, 0x05, 0x9b, 0xf9,
0x64, 0x33, 0xef, 0x47, 0x26, 0x8b, 0x53, 0x69, 0x7b, 0xdb, 0x71, 0xa4, 0x6f, 0xaf, 0x81, 0x7a,
0xd5, 0xeb, 0x8f, 0xaf, 0xda, 0x5e, 0x27, 0x23, 0xf5, 0x35, 0x2f, 0x2c, 0x02, 0x34, 0x8b, 0x2d,
0xd6, 0x22, 0xb4, 0xe9, 0x21, 0x21, 0xdc, 0x98, 0x2c, 0x1e, 0xe5, 0x46, 0x68, 0x56, 0xc6, 0x0e,
0x6e, 0xbd, 0x65, 0xf3, 0x8b, 0x58, 0xc7, 0xcd, 0x5a, 0xb2, 0xfb, 0xcf, 0xbb, 0xa4, 0xb6, 0x0c,
0x82, 0x69, 0x9f, 0x8b, 0x53, 0xf7, 0x87, 0x60, 0xd2, 0x1d, 0x72, 0xed, 0x98, 0xcf, 0x72, 0xe1,
0x18, 0xb0, 0x87, 0xce, 0x01, 0xa9, 0x7e, 0xc3, 0xf5, 0xe1, 0x55, 0x65, 0x40, 0xa6, 0xbf, 0x49,
0x19, 0x65, 0x74, 0x2e, 0x94, 0x01, 0x9b, 0x09, 0x22, 0xa1, 0xf3, 0x99, 0xa1, 0xbb, 0x4e, 0xf6,
0x90, 0xbe, 0xdd, 0x2f, 0x33, 0xcf, 0x49, 0xff, 0x2a, 0xfb, 0xf7, 0xfe, 0xc7, 0xfe, 0x3b, 0x49,
0x81, 0xde, 0x27, 0x0d, 0x58, 0x6e, 0xe6, 0x3e, 0x6a, 0xcd, 0x7c, 0x4c, 0x7e, 0xb3, 0x1e, 0xb7,
0x13, 0x2d, 0x17, 0x9f, 0xff, 0x42, 0x45, 0xbf, 0x7a, 0x84, 0x1e, 0xc5, 0x49, 0x3e, 0xe3, 0x26,
0x56, 0xe9, 0xf2, 0x72, 0xf8, 0xda, 0x4e, 0x87, 0x9f, 0x8b, 0x87, 0x12, 0xff, 0x78, 0xf3, 0x2e,
0x1c, 0x63, 0xfd, 0x2d, 0x68, 0xed, 0xec, 0xbc, 0xe5, 0x21, 0x15, 0x48, 0xe2, 0x17, 0x24, 0xc8,
0x90, 0x09, 0x1c, 0xb5, 0xbe, 0xdf, 0xde, 0x5c, 0xc5, 0x32, 0x16, 0xb9, 0xf8, 0xce, 0x43, 0x52,
0x7d, 0xa2, 0xe5, 0x97, 0x40, 0xd6, 0x1e, 0x01, 0xd9, 0x0e, 0xd7, 0x24, 0x53, 0x4d, 0xb4, 0x1c,
0x80, 0x6a, 0x16, 0xd7, 0x0a, 0x54, 0xdf, 0xb6, 0xdc, 0x3e, 0x08, 0x60, 0xfd, 0xcc, 0xeb, 0xfc,
0xe4, 0x91, 0xda, 0xa0, 0x58, 0x14, 0xb9, 0xbf, 0xdc, 0x44, 0xe5, 0xed, 0xd3, 0xb8, 0x84, 0xb5,
0x65, 0x5d, 0x21, 0xb9, 0xfc, 0xee, 0x24, 0xa3, 0x14, 0x5f, 0x79, 0xe4, 0xfa, 0x91, 0xe0, 0xd9,
0x78, 0x3a, 0x28, 0xb4, 0x53, 0x46, 0x8b, 0xd4, 0x8d, 0x32, 0x7c, 0x36, 0x1c, 0xab, 0x3c, 0x35,
0x4e, 0x5f, 0x04, 0xa1, 0x03, 0x40, 0x40, 0xa0, 0xd6, 0x65, 0xd5, 0x65, 0x0f, 0x90, 0x36, 0xe7,
0x52, 0x0c, 0xd3, 0x3c, 0x19, 0x89, 0x0c, 0xef, 0x5e, 0x3f, 0x22, 0x00, 0x7d, 0x87, 0x08, 0xc8,
0x16, 0x03, 0xb0, 0x12, 0x5e, 0xc1, 0x7e, 0x54, 0x03, 0x64, 0x00, 0x00, 0x54, 0x9d, 0xc5, 0x49,
0x6c, 0xf0, 0x22, 0xf6, 0x23, 0x7b, 0xa0, 0x9f, 0x93, 0x8a, 0x29, 0x34, 0x0b, 0x70, 0xae, 0xdb,
0x9b, 0xb9, 0x59, 0x3d, 0x1f, 0x11, 0x24, 0xd8, 0xf1, 0xfa, 0x0f, 0x5f, 0xfe, 0xd3, 0x2c, 0xbd,
0xb8, 0x68, 0x7a, 0x67, 0x17, 0x4d, 0xef, 0xef, 0x8b, 0xa6, 0xf7, 0xcb, 0x65, 0xb3, 0x74, 0x76,
0xd9, 0x2c, 0xbd, 0xbc, 0x6c, 0x96, 0x7e, 0xe8, 0xc8, 0xd8, 0x4c, 0xf3, 0x51, 0x38, 0x56, 0x49,
0xcf, 0x3d, 0x87, 0xf6, 0xe7, 0x33, 0x3d, 0x79, 0x6e, 0xdf, 0xae, 0x51, 0x80, 0x14, 0xde, 0xfd,
0x2f, 0x00, 0x00, 0xff, 0xff, 0xa7, 0xf1, 0x8e, 0x98, 0x30, 0x07, 0x00, 0x00,
// 968 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x4f, 0x6f, 0x1b, 0xb7,
0x13, 0xd5, 0x6a, 0x37, 0x2b, 0x8b, 0xb2, 0x7e, 0xf9, 0x81, 0x30, 0x6c, 0x3a, 0x4d, 0x25, 0x55,
0x49, 0x01, 0xa1, 0x40, 0x57, 0x88, 0x13, 0x14, 0x4d, 0x4e, 0x89, 0xdc, 0x7f, 0x06, 0x92, 0x1e,
0xd6, 0x0a, 0x0a, 0xf4, 0x22, 0x50, 0x12, 0x43, 0x2d, 0xac, 0x5d, 0x0a, 0x4b, 0xca, 0x96, 0x6f,
0xbd, 0xb5, 0xc7, 0x9e, 0x7a, 0xee, 0xb5, 0xfd, 0x24, 0x39, 0xf4, 0xe0, 0xa3, 0x0f, 0x81, 0xdb,
0xda, 0xb7, 0x7e, 0x8a, 0x62, 0x86, 0xd4, 0x9f, 0xd4, 0x95, 0x9b, 0x93, 0x87, 0x6f, 0x86, 0xd4,
0xbc, 0x37, 0x6f, 0x49, 0x93, 0x7b, 0x03, 0xa5, 0x53, 0xa5, 0xdb, 0x7d, 0xae, 0x45, 0x9b, 0xf7,
0x07, 0x49, 0xfb, 0xf8, 0x41, 0x5f, 0x18, 0xfe, 0x00, 0x17, 0xd1, 0x24, 0x57, 0x46, 0x51, 0x66,
0x8b, 0x22, 0x28, 0x8a, 0x10, 0x77, 0x45, 0x77, 0xb6, 0xa4, 0x92, 0x0a, 0x8b, 0xda, 0x10, 0xd9,
0xfa, 0x3b, 0xef, 0x19, 0x91, 0x0d, 0x45, 0x9e, 0x26, 0x99, 0xb1, 0x67, 0x9a, 0xd3, 0x89, 0xd0,
0x2e, 0x79, 0x77, 0x25, 0x89, 0x78, 0xbb, 0x3f, 0x56, 0x83, 0x23, 0x97, 0xdd, 0x95, 0x4a, 0xc9,
0xb1, 0x68, 0xe3, 0xaa, 0x3f, 0x7d, 0xd5, 0xe6, 0xd9, 0xa9, 0x4d, 0x35, 0x7f, 0xf3, 0x09, 0xe9,
0xce, 0x62, 0xa1, 0x27, 0x2a, 0xd3, 0x82, 0x6e, 0x93, 0x70, 0x24, 0x12, 0x39, 0x32, 0xcc, 0x6b,
0x78, 0x2d, 0x3f, 0x76, 0x2b, 0xda, 0x24, 0xa1, 0x99, 0x8d, 0xb8, 0x1e, 0xb1, 0x62, 0xc3, 0x6b,
0x95, 0x3b, 0xe4, 0xf2, 0xa2, 0x1e, 0x76, 0x67, 0x5f, 0x71, 0x3d, 0x8a, 0x5d, 0x86, 0xde, 0x25,
0xe5, 0x81, 0x1a, 0x0a, 0x3d, 0xe1, 0x03, 0xc1, 0x7c, 0x28, 0x8b, 0x97, 0x00, 0xa5, 0x24, 0x80,
0x05, 0x0b, 0x1a, 0x5e, 0xab, 0x1a, 0x63, 0x0c, 0xd8, 0x90, 0x1b, 0xce, 0x6e, 0x61, 0x31, 0xc6,
0x74, 0x87, 0x94, 0x72, 0x7e, 0xd2, 0x1b, 0x2b, 0xc9, 0x42, 0x84, 0xc3, 0x9c, 0x9f, 0x3c, 0x57,
0x92, 0xbe, 0x24, 0xc1, 0x58, 0x49, 0xcd, 0x4a, 0x0d, 0xbf, 0x55, 0xd9, 0x6b, 0x45, 0xeb, 0xe4,
0x8b, 0x9e, 0x75, 0xf6, 0x0f, 0x5e, 0x08, 0xad, 0xb9, 0x14, 0xcf, 0x95, 0xec, 0xec, 0xbc, 0xbe,
0xa8, 0x17, 0x7e, 0xfd, 0xbd, 0x7e, 0xfb, 0x6d, 0x5c, 0xc7, 0x78, 0x1c, 0xf4, 0x90, 0x64, 0xaf,
0x14, 0xdb, 0xb0, 0x3d, 0x40, 0x4c, 0xdf, 0x27, 0x44, 0x72, 0xdd, 0x3b, 0xe1, 0x99, 0x11, 0x43,
0x56, 0x46, 0x25, 0xca, 0x92, 0xeb, 0x6f, 0x10, 0xa0, 0xbb, 0x64, 0x03, 0xd2, 0x53, 0x2d, 0x86,
0x8c, 0x60, 0xb2, 0x24, 0xb9, 0x7e, 0xa9, 0xc5, 0x90, 0xde, 0x27, 0x45, 0x33, 0x63, 0x95, 0x86,
0xd7, 0xaa, 0xec, 0x6d, 0x45, 0x56, 0xf6, 0x68, 0x2e, 0x7b, 0xf4, 0x2c, 0x3b, 0x8d, 0x8b, 0x66,
0x06, 0x4a, 0x99, 0x24, 0x15, 0xda, 0xf0, 0x74, 0xc2, 0x36, 0xad, 0x52, 0x0b, 0x80, 0x3e, 0x22,
0xa1, 0x38, 0x16, 0x99, 0xd1, 0xac, 0x8a, 0x54, 0xb7, 0xa3, 0xe5, 0x70, 0x2d, 0xd3, 0xcf, 0x21,
0xdd, 0x09, 0x80, 0x58, 0xec, 0x6a, 0x9f, 0x04, 0x3f, 0xfc, 0x5c, 0x2f, 0x34, 0x7f, 0xf1, 0xc8,
0xff, 0xde, 0xe6, 0x49, 0x3f, 0x22, 0xe5, 0x54, 0xcb, 0x5e, 0x92, 0x0d, 0xc5, 0x0c, 0xa7, 0x5a,
0xed, 0x54, 0xff, 0xba, 0xa8, 0x2f, 0xc1, 0x78, 0x23, 0xd5, 0xf2, 0x00, 0x22, 0xfa, 0x7f, 0xe2,
0x83, 0xf0, 0x38, 0xe3, 0x18, 0x42, 0x7a, 0xb8, 0x68, 0xc6, 0xc7, 0x66, 0x3e, 0x5c, 0xaf, 0xfb,
0xa1, 0xc9, 0x93, 0x4c, 0xda, 0xde, 0xb6, 0x9c, 0xe8, 0x9b, 0x2b, 0xa0, 0x5e, 0xf6, 0xfa, 0xdd,
0x9b, 0x86, 0xd7, 0xcc, 0x49, 0x65, 0x25, 0x0b, 0x83, 0x00, 0xe7, 0x62, 0x8b, 0xe5, 0x18, 0x63,
0x7a, 0x40, 0x08, 0x37, 0x26, 0x4f, 0xfa, 0x53, 0x23, 0x34, 0x2b, 0x62, 0x07, 0xf7, 0x6e, 0x98,
0xfc, 0xbc, 0xd6, 0x69, 0xb3, 0xb2, 0xd9, 0xfd, 0xe6, 0x43, 0x52, 0x5e, 0x14, 0x01, 0xdb, 0x23,
0x71, 0xea, 0x7e, 0x10, 0x42, 0xba, 0x45, 0x6e, 0x1d, 0xf3, 0xf1, 0x54, 0x38, 0x05, 0xec, 0xa2,
0xb9, 0x4f, 0x4a, 0x5f, 0x72, 0x7d, 0x70, 0xdd, 0x19, 0xb0, 0x33, 0x58, 0xe7, 0x8c, 0x22, 0x26,
0xe7, 0xce, 0x80, 0xc9, 0x84, 0xb1, 0xd0, 0xd3, 0xb1, 0xa1, 0xdb, 0xce, 0xf6, 0xb0, 0x7d, 0xb3,
0x53, 0x64, 0x9e, 0xb3, 0xfe, 0x75, 0xf5, 0x1f, 0xfd, 0x43, 0xfd, 0x77, 0xb2, 0x02, 0x7d, 0x4c,
0xaa, 0x30, 0xdc, 0xdc, 0x7d, 0xd4, 0x9a, 0x05, 0xb8, 0xf9, 0xdf, 0xfd, 0xb8, 0x99, 0x6a, 0x39,
0xff, 0xfc, 0xe7, 0x2e, 0xfa, 0xc9, 0x23, 0xf4, 0x30, 0x49, 0xa7, 0x63, 0x6e, 0x12, 0x95, 0x2d,
0x2e, 0x87, 0x2f, 0x2c, 0x3b, 0xfc, 0x5c, 0x3c, 0xb4, 0xf8, 0x07, 0xeb, 0x67, 0xe1, 0x14, 0xeb,
0x6c, 0x40, 0x6b, 0x67, 0x17, 0x75, 0x0f, 0xa5, 0x40, 0x11, 0x3f, 0x25, 0x61, 0x8e, 0x4a, 0x20,
0xd5, 0xca, 0x5e, 0x63, 0xfd, 0x29, 0x56, 0xb1, 0xd8, 0xd5, 0x37, 0x9f, 0x92, 0xd2, 0x0b, 0x2d,
0x3f, 0x03, 0xb1, 0x76, 0x09, 0xd8, 0xb6, 0xb7, 0x62, 0x99, 0x52, 0xaa, 0x65, 0x17, 0x5c, 0x33,
0xbf, 0x56, 0xe0, 0xf4, 0x4d, 0xab, 0xed, 0x93, 0x10, 0xc6, 0xcf, 0xbc, 0xe6, 0xf7, 0x1e, 0x29,
0x77, 0x67, 0xf3, 0x43, 0x1e, 0x2f, 0x26, 0xe1, 0xdf, 0xcc, 0xc6, 0x6d, 0x58, 0x19, 0xd6, 0x35,
0x91, 0x8b, 0xef, 0x2e, 0x32, 0x5a, 0xf1, 0x8d, 0x47, 0x6e, 0x1f, 0x0a, 0x9e, 0x0f, 0x46, 0xdd,
0x99, 0x76, 0xce, 0xa8, 0x93, 0x8a, 0x51, 0x86, 0x8f, 0x7b, 0x03, 0x35, 0xcd, 0x8c, 0xf3, 0x17,
0x41, 0x68, 0x1f, 0x10, 0x30, 0xa8, 0x4d, 0x59, 0x77, 0xd9, 0x05, 0x6c, 0x9b, 0x70, 0x29, 0x7a,
0xd9, 0x34, 0xed, 0x8b, 0x1c, 0xef, 0xde, 0x20, 0x26, 0x00, 0x7d, 0x8d, 0x08, 0xd8, 0x16, 0x0b,
0xf0, 0x24, 0xbc, 0x82, 0x83, 0xb8, 0x0c, 0x48, 0x17, 0x00, 0x38, 0x75, 0x9c, 0xa4, 0x89, 0xc1,
0x8b, 0x38, 0x88, 0xed, 0x82, 0x7e, 0x42, 0x7c, 0x33, 0xd3, 0x2c, 0x44, 0x5e, 0xf7, 0xd7, 0x6b,
0xb3, 0x7c, 0x3e, 0x62, 0xd8, 0xe0, 0xe8, 0x9d, 0x83, 0x87, 0x90, 0x5e, 0x07, 0x5e, 0xa2, 0x1b,
0x18, 0xfa, 0xeb, 0x19, 0xfa, 0x37, 0x30, 0xf4, 0xff, 0x83, 0xa1, 0xbf, 0x96, 0xa1, 0x3f, 0x67,
0xd8, 0x26, 0x21, 0x3e, 0x93, 0x73, 0x92, 0x3b, 0xab, 0x9f, 0x97, 0x7d, 0x5e, 0xb1, 0xf9, 0xd8,
0x95, 0x59, 0x6a, 0x9d, 0xa7, 0xe7, 0x7f, 0xd6, 0x0a, 0xaf, 0x2f, 0x6b, 0xde, 0xd9, 0x65, 0xcd,
0xfb, 0xe3, 0xb2, 0xe6, 0xfd, 0x78, 0x55, 0x2b, 0x9c, 0x5d, 0xd5, 0x0a, 0xe7, 0x57, 0xb5, 0xc2,
0xb7, 0x4d, 0x99, 0x98, 0xd1, 0xb4, 0x1f, 0x0d, 0x54, 0xda, 0x76, 0xff, 0x07, 0xd8, 0x3f, 0x1f,
0xeb, 0xe1, 0x91, 0x7d, 0x9c, 0xfb, 0x21, 0xba, 0xe3, 0xe1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff,
0x4d, 0x51, 0x55, 0xd9, 0x29, 0x08, 0x00, 0x00,
}
func (m *TxResponse) Marshal() (dAtA []byte, err error) {
@@ -1245,6 +1341,68 @@ func (m *SearchTxsResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *SearchBlocksResult) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *SearchBlocksResult) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *SearchBlocksResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.Blocks) > 0 {
for iNdEx := len(m.Blocks) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Blocks[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintAbci(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x32
}
}
if m.Limit != 0 {
i = encodeVarintAbci(dAtA, i, uint64(m.Limit))
i--
dAtA[i] = 0x28
}
if m.PageTotal != 0 {
i = encodeVarintAbci(dAtA, i, uint64(m.PageTotal))
i--
dAtA[i] = 0x20
}
if m.PageNumber != 0 {
i = encodeVarintAbci(dAtA, i, uint64(m.PageNumber))
i--
dAtA[i] = 0x18
}
if m.Count != 0 {
i = encodeVarintAbci(dAtA, i, uint64(m.Count))
i--
dAtA[i] = 0x10
}
if m.TotalCount != 0 {
i = encodeVarintAbci(dAtA, i, uint64(m.TotalCount))
i--
dAtA[i] = 0x8
}
return len(dAtA) - i, nil
}
func encodeVarintAbci(dAtA []byte, offset int, v uint64) int {
offset -= sovAbci(v)
base := offset
@@ -1502,6 +1660,36 @@ func (m *SearchTxsResult) Size() (n int) {
return n
}
func (m *SearchBlocksResult) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.TotalCount != 0 {
n += 1 + sovAbci(uint64(m.TotalCount))
}
if m.Count != 0 {
n += 1 + sovAbci(uint64(m.Count))
}
if m.PageNumber != 0 {
n += 1 + sovAbci(uint64(m.PageNumber))
}
if m.PageTotal != 0 {
n += 1 + sovAbci(uint64(m.PageTotal))
}
if m.Limit != 0 {
n += 1 + sovAbci(uint64(m.Limit))
}
if len(m.Blocks) > 0 {
for _, e := range m.Blocks {
l = e.Size()
n += 1 + l + sovAbci(uint64(l))
}
}
return n
}
func sovAbci(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -1593,6 +1781,26 @@ func (this *SearchTxsResult) String() string {
}, "")
return s
}
func (this *SearchBlocksResult) String() string {
if this == nil {
return "nil"
}
repeatedStringForBlocks := "[]*Block{"
for _, f := range this.Blocks {
repeatedStringForBlocks += strings.Replace(fmt.Sprintf("%v", f), "Block", "types2.Block", 1) + ","
}
repeatedStringForBlocks += "}"
s := strings.Join([]string{`&SearchBlocksResult{`,
`TotalCount:` + fmt.Sprintf("%v", this.TotalCount) + `,`,
`Count:` + fmt.Sprintf("%v", this.Count) + `,`,
`PageNumber:` + fmt.Sprintf("%v", this.PageNumber) + `,`,
`PageTotal:` + fmt.Sprintf("%v", this.PageTotal) + `,`,
`Limit:` + fmt.Sprintf("%v", this.Limit) + `,`,
`Blocks:` + repeatedStringForBlocks + `,`,
`}`,
}, "")
return s
}
func valueToStringAbci(v interface{}) string {
rv := reflect.ValueOf(v)
if rv.IsNil() {
@@ -3192,6 +3400,185 @@ func (m *SearchTxsResult) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *SearchBlocksResult) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: SearchBlocksResult: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: SearchBlocksResult: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field TotalCount", wireType)
}
m.TotalCount = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.TotalCount |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType)
}
m.Count = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Count |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field PageNumber", wireType)
}
m.PageNumber = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.PageNumber |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field PageTotal", wireType)
}
m.PageTotal = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.PageTotal |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
}
m.Limit = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Limit |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Blocks", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAbci
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthAbci
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthAbci
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Blocks = append(m.Blocks, &types2.Block{})
if err := m.Blocks[len(m.Blocks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipAbci(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthAbci
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipAbci(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
+49 -2
View File
@@ -3,13 +3,13 @@ package types
import (
"encoding/hex"
"encoding/json"
"math"
"strings"
abci "github.com/cometbft/cometbft/abci/types"
coretypes "github.com/cometbft/cometbft/rpc/core/types"
"github.com/cosmos/gogoproto/proto"
cmtproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/cosmos/cosmos-sdk/codec"
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
)
@@ -83,6 +83,25 @@ func NewResponseResultTx(res *coretypes.ResultTx, anyTx *codectypes.Any, timesta
}
}
// NewResponseResultBlock returns a BlockResponse given a ResultBlock from CometBFT
func NewResponseResultBlock(res *coretypes.ResultBlock, timestamp string) *cmtproto.Block {
if res == nil {
return nil
}
blk, err := res.Block.ToProto()
if err != nil {
return nil
}
return &cmtproto.Block{
Header: blk.Header,
Data: blk.Data,
Evidence: blk.Evidence,
LastCommit: blk.LastCommit,
}
}
// NewResponseFormatBroadcastTx returns a TxResponse given a ResultBroadcastTx from tendermint
func NewResponseFormatBroadcastTx(res *coretypes.ResultBroadcastTx) *TxResponse {
if res == nil {
@@ -112,16 +131,31 @@ func (r TxResponse) Empty() bool {
}
func NewSearchTxsResult(totalCount, count, page, limit uint64, txs []*TxResponse) *SearchTxsResult {
totalPages := calcTotalPages(int64(totalCount), int64(limit))
return &SearchTxsResult{
TotalCount: totalCount,
Count: count,
PageNumber: page,
PageTotal: uint64(math.Ceil(float64(totalCount) / float64(limit))),
PageTotal: uint64(totalPages),
Limit: limit,
Txs: txs,
}
}
func NewSearchBlocksResult(totalCount, count, page, limit int64, blocks []*cmtproto.Block) *SearchBlocksResult {
totalPages := calcTotalPages(totalCount, limit)
return &SearchBlocksResult{
TotalCount: totalCount,
Count: count,
PageNumber: page,
PageTotal: totalPages,
Limit: limit,
Blocks: blocks,
}
}
// ParseABCILogs attempts to parse a stringified ABCI tx log into a slice of
// ABCIMessageLog types. It returns an error upon JSON decoding failure.
func ParseABCILogs(logs string) (res ABCIMessageLogs, err error) {
@@ -194,3 +228,16 @@ func WrapServiceResult(ctx Context, res proto.Message, err error) (*Result, erro
MsgResponses: []*codectypes.Any{any},
}, nil
}
// calculate total pages in an overflow safe manner
func calcTotalPages(totalCount int64, limit int64) int64 {
totalPages := int64(0)
if totalCount != 0 && limit != 0 {
if totalCount%limit > 0 {
totalPages = totalCount/limit + 1
} else {
totalPages = totalCount / limit
}
}
return totalPages
}
+41
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"strings"
"testing"
"time"
abci "github.com/cometbft/cometbft/abci/types"
"github.com/cometbft/cometbft/libs/bytes"
@@ -13,6 +14,8 @@ import (
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
cmtt "github.com/cometbft/cometbft/proto/tendermint/types"
cmt "github.com/cometbft/cometbft/types"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/testutil/testdata"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -139,6 +142,44 @@ txhash: "74657374"
s.Require().Equal((*sdk.TxResponse)(nil), sdk.NewResponseFormatBroadcastTx(nil))
}
func (s *resultTestSuite) TestNewSearchBlocksResult() {
got := sdk.NewSearchBlocksResult(150, 20, 2, 20, []*cmtt.Block{})
s.Require().Equal(&sdk.SearchBlocksResult{
TotalCount: 150,
Count: 20,
PageNumber: 2,
PageTotal: 8,
Limit: 20,
Blocks: []*cmtt.Block{},
}, got)
}
func (s *resultTestSuite) TestResponseResultBlock() {
timestamp := time.Now()
timestampStr := timestamp.UTC().Format(time.RFC3339)
// create a block
resultBlock := &coretypes.ResultBlock{Block: &cmt.Block{
Header: cmt.Header{
Height: 10,
Time: timestamp,
},
Evidence: cmt.EvidenceData{
Evidence: make(cmt.EvidenceList, 0),
},
}}
blk, err := resultBlock.Block.ToProto()
s.Require().NoError(err)
want := &cmtt.Block{
Header: blk.Header,
Evidence: blk.Evidence,
}
s.Require().Equal(want, sdk.NewResponseResultBlock(resultBlock, timestampStr))
}
func TestWrapServiceResult(t *testing.T) {
ctx := sdk.Context{}