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/deploy-config.ts b/packages/contracts-bedrock/src/deploy-config.ts deleted file mode 100644 index 2f9a8600d4a9b..0000000000000 --- a/packages/contracts-bedrock/src/deploy-config.ts +++ /dev/null @@ -1,435 +0,0 @@ -import { ethers } from 'ethers' - -/** - * Core required deployment configuration. - */ -interface RequiredDeployConfig { - /** - * Number of confirmations to wait when deploying contracts. - */ - numDeployConfirmations?: number - - /** - * Address that will own the entire system on L1 when the deploy is complete. - */ - finalSystemOwner?: string - - /** - * Address that is deployed as the GUARDIAN in the OptimismPortal. Has the - * ability to pause withdrawals. - */ - portalGuardian: string - - /** - * Address that will own the entire system on L1 during the deployment process. This address will - * not own the system after the deployment is complete, ownership will be transferred to the - * final system owner. - */ - controller?: string - - /** - * The L2 genesis script uses this to fill the storage of the L1Block info predeploy. The rollup - * config script uses this to fill the L1 genesis info for the rollup. The Output oracle deploy - * script may use it if the L2 starting timestamp is undefined, assuming the L2 genesis is set up - * with this. - */ - l1StartingBlockTag: string - - /** - * Chain ID for the L1 network. - */ - l1ChainID: number - - /** - * Chain ID for the L2 network. - */ - l2ChainID: number - - /** - * Number of seconds in between each L2 block. - */ - l2BlockTime: number - - /** - * Sequencer batches may not be more than maxSequencerDrift seconds after the L1 timestamp of the - * end of the sequencing window end. - */ - maxSequencerDrift: number - - /** - * Number of L1 blocks per sequencing window. - */ - sequencerWindowSize: number - - /** - * Number of L1 blocks that a frame stays valid when included in L1. - */ - channelTimeout: number - - /** - * Address of the key the sequencer uses to sign blocks on the P2P layer. - */ - p2pSequencerAddress: string - - /** - * L1 address that batches are sent to. - */ - batchInboxAddress: string - - /** - * Acceptable batch-sender address, to filter transactions going into the batchInboxAddress on L1 for data. - * Warning: this address is hardcoded now, but is intended to become governed via L1. - */ - batchSenderAddress: string - - /** - * Output Oracle submission interval in L2 blocks. - */ - l2OutputOracleSubmissionInterval: number - - /** - * Starting block number for the output oracle. - * Must be greater than or equal to the first Bedrock block. The first L2 output will correspond - * to this value plus the submission interval. - */ - l2OutputOracleStartingBlockNumber?: number - - /** - * Starting timestamp for the output oracle. - * MUST be the same as the timestamp of the L2OO start block. - */ - l2OutputOracleStartingTimestamp?: number - - /** - * Address of the L2 output oracle proposer. - */ - l2OutputOracleProposer: string - - /** - * Address of the L2 output oracle challenger. - */ - l2OutputOracleChallenger: string - - /** - * Whether to enable governance token predeploy. - */ - enableGovernance: boolean - - /** - * ERC20 symbol used for the L2 GovernanceToken. - */ - governanceTokenSymbol: string - - /** - * ERC20 name used for the L2 GovernanceToken. - */ - governanceTokenName: string - - /** - * Owner of the L2 GovernanceToken. Has mint/burn capability. - */ - governanceTokenOwner: string - - /** - * Output finalization period in seconds. - */ - finalizationPeriodSeconds: number - - /** - * Owner of the ProxyAdmin contract. - */ - proxyAdminOwner: string - - /** - * L1 or higher (e.g. L2) address which receives the base fee for the L2 network. - */ - baseFeeVaultRecipient: string - - /** - * L1 or higher (e.g. L2) address which receives data fees for the L2 network. - */ - l1FeeVaultRecipient: string - - /** - * L1 or higher (e.g. L2) address which receives tip fees for the L2 network. - */ - sequencerFeeVaultRecipient: string - - /** - * Minimum withdrawal amount for the BaseFeeVault contract. - */ - baseFeeVaultMinimumWithdrawalAmount: string - - /** - * Minimum withdrawal amount for the L1FeeVault contract. - */ - l1FeeVaultMinimumWithdrawalAmount: string - - /** - * Minimum withdrawal amount for the SequencerFeeVault contract. - */ - sequencerFeeVaultMinimumWithdrawalAmount: string - - /** - * The network that BaseFeeVault contract withdrawals are sent to. - */ - baseFeeVaultWithdrawalNetwork: number - - /** - * The network that L1FeeVault contract withdrawals are sent to. - */ - l1FeeVaultWithdrawalNetwork: number - - /** - * The network that SequencerFeeVault contract withdrawals are sent to. - */ - sequencerFeeVaultWithdrawalNetwork: number -} - -/** - * Optional deployment configuration when spinning up an L1 network as part of the deployment. - */ -interface OptionalL1DeployConfig { - cliqueSignerAddress: string - l1BlockTime: number - l1GenesisBlockNonce: string - l1GenesisBlockGasLimit: string - l1GenesisBlockDifficulty: string - l1GenesisBlockMixHash: string - l1GenesisBlockCoinbase: string - l1GenesisBlockNumber: string - l1GenesisBlockGasUsed: string - l1GenesisBlockParentHash: string - l1GenesisBlockBaseFeePerGas: string -} - -/** - * Optional deployment configuration when spinning up an L2 network as part of the deployment. - */ -interface OptionalL2DeployConfig { - l2GenesisBlockNonce: string - l2GenesisBlockGasLimit: string - l2GenesisBlockDifficulty: string - l2GenesisBlockMixHash: string - l2GenesisBlockNumber: string - l2GenesisBlockGasUsed: string - l2GenesisBlockParentHash: string - l2GenesisBlockBaseFeePerGas: string - l2GenesisBlockCoinbase: string - l2GenesisRegolithTimeOffset: string - eip1559Denominator: number - eip1559Elasticity: number - gasPriceOracleOverhead: number - gasPriceOracleScalar: number -} - -/** - * Full deployment configuration. - */ -export type DeployConfig = RequiredDeployConfig & - Partial & - Partial - -/** - * Deployment configuration specification for the hardhat plugin. - */ -export const deployConfigSpec: { - [K in keyof DeployConfig]: { - type: 'string' | 'number' | 'boolean' | 'address' - default?: any - } -} = { - numDeployConfirmations: { - type: 'number', - default: 1, - }, - finalSystemOwner: { - type: 'address', - }, - portalGuardian: { - type: 'address', - }, - controller: { - type: 'address', - }, - l1StartingBlockTag: { - type: 'string', - }, - l1ChainID: { - type: 'number', - }, - l2ChainID: { - type: 'number', - }, - l2BlockTime: { - type: 'number', - }, - maxSequencerDrift: { - type: 'number', - }, - sequencerWindowSize: { - type: 'number', - }, - channelTimeout: { - type: 'number', - }, - p2pSequencerAddress: { - type: 'address', - }, - batchInboxAddress: { - type: 'address', - }, - batchSenderAddress: { - type: 'address', - }, - l2OutputOracleSubmissionInterval: { - type: 'number', - }, - l2OutputOracleStartingBlockNumber: { - type: 'number', - default: 0, - }, - l2OutputOracleStartingTimestamp: { - type: 'number', - }, - l2OutputOracleProposer: { - type: 'address', - }, - l2OutputOracleChallenger: { - type: 'address', - }, - finalizationPeriodSeconds: { - type: 'number', - default: 2, - }, - proxyAdminOwner: { - type: 'address', - }, - baseFeeVaultRecipient: { - type: 'address', - }, - l1FeeVaultRecipient: { - type: 'address', - }, - sequencerFeeVaultRecipient: { - type: 'address', - }, - baseFeeVaultMinimumWithdrawalAmount: { - type: 'string', - default: '0x8ac7230489e80000', // 10 ether - }, - l1FeeVaultMinimumWithdrawalAmount: { - type: 'string', - default: '0x8ac7230489e80000', // 10 ether - }, - sequencerFeeVaultMinimumWithdrawalAmount: { - type: 'string', - default: '0x8ac7230489e80000', // 10 ether - }, - baseFeeVaultWithdrawalNetwork: { - type: 'number', - }, - l1FeeVaultWithdrawalNetwork: { - type: 'number', - }, - sequencerFeeVaultWithdrawalNetwork: { - type: 'number', - }, - cliqueSignerAddress: { - type: 'address', - default: ethers.constants.AddressZero, - }, - l1BlockTime: { - type: 'number', - default: 15, - }, - l1GenesisBlockNonce: { - type: 'string', // uint64 - default: '0x0', - }, - l1GenesisBlockGasLimit: { - type: 'string', - default: ethers.BigNumber.from(15_000_000).toHexString(), - }, - l1GenesisBlockDifficulty: { - type: 'string', // uint256 - default: '0x1', - }, - l1GenesisBlockMixHash: { - type: 'string', // bytes32 - default: ethers.constants.HashZero, - }, - l1GenesisBlockCoinbase: { - type: 'address', - default: ethers.constants.AddressZero, - }, - l1GenesisBlockNumber: { - type: 'string', // uint64 - default: '0x0', - }, - l1GenesisBlockGasUsed: { - type: 'string', // uint64 - default: '0x0', - }, - l1GenesisBlockParentHash: { - type: 'string', // bytes32 - default: ethers.constants.HashZero, - }, - l1GenesisBlockBaseFeePerGas: { - type: 'string', // uint256 - default: ethers.BigNumber.from(1000_000_000).toHexString(), // 1 gwei - }, - l2GenesisBlockNonce: { - type: 'string', // uint64 - default: '0x0', - }, - l2GenesisBlockGasLimit: { - type: 'string', - default: ethers.BigNumber.from(15_000_000).toHexString(), - }, - l2GenesisBlockDifficulty: { - type: 'string', // uint256 - default: '0x1', - }, - l2GenesisBlockMixHash: { - type: 'string', // bytes32 - default: ethers.constants.HashZero, - }, - l2GenesisBlockNumber: { - type: 'string', // uint64 - default: '0x0', - }, - l2GenesisBlockGasUsed: { - type: 'string', // uint64 - default: '0x0', - }, - l2GenesisBlockParentHash: { - type: 'string', // bytes32 - default: ethers.constants.HashZero, - }, - l2GenesisBlockBaseFeePerGas: { - type: 'string', // uint256 - default: ethers.BigNumber.from(1000_000_000).toHexString(), // 1 gwei - }, - gasPriceOracleOverhead: { - type: 'number', - default: 2100, - }, - gasPriceOracleScalar: { - type: 'number', - default: 1_000_000, - }, - enableGovernance: { - type: 'boolean', - default: false, - }, - governanceTokenSymbol: { - type: 'string', - }, - governanceTokenName: { - type: 'string', - }, - governanceTokenOwner: { - type: 'string', - }, -} 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"