import { Rpc } from "../../helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; import { QueryPerpetualFeeParamsRequest, QueryPerpetualFeeParamsResponse, QueryUserFeeTierRequest, QueryUserFeeTierResponse, QueryPerMarketFeeDiscountParamsRequest, QueryPerMarketFeeDiscountParamsResponse, QueryAllMarketFeeDiscountParamsRequest, QueryAllMarketFeeDiscountParamsResponse, QueryStakingTiersRequest, QueryStakingTiersResponse, QueryUserStakingTierRequest, QueryUserStakingTierResponse } from "./query"; /** Query defines the gRPC querier service. */ export interface Query { /** Queries the PerpetualFeeParams. */ perpetualFeeParams(request?: QueryPerpetualFeeParamsRequest): Promise; /** Queries a user's fee tier */ userFeeTier(request: QueryUserFeeTierRequest): Promise; /** * PerMarketFeeDiscountParams queries fee discount parameters for a * specific market/CLOB pair. */ perMarketFeeDiscountParams(request: QueryPerMarketFeeDiscountParamsRequest): Promise; /** AllMarketFeeDiscountParams queries all per-market fee discount parameters. */ allMarketFeeDiscountParams(request?: QueryAllMarketFeeDiscountParamsRequest): Promise; /** Get all staking tiers */ stakingTiers(request?: QueryStakingTiersRequest): Promise; /** Get user's current staked amount and staking tier */ userStakingTier(request: QueryUserStakingTierRequest): Promise; } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.perpetualFeeParams = this.perpetualFeeParams.bind(this); this.userFeeTier = this.userFeeTier.bind(this); this.perMarketFeeDiscountParams = this.perMarketFeeDiscountParams.bind(this); this.allMarketFeeDiscountParams = this.allMarketFeeDiscountParams.bind(this); this.stakingTiers = this.stakingTiers.bind(this); this.userStakingTier = this.userStakingTier.bind(this); } perpetualFeeParams(request: QueryPerpetualFeeParamsRequest = {}): Promise { const data = QueryPerpetualFeeParamsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.feetiers.Query", "PerpetualFeeParams", data); return promise.then(data => QueryPerpetualFeeParamsResponse.decode(new _m0.Reader(data))); } userFeeTier(request: QueryUserFeeTierRequest): Promise { const data = QueryUserFeeTierRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.feetiers.Query", "UserFeeTier", data); return promise.then(data => QueryUserFeeTierResponse.decode(new _m0.Reader(data))); } perMarketFeeDiscountParams(request: QueryPerMarketFeeDiscountParamsRequest): Promise { const data = QueryPerMarketFeeDiscountParamsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.feetiers.Query", "PerMarketFeeDiscountParams", data); return promise.then(data => QueryPerMarketFeeDiscountParamsResponse.decode(new _m0.Reader(data))); } allMarketFeeDiscountParams(request: QueryAllMarketFeeDiscountParamsRequest = {}): Promise { const data = QueryAllMarketFeeDiscountParamsRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.feetiers.Query", "AllMarketFeeDiscountParams", data); return promise.then(data => QueryAllMarketFeeDiscountParamsResponse.decode(new _m0.Reader(data))); } stakingTiers(request: QueryStakingTiersRequest = {}): Promise { const data = QueryStakingTiersRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.feetiers.Query", "StakingTiers", data); return promise.then(data => QueryStakingTiersResponse.decode(new _m0.Reader(data))); } userStakingTier(request: QueryUserStakingTierRequest): Promise { const data = QueryUserStakingTierRequest.encode(request).finish(); const promise = this.rpc.request("dydxprotocol.feetiers.Query", "UserStakingTier", data); return promise.then(data => QueryUserStakingTierResponse.decode(new _m0.Reader(data))); } } export const createRpcQueryExtension = (base: QueryClient) => { const rpc = createProtobufRpcClient(base); const queryService = new QueryClientImpl(rpc); return { perpetualFeeParams(request?: QueryPerpetualFeeParamsRequest): Promise { return queryService.perpetualFeeParams(request); }, userFeeTier(request: QueryUserFeeTierRequest): Promise { return queryService.userFeeTier(request); }, perMarketFeeDiscountParams(request: QueryPerMarketFeeDiscountParamsRequest): Promise { return queryService.perMarketFeeDiscountParams(request); }, allMarketFeeDiscountParams(request?: QueryAllMarketFeeDiscountParamsRequest): Promise { return queryService.allMarketFeeDiscountParams(request); }, stakingTiers(request?: QueryStakingTiersRequest): Promise { return queryService.stakingTiers(request); }, userStakingTier(request: QueryUserStakingTierRequest): Promise { return queryService.userStakingTier(request); } }; };