@gooddollar/goodcontracts
Version:
GoodDollar Contracts
47 lines (40 loc) • 1.61 kB
text/typescript
import { ethers, upgrades, network } from "hardhat";
import { networkNames } from "@openzeppelin/upgrades-core";
import { getSettings, releaser } from "../../scripts/getMigrationSettings";
import { fetchOrDeployProxyFactory } from "./fetchOrDeployProxyFactory";
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 main() {
const {
daoAddresses,
modelAddresses,
upgradableAddresses,
founders
} = await getSettings(networkName);
const FuseFaucet = await ethers.getContractFactory("FuseFaucet");
const ProxyFactory = await fetchOrDeployProxyFactory();
let faucet = await upgrades.deployProxy(FuseFaucet, [daoAddresses.Identity], {
kind: "uups"
});
console.log("FuseFaucet deployed to:", faucet.address);
releaser({ FuseFaucet: faucet.address }, networkName);
console.log("Dont forget to top faucet!");
}
async function upgrade() {
console.log("Upgrading...");
const {
daoAddresses,
modelAddresses,
upgradableAddresses,
founders
} = await getSettings(networkName);
console.log({ daoAddresses, modelAddresses, upgradableAddresses, founders });
const FuseFaucet = await ethers.getContractFactory("FuseFaucet");
const faucet = await upgrades.upgradeProxy(upgradableAddresses.FuseStaking, FuseFaucet);
console.log("FuseFaucet upgraded", { faucet });
}
if (process.env.UPGRADE === "true") upgrade().catch(e => console.log(e));
else main().catch(e => console.log(e));