locklift
Version:
Node JS framework for working with Ever contracts. Inspired by Truffle and Hardhat. Helps you to build, test, run and maintain your smart contracts.
51 lines (50 loc) • 2.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
require("ts-node");
const config_1 = require("../../config");
const build_1 = require("../steps/build");
const initLocklift_1 = require("../steps/initLocklift");
const path_1 = __importDefault(require("path"));
const program = new commander_1.Command();
program
.name("run")
.description("Run arbitrary locklift script")
.option("--disable-build", "Disable automatic contracts build", false)
.option("-c, --contracts <contracts>", "Path to the contracts folder", "contracts")
.option("-b, --build <build>", "Path to the build folder", "build")
.option("-f, --force", "Force build contracts", false)
.option("--disable-include-path", "Disables including node_modules. Use this with old compiler versions", false)
.option("-p, --params [value...]", "Parameters to pass to the script")
.option("-n, --network <network>", "Network to use, choose from configuration", config_1.LOCKLIFT_NETWORK_NAME)
.addOption(new commander_1.Option("--config <config>", "Path to the config file")
.default(() => (0, config_1.loadConfig)("locklift.config.ts"))
.argParser(config => () => (0, config_1.loadConfig)(config)))
.requiredOption("-s, --script <script>", "Script to run")
.allowUnknownOption()
.action(async (options) => {
const config = options.config();
if (config.networks[options.network] === undefined) {
console.error(`Can't find configuration for ${options.network} network!`);
process.exit(1);
}
if (!options.disableBuild) {
await (0, build_1.buildStep)(config, options, config.force);
}
// Initialize Locklift
await (0, initLocklift_1.initLockliftStep)(config, options);
const scriptContent = require(path_1.default.resolve(process.cwd(), options.script));
if (scriptContent.default) {
await scriptContent
.default(...options.params)
.then(() => process.exit(0))
.catch((e) => {
console.log(e);
process.exit(1);
});
}
});
exports.default = program;