From c6ffaf9f37a41da444348c9a2f217bc1903a723c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Elizondo?= Date: Thu, 6 Feb 2025 19:28:20 -0600 Subject: [PATCH 1/2] Adds connection keep-alive and response compresion to RPC calls. --- src/data_sources/events/web3.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/data_sources/events/web3.ts b/src/data_sources/events/web3.ts index ee04deb..f555f85 100644 --- a/src/data_sources/events/web3.ts +++ b/src/data_sources/events/web3.ts @@ -14,6 +14,7 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import { RawLog } from 'ethereum-types'; const Web3 = require('web3'); +const Web3HttpProvider = require('web3-providers-http'); export { BlockWithTransactionData, BlockWithoutTransactionData, Transaction, TransactionReceipt } from './web3_updated'; @@ -32,8 +33,15 @@ export class Web3Source { private readonly _web3Wrapper: Web3Wrapper; private readonly _web3: any; constructor(provider: Web3ProviderEngine, wsProvider: string) { + const web3HttpOptions = { + keepAlive: true, + headers: [ + { name: 'Accept-Encoding', value: 'gzip'} + ] + }; + this._web3Wrapper = new Web3Wrapper(provider); - this._web3 = new Web3(wsProvider); + this._web3 = new Web3(new Web3HttpProvider(wsProvider, web3HttpOptions)); if (BLOCK_RECEIPTS_MODE === 'standard') { this._web3.eth.extend({ From ddf7571164f1e38d4b98cf4b54423311e1b39553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Elizondo?= Date: Mon, 24 Feb 2025 13:02:55 -0600 Subject: [PATCH 2/2] Prettier. --- src/config.ts | 22 +++++++++++----------- src/data_sources/events/web3.ts | 4 +--- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/config.ts b/src/config.ts index 67ef18f..9e115da 100644 --- a/src/config.ts +++ b/src/config.ts @@ -145,10 +145,10 @@ export const SCRAPER_MODE: ScraperMode = process.env.SCRAPER_MODE === undefined ? DEFAULT_SCRAPER_MODE : process.env.SCRAPER_MODE === 'BLOCKS' - ? 'BLOCKS' - : process.env.SCRAPER_MODE === 'EVENTS' - ? 'EVENTS' - : throwError('Wrong SCRAPER_MODE'); + ? 'BLOCKS' + : process.env.SCRAPER_MODE === 'EVENTS' + ? 'EVENTS' + : throwError('Wrong SCRAPER_MODE'); export const METRICS_PATH = process.env.METRICS_PATH || DEFAULT_METRICS_PATH; export const PROMETHEUS_PORT = getIntConfig('PROMETHEUS_PORT', DEFAULT_PROMETHEUS_PORT); @@ -389,13 +389,13 @@ export const FEAT_UNISWAP_V2_PAIR_CREATED_EVENT = getBoolConfig( export const UNISWAP_V2_PAIR_CREATED_PROTOCOL_CONTRACT_ADDRESSES_AND_START_BLOCKS = process.env .UNISWAP_V2_PAIR_CREATED_PROTOCOL_CONTRACT_ADDRESSES_AND_START_BLOCKS ? process.env.UNISWAP_V2_PAIR_CREATED_PROTOCOL_CONTRACT_ADDRESSES_AND_START_BLOCKS.split(',').map((contract) => { - const [name, factoryAddress, startBlock] = contract.split(':'); - return { - name, - factoryAddress, - startBlock: parseInt(startBlock), - }; - }) + const [name, factoryAddress, startBlock] = contract.split(':'); + return { + name, + factoryAddress, + startBlock: parseInt(startBlock), + }; + }) : []; if ( diff --git a/src/data_sources/events/web3.ts b/src/data_sources/events/web3.ts index f555f85..9dbf3ab 100644 --- a/src/data_sources/events/web3.ts +++ b/src/data_sources/events/web3.ts @@ -35,9 +35,7 @@ export class Web3Source { constructor(provider: Web3ProviderEngine, wsProvider: string) { const web3HttpOptions = { keepAlive: true, - headers: [ - { name: 'Accept-Encoding', value: 'gzip'} - ] + headers: [{ name: 'Accept-Encoding', value: 'gzip' }], }; this._web3Wrapper = new Web3Wrapper(provider);