Skip to content

Commit

Permalink
Masks ip beforehand instead of changing object in repeated request
Browse files Browse the repository at this point in the history
Signed-off-by: Konstantina Blazhukova <[email protected]>
  • Loading branch information
konstantinabl committed Nov 15, 2024
1 parent 3a19278 commit 9e307bf
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 35 deletions.
31 changes: 19 additions & 12 deletions packages/relay/src/lib/clients/mirrorNodeClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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';

Expand Down Expand Up @@ -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}}`,
);
}
}
Expand Down Expand Up @@ -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,
);
Expand Down
54 changes: 31 additions & 23 deletions packages/relay/src/lib/eth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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');
Expand Down Expand Up @@ -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,
);
Expand Down

0 comments on commit 9e307bf

Please sign in to comment.