From 404b87a64bdbb8772139cc94e02fe43a2fa7d6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Tue, 21 Jun 2022 12:10:58 +0100 Subject: [PATCH] feat: add infura web3 call logging --- lib/plugins/wallet/geth/base.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/plugins/wallet/geth/base.js b/lib/plugins/wallet/geth/base.js index d37227a6..4d3ba0a5 100644 --- a/lib/plugins/wallet/geth/base.js +++ b/lib/plugins/wallet/geth/base.js @@ -7,9 +7,10 @@ const hdkey = require('ethereumjs-wallet/hdkey') const Tx = require('ethereumjs-tx') const util = require('ethereumjs-util') const coins = require('@lamassu/coins') -const pify = require('pify') +const _pify = require('pify') const BN = require('../../../bn') const ABI = require('../../tokens') +const logger = require('../../../logger') const NAME = 'geth' exports.SUPPORTED_MODULES = ['wallet'] @@ -34,6 +35,19 @@ module.exports = { checkBlockchainStatus } +const infuraCalls = {} + +const pify = _function => { + if (_.isString(_function.call)) logInfuraCall(_function.call) + return _pify(_function) +} + +const logInfuraCall = call => { + if (!_.includes('infura', web3.currentProvider.host)) return + _.isNil(infuraCalls[call]) ? infuraCalls[call] = 1 : infuraCalls[call]++ + logger.info(`Calling web3 method ${call} via Infura. Current count for this session: ${JSON.stringify(infuraCalls)}`) +} + function connect (url) { if (!web3.isConnected()) { web3.setProvider(new web3.providers.HttpProvider(url))