2020-11-25 07:58:11 -08:00
|
|
|
syntax = "proto3";
|
|
|
|
package cosmos.base.tendermint.v1beta1;
|
|
|
|
|
2022-04-25 14:54:27 -07:00
|
|
|
import "gogoproto/gogo.proto";
|
2020-12-07 05:51:38 -08:00
|
|
|
import "google/protobuf/any.proto";
|
2020-11-25 07:58:11 -08:00
|
|
|
import "google/api/annotations.proto";
|
|
|
|
import "tendermint/p2p/types.proto";
|
|
|
|
import "tendermint/types/block.proto";
|
|
|
|
import "tendermint/types/types.proto";
|
|
|
|
import "cosmos/base/query/v1beta1/pagination.proto";
|
2021-09-21 02:46:29 -07:00
|
|
|
import "cosmos_proto/cosmos.proto";
|
2020-11-25 07:58:11 -08:00
|
|
|
|
2020-11-30 08:59:35 -08:00
|
|
|
option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/tmservice";
|
2020-11-25 07:58:11 -08:00
|
|
|
|
|
|
|
// 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";
|
|
|
|
}
|
2022-04-25 14:54:27 -07:00
|
|
|
|
2020-11-25 07:58:11 -08:00
|
|
|
// GetSyncing queries node syncing.
|
|
|
|
rpc GetSyncing(GetSyncingRequest) returns (GetSyncingResponse) {
|
|
|
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/syncing";
|
|
|
|
}
|
2022-04-25 14:54:27 -07:00
|
|
|
|
2020-11-25 07:58:11 -08:00
|
|
|
// GetLatestBlock returns the latest block.
|
|
|
|
rpc GetLatestBlock(GetLatestBlockRequest) returns (GetLatestBlockResponse) {
|
|
|
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/latest";
|
|
|
|
}
|
2022-04-25 14:54:27 -07:00
|
|
|
|
2020-11-25 07:58:11 -08:00
|
|
|
// 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) {
|
2021-01-01 08:45:09 -08:00
|
|
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/latest";
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
2022-04-25 14:54:27 -07:00
|
|
|
|
2020-11-25 07:58:11 -08:00
|
|
|
// GetValidatorSetByHeight queries validator-set at a given height.
|
|
|
|
rpc GetValidatorSetByHeight(GetValidatorSetByHeightRequest) returns (GetValidatorSetByHeightResponse) {
|
2021-01-01 08:45:09 -08:00
|
|
|
option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/{height}";
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
2022-04-25 14:54:27 -07:00
|
|
|
|
|
|
|
// 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";
|
|
|
|
}
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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 {
|
2021-09-21 02:46:29 -07:00
|
|
|
string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2020-12-07 05:51:38 -08:00
|
|
|
google.protobuf.Any pub_key = 2;
|
|
|
|
int64 voting_power = 3;
|
|
|
|
int64 proposer_priority = 4;
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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 {
|
Fix tendermint query proto scoping (#8236)
The following errors are occurring when these protos are compiling
because they exist in a sub-package `cosmos.base.tendermint` but are
trying to refer to toplevel `.tendermint` types:
```
cosmos/base/tendermint/v1beta1/query.proto:87:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:88:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:96:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:97:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:113:3: "tendermint.p2p.DefaultNodeInfo" is resolved to "cosmos.base.tendermint.p2p.DefaultNodeInfo", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.p2p.DefaultNodeInfo") to start from the outermost scope.
```
Here is one issue where I observed these errors:
https://github.com/cosmos/cosmos-sdk/issues/8171
However note it is also breaking the build on `cosmos-rust`:
https://github.com/cosmos/cosmos-rust/issues/23
Adding a `.` before `tendermint` references the package in toplevel
scope, which appears to be what is intended.
2020-12-29 03:58:40 -08:00
|
|
|
.tendermint.types.BlockID block_id = 1;
|
|
|
|
.tendermint.types.Block block = 2;
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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 {
|
Fix tendermint query proto scoping (#8236)
The following errors are occurring when these protos are compiling
because they exist in a sub-package `cosmos.base.tendermint` but are
trying to refer to toplevel `.tendermint` types:
```
cosmos/base/tendermint/v1beta1/query.proto:87:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:88:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:96:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:97:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:113:3: "tendermint.p2p.DefaultNodeInfo" is resolved to "cosmos.base.tendermint.p2p.DefaultNodeInfo", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.p2p.DefaultNodeInfo") to start from the outermost scope.
```
Here is one issue where I observed these errors:
https://github.com/cosmos/cosmos-sdk/issues/8171
However note it is also breaking the build on `cosmos-rust`:
https://github.com/cosmos/cosmos-rust/issues/23
Adding a `.` before `tendermint` references the package in toplevel
scope, which appears to be what is intended.
2020-12-29 03:58:40 -08:00
|
|
|
.tendermint.types.BlockID block_id = 1;
|
|
|
|
.tendermint.types.Block block = 2;
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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 {}
|
|
|
|
|
2021-09-02 01:23:30 -07:00
|
|
|
// GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method.
|
2020-11-25 07:58:11 -08:00
|
|
|
message GetNodeInfoResponse {
|
2021-11-16 11:24:38 -08:00
|
|
|
.tendermint.p2p.NodeInfo node_info = 1;
|
|
|
|
VersionInfo application_version = 2;
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// VersionInfo is the type for the GetNodeInfoResponse message.
|
|
|
|
message VersionInfo {
|
2021-11-16 01:27:50 -08:00
|
|
|
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;
|
2021-10-27 07:13:35 -07:00
|
|
|
// Since: cosmos-sdk 0.43
|
2021-11-16 01:27:50 -08:00
|
|
|
string cosmos_sdk_version = 8;
|
2020-11-25 07:58:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
// Module is the type for VersionInfo
|
|
|
|
message Module {
|
|
|
|
// module path
|
|
|
|
string path = 1;
|
|
|
|
// module version
|
|
|
|
string version = 2;
|
|
|
|
// checksum
|
|
|
|
string sum = 3;
|
Fix tendermint query proto scoping (#8236)
The following errors are occurring when these protos are compiling
because they exist in a sub-package `cosmos.base.tendermint` but are
trying to refer to toplevel `.tendermint` types:
```
cosmos/base/tendermint/v1beta1/query.proto:87:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:88:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:96:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:97:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope.
cosmos/base/tendermint/v1beta1/query.proto:113:3: "tendermint.p2p.DefaultNodeInfo" is resolved to "cosmos.base.tendermint.p2p.DefaultNodeInfo", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.p2p.DefaultNodeInfo") to start from the outermost scope.
```
Here is one issue where I observed these errors:
https://github.com/cosmos/cosmos-sdk/issues/8171
However note it is also breaking the build on `cosmos-rust`:
https://github.com/cosmos/cosmos-rust/issues/23
Adding a `.` before `tendermint` references the package in toplevel
scope, which appears to be what is intended.
2020-12-29 03:58:40 -08:00
|
|
|
}
|
2022-04-25 14:54:27 -07:00
|
|
|
|
|
|
|
// 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 nessecary 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];
|
|
|
|
}
|