UNPKG

@gooddollar/goodcontracts

Version:
84 lines (77 loc) 2.63 kB
import { ethers, upgrades, network } from "hardhat"; import { networkNames } from "@openzeppelin/upgrades-core"; import { getSettings, releaser } from "../../scripts/getMigrationSettings"; console.log({ networkNames, network: network.name, upgrade: process.env.UPGRADE }); const { name: networkName } = network; networkNames[1] = networkName; networkNames[122] = networkName; networkNames[3] = networkName; async function deploy() { const { daoAddresses, modelAddresses, upgradableAddresses, founders } = await getSettings(networkName); const FStaking = await ethers.getContractFactory("FuseStakingV3"); const fstaking = await upgrades.deployProxy(FStaking, [], { kind: "transparent" }); const deployed = await fstaking.deployed(); console.log("FuseStakig deployed to:", fstaking.address); releaser({ FuseStaking: fstaking.address }, networkName); console.log("setting defaults...", { gd: daoAddresses.GoodDollar, ubi: modelAddresses.UBIScheme }); await deployed.upgrade1( daoAddresses.GoodDollar, modelAddresses.UBIScheme, "0x0000000000000000000000000000000000000000" ); } async function upgrade() { console.log("Upgrading..."); const { daoAddresses, modelAddresses, upgradableAddresses, founders } = await getSettings(networkName); console.log({ daoAddresses, modelAddresses, upgradableAddresses, founders }); const FStakingV3 = await ethers.getContractFactory("FuseStakingV3"); const staking = await upgrades.upgradeProxy( upgradableAddresses.FuseStaking, FStakingV3 ); // staking.upgrade1(daoAddresses.GoodDollar, modelAddresses.UBIScheme); console.log("Fusestaking upgraded", { staking: staking.address }); await staking.upgrade3(); } async function upgradeByAvatar() { const { daoAddresses, modelAddresses, upgradableAddresses, founders } = await getSettings(networkName); const FStakingV3 = await ethers.getContractFactory("FuseStakingV3"); const impl = await FStakingV3.deploy(); console.log("new impl at:", impl.address); const upgradeScheme = await ( await ethers.getContractFactory("UpgradeImplScheme.sol") ).deploy( daoAddresses.Avatar, impl.address, upgradableAddresses.FuseStaking, "0x57179b2A8eB019157b0C3E761cdB26c82C982a3B", "", 0 ); console.log("scheme at:", upgradeScheme.address); } async function main() { const { upgradableAddresses } = await getSettings(networkName); if (process.env.FORCE === "true" || upgradableAddresses.FuseStaking == null) { return deploy(); } else return upgrade(); } main().catch(e => console.log(e));