@cartesi/staking-pool
Version:
PoS Staking Pools
47 lines (46 loc) • 1.52 kB
JavaScript
;
// Copyright 2022 Cartesi Pte. Ltd.
Object.defineProperty(exports, "__esModule", { value: true });
const ens_1 = require("@ethereum-waffle/ens");
const MINUTE = 60; // seconds in a minute
const HOUR = 60 * MINUTE; // seconds in an hour
const func = async (hre) => {
const { deployments, ethers } = hre;
const { deploy } = deployments;
const { CartesiToken, StakingImpl, WorkerManagerAuthManagerImpl } = await deployments.all();
const [deployer] = await ethers.getSigners();
const ethNetwork = await ethers.getDefaultProvider().getNetwork();
let ensAddress;
if (hre.network.name != "hardhat")
ensAddress = ethNetwork.ensAddress;
else {
const ensSvc = await (0, ens_1.deployENS)(deployer);
await ensSvc.createTopLevelDomain("test");
ensAddress = ensSvc.ens.address;
}
let stakeLock;
switch (hre.network.name) {
case "mainnet":
case "ropsten":
stakeLock = 6 * HOUR;
break;
case "hardhat":
default:
stakeLock = 2 * MINUTE;
}
// deploy reference pool
await deploy("StakingPoolImpl", {
args: [
CartesiToken.address,
StakingImpl.address,
WorkerManagerAuthManagerImpl.address,
ensAddress,
stakeLock,
],
from: deployer.address,
log: true,
});
};
func.tags = ["Pool"];
func.dependencies = ["Token", "Staking", "WorkerManagerAuthManager"];
exports.default = func;