From 9e307bfb194ce57e99650e2d2babb5ede4250616 Mon Sep 17 00:00:00 2001 From: Konstantina Blazhukova Date: Fri, 15 Nov 2024 17:10:25 +0200 Subject: [PATCH] Masks ip beforehand instead of changing object in repeated request Signed-off-by: Konstantina Blazhukova --- .../relay/src/lib/clients/mirrorNodeClient.ts | 31 ++++++----- packages/relay/src/lib/eth.ts | 54 +++++++++++-------- 2 files changed, 50 insertions(+), 35 deletions(-) diff --git a/packages/relay/src/lib/clients/mirrorNodeClient.ts b/packages/relay/src/lib/clients/mirrorNodeClient.ts index acb24cf76..3f337d2a2 100644 --- a/packages/relay/src/lib/clients/mirrorNodeClient.ts +++ b/packages/relay/src/lib/clients/mirrorNodeClient.ts @@ -18,22 +18,22 @@ * */ +import { ConfigService } from '@hashgraph/json-rpc-config-service/dist/services'; +import Axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; +import axiosRetry from 'axios-retry'; +import { install as betterLookupInstall } from 'better-lookup'; +import { ethers } from 'ethers'; import http from 'http'; import https from 'https'; import { Logger } from 'pino'; -import { ethers } from 'ethers'; -import axiosRetry from 'axios-retry'; -import constants from './../constants'; import { Histogram, Registry } from 'prom-client'; + +import { formatRequestIdMessage, formatTransactionId, parseNumericEnvVar } from '../../formatters'; import { predefined } from '../errors/JsonRpcError'; +import { MirrorNodeClientError } from '../errors/MirrorNodeClientError'; import { SDKClientError } from '../errors/SDKClientError'; -import { IOpcodesResponse } from './models/IOpcodesResponse'; -import { install as betterLookupInstall } from 'better-lookup'; +import { EthImpl } from '../eth'; import { CacheService } from '../services/cacheService/cacheService'; -import { ConfigService } from '@hashgraph/json-rpc-config-service/dist/services'; -import { MirrorNodeClientError } from '../errors/MirrorNodeClientError'; -import Axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; -import { formatRequestIdMessage, formatTransactionId, parseNumericEnvVar } from '../../formatters'; import { IContractCallRequest, IContractCallResponse, @@ -45,7 +45,8 @@ import { MirrorNodeTransactionRecord, RequestDetails, } from '../types'; -import { EthImpl } from '../eth'; +import constants from './../constants'; +import { IOpcodesResponse } from './models/IOpcodesResponse'; type REQUEST_METHODS = 'GET' | 'POST'; @@ -1315,7 +1316,7 @@ export class MirrorNodeClient { } else { this.logger.warn( e, - `${requestDetails?.formattedRequestId} Error raised during polling mirror node for updated records: method=${methodName}, args=${args}`, + `${requestDetails?.formattedRequestId} Error raised during polling mirror node for updated records: method=${methodName}, args=${args}}`, ); } } @@ -1364,9 +1365,15 @@ export class MirrorNodeClient { ); } + // Create a modified copy of requestDetails + const modifiedRequestDetails = { + ...requestDetails, + ipAddress: 'xxx.xxx.xxx.xxx', + }; + const transactionRecords = await this.repeatedRequest( this.getTransactionById.name, - [transactionId, requestDetails, 0], + [transactionId, modifiedRequestDetails, 0], this.MIRROR_NODE_REQUEST_RETRY_COUNT, requestDetails, ); diff --git a/packages/relay/src/lib/eth.ts b/packages/relay/src/lib/eth.ts index 1c7ceb28b..0fac08415 100644 --- a/packages/relay/src/lib/eth.ts +++ b/packages/relay/src/lib/eth.ts @@ -18,31 +18,13 @@ * */ +import { ConfigService } from '@hashgraph/json-rpc-config-service/dist/services'; +import { FileId, Hbar, PrecheckStatusError } from '@hashgraph/sdk'; import crypto from 'crypto'; +import { Transaction as EthersTransaction } from 'ethers'; import { Logger } from 'pino'; -import { Eth } from '../index'; -import { Utils } from '../utils'; -import constants from './constants'; -import { Precheck } from './precheck'; -import { MirrorNodeClient } from './clients'; import { Counter, Registry } from 'prom-client'; -import { IAccountInfo } from './types/mirrorNode'; -import { LogsBloomUtils } from '../logsBloomUtils'; -import { DebugService } from './services/debugService'; -import { SDKClientError } from './errors/SDKClientError'; -import { Transaction as EthersTransaction } from 'ethers'; -import HAPIService from './services/hapiService/hapiService'; -import { JsonRpcError, predefined } from './errors/JsonRpcError'; -import { Block, Log, Transaction, Transaction1559 } from './model'; -import { FileId, Hbar, PrecheckStatusError } from '@hashgraph/sdk'; -import { CacheService } from './services/cacheService/cacheService'; -import { CommonService, FilterService } from './services/ethService'; -import { ConfigService } from '@hashgraph/json-rpc-config-service/dist/services'; -import { IDebugService } from './services/debugService/IDebugService'; -import { MirrorNodeClientError } from './errors/MirrorNodeClientError'; -import { IReceiptRootHash, ReceiptsRootUtils } from '../receiptsRootUtils'; -import { IFilterService } from './services/ethService/ethFilterService/IFilterService'; -import { IContractCallRequest, IContractCallResponse, IFeeHistory, ITransactionReceipt, RequestDetails } from './types'; + import { ASCIIToHex, formatContractResult, @@ -59,6 +41,25 @@ import { trimPrecedingZeros, weibarHexToTinyBarInt, } from '../formatters'; +import { Eth } from '../index'; +import { LogsBloomUtils } from '../logsBloomUtils'; +import { IReceiptRootHash, ReceiptsRootUtils } from '../receiptsRootUtils'; +import { Utils } from '../utils'; +import { MirrorNodeClient } from './clients'; +import constants from './constants'; +import { JsonRpcError, predefined } from './errors/JsonRpcError'; +import { MirrorNodeClientError } from './errors/MirrorNodeClientError'; +import { SDKClientError } from './errors/SDKClientError'; +import { Block, Log, Transaction, Transaction1559 } from './model'; +import { Precheck } from './precheck'; +import { CacheService } from './services/cacheService/cacheService'; +import { DebugService } from './services/debugService'; +import { IDebugService } from './services/debugService/IDebugService'; +import { CommonService, FilterService } from './services/ethService'; +import { IFilterService } from './services/ethService/ethFilterService/IFilterService'; +import HAPIService from './services/hapiService/hapiService'; +import { IContractCallRequest, IContractCallResponse, IFeeHistory, ITransactionReceipt, RequestDetails } from './types'; +import { IAccountInfo } from './types/mirrorNode'; const _ = require('lodash'); const createHash = require('keccak'); @@ -1720,9 +1721,16 @@ export class EthImpl implements Eth { if (submittedTransactionId) { try { const formattedTransactionId = formatTransactionIdWithoutQueryParams(submittedTransactionId); + + // Create a modified copy of requestDetails + const modifiedRequestDetails = { + ...requestDetails, + ipAddress: 'xxx.xxx.xxx.xxx', + }; + const contractResult = await this.mirrorNodeClient.repeatedRequest( this.mirrorNodeClient.getContractResult.name, - [formattedTransactionId], + [formattedTransactionId, modifiedRequestDetails], this.mirrorNodeClient.getMirrorNodeRequestRetryCount(), requestDetails, );