UNPKG

@vechain/vebetterdao-contracts

Version:

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

57 lines (56 loc) 3.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const config_1 = require("@repo/config"); const helpers_1 = require("../../../helpers"); const hardhat_1 = require("hardhat"); const libraries_1 = require("../../../libraries"); async function main() { if (!process.env.NEXT_PUBLIC_APP_ENV) { throw new Error("Missing NEXT_PUBLIC_APP_ENV"); } const config = (0, config_1.getConfig)(process.env.NEXT_PUBLIC_APP_ENV); const deployer = (await hardhat_1.ethers.getSigners())[0]; console.log(`Deploying new version of VeBetterPassport libraries on network: ${config.network.name} (env: ${config.environment}) with account: ${deployer.address}`); const { PassportChecksLogic, PassportConfigurator, PassportEntityLogic, PassportDelegationLogic, PassportPersonhoodLogic, PassportPoPScoreLogic, PassportSignalingLogic, PassportWhitelistAndBlacklistLogic, } = await (0, libraries_1.passportLibraries)({ logOutput: true, latestVersionOnly: true }); const libraries = { VeBetterPassport: { PassportChecksLogic: await PassportChecksLogic.getAddress(), PassportConfigurator: await PassportConfigurator.getAddress(), PassportEntityLogic: await PassportEntityLogic.getAddress(), PassportDelegationLogic: await PassportDelegationLogic.getAddress(), PassportPersonhoodLogic: await PassportPersonhoodLogic.getAddress(), PassportPoPScoreLogic: await PassportPoPScoreLogic.getAddress(), PassportSignalingLogic: await PassportSignalingLogic.getAddress(), PassportWhitelistAndBlacklistLogic: await PassportWhitelistAndBlacklistLogic.getAddress(), }, }; console.log("Libraries deployed"); console.log("Libraries", libraries); console.log(`Upgrading VeBetterPassport contract at address: ${config.veBetterPassportContractAddress} on network: ${config.network.name} (env: ${config.environment}) with account: ${deployer.address}`); const RESET_SIGNALER_WALLET = "0x12a7f82621d518aed6bbadc7f9d6d2814934b259"; // More info can be found in 1Password (b3tr) const veBetterPassport = (await (0, helpers_1.upgradeProxy)("VeBetterPassportV3", "VeBetterPassport", config.veBetterPassportContractAddress, [RESET_SIGNALER_WALLET], { version: 4, libraries: { PassportChecksLogic: await PassportChecksLogic.getAddress(), PassportConfigurator: await PassportConfigurator.getAddress(), PassportEntityLogic: await PassportEntityLogic.getAddress(), PassportDelegationLogic: await PassportDelegationLogic.getAddress(), PassportPersonhoodLogic: await PassportPersonhoodLogic.getAddress(), PassportPoPScoreLogic: await PassportPoPScoreLogic.getAddress(), PassportSignalingLogic: await PassportSignalingLogic.getAddress(), PassportWhitelistAndBlacklistLogic: await PassportWhitelistAndBlacklistLogic.getAddress(), }, })); console.log(`VeBetterPassport upgraded`); // check that upgrade was successful const version = await veBetterPassport.version(); console.log(`New VeBetterPassport version: ${version}`); if (parseInt(version) !== 4) { throw new Error(`VeBetterPassport version is not the expected one: ${version}`); } console.log("Execution completed"); await (0, helpers_1.saveLibrariesToFile)(libraries); process.exit(0); } // Execute the main function main();