becrypto/migrations/11_update_nft_setting.js
2022-04-18 21:15:00 +08:00

119 lines
5.1 KiB
JavaScript

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 Gold = artifacts.require('BEGold');
// const TimelockController = artifacts.require('BETimelockController');
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();
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.addApprovalWhitelist(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.addApprovalWhitelist(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
])
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) {
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}`
);
const goldInstance = await Gold.deployed();
let jsons = []
jsons.push({name: 'coin', json: 'assets/contracts/BECoin.json', address: coinInstance.address})
jsons.push({name: 'gold', json: 'assets/contracts/BEGold.json', address: goldInstance.address})
jsons.push({name: 'hero', json: 'assets/contracts/BEHero.json', address: heroInstance.address})
jsons.push({name: 'equip', json: 'assets/contracts/BEEquipment.json', address: equipInstance.address})
jsons.push({name: 'chip', json: 'assets/contracts/BEChip.json', address: chipInstance.address})
jsons.push({name: 'factory', json: 'assets/contracts/MinterFactory.json', address: factoryInstance.address})
jsons.push({name: 'market', json: 'assets/contracts/MarketPlace.json', address: marketInstance.address})
jsons.push({name: 'mall', json: 'assets/contracts/BEBoxMall.json', address: boxInstance.address})
jsons.push({name: 'proxy', json: 'assets/contracts/EvolveProxy.json', address: proxyInstance.address})
// jsons.push({name: 'luckbox', json: 'assets/contracts/BELuckyBox.json', address: luckyBoxInstance.address})
// jsons.push({name: 'boxproxy', json: 'assets/contracts/LuckyBoxProxy.json', address: boxProxyInstance.address})
console.log(JSON.stringify(jsons));
}