UNPKG

@walletpack/core

Version:

> TODO: description

171 lines (142 loc) 5.48 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _qrcode = _interopRequireDefault(require("qrcode")); var _aesOop = _interopRequireDefault(require("aes-oop")); var _Mnemonic = _interopRequireDefault(require("../../util/Mnemonic")); var _Seeder = _interopRequireDefault(require("./Seeder")); var QRService = /*#__PURE__*/ function () { function QRService() { (0, _classCallCheck2["default"])(this, QRService); } (0, _createClass2["default"])(QRService, null, [{ key: "createQR", value: function createQR(data) { var pass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; return new Promise( /*#__PURE__*/ function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee(resolve) { var oldSeed, newSeed, dData; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(!pass || !pass.length)) { _context.next = 4; break; } resolve(_qrcode["default"].toDataURL(JSON.stringify({ data: data, salt: _Seeder["default"].getSalt() }), { errorCorrectionLevel: 'L' })); _context.next = 12; break; case 4: _context.next = 6; return _Seeder["default"].getSeed(); case 6: oldSeed = _context.sent; _context.next = 9; return _Mnemonic["default"].generateMnemonic(pass, _Seeder["default"].getSalt()); case 9: newSeed = _context.sent[1]; dData = _aesOop["default"].encrypt(_aesOop["default"].decrypt(data, oldSeed), newSeed); resolve(_qrcode["default"].toDataURL(JSON.stringify({ data: dData, salt: _Seeder["default"].getSalt() }), { errorCorrectionLevel: 'L' })); case 12: case "end": return _context.stop(); } } }, _callee); })); return function (_x) { return _ref.apply(this, arguments); }; }()); } }, { key: "createUnEncryptedQR", value: function () { var _createUnEncryptedQR = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee2(data) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", _qrcode["default"].toDataURL(JSON.stringify(data), { errorCorrectionLevel: 'L' })); case 1: case "end": return _context2.stop(); } } }, _callee2); })); function createUnEncryptedQR(_x2) { return _createUnEncryptedQR.apply(this, arguments); } return createUnEncryptedQR; }() }, { key: "decryptQR", value: function () { var _decryptQR = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee3(data, salt, password) { var _ref2, _ref3, mnemonic, seed; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return _Mnemonic["default"].generateMnemonic(password, salt); case 2: _ref2 = _context3.sent; _ref3 = (0, _slicedToArray2["default"])(_ref2, 2); mnemonic = _ref3[0]; seed = _ref3[1]; _context3.prev = 6; return _context3.abrupt("return", _aesOop["default"].decrypt(data, seed)); case 10: _context3.prev = 10; _context3.t0 = _context3["catch"](6); console.error('Error decrypting QR: ', _context3.t0); return _context3.abrupt("return", null); case 14: case "end": return _context3.stop(); } } }, _callee3, null, [[6, 10]]); })); function decryptQR(_x3, _x4, _x5) { return _decryptQR.apply(this, arguments); } return decryptQR; }() }]); return QRService; }(); exports["default"] = QRService;