-
Notifications
You must be signed in to change notification settings - Fork 28
/
migrateLibs.js
65 lines (58 loc) · 2.18 KB
/
migrateLibs.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
async function linkContractsWithLibrary(deployer, artifacts, lib, contractNames) {
for(let contractName of contractNames) {
try {
await deployer.link(lib, artifacts.require(contractName));
} catch(error) {
console.log('Not linked:', contractName);
}
}
}
let thettaContracts = [
"./DaoBase",
"./DaoBaseAuto",
"./DaoBaseImpersonated",
"./DaoBaseMock",
"./DaoBaseWithUnpackers",
"./DaoBaseWithUnpackersMock",
"./DaoStorage",
"./GenericCaller",
"./MoneyflowAuto",
"./StdDaoToken",
"./Voting",
"./VotingLib",
"./GenericCallerLib"
]
function migrateLibs (artifacts, additionalContracts, deployer, network, accounts) {
return deployer.then(async () => {
let contractsArr = thettaContracts.concat(additionalContracts);
try {
let UtilsLib = artifacts.require("./UtilsLib");
await deployer.deploy(UtilsLib);
await linkContractsWithLibrary(deployer, artifacts, UtilsLib, contractsArr);
} catch(error) {
console.log('Thetta.UtilsLib is not deployed');
}
try {
let VotingLib = artifacts.require("./VotingLib");
await deployer.deploy(VotingLib);
await linkContractsWithLibrary(deployer, artifacts, VotingLib, contractsArr);
} catch(error) {
console.log('Thetta.VotingLib is not deployed');
}
try {
let GenericCallerLib = artifacts.require("./GenericCallerLib");
await deployer.deploy(GenericCallerLib);
await linkContractsWithLibrary(deployer, artifacts, GenericCallerLib, contractsArr);
} catch(error) {
console.log('Thetta.GenericCallerLib is not deployed');
}
try {
let DaoBaseLib = artifacts.require("./DaoBaseLib");
await deployer.deploy(DaoBaseLib);
await linkContractsWithLibrary(deployer, artifacts, DaoBaseLib, contractsArr);
} catch(error) {
console.log('Thetta.DaoBaseLib is not deployed');
}
});
};
module.exports = migrateLibs