UNPKG

@ledgerhq/hw-transport-mocker

Version:
36 lines 1.38 kB
import Transport from "@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 Transport { 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; }; export default createTransportRecorder; //# sourceMappingURL=createTransportRecorder.js.map