Skip to content

Commit b548bd3

Browse files
committed
add deploy scripts
1 parent 138902a commit b548bd3

40 files changed

+15347
-1
lines changed

.env.example

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
ALCHEMY_KEY=
2+
RINKEBY_PRIVKEY=
3+
MAINNET_PRIVKEY=
4+
ETHERSCAN_API_KEY=

deploy/01_oracle.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("1. Deploy Oracle")
6+
const {deploy} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await deploy('Oracle', {
10+
from: deployer
11+
});
12+
};

deploy/02_comptroller.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("2. Deploy Comptroller")
6+
const {deploy} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await deploy('Comptroller', {
10+
from: deployer
11+
});
12+
};
13+
14+
module.exports.tags = ['Comptroller'];

deploy/03_unitroller.js

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("3. Deploy Unitroller")
6+
const {deploy} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await deploy('Unitroller', {
10+
from: deployer
11+
});
12+
};
13+
14+
module.exports.tags = ['Unitroller'];
15+
module.exports.dependencies = ['Comptroller'];

deploy/04_setPendingImplementation.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("4. setPendingImplementation")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await execute('Unitroller', {
10+
from: deployer,
11+
},
12+
"_setPendingImplementation",
13+
(await deployments.get('Comptroller')).address
14+
)
15+
return true
16+
};
17+
18+
module.exports.id = 'setPendingImplementation';
19+
module.exports.tags = ['setPendingImplementation'];
20+
module.exports.dependencies = ['Unitroller'];

deploy/05_acceptImplementation.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("5. acceptImplementation")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await execute('Comptroller', {
10+
from: deployer
11+
},
12+
"_become",
13+
(await deployments.get('Unitroller')).address
14+
)
15+
return true
16+
};
17+
module.exports.id = 'acceptImplementation';
18+
module.exports.tags = ['acceptImplementation'];
19+
module.exports.dependencies = ['setPendingImplementation'];

deploy/06_dola.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("6. Deploy Dola")
6+
const {deploy, save} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await deploy('ERC20', {
10+
from: deployer,
11+
args:[
12+
"Dola USD Stablecoin",
13+
"DOLA",
14+
18
15+
]
16+
});
17+
18+
const ERC20 = await deployments.get('ERC20');
19+
20+
await save("Dola", ERC20);
21+
};
22+
23+
module.exports.tags = ['Dola'];

deploy/07_dolaInterestRateModel.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("7. Deploy Dola Interest Rate Model")
6+
const {deploy, save} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await deploy('JumpRateModelV2', {
10+
from: deployer,
11+
args:[
12+
"0",
13+
"40000000000000000",
14+
"1090000000000000000",
15+
"800000000000000000",
16+
deployer
17+
]
18+
});
19+
20+
const Model = await deployments.get('JumpRateModelV2');
21+
await save("DolaInterestRateModel", Model);
22+
};
23+
24+
module.exports.tags = ['DolaInterestRateModel'];

deploy/08_anDola.js

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts
4+
}) => {
5+
console.log("8. Deploy anDola")
6+
const {deploy, save} = deployments;
7+
8+
const Dola = await deployments.get('Dola');
9+
const Unitroller = await deployments.get('Unitroller');
10+
const Model = await deployments.get('DolaInterestRateModel');
11+
const {gov, deployer} = await getNamedAccounts();
12+
13+
await deploy('CErc20Immutable', {
14+
from: deployer,
15+
args:[
16+
Dola.address,
17+
Unitroller.address,
18+
Model.address,
19+
"200000000000000000000000000",
20+
"Anchor Dola",
21+
"anDola",
22+
"8",
23+
gov
24+
]
25+
});
26+
27+
const CERC20 = await deployments.get('CErc20Immutable');
28+
await save("anDola", CERC20);
29+
};
30+
31+
module.exports.dependencies = ['DolaInterestRateModel','Dola', 'Unitroller'];
32+
module.exports.tags = ['anDola'];

deploy/09_setDolaPrice.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("9. set Dola fixed price")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await execute('Oracle', {
10+
from: deployer,
11+
},
12+
"setFixedPrice",
13+
(await deployments.get('anDola')).address,
14+
"1000000000000000000"
15+
)
16+
return true
17+
};
18+
module.exports.id = 'setDolaPrice';
19+
module.exports.tags = ['setDolaPrice'];
20+
module.exports.dependencies = ['Oracle', 'anDola'];

deploy/10_ethInterestRateModel.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts
4+
}) => {
5+
console.log("10. Deploy ETH Interest Rate Model")
6+
const {deploy, save} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await deploy('WhitePaperInterestRateModel', {
10+
from: deployer,
11+
args:[
12+
"20000000000000000",
13+
"100000000000000000"
14+
]
15+
});
16+
17+
const Model = await deployments.get('WhitePaperInterestRateModel');
18+
await save("EthInterestRateModel", Model);
19+
};
20+
21+
module.exports.tags = ['EthInterestRateModel'];

