73 lines
2.0 KiB
JavaScript
73 lines
2.0 KiB
JavaScript
|
require('dotenv').config()
|
||
|
|
||
|
const config = require('../config')
|
||
|
|
||
|
const hre = require('hardhat')
|
||
|
|
||
|
const { ethers } = hre
|
||
|
|
||
|
const { createInterface } = require('readline')
|
||
|
|
||
|
const prompter = createInterface({ input: process.stdin, output: process.stdout })
|
||
|
|
||
|
function _prompt(prompt, resolve) {
|
||
|
prompter.question(prompt, (answer) => {
|
||
|
if (answer == 'y') {
|
||
|
resolve(true)
|
||
|
} else if (answer == 'n') {
|
||
|
resolve(false)
|
||
|
} else _prompt('', resolve)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function prompt(prompt) {
|
||
|
return new Promise((resolve) => _prompt(prompt, resolve))
|
||
|
}
|
||
|
|
||
|
function deployedMessage(name, chainId, address) {
|
||
|
return `\n${name} deployed on ${idToNetwork(chainId)} @ ${address}\n`
|
||
|
}
|
||
|
|
||
|
function verifiedMessage(name, address) {
|
||
|
return `\n${name} @ ${address} verified on Etherscan!\n`
|
||
|
}
|
||
|
|
||
|
function timeout(seconds) {
|
||
|
return new Promise((resolve) => setTimeout(resolve, seconds * 1000))
|
||
|
}
|
||
|
|
||
|
const promptMessageBase = (middle) => `\n${middle}\n\nAre you sure you would like to continue? (y/n): `
|
||
|
|
||
|
async function deploy() {
|
||
|
const signer = await ethers.getSigner()
|
||
|
|
||
|
const registryImplementationDeployer = (await ethers.getContractFactory('RelayerRegistry')).connect(signer)
|
||
|
|
||
|
let registry
|
||
|
|
||
|
if (await prompt(promptMessageBase('Continuing to RelayerRegistry (Implementation) deployment.'))) {
|
||
|
registry = await registryImplementationDeployer.deploy(
|
||
|
config.TORN,
|
||
|
config.governance,
|
||
|
config.ens,
|
||
|
config.staking,
|
||
|
config.feeManager,
|
||
|
)
|
||
|
console.log(deployedMessage('RelayerRegistry (Implementation)', 1, registry.address))
|
||
|
} else {
|
||
|
return '\nDecided to stop at RelayerRegistry (Implementation) deployment.\n'
|
||
|
}
|
||
|
|
||
|
if (await prompt(promptMessageBase('Continuing to contract verification.'))) {
|
||
|
await hre.run('verify:verify', {
|
||
|
address: registry.address,
|
||
|
constructorArguments: [config.TORN, config.governance, config.ens, config.staking, config.feeManager],
|
||
|
})
|
||
|
console.log(verifiedMessage('RelayerRegistry (Implementation)'))
|
||
|
} else {
|
||
|
return '\nDecided to stop at contract verification.\n'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
deploy()
|