Files
dodo-contractV2/migrations/2_deploy_starter.js
2022-04-24 11:23:40 +08:00

109 lines
4.1 KiB
JavaScript

const fs = require("fs");
const { deploySwitch } = require('../truffle-config.js')
const file = fs.createWriteStream("../deploy-starter.txt", { 'flags': 'a' });
let logger = new console.Console(file, file);
const { GetConfig } = require("../configAdapter.js")
const UserQuota = artifacts.require("UserQuota");
const UserQuotaFactory = artifacts.require("UserQuotaFactory");
const DODOStarterProxy = artifacts.require("DODOStarterProxy");
const DODOStarterFactory = artifacts.require("DODOStarterFactory");
const FairFunding = artifacts.require("FairFunding");
const InstantFunding = artifacts.require("InstantFunding");
module.exports = async (deployer, network, accounts) => {
let CONFIG = GetConfig(network, accounts)
if (CONFIG == null) return;
//Need Deploy first
let DODOApproveProxyAddress = CONFIG.DODOApproveProxy;
let CloneFactoryAddress = CONFIG.CloneFactory;
let WETHAddress = CONFIG.WETH;
if (DODOApproveProxyAddress == "" || CloneFactoryAddress == "" || WETHAddress == "") return;
let FairFundingTemplate = CONFIG.FairFunding;
let InstantFundingTemplate = CONFIG.InstantFunding;
let DODOStarterFactoryAddress = CONFIG.DODOStarterFactory;
let DODOStarterProxyAddress = CONFIG.DODOStarterProxy;
let UserQuotaAddress = CONFIG.UserQuota;
let UserQuotaFactoryAddress = CONFIG.UserQuotaFactory;
let multiSigAddress = CONFIG.multiSigAddress;
if (deploySwitch.Quota) {
logger.log("====================================================");
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: QuotaFactory");
if (UserQuotaAddress == "") {
await deployer.deploy(UserQuota);
UserQuotaAddress = UserQuota.address;
logger.log("UserQuotaAddress: ", UserQuotaAddress);
}
if (UserQuotaFactoryAddress == "") {
await deployer.deploy(
UserQuotaFactory,
CloneFactoryAddress,
UserQuotaAddress
);
UserQuotaFactoryAddress = UserQuotaFactory.address;
logger.log("UserQuotaFactoryAddress: ", UserQuotaFactoryAddress);
const instance = await UserQuotaFactory.at(UserQuotaFactoryAddress);
var tx = await instance.initOwner(multiSigAddress);
logger.log("Init UserQuotaFactory Tx:", tx.tx);
}
}
if (deploySwitch.STARTER) {
logger.log("====================================================");
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: STARTER");
if (FairFundingTemplate == "") {
await deployer.deploy(FairFunding);
FairFundingTemplate = FairFunding.address;
logger.log("FairFundingTemplate: ", FairFundingTemplate);
}
if (InstantFundingTemplate == "") {
await deployer.deploy(InstantFunding);
InstantFundingTemplate = InstantFunding.address;
logger.log("InstantFundingTemplate: ", InstantFundingTemplate);
}
if (DODOStarterFactoryAddress == "") {
await deployer.deploy(
DODOStarterFactory,
CloneFactoryAddress,
FairFundingTemplate,
InstantFundingTemplate
);
DODOStarterFactoryAddress = DODOStarterFactory.address;
logger.log("DODOStarterFactoryAddress: ", DODOStarterFactoryAddress);
const instance = await DODOStarterFactory.at(DODOStarterFactoryAddress);
var tx = await instance.initOwner(multiSigAddress);
logger.log("Init DODOStarterFactory Tx:", tx.tx);
}
if (DODOStarterProxyAddress == "") {
await deployer.deploy(
DODOStarterProxy,
WETHAddress,
DODOApproveProxyAddress
);
DODOStarterProxyAddress = DODOStarterProxy.address;
logger.log("DODOStarterProxyAddress: ", DODOStarterProxyAddress);
}
}
};