-
Notifications
You must be signed in to change notification settings - Fork 13
/
deploy_bytecode_getter.js
80 lines (66 loc) · 2.65 KB
/
deploy_bytecode_getter.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const { ethers, Wallet, ContractFactory, Provider } = require("ethers");
const fs = require('fs');
const unpackArtifact = (artifactPath) => {
let contractData = JSON.parse(fs.readFileSync(artifactPath))
const contractBytecode = contractData['bytecode']
const contractABI = contractData['abi']
const constructorArgs = contractABI.filter((itm) => {
return itm.type == 'constructor'
})
let constructorStr;
if(constructorArgs.length < 1) {
constructorStr = " -- No constructor arguments -- "
}
else {
constructorJSON = constructorArgs[0].inputs
constructorStr = JSON.stringify(constructorJSON.map((c) => {
return {
name: c.name,
type: c.type
}
}))
}
return {
abi: contractABI,
bytecode: contractBytecode,
description:` ${contractData.contractName}\n ${constructorStr}`
}
}
const deployTokenFromSigner = (contractABI, contractBytecode, wallet, args = []) => {
const factory = new ContractFactory(contractABI, contractBytecode)
let deployTx = factory.getDeployTransaction(...args)
console.log(deployTx)
// deployTokenFromSigner(tokenUnpacked.abi, tokenUnpacked.bytecode, provider, tokenArgs)
}
const getContractDeployTx = (contractABI, contractBytecode, wallet, provider, args = []) => {
const factory = new ContractFactory(contractABI, contractBytecode, wallet.connect(provider))
let txRequest = factory.getDeployTransaction(...args)
return txRequest
}
const deployContract = async (contractABI, contractBytecode, wallet, provider, args = []) => {
const factory = new ContractFactory(contractABI, contractBytecode, wallet.connect(provider))
return await factory.deploy(...args);
}
const deployCoreDAO = async (mnemonic = "", mainnet = false) => {
// Get the built metadata for our contracts
let tokenUnpacked = unpackArtifact("./artifacts/contracts/CoreDAO.sol/CoreDAO.json")
console.log(tokenUnpacked.description)
let provider;
// let wethAddress;
if(mainnet) {
provider = ethers.getDefaultProvider("homestead")
// wethAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
else {
provider = ethers.getDefaultProvider("kovan")
// wethAddress = "0xd0a1e359811322d97991e03f863a0c30c2cf029c"
}
const tokenArgs = [
0
]
deployTokenFromSigner(tokenUnpacked.abi, tokenUnpacked.bytecode, provider, tokenArgs)
}
const deployCoreVault = (coreTokenAddress = "0x62359ed7505efc61ff1d56fef82158ccaffa23d7") => {
let coreVaultUnpacked = unpackArtifact("./artifacts/FeeApprover.json")
}
deployCoreDAO();