From b15033bf50d09a67fededec0ca1894cda9cfb19c Mon Sep 17 00:00:00 2001 From: Petio Petrov Date: Fri, 29 Sep 2023 13:16:23 -0400 Subject: [PATCH 1/2] (refactor) Adds debugging statements to Dexalot --- src/chains/injective/injective.message.ts | 14 ++++++++ src/connectors/dexalot/dexalot.ts | 40 +++++++++++++---------- src/services/logger.ts | 5 +-- 3 files changed, 39 insertions(+), 20 deletions(-) diff --git a/src/chains/injective/injective.message.ts b/src/chains/injective/injective.message.ts index 9927c72ea3..d487970596 100644 --- a/src/chains/injective/injective.message.ts +++ b/src/chains/injective/injective.message.ts @@ -22,6 +22,7 @@ import LRUCache from 'lru-cache'; import { getInjectiveConfig } from './injective.config'; import { networkToString } from './injective.mappers'; import { AccountDetails } from '@injectivelabs/sdk-ts/dist/cjs/types/auth'; +import { logger } from '../../services/logger'; interface MsgBroadcasterTxOptions { msgs: Msgs | Msgs[]; @@ -147,12 +148,14 @@ export class MsgBroadcasterLocal { injectiveAddress: getInjectiveSignerAddress(transaction.injectiveAddress), sequence: this._localSequence++, } as MsgBroadcasterTxOptions; + logger.debug(`Pushing ${tx} on the queue.`); this._txQueue.push(tx); try { while (!this.isNextTx(tx)) { await this.sleep(10); // sleep } + logger.debug(`Executing ${tx} from the queue.`); this._isBlocked = true; /** Account Details **/ @@ -169,6 +172,7 @@ export class MsgBroadcasterLocal { const currentNonce = await this._chain.nonceManager.getNextNonce( transaction.injectiveAddress ); + logger.debug(`Executing with nonce ${currentNonce}.`); txResponse = await this.createAndSend( tx, timeoutHeight, @@ -187,6 +191,9 @@ export class MsgBroadcasterLocal { .split('account sequence mismatch, expected ')[1] .split(',')[0] ); + logger.debug( + `Account sequence mismatch expected. Expected sequence ${expectedSequence}.` + ); await this._chain.nonceManager.overridePendingNonce( transaction.injectiveAddress, expectedSequence @@ -205,11 +212,18 @@ export class MsgBroadcasterLocal { } else { throw new Error(txResponse.data.tx_response.raw_log); } + } catch (e) { + logger.debug(e); + throw e; } finally { this._txQueue.shift(); this._isBlocked = false; } + if (txResponse.data.tx_response.code !== 0) { + logger.debug(`Tx failed`); + } + return { txHash: txResponse.data.tx_response.code === 0 diff --git a/src/connectors/dexalot/dexalot.ts b/src/connectors/dexalot/dexalot.ts index 31c43e2c04..d62cd9613b 100644 --- a/src/connectors/dexalot/dexalot.ts +++ b/src/connectors/dexalot/dexalot.ts @@ -1,14 +1,14 @@ import { + ClobBatchUpdateRequest, + ClobDeleteOrderRequest, + ClobDeleteOrderRequestExtract, + ClobGetOrderRequest, + ClobGetOrderResponse, ClobMarketsRequest, ClobOrderbookRequest, - ClobTickerRequest, - ClobGetOrderRequest, ClobPostOrderRequest, - ClobDeleteOrderRequest, - ClobGetOrderResponse, - ClobBatchUpdateRequest, + ClobTickerRequest, CreateOrderParam, - ClobDeleteOrderRequestExtract, } from '../../clob/clob.requests'; import { CLOBish, @@ -32,11 +32,12 @@ import { indexOf } from 'lodash'; import path from 'path'; import { rootPath } from '../../paths'; import { - parseMarkerInfo, createBook, - parseOrderInfo, fromUtf8, + parseMarkerInfo, + parseOrderInfo, } from './dexalot.utils'; +import { TransactionResponse } from '@ethersproject/providers'; export class DexalotCLOB implements CLOBish { private static _instances: LRUCache; @@ -63,6 +64,7 @@ export class DexalotCLOB implements CLOBish { public get tradePairsContract(): Contract { return this._tradePairsContract; } + public set tradePairsContract(value: Contract) { this._tradePairsContract = value; } @@ -274,10 +276,7 @@ export class DexalotCLOB implements CLOBish { req.orderType === 'LIMIT_MAKER' ? TimeInForce.PO : TimeInForce.GTC ); txData.gasLimit = BigNumber.from(String(this._conf.gasLimitEstimate)); - const txResponse = await EVMTxBroadcaster.getInstance( - this._chain, - req.address - ).broadcast(txData); + const txResponse = await this.broadcastTransaction(req, txData); return { txHash: txResponse.hash, clientOrderID }; } @@ -289,10 +288,7 @@ export class DexalotCLOB implements CLOBish { req.orderId ); txData.gasLimit = BigNumber.from(String(this._conf.gasLimitEstimate)); - const txResponse = await EVMTxBroadcaster.getInstance( - this._chain, - req.address - ).broadcast(txData); + const txResponse = await this.broadcastTransaction(req, txData); return { txHash: txResponse.hash }; } @@ -331,11 +327,19 @@ export class DexalotCLOB implements CLOBish { txData = await this.buildDeleteOrder(req.cancelOrderParams); txData.gasLimit = BigNumber.from(String(this._conf.gasLimitEstimate)); - const txResponse = await EVMTxBroadcaster.getInstance( + const txResponse = await this.broadcastTransaction(req, txData); + return { txHash: txResponse.hash, clientOrderID: data.clientOrderID }; + } + + async broadcastTransaction( + req: ClobBatchUpdateRequest, + txData: PopulatedTransaction + ): Promise { + logger.debug(`Broadcasting tx: ${JSON.stringify(txData)}`); + return await EVMTxBroadcaster.getInstance( this._chain, req.address ).broadcast(txData); - return { txHash: txResponse.hash, clientOrderID: data.clientOrderID }; } public async buildPostOrder( diff --git a/src/services/logger.ts b/src/services/logger.ts index 8c77abaaf2..2f574284de 100644 --- a/src/services/logger.ts +++ b/src/services/logger.ts @@ -5,6 +5,7 @@ import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import appRoot from 'app-root-path'; import { ConfigManagerV2 } from './config-manager-v2'; + dayjs.extend(utc); const { LEVEL, MESSAGE } = require('triple-beam'); @@ -52,7 +53,7 @@ const getLogPath = () => { }; const allLogsFileTransport = new DailyRotateFile({ - level: 'info', + level: 'debug', filename: `${getLogPath()}/logs_gateway_app.log.%DATE%`, datePattern: 'YYYY-MM-DD', handleExceptions: true, @@ -60,7 +61,7 @@ const allLogsFileTransport = new DailyRotateFile({ }); export const logger = winston.createLogger({ - level: 'info', + level: 'debug', format: logFileFormat, exitOnError: false, transports: [allLogsFileTransport], From 32399727d207cff56d345a8c3cdef94a48399374 Mon Sep 17 00:00:00 2001 From: Petio Petrov Date: Thu, 5 Oct 2023 10:20:32 -0400 Subject: [PATCH 2/2] (cleanup) Removes diffs with dev --- src/chains/injective/injective.message.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/chains/injective/injective.message.ts b/src/chains/injective/injective.message.ts index d487970596..9927c72ea3 100644 --- a/src/chains/injective/injective.message.ts +++ b/src/chains/injective/injective.message.ts @@ -22,7 +22,6 @@ import LRUCache from 'lru-cache'; import { getInjectiveConfig } from './injective.config'; import { networkToString } from './injective.mappers'; import { AccountDetails } from '@injectivelabs/sdk-ts/dist/cjs/types/auth'; -import { logger } from '../../services/logger'; interface MsgBroadcasterTxOptions { msgs: Msgs | Msgs[]; @@ -148,14 +147,12 @@ export class MsgBroadcasterLocal { injectiveAddress: getInjectiveSignerAddress(transaction.injectiveAddress), sequence: this._localSequence++, } as MsgBroadcasterTxOptions; - logger.debug(`Pushing ${tx} on the queue.`); this._txQueue.push(tx); try { while (!this.isNextTx(tx)) { await this.sleep(10); // sleep } - logger.debug(`Executing ${tx} from the queue.`); this._isBlocked = true; /** Account Details **/ @@ -172,7 +169,6 @@ export class MsgBroadcasterLocal { const currentNonce = await this._chain.nonceManager.getNextNonce( transaction.injectiveAddress ); - logger.debug(`Executing with nonce ${currentNonce}.`); txResponse = await this.createAndSend( tx, timeoutHeight, @@ -191,9 +187,6 @@ export class MsgBroadcasterLocal { .split('account sequence mismatch, expected ')[1] .split(',')[0] ); - logger.debug( - `Account sequence mismatch expected. Expected sequence ${expectedSequence}.` - ); await this._chain.nonceManager.overridePendingNonce( transaction.injectiveAddress, expectedSequence @@ -212,18 +205,11 @@ export class MsgBroadcasterLocal { } else { throw new Error(txResponse.data.tx_response.raw_log); } - } catch (e) { - logger.debug(e); - throw e; } finally { this._txQueue.shift(); this._isBlocked = false; } - if (txResponse.data.tx_response.code !== 0) { - logger.debug(`Tx failed`); - } - return { txHash: txResponse.data.tx_response.code === 0