UNPKG

@trezor/transport

Version:

Low level library facilitating protocol buffers based communication with Trezor devices

87 lines (86 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionsClient = void 0; const utils_1 = require("@trezor/utils"); class SessionsClient extends utils_1.TypedEmitter { caller = (0, utils_1.getWeakRandomId)(3); id; background; constructor(background) { super(); this.id = 0; this.background = background; background.on('descriptors', descriptors => this.emit('descriptors', descriptors)); background.on('releaseRequest', descriptor => this.emit('releaseRequest', descriptor)); } setBackground(background) { this.background.dispose(); this.id = 0; this.background = background; background.on('descriptors', descriptors => this.emit('descriptors', descriptors)); background.on('releaseRequest', descriptor => this.emit('releaseRequest', descriptor)); } request(params) { return this.background.handleMessage({ ...params, caller: this.caller, id: this.id++ }); } handshake() { return this.request({ type: 'handshake' }); } enumerateDone(payload) { return this.request({ type: 'enumerateDone', payload }); } acquireIntent(payload) { return this.request({ type: 'acquireIntent', payload }); } acquireDone(payload) { return this.request({ type: 'acquireDone', payload }); } releaseIntent(payload) { return this.request({ type: 'releaseIntent', payload }); } releaseDone(payload) { return this.request({ type: 'releaseDone', payload }); } getSessions() { return this.request({ type: 'getSessions' }); } getPathBySession(payload) { return this.request({ type: 'getPathBySession', payload }); } dispose() { this.removeAllListeners('descriptors'); return this.request({ type: 'dispose' }); } } exports.SessionsClient = SessionsClient; //# sourceMappingURL=client.js.map