import { PageRequest, PageResponse } from "../../base/query/v1beta1/pagination"; import { Coin } from "../../base/v1beta1/coin"; import { Params, Metadata } from "./bank"; import { Rpc } from "@osmonauts/helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryBalanceRequest, QueryBalanceResponse, QueryAllBalancesRequest, QueryAllBalancesResponse, QuerySpendableBalancesRequest, QuerySpendableBalancesResponse, QueryTotalSupplyRequest, QueryTotalSupplyResponse, QuerySupplyOfRequest, QuerySupplyOfResponse, QueryParamsRequest, QueryParamsResponse, QueryDenomMetadataRequest, QueryDenomMetadataResponse, QueryDenomsMetadataRequest, QueryDenomsMetadataResponse, QueryDenomOwnersRequest, QueryDenomOwnersResponse } from "./query"; /** Query defines the RPC service */ export interface Query { balance(request: QueryBalanceRequest): Promise; /*Balance queries the balance of a single coin for a single account.*/ allBalances(request: QueryAllBalancesRequest): Promise; /*AllBalances queries the balance of all coins for a single account.*/ spendableBalances(request: QuerySpendableBalancesRequest): Promise; /*SpendableBalances queries the spenable balance of all coins for a single account.*/ totalSupply(request: QueryTotalSupplyRequest): Promise; /*TotalSupply queries the total supply of all coins.*/ supplyOf(request: QuerySupplyOfRequest): Promise; /*SupplyOf queries the supply of a single coin.*/ params(request: QueryParamsRequest): Promise; /*Params queries the parameters of x/bank module.*/ denomMetadata(request: QueryDenomMetadataRequest): Promise; /*DenomsMetadata queries the client metadata of a given coin denomination.*/ denomsMetadata(request: QueryDenomsMetadataRequest): Promise; /*DenomsMetadata queries the client metadata for all registered coin denominations.*/ denomOwners(request: QueryDenomOwnersRequest): Promise; /*DenomOwners queries for all account addresses that own a particular token denomination.*/ } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.balance = this.balance.bind(this); this.allBalances = this.allBalances.bind(this); this.spendableBalances = this.spendableBalances.bind(this); this.totalSupply = this.totalSupply.bind(this); this.supplyOf = this.supplyOf.bind(this); this.params = this.params.bind(this); this.denomMetadata = this.denomMetadata.bind(this); this.denomsMetadata = this.denomsMetadata.bind(this); this.denomOwners = this.denomOwners.bind(this); } balance(request: QueryBalanceRequest): Promise { const data = QueryBalanceRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Balance", data); return promise.then(data => QueryBalanceResponse.decode(new _m0.Reader(data))); } allBalances(request: QueryAllBalancesRequest): Promise { const data = QueryAllBalancesRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "AllBalances", data); return promise.then(data => QueryAllBalancesResponse.decode(new _m0.Reader(data))); } spendableBalances(request: QuerySpendableBalancesRequest): Promise { const data = QuerySpendableBalancesRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SpendableBalances", data); return promise.then(data => QuerySpendableBalancesResponse.decode(new _m0.Reader(data))); } totalSupply(request: QueryTotalSupplyRequest): Promise { const data = QueryTotalSupplyRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "TotalSupply", data); return promise.then(data => QueryTotalSupplyResponse.decode(new _m0.Reader(data))); } supplyOf(request: QuerySupplyOfRequest): Promise { const data = QuerySupplyOfRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "SupplyOf", data); return promise.then(data => QuerySupplyOfResponse.decode(new _m0.Reader(data))); } params(request: QueryParamsRequest): Promise { const data = QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "Params", data); return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); } denomMetadata(request: QueryDenomMetadataRequest): Promise { const data = QueryDenomMetadataRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomMetadata", data); return promise.then(data => QueryDenomMetadataResponse.decode(new _m0.Reader(data))); } denomsMetadata(request: QueryDenomsMetadataRequest): Promise { const data = QueryDenomsMetadataRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomsMetadata", data); return promise.then(data => QueryDenomsMetadataResponse.decode(new _m0.Reader(data))); } denomOwners(request: QueryDenomOwnersRequest): Promise { const data = QueryDenomOwnersRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.bank.v1beta1.Query", "DenomOwners", data); return promise.then(data => QueryDenomOwnersResponse.decode(new _m0.Reader(data))); } }