deployment-tool
Version:
Tool to deploy and upgrade contracts on Ethereum Mainnet
173 lines • 7.58 kB
JavaScript
;
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