From c47bbb891d6ce0d0b5fe31d8101da17afa3d86f9 Mon Sep 17 00:00:00 2001 From: Kelvin Fichter Date: Fri, 12 Nov 2021 21:10:11 -0500 Subject: [PATCH] maintenance: remove event types from core utils --- packages/contracts/package.json | 6 +-- packages/core-utils/src/events.ts | 38 ------------------- packages/core-utils/src/index.ts | 1 - .../handlers/sequencer-batch-appended.ts | 4 +- .../handlers/state-batch-appended.ts | 4 +- .../handlers/transaction-enqueued.ts | 7 ++-- .../src/services/l1-ingestion/service.ts | 7 ++-- .../src/types/event-handler-types.ts | 31 +++++++-------- yarn.lock | 27 +++++++------ 9 files changed, 45 insertions(+), 80 deletions(-) delete mode 100644 packages/core-utils/src/events.ts diff --git a/packages/contracts/package.json b/packages/contracts/package.json index f8697e919d823..40e008aa7534f 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -73,8 +73,8 @@ "@nomiclabs/hardhat-waffle": "^2.0.1", "@openzeppelin/contracts": "4.3.2", "@openzeppelin/contracts-upgradeable": "4.3.2", - "@typechain/ethers-v5": "^7.0.1", - "@typechain/hardhat": "^2.3.0", + "@typechain/ethers-v5": "^8.0.2", + "@typechain/hardhat": "^3.0.0", "@types/chai": "^4.2.18", "@types/lodash": "^4.14.168", "@types/mkdirp": "^1.0.1", @@ -117,7 +117,7 @@ "solidity-coverage": "^0.7.17", "ts-generator": "0.0.8", "ts-node": "^10.0.0", - "typechain": "^5.1.0", + "typechain": "^6.0.2", "typescript": "^4.3.5", "yargs": "^16.2.0" }, diff --git a/packages/core-utils/src/events.ts b/packages/core-utils/src/events.ts deleted file mode 100644 index b0a2306a171bd..0000000000000 --- a/packages/core-utils/src/events.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ethers } from 'ethers' - -export interface EventArgsAddressSet { - _name: string - _newAddress: string - _oldAddress: string -} - -export interface EventArgsTransactionEnqueued { - _l1TxOrigin: string - _target: string - _gasLimit: ethers.BigNumber - _data: string - _queueIndex: ethers.BigNumber - _timestamp: ethers.BigNumber -} - -export interface EventArgsTransactionBatchAppended { - _batchIndex: ethers.BigNumber - _batchRoot: string - _batchSize: ethers.BigNumber - _prevTotalElements: ethers.BigNumber - _extraData: string -} - -export interface EventArgsStateBatchAppended { - _batchIndex: ethers.BigNumber - _batchRoot: string - _batchSize: ethers.BigNumber - _prevTotalElements: ethers.BigNumber - _extraData: string -} - -export interface EventArgsSequencerBatchAppended { - _startingQueueIndex: ethers.BigNumber - _numQueueElements: ethers.BigNumber - _totalElements: ethers.BigNumber -} diff --git a/packages/core-utils/src/index.ts b/packages/core-utils/src/index.ts index 8c45e1cce066a..0e60c32e9cfd5 100644 --- a/packages/core-utils/src/index.ts +++ b/packages/core-utils/src/index.ts @@ -2,7 +2,6 @@ export * from './coders' export * from './common' export * from './watcher' export * from './l2context' -export * from './events' export * from './batches' export * from './bcfg' export * from './fees' diff --git a/packages/data-transport-layer/src/services/l1-ingestion/handlers/sequencer-batch-appended.ts b/packages/data-transport-layer/src/services/l1-ingestion/handlers/sequencer-batch-appended.ts index 49a7243c97401..3c5a724a4b320 100644 --- a/packages/data-transport-layer/src/services/l1-ingestion/handlers/sequencer-batch-appended.ts +++ b/packages/data-transport-layer/src/services/l1-ingestion/handlers/sequencer-batch-appended.ts @@ -5,8 +5,8 @@ import { fromHexString, toHexString, toRpcHexString, - EventArgsSequencerBatchAppended, } from '@eth-optimism/core-utils' +import { SequencerBatchAppendedEvent } from '@eth-optimism/contracts/dist/types/CanonicalTransactionChain' /* Imports: Internal */ import { @@ -21,7 +21,7 @@ import { SEQUENCER_GAS_LIMIT, parseSignatureVParam } from '../../../utils' import { MissingElementError } from './errors' export const handleEventsSequencerBatchAppended: EventHandlerSet< - EventArgsSequencerBatchAppended, + SequencerBatchAppendedEvent, SequencerBatchAppendedExtraData, SequencerBatchAppendedParsedEvent > = { diff --git a/packages/data-transport-layer/src/services/l1-ingestion/handlers/state-batch-appended.ts b/packages/data-transport-layer/src/services/l1-ingestion/handlers/state-batch-appended.ts index 1822a73f0d793..c9249b8db6452 100644 --- a/packages/data-transport-layer/src/services/l1-ingestion/handlers/state-batch-appended.ts +++ b/packages/data-transport-layer/src/services/l1-ingestion/handlers/state-batch-appended.ts @@ -1,6 +1,6 @@ /* Imports: External */ +import { StateBatchAppendedEvent } from '@eth-optimism/contracts/dist/types/StateCommitmentChain' import { getContractFactory } from '@eth-optimism/contracts' -import { EventArgsStateBatchAppended } from '@eth-optimism/core-utils' import { BigNumber } from 'ethers' /* Imports: Internal */ @@ -14,7 +14,7 @@ import { import { MissingElementError } from './errors' export const handleEventsStateBatchAppended: EventHandlerSet< - EventArgsStateBatchAppended, + StateBatchAppendedEvent, StateBatchAppendedExtraData, StateBatchAppendedParsedEvent > = { diff --git a/packages/data-transport-layer/src/services/l1-ingestion/handlers/transaction-enqueued.ts b/packages/data-transport-layer/src/services/l1-ingestion/handlers/transaction-enqueued.ts index 415d65fa1ef62..7d60240986391 100644 --- a/packages/data-transport-layer/src/services/l1-ingestion/handlers/transaction-enqueued.ts +++ b/packages/data-transport-layer/src/services/l1-ingestion/handlers/transaction-enqueued.ts @@ -1,12 +1,13 @@ -import { EventArgsTransactionEnqueued } from '@eth-optimism/core-utils' +/* Imports: External */ +import { BigNumber } from 'ethers' +import { TransactionEnqueuedEvent } from '@eth-optimism/contracts/dist/types/CanonicalTransactionChain' /* Imports: Internal */ -import { BigNumber } from 'ethers' import { EnqueueEntry, EventHandlerSet } from '../../../types' import { MissingElementError } from './errors' export const handleEventsTransactionEnqueued: EventHandlerSet< - EventArgsTransactionEnqueued, + TransactionEnqueuedEvent, null, EnqueueEntry > = { diff --git a/packages/data-transport-layer/src/services/l1-ingestion/service.ts b/packages/data-transport-layer/src/services/l1-ingestion/service.ts index ae0295f94544a..fd5905fac4759 100644 --- a/packages/data-transport-layer/src/services/l1-ingestion/service.ts +++ b/packages/data-transport-layer/src/services/l1-ingestion/service.ts @@ -1,6 +1,7 @@ /* Imports: External */ import { fromHexString, FallbackProvider } from '@eth-optimism/core-utils' import { BaseService, Metrics } from '@eth-optimism/common-ts' +import { TypedEvent } from '@eth-optimism/contracts/dist/types/common' import { BaseProvider } from '@ethersproject/providers' import { LevelUp } from 'levelup' import { constants } from 'ethers' @@ -15,7 +16,7 @@ import { loadContract, validators, } from '../../utils' -import { TypedEthersEvent, EventHandlerSet } from '../../types' +import { EventHandlerSet } from '../../types' import { handleEventsTransactionEnqueued } from './handlers/transaction-enqueued' import { handleEventsSequencerBatchAppended } from './handlers/sequencer-batch-appended' import { handleEventsStateBatchAppended } from './handlers/state-batch-appended' @@ -389,9 +390,7 @@ export class L1IngestionService extends BaseService { for (const eventRange of eventRanges) { // Find all relevant events within the range. - const events: TypedEthersEvent[] = await this.state.contracts[ - contractName - ] + const events: TypedEvent[] = await this.state.contracts[contractName] .attach(eventRange.address) .queryFilter( this.state.contracts[contractName].filters[eventName](), diff --git a/packages/data-transport-layer/src/types/event-handler-types.ts b/packages/data-transport-layer/src/types/event-handler-types.ts index 4a099957ea8a8..71e016c4e7943 100644 --- a/packages/data-transport-layer/src/types/event-handler-types.ts +++ b/packages/data-transport-layer/src/types/event-handler-types.ts @@ -1,5 +1,6 @@ import { BaseProvider } from '@ethersproject/providers' -import { BigNumber, Event } from 'ethers' +import { BigNumber } from 'ethers' +import { TypedEvent } from '@eth-optimism/contracts/dist/types/common' import { TransportDB } from '../db/transport-db' import { @@ -9,29 +10,29 @@ import { StateRootEntry, } from './database-types' -export type TypedEthersEvent = Event & { - args: T -} - -export type GetExtraDataHandler = ( - event?: TypedEthersEvent, +export type GetExtraDataHandler = ( + event?: TEvent, l1RpcProvider?: BaseProvider ) => Promise -export type ParseEventHandler = ( - event: TypedEthersEvent, - extraData: TExtraData, - l2ChainId: number -) => TParsedEvent +export type ParseEventHandler< + TEvent extends TypedEvent, + TExtraData, + TParsedEvent +> = (event: TEvent, extraData: TExtraData, l2ChainId: number) => TParsedEvent export type StoreEventHandler = ( parsedEvent: TParsedEvent, db: TransportDB ) => Promise -export interface EventHandlerSet { - getExtraData: GetExtraDataHandler - parseEvent: ParseEventHandler +export interface EventHandlerSet< + TEvent extends TypedEvent, + TExtraData, + TParsedEvent +> { + getExtraData: GetExtraDataHandler + parseEvent: ParseEventHandler storeEvent: StoreEventHandler } diff --git a/yarn.lock b/yarn.lock index 5bd4b7e3bffd2..6dc5e631bf0a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2686,15 +2686,18 @@ dependencies: ethers "^5.0.2" -"@typechain/ethers-v5@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-7.0.1.tgz#f9ae60ae5bd9e8ea8a996f66244147e8e74034ae" - integrity sha512-mXEJ7LG0pOYO+MRPkHtbf30Ey9X2KAsU0wkeoVvjQIn7iAY6tB3k3s+82bbmJAUMyENbQ04RDOZit36CgSG6Gg== +"@typechain/ethers-v5@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-8.0.2.tgz#0f2cc0db1513cb02e3e78929139216b153c9d2c0" + integrity sha512-oRMA3X5UWrsUiNb/lFTusa8xBpw6CckOHAk7sZBHeDQh4tAp+ZU24wdwdURcOtPnagzdCv5Dvl1qlD038brf1A== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" -"@typechain/hardhat@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-2.3.0.tgz#dc7f29281637b38b77c7c046ae82700703395d0f" - integrity sha512-zERrtNol86L4DX60ktnXxP7Cq8rSZHPaQvsChyiQQVuvVs2FTLm24Yi+MYnfsIdbUBIXZG7SxDWhtCF5I0tJNQ== +"@typechain/hardhat@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-3.0.0.tgz#a94396855506d42b98d6e7c09f87ca14180d6c64" + integrity sha512-FpnIIXkDXm54XCHI/Z2iOet7h1MrFSvZfuljX9Uzc6FEjEfb01Tuzu8ywe2iquD3g5JXqovgdv+M54L/2Z6jkg== dependencies: fs-extra "^9.1.0" @@ -15170,10 +15173,10 @@ typechain@^3.0.0: ts-essentials "^6.0.3" ts-generator "^0.1.1" -typechain@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-5.1.2.tgz#c8784d6155a8e69397ca47f438a3b4fb2aa939da" - integrity sha512-FuaCxJd7BD3ZAjVJoO+D6TnqKey3pQdsqOBsC83RKYWKli5BDhdf0TPkwfyjt20TUlZvOzJifz+lDwXsRkiSKA== +typechain@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-6.0.2.tgz#0a1d6328aa934dfd66c8941cd94c1d3491cc34f0" + integrity sha512-fphYQ2+r5z38eq02qr4KjgU9/Xdda8Cj+eV2QHSRXhDPyhEVv+ln9123iGjjDLEhGyROb3DQkbvjm3Dl0GtUeQ== dependencies: "@types/prettier" "^2.1.1" command-line-args "^4.0.7"