From ef560343bae24bd2f00dc4af4b442a1a5c95d8f6 Mon Sep 17 00:00:00 2001 From: Lucas Date: Wed, 17 Jan 2024 14:26:09 -0800 Subject: [PATCH] gen protos --- .../dydxprotocol/subaccounts/query.lcd.ts | 11 +- .../subaccounts/query.rpc.Query.ts | 19 ++- .../codegen/dydxprotocol/subaccounts/query.ts | 131 ++++++++++++++++++ protocol/cpu.out | Bin 20111 -> 0 bytes protocol/x/subaccounts/types/query.pb.go | 16 +-- 5 files changed, 167 insertions(+), 10 deletions(-) delete mode 100644 protocol/cpu.out diff --git a/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.lcd.ts b/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.lcd.ts index a839f3ee2f..93d034a144 100644 --- a/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.lcd.ts +++ b/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.lcd.ts @@ -1,6 +1,6 @@ import { setPaginationParams } from "../../helpers"; import { LCDClient } from "@osmonauts/lcd"; -import { QueryGetSubaccountRequest, QuerySubaccountResponseSDKType, QueryAllSubaccountRequest, QuerySubaccountAllResponseSDKType } from "./query"; +import { QueryGetSubaccountRequest, QuerySubaccountResponseSDKType, QueryAllSubaccountRequest, QuerySubaccountAllResponseSDKType, QueryGetWithdrawalAndTransfersBlockedInfoRequest, QueryGetWithdrawalAndTransfersBlockedInfoResponseSDKType } from "./query"; export class LCDQueryClient { req: LCDClient; @@ -12,6 +12,7 @@ export class LCDQueryClient { this.req = requestClient; this.subaccount = this.subaccount.bind(this); this.subaccountAll = this.subaccountAll.bind(this); + this.getWithdrawalAndTransfersBlockedInfo = this.getWithdrawalAndTransfersBlockedInfo.bind(this); } /* Queries a Subaccount by id */ @@ -37,5 +38,13 @@ export class LCDQueryClient { const endpoint = `dydxprotocol/subaccounts/subaccount`; return await this.req.get(endpoint, options); } + /* Queries information about whether withdrawal and transfers are blocked, and + if so which block they are re-enabled on. */ + + + async getWithdrawalAndTransfersBlockedInfo(_params: QueryGetWithdrawalAndTransfersBlockedInfoRequest = {}): Promise { + const endpoint = `dydxprotocol/subaccounts/withdrawals_and_transfers_blocked_info`; + return await this.req.get(endpoint); + } } \ No newline at end of file diff --git a/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.rpc.Query.ts b/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.rpc.Query.ts index 274c97443a..41f65d7652 100644 --- a/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.rpc.Query.ts +++ b/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.rpc.Query.ts @@ -1,7 +1,7 @@ import { Rpc } from "../../helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryClient, createProtobufRpcClient } from "@cosmjs/stargate"; -import { QueryGetSubaccountRequest, QuerySubaccountResponse, QueryAllSubaccountRequest, QuerySubaccountAllResponse } from "./query"; +import { QueryGetSubaccountRequest, QuerySubaccountResponse, QueryAllSubaccountRequest, QuerySubaccountAllResponse, QueryGetWithdrawalAndTransfersBlockedInfoRequest, QueryGetWithdrawalAndTransfersBlockedInfoResponse } from "./query"; /** Query defines the gRPC querier service. */ export interface Query { @@ -10,6 +10,12 @@ export interface Query { /** Queries a list of Subaccount items. */ subaccountAll(request?: QueryAllSubaccountRequest): Promise; + /** + * Queries information about whether withdrawal and transfers are blocked, and + * if so which block they are re-enabled on. + */ + + getWithdrawalAndTransfersBlockedInfo(request?: QueryGetWithdrawalAndTransfersBlockedInfoRequest): Promise; } export class QueryClientImpl implements Query { private readonly rpc: Rpc; @@ -18,6 +24,7 @@ export class QueryClientImpl implements Query { this.rpc = rpc; this.subaccount = this.subaccount.bind(this); this.subaccountAll = this.subaccountAll.bind(this); + this.getWithdrawalAndTransfersBlockedInfo = this.getWithdrawalAndTransfersBlockedInfo.bind(this); } subaccount(request: QueryGetSubaccountRequest): Promise { @@ -34,6 +41,12 @@ export class QueryClientImpl implements Query { return promise.then(data => QuerySubaccountAllResponse.decode(new _m0.Reader(data))); } + getWithdrawalAndTransfersBlockedInfo(request: QueryGetWithdrawalAndTransfersBlockedInfoRequest = {}): Promise { + const data = QueryGetWithdrawalAndTransfersBlockedInfoRequest.encode(request).finish(); + const promise = this.rpc.request("dydxprotocol.subaccounts.Query", "GetWithdrawalAndTransfersBlockedInfo", data); + return promise.then(data => QueryGetWithdrawalAndTransfersBlockedInfoResponse.decode(new _m0.Reader(data))); + } + } export const createRpcQueryExtension = (base: QueryClient) => { const rpc = createProtobufRpcClient(base); @@ -45,6 +58,10 @@ export const createRpcQueryExtension = (base: QueryClient) => { subaccountAll(request?: QueryAllSubaccountRequest): Promise { return queryService.subaccountAll(request); + }, + + getWithdrawalAndTransfersBlockedInfo(request?: QueryGetWithdrawalAndTransfersBlockedInfoRequest): Promise { + return queryService.getWithdrawalAndTransfersBlockedInfo(request); } }; diff --git a/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.ts b/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.ts index 34f103f823..0b1d182ed9 100644 --- a/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.ts +++ b/indexer/packages/v4-protos/src/codegen/dydxprotocol/subaccounts/query.ts @@ -46,6 +46,38 @@ export interface QuerySubaccountAllResponseSDKType { subaccount: SubaccountSDKType[]; pagination?: PageResponseSDKType; } +/** + * QueryGetWithdrawalAndTransfersBlockedInfoRequest is a request type for + * fetching information about whether withdrawals and transfers are blocked. + */ + +export interface QueryGetWithdrawalAndTransfersBlockedInfoRequest {} +/** + * QueryGetWithdrawalAndTransfersBlockedInfoRequest is a request type for + * fetching information about whether withdrawals and transfers are blocked. + */ + +export interface QueryGetWithdrawalAndTransfersBlockedInfoRequestSDKType {} +/** + * QueryGetWithdrawalAndTransfersBlockedInfoRequest is a response type for + * fetching information about whether withdrawals and transfers are blocked. + */ + +export interface QueryGetWithdrawalAndTransfersBlockedInfoResponse { + negativeTncSubaccountSeenAtBlock: number; + chainOutageSeenAtBlock: number; + withdrawalsAndTransfersUnblockedAtBlock: number; +} +/** + * QueryGetWithdrawalAndTransfersBlockedInfoRequest is a response type for + * fetching information about whether withdrawals and transfers are blocked. + */ + +export interface QueryGetWithdrawalAndTransfersBlockedInfoResponseSDKType { + negative_tnc_subaccount_seen_at_block: number; + chain_outage_seen_at_block: number; + withdrawals_and_transfers_unblocked_at_block: number; +} function createBaseQueryGetSubaccountRequest(): QueryGetSubaccountRequest { return { @@ -245,4 +277,103 @@ export const QuerySubaccountAllResponse = { return message; } +}; + +function createBaseQueryGetWithdrawalAndTransfersBlockedInfoRequest(): QueryGetWithdrawalAndTransfersBlockedInfoRequest { + return {}; +} + +export const QueryGetWithdrawalAndTransfersBlockedInfoRequest = { + encode(_: QueryGetWithdrawalAndTransfersBlockedInfoRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetWithdrawalAndTransfersBlockedInfoRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoRequest(); + + while (reader.pos < end) { + const tag = reader.uint32(); + + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + + return message; + }, + + fromPartial(_: DeepPartial): QueryGetWithdrawalAndTransfersBlockedInfoRequest { + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoRequest(); + return message; + } + +}; + +function createBaseQueryGetWithdrawalAndTransfersBlockedInfoResponse(): QueryGetWithdrawalAndTransfersBlockedInfoResponse { + return { + negativeTncSubaccountSeenAtBlock: 0, + chainOutageSeenAtBlock: 0, + withdrawalsAndTransfersUnblockedAtBlock: 0 + }; +} + +export const QueryGetWithdrawalAndTransfersBlockedInfoResponse = { + encode(message: QueryGetWithdrawalAndTransfersBlockedInfoResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.negativeTncSubaccountSeenAtBlock !== 0) { + writer.uint32(8).uint32(message.negativeTncSubaccountSeenAtBlock); + } + + if (message.chainOutageSeenAtBlock !== 0) { + writer.uint32(16).uint32(message.chainOutageSeenAtBlock); + } + + if (message.withdrawalsAndTransfersUnblockedAtBlock !== 0) { + writer.uint32(24).uint32(message.withdrawalsAndTransfersUnblockedAtBlock); + } + + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetWithdrawalAndTransfersBlockedInfoResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoResponse(); + + while (reader.pos < end) { + const tag = reader.uint32(); + + switch (tag >>> 3) { + case 1: + message.negativeTncSubaccountSeenAtBlock = reader.uint32(); + break; + + case 2: + message.chainOutageSeenAtBlock = reader.uint32(); + break; + + case 3: + message.withdrawalsAndTransfersUnblockedAtBlock = reader.uint32(); + break; + + default: + reader.skipType(tag & 7); + break; + } + } + + return message; + }, + + fromPartial(object: DeepPartial): QueryGetWithdrawalAndTransfersBlockedInfoResponse { + const message = createBaseQueryGetWithdrawalAndTransfersBlockedInfoResponse(); + message.negativeTncSubaccountSeenAtBlock = object.negativeTncSubaccountSeenAtBlock ?? 0; + message.chainOutageSeenAtBlock = object.chainOutageSeenAtBlock ?? 0; + message.withdrawalsAndTransfersUnblockedAtBlock = object.withdrawalsAndTransfersUnblockedAtBlock ?? 0; + return message; + } + }; \ No newline at end of file diff --git a/protocol/cpu.out b/protocol/cpu.out deleted file mode 100644 index 2b84180370fa72adf664c5d374ebc97d7aec3df5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20111 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