@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
JavaScript
;
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();