UNPKG

@ledgerhq/hw-transport-mocker

Version:
41 lines 1.64 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport")); /** * decorate a real transport and proxy it to record the APDUs. * @param {Transport} DecoratedTransport: an actual transport class. Like @ledgerhq/hw-transport-webusb * @param {RecordStore} recordStore: a record store to record the apdu in. */ const createTransportRecorder = (DecoratedTransport, recordStore) => { class TransportRecorder extends hw_transport_1.default { static recordStore = recordStore; static isSupported = DecoratedTransport.constructor.isSupported; static list = DecoratedTransport.constructor.list; static listen = DecoratedTransport.constructor.listen; static open = (descriptor, ...args) => DecoratedTransport.constructor .open(descriptor, ...args) .then(t => new TransportRecorder(t)); setScrambleKey() { } close() { return this.transport.close(); } transport; constructor(t) { super(); this.transport = t; } exchange(apdu) { const output = this.transport.exchange(apdu); output.then(out => { recordStore.recordExchange(apdu, out); }); return output; } } return TransportRecorder; }; exports.default = createTransportRecorder; //# sourceMappingURL=createTransportRecorder.js.map