diff --git a/zp-relayer/configs/commitmentWatcherConfig.ts b/zp-relayer/configs/commitmentWatcherConfig.ts index dff9133..6512fd1 100644 --- a/zp-relayer/configs/commitmentWatcherConfig.ts +++ b/zp-relayer/configs/commitmentWatcherConfig.ts @@ -10,6 +10,7 @@ const zSchema = z.object({ COMMITMENT_WATCHER_TOKEN_ADDRESS: z.string(), COMMITMENT_WATCHER_PRECOMPUTE_PARAMS: zBooleanString().default('false'), COMMITMENT_WATCHER_TREE_UPDATE_PARAMS_PATH: z.string().default('../params/tree_params.bin'), + COMMITMENT_WATCHER_DIRECT_DEPOSIT_PARAMS_PATH: z.string().default('../params/delegated_deposit_params.bin'), 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), diff --git a/zp-relayer/pool/BasePool.ts b/zp-relayer/pool/BasePool.ts index e7f264c..fb4f120 100644 --- a/zp-relayer/pool/BasePool.ts +++ b/zp-relayer/pool/BasePool.ts @@ -241,9 +241,11 @@ export abstract class BasePool { async addTxToState(txHash: string, newPoolIndex: number, message: string, state: 'optimistic' | 'confirmed' | 'all') { const transactSelector = '0xaf989083' - const directDepositSelector = '0x1dc4cb33' const transactV2Selector = '0x5fd28f8c' + const directDepositOldSelector = '0x1dc4cb33' + const directDepositSelector = '0xe6b14272' + const input = await this.network.getTxCalldata(txHash) const prevPoolIndex = newPoolIndex - OUTPLUSONE @@ -254,6 +256,19 @@ export abstract class BasePool { if (input.startsWith(directDepositSelector)) { // Direct deposit case + const res = AbiCoder.decodeParameters( + [ + 'uint256[]', // Indices + 'uint256', // Out commit + 'uint256[8]', // Deposit proof + 'address', // Prover + ], + input.slice(10) // Cut off selector + ) + outCommit = res[1] + memo = truncateHexPrefix(message || '') + } else if (input.startsWith(directDepositOldSelector)) { + // Old direct deposit case const res = AbiCoder.decodeParameters( [ 'uint256', // Root after diff --git a/zp-relayer/services/commitment-watcher/init.ts b/zp-relayer/services/commitment-watcher/init.ts index 2f4dc8d..5d28544 100644 --- a/zp-relayer/services/commitment-watcher/init.ts +++ b/zp-relayer/services/commitment-watcher/init.ts @@ -86,7 +86,7 @@ export async function init() { const directDepositProver = buildProver( Circuit.DirectDeposit, ProverType.Local, - config.COMMITMENT_WATCHER_TREE_UPDATE_PARAMS_PATH as string + config.COMMITMENT_WATCHER_DIRECT_DEPOSIT_PARAMS_PATH as string ) if (!config.base.COMMON_INDEXER_URL) {