Skip to content

Commit a87ec7e

Browse files
mergify[bot]tqin7
andauthored
add staking tiers proto, query, and gov msg (backport #3134) (#3209)
Co-authored-by: Tian <tian@dydx.exchange>
1 parent d17ec14 commit a87ec7e

File tree

37 files changed

+3698
-321
lines changed

37 files changed

+3698
-321
lines changed

indexer/packages/v4-protos/src/codegen/dydxprotocol/bundle.ts

Lines changed: 227 additions & 225 deletions
Large diffs are not rendered by default.

indexer/packages/v4-protos/src/codegen/dydxprotocol/feetiers/genesis.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
11
import { PerpetualFeeParams, PerpetualFeeParamsSDKType } from "./params";
2+
import { StakingTier, StakingTierSDKType } from "./staking_tier";
23
import * as _m0 from "protobufjs/minimal";
34
import { DeepPartial } from "../../helpers";
45
/** GenesisState defines the feetiers module's genesis state. */
56

67
export interface GenesisState {
78
/** The parameters for perpetual fees. */
89
params?: PerpetualFeeParams;
10+
/** The staking tiers. */
11+
12+
stakingTiers: StakingTier[];
913
}
1014
/** GenesisState defines the feetiers module's genesis state. */
1115

1216
export interface GenesisStateSDKType {
1317
/** The parameters for perpetual fees. */
1418
params?: PerpetualFeeParamsSDKType;
19+
/** The staking tiers. */
20+
21+
staking_tiers: StakingTierSDKType[];
1522
}
1623

1724
function createBaseGenesisState(): GenesisState {
1825
return {
19-
params: undefined
26+
params: undefined,
27+
stakingTiers: []
2028
};
2129
}
2230

@@ -26,6 +34,10 @@ export const GenesisState = {
2634
PerpetualFeeParams.encode(message.params, writer.uint32(10).fork()).ldelim();
2735
}
2836

37+
for (const v of message.stakingTiers) {
38+
StakingTier.encode(v!, writer.uint32(18).fork()).ldelim();
39+
}
40+
2941
return writer;
3042
},
3143

