import { Rpc } from "../../../helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; import { QueryConfigRequest, QueryConfigResponse } from "./query"; /** Query is the app module query service. */ export interface Query { /** Config returns the current app config. */ config(request?: QueryConfigRequest): Promise; } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.config = this.config.bind(this); } config(request: QueryConfigRequest = {}): Promise { const data = QueryConfigRequest.encode(request).finish(); const promise = this.rpc.request("cosmos.app.v1alpha1.Query", "Config", data); return promise.then(data => QueryConfigResponse.decode(new _m0.Reader(data))); } } export const createRpcQueryExtension = (base: QueryClient) => { const rpc = createProtobufRpcClient(base); const queryService = new QueryClientImpl(rpc); return { config(request?: QueryConfigRequest): Promise { return queryService.config(request); } }; };