deploy/11_anEth.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts
4+
}) => {
5+
console.log("11. Deploy anETH")
6+
const {deploy, save} = deployments;
7+
const {deployer, gov} = await getNamedAccounts()
8+
9+
const Unitroller = await deployments.get('Unitroller');
10+
const Model = await deployments.get('EthInterestRateModel');
11+
12+
await deploy('CEther', {
13+
from: deployer,
14+
args:[
15+
Unitroller.address,
16+
Model.address,
17+
"200000000000000000000000000",
18+
"Anchor Ether",
19+
"anETH",
20+
"8",
21+
gov
22+
]
23+
});
24+
25+
const CERC20 = await deployments.get('CEther');
26+
await save("anETH", CERC20);
27+
};
28+
29+
module.exports.dependencies = ['EthInterestRateModel', 'Unitroller'];
30+
module.exports.tags = ['anETH'];

deploy/12_setEthFeed.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts
4+
}) => {
5+
console.log("12. Set ETH price feed")
6+
const {execute} = deployments;
7+
const {deployer, ethFeed} = await getNamedAccounts()
8+
await execute('Oracle', {
9+
from: deployer,
10+
},
11+
"setFeed",
12+
(await deployments.get('anETH')).address,
13+
ethFeed,
14+
18
15+
)
16+
return true
17+
};
18+
19+
module.exports.id = 'setEthFeed';
20+
module.exports.tags = ['setEthFeed'];
21+
module.exports.dependencies = ['Oracle', 'anETH'];

deploy/13_setOracle.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("13. Attach Oracle to comptroller")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
9+
await execute('Comptroller', {
10+
from: deployer,
11+
to: (await deployments.get('Unitroller')).address
12+
},
13+
"_setPriceOracle",
14+
(await deployments.get('Oracle')).address
15+
)
16+
return true
17+
};
18+
19+
module.exports.id = 'setOracle'
20+
module.exports.tags = ['setOracle'];
21+
module.exports.dependencies = ['Unitroller', 'Oracle'];

deploy/14_addDolaMarket.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("14. Add Dola Market")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
const Unitroller = await deployments.get('Unitroller');
9+
10+
await execute('Comptroller', {
11+
from: deployer,
12+
to: Unitroller.address
13+
},
14+
"_supportMarket",
15+
(await deployments.get('anDola')).address
16+
)
17+
return true
18+
};
19+
20+
module.exports.id = 'addDolaMarket'
21+
module.exports.tags = ['addDolaMarket'];
22+
module.exports.dependencies = ['Unitroller', 'anDola'];

deploy/15_addEthMarket.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("15. Add ETH Market")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
const Unitroller = await deployments.get('Unitroller');
9+
10+
await execute('Comptroller', {
11+
from: deployer,
12+
to: Unitroller.address
13+
},
14+
"_supportMarket",
15+
(await deployments.get('anETH')).address
16+
)
17+
return true
18+
};
19+
20+
module.exports.id = 'addEthMarket'
21+
module.exports.tags = ['addEthMarket'];
22+
module.exports.dependencies = ['Unitroller', 'anETH'];

deploy/16_pauseETHBorrows.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts,
4+
}) => {
5+
console.log("16. Pause ETH borrowing")
6+
const {execute} = deployments;
7+
const {deployer} = await getNamedAccounts()
8+
const Unitroller = await deployments.get('Unitroller');
9+
10+
await execute('Comptroller', {
11+
from: deployer,
12+
to: Unitroller.address,
13+
gasLimit:"2000000"
14+
},
15+
"_setBorrowPaused",
16+
(await deployments.get('anETH')).address,
17+
true
18+
)
19+
return true
20+
};
21+
module.exports.id = 'pauseETHBorrows'
22+
module.exports.tags = ['pauseETHBorrows'];
23+
module.exports.dependencies = ['addEthMarket'];

deploy/17_fed.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module.exports = async ({
2+
deployments,
3+
getNamedAccounts
4+
}) => {
5+
console.log("17. Deploy Fed")
6+
const {deploy} = deployments;
7+
const {deployer, gov} = await getNamedAccounts();
8+
9+
await deploy('Fed', {
10+
from: deployer,
11+
args:[
12+
(await deployments.get('anDola')).address,
13+
gov
14+
]
15+
});
16+
};
17+
18+
module.exports.tags = ['Fed'];
19+
module.exports.dependencies = ['anDola'];

0 commit comments

Comments
 (0)