From c49e9c4775ce9f85f41800c4fbbb9854a2300926 Mon Sep 17 00:00:00 2001 From: Mark Tyneway Date: Mon, 26 Jun 2023 11:31:13 -0700 Subject: [PATCH] contracts-bedrock: delete dead typescript This commit deletes a bunch of dead typescript code from the contracts-bedrock package. This deletes bundling in all of the artifacts into the npm package so it will make the npm package must smaller. It will also reduce the build time by removing some steps from the build. --- nx.json | 15 +- .../deploy-config/devnetL1.ts | 4 - .../deploy-config/getting-started.ts | 4 - .../deploy-config/goerli-forked.ts | 4 - .../contracts-bedrock/deploy-config/goerli.ts | 4 - .../deploy-config/hardhat.ts | 4 - .../contracts-bedrock/deploy-config/local.ts | 57 ------ .../deploy-config/mainnet.ts | 26 --- packages/contracts-bedrock/hardhat.config.ts | 180 ------------------ packages/contracts-bedrock/package.json | 26 +-- .../contracts-bedrock/src/contract-defs.ts | 52 ----- packages/contracts-bedrock/src/index.ts | 2 - .../tasks/generate-deploy-config.ts | 25 --- packages/contracts-bedrock/tasks/index.ts | 2 - packages/contracts-bedrock/tasks/solidity.ts | 10 - packages/contracts-bedrock/tsconfig.json | 2 - packages/core-utils/package.json | 1 + .../src/optimism}/constants.ts | 0 packages/core-utils/src/optimism/index.ts | 1 + yarn.lock | 146 +++----------- 20 files changed, 34 insertions(+), 531 deletions(-) delete mode 100644 packages/contracts-bedrock/deploy-config/devnetL1.ts delete mode 100644 packages/contracts-bedrock/deploy-config/getting-started.ts delete mode 100644 packages/contracts-bedrock/deploy-config/goerli-forked.ts delete mode 100644 packages/contracts-bedrock/deploy-config/goerli.ts delete mode 100644 packages/contracts-bedrock/deploy-config/hardhat.ts delete mode 100644 packages/contracts-bedrock/deploy-config/local.ts delete mode 100644 packages/contracts-bedrock/deploy-config/mainnet.ts delete mode 100644 packages/contracts-bedrock/hardhat.config.ts delete mode 100644 packages/contracts-bedrock/src/contract-defs.ts delete mode 100644 packages/contracts-bedrock/src/index.ts delete mode 100644 packages/contracts-bedrock/tasks/generate-deploy-config.ts delete mode 100644 packages/contracts-bedrock/tasks/index.ts delete mode 100644 packages/contracts-bedrock/tasks/solidity.ts rename packages/{contracts-bedrock/src => core-utils/src/optimism}/constants.ts (100%) diff --git a/nx.json b/nx.json index c9c7aa0d9bf6e..8cafe0ab0e769 100644 --- a/nx.json +++ b/nx.json @@ -28,7 +28,6 @@ "configsProject": [ "{projectRoot}/foundry.toml", "{projectRoot}/tsconfig.json", - "{projectRoot}/hardhat.config.ts", "{projectRoot}/package.json" ], "default": ["{projectRoot}/**/*", "configsWorkspace"], @@ -38,8 +37,6 @@ ], "productionSrc": [ "{projectRoot}/src/**/*", - "!{projectRoot}/src/contract-artifacts.ts", - "!{projectRoot}/src/contract-deployed-artifacts.ts", "!{projectRoot}/src/**/*.spec.ts" ], "productionContracts": ["{projectRoot}/contracts/**/*"], @@ -63,16 +60,6 @@ "dependsOn": ["^build"], "outputs": ["{projectRoot}/artifacts", "{projectRoot}/forge-artifacts"] }, - "autogen:artifacts": { - "inputs": [ - "configsWorkspace", - "configsProject", - "productionContracts", - "^productionContracts" - ], - "dependsOn": ["^build", "build:contracts"], - "outputs": ["srcGenerated"] - }, "build": { "inputs": [ "configsWorkspace", @@ -80,7 +67,7 @@ "production", "^production" ], - "dependsOn": ["^build", "autogen:artifacts", "build:contracts"], + "dependsOn": ["^build", "build:contracts"], "outputs": ["{projectRoot}/dist"] } } diff --git a/packages/contracts-bedrock/deploy-config/devnetL1.ts b/packages/contracts-bedrock/deploy-config/devnetL1.ts deleted file mode 100644 index 546ae4675b783..0000000000000 --- a/packages/contracts-bedrock/deploy-config/devnetL1.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' -import config from './devnetL1.json' - -export default config satisfies DeployConfig diff --git a/packages/contracts-bedrock/deploy-config/getting-started.ts b/packages/contracts-bedrock/deploy-config/getting-started.ts deleted file mode 100644 index c990772bc28f1..0000000000000 --- a/packages/contracts-bedrock/deploy-config/getting-started.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' -import config from './getting-started.json' - -export default config satisfies DeployConfig diff --git a/packages/contracts-bedrock/deploy-config/goerli-forked.ts b/packages/contracts-bedrock/deploy-config/goerli-forked.ts deleted file mode 100644 index 93485d9e65335..0000000000000 --- a/packages/contracts-bedrock/deploy-config/goerli-forked.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' -import config from './goerli-forked.json' - -export default config satisfies DeployConfig diff --git a/packages/contracts-bedrock/deploy-config/goerli.ts b/packages/contracts-bedrock/deploy-config/goerli.ts deleted file mode 100644 index b2f08e7480174..0000000000000 --- a/packages/contracts-bedrock/deploy-config/goerli.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' -import config from './goerli.json' - -export default config satisfies DeployConfig diff --git a/packages/contracts-bedrock/deploy-config/hardhat.ts b/packages/contracts-bedrock/deploy-config/hardhat.ts deleted file mode 100644 index c080e1e123a01..0000000000000 --- a/packages/contracts-bedrock/deploy-config/hardhat.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' -import config from './hardhat.json' - -export default config satisfies DeployConfig diff --git a/packages/contracts-bedrock/deploy-config/local.ts b/packages/contracts-bedrock/deploy-config/local.ts deleted file mode 100644 index bb7a197da19ec..0000000000000 --- a/packages/contracts-bedrock/deploy-config/local.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' - -const config: DeployConfig = { - finalSystemOwner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', - controller: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', - portalGuardian: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', - proxyAdminOwner: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', - - l1StartingBlockTag: - '0x126e52a0cc0ae18948f567ee9443f4a8f0db67c437706e35baee424eb314a0d0', - l1ChainID: 1, - l2ChainID: 10, - l2BlockTime: 2, - - maxSequencerDrift: 600, - sequencerWindowSize: 3600, - channelTimeout: 300, - - p2pSequencerAddress: '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65', - batchInboxAddress: '0xff00000000000000000000000000000000000010', - batchSenderAddress: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', - l2OutputOracleSubmissionInterval: 20, - l2OutputOracleStartingTimestamp: 1679069195, - l2OutputOracleStartingBlockNumber: 79149704, - l2OutputOracleProposer: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC', - l2OutputOracleChallenger: '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC', - finalizationPeriodSeconds: 2, - - baseFeeVaultRecipient: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', - l1FeeVaultRecipient: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', - sequencerFeeVaultRecipient: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', - - baseFeeVaultMinimumWithdrawalAmount: '0x8ac7230489e80000', - l1FeeVaultMinimumWithdrawalAmount: '0x8ac7230489e80000', - sequencerFeeVaultMinimumWithdrawalAmount: '0x8ac7230489e80000', - baseFeeVaultWithdrawalNetwork: 0, - l1FeeVaultWithdrawalNetwork: 0, - sequencerFeeVaultWithdrawalNetwork: 0, - - enableGovernance: true, - governanceTokenName: 'Optimism', - governanceTokenSymbol: 'OP', - governanceTokenOwner: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', - - l2GenesisBlockGasLimit: '0x17D7840', - l2GenesisBlockCoinbase: '0x4200000000000000000000000000000000000011', - l2GenesisBlockBaseFeePerGas: '0x3b9aca00', - - gasPriceOracleOverhead: 2100, - gasPriceOracleScalar: 1000000, - eip1559Denominator: 50, - eip1559Elasticity: 10, - - l2GenesisRegolithTimeOffset: '0x0', -} - -export default config diff --git a/packages/contracts-bedrock/deploy-config/mainnet.ts b/packages/contracts-bedrock/deploy-config/mainnet.ts deleted file mode 100644 index 2800cf4b98715..0000000000000 --- a/packages/contracts-bedrock/deploy-config/mainnet.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { DeployConfig } from '../src/deploy-config' -import mainnetJson from './mainnet.json' - -// NOTE: The 'mainnet' network is currently being used for bedrock migration rehearsals. -// The system configured below is not yet live on mainnet, and many of the addresses used are -// unsafe for a production system. - -// Re-export the mainnet json as a DeployConfig object. -// -// Notice, the following roles in the system are assigned to the: -// Optimism Foundation Mulitisig: -// - finalSystemOwner -// - controller -// - portalGuardian -// - proxyAdminOwner -// - l2OutputOracleChallenger -// -// The following roles are assigned to the same fee recipient: -// - baseFeeVaultRecipient -// - l1FeeVaultRecipient -// - sequencerFeeVaultRecipient -// -// The following role is assigned to the Mint Manager contract: -// - governanceTokenOwner - -export default mainnetJson satisfies DeployConfig diff --git a/packages/contracts-bedrock/hardhat.config.ts b/packages/contracts-bedrock/hardhat.config.ts deleted file mode 100644 index 693c7b57a39da..0000000000000 --- a/packages/contracts-bedrock/hardhat.config.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { ethers } from 'ethers' -import { HardhatUserConfig } from 'hardhat/config' -import dotenv from 'dotenv' - -// Hardhat plugins -import '@eth-optimism/hardhat-deploy-config' -import '@foundry-rs/hardhat-forge' -import '@nomiclabs/hardhat-ethers' -import 'hardhat-deploy' - -// Hardhat tasks -import './tasks' - -// Deploy configuration -import { deployConfigSpec } from './src/deploy-config' - -// Load environment variables -dotenv.config() - -const config: HardhatUserConfig = { - networks: { - hardhat: { - live: false, - }, - local: { - live: false, - url: 'http://localhost:8545', - saveDeployments: !!process.env.SAVE_DEPLOYMENTS || false, - accounts: [ - 'ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', - ], - }, - // NOTE: The 'mainnet' network is currently being used for mainnet rehearsals. - mainnet: { - url: process.env.L1_RPC || 'https://mainnet-l1-rehearsal.optimism.io', - accounts: [ - process.env.PRIVATE_KEY_DEPLOYER || - 'ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', - ], - }, - devnetL1: { - live: false, - url: 'http://localhost:8545', - accounts: [ - 'ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', - ], - }, - devnetL2: { - live: false, - url: process.env.RPC_URL || 'http://localhost:9545', - accounts: [ - 'ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', - ], - }, - hivenet: { - chainId: Number(process.env.CHAIN_ID), - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - }, - goerli: { - chainId: 5, - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - companionNetworks: { - l2: 'optimism-goerli', - }, - }, - 'optimism-goerli': { - chainId: 420, - url: process.env.L2_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - companionNetworks: { - l1: 'goerli', - }, - }, - 'alpha-1': { - chainId: 5, - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - }, - deployer: { - chainId: Number(process.env.CHAIN_ID), - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - live: process.env.VERIFY_CONTRACTS === 'true', - }, - 'mainnet-forked': { - chainId: 1, - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - live: false, - }, - 'goerli-forked': { - chainId: 5, - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - live: true, - }, - 'internal-devnet': { - chainId: 5, - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - live: true, - }, - 'getting-started': { - chainId: 5, - url: process.env.L1_RPC || '', - accounts: [process.env.PRIVATE_KEY_DEPLOYER || ethers.constants.HashZero], - live: true, - }, - }, - foundry: { - buildInfo: true, - }, - paths: { - deploy: './deploy', - deployments: './deployments', - deployConfig: './deploy-config', - }, - namedAccounts: { - deployer: { - default: 0, - }, - }, - deployConfigSpec, - external: { - contracts: [ - { - artifacts: '../contracts/artifacts', - }, - ], - deployments: { - goerli: [ - '../contracts/deployments/goerli', - '../contracts-periphery/deployments/goerli', - ], - mainnet: [ - '../contracts/deployments/mainnet', - '../contracts-periphery/deployments/mainnet', - ], - 'mainnet-forked': [ - '../contracts/deployments/mainnet', - '../contracts-periphery/deployments/mainnet', - ], - 'goerli-forked': [ - '../contracts/deployments/goerli', - '../contracts-periphery/deployments/goerli', - ], - }, - }, - solidity: { - compilers: [ - { - version: '0.8.15', - settings: { - optimizer: { enabled: true, runs: 10_000 }, - }, - }, - { - version: '0.5.17', // Required for WETH9 - settings: { - optimizer: { enabled: true, runs: 10_000 }, - }, - }, - ], - settings: { - metadata: { - bytecodeHash: - process.env.FOUNDRY_PROFILE === 'echidna' ? 'ipfs' : 'none', - }, - outputSelection: { - '*': { - '*': ['metadata', 'storageLayout'], - }, - }, - }, - }, -} - -export default config diff --git a/packages/contracts-bedrock/package.json b/packages/contracts-bedrock/package.json index 12520f4985882..779a84c7f7e78 100644 --- a/packages/contracts-bedrock/package.json +++ b/packages/contracts-bedrock/package.json @@ -16,22 +16,19 @@ "scripts": { "bindings": "cd ../../op-bindings && make", "build:with-metadata": "FOUNDRY_PROFILE=echidna yarn build:forge", - "build": "npx nx build:ts && npx nx typechain", + "build": "npx nx build:contracts && npx nx typechain", "prebuild:contracts": "yarn ts-node scripts/verify-foundry-install.ts", - "build:contracts": "yarn build:hardhat", + "build:contracts": "yarn build:forge", "build:forge": "forge build", - "build:hardhat": "hardhat compile", - "build:ts": "tsc -p tsconfig.build.json", "build:differential": "go build -o ./scripts/differential-testing/differential-testing ./scripts/differential-testing", "build:fuzz": "(cd test-case-generator && go build ./cmd/fuzz.go)", - "autogen:artifacts": "ts-node scripts/generate-artifacts.ts", "autogen:invariant-docs": "ts-node scripts/invariant-doc-gen.ts", "test": "yarn build:differential && yarn build:fuzz && forge test", "coverage": "yarn build:differential && yarn build:fuzz && forge coverage", "coverage:lcov": "yarn build:differential && yarn build:fuzz && forge coverage --report lcov", "gas-snapshot": "yarn build:differential && yarn build:fuzz && forge snapshot --no-match-test 'testDiff|testFuzz|invariant|generateArtifact'", "storage-snapshot": "./scripts/storage-snapshot.sh", - "validate-deploy-configs": "hardhat compile && hardhat generate-deploy-config && ./scripts/validate-deploy-configs.sh", + "validate-deploy-configs": "./scripts/validate-deploy-configs.sh", "validate-spacers": "forge build && npx ts-node scripts/validate-spacers.ts", "slither": "./scripts/slither.sh", "slither:triage": "TRIAGE_MODE=1 ./scripts/slither.sh", @@ -57,33 +54,20 @@ "@eth-optimism/core-utils": "^0.12.1", "@openzeppelin/contracts": "4.7.3", "@openzeppelin/contracts-upgradeable": "4.7.3", + "@rari-capital/solmate": "https://github.com/rari-capital/solmate.git#8f9b23f8838670afda0fd8983f2c41e8037ae6bc", + "clones-with-immutable-args": "https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args.git#105efee1b9127ed7f6fedf139e1fc796ce8791f2", "ethers": "^5.7.0" }, "devDependencies": { "@eth-optimism/hardhat-deploy-config": "^0.2.6", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "ethereumjs-wallet": "^1.0.2", - "@defi-wonderland/smock": "^2.0.2", - "@foundry-rs/hardhat-forge": "^0.1.17", "@foundry-rs/easy-foundryup": "^0.1.3", - "@nomiclabs/hardhat-ethers": "^2.0.0", - "@nomiclabs/hardhat-waffle": "^2.0.0", - "@rari-capital/solmate": "https://github.com/rari-capital/solmate.git#8f9b23f8838670afda0fd8983f2c41e8037ae6bc", - "clones-with-immutable-args": "https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args.git#105efee1b9127ed7f6fedf139e1fc796ce8791f2", "@typechain/ethers-v5": "^10.1.0", "@typescript-eslint/eslint-plugin": "^5.45.1", "@typescript-eslint/parser": "^5.45.1", - "bip39": "^3.0.4", - "chai": "^4.2.0", "command-exists": "1.2.9", - "dotenv": "^16.0.0", "ds-test": "https://github.com/dapphub/ds-test.git#9310e879db8ba3ea6d5c6489a579118fd264a3f5", - "ethereum-waffle": "^3.0.0", "forge-std": "https://github.com/foundry-rs/forge-std.git#e8a047e3f40f13fa37af6fe14e6e06283d9a060e", "glob": "^7.1.6", - "hardhat": "^2.9.6", - "hardhat-deploy": "^0.11.4", "solhint": "^3.3.7", "solhint-plugin-prettier": "^0.0.5", "ts-node": "^10.9.1", diff --git a/packages/contracts-bedrock/src/contract-defs.ts b/packages/contracts-bedrock/src/contract-defs.ts deleted file mode 100644 index 2bd0a6f17eb20..0000000000000 --- a/packages/contracts-bedrock/src/contract-defs.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { ethers } from 'ethers' - -/** - * Gets the hardhat artifact for the given contract name. - * Will throw an error if the contract artifact is not found. - * - * @param name Contract name. - * @returns The artifact for the given contract name. - */ -export const getContractDefinition = (name: string): any => { - // We import this using `require` because hardhat tries to build this file when compiling - // the contracts, but we need the contracts to be compiled before the contract-artifacts.ts - // file can be generated. - // eslint-disable-next-line @typescript-eslint/no-var-requires - const { getContractArtifact } = require('./contract-artifacts') - const artifact = getContractArtifact(name) - if (artifact === undefined) { - throw new Error(`Unable to find artifact for contract: ${name}`) - } - return artifact -} - -/** - * Gets an ethers Interface instance for the given contract name. - * - * @param name Contract name. - * @returns The interface for the given contract name. - */ -export const getContractInterface = (name: string): ethers.utils.Interface => { - const definition = getContractDefinition(name) - return new ethers.utils.Interface(definition.abi) -} - -/** - * Gets an ethers ContractFactory instance for the given contract name. - * - * @param name Contract name. - * @param signer The signer for the ContractFactory to use. - * @returns The contract factory for the given contract name. - */ -export const getContractFactory = ( - name: string, - signer?: ethers.Signer -): ethers.ContractFactory => { - const definition = getContractDefinition(name) - const contractInterface = getContractInterface(name) - return new ethers.ContractFactory( - contractInterface, - definition.bytecode, - signer - ) -} diff --git a/packages/contracts-bedrock/src/index.ts b/packages/contracts-bedrock/src/index.ts deleted file mode 100644 index 6cba13dfe5892..0000000000000 --- a/packages/contracts-bedrock/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './constants' -export * from './contract-defs' diff --git a/packages/contracts-bedrock/tasks/generate-deploy-config.ts b/packages/contracts-bedrock/tasks/generate-deploy-config.ts deleted file mode 100644 index 1b0e4203c0dbd..0000000000000 --- a/packages/contracts-bedrock/tasks/generate-deploy-config.ts +++ /dev/null @@ -1,25 +0,0 @@ -import fs from 'fs' -import path from 'path' - -import { task } from 'hardhat/config' -import { HardhatRuntimeEnvironment } from 'hardhat/types' - -task( - 'generate-deploy-config', - 'generates a json config file for the current network' -).setAction(async ({}, hre: HardhatRuntimeEnvironment) => { - try { - const base = path.join(hre.config.paths.deployConfig, hre.network.name) - if (fs.existsSync(`${base}.ts`)) { - // eslint-disable-next-line @typescript-eslint/no-var-requires - const config = require(`${base}.ts`).default - fs.writeFileSync(`${base}.json`, JSON.stringify(config, null, 2), 'utf8') - } else { - throw new Error('not found') - } - } catch (err) { - throw new Error( - `error while loading deploy config for network: ${hre.network.name}, ${err}` - ) - } -}) diff --git a/packages/contracts-bedrock/tasks/index.ts b/packages/contracts-bedrock/tasks/index.ts deleted file mode 100644 index 7a15ce911dde0..0000000000000 --- a/packages/contracts-bedrock/tasks/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import './solidity' -import './generate-deploy-config' diff --git a/packages/contracts-bedrock/tasks/solidity.ts b/packages/contracts-bedrock/tasks/solidity.ts deleted file mode 100644 index ca4d859afd1ba..0000000000000 --- a/packages/contracts-bedrock/tasks/solidity.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { subtask } from 'hardhat/config' -import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/task-names' - -subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction( - async (_, __, runSuper) => { - const paths = await runSuper() - - return paths.filter((p: string) => !p.endsWith('.t.sol')) - } -) diff --git a/packages/contracts-bedrock/tsconfig.json b/packages/contracts-bedrock/tsconfig.json index beeaa30000799..5091614ef5619 100644 --- a/packages/contracts-bedrock/tsconfig.json +++ b/packages/contracts-bedrock/tsconfig.json @@ -4,10 +4,8 @@ "outDir": "./dist" }, "include": [ - "src/**/*", "deploy-config/**/*", "deploy-config/**/*.json", - "tasks/**/*", "scripts/**/*" ] } diff --git a/packages/core-utils/package.json b/packages/core-utils/package.json index e08b0a3f66332..8a62f1f6b7895 100644 --- a/packages/core-utils/package.json +++ b/packages/core-utils/package.json @@ -32,6 +32,7 @@ "url": "https://github.com/ethereum-optimism/optimism.git" }, "dependencies": { + "ethers": "^5.7.0", "@ethersproject/abi": "^5.7.0", "@ethersproject/abstract-provider": "^5.7.0", "@ethersproject/address": "^5.7.0", diff --git a/packages/contracts-bedrock/src/constants.ts b/packages/core-utils/src/optimism/constants.ts similarity index 100% rename from packages/contracts-bedrock/src/constants.ts rename to packages/core-utils/src/optimism/constants.ts diff --git a/packages/core-utils/src/optimism/index.ts b/packages/core-utils/src/optimism/index.ts index baa6672f5d0cb..6dcc75c67e816 100644 --- a/packages/core-utils/src/optimism/index.ts +++ b/packages/core-utils/src/optimism/index.ts @@ -9,3 +9,4 @@ export * from './deposit-transaction' export * from './encoding' export * from './hashing' export * from './op-provider' +export * from './constants' diff --git a/yarn.lock b/yarn.lock index 7c4f786c17a15..f4a46d673d1e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -562,17 +562,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@defi-wonderland/smock@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@defi-wonderland/smock/-/smock-2.0.2.tgz#0be863a61420fb162190c9be8798befada179f30" - integrity sha512-nZtnUftPkMmFedqDzBqQrZWX+6Q3fK5MNMK3R6mLTg8Ig087A7ifs1KH9vGGpZ3p9RdgC+scUy9KfDASp2SKxg== - dependencies: - diff "^5.0.0" - lodash.isequal "^4.5.0" - lodash.isequalwith "^4.4.0" - rxjs "^7.2.0" - semver "^7.3.5" - "@defi-wonderland/smock@^2.0.7": version "2.0.7" resolved "https://registry.yarnpkg.com/@defi-wonderland/smock/-/smock-2.0.7.tgz#59d5fc93e175ad120c5dcdd8294e07525606c855" @@ -2143,24 +2132,6 @@ command-exists "^1.2.9" ts-interface-checker "^0.1.9" -"@foundry-rs/hardhat-forge@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.17.tgz#8f59fdb0189e6b89c6dd5644e543ae4e33e0d0f5" - integrity sha512-2wxzxA12CQmT11PH/KigyVTNm/4vzsVtzVZow6gwCbC41fTyf73a5qbggHZFRR74JXfmvVSkX1BJitTmdzQvxw== - dependencies: - "@foundry-rs/easy-foundryup" "^0.1.3" - "@nomiclabs/hardhat-ethers" "^2.0.0" - "@nomiclabs/hardhat-waffle" "^2.0.0" - "@types/sinon-chai" "^3.2.3" - "@types/web3" "1.0.19" - camelcase-keys "7.0.2" - debug "^4.1.1" - ethers "^5.0.0" - fs-extra "^10.1.0" - glob "^7.1.3" - "true-case-path" "^2.2.1" - ts-interface-checker "^0.1.9" - "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" @@ -2419,16 +2390,16 @@ safe-buffer "^5.1.1" util.promisify "^1.0.0" -"@nomiclabs/hardhat-ethers@^2.0.0", "@nomiclabs/hardhat-ethers@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.6.tgz#1c695263d5b46a375dcda48c248c4fba9dfe2fc2" - integrity sha512-q2Cjp20IB48rEn2NPjR1qxsIQBvFVYW9rFRCFq+bC4RUrn1Ljz3g4wM8uSlgIBZYBi2JMXxmOzFqHraczxq4Ng== - "@nomiclabs/hardhat-ethers@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.2.tgz#c472abcba0c5185aaa4ad4070146e95213c68511" integrity sha512-6quxWe8wwS4X5v3Au8q1jOvXYEPkS1Fh+cME5u6AwNdnI4uERvPlVjlgRWzpnb+Rrt1l/cEqiNRH9GlsBMSDQg== +"@nomiclabs/hardhat-ethers@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.6.tgz#1c695263d5b46a375dcda48c248c4fba9dfe2fc2" + integrity sha512-q2Cjp20IB48rEn2NPjR1qxsIQBvFVYW9rFRCFq+bC4RUrn1Ljz3g4wM8uSlgIBZYBi2JMXxmOzFqHraczxq4Ng== + "@nomiclabs/hardhat-etherscan@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.0.3.tgz#ca54a03351f3de41f9f5240e37bea9d64fa24e64" @@ -2442,14 +2413,6 @@ semver "^6.3.0" undici "^4.14.1" -"@nomiclabs/hardhat-waffle@^2.0.0", "@nomiclabs/hardhat-waffle@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.3.tgz#9c538a09c5ed89f68f5fd2dc3f78f16ed1d6e0b1" - integrity sha512-049PHSnI1CZq6+XTbrMbMv5NaL7cednTfPenx02k3cEh8wBMLa6ys++dBETJa6JjfwgA9nBhhHQ173LJv6k2Pg== - dependencies: - "@types/sinon-chai" "^3.2.3" - "@types/web3" "1.0.19" - "@nomiclabs/hardhat-waffle@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.1.tgz#5d43654fba780720c5033dea240fe14f70ef4bd2" @@ -2458,6 +2421,14 @@ "@types/sinon-chai" "^3.2.3" "@types/web3" "1.0.19" +"@nomiclabs/hardhat-waffle@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.3.tgz#9c538a09c5ed89f68f5fd2dc3f78f16ed1d6e0b1" + integrity sha512-049PHSnI1CZq6+XTbrMbMv5NaL7cednTfPenx02k3cEh8wBMLa6ys++dBETJa6JjfwgA9nBhhHQ173LJv6k2Pg== + dependencies: + "@types/sinon-chai" "^3.2.3" + "@types/web3" "1.0.19" + "@nrwl/cli@15.6.0": version "15.6.0" resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.6.0.tgz#c6e2856b17170973084bc103d70fdb6b18b950b4" @@ -3049,11 +3020,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0" integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A== -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== - "@types/node@^10.0.3": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -3544,7 +3510,7 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= -aes-js@^3.1.1, aes-js@^3.1.2: +aes-js@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== @@ -4653,16 +4619,6 @@ bip39@2.5.0: safe-buffer "^5.0.1" unorm "^1.3.3" -bip39@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" - integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -5045,16 +5001,6 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase-keys@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -5079,7 +5025,7 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -7397,17 +7343,6 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.0.1" "@scure/bip39" "1.0.0" -ethereum-waffle@^3.0.0, ethereum-waffle@^3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz#1378b72040697857b7f5e8f473ca8f97a37b5840" - integrity sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q== - dependencies: - "@ethereum-waffle/chai" "^3.4.4" - "@ethereum-waffle/compiler" "^3.4.4" - "@ethereum-waffle/mock-contract" "^3.4.4" - "@ethereum-waffle/provider" "^3.4.4" - ethers "^5.0.1" - ethereum-waffle@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-3.4.0.tgz#990b3c6c26db9c2dd943bf26750a496f60c04720" @@ -7419,6 +7354,17 @@ ethereum-waffle@^3.4.0: "@ethereum-waffle/provider" "^3.4.0" ethers "^5.0.1" +ethereum-waffle@^3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz#1378b72040697857b7f5e8f473ca8f97a37b5840" + integrity sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q== + dependencies: + "@ethereum-waffle/chai" "^3.4.4" + "@ethereum-waffle/compiler" "^3.4.4" + "@ethereum-waffle/mock-contract" "^3.4.4" + "@ethereum-waffle/provider" "^3.4.4" + ethers "^5.0.1" + ethereumjs-abi@0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" @@ -7584,17 +7530,6 @@ ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-util@^7.1.2: - version "7.1.5" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" - integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== - dependencies: - "@types/bn.js" "^5.1.0" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - rlp "^2.2.4" - ethereumjs-vm@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz#e885e861424e373dbc556278f7259ff3fca5edab" @@ -7648,20 +7583,6 @@ ethereumjs-wallet@0.6.5: utf8 "^3.0.0" uuid "^3.3.2" -ethereumjs-wallet@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz#2c000504b4c71e8f3782dabe1113d192522e99b6" - integrity sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA== - dependencies: - aes-js "^3.1.2" - bs58check "^2.1.2" - ethereum-cryptography "^0.1.3" - ethereumjs-util "^7.1.2" - randombytes "^2.1.0" - scrypt-js "^3.0.1" - utf8 "^3.0.0" - uuid "^8.3.2" - ethers@^4.0.32, ethers@^4.0.40: version "4.0.49" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" @@ -10956,11 +10877,6 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== -map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -13303,11 +13219,6 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -15717,11 +15628,6 @@ type-fest@^0.8.0, type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"