UNPKG

deployment-tool

Version:

Tool to deploy and upgrade contracts on Ethereum Mainnet

173 lines 7.58 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 deploy_1 = __importDefault(require("./deploy")); const deployProxy_1 = __importDefault(require("./deployProxy")); const upgradeProxy_1 = __importDefault(require("./upgradeProxy")); const inquirerContractNameInput = [ { type: 'input', name: 'contractName', message: 'What is the name of the contract to deploy?' } ]; const inquirerInitializer = [ { type: 'input', name: 'initializeSignature', message: 'What is the function signature of the initialize function? (optional)', default: 'initialize' }, { type: 'input', name: 'initializeArguments', message: 'What is the initialize() argument? (separate multiple arguments with a comma)' } ]; const inquirerConstructor = [ { type: 'input', name: 'constructorArguments', message: 'What is the constructor() argument? (separate multiple arguments with a comma)' } ]; const inquirerExtra = [ { type: 'input', name: 'tag', message: 'What is the tag for this version of the contract? (optional)' }, { type: 'input', name: 'extra', message: 'What is the extra data to save with this deployment? (optional)' }, { type: 'confirm', name: 'skipGit', message: 'Do you want to SKIP the commit, pull & push to Github?' }, { type: 'confirm', name: 'verifyContract', message: 'Do you want to verify the contract on Etherscan.io?' } ]; const serveDeployTask = async (args, env) => { if (!args.contractName || args.contractName === '') await inquirer_1.default .prompt([...inquirerContractNameInput, ...inquirerInitializer, ...inquirerExtra]) .then(async (answers) => { const initializeArguments = answers.initializeArguments ? answers.initializeArguments.split(',') : []; await (0, deployProxy_1.default)(env, answers.contractName, initializeArguments, answers.initializeSignature, answers.tag, answers.extra, answers.skipGit, answers.verifyContract); }) .catch((err) => { console.log(err); }) .finally(() => { process.exit(0); }); else { const initializeSignature = args.initializeSignature ? args.initializeSignature : 'initialize'; const initializeArguments = args.initializeArguments ? args.initializeArguments.split(',') : []; await (0, deployProxy_1.default)(env, args.contractName, initializeArguments, initializeSignature, args.tag, args.extra, args.skipGit && args.skipGit === 'true' ? true : false, args.verifyContract && args.verifyContract === 'true' ? true : false); } }; const serveUpgradeTask = async (args, env) => { if (!args.contractName || args.contractName === '') await inquirer_1.default .prompt([...inquirerContractNameInput, ...inquirerExtra]) .then(async (answers) => { await (0, upgradeProxy_1.default)(env, answers.contractName, answers.tag, answers.extra, answers.skipGit, answers.verifyContract); }) .catch((err) => { console.log(err); }) .finally(() => { process.exit(0); }); else { await (0, upgradeProxy_1.default)(env, args.contractName, args.tag, args.extra, args.skipGit && args.skipGit === 'true' ? true : false, args.verifyContract && args.verifyContract === 'true' ? true : false); } }; const serveDeployStaticTask = async (args, env) => { if (!args.contractName || args.contractName === '') await inquirer_1.default .prompt([...inquirerContractNameInput, ...inquirerConstructor, ...inquirerExtra]) .then(async (answers) => { const constructorArguments = answers.constructorArguments ? answers.constructorArguments.split(',') : []; await (0, deploy_1.default)(env, answers.contractName, constructorArguments, answers.tag, answers.extra, answers.skipGit, answers.verifyContract); }) .catch((err) => { console.log(err); }) .finally(() => { process.exit(0); }); else { const constructorArguments = args.constructorArguments ? args.constructorArguments.split(',') : []; await (0, deploy_1.default)(env, args.contractName, constructorArguments, args.tag, args.extra, args.skipGit && args.skipGit === 'true' ? true : false, args.verifyContract && args.verifyContract === 'true' ? true : false); } }; const serveTestTask = async (args, env) => { if (!args.contractName || args.contractName === '') await inquirer_1.default .prompt([...inquirerContractNameInput, ...inquirerInitializer, ...inquirerExtra]) .then(async (answers) => { const initializeArguments = answers.initializeArguments ? answers.initializeArguments.split(',') : []; await (0, deployProxy_1.default)(env, answers.contractName, initializeArguments, answers.initializeSignature, answers.tag, answers.extra, answers.skipGit, answers.verifyContract); await (0, upgradeProxy_1.default)(env, answers.contractName, answers.tag, answers.extra, answers.skipGit, answers.verifyContract); }) .catch((err) => { console.log(err); }) .finally(() => { process.exit(0); }); else { const initializeSignature = args.initializeSignature ? args.initializeSignature : 'initialize'; const initializeArguments = args.initializeArguments ? args.initializeArguments.split(',') : []; await (0, deployProxy_1.default)(env, args.contractName, initializeArguments, initializeSignature, args.tag, args.extra, args.skipGit && args.skipGit === 'true' ? true : false, args.verifyContract && args.verifyContract === 'true' ? true : false); await (0, upgradeProxy_1.default)(env, args.contractName, args.tag, args.extra, args.skipGit && args.skipGit === 'true' ? true : false, args.verifyContract && args.verifyContract === 'true' ? true : false); } }; const serveCLI = async (task) => { if (task === '') return (await inquirer_1.default.prompt([ { type: 'list', name: 'action', message: 'What do you want to do?', choices: ['deploy-contract', 'upgrade-contract', 'test-deploy-then-upgrade-contract'] } ])).action; else return task; }; const serveFunction = async (task, args, env) => { const action = await serveCLI(task); if (action === 'deploy-contract') await serveDeployTask(args, env); if (action === 'upgrade-contract') await serveUpgradeTask(args, env); if (action === 'deploy-contract-static') await serveDeployStaticTask(args, env); if (action === 'test-deploy-then-upgrade-contract') await serveTestTask(args, env); }; const serveTasks = async (task, args, env) => { console.log(`Deployment tools for Gluwa `); return serveFunction(task, args, env); }; exports.default = serveTasks; //# sourceMappingURL=serveTasks.js.map