@@ -42,6 +54,10 @@ export const GenesisState = {
4254
message.params = PerpetualFeeParams.decode(reader, reader.uint32());
4355
break;
4456

57+
case 2:
58+
message.stakingTiers.push(StakingTier.decode(reader, reader.uint32()));
59+
break;
60+
4561
default:
4662
reader.skipType(tag & 7);
4763
break;
@@ -54,6 +70,7 @@ export const GenesisState = {
5470
fromPartial(object: DeepPartial<GenesisState>): GenesisState {
5571
const message = createBaseGenesisState();
5672
message.params = object.params !== undefined && object.params !== null ? PerpetualFeeParams.fromPartial(object.params) : undefined;
73+
message.stakingTiers = object.stakingTiers?.map(e => StakingTier.fromPartial(e)) || [];
5774
return message;
5875
}
5976

indexer/packages/v4-protos/src/codegen/dydxprotocol/feetiers/query.lcd.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { LCDClient } from "@osmonauts/lcd";
2-
import { QueryPerpetualFeeParamsRequest, QueryPerpetualFeeParamsResponseSDKType, QueryUserFeeTierRequest, QueryUserFeeTierResponseSDKType, QueryPerMarketFeeDiscountParamsRequest, QueryPerMarketFeeDiscountParamsResponseSDKType, QueryAllMarketFeeDiscountParamsRequest, QueryAllMarketFeeDiscountParamsResponseSDKType } from "./query";
2+
import { QueryPerpetualFeeParamsRequest, QueryPerpetualFeeParamsResponseSDKType, QueryUserFeeTierRequest, QueryUserFeeTierResponseSDKType, QueryPerMarketFeeDiscountParamsRequest, QueryPerMarketFeeDiscountParamsResponseSDKType, QueryAllMarketFeeDiscountParamsRequest, QueryAllMarketFeeDiscountParamsResponseSDKType, QueryStakingTiersRequest, QueryStakingTiersResponseSDKType, QueryUserStakingTierRequest, QueryUserStakingTierResponseSDKType } from "./query";
33
export class LCDQueryClient {
44
req: LCDClient;
55

@@ -13,6 +13,8 @@ export class LCDQueryClient {
1313
this.userFeeTier = this.userFeeTier.bind(this);
1414
this.perMarketFeeDiscountParams = this.perMarketFeeDiscountParams.bind(this);
1515
this.allMarketFeeDiscountParams = this.allMarketFeeDiscountParams.bind(this);
16+
this.stakingTiers = this.stakingTiers.bind(this);
17+
this.userStakingTier = this.userStakingTier.bind(this);
1618
}
1719
/* Queries the PerpetualFeeParams. */
1820

@@ -51,5 +53,19 @@ export class LCDQueryClient {
5153
const endpoint = `dydxprotocol/v4/feetiers/market_fee_discount_params`;
5254
return await this.req.get<QueryAllMarketFeeDiscountParamsResponseSDKType>(endpoint);
5355
}
56+
/* Get all staking tiers */
57+
58+
59+
async stakingTiers(_params: QueryStakingTiersRequest = {}): Promise<QueryStakingTiersResponseSDKType> {
60+
const endpoint = `dydxprotocol/v4/feetiers/staking_tiers`;
61+
return await this.req.get<QueryStakingTiersResponseSDKType>(endpoint);
62+
}
63+
/* Get user's current staked amount and staking tier */
64+
65+
66+
async userStakingTier(params: QueryUserStakingTierRequest): Promise<QueryUserStakingTierResponseSDKType> {
67+
const endpoint = `dydxprotocol/v4/feetiers/user_staking_tier/${params.address}`;
68+
return await this.req.get<QueryUserStakingTierResponseSDKType>(endpoint);
69+
}
5470

5571
}

indexer/packages/v4-protos/src/codegen/dydxprotocol/feetiers/query.rpc.Query.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Rpc } from "../../helpers";
22
import * as _m0 from "protobufjs/minimal";
33
import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate";
4-
import { QueryPerpetualFeeParamsRequest, QueryPerpetualFeeParamsResponse, QueryUserFeeTierRequest, QueryUserFeeTierResponse, QueryPerMarketFeeDiscountParamsRequest, QueryPerMarketFeeDiscountParamsResponse, QueryAllMarketFeeDiscountParamsRequest, QueryAllMarketFeeDiscountParamsResponse } from "./query";
4+
import { QueryPerpetualFeeParamsRequest, QueryPerpetualFeeParamsResponse, QueryUserFeeTierRequest, QueryUserFeeTierResponse, QueryPerMarketFeeDiscountParamsRequest, QueryPerMarketFeeDiscountParamsResponse, QueryAllMarketFeeDiscountParamsRequest, QueryAllMarketFeeDiscountParamsResponse, QueryStakingTiersRequest, QueryStakingTiersResponse, QueryUserStakingTierRequest, QueryUserStakingTierResponse } from "./query";
55
/** Query defines the gRPC querier service. */
66

77
export interface Query {
@@ -19,6 +19,12 @@ export interface Query {
1919
/** AllMarketFeeDiscountParams queries all per-market fee discount parameters. */
2020

2121
allMarketFeeDiscountParams(request?: QueryAllMarketFeeDiscountParamsRequest): Promise<QueryAllMarketFeeDiscountParamsResponse>;
22+
/** Get all staking tiers */
23+
24+
stakingTiers(request?: QueryStakingTiersRequest): Promise<QueryStakingTiersResponse>;
25+
/** Get user's current staked amount and staking tier */
26+
27+
userStakingTier(request: QueryUserStakingTierRequest): Promise<QueryUserStakingTierResponse>;
2228
}
2329
export class QueryClientImpl implements Query {
2430
private readonly rpc: Rpc;
@@ -29,6 +35,8 @@ export class QueryClientImpl implements Query {
2935
this.userFeeTier = this.userFeeTier.bind(this);
3036
this.perMarketFeeDiscountParams = this.perMarketFeeDiscountParams.bind(this);
3137
this.allMarketFeeDiscountParams = this.allMarketFeeDiscountParams.bind(this);
38+
this.stakingTiers = this.stakingTiers.bind(this);
39+
this.userStakingTier = this.userStakingTier.bind(this);
3240
}
3341

3442
perpetualFeeParams(request: QueryPerpetualFeeParamsRequest = {}): Promise<QueryPerpetualFeeParamsResponse> {
@@ -55,6 +63,18 @@ export class QueryClientImpl implements Query {
5563
return promise.then(data => QueryAllMarketFeeDiscountParamsResponse.decode(new _m0.Reader(data)));
5664
}
5765

66+
stakingTiers(request: QueryStakingTiersRequest = {}): Promise<QueryStakingTiersResponse> {
67+
const data = QueryStakingTiersRequest.encode(request).finish();
68+
const promise = this.rpc.request("dydxprotocol.feetiers.Query", "StakingTiers", data);
69+
return promise.then(data => QueryStakingTiersResponse.decode(new _m0.Reader(data)));
70+
}
71+
72+
userStakingTier(request: QueryUserStakingTierRequest): Promise<QueryUserStakingTierResponse> {
73+
const data = QueryUserStakingTierRequest.encode(request).finish();
74+
const promise = this.rpc.request("dydxprotocol.feetiers.Query", "UserStakingTier", data);
75+
return promise.then(data => QueryUserStakingTierResponse.decode(new _m0.Reader(data)));
76+
}
77+
5878
}
5979
export const createRpcQueryExtension = (base: QueryClient) => {
6080
const rpc = createProtobufRpcClient(base);
@@ -74,6 +94,14 @@ export const createRpcQueryExtension = (base: QueryClient) => {
7494

7595
allMarketFeeDiscountParams(request?: QueryAllMarketFeeDiscountParamsRequest): Promise<QueryAllMarketFeeDiscountParamsResponse> {
7696
return queryService.allMarketFeeDiscountParams(request);
97+
},
98+
99+
stakingTiers(request?: QueryStakingTiersRequest): Promise<QueryStakingTiersResponse> {
100+
return queryService.stakingTiers(request);
101+
},
102+
103+
userStakingTier(request: QueryUserStakingTierRequest): Promise<QueryUserStakingTierResponse> {
104+
return queryService.userStakingTier(request);
77105
}
78106

79107
};

0 commit comments

Comments
 (0)