UNPKG

@newos/cli

Version:
121 lines 5.24 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.options = exports.args = exports.description = exports.name = void 0; const utils_1 = require("../utils"); exports.name = 'verify'; exports.description = "verify a contract's source with Etherscan or Etherchain"; const endpoints = ['etherscan', 'etherchain']; exports.args = [ { name: 'contract', async details() { const choices = await Promise.resolve().then(() => __importStar(require('../../prompts/choices'))); const contracts = choices.contracts('all'); return { prompt: 'Pick a contract to verify', choices: contracts, }; }, }, ]; exports.options = [ { format: '-n, --network <network>', description: 'network to verify contracts in', async details() { const { default: ConfigManager } = await Promise.resolve().then(() => __importStar(require('../../models/config/ConfigManager'))); const { default: Session } = await Promise.resolve().then(() => __importStar(require('../../models/network/Session'))); const networks = ConfigManager.getNetworkNamesFromConfig(); const { network: lastNetwork, expired } = Session.getNetwork(); if (expired || lastNetwork === undefined) { return { prompt: 'Pick a network', choices: networks, preselect: lastNetwork, }; } }, async after(params) { if (process.env.NODE_ENV !== 'test') { const { default: ConfigManager } = await Promise.resolve().then(() => __importStar(require('../../models/config/ConfigManager'))); const { network } = await ConfigManager.initNetworkConfiguration(params); const userNetworkName = params.network; Object.assign(params, { network, userNetworkName }); } }, }, { format: '-o, --optimizer <enabled>', description: `whether compilation optimizations were enabled`, async details() { var _a, _b; const { default: ProjectFile } = await Promise.resolve().then(() => __importStar(require('../../models/files/ProjectFile'))); const compilerConfig = new ProjectFile().compilerOptions; const optimizerDefault = (_b = (_a = compilerConfig.optimizer) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : false; return { prompt: 'Was your contract compiled with optimizations enabled?', promptType: 'confirm', preselect: optimizerDefault, }; }, }, { format: '--optimizer-runs <runs>', description: `the number of runs for the optimizer`, async details(params) { var _a, _b; if (params.optimizer) { const { default: ProjectFile } = await Promise.resolve().then(() => __importStar(require('../../models/files/ProjectFile'))); const compilerConfig = new ProjectFile().compilerOptions; const optimizerRunsDefault = (_b = (_a = compilerConfig.optimizer) === null || _a === void 0 ? void 0 : _a.runs) !== null && _b !== void 0 ? _b : 200; return { prompt: "Specify the optimizer 'runs' parameter", preselect: optimizerRunsDefault, }; } }, }, { format: '--remote <remote>', description: `the remote endpoint to use for verification (${endpoints.join(', ')})`, async details() { return { prompt: 'Choose a remote endpoint', choices: endpoints, preselect: 'etherscan', }; }, }, { format: '--api-key <key>', description: `Etherscan API key (get one at https://etherscan.io/myapikey)`, async details(params) { if (params.remote == 'etherscan') { return { prompt: 'Enter your Etherscan API key (get one at https://etherscan.io/myapikey)', }; } }, }, utils_1.commonOptions.noInteractive, ]; //# sourceMappingURL=spec.js.map