const BEHero = artifacts.require('tokens/erc721/BEHero') const BEEquipment = artifacts.require('tokens/erc721/BEEquipment') const BECoin = artifacts.require('tokens/erc20/BECoin') const BEGold = artifacts.require('tokens/erc20/BEGold') const BEChip = artifacts.require('tokens/erc1155/BEChip') const BEShard = artifacts.require('tokens/erc1155/BEShard') const MarketPlace = artifacts.require('market/MarketPlace') // const BEBoxMall = artifacts.require('market/BEBoxMall') const MinterFactory = artifacts.require('logic/MinterFactory') const UserMinterFactory = artifacts.require('logic/UserMinterFactory') // const EvolveProxy = artifacts.require('logic/EvolveProxy') const config = require('../config/config') module.exports = async function main(callback) { try { // Our code will go here const accounts = await web3.eth.getAccounts() console.log(accounts) const heroInstance = await BEHero.deployed() const equipInstance = await BEEquipment.deployed() const chipInstance = await BEChip.deployed() const shardInstance = await BEShard.deployed() await heroInstance.updateBaseURI(config.token.baseTokenURI) console.log("BEHero baseURI update success.") await equipInstance.updateBaseURI(config.token.baseTokenURI) console.log("Equip baseURI update success.") const marketInstance = await MarketPlace.deployed() const coinInstance = await BECoin.deployed() if (marketInstance) { await marketInstance.setFeeToAddress(config.market.feeToAddress) await marketInstance.setTransactionFee(400) config.market.paymentTokens.push(coinInstance.address) await marketInstance.setPaymentTokens(config.market.paymentTokens) console.log(`finish update market config`) await heroInstance.addApprovalWhitelist(marketInstance.address) await heroInstance.setApprovalForAll(marketInstance.address, true) console.log('finish heroInstance.addApprovalWhitelist') await equipInstance.addApprovalWhitelist(marketInstance.address) await equipInstance.setApprovalForAll(marketInstance.address, true) console.log('finish equipInstance.addApprovalWhitelist') await chipInstance.grantLockRole(marketInstance.address) await chipInstance.setApprovalForAll(marketInstance.address, true) console.log('finish chipInstance.addApprovalWhitelist') await heroInstance.addApprovalWhitelist(config.admins.admin) await equipInstance.addApprovalWhitelist(config.admins.admin) await chipInstance.grantLockRole(config.admins.admin) await shardInstance.grantLockRole(config.admins.admin) console.log(`Allow operation ${marketInstance.address} to reduce gas fee`) } const factoryInstance = await MinterFactory.deployed() if (!factoryInstance) { console.error('no factoryInstance') return } await factoryInstance.init([ heroInstance.address, equipInstance.address, chipInstance.address, shardInstance.address ]) await factoryInstance.updateExecutor(config.admins.admin) await heroInstance.setMintFactory(factoryInstance.address) await equipInstance.setMintFactory(factoryInstance.address) await chipInstance.setMintFactory(factoryInstance.address) await shardInstance.setMintFactory(factoryInstance.address) console.log( `Allow factory ${factoryInstance.address} to mint contract \n hero: ${heroInstance.address}, \n equip: ${equipInstance.address}, \n chip: ${chipInstance.address}`, ) const userFactoryInstance = await UserMinterFactory.deployed() if (!userFactoryInstance) { console.error('no userFactoryInstance') return } await userFactoryInstance.init([ heroInstance.address, equipInstance.address, chipInstance.address, shardInstance.address, factoryInstance.address ]) // const proxyInstance = await EvolveProxy.deployed() // if (!proxyInstance) { // console.error('no proxyInstance') // return // } // await proxyInstance.init([ // heroInstance.address, // equipInstance.address, // chipInstance.address, // ]) // await heroInstance.setBurnProxy(proxyInstance.address) // await equipInstance.setBurnProxy(proxyInstance.address) // await chipInstance.setBurnProxy(proxyInstance.address) // console.log( // `Allow proxy ${proxyInstance.address} to burn contract \n hero: ${heroInstance.address}, \n equip: ${equipInstance.address}, \n chip: ${chipInstance.address}`, // ) // const boxInstance = await BEBoxMall.deployed() // if (!boxInstance) { // console.error('no boxInstance') // return // } // await boxInstance.setPaymentReceivedAddress(config.market.mallFeeAddress) // console.log( // `update payment received address: ${config.market.mallFeeAddress}`, // ) callback(0) } catch (error) { console.error(error) callback(1) } }