41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
require('dotenv').config()
|
|
const { task } = require('hardhat/config')
|
|
const { BigNumber } = require('@ethersproject/bignumber')
|
|
const instancesData = require('../resources/instances')
|
|
|
|
task('deploy_proposal', 'deploy proposal that uses factory')
|
|
.addParam('factoryAddress', 'address of factory')
|
|
.setAction(async (taskArgs, hre) => {
|
|
const contractName = `Add${instancesData.length}Instance${instancesData.length == 1 ? '' : 's'}`
|
|
|
|
const ProposalFactory = await hre.ethers.getContractFactory(contractName)
|
|
|
|
let denominations = []
|
|
for (let i = 0; i < instancesData.length; i++) {
|
|
denominations[i] = BigNumber.from(instancesData[i].denomination)
|
|
}
|
|
|
|
const tokenAddress = instancesData[0].tokenAddress
|
|
|
|
const ProposalContract = await ProposalFactory.deploy(
|
|
`${process.env.PROXY}`,
|
|
taskArgs.factoryAddress,
|
|
denominations.length == 1 ? denominations[0] : denominations,
|
|
tokenAddress,
|
|
)
|
|
|
|
await ProposalContract.deployTransaction.wait(5)
|
|
|
|
await hre.run('verify:verify', {
|
|
address: ProposalContract.address,
|
|
constructorArguments: [
|
|
`${process.env.PROXY}`,
|
|
taskArgs.factoryAddress,
|
|
denominations.length == 1 ? denominations[0] : denominations,
|
|
tokenAddress,
|
|
],
|
|
})
|
|
|
|
console.log(`Verified ${contractName} deployed at: `, ProposalContract.address)
|
|
})
|