syntax = "proto3"; package kava.hard.v1beta1; import "kava/hard/v1beta1/hard.proto"; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "cosmos/auth/v1beta1/auth.proto"; option go_package = "github.com/kava-labs/kava/x/hard/types"; // Query defines the gRPC querier service for bep3 module. service Query { // Params queries module params. rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/params"; } // Accounts queries module accounts. rpc Accounts(QueryAccountsRequest) returns (QueryAccountsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/accounts"; } // Deposits queries hard deposits. rpc Deposits(QueryDepositsRequest) returns (QueryDepositsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/deposits"; } // UnsyncedDeposits queries unsynced deposits. rpc UnsyncedDeposits(QueryUnsyncedDepositsRequest) returns (QueryUnsyncedDepositsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/unsynced-deposits"; } // TotalDeposited queries total coins deposited to hard liquidity pools. rpc TotalDeposited(QueryTotalDepositedRequest) returns (QueryTotalDepositedResponse) { option (google.api.http).get = "/kava/hard/v1beta1/total-deposited/{denom}"; } // Borrows queries hard borrows. rpc Borrows(QueryBorrowsRequest) returns (QueryBorrowsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/borrows"; } // UnsyncedBorrows queries unsynced borrows. rpc UnsyncedBorrows(QueryUnsyncedBorrowsRequest) returns (QueryUnsyncedBorrowsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/unsynced-borrows"; } // TotalBorrowed queries total coins borrowed from hard liquidity pools. rpc TotalBorrowed(QueryTotalBorrowedRequest) returns (QueryTotalBorrowedResponse) { option (google.api.http).get = "/kava/hard/v1beta1/total-borrowed/{denom}"; } // InterestRate queries the hard module interest rates. rpc InterestRate(QueryInterestRateRequest) returns (QueryInterestRateResponse) { option (google.api.http).get = "/kava/hard/v1beta1/interest-rate/{denom}"; } // Reserves queries total hard reserve coins. rpc Reserves(QueryReservesRequest) returns (QueryReservesResponse) { option (google.api.http).get = "/kava/hard/v1beta1/reserves/{denom}"; } // InterestFactors queries hard module interest factors. rpc InterestFactors(QueryInterestFactorsRequest) returns (QueryInterestFactorsResponse) { option (google.api.http).get = "/kava/hard/v1beta1/interest-factors/{denom}"; } } // QueryParamsRequest is the request type for the Query/Params RPC method. message QueryParamsRequest {} // QueryParamsResponse is the response type for the Query/Params RPC method. message QueryParamsResponse { Params params = 1 [(gogoproto.nullable) = false]; } // QueryAccountsRequest is the request type for the Query/Accounts RPC method. message QueryAccountsRequest {} // QueryAccountsResponse is the response type for the Query/Accounts RPC method. message QueryAccountsResponse { repeated cosmos.auth.v1beta1.ModuleAccount accounts = 1 [(gogoproto.nullable) = false]; } // QueryDepositsRequest is the request type for the Query/Deposits RPC method. message QueryDepositsRequest { string denom = 1; string owner = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; cosmos.base.query.v1beta1.PageRequest pagination = 3; } // QueryDepositsResponse is the response type for the Query/Deposits RPC method. message QueryDepositsResponse { repeated DepositResponse deposits = 1 [(gogoproto.castrepeated) = "DepositResponses", (gogoproto.nullable) = false]; cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryUnsyncedDepositsRequest is the request type for the Query/UnsyncedDeposits RPC method. message QueryUnsyncedDepositsRequest { string denom = 1; string owner = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; cosmos.base.query.v1beta1.PageRequest pagination = 3; } // QueryUnsyncedDepositsResponse is the response type for the Query/UnsyncedDeposits RPC method. message QueryUnsyncedDepositsResponse { repeated DepositResponse deposits = 1 [(gogoproto.castrepeated) = "DepositResponses", (gogoproto.nullable) = false]; cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryTotalDepositedRequest is the request type for the Query/TotalDeposited RPC method. message QueryTotalDepositedRequest { string denom = 1; } // QueryTotalDepositedResponse is the response type for the Query/TotalDeposited RPC method. message QueryTotalDepositedResponse { repeated cosmos.base.v1beta1.Coin supplied_coins = 2 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; } // QueryBorrowsRequest is the request type for the Query/Borrows RPC method. message QueryBorrowsRequest { string denom = 1; string owner = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; cosmos.base.query.v1beta1.PageRequest pagination = 3; } // QueryBorrowsResponse is the response type for the Query/Borrows RPC method. message QueryBorrowsResponse { repeated BorrowResponse borrows = 1 [(gogoproto.castrepeated) = "BorrowResponses", (gogoproto.nullable) = false]; cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryUnsyncedBorrowsRequest is the request type for the Query/UnsyncedBorrows RPC method. message QueryUnsyncedBorrowsRequest { string denom = 1; string owner = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; cosmos.base.query.v1beta1.PageRequest pagination = 3; } // QueryUnsyncedBorrowsResponse is the response type for the Query/UnsyncedBorrows RPC method. message QueryUnsyncedBorrowsResponse { repeated BorrowResponse borrows = 1 [(gogoproto.castrepeated) = "BorrowResponses", (gogoproto.nullable) = false]; cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryTotalBorrowedRequest is the request type for the Query/TotalBorrowed RPC method. message QueryTotalBorrowedRequest { string denom = 1; } // QueryTotalBorrowedResponse is the response type for the Query/TotalBorrowed RPC method. message QueryTotalBorrowedResponse { repeated cosmos.base.v1beta1.Coin borrowed_coins = 2 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; } // QueryInterestRateRequest is the request type for the Query/InterestRate RPC method. message QueryInterestRateRequest { string denom = 1; } // QueryInterestRateResponse is the response type for the Query/InterestRate RPC method. message QueryInterestRateResponse { repeated MoneyMarketInterestRate interest_rates = 1 [(gogoproto.castrepeated) = "MoneyMarketInterestRates", (gogoproto.nullable) = false]; } // QueryReservesRequest is the request type for the Query/Reserves RPC method. message QueryReservesRequest { string denom = 1; } // QueryReservesResponse is the response type for the Query/Reserves RPC method. message QueryReservesResponse { repeated cosmos.base.v1beta1.Coin amount = 2 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; } // QueryInterestFactorsRequest is the request type for the Query/InterestFactors RPC method. message QueryInterestFactorsRequest { string denom = 1; } // QueryInterestFactorsResponse is the response type for the Query/InterestFactors RPC method. message QueryInterestFactorsResponse { repeated InterestFactor interest_factors = 1 [(gogoproto.castrepeated) = "InterestFactors", (gogoproto.nullable) = false]; } // DepositResponse defines an amount of coins deposited into a hard module account. message DepositResponse { string depositor = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; repeated cosmos.base.v1beta1.Coin amount = 2 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; repeated SupplyInterestFactorResponse index = 3 [(gogoproto.castrepeated) = "SupplyInterestFactorResponses", (gogoproto.nullable) = false]; } // SupplyInterestFactorResponse defines an individual borrow interest factor. message SupplyInterestFactorResponse { string denom = 1; // sdk.Dec as string string value = 2; } // BorrowResponse defines an amount of coins borrowed from a hard module account. message BorrowResponse { string borrower = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; repeated cosmos.base.v1beta1.Coin amount = 2 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; repeated BorrowInterestFactorResponse index = 3 [(gogoproto.castrepeated) = "BorrowInterestFactorResponses", (gogoproto.nullable) = false]; } // BorrowInterestFactorResponse defines an individual borrow interest factor. message BorrowInterestFactorResponse { string denom = 1; // sdk.Dec as string string value = 2; } // MoneyMarketInterestRate is a unique type returned by interest rate queries message MoneyMarketInterestRate { string denom = 1; // sdk.Dec as String string supply_interest_rate = 2; // sdk.Dec as String string borrow_interest_rate = 3; } // InterestFactor is a unique type returned by interest factor queries message InterestFactor { string denom = 1; // sdk.Dec as String string borrow_interest_factor = 2; // sdk.Dec as String string supply_interest_factor = 3; }