UNPKG

@neo-one/server-plugin-wallet

Version:

NEO•ONE Server wallet plugin.

90 lines (88 loc) 10.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_common_1 = require("@neo-one/client-common"); const server_plugin_1 = require("@neo-one/server-plugin"); const server_plugin_network_1 = require("@neo-one/server-plugin-network"); const activateWallet_1 = require("./activateWallet"); const bootstrap_1 = require("./bootstrap"); const constants_1 = require("./constants"); const deactivateWallet_1 = require("./deactivateWallet"); const WalletResourceType_1 = require("./WalletResourceType"); class WalletPlugin extends server_plugin_1.Plugin { constructor() { super(...arguments); this.walletResourceType = new WalletResourceType_1.WalletResourceType({ plugin: this, }); } get name() { return constants_1.constants.PLUGIN; } get names() { return { capital: 'Wallet', capitalPlural: 'Wallets', lower: 'wallet', lowerPlural: 'wallets', }; } get dependencies() { return [server_plugin_network_1.constants.PLUGIN]; } get resourceTypes() { return [this.walletResourceType]; } get interactive() { return [activateWallet_1.activateWallet(this), deactivateWallet_1.deactivateWallet(this), bootstrap_1.bootstrap(this)]; } get createHooks() { return [ { plugin: server_plugin_network_1.constants.PLUGIN, resourceType: server_plugin_network_1.constants.NETWORK_RESOURCE_TYPE, hook: ({ name, pluginManager }) => ({ title: 'Create master wallet', skip: () => { if (name === server_plugin_network_1.constants.NETWORK_NAME.MAIN || name === server_plugin_network_1.constants.NETWORK_NAME.TEST) { return 'Master wallets are only created for private networks'; } return false; }, task: () => pluginManager .getResourcesManager({ plugin: constants_1.constants.PLUGIN, resourceType: constants_1.constants.WALLET_RESOURCE_TYPE, }) .create(server_plugin_1.compoundName.make({ names: [name], name: 'master' }), { network: name, privateKey: client_common_1.wifToPrivateKey(server_plugin_network_1.constants.PRIVATE_NET_PRIVATE_KEY), }), }), }, ]; } get cliPostHooks() { return [ { name: 'create network', hook: async ({ cli, args }) => { const { name: networkName } = args; if (!(networkName === server_plugin_network_1.constants.NETWORK_NAME.MAIN || networkName === server_plugin_network_1.constants.NETWORK_NAME.TEST)) { await cli.exec(`activate wallet master`); } }, }, { name: 'deactivate network', hook: async ({ cli }) => { const { wallet } = await cli.getSession(constants_1.constants.PLUGIN); if (wallet != undefined) { await cli.exec('deactivate wallet'); } }, }, ]; } } exports.WalletPlugin = WalletPlugin; //# sourceMappingURL=data:application/json;charset=utf8;base64,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QkFDMUM7Z0JBQ0gsQ0FBQzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7b0JBQ3RCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMscUJBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxNQUFNLElBQUksU0FBUyxFQUFFO3dCQUN2QixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDckM7Z0JBQ0gsQ0FBQzthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhGRCxvQ0F3RkMiLCJmaWxlIjoibmVvLW9uZS1zZXJ2ZXItcGx1Z2luLXdhbGxldC9zcmMvV2FsbGV0UGx1Z2luLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2lmVG9Qcml2YXRlS2V5IH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvbW1vbic7XG5pbXBvcnQge1xuICBDTElIb29rQ29uZmlnLFxuICBjb21wb3VuZE5hbWUsXG4gIENyZWF0ZUhvb2tDb25maWcsXG4gIEludGVyYWN0aXZlQ29tbWFuZCxcbiAgUGx1Z2luLFxuICBSZXNvdXJjZVR5cGUsXG59IGZyb20gJ0BuZW8tb25lL3NlcnZlci1wbHVnaW4nO1xuaW1wb3J0IHsgY29uc3RhbnRzIGFzIG5ldHdvcmtDb25zdGFudHMgfSBmcm9tICdAbmVvLW9uZS9zZXJ2ZXItcGx1Z2luLW5ldHdvcmsnO1xuaW1wb3J0IHsgYWN0aXZhdGVXYWxsZXQgfSBmcm9tICcuL2FjdGl2YXRlV2FsbGV0JztcbmltcG9ydCB7IGJvb3RzdHJhcCB9IGZyb20gJy4vYm9vdHN0cmFwJztcbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGRlYWN0aXZhdGVXYWxsZXQgfSBmcm9tICcuL2RlYWN0aXZhdGVXYWxsZXQnO1xuaW1wb3J0IHsgV2FsbGV0UmVzb3VyY2VUeXBlIH0gZnJvbSAnLi9XYWxsZXRSZXNvdXJjZVR5cGUnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0UGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IHdhbGxldFJlc291cmNlVHlwZTogV2FsbGV0UmVzb3VyY2VUeXBlID0gbmV3IFdhbGxldFJlc291cmNlVHlwZSh7XG4gICAgcGx1Z2luOiB0aGlzLFxuICB9KTtcblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29uc3RhbnRzLlBMVUdJTjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZXMoKToge1xuICAgIHJlYWRvbmx5IGNhcGl0YWw6IHN0cmluZztcbiAgICByZWFkb25seSBjYXBpdGFsUGx1cmFsOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbG93ZXI6IHN0cmluZztcbiAgICByZWFkb25seSBsb3dlclBsdXJhbDogc3RyaW5nO1xuICB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FwaXRhbDogJ1dhbGxldCcsXG4gICAgICBjYXBpdGFsUGx1cmFsOiAnV2FsbGV0cycsXG4gICAgICBsb3dlcjogJ3dhbGxldCcsXG4gICAgICBsb3dlclBsdXJhbDogJ3dhbGxldHMnLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlcGVuZGVuY2llcygpOiByZWFkb25seSBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtuZXR3b3JrQ29uc3RhbnRzLlBMVUdJTl07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc291cmNlVHlwZXMoKTogcmVhZG9ubHkgUmVzb3VyY2VUeXBlW10ge1xuICAgIHJldHVybiBbdGhpcy53YWxsZXRSZXNvdXJjZVR5cGVdO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnRlcmFjdGl2ZSgpOiByZWFkb25seSBJbnRlcmFjdGl2ZUNvbW1hbmRbXSB7XG4gICAgcmV0dXJuIFthY3RpdmF0ZVdhbGxldCh0aGlzKSwgZGVhY3RpdmF0ZVdhbGxldCh0aGlzKSwgYm9vdHN0cmFwKHRoaXMpXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3JlYXRlSG9va3MoKTogcmVhZG9ubHkgQ3JlYXRlSG9va0NvbmZpZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBwbHVnaW46IG5ldHdvcmtDb25zdGFudHMuUExVR0lOLFxuICAgICAgICByZXNvdXJjZVR5cGU6IG5ldHdvcmtDb25zdGFudHMuTkVUV09SS19SRVNPVVJDRV9UWVBFLFxuICAgICAgICBob29rOiAoeyBuYW1lLCBwbHVnaW5NYW5hZ2VyIH0pID0+ICh7XG4gICAgICAgICAgdGl0bGU6ICdDcmVhdGUgbWFzdGVyIHdhbGxldCcsXG4gICAgICAgICAgc2tpcDogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5hbWUgPT09IG5ldHdvcmtDb25zdGFudHMuTkVUV09SS19OQU1FLk1BSU4gfHwgbmFtZSA9PT0gbmV0d29ya0NvbnN0YW50cy5ORVRXT1JLX05BTUUuVEVTVCkge1xuICAgICAgICAgICAgICByZXR1cm4gJ01hc3RlciB3YWxsZXRzIGFyZSBvbmx5IGNyZWF0ZWQgZm9yIHByaXZhdGUgbmV0d29ya3MnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0YXNrOiAoKSA9PlxuICAgICAgICAgICAgcGx1Z2luTWFuYWdlclxuICAgICAgICAgICAgICAuZ2V0UmVzb3VyY2VzTWFuYWdlcih7XG4gICAgICAgICAgICAgICAgcGx1Z2luOiBjb25zdGFudHMuUExVR0lOLFxuICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogY29uc3RhbnRzLldBTExFVF9SRVNPVVJDRV9UWVBFLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY3JlYXRlKGNvbXBvdW5kTmFtZS5tYWtlKHsgbmFtZXM6IFtuYW1lXSwgbmFtZTogJ21hc3RlcicgfSksIHtcbiAgICAgICAgICAgICAgICBuZXR3b3JrOiBuYW1lLFxuICAgICAgICAgICAgICAgIHByaXZhdGVLZXk6IHdpZlRvUHJpdmF0ZUtleShuZXR3b3JrQ29uc3RhbnRzLlBSSVZBVEVfTkVUX1BSSVZBVEVfS0VZKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHVibGljIGdldCBjbGlQb3N0SG9va3MoKTogcmVhZG9ubHkgQ0xJSG9va0NvbmZpZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRlIG5ldHdvcmsnLFxuICAgICAgICBob29rOiBhc3luYyAoeyBjbGksIGFyZ3MgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgbmFtZTogbmV0d29ya05hbWUgfSA9IGFyZ3M7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShuZXR3b3JrTmFtZSA9PT0gbmV0d29ya0NvbnN0YW50cy5ORVRXT1JLX05BTUUuTUFJTiB8fCBuZXR3b3JrTmFtZSA9PT0gbmV0d29ya0NvbnN0YW50cy5ORVRXT1JLX05BTUUuVEVTVClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGF3YWl0IGNsaS5leGVjKGBhY3RpdmF0ZSB3YWxsZXQgbWFzdGVyYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RlYWN0aXZhdGUgbmV0d29yaycsXG4gICAgICAgIGhvb2s6IGFzeW5jICh7IGNsaSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyB3YWxsZXQgfSA9IGF3YWl0IGNsaS5nZXRTZXNzaW9uKGNvbnN0YW50cy5QTFVHSU4pO1xuICAgICAgICAgIGlmICh3YWxsZXQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGkuZXhlYygnZGVhY3RpdmF0ZSB3YWxsZXQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==