syntax = "proto3"; package cosmos.bank.v1beta1; import "cosmos/base/query/v1beta1/pagination.proto"; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/bank/v1beta1/bank.proto"; option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; // Query defines the gRPC querier service. service Query { // Balance queries the balance of a single coin for a single account. rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/{denom}"; } // AllBalances queries the balance of all coins for a single account. rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}"; } // TotalSupply queries the total supply of all coins. rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/supply"; } // SupplyOf queries the supply of a single coin. rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/supply/{denom}"; } // Params queries the parameters of x/bank module. rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/params"; } // DenomsMetadata queries the client metadata of a given coin denomination. rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata/{denom}"; } // DenomsMetadata queries the client metadata for all registered coin // denominations. rpc DenomsMetadata(QueryDenomsMetadataRequest) returns (QueryDenomsMetadataResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata"; } // DenomOwners queries for all account addresses that own a particular token // denomination. rpc DenomOwners(QueryDenomOwnersRequest) returns (QueryDenomOwnersResponse) { option (google.api.http).get = "/cosmos/bank/v1beta1/denom_owners/{denom}"; } } // QueryBalanceRequest is the request type for the Query/Balance RPC method. message QueryBalanceRequest { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; // address is the address to query balances for. string address = 1; // denom is the coin denom to query balances for. string denom = 2; } // QueryBalanceResponse is the response type for the Query/Balance RPC method. message QueryBalanceResponse { // balance is the balance of the coin. cosmos.base.v1beta1.Coin balance = 1; } // QueryBalanceRequest is the request type for the Query/AllBalances RPC method. message QueryAllBalancesRequest { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; // address is the address to query balances for. string address = 1; // pagination defines an optional pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 2; } // QueryAllBalancesResponse is the response type for the Query/AllBalances RPC // method. message QueryAllBalancesResponse { // balances is the balances of all the coins. repeated cosmos.base.v1beta1.Coin balances = 1 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC // method. message QueryTotalSupplyRequest { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; // pagination defines an optional pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 1; } // QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC // method message QueryTotalSupplyResponse { // supply is the supply of the coins repeated cosmos.base.v1beta1.Coin supply = 1 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. message QuerySupplyOfRequest { // denom is the coin denom to query balances for. string denom = 1; } // QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. message QuerySupplyOfResponse { // amount is the supply of the coin. cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false]; } // QueryParamsRequest defines the request type for querying x/bank parameters. message QueryParamsRequest {} // QueryParamsResponse defines the response type for querying x/bank parameters. message QueryParamsResponse { Params params = 1 [(gogoproto.nullable) = false]; } // QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. message QueryDenomsMetadataRequest { // pagination defines an optional pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 1; } // QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC // method. message QueryDenomsMetadataResponse { // metadata provides the client information for all the registered tokens. repeated Metadata metadatas = 1 [(gogoproto.nullable) = false]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. message QueryDenomMetadataRequest { // denom is the coin denom to query the metadata for. string denom = 1; } // QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC // method. message QueryDenomMetadataResponse { // metadata describes and provides all the client information for the requested token. Metadata metadata = 1 [(gogoproto.nullable) = false]; } // QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, // which queries for a paginated set of all account holders of a particular // denomination. message QueryDenomOwnersRequest { // denom defines the coin denomination to query all account holders for. string denom = 1; // pagination defines an optional pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 2; } // DenomOwner defines structure representing an account that owns or holds a // particular denominated token. It contains the account address and account // balance of the denominated token. message DenomOwner { // address defines the address that owns a particular denomination. string address = 1; // balance is the balance of the denominated coin for an account. cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false]; } // QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. message QueryDenomOwnersResponse { repeated DenomOwner denom_owners = 1; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; }