import { Rpc } from "../../helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; import { QueryParamsRequest, QueryParamsResponse, QueryStatsMetadataRequest, QueryStatsMetadataResponse, QueryGlobalStatsRequest, QueryGlobalStatsResponse, QueryUserStatsRequest, QueryUserStatsResponse, QueryEpochStatsRequest, QueryEpochStatsResponse } from "./query"; /** Query defines the gRPC querier service. */ export interface Query { /** Queries the Params. */ params(request?: QueryParamsRequest): Promise; /** Queries StatsMetadata. */ statsMetadata(request?: QueryStatsMetadataRequest): Promise; /** Queries GlobalStats. */ globalStats(request?: QueryGlobalStatsRequest): Promise; /** Queries UserStats. */ userStats(request: QueryUserStatsRequest): Promise; /** Queries EpochStats for a specific epoch. */ epochStats(request: QueryEpochStatsRequest): Promise; } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.params = this.params.bind(this); this.statsMetadata = this.statsMetadata.bind(this); this.globalStats = this.globalStats.bind(this); this.userStats = this.userStats.bind(this); this.epochStats = this.epochStats.bind(this); } params(request: QueryParamsRequest = {}): Promise { const data = QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.stats.Query", "Params", data); return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); } statsMetadata(request: QueryStatsMetadataRequest = {}): Promise { const data = QueryStatsMetadataRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.stats.Query", "StatsMetadata", data); return promise.then(data => QueryStatsMetadataResponse.decode(new _m0.Reader(data))); } globalStats(request: QueryGlobalStatsRequest = {}): Promise { const data = QueryGlobalStatsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.stats.Query", "GlobalStats", data); return promise.then(data => QueryGlobalStatsResponse.decode(new _m0.Reader(data))); } userStats(request: QueryUserStatsRequest): Promise { const data = QueryUserStatsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.stats.Query", "UserStats", data); return promise.then(data => QueryUserStatsResponse.decode(new _m0.Reader(data))); } epochStats(request: QueryEpochStatsRequest): Promise { const data = QueryEpochStatsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.stats.Query", "EpochStats", data); return promise.then(data => QueryEpochStatsResponse.decode(new _m0.Reader(data))); } } export const createRpcQueryExtension = (base: QueryClient) => { const rpc = createProtobufRpcClient(base); const queryService = new QueryClientImpl(rpc); return { params(request?: QueryParamsRequest): Promise { return queryService.params(request); }, statsMetadata(request?: QueryStatsMetadataRequest): Promise { return queryService.statsMetadata(request); }, globalStats(request?: QueryGlobalStatsRequest): Promise { return queryService.globalStats(request); }, userStats(request: QueryUserStatsRequest): Promise { return queryService.userStats(request); }, epochStats(request: QueryEpochStatsRequest): Promise { return queryService.epochStats(request); } }; };