const MarketPlace = artifacts.require('MarketPlace'); const Factory = artifacts.require('MinterFactory'); const EvolveProxy = artifacts.require('EvolveProxy'); const Box = artifacts.require('BEBoxMall'); const Hero = artifacts.require('BEHero'); const Equip = artifacts.require('BEEquipment'); const Chip = artifacts.require('BEChip'); const Coin = artifacts.require('BECoin'); const config = require("../config/config"); module.exports = async function (deployer, network, accounts) { const heroInstance = await Hero.deployed(); const equipInstance = await Equip.deployed(); const chipInstance = await Chip.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.") await chipInstance.updateBaseURI(config.token.baseTokenURI) console.log("Chip baseURI update success.") const marketInstance = await MarketPlace.deployed(); if(marketInstance) { await marketInstance.setFeeToAddress(config.market.feeToAddress); await marketInstance.setTransactionFee(400); const coinInstance = await Coin.deployed(); config.market.paymentTokens.push(coinInstance.address); await marketInstance.setPaymentTokens(config.market.paymentTokens); await heroInstance.addApprovalWhitelist(marketInstance.address); await heroInstance.setApprovalForAll(marketInstance.address); await equipInstance.addApprovalWhitelist(marketInstance.address); await equipInstance.setApprovalForAll(marketInstance.address); await chipInstance.addApprovalWhitelist(marketInstance.address); await chipInstance.setApprovalForAll(marketInstance.address); console.log( `Allow operation ${marketInstance.address} to reduce gas fee` ); } const factoryInstance = await Factory.deployed(); if(factoryInstance) { await factoryInstance.init([ heroInstance.address, equipInstance.address, chipInstance.address ]) await heroInstance.setMintFactory(factoryInstance.address); await equipInstance.setMintFactory(factoryInstance.address); await chipInstance.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 proxyInstance = await EvolveProxy.deployed(); if(proxyInstance) { 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 Box.deployed(); if(boxInstance) { await boxInstance.setPaymentReceivedAddress(config.market.mallFeeAddress); console.log( `update payment received address: ${config.market.mallFeeAddress}` ); } }