UNPKG

@mstable/protocol

Version:
83 lines 6.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("ts-node/register"); require("tsconfig-paths/register"); const config_1 = require("hardhat/config"); const generated_1 = require("types/generated"); const math_1 = require("@utils/math"); const signerFactory_1 = require("./utils/signerFactory"); const emissions_utils_1 = require("./utils/emissions-utils"); const networkAddressFactory_1 = require("./utils/networkAddressFactory"); const deploy_utils_1 = require("./utils/deploy-utils"); const tokens_1 = require("./utils/tokens"); config_1.task("deploy-emissions-polly", "Deploys L2EmissionsController and L2 Bridge Recipients for Polygon mUSD Vault and FRAX Farm") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const l2EmissionsController = await emissions_utils_1.deployL2EmissionsController(signer, hre); console.log(`Set EmissionsController contract name in networkAddressFactory to ${l2EmissionsController.address}`); const bridgeRecipient = await emissions_utils_1.deployL2BridgeRecipients(signer, hre, l2EmissionsController.address); console.log(`Set PmUSD bridgeRecipient to ${bridgeRecipient.address}`); const disperseForwarder = await emissions_utils_1.deployDisperseForwarder(signer, hre); console.log(`Set PBAL bridgeRecipient to ${disperseForwarder.address}`); }); config_1.task("deploy-emissions") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const emissionsController = await emissions_utils_1.deployEmissionsController(signer, hre); console.log(`Set EmissionsController in the networkAddressFactory to ${emissionsController.address}`); }); config_1.task("deploy-bridge-forwarder", "Deploys a BridgeForwarder contract on mainnet for Polygon dials.") .addParam("token", "Token on the Polygon network that is configured with `bridgeRecipient`. eg mUSD, FRAX, BAL.", undefined, config_1.types.string) .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const chain = networkAddressFactory_1.getChain(hre); const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const l2Chain = chain === tokens_1.Chain.mainnet ? tokens_1.Chain.polygon : tokens_1.Chain.mumbai; const bridgeRecipientAddress = networkAddressFactory_1.resolveAddress(taskArgs.token, l2Chain, "bridgeRecipient"); await emissions_utils_1.deployBridgeForwarder(signer, hre, bridgeRecipientAddress); }); config_1.task("deploy-basic-forwarder", "Deploys a basic rewards forwarder from the emissions controller.") .addParam("recipient", "Contract or EOA that will receive the MTA rewards.", undefined, config_1.types.string) .addOptionalParam("owner", "Contract owner to transfer ownership to after deployment.", undefined, config_1.types.string) .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const chain = networkAddressFactory_1.getChain(hre); const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const emissionsControllerAddress = networkAddressFactory_1.resolveAddress("EmissionsController", chain); await emissions_utils_1.deployBasicForwarder(signer, emissionsControllerAddress, taskArgs.recipient, hre, taskArgs.owner); }); config_1.task("deploy-votium-forwarder", "Deploys a Votium forwarder from the emissions controller.") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const votiumBribeForwarder = await emissions_utils_1.deployVotiumBribeForwarder(signer, hre); console.log(`Set VotiumForwarder contract name in networkAddressFactory to ${votiumBribeForwarder.address}`); }); config_1.task("deploy-revenue-buy-back") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const revenueRecipient = await emissions_utils_1.deployRevenueBuyBack(signer, hre); console.log(`Governor call SavingsManager.setRevenueRecipient to ${revenueRecipient.address} for mUSD and mBTC`); console.log(`Governor call setMassetConfig for mUSD and mBTC`); }); config_1.task("deploy-split-revenue-buy-back") .addOptionalParam("fee", "Portion of revenue to be sent to treasury as a percentage.", 50, config_1.types.int) .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const treasuryFee = math_1.simpleToExactAmount(taskArgs.fee, 16); const revenueRecipient = await emissions_utils_1.deploySplitRevenueBuyBack(signer, hre, treasuryFee); console.log(`Governor call RevenueSplitBuyBack.mapBasset for mUSD and mBTC`); console.log(`Governor call SavingsManager.setRevenueRecipient to ${revenueRecipient.address} for mUSD and mBTC`); }); config_1.task("deploy-mock-root-chain-manager", "Deploys a mocked Polygon PoS Bridge") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); await deploy_utils_1.deployContract(new generated_1.MockRootChainManager__factory(signer), "MockRootChainManager"); }); module.exports = {}; //# sourceMappingURL=deployEmissionsController.js.map