UNPKG

@dydxfoundation/governance

Version:
33 lines (32 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSafetyModuleCompensationProposal = void 0; const types_1 = require("../../types"); const deploy_config_1 = require("../deploy-config"); const get_deployer_address_1 = require("../deploy-config/get-deployer-address"); const hre_1 = require("../hre"); const logging_1 = require("../lib/logging"); const util_1 = require("../lib/util"); async function createSafetyModuleCompensationProposal({ proposalIpfsHashHex, dydxTokenAddress, governorAddress, shortTimelockAddress, rewardsTreasuryAddress, safetyModuleRecoveryAddress, signer, }) { const hre = (0, hre_1.getHre)(); const deployConfig = (0, deploy_config_1.getDeployConfig)(); const deployer = signer || await (0, get_deployer_address_1.getDeployerSigner)(); const deployerAddress = deployer.address; (0, logging_1.log)(`Creating proposal to fund the safety module recovery contract, with proposer ${deployerAddress}\n`); const governor = await new types_1.DydxGovernor__factory(deployer).attach(governorAddress); const proposalId = await governor.getProposalsCount(); const proposal = [ shortTimelockAddress, [rewardsTreasuryAddress], ['0'], ['transfer(address,address,uint256)'], [hre.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'], [dydxTokenAddress, safetyModuleRecoveryAddress, deployConfig.SM_RECOVERY_OWED_AMOUNT])], [false], proposalIpfsHashHex, ]; await (0, util_1.waitForTx)(await governor.create(...proposal)); return { proposalId, }; } exports.createSafetyModuleCompensationProposal = createSafetyModuleCompensationProposal;