Skip to content

Commit

Permalink
[OTE-774] add protos for unconditional revshare config (#2193)
Browse files Browse the repository at this point in the history
  • Loading branch information
affanv14 authored Sep 4, 2024
1 parent 73d64ed commit 14e0837
Show file tree
Hide file tree
Showing 12 changed files with 1,134 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,42 @@ export interface MarketMapperRevShareDetailsSDKType {
/** Unix timestamp recorded when the market revenue share expires */
expiration_ts: Long;
}
/**
* UnconditionalRevShareConfig stores recipients that
* receive a share of net revenue unconditionally.
*/

export interface UnconditionalRevShareConfig {
/** Configs for each recipient. */
configs: UnconditionalRevShareConfig_RecipientConfig[];
}
/**
* UnconditionalRevShareConfig stores recipients that
* receive a share of net revenue unconditionally.
*/

export interface UnconditionalRevShareConfigSDKType {
/** Configs for each recipient. */
configs: UnconditionalRevShareConfig_RecipientConfigSDKType[];
}
/** Describes the config of a recipient */

export interface UnconditionalRevShareConfig_RecipientConfig {
/** Address of the recepient. */
address: string;
/** Percentage of net revenue to share with recipient, in parts-per-million. */

sharePpm: number;
}
/** Describes the config of a recipient */

export interface UnconditionalRevShareConfig_RecipientConfigSDKType {
/** Address of the recepient. */
address: string;
/** Percentage of net revenue to share with recipient, in parts-per-million. */

share_ppm: number;
}

function createBaseMarketMapperRevShareDetails(): MarketMapperRevShareDetails {
return {
Expand Down Expand Up @@ -62,4 +98,104 @@ export const MarketMapperRevShareDetails = {
return message;
}

};

function createBaseUnconditionalRevShareConfig(): UnconditionalRevShareConfig {
return {
configs: []
};
}

export const UnconditionalRevShareConfig = {
encode(message: UnconditionalRevShareConfig, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.configs) {
UnconditionalRevShareConfig_RecipientConfig.encode(v!, writer.uint32(10).fork()).ldelim();
}

return writer;
},

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

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

switch (tag >>> 3) {
case 1:
message.configs.push(UnconditionalRevShareConfig_RecipientConfig.decode(reader, reader.uint32()));
break;

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

return message;
},

fromPartial(object: DeepPartial<UnconditionalRevShareConfig>): UnconditionalRevShareConfig {
const message = createBaseUnconditionalRevShareConfig();
message.configs = object.configs?.map(e => UnconditionalRevShareConfig_RecipientConfig.fromPartial(e)) || [];
return message;
}

};

function createBaseUnconditionalRevShareConfig_RecipientConfig(): UnconditionalRevShareConfig_RecipientConfig {
return {
address: "",
sharePpm: 0
};
}

export const UnconditionalRevShareConfig_RecipientConfig = {
encode(message: UnconditionalRevShareConfig_RecipientConfig, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.address !== "") {
writer.uint32(10).string(message.address);
}

if (message.sharePpm !== 0) {
writer.uint32(16).uint32(message.sharePpm);
}

return writer;
},

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

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

switch (tag >>> 3) {
case 1:
message.address = reader.string();
break;

case 2:
message.sharePpm = reader.uint32();
break;

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

return message;
},

fromPartial(object: DeepPartial<UnconditionalRevShareConfig_RecipientConfig>): UnconditionalRevShareConfig_RecipientConfig {
const message = createBaseUnconditionalRevShareConfig_RecipientConfig();
message.address = object.address ?? "";
message.sharePpm = object.sharePpm ?? 0;
return message;
}

};
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Rpc } from "../../helpers";
import * as _m0 from "protobufjs/minimal";
import { MsgSetMarketMapperRevenueShare, MsgSetMarketMapperRevenueShareResponse, MsgSetMarketMapperRevShareDetailsForMarket, MsgSetMarketMapperRevShareDetailsForMarketResponse } from "./tx";
import { MsgSetMarketMapperRevenueShare, MsgSetMarketMapperRevenueShareResponse, MsgSetMarketMapperRevShareDetailsForMarket, MsgSetMarketMapperRevShareDetailsForMarketResponse, MsgUpdateUnconditionalRevShareConfig, MsgUpdateUnconditionalRevShareConfigResponse } from "./tx";
/** Msg defines the Msg service. */

