import { Rpc } from "../../../helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; import { QueryAccountsRequest, QueryAccountsResponse, QueryAccountRequest, QueryAccountResponse, QueryAccountAddressByIDRequest, QueryAccountAddressByIDResponse, QueryParamsRequest, QueryParamsResponse, QueryModuleAccountsRequest, QueryModuleAccountsResponse, QueryModuleAccountByNameRequest, QueryModuleAccountByNameResponse, Bech32PrefixRequest, Bech32PrefixResponse, AddressBytesToStringRequest, AddressBytesToStringResponse, AddressStringToBytesRequest, AddressStringToBytesResponse, QueryAccountInfoRequest, QueryAccountInfoResponse } from "./query"; /** Query defines the gRPC querier service. */ export interface Query { /** * Accounts returns all the existing accounts. * * When called from another module, this query might consume a high amount of * gas if the pagination field is incorrectly set. * * Since: cosmos-sdk 0.43 */ accounts(request?: QueryAccountsRequest): Promise; /** Account returns account details based on address. */ account(request: QueryAccountRequest): Promise; /** * AccountAddressByID returns account address based on account number. * * Since: cosmos-sdk 0.46.2 */ accountAddressByID(request: QueryAccountAddressByIDRequest): Promise; /** Params queries all parameters. */ params(request?: QueryParamsRequest): Promise; /** * ModuleAccounts returns all the existing module accounts. * * Since: cosmos-sdk 0.46 */ moduleAccounts(request?: QueryModuleAccountsRequest): Promise; /** ModuleAccountByName returns the module account info by module name */ moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise; /** * Bech32Prefix queries bech32Prefix * * Since: cosmos-sdk 0.46 */ bech32Prefix(request?: Bech32PrefixRequest): Promise; /** * AddressBytesToString converts Account Address bytes to string * * Since: cosmos-sdk 0.46 */ addressBytesToString(request: AddressBytesToStringRequest): Promise; /** * AddressStringToBytes converts Address string to bytes * * Since: cosmos-sdk 0.46 */ addressStringToBytes(request: AddressStringToBytesRequest): Promise; /** * AccountInfo queries account info which is common to all account types. * * Since: cosmos-sdk 0.47 */ accountInfo(request: QueryAccountInfoRequest): Promise; } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.accounts = this.accounts.bind(this); this.account = this.account.bind(this); this.accountAddressByID = this.accountAddressByID.bind(this); this.params = this.params.bind(this); this.moduleAccounts = this.moduleAccounts.bind(this); this.moduleAccountByName = this.moduleAccountByName.bind(this); this.bech32Prefix = this.bech32Prefix.bind(this); this.addressBytesToString = this.addressBytesToString.bind(this); this.addressStringToBytes = this.addressStringToBytes.bind(this); this.accountInfo = this.accountInfo.bind(this); } accounts(request: QueryAccountsRequest = { pagination: undefined }): Promise { const data = QueryAccountsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Accounts", data); return promise.then(data => QueryAccountsResponse.decode(new _m0.Reader(data))); } account(request: QueryAccountRequest): Promise { const data = QueryAccountRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Account", data); return promise.then(data => QueryAccountResponse.decode(new _m0.Reader(data))); } accountAddressByID(request: QueryAccountAddressByIDRequest): Promise { const data = QueryAccountAddressByIDRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AccountAddressByID", data); return promise.then(data => QueryAccountAddressByIDResponse.decode(new _m0.Reader(data))); } params(request: QueryParamsRequest = {}): Promise { const data = QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Params", data); return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); } moduleAccounts(request: QueryModuleAccountsRequest = {}): Promise { const data = QueryModuleAccountsRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccounts", data); return promise.then(data => QueryModuleAccountsResponse.decode(new _m0.Reader(data))); } moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise { const data = QueryModuleAccountByNameRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "ModuleAccountByName", data); return promise.then(data => QueryModuleAccountByNameResponse.decode(new _m0.Reader(data))); } bech32Prefix(request: Bech32PrefixRequest = {}): Promise { const data = Bech32PrefixRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "Bech32Prefix", data); return promise.then(data => Bech32PrefixResponse.decode(new _m0.Reader(data))); } addressBytesToString(request: AddressBytesToStringRequest): Promise { const data = AddressBytesToStringRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressBytesToString", data); return promise.then(data => AddressBytesToStringResponse.decode(new _m0.Reader(data))); } addressStringToBytes(request: AddressStringToBytesRequest): Promise { const data = AddressStringToBytesRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AddressStringToBytes", data); return promise.then(data => AddressStringToBytesResponse.decode(new _m0.Reader(data))); } accountInfo(request: QueryAccountInfoRequest): Promise { const data = QueryAccountInfoRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.auth.v1beta1.Query", "AccountInfo", data); return promise.then(data => QueryAccountInfoResponse.decode(new _m0.Reader(data))); } } export const createRpcQueryExtension = (base: QueryClient) => { const rpc = createProtobufRpcClient(base); const queryService = new QueryClientImpl(rpc); return { accounts(request?: QueryAccountsRequest): Promise { return queryService.accounts(request); }, account(request: QueryAccountRequest): Promise { return queryService.account(request); }, accountAddressByID(request: QueryAccountAddressByIDRequest): Promise { return queryService.accountAddressByID(request); }, params(request?: QueryParamsRequest): Promise { return queryService.params(request); }, moduleAccounts(request?: QueryModuleAccountsRequest): Promise { return queryService.moduleAccounts(request); }, moduleAccountByName(request: QueryModuleAccountByNameRequest): Promise { return queryService.moduleAccountByName(request); }, bech32Prefix(request?: Bech32PrefixRequest): Promise { return queryService.bech32Prefix(request); }, addressBytesToString(request: AddressBytesToStringRequest): Promise { return queryService.addressBytesToString(request); }, addressStringToBytes(request: AddressStringToBytesRequest): Promise { return queryService.addressStringToBytes(request); }, accountInfo(request: QueryAccountInfoRequest): Promise { return queryService.accountInfo(request); } }; };