Skip to content

Commit

Permalink
[CORE-695] - add queries for x/perpetuals state (#686) (#711)
Browse files Browse the repository at this point in the history
Co-authored-by: Crystal Lemire <[email protected]>
  • Loading branch information
mergify[bot] and clemire authored Oct 26, 2023
1 parent b1fda9c commit 054201c
Show file tree
Hide file tree
Showing 16 changed files with 2,036 additions and 75 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { setPaginationParams } from "../../helpers";
import { LCDClient } from "@osmonauts/lcd";
import { QueryPerpetualRequest, QueryPerpetualResponseSDKType, QueryAllPerpetualsRequest, QueryAllPerpetualsResponseSDKType } from "./query";
import { QueryPerpetualRequest, QueryPerpetualResponseSDKType, QueryAllPerpetualsRequest, QueryAllPerpetualsResponseSDKType, QueryPremiumVotesRequest, QueryPremiumVotesResponseSDKType, QueryPremiumSamplesRequest, QueryPremiumSamplesResponseSDKType, QueryParamsRequest, QueryParamsResponseSDKType } from "./query";
export class LCDQueryClient {
req: LCDClient;

Expand All @@ -12,6 +12,9 @@ export class LCDQueryClient {
this.req = requestClient;
this.perpetual = this.perpetual.bind(this);
this.allPerpetuals = this.allPerpetuals.bind(this);
this.premiumVotes = this.premiumVotes.bind(this);
this.premiumSamples = this.premiumSamples.bind(this);
this.params = this.params.bind(this);
}
/* Queries a Perpetual by id. */

Expand All @@ -37,5 +40,26 @@ export class LCDQueryClient {
const endpoint = `dydxprotocol/perpetuals/perpetual`;
return await this.req.get<QueryAllPerpetualsResponseSDKType>(endpoint, options);
}
/* Queries a list of premium votes. */


async premiumVotes(_params: QueryPremiumVotesRequest = {}): Promise<QueryPremiumVotesResponseSDKType> {
const endpoint = `dydxprotocol/perpetuals/premium_votes`;
return await this.req.get<QueryPremiumVotesResponseSDKType>(endpoint);
}
/* Queries a list of premium samples. */


async premiumSamples(_params: QueryPremiumSamplesRequest = {}): Promise<QueryPremiumSamplesResponseSDKType> {
const endpoint = `dydxprotocol/perpetuals/premium_samples`;
return await this.req.get<QueryPremiumSamplesResponseSDKType>(endpoint);
}
/* Queries the perpetual params. */


async params(_params: QueryParamsRequest = {}): Promise<QueryParamsResponseSDKType> {
const endpoint = `dydxprotocol/perpetuals/params`;
return await this.req.get<QueryParamsResponseSDKType>(endpoint);
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Rpc } from "../../helpers";
import * as _m0 from "protobufjs/minimal";
import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate";
import { QueryPerpetualRequest, QueryPerpetualResponse, QueryAllPerpetualsRequest, QueryAllPerpetualsResponse } from "./query";
import { QueryPerpetualRequest, QueryPerpetualResponse, QueryAllPerpetualsRequest, QueryAllPerpetualsResponse, QueryPremiumVotesRequest, QueryPremiumVotesResponse, QueryPremiumSamplesRequest, QueryPremiumSamplesResponse, QueryParamsRequest, QueryParamsResponse } from "./query";
/** Query defines the gRPC querier service. */

export interface Query {
Expand All @@ -10,6 +10,15 @@ export interface Query {
/** Queries a list of Perpetual items. */

allPerpetuals(request?: QueryAllPerpetualsRequest): Promise<QueryAllPerpetualsResponse>;
/** Queries a list of premium votes. */

premiumVotes(request?: QueryPremiumVotesRequest): Promise<QueryPremiumVotesResponse>;
/** Queries a list of premium samples. */

premiumSamples(request?: QueryPremiumSamplesRequest): Promise<QueryPremiumSamplesResponse>;
/** Queries the perpetual params. */

params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
}
export class QueryClientImpl implements Query {
private readonly rpc: Rpc;
Expand All @@ -18,6 +27,9 @@ export class QueryClientImpl implements Query {
this.rpc = rpc;
this.perpetual = this.perpetual.bind(this);
this.allPerpetuals = this.allPerpetuals.bind(this);
this.premiumVotes = this.premiumVotes.bind(this);
this.premiumSamples = this.premiumSamples.bind(this);
this.params = this.params.bind(this);
}

perpetual(request: QueryPerpetualRequest): Promise<QueryPerpetualResponse> {
Expand All @@ -34,6 +46,24 @@ export class QueryClientImpl implements Query {
return promise.then(data => QueryAllPerpetualsResponse.decode(new _m0.Reader(data)));
}

premiumVotes(request: QueryPremiumVotesRequest = {}): Promise<QueryPremiumVotesResponse> {
const data = QueryPremiumVotesRequest.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.perpetuals.Query", "PremiumVotes", data);
return promise.then(data => QueryPremiumVotesResponse.decode(new _m0.Reader(data)));
}

premiumSamples(request: QueryPremiumSamplesRequest = {}): Promise<QueryPremiumSamplesResponse> {
const data = QueryPremiumSamplesRequest.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.perpetuals.Query", "PremiumSamples", data);
return promise.then(data => QueryPremiumSamplesResponse.decode(new _m0.Reader(data)));
}

params(request: QueryParamsRequest = {}): Promise<QueryParamsResponse> {
const data = QueryParamsRequest.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.perpetuals.Query", "Params", data);
return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data)));
}

}
export const createRpcQueryExtension = (base: QueryClient) => {
const rpc = createProtobufRpcClient(base);
Expand All @@ -45,6 +75,18 @@ export const createRpcQueryExtension = (base: QueryClient) => {

allPerpetuals(request?: QueryAllPerpetualsRequest): Promise<QueryAllPerpetualsResponse> {
return queryService.allPerpetuals(request);
},

premiumVotes(request?: QueryPremiumVotesRequest): Promise<QueryPremiumVotesResponse> {
return queryService.premiumVotes(request);
},

premiumSamples(request?: QueryPremiumSamplesRequest): Promise<QueryPremiumSamplesResponse> {
return queryService.premiumSamples(request);
},

params(request?: QueryParamsRequest): Promise<QueryParamsResponse> {
return queryService.params(request);
}

};
Expand Down
Loading

0 comments on commit 054201c

Please sign in to comment.