syntax = "proto3";
package kava.kavadist.v1beta1;

import "gogoproto/gogo.proto";
import "google/api/annotations.proto";
import "cosmos/base/v1beta1/coin.proto";
import "kava/kavadist/v1beta1/params.proto";

option go_package = "github.com/kava-labs/kava/x/kavadist/types";

// Query defines the gRPC querier service.
service Query {
  // Params queries the parameters of x/kavadist module.
  rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
    option (google.api.http).get = "/kava/kavadist/v1beta1/parameters";
  }

  // Balance queries the balance of all coins of x/kavadist module.
  rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) {
    option (google.api.http).get = "/kava/kavadist/v1beta1/balance";
  }
}

// QueryParamsRequest defines the request type for querying x/kavadist parameters.
message QueryParamsRequest {}

// QueryParamsResponse defines the response type for querying x/kavadist parameters.
message QueryParamsResponse {
  Params params = 1 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"params\""];
}

// QueryBalanceRequest defines the request type for querying x/kavadist balance.
message QueryBalanceRequest {}

// QueryBalanceResponse defines the response type for querying x/kavadist balance.
message QueryBalanceResponse {
  repeated cosmos.base.v1beta1.Coin coins = 1 [
    (gogoproto.nullable)     = false,
    (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
    (gogoproto.moretags)     = "yaml:\"coins\""
  ];
}
