UNPKG

@mstable/protocol

Version:
91 lines 5.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable no-restricted-syntax */ const math_1 = require("@utils/math"); const config_1 = require("hardhat/config"); const generated_1 = require("types/generated"); const Comptroller__factory_1 = require("types/generated/factories/Comptroller__factory"); const _20210817_json_1 = __importDefault(require("./balancer-mta-rewards/20210817.json")); const utils_1 = require("./utils"); const snap_utils_1 = require("./utils/snap-utils"); const signerFactory_1 = require("./utils/signerFactory"); const networkAddressFactory_1 = require("./utils/networkAddressFactory"); config_1.task("sum-rewards", "Totals the rewards in a disperse json file") .addOptionalParam("speed", "Defender Relayer speed param: 'safeLow' | 'average' | 'fast' | 'fastest'", "fast", config_1.types.string) .setAction(async () => { let total = math_1.BN.from(0); let count = 0; const rewardsSorted = Object.fromEntries(Object.entries(_20210817_json_1.default).sort(([, a], [, b]) => parseFloat(a) - parseFloat(b))); for (const [address, amount] of Object.entries(rewardsSorted)) { total = total.add(math_1.simpleToExactAmount(amount)); count += 1; console.log(`address ${address} ${amount}`); } console.log(`Total ${utils_1.usdFormatter(total)}`); console.log(`Count ${count}`); }); config_1.subtask("rewards", "Get Compound and Aave platform reward tokens") .addOptionalParam("block", "Block number to compare rates at. (default: current block)", 0, config_1.types.int) .setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const block = await snap_utils_1.getBlock(hre.ethers, taskArgs.block); console.log(`\nGetting platform tokens at block ${block.blockNumber}, ${block.blockTime}`); await snap_utils_1.getCompTokens(signer, block); await snap_utils_1.getAaveTokens(signer, block); await snap_utils_1.getAlcxTokens(signer, block); }); config_1.task("rewards").setAction(async (_, __, runSuper) => { await runSuper(); }); config_1.subtask("collect-interest-dist", "Collects and distributes mAsset interest").setAction(async (taskArgs, hre) => { const signer = await signerFactory_1.getSigner(hre, taskArgs.speed); const chain = networkAddressFactory_1.getChain(hre); const collector = generated_1.Collector__factory.connect(networkAddressFactory_1.resolveAddress("Collector", chain), signer); const tx = await collector.distributeInterest([utils_1.mUSD.address, utils_1.mBTC.address], false); await utils_1.logTxDetails(tx, `collect fees from mUSD and mBTC`); }); config_1.task("collect-interest-dist").setAction(async (_, __, runSuper) => { await runSuper(); }); config_1.task("claim-comp", "Claimed COMP from USDC deposits to Treasury") .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 chain = networkAddressFactory_1.getChain(hre); const compControllerAddress = networkAddressFactory_1.resolveAddress("CompController", chain); const compController = Comptroller__factory_1.Comptroller__factory.connect(compControllerAddress, signer); const tx1 = await compController["claimComp(address,address[])"](utils_1.USDC.integrator, [utils_1.USDC.liquidityProvider]); const receipt = await utils_1.logTxDetails(tx1, "claim COMP"); // Transfer topic const event = receipt.events.find((e) => e.topics[0] === "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"); console.log(`Claimed ${utils_1.usdFormatter(math_1.BN.from(event.data))} COMP`); const unliquidatorAddress = networkAddressFactory_1.resolveAddress("Unliquidator"); const unliquidator = generated_1.Unliquidator__factory.connect(unliquidatorAddress, signer); const tx2 = await unliquidator.distributeRewards(utils_1.USDC.integrator, utils_1.COMP.address); await utils_1.logTxDetails(tx2, "claimed COMP to treasury"); }); config_1.task("claim-comp").setAction(async (_, __, runSuper) => { await runSuper(); }); config_1.task("claim-aave", "Call liquidator to claim stkAAVE") .addOptionalParam("basset", "Symbol of bAsset in AAVE. eg USDT, WBTC, BUSD or RAI", "USDT", config_1.types.string) .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 chain = networkAddressFactory_1.getChain(hre); const basset = networkAddressFactory_1.resolveToken(taskArgs.basset, chain); const liquidatorAddress = await networkAddressFactory_1.resolveAddress("Unliquidator", chain); const unliquidator = generated_1.Unliquidator__factory.connect(liquidatorAddress, signer); const tx = await unliquidator.claimAndDistributeRewards(basset.integrator, utils_1.stkAAVE.address); const receipt = await utils_1.logTxDetails(tx, `claim stkAAVE from ${taskArgs.basset} integration`); // Transfer topic const event = receipt.events.find((e) => e.topics[0] === "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"); console.log(`Claimed ${utils_1.usdFormatter(math_1.BN.from(event.data))} stkAAVE from ${basset.integrator} integration`); }); config_1.task("claim-aave").setAction(async (_, __, runSuper) => { await runSuper(); }); //# sourceMappingURL=rewards.js.map