test deploy scripts
Signed-off-by: AlienTornadosaurusHex <>
This commit is contained in:
parent
5f8942e085
commit
9726f20e7b
@ -8,13 +8,30 @@ const { createInterface } = require('readline')
|
||||
|
||||
const prompter = createInterface({ input: process.stdin, output: process.stdout })
|
||||
|
||||
function idToNetwork(id) {
|
||||
switch (id) {
|
||||
case 1:
|
||||
return 'Mainnet'
|
||||
case 3:
|
||||
return 'Ropsten'
|
||||
case 4:
|
||||
return 'Rinkeby'
|
||||
case 5:
|
||||
return 'Goerli'
|
||||
case 11155111:
|
||||
return 'Sepolia'
|
||||
default:
|
||||
throw Error('\nChain Id could not be recognized. What network are you using?\n')
|
||||
}
|
||||
}
|
||||
|
||||
function _prompt(prompt, resolve) {
|
||||
prompter.question(prompt, (answer) => {
|
||||
if (answer == 'y') {
|
||||
resolve(true)
|
||||
} else if (answer == 'n') {
|
||||
} else {
|
||||
resolve(false)
|
||||
} else _prompt('', resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -37,11 +54,13 @@ function timeout(seconds) {
|
||||
const promptMessageBase = (middle) => `\n${middle}\n\nAre you sure you would like to continue? (y/n): `
|
||||
|
||||
async function deploy() {
|
||||
if (process.env.STAKING_PROXY_ADDRESS === "") throw Error('Missing STAKING_PROXY_ADDRESS.')
|
||||
|
||||
if (process.env.REGISTRY_IMPL_ADDRESS === "") throw Error('Missing REGISTRY_IMPL_ADDRESS.')
|
||||
|
||||
const signer = await ethers.getSigner()
|
||||
|
||||
if (process.env.STAKING_PROXY_ADDRESS === undefined) throw Error('Missing STAKING_PROXY_ADDRESS.')
|
||||
|
||||
if (process.env.REGISTRY_IMPL_ADDRESS === undefined) throw Error('Missing REGISTRY_IMPL_ADDRESS.')
|
||||
const _network = await ethers.provider.getNetwork()
|
||||
|
||||
const stakingProxyAddress = `${process.env.STAKING_PROXY_ADDRESS}`
|
||||
|
||||
@ -53,18 +72,21 @@ async function deploy() {
|
||||
|
||||
if (await prompt(promptMessageBase('Continuing to PatchProposal deployment.'))) {
|
||||
patchProposal = await patchProposalDeployer.deploy(stakingProxyAddress, registryImplementationAddress)
|
||||
console.log(deployedMessage('PatchProposal', 1, patchProposal.address))
|
||||
console.log(deployedMessage('PatchProposal', _network.chainId, patchProposal.address))
|
||||
} else {
|
||||
return '\nDecided to stop at PatchProposal deployment.\n'
|
||||
}
|
||||
|
||||
if (await prompt(promptMessageBase('Continuing to contract verification.'))) {
|
||||
console.log('\nWaiting 20 seconds.\n')
|
||||
await timeout(20)
|
||||
|
||||
await hre.run('verify:verify', {
|
||||
address: patchProposal.address,
|
||||
constructorArguments: [stakingProxyAddress, registryImplementationAddress],
|
||||
})
|
||||
|
||||
console.log(verifiedMessage('PatchProposal'))
|
||||
console.log(verifiedMessage('PatchProposal', patchProposal.address))
|
||||
} else {
|
||||
return '\nDecided to stop at contract verification.\n'
|
||||
}
|
||||
|
@ -10,13 +10,30 @@ const { createInterface } = require('readline')
|
||||
|
||||
const prompter = createInterface({ input: process.stdin, output: process.stdout })
|
||||
|
||||
function idToNetwork(id) {
|
||||
switch (id) {
|
||||
case 1:
|
||||
return 'Mainnet'
|
||||
case 3:
|
||||
return 'Ropsten'
|
||||
case 4:
|
||||
return 'Rinkeby'
|
||||
case 5:
|
||||
return 'Goerli'
|
||||
case 11155111:
|
||||
return 'Sepolia'
|
||||
default:
|
||||
throw Error('\nChain Id could not be recognized. What network are you using?\n')
|
||||
}
|
||||
}
|
||||
|
||||
function _prompt(prompt, resolve) {
|
||||
prompter.question(prompt, (answer) => {
|
||||
if (answer == 'y') {
|
||||
resolve(true)
|
||||
} else if (answer == 'n') {
|
||||
} else {
|
||||
resolve(false)
|
||||
} else _prompt('', resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -39,9 +56,11 @@ function timeout(seconds) {
|
||||
const promptMessageBase = (middle) => `\n${middle}\n\nAre you sure you would like to continue? (y/n): `
|
||||
|
||||
async function deploy() {
|
||||
if (process.env.STAKING_PROXY_ADDRESS === "") throw Error('Missing STAKING_PROXY_ADDRESS.')
|
||||
|
||||
const signer = await ethers.getSigner()
|
||||
|
||||
if (process.env.STAKING_PROXY_ADDRESS === undefined) throw Error('Missing STAKING_PROXY_ADDRESS.')
|
||||
const _network = await ethers.provider.getNetwork()
|
||||
|
||||
const stakingProxyAddress = `${process.env.STAKING_PROXY_ADDRESS}`
|
||||
|
||||
@ -57,12 +76,15 @@ async function deploy() {
|
||||
stakingProxyAddress,
|
||||
config.feeManager,
|
||||
)
|
||||
console.log(deployedMessage('RelayerRegistry (Implementation)', 1, registry.address))
|
||||
console.log(deployedMessage('RelayerRegistry (Implementation)', _network.chainId, registry.address))
|
||||
} else {
|
||||
return '\nDecided to stop at RelayerRegistry (Implementation) deployment.\n'
|
||||
}
|
||||
|
||||
if (await prompt(promptMessageBase('Continuing to contract verification.'))) {
|
||||
console.log('\nWaiting 20 seconds.\n')
|
||||
await timeout(20)
|
||||
|
||||
await hre.run('verify:verify', {
|
||||
address: registry.address,
|
||||
constructorArguments: [
|
||||
@ -73,7 +95,7 @@ async function deploy() {
|
||||
config.feeManager,
|
||||
],
|
||||
})
|
||||
console.log(verifiedMessage('RelayerRegistry (Implementation)'))
|
||||
console.log(verifiedMessage('RelayerRegistry (Implementation)', registry.address))
|
||||
} else {
|
||||
return '\nDecided to stop at contract verification.\n'
|
||||
}
|
||||
|
@ -10,13 +10,30 @@ const { createInterface } = require('readline')
|
||||
|
||||
const prompter = createInterface({ input: process.stdin, output: process.stdout })
|
||||
|
||||
function idToNetwork(id) {
|
||||
switch (id) {
|
||||
case 1:
|
||||
return 'Mainnet'
|
||||
case 3:
|
||||
return 'Ropsten'
|
||||
case 4:
|
||||
return 'Rinkeby'
|
||||
case 5:
|
||||
return 'Goerli'
|
||||
case 11155111:
|
||||
return 'Sepolia'
|
||||
default:
|
||||
throw Error('\nChain Id could not be recognized. What network are you using?\n')
|
||||
}
|
||||
}
|
||||
|
||||
function _prompt(prompt, resolve) {
|
||||
prompter.question(prompt, (answer) => {
|
||||
if (answer == 'y') {
|
||||
resolve(true)
|
||||
} else if (answer == 'n') {
|
||||
} else {
|
||||
resolve(false)
|
||||
} else _prompt('', resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -41,6 +58,8 @@ const promptMessageBase = (middle) => `\n${middle}\n\nAre you sure you would lik
|
||||
async function deploy() {
|
||||
const signer = await ethers.getSigner()
|
||||
|
||||
const _network = await ethers.provider.getNetwork()
|
||||
|
||||
const stakingDeployer = (await ethers.getContractFactory('TornadoStakingRewards')).connect(signer)
|
||||
const proxyDeployer = (await ethers.getContractFactory('AdminUpgradeableProxy')).connect(signer)
|
||||
|
||||
@ -48,34 +67,37 @@ async function deploy() {
|
||||
|
||||
if (await prompt(promptMessageBase('Continuing to TornadoStakingRewards (Implementation) deployment.'))) {
|
||||
impl = await stakingDeployer.deploy(config.governance, config.TORN, config.registry)
|
||||
console.log(deployedMessage('TornadoStakingRewards (Implementation)', 1, impl.address))
|
||||
console.log(deployedMessage('TornadoStakingRewards (Implementation)', _network.chainId, impl.address))
|
||||
} else {
|
||||
return '\nDecided to stop at TornadoStakingRewards (Implementation) deployment.\n'
|
||||
}
|
||||
|
||||
if (await prompt(promptMessageBase('Continuing to Staking Proxy deployment.'))) {
|
||||
proxy = await proxyDeployer.deploy(impl.address, governance.address, [])
|
||||
console.log(deployedMessage('Staking Proxy', 1, proxy.address))
|
||||
proxy = await proxyDeployer.deploy(impl.address, config.governance, [])
|
||||
console.log(deployedMessage('Staking Proxy', _network.chainId, proxy.address))
|
||||
} else {
|
||||
return '\nDecided to stop at Staking Proxy deployment.\n'
|
||||
}
|
||||
|
||||
if (await prompt(promptMessageBase('Continuing to contract verification.'))) {
|
||||
console.log('\nWaiting 20 seconds.\n')
|
||||
await timeout(20)
|
||||
|
||||
await hre.run('verify:verify', {
|
||||
address: impl.address,
|
||||
constructorArguments: [config.governance, config.TORN, config.registry],
|
||||
})
|
||||
|
||||
console.log(verifiedMessage('TornadoStakingRewards (Implementation)'))
|
||||
console.log('\nWaiting 5 seconds.\n')
|
||||
await timeout(5)
|
||||
console.log(verifiedMessage('TornadoStakingRewards (Implementation)', impl.address))
|
||||
console.log('\nWaiting 20 seconds.\n')
|
||||
await timeout(20)
|
||||
|
||||
await hre.run('verify:verify', {
|
||||
address: proxy.address,
|
||||
constructorArguments: [impl.address, governance.address, []],
|
||||
constructorArguments: [impl.address, config.governance, []],
|
||||
})
|
||||
|
||||
console.log(verifiedMessage('Staking Proxy'))
|
||||
console.log(verifiedMessage('Staking Proxy', proxy.address))
|
||||
} else {
|
||||
return '\nDecided to stop at contract verification.\n'
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
require('dotenv').config()
|
||||
require('@nomicfoundation/hardhat-verify')
|
||||
require('@nomiclabs/hardhat-ethers')
|
||||
require('@nomiclabs/hardhat-etherscan')
|
||||
require('@nomiclabs/hardhat-waffle')
|
||||
require('hardhat-spdx-license-identifier')
|
||||
require('hardhat-storage-layout')
|
||||
@ -57,6 +57,11 @@ module.exports = {
|
||||
url: 'http://localhost:8545',
|
||||
timeout: 120000,
|
||||
},
|
||||
goerli: {
|
||||
url: `${process.env.RPC_URL}`,
|
||||
accounts: process.env.PRIVATE_KEY ? [`${process.env.PRIVATE_KEY}`] : undefined,
|
||||
timeout: 9999999,
|
||||
},
|
||||
mainnet: {
|
||||
url: `${process.env.RPC_URL}`,
|
||||
accounts: process.env.PRIVATE_KEY ? [`${process.env.PRIVATE_KEY}`] : undefined,
|
||||
|
@ -33,6 +33,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ethersproject/testcases": "^5.5.0",
|
||||
"@nomicfoundation/hardhat-verify": "^1.0.0",
|
||||
"@nomiclabs/hardhat-ethers": "^2.0.2",
|
||||
"@nomiclabs/hardhat-etherscan": "^2.1.6",
|
||||
"@nomiclabs/hardhat-waffle": "^2.0.1",
|
||||
|
54
yarn.lock
54
yarn.lock
@ -1069,6 +1069,21 @@
|
||||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@nomicfoundation/hardhat-verify@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-verify/-/hardhat-verify-1.0.0.tgz#f18be34f5e7fdb2ffd4f55e8516108568b99da5c"
|
||||
integrity sha512-R3UM/w2+e4D9PZRaeJHbC0caHSu/FV3ykAFBFg+RPNsfSzNgtHeRJXS+V+2HnVJYPaucBUD0v/6qtU8BZAouoQ==
|
||||
dependencies:
|
||||
"@ethersproject/abi" "^5.1.2"
|
||||
"@ethersproject/address" "^5.0.2"
|
||||
cbor "^8.1.0"
|
||||
chalk "^2.4.2"
|
||||
debug "^4.1.1"
|
||||
lodash.clonedeep "^4.5.0"
|
||||
semver "^6.3.0"
|
||||
table "^6.8.0"
|
||||
undici "^5.14.0"
|
||||
|
||||
"@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"
|
||||
@ -2772,6 +2787,13 @@ bufferutil@^4.0.1:
|
||||
dependencies:
|
||||
node-gyp-build "^4.3.0"
|
||||
|
||||
busboy@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
|
||||
integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
|
||||
dependencies:
|
||||
streamsearch "^1.1.0"
|
||||
|
||||
bytes@3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
||||
@ -2881,6 +2903,13 @@ cbor@^8.0.0:
|
||||
dependencies:
|
||||
nofilter "^3.0.3"
|
||||
|
||||
cbor@^8.1.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5"
|
||||
integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==
|
||||
dependencies:
|
||||
nofilter "^3.1.0"
|
||||
|
||||
chai@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49"
|
||||
@ -7071,7 +7100,7 @@ nofilter@^1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e"
|
||||
integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==
|
||||
|
||||
nofilter@^3.0.3:
|
||||
nofilter@^3.0.3, nofilter@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66"
|
||||
integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==
|
||||
@ -8711,6 +8740,11 @@ stream-to-pull-stream@^1.7.1:
|
||||
looper "^3.0.0"
|
||||
pull-stream "^3.2.3"
|
||||
|
||||
streamsearch@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
|
||||
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
|
||||
|
||||
strict-uri-encode@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||
@ -8914,6 +8948,17 @@ table@^6.0.9:
|
||||
string-width "^4.2.3"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
table@^6.8.0:
|
||||
version "6.8.1"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf"
|
||||
integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==
|
||||
dependencies:
|
||||
ajv "^8.0.1"
|
||||
lodash.truncate "^4.4.2"
|
||||
slice-ansi "^4.0.0"
|
||||
string-width "^4.2.3"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
tape@^4.6.3:
|
||||
version "4.14.0"
|
||||
resolved "https://registry.yarnpkg.com/tape/-/tape-4.14.0.tgz#e4d46097e129817175b90925f2385f6b1bcfa826"
|
||||
@ -9283,6 +9328,13 @@ underscore@1.9.1:
|
||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
|
||||
integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
|
||||
|
||||
undici@^5.14.0:
|
||||
version "5.22.1"
|
||||
resolved "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b"
|
||||
integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==
|
||||
dependencies:
|
||||
busboy "^1.6.0"
|
||||
|
||||
union-value@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
|
||||
|
Loading…
Reference in New Issue
Block a user