merge feature/nft

This commit is contained in:
owen05
2021-07-13 16:33:40 +08:00
83 changed files with 12971 additions and 14538 deletions

View File

@@ -46,6 +46,7 @@ module.exports = async (deployer, network, accounts) => {
let WETHAddress = CONFIG.WETH;
let DODOTokenAddress = CONFIG.DODO;
let DODOApproveProxyAddress = CONFIG.DODOApproveProxy;
let WETH = CONFIG.WETH;
let DspTemplateAddress = CONFIG.DSP;
let DspFactoryAddress = CONFIG.DSPFactory;
@@ -448,30 +449,30 @@ module.exports = async (deployer, network, accounts) => {
logger.log("Init DODOCirculationHelperAddress Tx:", tx.tx);
}
if (network == 'kovan') {
if (network == 'kovan' || network == 'rinkeby') {
const vDODOTokenInstance = await vDODOToken.at(vDODOTokenAddress);
//updateDODOCirculationHelper
var tx = await vDODOTokenInstance.updateDODOCirculationHelper(DODOCirculationHelperAddress);
logger.log("vDODOToken setDODOCirculationHelper tx: ", tx.tx);
//ApproveProxy add
// const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress);
// tx = await DODOApproveProxyInstance.unlockAddProxy(vDODOTokenAddress);
// logger.log("DODOApproveProxy Unlock tx: ", tx.tx);
// tx = await DODOApproveProxyInstance.addDODOProxy();
// logger.log("DODOApproveProxy add tx: ", tx.tx);
const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress);
tx = await DODOApproveProxyInstance.unlockAddProxy(vDODOTokenAddress);
logger.log("DODOApproveProxy Unlock tx: ", tx.tx);
tx = await DODOApproveProxyInstance.addDODOProxy();
logger.log("DODOApproveProxy add tx: ", tx.tx);
// //Mint DODO first
// tx = await vDODOTokenInstance.mint("100000000000000000000000",dodoTeam);
// logger.log("vDODOToken first mint tx: ", tx.tx);
tx = await vDODOTokenInstance.mint("100000000000000000000000",dodoTeam);
logger.log("vDODOToken first mint tx: ", tx.tx);
// //preDepositedBlockReward
// tx = await vDODOTokenInstance.preDepositedBlockReward("100000000000000000000000");
// logger.log("vDODOToken injected dodo tx: ", tx.tx);
tx = await vDODOTokenInstance.preDepositedBlockReward("10000000000000000000000000");
logger.log("vDODOToken injected dodo tx: ", tx.tx);
// //changePerReward
// tx = await vDODOTokenInstance.changePerReward("100000000000000000");
// logger.log("vDODOToken changeReward tx: ", tx.tx);
tx = await vDODOTokenInstance.changePerReward("10000000000000000");
logger.log("vDODOToken changeReward tx: ", tx.tx);
}
}

236
migrations/5_deploy_nft.js Normal file
View File

