UNPKG

@vechain/vebetterdao-contracts

Version:

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

69 lines (68 loc) 3.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const inquirer_1 = __importDefault(require("inquirer")); const child_process_1 = require("child_process"); const upgradesConfig_1 = require("./upgradesConfig"); const config_1 = require("@repo/config"); const hardhat_1 = require("hardhat"); async function upgradeContract() { try { const env = process.env.NEXT_PUBLIC_APP_ENV; if (!env) throw new Error("Environment variable NEXT_PUBLIC_APP_ENV is not set."); const config = (0, config_1.getConfig)(process.env.NEXT_PUBLIC_APP_ENV); // Prompt the user to select a contract to upgrade const { contract } = await inquirer_1.default.prompt({ type: "list", name: "contract", message: "Which contract do you want to upgrade?", choices: Object.keys(upgradesConfig_1.upgradeConfig), }); const selectedContract = upgradesConfig_1.upgradeConfig[contract]; const versionChoices = selectedContract.versions.map(version => ({ name: `${version} - ${selectedContract.descriptions[version]}`, value: version, })); // Prompt the user to select the version to upgrade to const { version } = await inquirer_1.default.prompt({ type: "list", name: "version", message: `Which version do you want to upgrade ${contract} to?`, choices: versionChoices, }); const deployer = (await hardhat_1.ethers.getSigners())[0]; console.log(`You are about to upgrade the following contract:`); console.log(`\nContract: ${selectedContract.name}`); console.log(`Contract address: ${config[selectedContract.configAddressField]}`); console.log(`Version: ${version}`); console.log(`Upgrade description: ${selectedContract.descriptions[version]}`); console.log(`Upgrader wallet: ${deployer.address}`); console.log(`Environment: ${env}\n`); // Confirm the upgrade const { confirmUpgrade } = await inquirer_1.default.prompt({ type: "confirm", name: "confirmUpgrade", message: `Do you want to proceed with the upgrade of ${selectedContract.name} to version ${version} on environment ${env}?`, default: false, }); if (!confirmUpgrade) { console.log("Upgrade aborted."); process.exit(0); } // Set environment variables process.env.CONTRACT_TO_UPGRADE = selectedContract.name; process.env.CONTRACT_VERSION = version; console.log(`\nStarting upgrade of ${selectedContract.name} to version ${version} on ${env}...`); // Run the upgrade script (0, child_process_1.execSync)(`turbo run upgrade:contract:${env}`, { stdio: "inherit" }); console.log("\nUpgrade complete!"); } catch (error) { console.error("Upgrade failed:", error); process.exit(1); } } upgradeContract();