UNPKG

@walletpack/core

Version:

> TODO: description

250 lines (210 loc) 7.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ExternalWalletInterface = exports["default"] = exports.EXT_WALLET_TYPES = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _IdGenerator = _interopRequireDefault(require("../../util/IdGenerator")); var EXT_WALLET_TYPES = {}; // Format [ {type,name,wallet}, {type,name,wallet} ] exports.EXT_WALLET_TYPES = EXT_WALLET_TYPES; var WALLETS = []; var ExternalWallet = /*#__PURE__*/ function () { (0, _createClass2["default"])(ExternalWallet, null, [{ key: "loadWallets", value: function loadWallets(_wallets) { exports.EXT_WALLET_TYPES = EXT_WALLET_TYPES = _wallets.map(function (x) { return (0, _defineProperty2["default"])({}, x.type, x.name); }); WALLETS = _wallets; } }]); function ExternalWallet() { var _type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var _blockchain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; (0, _classCallCheck2["default"])(this, ExternalWallet); this.id = _IdGenerator["default"].text(64); this.type = _type; this.blockchain = _blockchain; this.addressIndex = 0; } (0, _createClass2["default"])(ExternalWallet, [{ key: "setup", value: function setup() { this["interface"] = getInterface(this.type, this.blockchain); } }], [{ key: "placeholder", value: function placeholder() { return new ExternalWallet(); } }, { key: "fromJson", value: function fromJson(json) { return Object.assign(this.placeholder(), json); } }]); return ExternalWallet; }(); exports["default"] = ExternalWallet; var getInterface = function getInterface(type, blockchain) { if (EXT_WALLET_TYPES.hasOwnProperty(type)) return WALLETS[type].wallet.typeToInterface(blockchain); return console.error('Type not defined in hardware wallets'); }; var ExternalWalletInterface = /*#__PURE__*/ function () { function ExternalWalletInterface(handler) { (0, _classCallCheck2["default"])(this, ExternalWalletInterface); this.handler = handler; } (0, _createClass2["default"])(ExternalWalletInterface, [{ key: "open", value: function () { var _open = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.handler.open(); case 2: return _context.abrupt("return", _context.sent); case 3: case "end": return _context.stop(); } } }, _callee, this); })); function open() { return _open.apply(this, arguments); } return open; }() }, { key: "close", value: function () { var _close = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.handler.close(); case 2: return _context2.abrupt("return", _context2.sent); case 3: case "end": return _context2.stop(); } } }, _callee2, this); })); function close() { return _close.apply(this, arguments); } return close; }() }, { key: "canConnect", value: function () { var _canConnect = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee3() { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return this.handler.canConnect(); case 2: return _context3.abrupt("return", _context3.sent); case 3: case "end": return _context3.stop(); } } }, _callee3, this); })); function canConnect() { return _canConnect.apply(this, arguments); } return canConnect; }() }, { key: "sign", value: function () { var _sign = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee4(publicKey, transaction, abi, network) { return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this.handler.sign(publicKey, transaction, abi, network); case 2: return _context4.abrupt("return", _context4.sent); case 3: case "end": return _context4.stop(); } } }, _callee4, this); })); function sign(_x, _x2, _x3, _x4) { return _sign.apply(this, arguments); } return sign; }() }, { key: "getPublicKey", value: function () { var _getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee5() { return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this.handler.getPublicKey(); case 2: return _context5.abrupt("return", _context5.sent); case 3: case "end": return _context5.stop(); } } }, _callee5, this); })); function getPublicKey() { return _getPublicKey.apply(this, arguments); } return getPublicKey; }() }, { key: "setAddressIndex", value: function setAddressIndex(path) { return this.handler.setAddressIndex(path); } }, { key: "availableBlockchains", value: function availableBlockchains() { return this.handler.availableBlockchains(); } }]); return ExternalWalletInterface; }(); exports.ExternalWalletInterface = ExternalWalletInterface;