UNPKG

@vechain/vebetterdao-contracts

Version:

Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.

39 lines (38 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.navigatorRegistryLibraries = void 0; const hardhat_1 = require("hardhat"); const navigatorRegistryLibraries = async (logOutput = false) => { const deploy = async (name, libraries) => { const Factory = await hardhat_1.ethers.getContractFactory(name, libraries ? { libraries } : undefined); const lib = await Factory.deploy(); await lib.waitForDeployment(); logOutput && console.log(`${name} Library deployed`); return lib; }; // LifecycleUtils must be deployed first — DelegationUtils depends on it const NavigatorLifecycleUtils = await deploy("NavigatorLifecycleUtils"); const lifecycleAddr = await NavigatorLifecycleUtils.getAddress(); // DelegationUtils depends on LifecycleUtils; StakingUtils and SlashingUtils depend on DelegationUtils const NavigatorDelegationUtils = await deploy("NavigatorDelegationUtils", { "contracts/navigator/libraries/NavigatorLifecycleUtils.sol:NavigatorLifecycleUtils": lifecycleAddr, }); const delegationAddr = await NavigatorDelegationUtils.getAddress(); const NavigatorStakingUtils = await deploy("NavigatorStakingUtils", { "contracts/navigator/libraries/NavigatorDelegationUtils.sol:NavigatorDelegationUtils": delegationAddr, }); const NavigatorSlashingUtils = await deploy("NavigatorSlashingUtils", { "contracts/navigator/libraries/NavigatorDelegationUtils.sol:NavigatorDelegationUtils": delegationAddr, }); const NavigatorVotingUtils = await deploy("NavigatorVotingUtils"); const NavigatorFeeUtils = await deploy("NavigatorFeeUtils"); return { NavigatorStakingUtils, NavigatorDelegationUtils, NavigatorVotingUtils, NavigatorFeeUtils, NavigatorSlashingUtils, NavigatorLifecycleUtils, }; }; exports.navigatorRegistryLibraries = navigatorRegistryLibraries;