export interface Msg {
Expand All @@ -15,6 +15,9 @@ export interface Msg {
*/

setMarketMapperRevShareDetailsForMarket(request: MsgSetMarketMapperRevShareDetailsForMarket): Promise<MsgSetMarketMapperRevShareDetailsForMarketResponse>;
/** SetUnconditionalRevShareConfig sets the unconditional revshare config */

updateUnconditionalRevShareConfig(request: MsgUpdateUnconditionalRevShareConfig): Promise<MsgUpdateUnconditionalRevShareConfigResponse>;
}
export class MsgClientImpl implements Msg {
private readonly rpc: Rpc;
Expand All @@ -23,6 +26,7 @@ export class MsgClientImpl implements Msg {
this.rpc = rpc;
this.setMarketMapperRevenueShare = this.setMarketMapperRevenueShare.bind(this);
this.setMarketMapperRevShareDetailsForMarket = this.setMarketMapperRevShareDetailsForMarket.bind(this);
this.updateUnconditionalRevShareConfig = this.updateUnconditionalRevShareConfig.bind(this);
}

setMarketMapperRevenueShare(request: MsgSetMarketMapperRevenueShare): Promise<MsgSetMarketMapperRevenueShareResponse> {
Expand All @@ -37,4 +41,10 @@ export class MsgClientImpl implements Msg {
return promise.then(data => MsgSetMarketMapperRevShareDetailsForMarketResponse.decode(new _m0.Reader(data)));
}

updateUnconditionalRevShareConfig(request: MsgUpdateUnconditionalRevShareConfig): Promise<MsgUpdateUnconditionalRevShareConfigResponse> {
const data = MsgUpdateUnconditionalRevShareConfig.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.revshare.Msg", "UpdateUnconditionalRevShareConfig", data);
return promise.then(data => MsgUpdateUnconditionalRevShareConfigResponse.decode(new _m0.Reader(data)));
}

}
113 changes: 112 additions & 1 deletion indexer/packages/v4-protos/src/codegen/dydxprotocol/revshare/tx.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { MarketMapperRevenueShareParams, MarketMapperRevenueShareParamsSDKType } from "./params";
import { MarketMapperRevShareDetails, MarketMapperRevShareDetailsSDKType } from "./revshare";
import { MarketMapperRevShareDetails, MarketMapperRevShareDetailsSDKType, UnconditionalRevShareConfig, UnconditionalRevShareConfigSDKType } from "./revshare";
import * as _m0 from "protobufjs/minimal";
import { DeepPartial } from "../../helpers";
/** Message to set the market mapper revenue share */
Expand Down Expand Up @@ -60,6 +60,28 @@ export interface MsgSetMarketMapperRevShareDetailsForMarketResponse {}
/** Response to a MsgSetMarketMapperRevShareDetailsForMarket */

export interface MsgSetMarketMapperRevShareDetailsForMarketResponseSDKType {}
/** Message to update the unconditional revenue share config. */

export interface MsgUpdateUnconditionalRevShareConfig {
authority: string;
/** The config to update. */

config?: UnconditionalRevShareConfig;
}
/** Message to update the unconditional revenue share config. */

export interface MsgUpdateUnconditionalRevShareConfigSDKType {
authority: string;
/** The config to update. */

config?: UnconditionalRevShareConfigSDKType;
}
/** Response to MsgUpdateUnconditionalRevShareConfig */

export interface MsgUpdateUnconditionalRevShareConfigResponse {}
/** Response to MsgUpdateUnconditionalRevShareConfig */

export interface MsgUpdateUnconditionalRevShareConfigResponseSDKType {}

function createBaseMsgSetMarketMapperRevenueShare(): MsgSetMarketMapperRevenueShare {
return {
Expand Down Expand Up @@ -247,4 +269,93 @@ export const MsgSetMarketMapperRevShareDetailsForMarketResponse = {
return message;
}

};

function createBaseMsgUpdateUnconditionalRevShareConfig(): MsgUpdateUnconditionalRevShareConfig {
return {
authority: "",
config: undefined
};
}

export const MsgUpdateUnconditionalRevShareConfig = {
encode(message: MsgUpdateUnconditionalRevShareConfig, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.authority !== "") {
writer.uint32(10).string(message.authority);
}

if (message.config !== undefined) {
UnconditionalRevShareConfig.encode(message.config, writer.uint32(18).fork()).ldelim();
}

return writer;
},

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

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

switch (tag >>> 3) {
case 1:
message.authority = reader.string();
break;

case 2:
message.config = UnconditionalRevShareConfig.decode(reader, reader.uint32());
break;

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

return message;
},

fromPartial(object: DeepPartial<MsgUpdateUnconditionalRevShareConfig>): MsgUpdateUnconditionalRevShareConfig {
const message = createBaseMsgUpdateUnconditionalRevShareConfig();
message.authority = object.authority ?? "";
message.config = object.config !== undefined && object.config !== null ? UnconditionalRevShareConfig.fromPartial(object.config) : undefined;
return message;
}

};

function createBaseMsgUpdateUnconditionalRevShareConfigResponse(): MsgUpdateUnconditionalRevShareConfigResponse {
return {};
}

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

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

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

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

return message;
},

fromPartial(_: DeepPartial<MsgUpdateUnconditionalRevShareConfigResponse>): MsgUpdateUnconditionalRevShareConfigResponse {
const message = createBaseMsgUpdateUnconditionalRevShareConfigResponse();
return message;
}

};
16 changes: 16 additions & 0 deletions proto/dydxprotocol/revshare/revshare.proto
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
syntax = "proto3";
package dydxprotocol.revshare;