@@ -0,0 +1,236 @@
const fs = require("fs");
const { deploySwitch } = require('../truffle-config.js')
const file = fs.createWriteStream("../deploy-nft.txt", { 'flags': 'a' });
let logger = new console.Console(file, file);
const { GetConfig } = require("../configAdapter.js")
const DODOApproveProxy = artifacts.require("DODOApproveProxy");
const NFTCollateralVault = artifacts.require("NFTCollateralVault");
const BuyoutModel = artifacts.require("BuyoutModel");
const Fragment = artifacts.require("Fragment");
const DODONFTRegistry = artifacts.require("DODONFTRegistry");
const DODONFTProxy = artifacts.require("DODONFTProxy");
const DODONFTRouteHelper = artifacts.require("DODONFTRouteHelper");
const InitializableERC721 = artifacts.require("InitializableERC721");
const InitializableERC1155 = artifacts.require("InitializableERC1155");
const NFTTokenFactory = artifacts.require("NFTTokenFactory");
const DodoNftErc721 = artifacts.require("DODONFT");
const DodoNftErc1155 = artifacts.require("DODONFT1155");
const DODODropsV1 = artifacts.require("DODODropsV1");
const RandomGenerator = artifacts.require("RandomGenerator");
module.exports = async (deployer, network, accounts) => {
let CONFIG = GetConfig(network, accounts)
if (CONFIG == null) return;
//Need Deploy first
let WETHAddress = CONFIG.WETH;
let DVMTemplateAddress = CONFIG.DVM;
let CloneFactoryAddress = CONFIG.CloneFactory;
let DODOApproveProxyAddress = CONFIG.DODOApproveProxy;
if (DODOApproveProxyAddress == "" || CloneFactoryAddress == "") return;
let MtFeeRateModelAddress = CONFIG.FeeRateModel;
let FragmentAddress = CONFIG.Fragment;
let BuyoutModelAddress = CONFIG.BuyoutModel;
let NFTCollateralVaultAddress = CONFIG.NFTCollateralVault;
let DODONFTRouteHelperAddress = CONFIG.DODONFTRouteHelper;
let DODONFTRegistryAddress = CONFIG.DODONFTRegistry;
let DODONFTProxyAddress = CONFIG.DODONFTProxy;
let ERC721Address = CONFIG.InitializableERC721;
let ERC1155Address = CONFIG.InitializableERC1155;
let NFTTokenFactoryAddress = CONFIG.NFTTokenFactory;
let MysteryBoxV1Address = CONFIG.MysteryBoxV1;
let RandomGeneratorAddress = CONFIG.RandomGenerator;
let RandomPool = CONFIG.RandomPool;
let DodoNftErc721Address = CONFIG.DodoNftErc721;
let DodoNftErc1155Address = CONFIG.DodoNftErc1155;
let multiSigAddress = CONFIG.multiSigAddress;
let defaultMaintainer = CONFIG.defaultMaintainer;
if (deploySwitch.MYSTERYBOX_V1) {
logger.log("====================================================");
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: FearNFT");
if (RandomGeneratorAddress == "") {
await deployer.deploy(RandomGenerator, RandomPool);
RandomGeneratorAddress = RandomGenerator.address;
logger.log("RandomGeneratorAddress: ", RandomGeneratorAddress);
}
if (MysteryBoxV1Address == "") {
await deployer.deploy(DODODropsV1);
MysteryBoxV1Address = DODODropsV1.address;
logger.log("MysteryBoxV1Address: ", MysteryBoxV1Address);
const MysteryBoxV1Instance = await DODODropsV1.at(MysteryBoxV1Address);
var tx = await MysteryBoxV1Instance.init(
"DODOTest",
"DODOTest",
"",
multiSigAddress,
RandomGeneratorAddress
);
logger.log("Init MysteryBoxV1 Tx:", tx.tx);
}
}
if (deploySwitch.COLLECTIONS) {
logger.log("====================================================");
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: DODO Collections");
//ERC721
if (DodoNftErc721Address == "") {
await deployer.deploy(DodoNftErc721);
DodoNftErc721Address = DodoNftErc721.address;
logger.log("DodoNftErc721Address: ", DodoNftErc721Address);
const DodoNftErc721Instance = await DodoNftErc721.at(DodoNftErc721Address);
var tx = await DodoNftErc721Instance.init(
multiSigAddress,
"DODONFT",
"DODONFT"
);
logger.log("Init DodoNftErc721 Tx:", tx.tx);
}
//ERC1155
if (DodoNftErc1155Address == "") {
await deployer.deploy(DodoNftErc1155);
DodoNftErc1155Address = DodoNftErc1155.address;
logger.log("DodoNftErc1155Address: ", DodoNftErc1155Address);
const DodoNftErc1155Instance = await DodoNftErc1155.at(DodoNftErc1155Address);
var tx = await DodoNftErc1155Instance.initOwner(multiSigAddress);
logger.log("Init DodoNftErc1155 Tx:", tx.tx);
}
}
if (deploySwitch.DEPLOY_NFT) {
logger.log("====================================================");
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: NFT");
logger.log("multiSigAddress: ", multiSigAddress)
//ERC721
if (ERC721Address == "") {
await deployer.deploy(InitializableERC721);
ERC721Address = InitializableERC721.address;
logger.log("ERC721Address: ", ERC721Address);
}
//ERC1155
if (ERC1155Address == "") {
await deployer.deploy(InitializableERC1155);
ERC1155Address = InitializableERC1155.address;
logger.log("ERC1155Address: ", ERC1155Address);
}
//NFTTokenFactory
if (NFTTokenFactoryAddress == "") {
await deployer.deploy(
NFTTokenFactory,
CloneFactoryAddress,
ERC721Address,
ERC1155Address
);
NFTTokenFactoryAddress = NFTTokenFactory.address;
logger.log("NFTTokenFactoryAddress: ", NFTTokenFactoryAddress);
}
//NFTRegister
if (DODONFTRegistryAddress == "") {
await deployer.deploy(DODONFTRegistry);
DODONFTRegistryAddress = DODONFTRegistry.address;
logger.log("DODONFTRegistryAddress: ", DODONFTRegistryAddress);
const DODONFTRegistrynstance = await DODONFTRegistry.at(DODONFTRegistryAddress);
var tx = await DODONFTRegistrynstance.initOwner(multiSigAddress);
logger.log("Init DODONFTRegistryAddress Tx:", tx.tx);
await deployer.deploy(
DODONFTRouteHelper,
DODONFTRegistryAddress
);
DODONFTRouteHelperAddress = DODONFTRouteHelper.address;
logger.log("DODONFTRouteHelperAddress: ", DODONFTRouteHelperAddress);
}
//BuyoutModel
if(BuyoutModelAddress == "") {
await deployer.deploy(BuyoutModel);
BuyoutModelAddress = BuyoutModel.address;
logger.log("BuyoutModelAddress: ", BuyoutModelAddress);
const BuyoutModelInstance = await BuyoutModel.at(BuyoutModelAddress);
var tx = await BuyoutModelInstance.initOwner(multiSigAddress);
logger.log("Init BuyoutModelAddress Tx:", tx.tx);
}
//DODONFTRouteHelper
if (DODONFTRouteHelperAddress == "") {
await deployer.deploy(
DODONFTRouteHelper,
DODONFTRegistryAddress
);
DODONFTRouteHelperAddress = DODONFTRouteHelper.address;
logger.log("DODONFTRouteHelperAddress: ", DODONFTRouteHelperAddress);
}
//Vault
if (NFTCollateralVaultAddress == "") {
await deployer.deploy(NFTCollateralVault);
NFTCollateralVaultAddress = NFTCollateralVault.address;
logger.log("NFTCollateralVaultAddress: ", NFTCollateralVaultAddress);
}
//Frag
if (FragmentAddress == "") {
await deployer.deploy(Fragment);
FragmentAddress = Fragment.address;
logger.log("FragmentAddress: ", FragmentAddress);
}
if (DODONFTProxyAddress == "") {
await deployer.deploy(
DODONFTProxy,
CloneFactoryAddress,
WETHAddress,
DODOApproveProxyAddress,
defaultMaintainer,
BuyoutModelAddress,
MtFeeRateModelAddress,
NFTCollateralVaultAddress,
FragmentAddress,
DVMTemplateAddress,
DODONFTRegistryAddress
);
DODONFTProxyAddress = DODONFTProxy.address;
logger.log("DODONFTProxyAddress: ", DODONFTProxyAddress);
const DODONFTProxyInstance = await DODONFTProxy.at(DODONFTProxyAddress);
var tx = await DODONFTProxyInstance.initOwner(multiSigAddress);
logger.log("Init DODONFTProxyAddress Tx:", tx.tx);
}
if (network == 'kovan' || network == 'rinkeby') {
const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress);
var tx = await DODOApproveProxyInstance.unlockAddProxy(DODONFTProxyAddress);
logger.log("DODOApproveProxy unlockAddProxy tx: ", tx.tx);
tx = await DODOApproveProxyInstance.addDODOProxy();
logger.log("DODOApproveProxy addDODOProxy tx: ", tx.tx);
const DODONFTRegistrynstance = await DODONFTRegistry.at(DODONFTRegistryAddress);
var tx = await DODONFTRegistrynstance.addAdminList(DODONFTProxyAddress);
logger.log("Add AdminList on DODONFTRegistry Tx:", tx.tx);
}
}
};

