From b11b878df519a8f55ec2fee2d717d235bd46a4c8 Mon Sep 17 00:00:00 2001 From: Alexander Filippov Date: Wed, 24 Jul 2024 17:05:44 +0300 Subject: [PATCH] Refactor code --- CONFIGURATION.md | 2 +- zp-relayer/configs/commitmentWatcherConfig.ts | 1 - zp-relayer/configs/guardConfig.ts | 1 - zp-relayer/configs/relayerConfig.ts | 26 ++----------------- zp-relayer/queue/poolTxQueue.ts | 2 +- .../services/commitment-watcher/init.ts | 6 +++-- zp-relayer/services/relayer/index.ts | 4 +-- zp-relayer/state/PoolState.ts | 10 ------- 8 files changed, 10 insertions(+), 42 deletions(-) diff --git a/CONFIGURATION.md b/CONFIGURATION.md index 2dd1a591..6ed8869d 100644 --- a/CONFIGURATION.md +++ b/CONFIGURATION.md @@ -40,7 +40,7 @@ These environment variables are required for all services. | RELAYER_MIN_GAS_PRICE_BUMP_FACTOR | Minimum `gasPrice` bump factor to meet RPC node requirements. Default `0.1`. | float | | RELAYER_MAX_FEE_PER_GAS_LIMIT | Max limit on `maxFeePerGas` parameter for each transaction in wei | integer | | RELAYER_MAX_SENT_QUEUE_SIZE | Maximum number of jobs waiting in the `sentTxQueue` at a time. | integer | -| RELAYER_TX_REDUNDANCY | If set to `true`, instructs relayer to send `eth_sendRawTransaction` requests through all available RPC urls defined in `RPC_URL` variables instead of using first available one. Defaults to `false` | boolean | +| TX_REDUNDANCY | If set to `true`, instructs relayer to send `eth_sendRawTransaction` requests through all available RPC urls defined in `RPC_URL` variables instead of using first available one. Defaults to `false` | boolean | | RELAYER_INSUFFICIENT_BALANCE_CHECK_TIMEOUT | Interval in milliseconds to check for relayer balance update if transaction send failed with insufficient balance error. Default `60000` | integer | | RELAYER_SENT_TX_DELAY | Delay in milliseconds for sentTxWorker to verify submitted transactions | integer | | RELAYER_SENT_TX_ERROR_THRESHOLD | Maximum number of re-sends which is considered to be normal. After this threshold each re-send will log a corresponding error (but re-send loop will continue). Defaults to `3`. | integer | diff --git a/zp-relayer/configs/commitmentWatcherConfig.ts b/zp-relayer/configs/commitmentWatcherConfig.ts index 6512fd1a..f1ad73da 100644 --- a/zp-relayer/configs/commitmentWatcherConfig.ts +++ b/zp-relayer/configs/commitmentWatcherConfig.ts @@ -14,7 +14,6 @@ const zSchema = z.object({ COMMITMENT_WATCHER_STATE_DIR_PATH: z.string().default('./POOL_STATE'), COMMITMENT_WATCHER_TX_VK_PATH: z.string().default('../params/transfer_verification_key.json'), COMMITMENT_WATCHER_FETCH_INTERVAL: z.coerce.number().default(10000), - COMMITMENT_WATCHER_TX_REDUNDANCY: zBooleanString().default('false'), COMMITMENT_WATCHER_FEE: zBN().default("100_000_000"), }) diff --git a/zp-relayer/configs/guardConfig.ts b/zp-relayer/configs/guardConfig.ts index f8ee7b8f..0dd451ba 100644 --- a/zp-relayer/configs/guardConfig.ts +++ b/zp-relayer/configs/guardConfig.ts @@ -8,7 +8,6 @@ const schema = z.object({ GUARD_NETWORK: z.nativeEnum(Network), COMMON_RPC_URL: z.string().transform(us => us.split(' ').filter(url => url.length > 0)), GUARD_ADDRESS_PRIVATE_KEY: z.string(), - GUARD_TOKEN_ADDRESS: z.string(), COMMON_REQUIRE_RPC_HTTPS: zBooleanString().default('false'), COMMON_POOL_ADDRESS: z.string(), GUARD_TX_VK_PATH: z.string().default('../params/transfer_verification_key.json'), diff --git a/zp-relayer/configs/relayerConfig.ts b/zp-relayer/configs/relayerConfig.ts index d997dc40..6f94ab2f 100644 --- a/zp-relayer/configs/relayerConfig.ts +++ b/zp-relayer/configs/relayerConfig.ts @@ -15,16 +15,6 @@ import { zBN, zBooleanString, zNullishString } from './common/utils' const defaultHeaderBlacklist = 'accept accept-language accept-encoding connection content-length content-type postman-token referer upgrade-insecure-requests' -const zTreeProver = z.discriminatedUnion('RELAYER_TREE_PROVER_TYPE', [ - z.object({ RELAYER_TREE_PROVER_TYPE: z.literal(ProverType.Local) }), - z.object({ RELAYER_TREE_PROVER_TYPE: z.literal(ProverType.Remote) }), // TODO remote prover url -]) - -const zDirectDepositProver = z.discriminatedUnion('RELAYER_DD_PROVER_TYPE', [ - z.object({ RELAYER_DD_PROVER_TYPE: z.literal(ProverType.Local) }), - z.object({ RELAYER_DD_PROVER_TYPE: z.literal(ProverType.Remote) }), // TODO remote prover url -]) - const zBaseTxGas = z .object({ RELAYER_BASE_TX_GAS_DEPOSIT: zBN().default('650000'), @@ -57,11 +47,6 @@ const zFeeManager = z ]) ) -const zGuards = z.object({ - RELAYER_GUARDS_CONFIG_PATH: z.string().optional(), - RELAYER_MPC_GUARD_CONTRACT: z.string().optional(), -}) - const zSchema = z .object({ RELAYER_REF: zNullishString(), @@ -73,19 +58,15 @@ const zSchema = z RELAYER_MAX_NATIVE_AMOUNT: zBN().default('0'), RELAYER_TREE_UPDATE_PARAMS_PATH: z.string().default('../params/tree_params.bin'), RELAYER_TRANSFER_PARAMS_PATH: z.string().default('../params/transfer_params.bin'), - RELAYER_DIRECT_DEPOSIT_PARAMS_PATH: z.string().default('../params/delegated_deposit_params.bin'), RELAYER_TX_VK_PATH: z.string().default('../params/transfer_verification_key.json'), RELAYER_REQUEST_LOG_PATH: z.string().default('./zp.log'), RELAYER_STATE_DIR_PATH: z.string().default('./POOL_STATE'), - RELAYER_TX_REDUNDANCY: zBooleanString().default('false'), - RELAYER_SENT_TX_DELAY: z.coerce.number().default(30000), - RELAYER_SENT_TX_ERROR_THRESHOLD: z.coerce.number().default(3), - RELAYER_INSUFFICIENT_BALANCE_CHECK_TIMEOUT: z.coerce.number().default(60000), + RELAYER_SENT_TX_DELAY: z.coerce.number().default(30000), // NOT USED + RELAYER_SENT_TX_ERROR_THRESHOLD: z.coerce.number().default(3), // NOT USED RELAYER_PERMIT_DEADLINE_THRESHOLD_INITIAL: z.coerce.number().default(300), RELAYER_REQUIRE_TRACE_ID: zBooleanString().default('false'), RELAYER_REQUIRE_LIBJS_VERSION: zBooleanString().default('false'), RELAYER_EXPRESS_TRUST_PROXY: zBooleanString().default('false'), - RELAYER_PRECOMPUTE_PARAMS: zBooleanString().default('false'), RELAYER_PROVER_URL: z.string(), RELAYER_LOG_IGNORE_ROUTES: z .string() @@ -111,11 +92,8 @@ const zSchema = z }) ), }) - .and(zTreeProver) - .and(zDirectDepositProver) .and(zBaseTxGas) .and(zFeeManager) - .and(zGuards) const network = getNetworkConfig() diff --git a/zp-relayer/queue/poolTxQueue.ts b/zp-relayer/queue/poolTxQueue.ts index d5012e62..d35cf72d 100644 --- a/zp-relayer/queue/poolTxQueue.ts +++ b/zp-relayer/queue/poolTxQueue.ts @@ -65,7 +65,7 @@ export enum WorkerTxType { export const WorkerTxTypePriority: Record = { [WorkerTxType.Normal]: 1, [WorkerTxType.DirectDeposit]: 2, - [WorkerTxType.Finalize]: 3, // TODO + [WorkerTxType.Finalize]: 3, } export type WorkerTx = T extends WorkerTxType.Normal diff --git a/zp-relayer/services/commitment-watcher/init.ts b/zp-relayer/services/commitment-watcher/init.ts index f4f5cc9d..c0968077 100644 --- a/zp-relayer/services/commitment-watcher/init.ts +++ b/zp-relayer/services/commitment-watcher/init.ts @@ -86,13 +86,15 @@ export async function init() { const treeProver = buildProver( Circuit.Tree, ProverType.Local, - config.COMMITMENT_WATCHER_TREE_UPDATE_PARAMS_PATH as string + config.COMMITMENT_WATCHER_TREE_UPDATE_PARAMS_PATH as string, + config.COMMITMENT_WATCHER_PRECOMPUTE_PARAMS ) const directDepositProver = buildProver( Circuit.DirectDeposit, ProverType.Local, - config.COMMITMENT_WATCHER_DIRECT_DEPOSIT_PARAMS_PATH as string + config.COMMITMENT_WATCHER_DIRECT_DEPOSIT_PARAMS_PATH as string, + config.COMMITMENT_WATCHER_PRECOMPUTE_PARAMS ) if (!config.base.COMMON_INDEXER_URL) { diff --git a/zp-relayer/services/relayer/index.ts b/zp-relayer/services/relayer/index.ts index e49d3684..5dc53b65 100644 --- a/zp-relayer/services/relayer/index.ts +++ b/zp-relayer/services/relayer/index.ts @@ -1,7 +1,7 @@ import express from 'express' import config from '../../configs/relayerConfig' import { logger } from '../../lib/appLogger' -import { createPersistentLoggerMiddleware } from '../../lib/loggerMiddleware' +import { createConsoleLoggerMiddleware, createPersistentLoggerMiddleware } from '../../lib/loggerMiddleware' import { init } from './init' import { createRouter } from './router' @@ -13,7 +13,7 @@ init().then(({ feeManager, pool }) => { } app.use(createPersistentLoggerMiddleware(config.RELAYER_REQUEST_LOG_PATH)) - // app.use(createConsoleLoggerMiddleware()) + app.use(createConsoleLoggerMiddleware(config.RELAYER_LOG_IGNORE_ROUTES, config.RELAYER_LOG_HEADER_BLACKLIST)) app.use(createRouter({ feeManager, pool })) const PORT = config.RELAYER_PORT diff --git a/zp-relayer/state/PoolState.ts b/zp-relayer/state/PoolState.ts index c6c145db..cefafb02 100644 --- a/zp-relayer/state/PoolState.ts +++ b/zp-relayer/state/PoolState.ts @@ -22,16 +22,6 @@ export class PoolState { this.jobIdsMapping = new JobIdsMapping('job-id-mapping', redis) } - async withLock(f: () => Promise): Promise { - const release = await this.mutex.acquire() - try { - const res = await f() - return res - } finally { - release() - } - } - getVirtualTreeProofInputs(outCommit: string, transferNum?: number) { logger.debug(`Building virtual tree proof...`)