forked from aragon/dao-templates
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2_deploy.js
49 lines (35 loc) · 1.8 KB
/
2_deploy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const path = require('path')
const fs = require('fs')
const namehash = require('eth-ens-namehash').hash
const deployDAOFactory = require('@aragon/os/scripts/deploy-daofactory.js')
const payrollAppId = namehash('payroll.aragonpm.eth')
const newRepo = async (apm, name, acc, contract, contentURI = "ipfs:") => {
const c = await artifacts.require(contract).new()
console.log('creating apm repo for', name)
return await apm.newRepoWithVersion(name, acc, [1, 0, 0], c.address, contentURI)
}
module.exports = function (deployer, network, accounts, arts = null) {
deployer.then(async () => {
if (arts != null) artifacts = arts // allow running outside
const ENS = artifacts.require('@aragon/os/contracts/lib/ens/ENS.sol')
const PayrollKit = artifacts.require('PayrollKit')
const Payroll = artifacts.require('Payroll')
const ens = ENS.at(
process.env.ENS ||
'0x5f6f7e8cc7346a11ca2def8f827b7a0b612c56a1' // aragen's default ENS
)
const apmAddr = await artifacts.require('PublicResolver').at(await ens.resolver(namehash('aragonpm.eth'))).addr(namehash('aragonpm.eth'))
console.log('Deploying DAOFactory...')
const { daoFactory } = await deployDAOFactory(null, { artifacts, verbose: false })
console.log('Deploying PayrollKit...')
const kit = await PayrollKit.new(daoFactory.address, ens.address)
console.log('Creating APM package for PayrollKit...')
const apm = artifacts.require('APMRegistry').at(apmAddr)
await apm.newRepoWithVersion('payroll-kit', accounts[0], [1, 0, 0], kit.address, 'ipfs:')
console.log('Creating APM package for Payroll...')
const payroll = await Payroll.new()
await apm.newRepoWithVersion('payroll', accounts[0], [1, 0, 0], payroll.address, 'ipfs:')
console.log('PayrollKit:', kit.address)
return kit.address
}
)}