View File

@@ -0,0 +1,185 @@
const fs = require("fs");
const { deploySwitch } = require('../truffle-config.js')
const file = fs.createWriteStream("../deploy-drops.txt", { 'flags': 'a' });
let logger = new console.Console(file, file);
const { GetConfig } = require("../configAdapter.js")
const DODOApproveProxy = artifacts.require("DODOApproveProxy");
const DropsFeeModel = artifacts.require("DropsFeeModel");
const DropsERC721 = artifacts.require("DropsERC721");
const DropsERC1155 = artifacts.require("DropsERC1155");
const DODODropsProxy = artifacts.require("DODODropsProxy")
const DODODrops = artifacts.require("DODODrops");
const RandomGenerator = artifacts.require("RandomGenerator");
module.exports = async (deployer, network, accounts) => {
let CONFIG = GetConfig(network, accounts)
if (CONFIG == null) return;
//Need Deploy first
let WETHAddress = CONFIG.WETH;
let DODOApproveProxyAddress = CONFIG.DODOApproveProxy;
if (DODOApproveProxyAddress == "" || WETHAddress == "") return;
let DropsFeeModelAddress = CONFIG.DropsFeeModel;
let DropsProxyAddress = CONFIG.DropsProxy;
let RandomGeneratorAddress = CONFIG.RandomGenerator;
let RandomPool = CONFIG.RandomPool;
let multiSigAddress = CONFIG.multiSigAddress;
let defaultMaintainer = CONFIG.defaultMaintainer;
//配置信息
var isProb = false;
var isReveal = false;
var curTime = Math.floor(new Date().getTime() / 1000)
var baseUri = "ipfs://QmTpcX9YE13EcBrU4dg8GNcKXVXTvJaH9MoQzHZYrQtdjk/"
var name = "DROPS"
var symbol = "DROPS"
// var buyToken = CONFIG.DODO //DODO
var buyToken = "0x0aDCBAE18580120667f7Ff6c6451A426B13c67B7" //USDT Rinkeby
var sellTimeIntervals = [curTime + 60 * 60, curTime + 60 * 60 * 24 * 15, curTime + 60 * 60 * 24 * 25]
var sellPrices = ["1000000", "5000000", "0"]
var sellAmount = [500, 606, 0]
var redeemTime = curTime + 60 * 60
var probIntervals = [4, 10, 50, 100, 105]
var tokenIdMaps = [
[0],
[1, 38],
[3, 4, 5],
[6, 7],
[19, 30, 35, 40]
]
var tokenIdList = []
// for (var i = 1; i <= 300; i++) {
// tokenIdList.push(i);
// }
if (deploySwitch.Drops_V2) {
logger.log("====================================================");
logger.log("network type: " + network);
logger.log("Deploy time: " + new Date().toLocaleString());
logger.log("Deploy type: Drops_V2");
if (DropsFeeModelAddress == "") {
await deployer.deploy(DropsFeeModel);
DropsFeeModelAddress = DropsFeeModel.address;
logger.log("DropsFeeModelAddress: ", DropsFeeModelAddress);
const DropsFeeModelInstance = await DropsFeeModel.at(DropsFeeModelAddress);
var tx = await DropsFeeModelInstance.initOwner(multiSigAddress);
logger.log("Init DropsFeeModel Tx:", tx.tx);
}
if (!isReveal) {
if (RandomGeneratorAddress == "") {
await deployer.deploy(RandomGenerator, RandomPool);
RandomGeneratorAddress = RandomGenerator.address;
logger.log("RandomGeneratorAddress: ", RandomGeneratorAddress);
}
} else {
RandomGeneratorAddress = "0x0000000000000000000000000000000000000000"
}
var nftContractAddress = "";
if (isProb) {
await deployer.deploy(DropsERC1155);
DropsERC1155Address = DropsERC1155.address;
logger.log("DropsERC1155Address: ", DropsERC1155Address);
const DropsERC1155Instance = await DropsERC1155.at(DropsERC1155Address);
var tx = await DropsERC1155Instance.init(multiSigAddress, baseUri);
logger.log("Init DropsERC1155 Tx:", tx.tx);
nftContractAddress = DropsERC1155Address;
} else {
await deployer.deploy(DropsERC721);
DropsERC721Address = DropsERC721.address;
logger.log("DropsERC721Address: ", DropsERC721Address);
const DropsERC721Instance = await DropsERC721.at(DropsERC721Address);
var tx = await DropsERC721Instance.init(multiSigAddress, name, symbol, baseUri);
logger.log("Init DropsERC721 Tx:", tx.tx);
nftContractAddress = DropsERC721Address;
}
if (DropsProxyAddress == "") {
await deployer.deploy(
DODODropsProxy,
DODOApproveProxyAddress
);
DropsProxyAddress = DODODropsProxy.address;
logger.log("DropsProxyAddress: ", DropsProxyAddress);
}
await deployer.deploy(DODODrops);
DODODropsAddress = DODODrops.address;
logger.log("DODODropsAddress: ", DODODropsAddress);
//drops init
var addrList = [
multiSigAddress,
buyToken,
DropsFeeModelAddress,
defaultMaintainer,
RandomGeneratorAddress,
nftContractAddress
]
const DODODropsInstance = await DODODrops.at(DODODropsAddress);
var tx = await DODODropsInstance.init(
addrList,
sellTimeIntervals,
sellPrices,
sellAmount,
redeemTime,
isReveal,
isProb
);
logger.log("Init DODODrops Tx:", tx.tx);
if (network == 'kovan' || network == 'rinkeby') {
const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress);
var tx = await DODOApproveProxyInstance.unlockAddProxy(DropsProxyAddress);
logger.log("DODOApproveProxy unlockAddProxy tx: ", tx.tx);
tx = await DODOApproveProxyInstance.addDODOProxy();
logger.log("DODOApproveProxy addDODOProxy tx: ", tx.tx);
if (isProb) {
const DropsERC1155Instance = await DropsERC1155.at(DropsERC1155Address);
var tx = await DropsERC1155Instance.addMintAccount(DODODropsAddress);
logger.log("AddMinter DropsERC1155 Tx:", tx.tx);
await DODODropsInstance.setProbInfo(probIntervals, tokenIdMaps);
} else {
const DropsERC721Instance = await DropsERC721.at(DropsERC721Address);
var tx = await DropsERC721Instance.addMintAccount(DODODropsAddress);
logger.log("AddMinter DropsERC721 Tx:", tx.tx);
for (var i = 1; i <= 300; i++) {
tokenIdList.push(i);
}
await DODODropsInstance.addFixedAmountInfo(tokenIdList);
tokenIdList = []
for (var i = 301; i <= 600; i++) {
tokenIdList.push(i);
}
await DODODropsInstance.addFixedAmountInfo(tokenIdList);
tokenIdList = []
for (var i = 601; i <= 900; i++) {
tokenIdList.push(i);
}
await DODODropsInstance.addFixedAmountInfo(tokenIdList);
tokenIdList = []
for (var i = 901; i <= 1106; i++) {
tokenIdList.push(i);
}
await DODODropsInstance.addFixedAmountInfo(tokenIdList);
}
}
}
};