Skip to content

Commit

Permalink
Refactor code
Browse files Browse the repository at this point in the history
  • Loading branch information
AllFi committed Jul 24, 2024
1 parent a82c66b commit b11b878
Show file tree
Hide file tree
Showing 8 changed files with 10 additions and 42 deletions.
2 changes: 1 addition & 1 deletion CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down
1 change: 0 additions & 1 deletion zp-relayer/configs/commitmentWatcherConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
})

Expand Down
1 change: 0 additions & 1 deletion zp-relayer/configs/guardConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'),
Expand Down
26 changes: 2 additions & 24 deletions zp-relayer/configs/relayerConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'),
Expand Down Expand Up @@ -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(),
Expand All @@ -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()
Expand All @@ -111,11 +92,8 @@ const zSchema = z
})
),
})
.and(zTreeProver)
.and(zDirectDepositProver)
.and(zBaseTxGas)
.and(zFeeManager)
.and(zGuards)

const network = getNetworkConfig()

Expand Down
2 changes: 1 addition & 1 deletion zp-relayer/queue/poolTxQueue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export enum WorkerTxType {
export const WorkerTxTypePriority: Record<WorkerTxType, number> = {
[WorkerTxType.Normal]: 1,
[WorkerTxType.DirectDeposit]: 2,
[WorkerTxType.Finalize]: 3, // TODO
[WorkerTxType.Finalize]: 3,
}

export type WorkerTx<T extends WorkerTxType> = T extends WorkerTxType.Normal
Expand Down
6 changes: 4 additions & 2 deletions zp-relayer/services/commitment-watcher/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
4 changes: 2 additions & 2 deletions zp-relayer/services/relayer/index.ts
Original file line number Diff line number Diff line change
@@ -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'

Expand All @@ -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
Expand Down
10 changes: 0 additions & 10 deletions zp-relayer/state/PoolState.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,6 @@ export class PoolState {
this.jobIdsMapping = new JobIdsMapping('job-id-mapping', redis)
}

async withLock<R>(f: () => Promise<R>): Promise<R> {
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...`)

Expand Down

0 comments on commit b11b878

Please sign in to comment.