UNPKG

@hashgraph/hedera-cli

Version:

CLI tool to manage and setup developer environments for Hedera Hashgraph.

68 lines (61 loc) 1.96 kB
import stateUtils from '../../utils/state'; import accountUtils from '../../utils/account'; import telemetryUtils from '../../utils/telemetry'; import dynamicVariablesUtils from '../../utils/dynamicVariables'; import { Logger } from '../../utils/logger'; import type { Command } from '../../../types'; const logger = Logger.getInstance(); export default (program: any) => { program .command('import') .hook('preAction', async (thisCommand: Command) => { const command = [ thisCommand.parent.action().name(), ...thisCommand.parent.args, ]; if (stateUtils.isTelemetryEnabled()) { await telemetryUtils.recordCommand(command.join(' ')); } }) .description( 'Import an existing account using an account ID, alias, type, and optional private key.', ) .requiredOption('-a, --alias <alias>', 'account must have an alias') .requiredOption('-i, --id <id>', 'Account ID') .option('-k, --key <key>', 'Private key') .option( '--args <args>', 'Store arguments for scripts', (value: string, previous: string) => previous ? previous.concat(value) : [value], [], ) .action((options: ImportAccountOptions) => { options = dynamicVariablesUtils.replaceOptions(options); logger.verbose(`Importing account with alias: ${options.alias}`); let accountDetails; if (options.key) { accountDetails = accountUtils.importAccount( options.id, options.key, options.alias, ); } else { accountDetails = accountUtils.importAccountId( options.id, options.alias, ); } dynamicVariablesUtils.storeArgs( options.args, dynamicVariablesUtils.commandActions.account.import.action, accountDetails, ); }); }; interface ImportAccountOptions { alias: string; id: string; key: string; args: string[]; }