35 lines
1.3 KiB
JavaScript
35 lines
1.3 KiB
JavaScript
const BricksFactory = artifacts.require('logic/GoldBricksFactory');
|
|
const NFT = artifacts.require("tokens/erc721/NFT");
|
|
const base = require("../scripts/base");
|
|
|
|
module.exports = async function (deployer, network, accounts) {
|
|
const config = require(`../config/config_${network}`);
|
|
let cfgs = base.loadData({ network });
|
|
const brickAddress = cfgs.find((c) => c.name === "GoldBrick").address
|
|
await deployer.deploy(BricksFactory);
|
|
const factoryInstance = await BricksFactory.deployed();
|
|
if(!factoryInstance) {
|
|
return console.log("BricksFactory deploy failed.")
|
|
}
|
|
console.log("BricksFactory successfully deployed.")
|
|
base.updateArray({
|
|
name: "GoldBricksFactory",
|
|
type: "logic",
|
|
json: "assets/contracts/GoldBricksFactory.json",
|
|
address: factoryInstance.address,
|
|
network,
|
|
});
|
|
|
|
try {
|
|
const brickInstance = await NFT.at(brickAddress);
|
|
await brickInstance.setMintRole(factoryInstance.address);
|
|
console.log(`success set mint role for: ${brickInstance.address}`)
|
|
await factoryInstance.updateExecutor(config.admins.admin);
|
|
console.log(`success update executor for: ${factoryInstance.address}`)
|
|
await factoryInstance.addTokenSupport(brickAddress);
|
|
console.log(`success add token support for: ${factoryInstance.address}`)
|
|
} catch (err) {
|
|
console.log(err);
|
|
}
|
|
}
|