@dydxfoundation/governance
Version:
dYdX governance smart contracts
35 lines (34 loc) • 2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.deployMocks = void 0;
const MintableERC20__factory_1 = require("../../../types/factories/MintableERC20__factory");
const MockStarkPerpetual__factory_1 = require("../../../types/factories/MockStarkPerpetual__factory");
const config_1 = __importDefault(require("../../config"));
const get_deployer_address_1 = require("../../deploy-config/get-deployer-address");
const constants_1 = require("../../lib/constants");
const logging_1 = require("../../lib/logging");
const util_1 = require("../../lib/util");
async function deployMocks() {
(0, logging_1.log)('Beginning deployment of mock contracts.\n');
if (!config_1.default.isHardhat() || config_1.default.FORK_MAINNET) {
throw new Error('Can only deploy mock contracts on Hardhat network.');
}
const deployer = await (0, get_deployer_address_1.getDeployerSigner)();
const deployerAddress = deployer.address;
(0, logging_1.log)(`Beginning deployment of mock contracts with deployer ${deployerAddress}.\n`);
const mockDydxCollateralToken = await new MintableERC20__factory_1.MintableERC20__factory(deployer)
.deploy('Mock DYDX Collateral Token', 'MOCK_USDC', constants_1.USDC_TOKEN_DECIMALS);
const mockStarkPerpetual = await new MockStarkPerpetual__factory_1.MockStarkPerpetual__factory(deployer)
.deploy(mockDydxCollateralToken.address);
await (0, util_1.waitForTx)(await mockDydxCollateralToken.mint(deployerAddress, constants_1.MAX_UINT_AMOUNT));
(0, logging_1.log)(`Minting max DYDX collateral token to ${deployerAddress}.\n`);
(0, logging_1.log)('\n=== MOCK CONTRACT DEPLOYMENT COMPLETE ===\n');
return {
dydxCollateralToken: mockDydxCollateralToken,
starkPerpetual: mockStarkPerpetual,
};
}
exports.deployMocks = deployMocks;