152 lines
4.8 KiB
JavaScript
152 lines
4.8 KiB
JavaScript
const fs = require('fs');
|
|
const file = fs.createWriteStream('../deploy-detail.txt');
|
|
let logger = new console.Console(file, file);
|
|
|
|
const SmartApprove = artifacts.require("SmartApprove");
|
|
const SmartSwap = artifacts.require("SmartSwap");
|
|
const DODOSellHelper = artifacts.require("DODOSellHelper");
|
|
const TestERC20 = artifacts.require("TestERC20");
|
|
const NaiveOracle = artifacts.require("NaiveOracle");
|
|
const DODOZoo = artifacts.require("DODOZoo");
|
|
|
|
const DEPLOY_ROUTE = true;
|
|
const DEPLOY_KOVAN_TOKEN = false;
|
|
|
|
module.exports = async (deployer, network,accounts) => {
|
|
let DODOSellHelperAddress = ""
|
|
let DODOZooAddress = ""
|
|
let WETHAddress = ""
|
|
if(network == 'kovan'){
|
|
DODOSellHelperAddress = "0xbdEae617F2616b45DCB69B287D52940a76035Fe3";
|
|
DODOZooAddress = "0x92230e929a2226b29ed3441ae5524886347c60c8";
|
|
WETHAddress = "0x5eca15b12d959dfcf9c71c59f8b467eb8c6efd0b";
|
|
}else if(network == 'live'){
|
|
DODOSellHelperAddress = "0x533da777aedce766ceae696bf90f8541a4ba80eb";
|
|
DODOZooAddress = "0x3a97247df274a17c59a3bd12735ea3fcdfb49950";
|
|
WETHAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
|
|
}else
|
|
return;
|
|
|
|
logger.log("====================================================");
|
|
logger.log("network type: " + network);
|
|
logger.log("Deploy time: " + new Date().toLocaleString());
|
|
|
|
if (DEPLOY_ROUTE) {
|
|
logger.log("Deploy type: Smart Route");
|
|
await deployer.deploy(SmartApprove);
|
|
if(DODOSellHelperAddress == "") {
|
|
await deployer.deploy(DODOSellHelper);
|
|
DODOSellHelperAddress = DODOSellHelper.address;
|
|
}
|
|
logger.log("SmartApprove Address: ",SmartApprove.address);
|
|
logger.log("DODOSellHelper Address: ",DODOSellHelperAddress);
|
|
|
|
await deployer.deploy(SmartSwap,SmartApprove.address,DODOSellHelperAddress,WETHAddress);
|
|
logger.log("SmartSwap Address: ",SmartSwap.address);
|
|
|
|
const SmartApproveInstance = await SmartApprove.deployed();
|
|
var tx = await SmartApproveInstance.setSmartSwap(SmartSwap.address);
|
|
logger.log("SmartApprovce setSmartSwap tx: ",tx.tx);
|
|
}
|
|
|
|
if(DEPLOY_KOVAN_TOKEN) {
|
|
logger.log("Deploy type: Create Tokens and Trading Pairs");
|
|
await deployer.deploy(TestERC20,"USDC",6,"USDC");
|
|
const USDCAddr = TestERC20.address;
|
|
logger.log("USDC Addr: ", USDCAddr);
|
|
await deployer.deploy(TestERC20,"USDT",6,"USDT");
|
|
const USDTAddr = TestERC20.address;
|
|
logger.log("USDT Addr: ", USDTAddr);
|
|
await deployer.deploy(TestERC20,"DODO",18,"DODO");
|
|
const DODOAddr = TestERC20.address;
|
|
logger.log("DODO Addr: ", DODOAddr);
|
|
await deployer.deploy(TestERC20,"WOO",18,"WOO");
|
|
const WooAddr = TestERC20.address;
|
|
logger.log("WOO Addr: ", WooAddr);
|
|
const WETHAddr = WETHAddress;
|
|
logger.log("WETH Addr: ", WETHAddr);
|
|
|
|
let config = {
|
|
lpFeeRate: "2000000000000000",
|
|
mtFeeRate: "1000000000000000",
|
|
k: "100000000000000000",
|
|
gasPriceLimit: "100000000000",
|
|
};
|
|
|
|
const DODOZooInstance = await DODOZoo.at(DODOZooAddress);
|
|
|
|
//USDT-USDC
|
|
await deployer.deploy(NaiveOracle);
|
|
var USDT_USDC_Oracle = NaiveOracle.address;
|
|
await DODOZooInstance.breedDODO(
|
|
accounts[0],
|
|
USDTAddr,
|
|
USDCAddr,
|
|
USDT_USDC_Oracle,
|
|
config.lpFeeRate,
|
|
config.mtFeeRate,
|
|
config.k,
|
|
config.gasPriceLimit
|
|
);
|
|
const USDT_USDC_Addr = await DODOZooInstance.getDODO(USDTAddr,USDCAddr);
|
|
logger.log("USDT_USDC_Addr:",USDT_USDC_Addr);
|
|
|
|
// DODO-USDT
|
|
await deployer.deploy(NaiveOracle);
|
|
var DODO_USDT_Oracle = NaiveOracle.address;
|
|
await DODOZooInstance.breedDODO(
|
|
accounts[0],
|
|
DODOAddr,
|
|
USDTAddr,
|
|
DODO_USDT_Oracle,
|
|
config.lpFeeRate,
|
|
config.mtFeeRate,
|
|
config.k,
|
|
config.gasPriceLimit
|
|
);
|
|
const DODO_USDT_Addr = await DODOZooInstance.getDODO(DODOAddr,USDTAddr);
|
|
logger.log("DODO_USDT_Addr:",DODO_USDT_Addr);
|
|
|
|
// //WETH-USDC
|
|
await deployer.deploy(NaiveOracle);
|
|
var WETH_USDC_Oracle = NaiveOracle.address;
|
|
await DODOZooInstance.breedDODO(
|
|
accounts[0],
|
|
WETHAddr,
|
|
USDCAddr,
|
|
WETH_USDC_Oracle,
|
|
config.lpFeeRate,
|
|
config.mtFeeRate,
|
|
config.k,
|
|
config.gasPriceLimit
|
|
);
|
|
const WETH_USDC_Addr = await DODOZooInstance.getDODO(WETHAddr,USDCAddr);
|
|
logger.log("WETH_USDC_Addr:",WETH_USDC_Addr);
|
|
|
|
//WOO-USDT
|
|
await deployer.deploy(NaiveOracle);
|
|
var WOO_USDT_Oracle = NaiveOracle.address;
|
|
await DODOZooInstance.breedDODO(
|
|
accounts[0],
|
|
WooAddr,
|
|
USDTAddr,
|
|
WOO_USDT_Oracle,
|
|
config.lpFeeRate,
|
|
config.mtFeeRate,
|
|
config.k,
|
|
config.gasPriceLimit
|
|
);
|
|
const WOO_USDT_Addr = await DODOZooInstance.getDODO(WooAddr,USDTAddr);
|
|
logger.log("WOO_USDT_Addr:",WOO_USDT_Addr);
|
|
|
|
//TODO:ing enableBaseDeposit enableQuoteDeposit enableTrading
|
|
//TODO:ing apporve pair to token
|
|
//TODO:ing mint to lp
|
|
//TODO:ing deposit to Base && quote pool
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|