syntax = "proto3"; package cosmos.base.tendermint.v1beta1; import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "google/api/annotations.proto"; import "tendermint/p2p/types.proto"; import "tendermint/types/types.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "cosmos/base/tendermint/v1beta1/types.proto"; import "cosmos_proto/cosmos.proto"; import "tendermint/types/block.proto"; import "amino/amino.proto"; option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"; // Service defines the gRPC querier service for tendermint queries. service Service { // GetNodeInfo queries the current node info. rpc GetNodeInfo(GetNodeInfoRequest) returns (GetNodeInfoResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/node_info"; } // GetSyncing queries node syncing. rpc GetSyncing(GetSyncingRequest) returns (GetSyncingResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/syncing"; } // GetLatestBlock returns the latest block. rpc GetLatestBlock(GetLatestBlockRequest) returns (GetLatestBlockResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/latest"; } // GetBlockByHeight queries block for given height. rpc GetBlockByHeight(GetBlockByHeightRequest) returns (GetBlockByHeightResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/{height}"; } // GetLatestValidatorSet queries latest validator-set. rpc GetLatestValidatorSet(GetLatestValidatorSetRequest) returns (GetLatestValidatorSetResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/latest"; } // GetValidatorSetByHeight queries validator-set at a given height. rpc GetValidatorSetByHeight(GetValidatorSetByHeightRequest) returns (GetValidatorSetByHeightResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/{height}"; } // ABCIQuery defines a query handler that supports ABCI queries directly to the // application, bypassing Tendermint completely. The ABCI query must contain // a valid and supported path, including app, custom, p2p, and store. // // Since: cosmos-sdk 0.46 rpc ABCIQuery(ABCIQueryRequest) returns (ABCIQueryResponse) { option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/abci_query"; } } // GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. message GetValidatorSetByHeightRequest { int64 height = 1; // pagination defines an pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 2; } // GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. message GetValidatorSetByHeightResponse { int64 block_height = 1; repeated Validator validators = 2; // pagination defines an pagination for the response. cosmos.base.query.v1beta1.PageResponse pagination = 3; } // GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. message GetLatestValidatorSetRequest { // pagination defines an pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 1; } // GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. message GetLatestValidatorSetResponse { int64 block_height = 1; repeated Validator validators = 2; // pagination defines an pagination for the response. cosmos.base.query.v1beta1.PageResponse pagination = 3; } // Validator is the type for the validator-set. message Validator { string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; google.protobuf.Any pub_key = 2; int64 voting_power = 3; int64 proposer_priority = 4; } // GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. message GetBlockByHeightRequest { int64 height = 1; } // GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. message GetBlockByHeightResponse { .tendermint.types.BlockID block_id = 1; // Deprecated: please use `sdk_block` instead .tendermint.types.Block block = 2; // Since: cosmos-sdk 0.47 Block sdk_block = 3; } // GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. message GetLatestBlockRequest {} // GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. message GetLatestBlockResponse { .tendermint.types.BlockID block_id = 1; // Deprecated: please use `sdk_block` instead .tendermint.types.Block block = 2; // Since: cosmos-sdk 0.47 Block sdk_block = 3; } // GetSyncingRequest is the request type for the Query/GetSyncing RPC method. message GetSyncingRequest {} // GetSyncingResponse is the response type for the Query/GetSyncing RPC method. message GetSyncingResponse { bool syncing = 1; } // GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. message GetNodeInfoRequest {} // GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. message GetNodeInfoResponse { .tendermint.p2p.DefaultNodeInfo default_node_info = 1; VersionInfo application_version = 2; } // VersionInfo is the type for the GetNodeInfoResponse message. message VersionInfo { string name = 1; string app_name = 2; string version = 3; string git_commit = 4; string build_tags = 5; string go_version = 6; repeated Module build_deps = 7; // Since: cosmos-sdk 0.43 string cosmos_sdk_version = 8; } // Module is the type for VersionInfo message Module { // module path string path = 1; // module version string version = 2; // checksum string sum = 3; } // ABCIQueryRequest defines the request structure for the ABCIQuery gRPC query. message ABCIQueryRequest { bytes data = 1; string path = 2; int64 height = 3; bool prove = 4; } // ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. // // Note: This type is a duplicate of the ResponseQuery proto type defined in // Tendermint. message ABCIQueryResponse { uint32 code = 1; // DEPRECATED: use "value" instead reserved 2; string log = 3; // nondeterministic string info = 4; // nondeterministic int64 index = 5; bytes key = 6; bytes value = 7; ProofOps proof_ops = 8; int64 height = 9; string codespace = 10; } // ProofOp defines an operation used for calculating Merkle root. The data could // be arbitrary format, providing necessary data for example neighbouring node // hash. // // Note: This type is a duplicate of the ProofOp proto type defined in Tendermint. message ProofOp { string type = 1; bytes key = 2; bytes data = 3; } // ProofOps is Merkle proof defined by the list of ProofOps. // // Note: This type is a duplicate of the ProofOps proto type defined in Tendermint. message ProofOps { repeated ProofOp ops = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; }