From cc245c67fcf6c3c17ccb620d9ea8693401a5d800 Mon Sep 17 00:00:00 2001 From: KelvinThai Date: Tue, 5 Dec 2023 11:44:28 +0700 Subject: [PATCH] fixed some issues on comments --- .../L2RequestResponseConsumerMock.cjs | 8 ++--- .../L2VRFConsumerMock/L2VRFConsumer.cjs | 4 +-- core/src/listener/main.ts | 8 ++--- ...ill.ts => request-responnse-L2-fulfill.ts} | 27 ++--------------- ...est.ts => request-responnse-L2-request.ts} | 0 .../src/listener/request-response-L2.utils.ts | 30 +++++++++++++++++++ core/src/types.ts | 4 +++ .../src/worker/request-response-L2-request.ts | 9 ++---- 8 files changed, 49 insertions(+), 41 deletions(-) rename core/src/listener/{requestResponnse-L2-fulfill.ts => request-responnse-L2-fulfill.ts} (79%) rename core/src/listener/{requestResponnse-L2-request.ts => request-responnse-L2-request.ts} (100%) create mode 100644 core/src/listener/request-response-L2.utils.ts diff --git a/contracts/deploy/L2RequestResponseConsumerMock/L2RequestResponseConsumerMock.cjs b/contracts/deploy/L2RequestResponseConsumerMock/L2RequestResponseConsumerMock.cjs index 1647e7119..b05b8d33e 100644 --- a/contracts/deploy/L2RequestResponseConsumerMock/L2RequestResponseConsumerMock.cjs +++ b/contracts/deploy/L2RequestResponseConsumerMock/L2RequestResponseConsumerMock.cjs @@ -12,20 +12,20 @@ const func = async function (hre) { if (config.deploy) { console.log('deploy') const deployConfig = config.deploy - const l2VRFConsumerMock = await deploy('L2RequestResponseConsumerMock', { + const l2RequestResponseConsumerMock = await deploy('L2RequestResponseConsumerMock', { args: [deployConfig.l2EndpointAddress], from: deployer, log: true }) - console.log('L2RequestResponseConsumerMock:', l2VRFConsumerMock) + console.log('L2RequestResponseConsumerMock:', l2RequestResponseConsumerMock) } await updateMigration(migrationDirPath, migration) } } -func.id = 'deploy-consumer' -func.tags = ['consumer'] +func.id = 'deploy-L2RequestResponseConsumerMock' +func.tags = ['L2RequestResponseConsumerMock'] module.exports = func diff --git a/contracts/deploy/L2VRFConsumerMock/L2VRFConsumer.cjs b/contracts/deploy/L2VRFConsumerMock/L2VRFConsumer.cjs index 4ad544186..f2e5309a6 100644 --- a/contracts/deploy/L2VRFConsumerMock/L2VRFConsumer.cjs +++ b/contracts/deploy/L2VRFConsumerMock/L2VRFConsumer.cjs @@ -26,7 +26,7 @@ const func = async function (hre) { } } -func.id = 'deploy-consumer' -func.tags = ['consumer'] +func.id = 'deploy-L2VRFConsumerMock' +func.tags = ['L2VRFConsumerMock'] module.exports = func diff --git a/core/src/listener/main.ts b/core/src/listener/main.ts index 410a77cc4..7e1270fa3 100644 --- a/core/src/listener/main.ts +++ b/core/src/listener/main.ts @@ -7,13 +7,13 @@ import { buildLogger } from '../logger' import { CHAIN, REDIS_HOST, REDIS_PORT } from '../settings' import { hookConsoleError } from '../utils' import { getListeners } from './api' +import { IListeners } from './types' +import { postprocessListeners } from './utils' import { buildListener as buildDataFeedListener } from './data-feed' import { buildListener as buildL2DataFeedListener } from './data-feed-L2' import { buildListener as buildRequestResponseListener } from './request-response' -import { buildListener as buildRequestResponseL2FulfillListener } from './requestResponnse-L2-fulfill' -import { buildListener as buildRequestResponseL2RequestListener } from './requestResponnse-L2-request' -import { IListeners } from './types' -import { postprocessListeners } from './utils' +import { buildListener as buildRequestResponseL2FulfillListener } from './request-responnse-L2-fulfill' +import { buildListener as buildRequestResponseL2RequestListener } from './request-responnse-L2-request' import { buildListener as buildVrfListener } from './vrf' import { buildListener as buildVrfL2FulfillListener } from './vrf-L2-fulfill' import { buildListener as buildVrfL2RequestListener } from './vrf-L2-request' diff --git a/core/src/listener/requestResponnse-L2-fulfill.ts b/core/src/listener/request-responnse-L2-fulfill.ts similarity index 79% rename from core/src/listener/requestResponnse-L2-fulfill.ts rename to core/src/listener/request-responnse-L2-fulfill.ts index f1a51c83d..615a58c81 100644 --- a/core/src/listener/requestResponnse-L2-fulfill.ts +++ b/core/src/listener/request-responnse-L2-fulfill.ts @@ -19,6 +19,7 @@ import { } from '../types' import { listenerService } from './listener' import { ProcessEventOutputType } from './types' +import { parseResponse } from './request-response-L2.utils' const FILE_NAME = import.meta.url @@ -67,29 +68,7 @@ async function processEvent({ iface, logger }: { iface: ethers.utils.Interface; _logger.debug(eventData, 'eventData') const requestId = eventData.requestId.toString() - let response: number | string | boolean = 0 - switch (eventData.jobId) { - case ethers.utils.id('uint128'): - response = Number(eventData.responseUint128) - break - case ethers.utils.id('int256'): - response = Number(eventData.responseInt256) - break - case ethers.utils.id('bool'): - response = eventData.responseBool - break - case ethers.utils.id('string'): - response = eventData.responseString - break - case ethers.utils.id('bytes32'): - response = eventData.responseBytes32 - break - case ethers.utils.id('bytes'): - response = eventData.responseBytes - break - default: - break - } + const response = parseResponse[eventData.jobId](eventData) const jobData: IL2RequestResponseFulfillListenerWorker = { callbackAddress: L1_ENDPOINT, blockNum: log.blockNumber, @@ -98,7 +77,7 @@ async function processEvent({ iface, logger }: { iface: ethers.utils.Interface; jobId: eventData.jobId.toString(), callbackGasLimit: eventData.callbackGasLimit, sender: eventData.sender, - response: response + response } _logger.debug(jobData, 'jobData') diff --git a/core/src/listener/requestResponnse-L2-request.ts b/core/src/listener/request-responnse-L2-request.ts similarity index 100% rename from core/src/listener/requestResponnse-L2-request.ts rename to core/src/listener/request-responnse-L2-request.ts diff --git a/core/src/listener/request-response-L2.utils.ts b/core/src/listener/request-response-L2.utils.ts new file mode 100644 index 000000000..7ec8e4ec7 --- /dev/null +++ b/core/src/listener/request-response-L2.utils.ts @@ -0,0 +1,30 @@ +import { ethers } from 'ethers' +import { IL2DataRequestFulfilled } from '../types' + +export const UINT128 = ethers.utils.id('uint128') +export const INT256 = ethers.utils.id('uint128') +export const BOOL = ethers.utils.id('bool') +export const STRING = ethers.utils.id('string') +export const BYTES32 = ethers.utils.id('bytes32') +export const BYTES = ethers.utils.id('bytes') + +export const parseResponse = { + [UINT128]: function (x: IL2DataRequestFulfilled) { + return Number(x.responseUint128) + }, + [INT256]: function (x: IL2DataRequestFulfilled) { + return Number(x.responseInt256) + }, + [BOOL]: function (x: IL2DataRequestFulfilled) { + return x.responseBool + }, + [STRING]: function (x: IL2DataRequestFulfilled) { + return x.responseString + }, + [BYTES32]: function (x: IL2DataRequestFulfilled) { + return x.responseBytes32 + }, + [BYTES]: function (x: IL2DataRequestFulfilled) { + return x.responseBytes + } +} satisfies Record number | string | boolean> diff --git a/core/src/types.ts b/core/src/types.ts index a3b6f2696..1eed1cf2f 100644 --- a/core/src/types.ts +++ b/core/src/types.ts @@ -108,6 +108,7 @@ export interface IL2DataRequested { callbackGasLimit: number sender: string numSubmission: number + /* eslint-disable @typescript-eslint/no-explicit-any */ req: any } @@ -199,6 +200,7 @@ export interface IL2RequestResponseListenerWorker { callbackGasLimit: number sender: string numSubmission: number + /* eslint-disable @typescript-eslint/no-explicit-any */ req: any } @@ -210,6 +212,7 @@ export interface IL2RequestResponseFulfillListenerWorker { callbackGasLimit: number sender: string l2RequestId: string + /* eslint-disable @typescript-eslint/no-explicit-any */ response: any } @@ -417,6 +420,7 @@ export interface IL2RequestResponseRequestTransactionParameters { numSubmission: number sender: string l2RequestId: string + /* eslint-disable @typescript-eslint/no-explicit-any */ req: any } diff --git a/core/src/worker/request-response-L2-request.ts b/core/src/worker/request-response-L2-request.ts index 26359f539..34a2c0d14 100644 --- a/core/src/worker/request-response-L2-request.ts +++ b/core/src/worker/request-response-L2-request.ts @@ -3,10 +3,8 @@ import { Queue, Worker } from 'bullmq' import { ethers } from 'ethers' import { Logger } from 'pino' import type { RedisClientType } from 'redis' -import { getVrfConfig } from '../api' import { BULLMQ_CONNECTION, - CHAIN, L1_ENDPOINT, L2_REPORTER_REQUEST_RESPONSE_REQUEST_QUEUE_NAME, L2_WORKER_REQUEST_RESPONSE_REQUEST_QUEUE_NAME, @@ -17,7 +15,6 @@ import { IL2RequestResponseListenerWorker, IL2RequestResponseRequestTransactionParameters, ITransactionParameters, - IVrfConfig, QueueType } from '../types' @@ -26,11 +23,9 @@ const FILE_NAME = import.meta.url export async function worker(redisClient: RedisClientType, _logger: Logger) { const logger = _logger.child({ name: 'worker', file: FILE_NAME }) const queue = new Queue(L2_REPORTER_REQUEST_RESPONSE_REQUEST_QUEUE_NAME, BULLMQ_CONNECTION) - // FIXME add checks if exists and if includes all information - const vrfConfig = await getVrfConfig({ chain: CHAIN, logger }) const worker = new Worker( L2_WORKER_REQUEST_RESPONSE_REQUEST_QUEUE_NAME, - await job(queue, vrfConfig, _logger), + await job(queue, _logger), BULLMQ_CONNECTION ) @@ -44,7 +39,7 @@ export async function worker(redisClient: RedisClientType, _logger: Logger) { process.on('SIGTERM', handleExit) } -export async function job(reporterQueue: QueueType, config: IVrfConfig, _logger: Logger) { +export async function job(reporterQueue: QueueType, _logger: Logger) { const logger = _logger.child({ name: 'l2RequestResponseRequestJob', file: FILE_NAME }) const iface = new ethers.utils.Interface(L1Endpoint__factory.abi)