UNPKG

@neo-one/server-plugin-wallet

Version:

NEO•ONE Server wallet plugin.

109 lines (107 loc) 12.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const server_plugin_1 = require("@neo-one/server-plugin"); const server_plugin_network_1 = require("@neo-one/server-plugin-network"); const WalletResource_1 = require("./WalletResource"); class WalletResourceAdapter { static create({ client, pluginManager, resourceType, name, dataPath }, { privateKey, password }) { return new server_plugin_1.TaskList({ tasks: [ { title: 'Create wallet resource', task: async (ctx) => { const walletResource = await WalletResource_1.WalletResource.createNew({ client, pluginManager, resourceType, name, privateKey, password, dataPath, }); const { names: [networkName], } = server_plugin_1.compoundName.extract(name); ctx.resourceAdapter = new this({ resourceType, walletResource, }); ctx.dependencies = [ { plugin: server_plugin_network_1.constants.PLUGIN, resourceType: server_plugin_network_1.constants.NETWORK_RESOURCE_TYPE, name: networkName, }, ]; await walletResource.create(); }, }, ], }); } static async init({ client, pluginManager, resourceType, name, dataPath, }) { const walletResource = await WalletResource_1.WalletResource.createExisting({ client, pluginManager, resourceType, name, dataPath, }); return new this({ resourceType, walletResource, }); } constructor({ walletResource }) { this.walletResource = walletResource; this.resource$ = walletResource.resource$; } async destroy() { } delete(_options) { return new server_plugin_1.TaskList({ tasks: [ { title: 'Clean up local files', task: async () => { await this.walletResource.delete(); }, }, ], }); } start({ password }) { return new server_plugin_1.TaskList({ tasks: [ { title: 'Unlock wallet', task: async () => { if (this.walletResource.unlocked) { return undefined; } if (password === undefined) { throw new Error('Password is required to unlock a wallet.'); } await this.walletResource.unlock({ password }); return undefined; }, }, ], }); } stop(_options) { return new server_plugin_1.TaskList({ tasks: [ { title: 'Lock wallet', task: async () => { await this.walletResource.lock(); }, }, ], }); } getDebug() { return this.walletResource.getDebug(); } } exports.WalletResourceAdapter = WalletResourceAdapter; //# sourceMappingURL=data:application/json;charset=utf8;base64,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LENBQUMsMENBQTBDLENBQUMsQ0FBQzt5QkFDN0Q7d0JBRUQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7d0JBRS9DLE9BQU8sU0FBUyxDQUFDO29CQUNuQixDQUFDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQStCO1FBQ3pDLE9BQU8sSUFBSSx3QkFBUSxDQUFDO1lBQ2xCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxLQUFLLEVBQUUsYUFBYTtvQkFDcEIsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO3dCQUNmLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkMsQ0FBQztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBaklELHNEQWlJQyIsImZpbGUiOiJuZW8tb25lLXNlcnZlci1wbHVnaW4td2FsbGV0L3NyYy9XYWxsZXRSZXNvdXJjZUFkYXB0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wb3VuZE5hbWUsIERlc2NyaWJlVGFibGUsIFBsdWdpbk1hbmFnZXIsIFRhc2tMaXN0IH0gZnJvbSAnQG5lby1vbmUvc2VydmVyLXBsdWdpbic7XG5pbXBvcnQgeyBjb25zdGFudHMgYXMgbmV0d29ya0NvbnN0YW50cyB9IGZyb20gJ0BuZW8tb25lL3NlcnZlci1wbHVnaW4tbmV0d29yayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXYWxsZXRDbGllbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFdhbGxldFJlc291cmNlIH0gZnJvbSAnLi9XYWxsZXRSZXNvdXJjZSc7XG5pbXBvcnQgeyBXYWxsZXQsIFdhbGxldFJlc291cmNlT3B0aW9ucywgV2FsbGV0UmVzb3VyY2VUeXBlIH0gZnJvbSAnLi9XYWxsZXRSZXNvdXJjZVR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldFJlc291cmNlQWRhcHRlckluaXRPcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpZW50OiBXYWxsZXRDbGllbnQ7XG4gIHJlYWRvbmx5IHBsdWdpbk1hbmFnZXI6IFBsdWdpbk1hbmFnZXI7XG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogV2FsbGV0UmVzb3VyY2VUeXBlO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRhdGFQYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0UmVzb3VyY2VBZGFwdGVyU3RhdGljT3B0aW9ucyBleHRlbmRzIFdhbGxldFJlc291cmNlQWRhcHRlckluaXRPcHRpb25zIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0UmVzb3VyY2VBZGFwdGVyT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogV2FsbGV0UmVzb3VyY2VUeXBlO1xuICByZWFkb25seSB3YWxsZXRSZXNvdXJjZTogV2FsbGV0UmVzb3VyY2U7XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRSZXNvdXJjZUFkYXB0ZXIge1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShcbiAgICB7IGNsaWVudCwgcGx1Z2luTWFuYWdlciwgcmVzb3VyY2VUeXBlLCBuYW1lLCBkYXRhUGF0aCB9OiBXYWxsZXRSZXNvdXJjZUFkYXB0ZXJJbml0T3B0aW9ucyxcbiAgICB7IHByaXZhdGVLZXksIHBhc3N3b3JkIH06IFdhbGxldFJlc291cmNlT3B0aW9ucyxcbiAgKTogVGFza0xpc3Qge1xuICAgIHJldHVybiBuZXcgVGFza0xpc3Qoe1xuICAgICAgdGFza3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnQ3JlYXRlIHdhbGxldCByZXNvdXJjZScsXG4gICAgICAgICAgdGFzazogYXN5bmMgKGN0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2FsbGV0UmVzb3VyY2UgPSBhd2FpdCBXYWxsZXRSZXNvdXJjZS5jcmVhdGVOZXcoe1xuICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgIHBsdWdpbk1hbmFnZXIsXG4gICAgICAgICAgICAgIHJlc291cmNlVHlwZSxcbiAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZUtleSxcbiAgICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICAgIGRhdGFQYXRoLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgbmFtZXM6IFtuZXR3b3JrTmFtZV0sXG4gICAgICAgICAgICB9ID0gY29tcG91bmROYW1lLmV4dHJhY3QobmFtZSk7XG4gICAgICAgICAgICBjdHgucmVzb3VyY2VBZGFwdGVyID0gbmV3IHRoaXMoe1xuICAgICAgICAgICAgICByZXNvdXJjZVR5cGUsXG4gICAgICAgICAgICAgIHdhbGxldFJlc291cmNlLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGN0eC5kZXBlbmRlbmNpZXMgPSBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwbHVnaW46IG5ldHdvcmtDb25zdGFudHMuUExVR0lOLFxuICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogbmV0d29ya0NvbnN0YW50cy5ORVRXT1JLX1JFU09VUkNFX1RZUEUsXG4gICAgICAgICAgICAgICAgbmFtZTogbmV0d29ya05hbWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICBhd2FpdCB3YWxsZXRSZXNvdXJjZS5jcmVhdGUoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgaW5pdCh7XG4gICAgY2xpZW50LFxuICAgIHBsdWdpbk1hbmFnZXIsXG4gICAgcmVzb3VyY2VUeXBlLFxuICAgIG5hbWUsXG4gICAgZGF0YVBhdGgsXG4gIH06IFdhbGxldFJlc291cmNlQWRhcHRlckluaXRPcHRpb25zKTogUHJvbWlzZTxXYWxsZXRSZXNvdXJjZUFkYXB0ZXI+IHtcbiAgICBjb25zdCB3YWxsZXRSZXNvdXJjZSA9IGF3YWl0IFdhbGxldFJlc291cmNlLmNyZWF0ZUV4aXN0aW5nKHtcbiAgICAgIGNsaWVudCxcbiAgICAgIHBsdWdpbk1hbmFnZXIsXG4gICAgICByZXNvdXJjZVR5cGUsXG4gICAgICBuYW1lLFxuICAgICAgZGF0YVBhdGgsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IHRoaXMoe1xuICAgICAgcmVzb3VyY2VUeXBlLFxuICAgICAgd2FsbGV0UmVzb3VyY2UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgd2FsbGV0UmVzb3VyY2U6IFdhbGxldFJlc291cmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2UkOiBPYnNlcnZhYmxlPFdhbGxldD47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHsgd2FsbGV0UmVzb3VyY2UgfTogV2FsbGV0UmVzb3VyY2VBZGFwdGVyT3B0aW9ucykge1xuICAgIHRoaXMud2FsbGV0UmVzb3VyY2UgPSB3YWxsZXRSZXNvdXJjZTtcblxuICAgIHRoaXMucmVzb3VyY2UkID0gd2FsbGV0UmVzb3VyY2UucmVzb3VyY2UkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZG8gbm90aGluZ1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShfb3B0aW9uczogV2FsbGV0UmVzb3VyY2VPcHRpb25zKTogVGFza0xpc3Qge1xuICAgIHJldHVybiBuZXcgVGFza0xpc3Qoe1xuICAgICAgdGFza3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnQ2xlYW4gdXAgbG9jYWwgZmlsZXMnLFxuICAgICAgICAgIHRhc2s6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVzb3VyY2UuZGVsZXRlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnQoeyBwYXNzd29yZCB9OiBXYWxsZXRSZXNvdXJjZU9wdGlvbnMpOiBUYXNrTGlzdCB7XG4gICAgcmV0dXJuIG5ldyBUYXNrTGlzdCh7XG4gICAgICB0YXNrczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdVbmxvY2sgd2FsbGV0JyxcbiAgICAgICAgICB0YXNrOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy53YWxsZXRSZXNvdXJjZS51bmxvY2tlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGFzc3dvcmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Bhc3N3b3JkIGlzIHJlcXVpcmVkIHRvIHVubG9jayBhIHdhbGxldC4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgdGhpcy53YWxsZXRSZXNvdXJjZS51bmxvY2soeyBwYXNzd29yZCB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wKF9vcHRpb25zOiBXYWxsZXRSZXNvdXJjZU9wdGlvbnMpOiBUYXNrTGlzdCB7XG4gICAgcmV0dXJuIG5ldyBUYXNrTGlzdCh7XG4gICAgICB0YXNrczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGl0bGU6ICdMb2NrIHdhbGxldCcsXG4gICAgICAgICAgdGFzazogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy53YWxsZXRSZXNvdXJjZS5sb2NrKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGVidWcoKTogRGVzY3JpYmVUYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0UmVzb3VyY2UuZ2V0RGVidWcoKTtcbiAgfVxufVxuIl19