Commit d1b1089b authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

Merge pull request #2872 from ethereum-optimism/fix/oom

fix: oom in hardhat tasks
parents 8004eadb 6ec60435
---
'@eth-optimism/hardhat-deploy-config': patch
---
Use lazyObject
...@@ -5,7 +5,7 @@ const { env } = process ...@@ -5,7 +5,7 @@ const { env } = process
const startingTimestamp = const startingTimestamp =
typeof env.L2OO_STARTING_BLOCK_TIMESTAMP === 'string' typeof env.L2OO_STARTING_BLOCK_TIMESTAMP === 'string'
? ethers.BigNumber.from(env.L2OO_STARTING_BLOCK_TIMESTAMP).toNumber() ? ethers.BigNumber.from(env.L2OO_STARTING_BLOCK_TIMESTAMP).toNumber()
: Date.now() / 1000 : Math.floor(Date.now() / 1000)
const config = { const config = {
submissionInterval: 6, submissionInterval: 6,
...@@ -15,11 +15,10 @@ const config = { ...@@ -15,11 +15,10 @@ const config = {
l2BlockTime: 2, l2BlockTime: 2,
startingTimestamp, startingTimestamp,
sequencerAddress: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', sequencerAddress: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
maxSequencerDrift: 10, maxSequencerDrift: 10,
sequencerWindowSize: 2, sequencerWindowSize: 2,
ownerAddress: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8', ownerAddress: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
fundDevAccounts: true,
} }
export default config export default config
...@@ -5,7 +5,6 @@ import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/ta ...@@ -5,7 +5,6 @@ import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/ta
// Hardhat plugins // Hardhat plugins
import '@nomiclabs/hardhat-ethers' import '@nomiclabs/hardhat-ethers'
import '@typechain/hardhat' import '@typechain/hardhat'
import 'solidity-coverage'
import 'hardhat-deploy' import 'hardhat-deploy'
import '@foundry-rs/hardhat-forge' import '@foundry-rs/hardhat-forge'
import '@eth-optimism/hardhat-deploy-config' import '@eth-optimism/hardhat-deploy-config'
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
"gas-snapshot": "forge snapshot", "gas-snapshot": "forge snapshot",
"storage-snapshot": "./scripts/storage-snapshot.sh", "storage-snapshot": "./scripts/storage-snapshot.sh",
"slither": "slither .", "slither": "slither .",
"clean": "rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./coverage ./tsconfig.tsbuildinfo", "clean": "rm -rf ./dist ./artifacts ./forge-artifacts ./cache ./tsconfig.tsbuildinfo",
"lint:ts:check": "eslint . --max-warnings=0", "lint:ts:check": "eslint . --max-warnings=0",
"lint:contracts:check": "yarn solhint -f table 'contracts/**/*.sol'", "lint:contracts:check": "yarn solhint -f table 'contracts/**/*.sol'",
"lint:check": "yarn lint:contracts:check && yarn lint:ts:check", "lint:check": "yarn lint:contracts:check && yarn lint:ts:check",
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
"devDependencies": { "devDependencies": {
"@eth-optimism/hardhat-deploy-config": "^0.2.0", "@eth-optimism/hardhat-deploy-config": "^0.2.0",
"@defi-wonderland/smock": "^2.0.2", "@defi-wonderland/smock": "^2.0.2",
"@foundry-rs/hardhat-forge": "^0.1.9", "@foundry-rs/hardhat-forge": "^0.1.10",
"@nomiclabs/hardhat-ethers": "^2.0.0", "@nomiclabs/hardhat-ethers": "^2.0.0",
"@nomiclabs/hardhat-waffle": "^2.0.0", "@nomiclabs/hardhat-waffle": "^2.0.0",
"@typechain/ethers-v5": "^7.0.1", "@typechain/ethers-v5": "^7.0.1",
...@@ -62,7 +62,6 @@ ...@@ -62,7 +62,6 @@
"hardhat-deploy": "^0.11.4", "hardhat-deploy": "^0.11.4",
"solhint": "^3.3.6", "solhint": "^3.3.6",
"solhint-plugin-prettier": "^0.0.5", "solhint-plugin-prettier": "^0.0.5",
"solidity-coverage": "^0.7.16",
"ts-node": "^10.1.0", "ts-node": "^10.1.0",
"typechain": "^5.1.2", "typechain": "^5.1.2",
"typescript": "^4.6.2" "typescript": "^4.6.2"
......
...@@ -11,8 +11,8 @@ task('genesis-l1', 'create a genesis config') ...@@ -11,8 +11,8 @@ task('genesis-l1', 'create a genesis config')
'genesis.json' 'genesis.json'
) )
.setAction(async (args, hre) => { .setAction(async (args, hre) => {
// TODO: type needs to be updated to work with modern geth const { deployConfig } = hre
const alloc: State | any = {} const alloc: State = {}
// Give each predeploy a single wei // Give each predeploy a single wei
for (let i = 0; i <= 0xff; i++) { for (let i = 0; i <= 0xff; i++) {
...@@ -27,40 +27,36 @@ task('genesis-l1', 'create a genesis config') ...@@ -27,40 +27,36 @@ task('genesis-l1', 'create a genesis config')
} }
} }
// Prefund dev accounts if (deployConfig.fundDevAccounts) {
const accounts = [ const accounts = [
'0x14dC79964da2C08b23698B3D3cc7Ca32193d9955', '0x14dC79964da2C08b23698B3D3cc7Ca32193d9955',
'0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65', '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65',
'0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec', '0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec',
'0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f', '0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f',
'0x2546BcD3c84621e976D8185a91A922aE77ECEc30', '0x2546BcD3c84621e976D8185a91A922aE77ECEc30',
'0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC', '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
'0x70997970C51812dc3A010C7d01b50e0d17dc79C8', '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
'0x71bE63f3384f5fb98995898A86B02Fb2426c5788', '0x71bE63f3384f5fb98995898A86B02Fb2426c5788',
'0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199', '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199',
'0x90F79bf6EB2c4f870365E785982E1f101E93b906', '0x90F79bf6EB2c4f870365E785982E1f101E93b906',
'0x976EA74026E726554dB657fA54763abd0C3a0aa9', '0x976EA74026E726554dB657fA54763abd0C3a0aa9',
'0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc', '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',
'0xBcd4042DE499D14e55001CcbB24a551F3b954096', '0xBcd4042DE499D14e55001CcbB24a551F3b954096',
'0xFABB0ac9d68B0B445fB7357272Ff202C5651694a', '0xFABB0ac9d68B0B445fB7357272Ff202C5651694a',
'0xa0Ee7A142d267C1f36714E4a8F75612F20a79720', '0xa0Ee7A142d267C1f36714E4a8F75612F20a79720',
'0xbDA5747bFD65F08deb54cb465eB87D40e51B197E', '0xbDA5747bFD65F08deb54cb465eB87D40e51B197E',
'0xcd3B766CCDd6AE721141F452C550Ca635964ce71', '0xcd3B766CCDd6AE721141F452C550Ca635964ce71',
'0xdD2FD4581271e230360230F9337D5c0430Bf44C0', '0xdD2FD4581271e230360230F9337D5c0430Bf44C0',
'0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097', '0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097',
'0xde3829a23df1479438622a08a116e8eb3f620bb5', '0xde3829a23df1479438622a08a116e8eb3f620bb5',
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
] ]
const signers = await hre.ethers.getSigners() for (const account of accounts) {
for (const signer of signers) { alloc[ethers.utils.getAddress(account)] = {
accounts.push(signer.address) balance:
} '0x200000000000000000000000000000000000000000000000000000000000000',
}
for (const account of accounts) {
alloc[ethers.utils.getAddress(account)] = {
balance:
'0x200000000000000000000000000000000000000000000000000000000000000',
} }
} }
......
...@@ -190,17 +190,29 @@ task('genesis-l2', 'create a genesis config') ...@@ -190,17 +190,29 @@ task('genesis-l2', 'create a genesis config')
if (deployConfig.fundDevAccounts) { if (deployConfig.fundDevAccounts) {
const accounts = [ const accounts = [
'0xde3829a23df1479438622a08a116e8eb3f620bb5', '0x14dC79964da2C08b23698B3D3cc7Ca32193d9955',
'0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65',
'0x70997970C51812dc3A010C7d01b50e0d17dc79C8', '0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec',
'0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f',
'0x2546BcD3c84621e976D8185a91A922aE77ECEc30',
'0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC', '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC',
'0x70997970C51812dc3A010C7d01b50e0d17dc79C8',
'0x71bE63f3384f5fb98995898A86B02Fb2426c5788',
'0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199',
'0x90F79bf6EB2c4f870365E785982E1f101E93b906',
'0x976EA74026E726554dB657fA54763abd0C3a0aa9',
'0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',
'0xBcd4042DE499D14e55001CcbB24a551F3b954096',
'0xFABB0ac9d68B0B445fB7357272Ff202C5651694a',
'0xa0Ee7A142d267C1f36714E4a8F75612F20a79720',
'0xbDA5747bFD65F08deb54cb465eB87D40e51B197E',
'0xcd3B766CCDd6AE721141F452C550Ca635964ce71',
'0xdD2FD4581271e230360230F9337D5c0430Bf44C0',
'0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097',
'0xde3829a23df1479438622a08a116e8eb3f620bb5',
'0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
] ]
const signers = await hre.ethers.getSigners()
for (const signer of signers) {
accounts.push(signer.address)
}
for (const account of accounts) { for (const account of accounts) {
alloc[account] = { alloc[account] = {
balance: balance:
......
...@@ -6,6 +6,7 @@ import { ...@@ -6,6 +6,7 @@ import {
HardhatRuntimeEnvironment, HardhatRuntimeEnvironment,
HardhatUserConfig, HardhatUserConfig,
} from 'hardhat/types' } from 'hardhat/types'
import { lazyObject } from 'hardhat/plugins'
import { ethers } from 'ethers' import { ethers } from 'ethers'
// From: https://github.com/wighawag/hardhat-deploy/blob/master/src/index.ts#L63-L76 // From: https://github.com/wighawag/hardhat-deploy/blob/master/src/index.ts#L63-L76
...@@ -104,5 +105,5 @@ extendConfig( ...@@ -104,5 +105,5 @@ extendConfig(
) )
extendEnvironment((hre) => { extendEnvironment((hre) => {
hre.deployConfig = loadDeployConfig(hre) hre.deployConfig = lazyObject(() => loadDeployConfig(hre))
}) })
...@@ -1614,10 +1614,10 @@ ...@@ -1614,10 +1614,10 @@
command-exists "^1.2.9" command-exists "^1.2.9"
ts-interface-checker "^0.1.9" ts-interface-checker "^0.1.9"
"@foundry-rs/hardhat-forge@^0.1.9": "@foundry-rs/hardhat-forge@^0.1.10":
version "0.1.9" version "0.1.10"
resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.9.tgz#43144d349b0d9ea00bcad28827c7f03187458c5a" resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.10.tgz#031a85c1c8e51bbf72390d950721611d83f089df"
integrity sha512-y1k9bMV9LNgNnxvC7O/P2HPk8eNN2Jpan3fDl9/gii7NCT8J5028hABsCIEwFq4/4mMybJWu2KsHYDjZi8NGZQ== integrity sha512-L5E+zXF/AazR2yO0ZoHtj74uyetO/mXxjSx5hOtjEpUX6czRbGP+tPbbTGjKnoMUzUP5uF1N0TjfCe7T9UpBbA==
dependencies: dependencies:
"@foundry-rs/easy-foundryup" "^0.1.3" "@foundry-rs/easy-foundryup" "^0.1.3"
"@nomiclabs/hardhat-ethers" "^2.0.0" "@nomiclabs/hardhat-ethers" "^2.0.0"
...@@ -15714,17 +15714,18 @@ solidity-comments-extractor@^0.0.7: ...@@ -15714,17 +15714,18 @@ solidity-comments-extractor@^0.0.7:
resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19"
integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==
solidity-coverage@^0.7.16, solidity-coverage@^0.7.19: solidity-coverage@^0.7.17:
version "0.7.21" version "0.7.17"
resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.21.tgz#20c5615a3a543086b243c2ca36e2951a75316b40" resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.17.tgz#5139de8f6666d4755d88f453d8e35632a7bb3444"
integrity sha512-O8nuzJ9yXiKUx3NdzVvHrUW0DxoNVcGzq/I7NzewNO9EZE3wYAQ4l8BwcnV64r4aC/HB6Vnw/q2sF0BQHv/3fg== integrity sha512-Erw2hd2xdACAvDX8jUdYkmgJlIIazGznwDJA5dhRaw4def2SisXN9jUjneeyOZnl/E7j6D3XJYug4Zg9iwodsg==
dependencies: dependencies:
"@solidity-parser/parser" "^0.14.0" "@solidity-parser/parser" "^0.13.2"
"@truffle/provider" "^0.2.24" "@truffle/provider" "^0.2.24"
chalk "^2.4.2" chalk "^2.4.2"
death "^1.1.0" death "^1.1.0"
detect-port "^1.3.0" detect-port "^1.3.0"
fs-extra "^8.1.0" fs-extra "^8.1.0"
ganache-cli "^6.12.2"
ghost-testrpc "^0.0.2" ghost-testrpc "^0.0.2"
global-modules "^2.0.0" global-modules "^2.0.0"
globby "^10.0.1" globby "^10.0.1"
...@@ -15738,18 +15739,17 @@ solidity-coverage@^0.7.16, solidity-coverage@^0.7.19: ...@@ -15738,18 +15739,17 @@ solidity-coverage@^0.7.16, solidity-coverage@^0.7.19:
shelljs "^0.8.3" shelljs "^0.8.3"
web3-utils "^1.3.0" web3-utils "^1.3.0"
solidity-coverage@^0.7.17: solidity-coverage@^0.7.19:
version "0.7.17" version "0.7.21"
resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.17.tgz#5139de8f6666d4755d88f453d8e35632a7bb3444" resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.21.tgz#20c5615a3a543086b243c2ca36e2951a75316b40"
integrity sha512-Erw2hd2xdACAvDX8jUdYkmgJlIIazGznwDJA5dhRaw4def2SisXN9jUjneeyOZnl/E7j6D3XJYug4Zg9iwodsg== integrity sha512-O8nuzJ9yXiKUx3NdzVvHrUW0DxoNVcGzq/I7NzewNO9EZE3wYAQ4l8BwcnV64r4aC/HB6Vnw/q2sF0BQHv/3fg==
dependencies: dependencies:
"@solidity-parser/parser" "^0.13.2" "@solidity-parser/parser" "^0.14.0"
"@truffle/provider" "^0.2.24" "@truffle/provider" "^0.2.24"
chalk "^2.4.2" chalk "^2.4.2"
death "^1.1.0" death "^1.1.0"
detect-port "^1.3.0" detect-port "^1.3.0"
fs-extra "^8.1.0" fs-extra "^8.1.0"
ganache-cli "^6.12.2"
ghost-testrpc "^0.0.2" ghost-testrpc "^0.0.2"
global-modules "^2.0.0" global-modules "^2.0.0"
globby "^10.0.1" globby "^10.0.1"
......
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