import "gogoproto/gogo.proto";

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

// MarketMapperRevShareDetails specifies any details associated with the market
// mapper revenue share
message MarketMapperRevShareDetails {
// Unix timestamp recorded when the market revenue share expires
uint64 expiration_ts = 1;
}

// UnconditionalRevShareConfig stores recipients that
// receive a share of net revenue unconditionally.
message UnconditionalRevShareConfig {
// Describes the config of a recipient
message RecipientConfig {
// Address of the recepient.
string address = 1;
// Percentage of net revenue to share with recipient, in parts-per-million.
uint32 share_ppm = 2;
}
// Configs for each recipient.
repeated RecipientConfig configs = 1 [ (gogoproto.nullable) = false ];
}
16 changes: 16 additions & 0 deletions proto/dydxprotocol/revshare/tx.proto
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ service Msg {
rpc SetMarketMapperRevShareDetailsForMarket(
MsgSetMarketMapperRevShareDetailsForMarket)
returns (MsgSetMarketMapperRevShareDetailsForMarketResponse);
// SetUnconditionalRevShareConfig sets the unconditional revshare config
rpc UpdateUnconditionalRevShareConfig(MsgUpdateUnconditionalRevShareConfig)
returns (MsgUpdateUnconditionalRevShareConfigResponse);
}

// Message to set the market mapper revenue share
Expand Down Expand Up @@ -55,3 +58,16 @@ message MsgSetMarketMapperRevShareDetailsForMarket {

// Response to a MsgSetMarketMapperRevShareDetailsForMarket
message MsgSetMarketMapperRevShareDetailsForMarketResponse {}

// Message to update the unconditional revenue share config.
message MsgUpdateUnconditionalRevShareConfig {
// The address that controls the module.
option (cosmos.msg.v1.signer) = "authority";
string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];

// The config to update.
UnconditionalRevShareConfig config = 2 [ (gogoproto.nullable) = false ];
}

// Response to MsgUpdateUnconditionalRevShareConfig
message MsgUpdateUnconditionalRevShareConfigResponse {}
2 changes: 2 additions & 0 deletions protocol/app/msgs/all_msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,8 @@ var (
"/dydxprotocol.revshare.MsgSetMarketMapperRevenueShareResponse": {},
"/dydxprotocol.revshare.MsgSetMarketMapperRevShareDetailsForMarket": {},
"/dydxprotocol.revshare.MsgSetMarketMapperRevShareDetailsForMarketResponse": {},
"/dydxprotocol.revshare.MsgUpdateUnconditionalRevShareConfig": {},
"/dydxprotocol.revshare.MsgUpdateUnconditionalRevShareConfigResponse": {},

// rewards
"/dydxprotocol.rewards.MsgUpdateParams": {},
Expand Down
2 changes: 2 additions & 0 deletions protocol/app/msgs/internal_msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ var (
"/dydxprotocol.revshare.MsgSetMarketMapperRevShareDetailsForMarketResponse": nil,
"/dydxprotocol.revshare.MsgSetMarketMapperRevenueShare": &revshare.MsgSetMarketMapperRevenueShare{}, //nolint:lll
"/dydxprotocol.revshare.MsgSetMarketMapperRevenueShareResponse": nil,
"/dydxprotocol.revshare.MsgUpdateUnconditionalRevShareConfig": &revshare.MsgUpdateUnconditionalRevShareConfig{}, //nolint:lll
"/dydxprotocol.revshare.MsgUpdateUnconditionalRevShareConfigResponse": nil,

// rewards
"/dydxprotocol.rewards.MsgUpdateParams": &rewards.MsgUpdateParams{},
Expand Down
Loading

0 comments on commit 14e0837

Please sign in to comment.