Commit 28dc4429 authored by Annie Ke's avatar Annie Ke Committed by GitHub

refactor: move logger, metrics, base-service to common-ts (#683)

* WIP: common-ts

* remove common-ts files from core-utils

* fix imports in bs and dtl

* update dockerfiles

* cleanup common-ts

* add changeset and message relayer dependency

* add dtl common-ts dependency

* make .prettier rc symlink
Co-authored-by: default avatarLiam Horne <liam@lihorne.com>
parent d0a2857e
---
'@eth-optimism/common-ts': minor
'@eth-optimism/core-utils': minor
'@eth-optimism/batch-submitter': patch
'@eth-optimism/data-transport-layer': patch
'@eth-optimism/message-relayer': patch
---
move metrics, logger, and base-service to new common-ts package
...@@ -6,6 +6,7 @@ ops/ @tynes @karlfloersch ...@@ -6,6 +6,7 @@ ops/ @tynes @karlfloersch
packages/hardhat-ovm/ @smartcontracts packages/hardhat-ovm/ @smartcontracts
packages/smock/ @smartcontracts @maurelian packages/smock/ @smartcontracts @maurelian
packages/core-utils/ @smartcontracts @annieke @ben-chain packages/core-utils/ @smartcontracts @annieke @ben-chain
packages/common-ts/ @annieke
packages/core-utils/src/watcher.ts @K-Ho packages/core-utils/src/watcher.ts @K-Ho
packages/message-relayer/ @K-Ho packages/message-relayer/ @K-Ho
packages/batch-submitter/ @annieke @karlfloersch packages/batch-submitter/ @annieke @karlfloersch
......
...@@ -15,6 +15,7 @@ Extensive documentation is available [here](http://community.optimism.io/docs/) ...@@ -15,6 +15,7 @@ Extensive documentation is available [here](http://community.optimism.io/docs/)
* [`packages`](./packages): Contains all the typescript packages and contracts * [`packages`](./packages): Contains all the typescript packages and contracts
* [`contracts`](./packages/contracts): Solidity smart contracts implementing the OVM * [`contracts`](./packages/contracts): Solidity smart contracts implementing the OVM
* [`core-utils`](./packages/core-utils): Low-level utilities and encoding packages * [`core-utils`](./packages/core-utils): Low-level utilities and encoding packages
* [`common-ts`](./packages/common-ts): Common tools for TypeScript code that runs in Node
* [`hardhat-ovm`](./packages/hardhat-ovm): Hardhat plugin which enables the [OVM Compiler](https://github.com/ethereum-optimism/solidity) * [`hardhat-ovm`](./packages/hardhat-ovm): Hardhat plugin which enables the [OVM Compiler](https://github.com/ethereum-optimism/solidity)
* [`smock`](./packages/smock): Testing utility for mocking smart contract return values and storage * [`smock`](./packages/smock): Testing utility for mocking smart contract return values and storage
* [`data-transport-layer`](./packages/data-transport-layer): Event indexer, allowing the `l2geth` node to access L1 data * [`data-transport-layer`](./packages/data-transport-layer): Event indexer, allowing the `l2geth` node to access L1 data
......
...@@ -13,6 +13,8 @@ COPY --from=builder /optimism/node_modules ./node_modules ...@@ -13,6 +13,8 @@ COPY --from=builder /optimism/node_modules ./node_modules
# copy deps (would have been nice if docker followed the symlinks required) # copy deps (would have been nice if docker followed the symlinks required)
COPY --from=builder /optimism/packages/core-utils/package.json ./packages/core-utils/package.json COPY --from=builder /optimism/packages/core-utils/package.json ./packages/core-utils/package.json
COPY --from=builder /optimism/packages/core-utils/dist ./packages/core-utils/dist COPY --from=builder /optimism/packages/core-utils/dist ./packages/core-utils/dist
COPY --from=builder /optimism/packages/common-ts/package.json ./packages/common-ts/package.json
COPY --from=builder /optimism/packages/common-ts/dist ./packages/common-ts/dist
COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json
COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist
......
...@@ -14,6 +14,8 @@ COPY --from=builder /optimism/node_modules ./node_modules ...@@ -14,6 +14,8 @@ COPY --from=builder /optimism/node_modules ./node_modules
# copy deps (would have been nice if docker followed the symlinks required) # copy deps (would have been nice if docker followed the symlinks required)
COPY --from=builder /optimism/packages/core-utils/package.json ./packages/core-utils/package.json COPY --from=builder /optimism/packages/core-utils/package.json ./packages/core-utils/package.json
COPY --from=builder /optimism/packages/core-utils/dist ./packages/core-utils/dist COPY --from=builder /optimism/packages/core-utils/dist ./packages/core-utils/dist
COPY --from=builder /optimism/packages/common-ts/package.json ./packages/common-ts/package.json
COPY --from=builder /optimism/packages/common-ts/dist ./packages/common-ts/dist
COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json
COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist
......
...@@ -14,6 +14,8 @@ COPY --from=builder /optimism/node_modules ./node_modules ...@@ -14,6 +14,8 @@ COPY --from=builder /optimism/node_modules ./node_modules
# copy deps (would have been nice if docker followed the symlinks required) # copy deps (would have been nice if docker followed the symlinks required)
COPY --from=builder /optimism/packages/core-utils/package.json ./packages/core-utils/package.json COPY --from=builder /optimism/packages/core-utils/package.json ./packages/core-utils/package.json
COPY --from=builder /optimism/packages/core-utils/dist ./packages/core-utils/dist COPY --from=builder /optimism/packages/core-utils/dist ./packages/core-utils/dist
COPY --from=builder /optimism/packages/common-ts/package.json ./packages/common-ts/package.json
COPY --from=builder /optimism/packages/common-ts/dist ./packages/common-ts/dist
COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json COPY --from=builder /optimism/packages/contracts/package.json ./packages/contracts/package.json
COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist COPY --from=builder /optimism/packages/contracts/dist ./packages/contracts/dist
......
...@@ -25,6 +25,7 @@ FROM node as builder ...@@ -25,6 +25,7 @@ FROM node as builder
WORKDIR /optimism WORKDIR /optimism
COPY *.json yarn.lock ./ COPY *.json yarn.lock ./
COPY packages/core-utils/package.json ./packages/core-utils/package.json COPY packages/core-utils/package.json ./packages/core-utils/package.json
COPY packages/common-ts/package.json ./packages/common-ts/package.json
COPY packages/hardhat-ovm/package.json ./packages/hardhat-ovm/package.json COPY packages/hardhat-ovm/package.json ./packages/hardhat-ovm/package.json
COPY packages/smock/package.json ./packages/smock/package.json COPY packages/smock/package.json ./packages/smock/package.json
COPY packages/contracts/package.json ./packages/contracts/package.json COPY packages/contracts/package.json ./packages/contracts/package.json
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
"dependencies": { "dependencies": {
"@eth-optimism/contracts": "^0.2.8", "@eth-optimism/contracts": "^0.2.8",
"@eth-optimism/core-utils": "^0.3.2", "@eth-optimism/core-utils": "^0.3.2",
"@eth-optimism/common-ts": "^0.0.1",
"@eth-optimism/ynatm": "^0.2.2", "@eth-optimism/ynatm": "^0.2.2",
"@ethersproject/abstract-provider": "^5.0.5", "@ethersproject/abstract-provider": "^5.0.5",
"@ethersproject/providers": "^5.0.14", "@ethersproject/providers": "^5.0.14",
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
import { Contract, Signer, utils, providers } from 'ethers' import { Contract, Signer, utils, providers } from 'ethers'
import { TransactionReceipt } from '@ethersproject/abstract-provider' import { TransactionReceipt } from '@ethersproject/abstract-provider'
import * as ynatm from '@eth-optimism/ynatm' import * as ynatm from '@eth-optimism/ynatm'
import { RollupInfo, Logger, Metrics } from '@eth-optimism/core-utils' import { RollupInfo } from '@eth-optimism/core-utils'
import { Logger, Metrics } from '@eth-optimism/common-ts'
import { getContractFactory } from 'old-contracts' import { getContractFactory } from 'old-contracts'
export interface Range { export interface Range {
......
...@@ -6,11 +6,10 @@ import { getContractFactory } from 'old-contracts' ...@@ -6,11 +6,10 @@ import { getContractFactory } from 'old-contracts'
import { import {
L2Block, L2Block,
RollupInfo, RollupInfo,
Logger,
Bytes32, Bytes32,
remove0x, remove0x,
Metrics,
} from '@eth-optimism/core-utils' } from '@eth-optimism/core-utils'
import { Logger, Metrics } from '@eth-optimism/common-ts'
/* Internal Imports */ /* Internal Imports */
import { Range, BatchSubmitter, BLOCK_OFFSET } from '.' import { Range, BatchSubmitter, BLOCK_OFFSET } from '.'
......
...@@ -10,9 +10,8 @@ import { ...@@ -10,9 +10,8 @@ import {
BatchElement, BatchElement,
Batch, Batch,
QueueOrigin, QueueOrigin,
Logger,
Metrics,
} from '@eth-optimism/core-utils' } from '@eth-optimism/core-utils'
import { Logger, Metrics } from '@eth-optimism/common-ts'
/* Internal Imports */ /* Internal Imports */
import { import {
......
/* External Imports */ /* External Imports */
import { Logger, Metrics, injectL2Context } from '@eth-optimism/core-utils' import { injectL2Context } from '@eth-optimism/core-utils'
import { Logger, Metrics } from '@eth-optimism/common-ts'
import { exit } from 'process' import { exit } from 'process'
import { Signer, Wallet } from 'ethers' import { Signer, Wallet } from 'ethers'
import { JsonRpcProvider, TransactionReceipt } from '@ethersproject/providers' import { JsonRpcProvider, TransactionReceipt } from '@ethersproject/providers'
......
...@@ -35,9 +35,8 @@ import { ...@@ -35,9 +35,8 @@ import {
Signature, Signature,
TxType, TxType,
remove0x, remove0x,
Logger,
Metrics,
} from '@eth-optimism/core-utils' } from '@eth-optimism/core-utils'
import { Logger, Metrics } from '@eth-optimism/common-ts'
const DECOMPRESSION_ADDRESS = '0x4200000000000000000000000000000000000008' const DECOMPRESSION_ADDRESS = '0x4200000000000000000000000000000000000008'
const DUMMY_ADDRESS = '0x' + '00'.repeat(20) const DUMMY_ADDRESS = '0x' + '00'.repeat(20)
......
node_modules/
build/
\ No newline at end of file
../../.prettierrc.json
\ No newline at end of file
# @eth-optimism/common-ts
## What is this?
`@eth-optimism/common-ts` contains useful tools for logging, metrics, and other Node stuff.
{
"name": "@eth-optimism/common-ts",
"version": "0.0.1",
"main": "dist/index",
"files": [
"dist/*"
],
"types": "dist/index",
"license": "MIT",
"scripts": {
"all": "yarn clean && yarn build && yarn test && yarn lint:fix && yarn lint",
"build": "tsc -p tsconfig.build.json",
"clean": "rimraf dist/ ./tsconfig.build.tsbuildinfo",
"lint": "tslint --format stylish --project .",
"lint:fix": "prettier --config .prettierrc.json --write '{src,test}/**/*.ts'"
},
"devDependencies": {
"@types/pino": "^6.3.6",
"@types/pino-multi-stream": "^5.1.1",
"prettier": "^2.2.1",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0",
"tslint-no-focused-test": "^0.5.0",
"tslint-plugin-prettier": "^2.3.0",
"typescript": "^4.2.3"
},
"dependencies": {
"@sentry/node": "^6.2.5",
"pino": "^6.11.3",
"pino-multi-stream": "^5.3.0",
"pino-sentry": "^0.7.0",
"prom-client": "^13.1.0"
}
}
export * from './logger'
export * from './metrics'
export * from './common'
export * from './base-service'
{
"extends": "../../tsconfig.build.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
},
"include": [
"src/**/*"
]
}
{
"extends": "../../tsconfig.json"
}
{
"extends": "../../tslint.base.json"
}
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
"test": "ts-mocha test/**/*.spec.ts" "test": "ts-mocha test/**/*.spec.ts"
}, },
"devDependencies": { "devDependencies": {
"@types/pino": "^6.3.6",
"chai": "^4.3.0", "chai": "^4.3.0",
"mocha": "^8.3.0", "mocha": "^8.3.0",
"prettier": "^2.2.1", "prettier": "^2.2.1",
...@@ -31,13 +30,7 @@ ...@@ -31,13 +30,7 @@
}, },
"dependencies": { "dependencies": {
"@ethersproject/abstract-provider": "^5.0.9", "@ethersproject/abstract-provider": "^5.0.9",
"@sentry/node": "^6.2.5",
"@types/pino-multi-stream": "^5.1.1",
"ethers": "^5.0.31", "ethers": "^5.0.31",
"lodash": "^4.17.21", "lodash": "^4.17.21"
"pino": "^6.11.3",
"pino-multi-stream": "^5.3.0",
"pino-sentry": "^0.7.0",
"prom-client": "^13.1.0"
} }
} }
export * from './addresses' export * from './addresses'
export * from './hex-strings' export * from './hex-strings'
export * from './logger'
export * from './metrics'
export * from './misc' export * from './misc'
export * from './common' export * from './common'
export * from './coders' export * from './coders'
export * from './common' export * from './common'
export * from './watcher' export * from './watcher'
export * from './base-service'
export * from './l2context' export * from './l2context'
export * from './events' export * from './events'
export * from './batches' export * from './batches'
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
"dependencies": { "dependencies": {
"@eth-optimism/contracts": "^0.2.8", "@eth-optimism/contracts": "^0.2.8",
"@eth-optimism/core-utils": "^0.3.2", "@eth-optimism/core-utils": "^0.3.2",
"@eth-optimism/common-ts": "^0.0.1",
"@ethersproject/providers": "^5.0.21", "@ethersproject/providers": "^5.0.21",
"@sentry/node": "^6.3.1", "@sentry/node": "^6.3.1",
"@sentry/tracing": "^6.3.1", "@sentry/tracing": "^6.3.1",
......
/* Imports: External */ /* Imports: External */
import { import { fromHexString, EventArgsAddressSet } from '@eth-optimism/core-utils'
fromHexString, import { BaseService } from '@eth-optimism/common-ts'
BaseService,
EventArgsAddressSet,
} from '@eth-optimism/core-utils'
import { JsonRpcProvider } from '@ethersproject/providers' import { JsonRpcProvider } from '@ethersproject/providers'
import { LevelUp } from 'levelup' import { LevelUp } from 'levelup'
......
/* Imports: External */ /* Imports: External */
import { BaseService } from '@eth-optimism/core-utils' import { BaseService } from '@eth-optimism/common-ts'
import { JsonRpcProvider } from '@ethersproject/providers' import { JsonRpcProvider } from '@ethersproject/providers'
import { BigNumber } from 'ethers' import { BigNumber } from 'ethers'
import { LevelUp } from 'levelup' import { LevelUp } from 'levelup'
......
/* Imports: External */ /* Imports: External */
import { BaseService } from '@eth-optimism/core-utils' import { BaseService } from '@eth-optimism/common-ts'
import { LevelUp } from 'levelup' import { LevelUp } from 'levelup'
import level from 'level' import level from 'level'
......
/* Imports: External */ /* Imports: External */
import { BaseService } from '@eth-optimism/core-utils' import { BaseService } from '@eth-optimism/common-ts'
import express, { Request, Response } from 'express' import express, { Request, Response } from 'express'
import cors from 'cors' import cors from 'cors'
import { BigNumber } from 'ethers' import { BigNumber } from 'ethers'
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
}, },
"dependencies": { "dependencies": {
"@eth-optimism/core-utils": "^0.3.0", "@eth-optimism/core-utils": "^0.3.0",
"@eth-optimism/common-ts": "^0.0.1",
"@eth-optimism/contracts": "^0.2.5", "@eth-optimism/contracts": "^0.2.5",
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"ethers": "^5.1.0", "ethers": "^5.1.0",
......
...@@ -4,7 +4,8 @@ import * as rlp from 'rlp' ...@@ -4,7 +4,8 @@ import * as rlp from 'rlp'
import { MerkleTree } from 'merkletreejs' import { MerkleTree } from 'merkletreejs'
/* Imports: Internal */ /* Imports: Internal */
import { BaseService, fromHexString, sleep } from '@eth-optimism/core-utils' import { fromHexString, sleep } from '@eth-optimism/core-utils'
import { BaseService } from '@eth-optimism/common-ts'
import SpreadSheet from './spreadsheet' import SpreadSheet from './spreadsheet'
import { loadContract, loadContractFromManager } from '@eth-optimism/contracts' import { loadContract, loadContractFromManager } from '@eth-optimism/contracts'
......
...@@ -2402,9 +2402,9 @@ ...@@ -2402,9 +2402,9 @@
"@types/node" "*" "@types/node" "*"
"@types/pino@*": "@types/pino@*":
version "6.3.7" version "6.3.8"
resolved "https://registry.yarnpkg.com/@types/pino/-/pino-6.3.7.tgz#0ccef98a159230cb3fa2589c7e8b00a7550a69f6" resolved "https://registry.yarnpkg.com/@types/pino/-/pino-6.3.8.tgz#ec589318c2798216a0f39882845c5e40b7151b56"
integrity sha512-v7FdDXVEL0Zx1zcCf0cJZMojChnF+O0ujDKV1UdocsLuUhENjdtNIaanCZK1zRELp35x//bI2/IHtYUK0vmRvw== integrity sha512-E47CmRy1FNMaCN8r0d8ECQOjXen9O0p6GGsUjLfmawlxRKosZ82WP1oWVKj+ikTkMDHxWzN5BuKmplo44ynrIg==
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/pino-pretty" "*" "@types/pino-pretty" "*"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment