123 lines
4.9 KiB
JavaScript
123 lines
4.9 KiB
JavaScript
const FT = artifacts.require("tokens/erc20/FT");
|
|
const NFT = artifacts.require("tokens/erc20/NFT");
|
|
const MarketPlace = artifacts.require("market/BENFTMarket");
|
|
const UserMinterFactory = artifacts.require("logic/UserMinterFactory");
|
|
|
|
const config = require("../config/config");
|
|
const base = require("../scripts/base");
|
|
|
|
module.exports = async function main(callback) {
|
|
try {
|
|
// Our code will go here
|
|
const network = "arbitrum_testnet";
|
|
let cfgs = base.loadData({ network });
|
|
const accounts = await web3.eth.getAccounts();
|
|
console.log(accounts);
|
|
|
|
const heroInstance = await NFT.at(
|
|
cfgs.find((c) => c.name === "HERO").address
|
|
);
|
|
const equipInstance = await NFT.at(
|
|
cfgs.find((c) => c.name === "WEAPON").address
|
|
);
|
|
const chipInstance = await NFT.at(
|
|
cfgs.find((c) => c.name === "CHIP").address
|
|
);
|
|
|
|
const coinInstance = await FT.at(
|
|
cfgs.find((c) => c.name === "CEC").address
|
|
);
|
|
const goldInstance = await FT.at(
|
|
cfgs.find((c) => c.name === "CEG").address
|
|
);
|
|
|
|
// const usdtInstance = await await FT.at(
|
|
// cfgs.find((c) => c.name === "BEUSDT").address
|
|
// );
|
|
config.market.paymentTokens.push(coinInstance.address);
|
|
config.market.paymentTokens.push(goldInstance.address);
|
|
// config.market.paymentTokens.push(usdtInstance.address);
|
|
|
|
// 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.at(
|
|
cfgs.find((c) => c.name === "BENFTMarket").address
|
|
);
|
|
const ROUND = 1000000;
|
|
const DECIMALS = 1000000000000000000;
|
|
if (marketInstance) {
|
|
await marketInstance.setFeeToAddress(config.market.feeToAddress);
|
|
console.log(
|
|
`market receive fee address set to : ${config.market.feeToAddress}`
|
|
);
|
|
await marketInstance.setTransactionFee((4 * ROUND) / 100);
|
|
await marketInstance.addERC721Support(heroInstance.address);
|
|
await marketInstance.addERC721Support(equipInstance.address);
|
|
await marketInstance.addERC721Support(chipInstance.address);
|
|
|
|
const maxPrice = web3.utils.toWei("99990000");
|
|
const minPrice = web3.utils.toWei("0.01");
|
|
await marketInstance.setNFTPriceMaxLimit(heroInstance.address, maxPrice);
|
|
await marketInstance.setNFTPriceMinLimit(heroInstance.address, minPrice);
|
|
await marketInstance.setNFTPriceMaxLimit(equipInstance.address, maxPrice);
|
|
await marketInstance.setNFTPriceMinLimit(equipInstance.address, minPrice);
|
|
await marketInstance.setNFTPriceMaxLimit(chipInstance.address, maxPrice);
|
|
await marketInstance.setNFTPriceMinLimit(chipInstance.address, minPrice);
|
|
for (let token of config.market.paymentTokens) {
|
|
await marketInstance.addERC20Support(token);
|
|
console.log(`add token for market payment: ${token}`);
|
|
}
|
|
|
|
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);
|
|
// console.log(
|
|
// `Allow operation ${marketInstance.address} to reduce gas fee`
|
|
// );
|
|
}
|
|
|
|
const factoryInstance = await await UserMinterFactory.at(
|
|
cfgs.find((c) => c.name === "UserMinterFactory").address
|
|
);
|
|
|
|
if (!factoryInstance) {
|
|
console.error("no factoryInstance");
|
|
return;
|
|
}
|
|
|
|
await factoryInstance.updateExecutor(config.admins.admin);
|
|
await heroInstance.setMintRole(factoryInstance.address);
|
|
await equipInstance.setMintRole(factoryInstance.address);
|
|
await chipInstance.setMintRole(factoryInstance.address);
|
|
|
|
await factoryInstance.addTokenSupport(heroInstance.address);
|
|
await factoryInstance.addTokenSupport(equipInstance.address);
|
|
await factoryInstance.addTokenSupport(chipInstance.address);
|
|
|
|
console.log(
|
|
`Allow factory ${factoryInstance.address} to mint contract \n hero: ${heroInstance.address}, \n equip: ${equipInstance.address}, \n chip: ${chipInstance.address}`
|
|
);
|
|
|
|
callback(0);
|
|
} catch (error) {
|
|
console.error(error);
|
|
callback(1);
|
|
}
|
|
};
|