@neo-one/server-plugin-wallet
Version:
NEO•ONE Server wallet plugin.
52 lines (50 loc) • 6.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const server_plugin_network_1 = require("@neo-one/server-plugin-network");
const constants_1 = require("../../constants");
const errors_1 = require("../../errors");
const getCLIName = async ({ baseName, options: { network }, }) => {
if (network === undefined) {
throw new errors_1.NetworkRequiredError();
}
return Promise.resolve(constants_1.constants.makeWallet({ name: baseName, network }));
};
const getCLIResourceOptions = async ({ cli, options }) => {
const { network: networkName } = options;
if (networkName != undefined && typeof networkName === 'string') {
return { network: networkName };
}
const { network } = await cli.getSession(server_plugin_network_1.constants.PLUGIN);
if (network != undefined && typeof network === 'string') {
return { network };
}
throw new Error('Wallets are associated with a network. Activate a network by ' +
'running `activate network <name>` or specify the network via ' +
'`--network <name>`');
};
const promptPassword = async ({ cli, prompt }) => cli.prompt([
{
type: 'password',
name: 'password',
message: prompt,
validate: (input) => {
if (typeof input !== 'string' || input.length < 8) {
return 'Password must be at least 8 characters';
}
return true;
},
},
]);
const walletOptions = [
{
option: '-n, --network <name>',
description: 'Network the wallet is associated with.',
},
];
exports.common = {
getCLIName,
getCLIResourceOptions,
promptPassword,
options: walletOptions,
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBFQUErRTtBQUMvRSwrQ0FBNEM7QUFDNUMseUNBQW9EO0FBR3BELE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxFQUN4QixRQUFRLEVBQ1IsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQ3FCLEVBQW1CLEVBQUU7SUFDOUQsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSw2QkFBb0IsRUFBRSxDQUFDO0tBQ2xDO0lBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUF5QixFQUFrQyxFQUFFO0lBQzlHLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ3pDLElBQUksV0FBVyxJQUFJLFNBQVMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztLQUNqQztJQUVELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsaUNBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEUsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtRQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7S0FDcEI7SUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLCtEQUErRDtRQUM3RCwrREFBK0Q7UUFDL0Qsb0JBQW9CLENBQ3ZCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUE2RCxFQUFFLEVBQUUsQ0FDMUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNUO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLE1BQU07UUFFZixRQUFRLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN2QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakQsT0FBTyx3Q0FBd0MsQ0FBQzthQUNqRDtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUNGO0NBQ0YsQ0FBQyxDQUFDO0FBRUwsTUFBTSxhQUFhLEdBQTZFO0lBQzlGO1FBQ0UsTUFBTSxFQUFFLHNCQUFzQjtRQUM5QixXQUFXLEVBQUUsd0NBQXdDO0tBQ3REO0NBQ0YsQ0FBQztBQUVXLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsY0FBYztJQUNkLE9BQU8sRUFBRSxhQUFhO0NBQ3ZCLENBQUMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luLXdhbGxldC9zcmMvY3J1ZC93YWxsZXQvY29tbW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0Q0xJTmFtZU9wdGlvbnMsIEdldENMSVJlc291cmNlT3B0aW9ucywgSW50ZXJhY3RpdmVDTEkgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luJztcbmltcG9ydCB7IGNvbnN0YW50cyBhcyBuZXR3b3JrQ29uc3RhbnRzIH0gZnJvbSAnQG5lby1vbmUvc2VydmVyLXBsdWdpbi1uZXR3b3JrJztcbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBOZXR3b3JrUmVxdWlyZWRFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBXYWxsZXRSZXNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9XYWxsZXRSZXNvdXJjZVR5cGUnO1xuXG5jb25zdCBnZXRDTElOYW1lID0gYXN5bmMgKHtcbiAgYmFzZU5hbWUsXG4gIG9wdGlvbnM6IHsgbmV0d29yayB9LFxufTogR2V0Q0xJTmFtZU9wdGlvbnM8V2FsbGV0UmVzb3VyY2VPcHRpb25zPik6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGlmIChuZXR3b3JrID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgTmV0d29ya1JlcXVpcmVkRXJyb3IoKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoY29uc3RhbnRzLm1ha2VXYWxsZXQoeyBuYW1lOiBiYXNlTmFtZSwgbmV0d29yayB9KSk7XG59O1xuXG5jb25zdCBnZXRDTElSZXNvdXJjZU9wdGlvbnMgPSBhc3luYyAoeyBjbGksIG9wdGlvbnMgfTogR2V0Q0xJUmVzb3VyY2VPcHRpb25zKTogUHJvbWlzZTxXYWxsZXRSZXNvdXJjZU9wdGlvbnM+ID0+IHtcbiAgY29uc3QgeyBuZXR3b3JrOiBuZXR3b3JrTmFtZSB9ID0gb3B0aW9ucztcbiAgaWYgKG5ldHdvcmtOYW1lICE9IHVuZGVmaW5lZCAmJiB0eXBlb2YgbmV0d29ya05hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHsgbmV0d29yazogbmV0d29ya05hbWUgfTtcbiAgfVxuXG4gIGNvbnN0IHsgbmV0d29yayB9ID0gYXdhaXQgY2xpLmdldFNlc3Npb24obmV0d29ya0NvbnN0YW50cy5QTFVHSU4pO1xuICBpZiAobmV0d29yayAhPSB1bmRlZmluZWQgJiYgdHlwZW9mIG5ldHdvcmsgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHsgbmV0d29yayB9O1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdXYWxsZXRzIGFyZSBhc3NvY2lhdGVkIHdpdGggYSBuZXR3b3JrLiBBY3RpdmF0ZSBhIG5ldHdvcmsgYnkgJyArXG4gICAgICAncnVubmluZyBgYWN0aXZhdGUgbmV0d29yayA8bmFtZT5gIG9yIHNwZWNpZnkgdGhlIG5ldHdvcmsgdmlhICcgK1xuICAgICAgJ2AtLW5ldHdvcmsgPG5hbWU+YCcsXG4gICk7XG59O1xuXG5jb25zdCBwcm9tcHRQYXNzd29yZCA9IGFzeW5jICh7IGNsaSwgcHJvbXB0IH06IHsgcmVhZG9ubHkgY2xpOiBJbnRlcmFjdGl2ZUNMSTsgcmVhZG9ubHkgcHJvbXB0OiBzdHJpbmcgfSkgPT5cbiAgY2xpLnByb21wdChbXG4gICAge1xuICAgICAgdHlwZTogJ3Bhc3N3b3JkJyxcbiAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICBtZXNzYWdlOiBwcm9tcHQsXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tYW55XG4gICAgICB2YWxpZGF0ZTogKGlucHV0OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgfHwgaW5wdXQubGVuZ3RoIDwgOCkge1xuICAgICAgICAgIHJldHVybiAnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgIH0sXG4gIF0pO1xuXG5jb25zdCB3YWxsZXRPcHRpb25zOiBSZWFkb25seUFycmF5PHsgcmVhZG9ubHkgb3B0aW9uOiBzdHJpbmc7IHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4gPSBbXG4gIHtcbiAgICBvcHRpb246ICctbiwgLS1uZXR3b3JrIDxuYW1lPicsXG4gICAgZGVzY3JpcHRpb246ICdOZXR3b3JrIHRoZSB3YWxsZXQgaXMgYXNzb2NpYXRlZCB3aXRoLicsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgY29tbW9uID0ge1xuICBnZXRDTElOYW1lLFxuICBnZXRDTElSZXNvdXJjZU9wdGlvbnMsXG4gIHByb21wdFBhc3N3b3JkLFxuICBvcHRpb25zOiB3YWxsZXRPcHRpb25zLFxufTtcbiJdfQ==