Skip to content

Commit

Permalink
[TRA-442] Add query for market mapper revenue share params (#1746)
Browse files Browse the repository at this point in the history
Signed-off-by: Shrenuj Bansal <[email protected]>
  • Loading branch information
shrenujb authored Jun 21, 2024
1 parent 1bc1c73 commit 0f32a38
Show file tree
Hide file tree
Showing 9 changed files with 635 additions and 44 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { LCDClient } from "@osmonauts/lcd";
import { QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponseSDKType } from "./query";
import { QueryMarketMapperRevenueShareParams, QueryMarketMapperRevenueShareParamsResponseSDKType, QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponseSDKType } from "./query";
export class LCDQueryClient {
req: LCDClient;

Expand All @@ -9,8 +9,17 @@ export class LCDQueryClient {
requestClient: LCDClient;
}) {
this.req = requestClient;
this.marketMapperRevenueShareParams = this.marketMapperRevenueShareParams.bind(this);
this.marketMapperRevShareDetails = this.marketMapperRevShareDetails.bind(this);
}
/* MarketMapperRevenueShareParams queries the revenue share params for the
market mapper */


async marketMapperRevenueShareParams(_params: QueryMarketMapperRevenueShareParams = {}): Promise<QueryMarketMapperRevenueShareParamsResponseSDKType> {
const endpoint = `dydxprotocol/revshare/market_mapper_rev_share_params`;
return await this.req.get<QueryMarketMapperRevenueShareParamsResponseSDKType>(endpoint);
}
/* Queries market mapper revenue share details for a specific market */


Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,34 @@
import { Rpc } from "../../helpers";
import * as _m0 from "protobufjs/minimal";
import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate";
import { QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponse } from "./query";
import { QueryMarketMapperRevenueShareParams, QueryMarketMapperRevenueShareParamsResponse, QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponse } from "./query";
/** Query defines the gRPC querier service. */

export interface Query {
/**
* MarketMapperRevenueShareParams queries the revenue share params for the
* market mapper
*/
marketMapperRevenueShareParams(request?: QueryMarketMapperRevenueShareParams): Promise<QueryMarketMapperRevenueShareParamsResponse>;
/** Queries market mapper revenue share details for a specific market */

marketMapperRevShareDetails(request: QueryMarketMapperRevShareDetails): Promise<QueryMarketMapperRevShareDetailsResponse>;
}
export class QueryClientImpl implements Query {
private readonly rpc: Rpc;

constructor(rpc: Rpc) {
this.rpc = rpc;
this.marketMapperRevenueShareParams = this.marketMapperRevenueShareParams.bind(this);
this.marketMapperRevShareDetails = this.marketMapperRevShareDetails.bind(this);
}

marketMapperRevenueShareParams(request: QueryMarketMapperRevenueShareParams = {}): Promise<QueryMarketMapperRevenueShareParamsResponse> {
const data = QueryMarketMapperRevenueShareParams.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.revshare.Query", "MarketMapperRevenueShareParams", data);
return promise.then(data => QueryMarketMapperRevenueShareParamsResponse.decode(new _m0.Reader(data)));
}

marketMapperRevShareDetails(request: QueryMarketMapperRevShareDetails): Promise<QueryMarketMapperRevShareDetailsResponse> {
const data = QueryMarketMapperRevShareDetails.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.revshare.Query", "MarketMapperRevShareDetails", data);
Expand All @@ -27,6 +40,10 @@ export const createRpcQueryExtension = (base: QueryClient) => {
const rpc = createProtobufRpcClient(base);
const queryService = new QueryClientImpl(rpc);
return {
marketMapperRevenueShareParams(request?: QueryMarketMapperRevenueShareParams): Promise<QueryMarketMapperRevenueShareParamsResponse> {
return queryService.marketMapperRevenueShareParams(request);
},

marketMapperRevShareDetails(request: QueryMarketMapperRevShareDetails): Promise<QueryMarketMapperRevShareDetailsResponse> {
return queryService.marketMapperRevShareDetails(request);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
import { MarketMapperRevenueShareParams, MarketMapperRevenueShareParamsSDKType } from "./params";
import { MarketMapperRevShareDetails, MarketMapperRevShareDetailsSDKType } from "./revshare";
import * as _m0 from "protobufjs/minimal";
import { DeepPartial } from "../../helpers";
/** Queries for the default market mapper revenue share params */

export interface QueryMarketMapperRevenueShareParams {}
/** Queries for the default market mapper revenue share params */

export interface QueryMarketMapperRevenueShareParamsSDKType {}
/** Response type for QueryMarketMapperRevenueShareParams */

export interface QueryMarketMapperRevenueShareParamsResponse {
params?: MarketMapperRevenueShareParams;
}
/** Response type for QueryMarketMapperRevenueShareParams */

export interface QueryMarketMapperRevenueShareParamsResponseSDKType {
params?: MarketMapperRevenueShareParamsSDKType;
}
/** Queries market mapper revenue share details for a specific market */

export interface QueryMarketMapperRevShareDetails {
Expand All @@ -24,6 +41,85 @@ export interface QueryMarketMapperRevShareDetailsResponseSDKType {
details?: MarketMapperRevShareDetailsSDKType;
}

function createBaseQueryMarketMapperRevenueShareParams(): QueryMarketMapperRevenueShareParams {
return {};
}

export const QueryMarketMapperRevenueShareParams = {
encode(_: QueryMarketMapperRevenueShareParams, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
return writer;
},

decode(input: _m0.Reader | Uint8Array, length?: number): QueryMarketMapperRevenueShareParams {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseQueryMarketMapperRevenueShareParams();

while (reader.pos < end) {
const tag = reader.uint32();

switch (tag >>> 3) {
default:
reader.skipType(tag & 7);
break;
}
}

return message;
},

fromPartial(_: DeepPartial<QueryMarketMapperRevenueShareParams>): QueryMarketMapperRevenueShareParams {
const message = createBaseQueryMarketMapperRevenueShareParams();
return message;
}

};

function createBaseQueryMarketMapperRevenueShareParamsResponse(): QueryMarketMapperRevenueShareParamsResponse {
return {
params: undefined
};
}

export const QueryMarketMapperRevenueShareParamsResponse = {
encode(message: QueryMarketMapperRevenueShareParamsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.params !== undefined) {
MarketMapperRevenueShareParams.encode(message.params, writer.uint32(10).fork()).ldelim();
}

return writer;
},

decode(input: _m0.Reader | Uint8Array, length?: number): QueryMarketMapperRevenueShareParamsResponse {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseQueryMarketMapperRevenueShareParamsResponse();

while (reader.pos < end) {
const tag = reader.uint32();

switch (tag >>> 3) {
case 1:
message.params = MarketMapperRevenueShareParams.decode(reader, reader.uint32());
break;

default:
reader.skipType(tag & 7);
break;
}
}

return message;
},

fromPartial(object: DeepPartial<QueryMarketMapperRevenueShareParamsResponse>): QueryMarketMapperRevenueShareParamsResponse {
const message = createBaseQueryMarketMapperRevenueShareParamsResponse();
message.params = object.params !== undefined && object.params !== null ? MarketMapperRevenueShareParams.fromPartial(object.params) : undefined;
return message;
}

};

function createBaseQueryMarketMapperRevShareDetails(): QueryMarketMapperRevShareDetails {
return {
marketId: 0
Expand Down
21 changes: 20 additions & 1 deletion proto/dydxprotocol/revshare/query.proto
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
syntax = "proto3";
package dydxprotocol.revshare;

import "gogoproto/gogo.proto";
import "google/api/annotations.proto";

import "dydxprotocol/revshare/params.proto";
import "dydxprotocol/revshare/revshare.proto";

option go_package = "github.com/dydxprotocol/v4-chain/protocol/x/revshare/types";

// Query defines the gRPC querier service.
service Query {
// MarketMapperRevenueShareParams queries the revenue share params for the
// market mapper
rpc MarketMapperRevenueShareParams(QueryMarketMapperRevenueShareParams)
returns (QueryMarketMapperRevenueShareParamsResponse) {
option (google.api.http).get =
"/dydxprotocol/revshare/market_mapper_rev_share_params";
}

// Queries market mapper revenue share details for a specific market
rpc MarketMapperRevShareDetails(QueryMarketMapperRevShareDetails)
returns (QueryMarketMapperRevShareDetailsResponse) {
Expand All @@ -16,10 +27,18 @@ service Query {
}
}

// Queries for the default market mapper revenue share params
message QueryMarketMapperRevenueShareParams {}

// Response type for QueryMarketMapperRevenueShareParams
message QueryMarketMapperRevenueShareParamsResponse {
MarketMapperRevenueShareParams params = 1 [ (gogoproto.nullable) = false ];
}

// Queries market mapper revenue share details for a specific market
message QueryMarketMapperRevShareDetails { uint32 market_id = 1; }

// Response type for QueryMarketMapperRevShareDetails
message QueryMarketMapperRevShareDetailsResponse {
MarketMapperRevShareDetails details = 1;
MarketMapperRevShareDetails details = 1 [ (gogoproto.nullable) = false ];
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package keeper

import (
"context"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/dydxprotocol/v4-chain/protocol/x/revshare/types"
)

func (k Keeper) MarketMapperRevenueShareParams(
ctx context.Context,
req *types.QueryMarketMapperRevenueShareParams,
) (*types.QueryMarketMapperRevenueShareParamsResponse, error) {
params := k.GetMarketMapperRevenueShareParams(sdk.UnwrapSDKContext(ctx))
return &types.QueryMarketMapperRevenueShareParamsResponse{
Params: params,
}, nil
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package keeper_test

import (
"testing"

testapp "github.com/dydxprotocol/v4-chain/protocol/testutil/app"
"github.com/dydxprotocol/v4-chain/protocol/testutil/constants"
"github.com/dydxprotocol/v4-chain/protocol/x/revshare/types"
"github.com/stretchr/testify/require"
)

func TestQueryMarketMapperRevenueParams(t *testing.T) {
tApp := testapp.NewTestAppBuilder(t).Build()
ctx := tApp.InitChain()
k := tApp.App.RevShareKeeper

params := types.MarketMapperRevenueShareParams{
Address: constants.AliceAccAddress.String(),
RevenueSharePpm: 100_000,
ValidDays: 100,
}

err := k.SetMarketMapperRevenueShareParams(ctx, params)
require.NoError(t, err)

resp, err := k.MarketMapperRevenueShareParams(ctx, &types.QueryMarketMapperRevenueShareParams{})
require.NoError(t, err)
require.Equal(t, resp.Params, params)
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ func (k Keeper) MarketMapperRevShareDetails(
return nil, err
}
return &types.QueryMarketMapperRevShareDetailsResponse{
Details: &revShareDetails,
Details: revShareDetails,
}, nil
}
Loading

0 comments on commit 0f32a38

Please sign in to comment.