Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor code #222

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading