const FT = artifacts.require("tokens/erc20/FT"); const NFT = artifacts.require("tokens/erc20/NFT"); const BENftMarket = artifacts.require("market/BENftMarket"); const BENftMall = artifacts.require("market/BENftMall"); const GameItemMarket = artifacts.require("market/GameItemMarket"); const GameItemMall = artifacts.require("market/GameItemMall"); const config = require("../config/config"); const base = require("../scripts/base"); module.exports = async function main(callback) { try { // Our code will go here const network = this.config.network; let cfgs = base.loadData({ network }); const accounts = await web3.eth.getAccounts(); console.log(accounts); const heroInstance = await NFT.at( cfgs.find((c) => c.name === "HERO").address ); // const equipInstance = await NFT.at( // cfgs.find((c) => c.name === "WEAPON").address // ); // const chipInstance = await NFT.at( // cfgs.find((c) => c.name === "CHIP").address // ); const coinInstance = await FT.at( cfgs.find((c) => c.name === "CEC").address ); const goldInstance = await FT.at( cfgs.find((c) => c.name === "CEG").address ); config.market.paymentTokens.push(coinInstance.address); config.market.paymentTokens.push(goldInstance.address); const marketInstance = await BENftMarket.at( cfgs.find((c) => c.name === "BENftMarket").address ); const ROUND = 1000000; const DECIMALS = 1000000000000000000; if (marketInstance) { await marketInstance.setFeeToAddress(config.market.feeToAddress); console.log( `market receive fee address set to : ${config.market.feeToAddress}` ); await marketInstance.setTaxToAddress(config.market.feeToAddress); console.log( `market receive tax address set to : ${config.market.feeToAddress}` ); await marketInstance.setTransactionFee((3 * ROUND) / 100); await marketInstance.setTransactionTax((1 * ROUND) / 100); await marketInstance.addERC721Support(heroInstance.address); // await marketInstance.addERC721Support(equipInstance.address); // await marketInstance.addERC721Support(chipInstance.address); const maxPrice = web3.utils.toWei("99990000"); const minPrice = web3.utils.toWei("0.01"); await marketInstance.setNFTPriceMaxLimit(heroInstance.address, maxPrice); await marketInstance.setNFTPriceMinLimit(heroInstance.address, minPrice); // await marketInstance.setNFTPriceMaxLimit(equipInstance.address, maxPrice); // await marketInstance.setNFTPriceMinLimit(equipInstance.address, minPrice); // await marketInstance.setNFTPriceMaxLimit(chipInstance.address, maxPrice); // await marketInstance.setNFTPriceMinLimit(chipInstance.address, minPrice); for (let token of config.market.paymentTokens) { await marketInstance.addERC20Support(token); console.log(`add token for market payment: ${token}`); } console.log(`finish update market config`); } const gameMallInstance = await GameItemMall.at( cfgs.find((c) => c.name === "GameItemMall").address ); if (gameMallInstance) { await gameMallInstance.setFeeToAddress(config.market.feeToAddress); console.log( `mall receive fee address set to : ${config.market.feeToAddress}` ); await gameMallInstance.updateExecutor(config.admins.admin); console.log(`mall executor set to : ${config.admins.admin}`); for (let token of config.market.paymentTokens) { await gameMallInstance.addERC20Support(token); console.log(`add token for mall payment: ${token}`); } } const gameMarketInstance = await GameItemMarket.at( cfgs.find((c) => c.name === "GameItemMarket").address ); if (gameMarketInstance) { await gameMarketInstance.setFeeToAddress(config.market.feeToAddress); console.log( `mall receive fee address set to : ${config.market.feeToAddress}` ); await gameMarketInstance.updateExecutor(config.admins.admin); console.log(`mall executor set to : ${config.admins.admin}`); for (let token of config.market.paymentTokens) { await gameMarketInstance.addERC20Support(token); console.log(`add token for mall payment: ${token}`); } } const nftMallInstance = await BENftMall.at( cfgs.find((c) => c.name === "BENftMall").address ); if (nftMallInstance) { await nftMallInstance.setFeeToAddress(config.market.feeToAddress); console.log( `nft mall receive fee address set to : ${config.market.feeToAddress}` ); await nftMallInstance.updateExecutor(config.admins.admin); console.log(`mall executor set to : ${config.admins.admin}`); for (let token of config.market.paymentTokens) { await nftMallInstance.addERC20Support(token); console.log(`add token for mall payment: ${token}`); } await nftMallInstance.addERC721Support(heroInstance.address); console.log(`add token for mall sell: ${heroInstance.address}`); // await nftMallInstance.addERC721Support(equipInstance.address); // console.log(`add token for mall sell: ${equipInstance.address}`); // await nftMallInstance.addERC721Support(chipInstance.address); // console.log(`add token for mall sell: ${chipInstance.address}`); await heroInstance.setMintRole(nftMallInstance.address); // await equipInstance.setMintRole(nftMallInstance.address); // await chipInstance.setMintRole(nftMallInstance.address); const testHeroInstance = await NFT.at( cfgs.find((c) => c.name === "TestHERO").address ); await nftMallInstance.addERC721Support(testHeroInstance.address); await testHeroInstance.setMintRole(nftMallInstance.address); } callback(0); } catch (error) { console.error(error); callback(1); } };