import {HardhatRuntimeEnvironment} from "hardhat/types"; import {DeployFunction} from "hardhat-deploy/types"; import {deplayOne, loadData} from "../scripts/utils"; import {ZeroAddress} from "ethers"; import { assert } from "chai"; import { expandDecimals } from "../test/shared/utilities"; const deployNFTClaim: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const config = require(`../config/config_${hre.network.name}`); const {cec, rewardPerSecond, vestingDuration} = config.staking; const datas = loadData({ network: hre.network.name }); const esCEC = datas.find((item: any) => item.name === "esCEC"); const vester = datas.find((item: any) => item.name === "vester"); assert(esCEC, "esCEC not found"); assert(vester, "vester not found"); const stakedCecTracker = await deplayOne({ hre, name: "stakedEsCecTracker", type: "logic", contractName: "RewardTracker", args: [esCEC.address, esCEC.address, rewardPerSecond, 18], verify: true, }); const rewardRouter = await deplayOne({ hre, name: "stakedEsCecRouter", type: "logic", contractName: "RewardRouter", args: [esCEC.address, stakedCecTracker.address, ZeroAddress], verify: true, }); const stakedCecTrackerContract = await hre.ethers.getContractAt("RewardTracker", stakedCecTracker.address); let tx = await stakedCecTrackerContract.setInPrivateStakingMode(true); await tx.wait(); console.log("==stakedEsCecTrackerContract setInPrivateStakingMode"); tx = await stakedCecTrackerContract.setHandler(rewardRouter.address, true); await tx.wait(); console.log("==stakedEsCecTrackerContract setHandler"); const esCECContract = await hre.ethers.getContractAt("EsToken", esCEC.address); // 添加转账白名单 tx = await esCECContract.setHandler(stakedCecTracker.address, true); await tx.wait(); console.log("==esCECContract setHandler"); const vesterContract = await hre.ethers.getContractAt("Vester", vester.address); tx = await vesterContract.setRewardTrackerEsCEC(stakedCecTracker.address); await tx.wait(); console.log("==vesterContract setRewardTrackerEsCEC"); tx = await esCECContract.mint(stakedCecTracker.address, expandDecimals(5000000000, 18)); await tx.wait(); console.log("==esCECContract mint"); }; deployNFTClaim.tags = ["StakingEsCEC"]; export default deployNFTClaim;