125 lines
4.9 KiB
JavaScript
125 lines
4.9 KiB
JavaScript
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 BEChip1155 = artifacts.require('tokens/erc1155/BEChip1155')
|
|
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 EvolveFactory = artifacts.require('logic/EvolveFactory')
|
|
|
|
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 BEChip1155.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.grantLockRole(marketInstance.address)
|
|
await heroInstance.setApprovalForAll(marketInstance.address, true)
|
|
console.log('finish heroInstance.addApprovalWhitelist')
|
|
await equipInstance.grantLockRole(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.grantLockRole(config.admins.admin)
|
|
await equipInstance.grantLockRole(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 factoryInstance.addApprovalList(userFactoryInstance.address);
|
|
await userFactoryInstance.init([
|
|
heroInstance.address,
|
|
equipInstance.address,
|
|
chipInstance.address,
|
|
shardInstance.address,
|
|
factoryInstance.address
|
|
])
|
|
// const proxyInstance = await EvolveFactory.deployed()
|
|
// if (!proxyInstance) {
|
|
// console.error('no proxyInstance')
|
|
// return
|
|
// }
|
|
// await proxyInstance.init([
|
|
// heroInstance.address,
|
|
// equipInstance.address,
|
|
// chipInstance.address,
|
|
// ])
|
|
// await heroInstance.grantBurnRole(proxyInstance.address)
|
|
// await equipInstance.grantBurnRole(proxyInstance.address)
|
|
// await chipInstance.grantBurnRole(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)
|
|
}
|
|
}
|