UNPKG

@mstable/protocol

Version:
85 lines 4.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = __importDefault(require("axios")); const config_1 = require("hardhat/config"); const generated_1 = require("types/generated"); const signerFactory_1 = require("./utils/signerFactory"); const deploy_utils_1 = require("./utils/deploy-utils"); const networkAddressFactory_1 = require("./utils/networkAddressFactory"); config_1.task("eject-stakers", "Ejects expired stakers from Meta staking contract (vMTA)") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "average", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const chain = networkAddressFactory_1.getChain(hre); const ejectorAddress = networkAddressFactory_1.getChainAddress("Ejector", chain); console.log(`Ejector address ${ejectorAddress}`); const ejector = generated_1.IEjector__factory.connect(ejectorAddress, signer); // TODO check the last time the eject was run // Check it's been more than 7 days since the last eject has been run // get stakers from API const response = await axios_1.default.get("https://api-dot-mstable.appspot.com/stakers"); const stakers = response.data.ejected; if (stakers.length === 0) { console.error(`No stakers to eject`); process.exit(0); } console.log(`${stakers.length} stakers to be ejected: ${stakers}`); const tx = await ejector.ejectMany(stakers); await deploy_utils_1.logTxDetails(tx, "ejectMany"); }); config_1.subtask("vmta-expire", "Expire old staking V1 contract") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "average", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const chain = networkAddressFactory_1.getChain(hre); const vmtaAddress = networkAddressFactory_1.resolveAddress("vMTA", chain); const vmta = generated_1.IncentivisedVotingLockup__factory.connect(vmtaAddress, signer); const tx = await vmta.expireContract(); await deploy_utils_1.logTxDetails(tx, "Expire old V1 MTA staking contract"); }); config_1.task("vmta-expire").setAction(async (_, __, runSuper) => { await runSuper(); }); config_1.subtask("vmta-withdraw", "Withdraw MTA from old Staking V1 contract") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "average", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed, false); const chain = networkAddressFactory_1.getChain(hre); const vmtaAddress = networkAddressFactory_1.resolveAddress("vMTA", chain); const vmta = generated_1.IncentivisedVotingLockup__factory.connect(vmtaAddress, signer); const tx = await vmta.withdraw(); await deploy_utils_1.logTxDetails(tx, "Withdraw MTA from Staking V1 contract"); }); config_1.task("vmta-withdraw").setAction(async (_, __, runSuper) => { await runSuper(); }); config_1.subtask("vmta-claim", "Claim MTA from old Staking V1 contract") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "average", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed, false); const chain = networkAddressFactory_1.getChain(hre); const vmtaAddress = networkAddressFactory_1.resolveAddress("vMTA", chain); const vmta = generated_1.IncentivisedVotingLockup__factory.connect(vmtaAddress, signer); const tx = await vmta.claimReward(); await deploy_utils_1.logTxDetails(tx, "Claim MTA from old Staking V2 contract"); }); config_1.task("vmta-claim").setAction(async (_, __, runSuper) => { await runSuper(); }); config_1.subtask("vmta-exit", "Withdraw and claim MTA from old Staking V1 contract") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "average", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed, false); const chain = networkAddressFactory_1.getChain(hre); const vmtaAddress = networkAddressFactory_1.resolveAddress("vMTA", chain); const vmta = generated_1.IncentivisedVotingLockup__factory.connect(vmtaAddress, signer); const tx = await vmta.exit(); await deploy_utils_1.logTxDetails(tx, "Withdraw and claim MTA from old Staking V2 contract"); }); config_1.task("vmta-exit").setAction(async (_, __, runSuper) => { await runSuper(); }); //# sourceMappingURL=stakingV1.js.map