replace all ownable to initializableOwnable and update v2.0 deploy script

This commit is contained in:
owen05
2020-12-15 11:17:19 +08:00
parent fcc0f5b3b7
commit 6f29fd4bc5
6 changed files with 224 additions and 38 deletions

View File

@@ -3,73 +3,158 @@ const file = fs.createWriteStream("../deploy-detail-v2.0.txt", { 'flags': 'a' })
let logger = new console.Console(file, file);
const CloneFactory = artifacts.require("CloneFactory");
const FeeRateModelTemplate = artifacts.require("FeeRateModel");
const ConstFeeRateModelTemplate = artifacts.require("ConstFeeRateModel");
const PermissionManagerTemplate = artifacts.require("PermissionManager");
const ExternalValueTemplate = artifacts.require("ExternalValue");
const DvmTemplate = artifacts.require("DVM");
const DvmAdminTemplate = artifacts.require("DVMAdmin");
const DppTemplate = artifacts.require("DPP");
const DppAdminTemplate = artifacts.require("DPPAdmin");
const FeeRateModelTemplate = artifacts.require("FeeRateModel");
const PermissionManagerTemplate = artifacts.require("PermissionManager");
const ExternalValueTemplate = artifacts.require("ExternalValue");
const CpTemplate = artifacts.require("CP");
const DvmFactory = artifacts.require("DVMFactory");
const UnownedDvmFactory = artifacts.require("UnownedDVMFactory");
const DppFactory = artifacts.require("DPPFactory");
const CpFactory = artifacts.require("CrowdPoolingFactory");
const DODOApprove = artifacts.require("DODOApprove");
const DODOProxyV2 = artifacts.require("DODOV2Proxy01");
const DODOSellHelper = artifacts.require("DODOSellHelper");
const DODOCalleeHelper = artifacts.require("DODOCalleeHelper");
const DEPLOY_V2 = false;
const DEPLOY_V2 = true;
module.exports = async (deployer, network, accounts) => {
//Helper And Common
let DODOSellHelperAddress = "";
let DODOCalleeHelperAddress = "";
let WETHAddress = "";
let DODOApproveAddress = "";
let chiAddress = "";
let DODOCalleeHelperAddress = "";
//Template
let CloneFactoryAddress = "";
let FeeRateModelTemplateAddress = "";
let ConstFeeRateModelTemplateAddress = "";
let PermissionManagerTemplateAddress = "";
let ExternalValueTemplateAddress = "";
//Default Template
let DefaultGasSourceAddress = "";
let DefaultMtFeeRateAddress = "";
let DefaultPermissionAddress = "";
let DvmTemplateAddress = "";
let DvmAdminTemplateAddress = "";
let DppTemplateAddress = "";
let DppAdminTemplateAddress = "";
let CpTemplateAddress = "";
//Facotry
let DvmFactoryAddress = "";
let UnownedDvmFactoryAddress = "";
let DppFactoryAddress = "";
let CpFactoryAddress = "";
//Approve
let DODOApproveAddress = "";
//Account
let multiSigAddress = "";
let defaultMaintainer = "";
if (network == "kovan") {
//Helper
DODOSellHelperAddress = "0xbdEae617F2616b45DCB69B287D52940a76035Fe3";
WETHAddress = "0x5eca15b12d959dfcf9c71c59f8b467eb8c6efd0b";
chiAddress = "0x0000000000004946c0e9f43f4dee607b0ef1fa1c";
DODOApproveAddress = "0x0C4a80B2e234448E5f6fD86e7eFA733d985004c8";
DODOCalleeHelperAddress = "0x507EBbb195CF54E0aF147A2b269C08a38EA36989";
//Template
CloneFactoryAddress = "0xf7959fe661124C49F96CF30Da33729201aEE1b27";
FeeRateModelTemplateAddress = "0xEF3137780B387313c5889B999D03BdCf9aeEa892";
ConstFeeRateModelTemplateAddress = "";
PermissionManagerTemplateAddress = "0x5D2Da09501d97a7bf0A8F192D2eb2F9Aa80d3241";
ExternalValueTemplateAddress = "0xe0f813951dE2BB012f7Feb981669F9a7b5250A57";
//Default Template
DefaultGasSourceAddress = "0xE0c0df0e0be7ec4f579503304a6C186cA4365407";
DvmTemplateAddress = "0x460Ada67279Ff2ce8c87cb88F99070c6520Aa624";
DvmAdminTemplateAddress = "0xbB9F79f6ac9e577B658E3B2E1340838d8965986B";
DppTemplateAddress = "0x577c2cE26B8b5C8b3f7c57826Bf351ac7c21a441";
DppAdminTemplateAddress = "0x402ace5a3e6Aa71FB942d309341F8867afcde302";
DefaultMtFeeRateAddress = "";
DefaultPermissionAddress = "";
DvmTemplateAddress = "";
DvmAdminTemplateAddress = "";
DppTemplateAddress = "";
DppAdminTemplateAddress = "";
CpTemplateAddress = "";
//Factory
DvmFactoryAddress = "0xaeF2cce5678e6e29f7a7C2A6f5d2Ce26df600dc1";
DppFactoryAddress = "0x5935a606383Ba43C61FcE5E632357744a95e9dC3";
DvmFactoryAddress = "";
UnownedDvmFactoryAddress = "";
DppFactoryAddress = "";
CpFactoryAddress = "";
//Proxy
DODOApproveAddress = "";
//Account
multiSigAddress = accounts[0];
defaultMaintainer = accounts[0];
} else if (network == "live") {
//Helper
DODOSellHelperAddress = "0x533da777aedce766ceae696bf90f8541a4ba80eb";
WETHAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
chiAddress = "0x0000000000004946c0e9F43F4Dee607b0eF1fA1c";
DODOApproveAddress = "0x4eC851895d85bfa6835241b3157ae10FfFD3BebC";
//Tempalte
DODOCalleeHelperAddress = "";
//Template
CloneFactoryAddress = "";
FeeRateModelTemplateAddress = "";
ConstFeeRateModelTemplateAddress = "";
PermissionManagerTemplateAddress = "";
ExternalValueTemplateAddress = "";
//Default Template
DefaultGasSourceAddress = "";
DefaultMtFeeRateAddress = "";
DefaultPermissionAddress = "";
DvmTemplateAddress = "";
DvmAdminTemplateAddress = "";
DppTemplateAddress = "";
DppAdminTemplateAddress = "";
CpTemplateAddress = "";
//Factory
DvmFactoryAddress = "";
UnownedDvmFactoryAddress = "";
DppFactoryAddress = "";
CpFactoryAddress = "";
//Proxy
DODOApproveAddress = "";
//Account
multiSigAddress = "0x95C4F5b83aA70810D4f142d58e5F7242Bd891CB0";
defaultMaintainer = "0x95C4F5b83aA70810D4f142d58e5F7242Bd891CB0";
} else if (network == "bsclive") {
//Helper
DODOSellHelperAddress = "0x0F859706AeE7FcF61D5A8939E8CB9dBB6c1EDA33";
WETHAddress = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
chiAddress = "0x0000000000000000000000000000000000000000";
DODOApproveAddress = "0x19DA73be23Cea6bFA804Ec020041b8F3971BC522";
DODOCalleeHelperAddress = "";
//Template
CloneFactoryAddress = "";
FeeRateModelTemplateAddress = "";
ConstFeeRateModelTemplateAddress = "";
PermissionManagerTemplateAddress = "";
ExternalValueTemplateAddress = "";
//Default Template
DefaultGasSourceAddress = "";
DefaultMtFeeRateAddress = "";
DefaultPermissionAddress = "";
DvmTemplateAddress = "";
DvmAdminTemplateAddress = "";
DppTemplateAddress = "";
DppAdminTemplateAddress = "";
CpTemplateAddress = "";
//Factory
DvmFactoryAddress = "";
UnownedDvmFactoryAddress = "";
DppFactoryAddress = "";
CpFactoryAddress = "";
//Proxy
DODOApproveAddress = "";
//Account
multiSigAddress = "";
defaultMaintainer = "";
} else return;
@@ -78,6 +163,19 @@ module.exports = async (deployer, network, accounts) => {
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: V2");
//Helper
if (DODOSellHelperAddress == "") {
await deployer.deploy(DODOSellHelper);
DODOSellHelperAddress = DODOSellHelper.address;
logger.log("DODOSellHelper Address: ", DODOSellHelperAddress);
}
if (DODOCalleeHelperAddress == "") {
await deployer.deploy(DODOCalleeHelper, WETHAddress);
DODOCalleeHelperAddress = DODOCalleeHelper.address;
logger.log("DODOCalleeHelperAddress: ", DODOCalleeHelperAddress);
}
//Template
if (CloneFactoryAddress == "") {
await deployer.deploy(CloneFactory);
CloneFactoryAddress = CloneFactory.address;
@@ -88,6 +186,11 @@ module.exports = async (deployer, network, accounts) => {
FeeRateModelTemplateAddress = FeeRateModelTemplate.address;
logger.log("FeeRateModelTemplateAddress: ", FeeRateModelTemplateAddress);
}
if (ConstFeeRateModelTemplateAddress == "") {
await deployer.deploy(ConstFeeRateModelTemplate);
ConstFeeRateModelTemplateAddress = ConstFeeRateModelTemplate.address;
logger.log("ConstFeeRateModelTemplateAddress: ", ConstFeeRateModelTemplateAddress);
}
if (PermissionManagerTemplateAddress == "") {
await deployer.deploy(PermissionManagerTemplate);
PermissionManagerTemplateAddress = PermissionManagerTemplate.address;
@@ -103,9 +206,28 @@ module.exports = async (deployer, network, accounts) => {
DefaultGasSourceAddress = ExternalValueTemplate.address;
logger.log("DefaultGasSourceAddress: ", DefaultGasSourceAddress);
const defaultGasSourceInstance = await ExternalValueTemplate.at(DefaultGasSourceAddress);
var tx = await defaultGasSourceInstance.init(accounts[0], "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
logger.log("Set default Gas Tx:", tx.tx);
var tx = await defaultGasSourceInstance.init(multiSigAddress, "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
logger.log("Init DefaultGasSource Tx:", tx.tx);
}
if (DefaultMtFeeRateAddress == "") {
await deployer.deploy(ConstFeeRateModelTemplate);
DefaultMtFeeRateAddress = ConstFeeRateModelTemplate.address;
logger.log("DefaultMtFeeRateAddress: ", DefaultMtFeeRateAddress);
const defaultMtFeeRateInstance = await ConstFeeRateModelTemplate.at(DefaultMtFeeRateAddress);
var tx = await defaultMtFeeRateInstance.init(multiSigAddress, 0);
logger.log("Init DefaultMtFeeRate Tx:", tx.tx);
}
if (DefaultPermissionAddress == "") {
await deployer.deploy(PermissionManagerTemplate);
DefaultPermissionAddress = PermissionManagerTemplate.address;
logger.log("DefaultPermissionAddress: ", DefaultPermissionAddress);
const defaultPermissionInstance = await PermissionManagerTemplate.at(DefaultPermissionAddress);
var tx = await defaultPermissionInstance.initOwner(multiSigAddress);
logger.log("Init DefaultPermissionAddress Tx:", tx.tx);
}
if (DvmTemplateAddress == "") {
await deployer.deploy(DvmTemplate);
DvmTemplateAddress = DvmTemplate.address;
@@ -126,21 +248,19 @@ module.exports = async (deployer, network, accounts) => {
DppAdminTemplateAddress = DppAdminTemplate.address;
logger.log("DppAdminTemplateAddress: ", DppAdminTemplateAddress);
}
if (CpTemplateAddress == "") {
await deployer.deploy(CpTemplate);
CpTemplateAddress = CpTemplate.address;
logger.log("CpTemplateAddress: ", CpTemplateAddress);
}
//Approve
if (DODOApproveAddress == "") {
await deployer.deploy(DODOApprove);
DODOApproveAddress = DODOApprove.address;
logger.log("DODOApprove Address: ", DODOApproveAddress);
}
if (DODOSellHelperAddress == "") {
await deployer.deploy(DODOSellHelper);
DODOSellHelperAddress = DODOSellHelper.address;
logger.log("DODOSellHelper Address: ", DODOSellHelperAddress);
}
if (DODOCalleeHelperAddress == "") {
await deployer.deploy(DODOCalleeHelper,WETHAddress);
DODOCalleeHelperAddress = DODOCalleeHelper.address;
logger.log("DODOCalleeHelperAddress: ", DODOCalleeHelperAddress);
}
//Factory
if (DvmFactoryAddress == "") {
await deployer.deploy(
@@ -148,13 +268,32 @@ module.exports = async (deployer, network, accounts) => {
CloneFactoryAddress,
DvmTemplateAddress,
DvmAdminTemplateAddress,
FeeRateModelTemplateAddress,
ConstFeeRateModelTemplateAddress,
PermissionManagerTemplateAddress,
DefaultGasSourceAddress
);
DvmFactoryAddress = DvmFactory.address;
logger.log("DvmFactoryAddress: ", DvmFactoryAddress);
const DvmFactoryInstance = await DvmFactory.at(DvmFactoryAddress);
var tx = await DvmFactoryInstance.initOwner(multiSigAddress);
logger.log("Init DvmFactory Tx:", tx.tx);
}
if (UnownedDvmFactoryAddress == "") {
await deployer.deploy(
UnownedDvmFactory,
CloneFactoryAddress,
DvmTemplateAddress,
ConstFeeRateModelTemplateAddress,
defaultMaintainer,
DefaultMtFeeRateAddress,
DefaultPermissionAddress,
DefaultGasSourceAddress
);
UnownedDvmFactoryAddress = UnownedDvmFactory.address;
logger.log("UnownedDvmFactoryAddress: ", UnownedDvmFactoryAddress);
}
if (DppFactoryAddress == "") {
await deployer.deploy(
DppFactory,
@@ -169,21 +308,45 @@ module.exports = async (deployer, network, accounts) => {
);
DppFactoryAddress = DppFactory.address;
logger.log("DppFactoryAddress: ", DppFactoryAddress);
const DppFactoryInstance = await DppFactory.at(DppFactoryAddress);
var tx = await DppFactoryInstance.initOwner(multiSigAddress);
logger.log("Init DppFactory Tx:", tx.tx);
}
if (CpFactoryAddress == "") {
await deployer.deploy(
CpFactory,
CloneFactoryAddress,
CpTemplateAddress,
UnownedDvmFactoryAddress,
ConstFeeRateModelTemplateAddress,
defaultMaintainer,
DefaultMtFeeRateAddress,
DefaultPermissionAddress,
DefaultGasSourceAddress
);
CpFactoryAddress = CpFactory.address;
logger.log("CpFactoryAddress: ", CpFactoryAddress);
}
//Proxy
await deployer.deploy(
DODOProxyV2,
DvmFactoryAddress,
DppFactoryAddress,
CpFactoryAddress,
WETHAddress,
DODOApproveAddress,
DODOSellHelperAddress
);
logger.log("DODOProxyV2 Address: ", DODOProxyV2.address);
const DODOProxyV2Instance = await DODOProxyV2.at(DODOProxyV2.address);
var tx = await DODOProxyV2Instance.initOwner(multiSigAddress);
logger.log("Init DODOProxyV2 Tx:", tx.tx);
const DODOApproveInstance = await DODOApprove.at(DODOApproveAddress);
var tx = await DODOApproveInstance.setDODOProxy(DODOProxyV2.address);
logger.log("DODOApprovce setProxy tx: ", tx.tx);
var tx = await DODOApproveInstance.init(multiSigAddress,DODOProxyV2.address);
logger.log("DODOApprovce Init tx: ", tx.tx);
}
};