const Hero = artifacts.require('tokens/erc721/BEHero') const Equip = artifacts.require('tokens/erc721/BEEquipment') const Coin = artifacts.require('tokens/erc20/BECoin') const Gold = artifacts.require('tokens/erc20/BEGold') const Chip = artifacts.require('tokens/erc1155/BEChip') const Shard = artifacts.require('tokens/erc1155/BEShard') const MarketPlace = artifacts.require('market/MarketPlace') const Box = artifacts.require('market/BEBoxMall') const Factory = artifacts.require('logic/MinterFactory') 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 Hero.deployed() const equipInstance = await Equip.deployed() const chipInstance = await Chip.deployed() const shardInstance = await Shard.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() const coinInstance = await Coin.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 Factory.deployed() if (!factoryInstance) { console.error('no factoryInstance') return } await factoryInstance.init([ heroInstance.address, equipInstance.address, chipInstance.address, shardInstance.address ]) 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 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 Box.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) } }