Skip to content

Commit

Permalink
Merge branch 'main' into tra654
Browse files Browse the repository at this point in the history
  • Loading branch information
shrenujb committed Sep 27, 2024
2 parents 2b308cd + 5533a8f commit 4080ce3
Show file tree
Hide file tree
Showing 26 changed files with 2,006 additions and 55 deletions.
1 change: 1 addition & 0 deletions indexer/packages/base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
},
"homepage": "https://github.com/dydxprotocol/indexer#readme",
"dependencies": {
"@aws-sdk/client-ec2": "^3.354.0",
"axios": "^1.2.1",
"big.js": "^6.2.1",
"bignumber.js": "^9.0.2",
Expand Down
51 changes: 51 additions & 0 deletions indexer/packages/base/src/az-id.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { DescribeAvailabilityZonesCommand, EC2Client } from '@aws-sdk/client-ec2';

import { axiosRequest } from './axios';
import config from './config';
import logger from './logger';

export async function getAvailabilityZoneId(): Promise<string> {
if (config.ECS_CONTAINER_METADATA_URI_V4 !== '' && config.AWS_REGION !== '') {
const taskUrl = `${config.ECS_CONTAINER_METADATA_URI_V4}/task`;
try {
const response = await axiosRequest({
method: 'GET',
url: taskUrl,
}) as { AvailabilityZone: string };
const client = new EC2Client({ region: config.AWS_REGION });
const command = new DescribeAvailabilityZonesCommand({
ZoneNames: [response.AvailabilityZone],
});
try {
const ec2Response = await client.send(command);
const zoneId = ec2Response.AvailabilityZones![0].ZoneId!;
logger.info({
at: 'az-id#getAvailabilityZoneId',
message: `Got availability zone id ${zoneId}.`,
});
return ec2Response.AvailabilityZones![0].ZoneId!;
} catch (error) {
logger.error({
at: 'az-id#getAvailabilityZoneId',
message: 'Failed to fetch availabilty zone id from EC2. ',
error,
});
return '';
}
} catch (error) {
logger.error({
at: 'az-id#getAvailabilityZoneId',
message: 'Failed to retrieve availability zone from metadata endpoint. No availabilty zone id found.',
error,
taskUrl,
});
return '';
}
} else {
logger.error({
at: 'az-id#getAvailabilityZoneId',
message: 'No metadata URI or region. No availabilty zone id found.',
});
return '';
}
}
1 change: 1 addition & 0 deletions indexer/packages/base/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export const baseConfigSchema = {
STATSD_PORT: parseInteger({ default: 8125 }),
LOG_LEVEL: parseString({ default: 'debug' }),
ECS_CONTAINER_METADATA_URI_V4: parseString({ default: '' }),
AWS_REGION: parseString({ default: '' }),
};

export default parseSchema(baseConfigSchema);
1 change: 1 addition & 0 deletions indexer/packages/base/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export * from './bugsnag';
export * from './stats-util';
export * from './date-helpers';
export * from './instance-id';
export * from './az-id';

// Do this outside logger.ts to avoid a dependency cycle with logger transports that may trigger
// additional logging.
Expand Down
5 changes: 5 additions & 0 deletions indexer/packages/postgres/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,8 @@ export const DEFAULT_POSTGRES_OPTIONS : Options = config.USE_READ_REPLICA
export const MAX_PARENT_SUBACCOUNTS: number = 128;

export const CHILD_SUBACCOUNT_MULTIPLIER: number = 1000;

// From https://github.com/dydxprotocol/v4-chain/blob/protocol/v7.0.0-dev0/protocol/app/module_accounts_test.go#L41
export const MEGAVAULT_MODULE_ADDRESS: string = 'dydx18tkxrnrkqc2t0lr3zxr5g6a4hdvqksylxqje4r';
// Generated from the module address + subaccount number 0.
export const MEGAVAULT_SUBACCOUNT_ID: string = 'c7169f81-0c80-54c5-a41f-9cbb6a538fdf';
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { LCDClient } from "@osmonauts/lcd";
import { QueryMarketMapperRevenueShareParams, QueryMarketMapperRevenueShareParamsResponseSDKType, QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponseSDKType } from "./query";
import { QueryMarketMapperRevenueShareParams, QueryMarketMapperRevenueShareParamsResponseSDKType, QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponseSDKType, QueryUnconditionalRevShareConfig, QueryUnconditionalRevShareConfigResponseSDKType } from "./query";
export class LCDQueryClient {
req: LCDClient;

Expand All @@ -11,6 +11,7 @@ export class LCDQueryClient {
this.req = requestClient;
this.marketMapperRevenueShareParams = this.marketMapperRevenueShareParams.bind(this);
this.marketMapperRevShareDetails = this.marketMapperRevShareDetails.bind(this);
this.unconditionalRevShareConfig = this.unconditionalRevShareConfig.bind(this);
}
/* MarketMapperRevenueShareParams queries the revenue share params for the
market mapper */
Expand All @@ -27,5 +28,12 @@ export class LCDQueryClient {
const endpoint = `dydxprotocol/revshare/market_mapper_rev_share_details/${params.marketId}`;
return await this.req.get<QueryMarketMapperRevShareDetailsResponseSDKType>(endpoint);
}
/* Queries unconditional revenue share config */


async unconditionalRevShareConfig(_params: QueryUnconditionalRevShareConfig = {}): Promise<QueryUnconditionalRevShareConfigResponseSDKType> {
const endpoint = `dydxprotocol/revshare/unconditional_rev_share`;
return await this.req.get<QueryUnconditionalRevShareConfigResponseSDKType>(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 { QueryMarketMapperRevenueShareParams, QueryMarketMapperRevenueShareParamsResponse, QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponse } from "./query";
import { QueryMarketMapperRevenueShareParams, QueryMarketMapperRevenueShareParamsResponse, QueryMarketMapperRevShareDetails, QueryMarketMapperRevShareDetailsResponse, QueryUnconditionalRevShareConfig, QueryUnconditionalRevShareConfigResponse } from "./query";
/** Query defines the gRPC querier service. */

export interface Query {
Expand All @@ -13,6 +13,9 @@ export interface Query {
/** Queries market mapper revenue share details for a specific market */

marketMapperRevShareDetails(request: QueryMarketMapperRevShareDetails): Promise<QueryMarketMapperRevShareDetailsResponse>;
/** Queries unconditional revenue share config */

unconditionalRevShareConfig(request?: QueryUnconditionalRevShareConfig): Promise<QueryUnconditionalRevShareConfigResponse>;
}
export class QueryClientImpl implements Query {
private readonly rpc: Rpc;
Expand All @@ -21,6 +24,7 @@ export class QueryClientImpl implements Query {
this.rpc = rpc;
this.marketMapperRevenueShareParams = this.marketMapperRevenueShareParams.bind(this);
this.marketMapperRevShareDetails = this.marketMapperRevShareDetails.bind(this);
this.unconditionalRevShareConfig = this.unconditionalRevShareConfig.bind(this);
}

marketMapperRevenueShareParams(request: QueryMarketMapperRevenueShareParams = {}): Promise<QueryMarketMapperRevenueShareParamsResponse> {
Expand All @@ -35,6 +39,12 @@ export class QueryClientImpl implements Query {
return promise.then(data => QueryMarketMapperRevShareDetailsResponse.decode(new _m0.Reader(data)));
}

unconditionalRevShareConfig(request: QueryUnconditionalRevShareConfig = {}): Promise<QueryUnconditionalRevShareConfigResponse> {
const data = QueryUnconditionalRevShareConfig.encode(request).finish();
const promise = this.rpc.request("dydxprotocol.revshare.Query", "UnconditionalRevShareConfig", data);
return promise.then(data => QueryUnconditionalRevShareConfigResponse.decode(new _m0.Reader(data)));
}

}
export const createRpcQueryExtension = (base: QueryClient) => {
const rpc = createProtobufRpcClient(base);
Expand All @@ -46,6 +56,10 @@ export const createRpcQueryExtension = (base: QueryClient) => {

marketMapperRevShareDetails(request: QueryMarketMapperRevShareDetails): Promise<QueryMarketMapperRevShareDetailsResponse> {
return queryService.marketMapperRevShareDetails(request);
},

unconditionalRevShareConfig(request?: QueryUnconditionalRevShareConfig): Promise<QueryUnconditionalRevShareConfigResponse> {
return queryService.unconditionalRevShareConfig(request);
}

};
Expand Down
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";
/** Queries for the default market mapper revenue share params */
Expand Down Expand Up @@ -40,6 +40,22 @@ export interface QueryMarketMapperRevShareDetailsResponse {
export interface QueryMarketMapperRevShareDetailsResponseSDKType {
details?: MarketMapperRevShareDetailsSDKType;
}
/** Queries unconditional revenue share details */

export interface QueryUnconditionalRevShareConfig {}
/** Queries unconditional revenue share details */

export interface QueryUnconditionalRevShareConfigSDKType {}
/** Response type for QueryUnconditionalRevShareConfig */

export interface QueryUnconditionalRevShareConfigResponse {
config?: UnconditionalRevShareConfig;
}
/** Response type for QueryUnconditionalRevShareConfig */

export interface QueryUnconditionalRevShareConfigResponseSDKType {
config?: UnconditionalRevShareConfigSDKType;
}

function createBaseQueryMarketMapperRevenueShareParams(): QueryMarketMapperRevenueShareParams {
return {};
Expand Down Expand Up @@ -208,4 +224,83 @@ export const QueryMarketMapperRevShareDetailsResponse = {
return message;
}

};

function createBaseQueryUnconditionalRevShareConfig(): QueryUnconditionalRevShareConfig {
return {};
}

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

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

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

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

return message;
},

fromPartial(_: DeepPartial<QueryUnconditionalRevShareConfig>): QueryUnconditionalRevShareConfig {
const message = createBaseQueryUnconditionalRevShareConfig();
return message;
}

};

function createBaseQueryUnconditionalRevShareConfigResponse(): QueryUnconditionalRevShareConfigResponse {
return {
config: undefined
};
}

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

return writer;
},

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

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

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

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

return message;
},

fromPartial(object: DeepPartial<QueryUnconditionalRevShareConfigResponse>): QueryUnconditionalRevShareConfigResponse {
const message = createBaseQueryUnconditionalRevShareConfigResponse();
message.config = object.config !== undefined && object.config !== null ? UnconditionalRevShareConfig.fromPartial(object.config) : undefined;
return message;
}

};
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export interface Msg {
*/

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

updateUnconditionalRevShareConfig(request: MsgUpdateUnconditionalRevShareConfig): Promise<MsgUpdateUnconditionalRevShareConfigResponse>;
}
Expand Down
Loading

0 comments on commit 4080ce3

Please sign in to comment.