diff --git a/zp-relayer/pool/RelayPool.ts b/zp-relayer/pool/RelayPool.ts index 6e38b02..e24af42 100644 --- a/zp-relayer/pool/RelayPool.ts +++ b/zp-relayer/pool/RelayPool.ts @@ -365,7 +365,7 @@ export class RelayPool extends BasePool { const indexerCommitments = (await this.getIndexerTxs(fromIndex, limit)).map(tx => tx.slice(65, 129)); // find cached commitments in the indexer's response - for (const [commit, memo] of localEntries) { + for (const [commit, {memo, index}] of localEntries) { if (indexerCommitments.includes(commit)) { logger.info('Deleting cached entry', { commit }) await this.txStore.remove(commit) diff --git a/zp-relayer/services/relayer/endpoints.ts b/zp-relayer/services/relayer/endpoints.ts index 1850c0f..b8952c1 100644 --- a/zp-relayer/services/relayer/endpoints.ts +++ b/zp-relayer/services/relayer/endpoints.ts @@ -102,7 +102,7 @@ async function getTransactionsV2(req: Request, res: Response, { pool }: PoolInje const indexerCommitments = indexerTxs.map(tx => tx.slice(65, 129)); const optimisticTxs: string[] = [] - for (const [commit, memo] of localEntries) { + for (const [commit, {memo, index}] of localEntries) { if (indexerCommitments.includes(commit)) { // !!! we shouldn't modify local cache from here. Just filter entries to return correct response //logger.info('Deleting index from optimistic state', { index }) @@ -187,7 +187,7 @@ async function relayerInfo(req: Request, res: Response, { pool }: PoolInjection) const pendingCnt = await txStore.getAll() .then(keys => { return Object.entries(keys) - .map(([i]) => parseInt(i) as number) + .map(([commit, {memo, index}]) => index) .filter(i => indexerMaxIdx <= i) }) .then(a => a.length); diff --git a/zp-relayer/state/TxStore.ts b/zp-relayer/state/TxStore.ts index c3d6b3c..faccb10 100644 --- a/zp-relayer/state/TxStore.ts +++ b/zp-relayer/state/TxStore.ts @@ -23,9 +23,9 @@ export class TxStore { } : null; } - async getAll() { - return await this.redis.hgetall(this.name).then(keys => { - return Object.entries(keys) + async getAll(): Promise> { + return this.redis.hgetall(this.name).then(keys => Object.fromEntries( + Object.entries(keys) .map(([commit, data]) => [commit, { @@ -33,7 +33,7 @@ export class TxStore { index: hexToNumber(data.slice(0, INDEX_BYTES * 2)), }] as [string, {memo: string, index: number}] ) - } + )); } async removeAll() {