UNPKG

@walletpack/core

Version:

> TODO: description

261 lines (205 loc) 7.9 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; 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 Actions = _interopRequireWildcard(require("../../store/constants")); var _AccountService = _interopRequireDefault(require("./AccountService")); var _BalanceService = _interopRequireDefault(require("./BalanceService")); var _PluginRepository = _interopRequireDefault(require("../../plugins/PluginRepository")); var _StoreService = _interopRequireDefault(require("../utility/StoreService")); var NetworkService = /*#__PURE__*/ function () { function NetworkService() { (0, _classCallCheck2["default"])(this, NetworkService); } (0, _createClass2["default"])(NetworkService, null, [{ key: "addNetwork", value: function () { var _addNetwork = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee(network) { var scatter, networks, accounts, i; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: // Can't modify existing networks. scatter = _StoreService["default"].get().state.scatter.clone(); networks = scatter.settings.networks; if (!networks.find(function (x) { return x.id === network.id; })) { _context.next = 4; break; } return _context.abrupt("return"); case 4: if (network.name.length) { _context.next = 6; break; } return _context.abrupt("return", { error: "Missing Name" }); case 6: if (network.host.length) { _context.next = 8; break; } return _context.abrupt("return", { error: "Missing Host" }); case 8: if (network.port) { _context.next = 10; break; } return _context.abrupt("return", { error: "Missing Port" }); case 10: if (network.chainId) { _context.next = 12; break; } return _context.abrupt("return", { error: "Missing Chain" }); case 12: network.setPort(); if (!networks.find(function (x) { return x.blockchain === network.blockchain && x.chainId === network.chainId; })) { _context.next = 15; break; } return _context.abrupt("return", { error: "Chain Exists" }); case 15: if (!networks.find(function (x) { return x.name.toLowerCase() === network.name.toLowerCase(); })) { _context.next = 17; break; } return _context.abrupt("return", { error: "Name Exists" }); case 17: scatter.settings.updateOrPushNetwork(network); _context.next = 20; return _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter); case 20: _context.next = 22; return _AccountService["default"].importAllAccountsForNetwork(network); case 22: accounts = _context.sent; if (!accounts.length) { _context.next = 31; break; } i = 0; case 25: if (!(i < accounts.length)) { _context.next = 31; break; } _context.next = 28; return _BalanceService["default"].loadBalancesFor(accounts[i]); case 28: i++; _context.next = 25; break; case 31: _PluginRepository["default"].bustCaches(); return _context.abrupt("return", true); case 33: case "end": return _context.stop(); } } }, _callee); })); function addNetwork(_x) { return _addNetwork.apply(this, arguments); } return addNetwork; }() }, { key: "removeNetwork", value: function () { var _removeNetwork = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee2(network) { var scatter, accounts; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _PluginRepository["default"].bustCaches(); scatter = _StoreService["default"].get().state.scatter.clone(); // Removing accounts and permissions for this network accounts = scatter.keychain.accounts.filter(function (x) { return x.networkUnique === network.unique(); }); accounts.map(function (account) { return scatter.keychain.removeAccount(account); }); scatter.settings.removeNetwork(network); _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter); _BalanceService["default"].removeStaleBalances(); return _context2.abrupt("return", true); case 8: case "end": return _context2.stop(); } } }, _callee2); })); function removeNetwork(_x2) { return _removeNetwork.apply(this, arguments); } return removeNetwork; }() }, { key: "updateNetwork", value: function () { var _updateNetwork = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee3(network) { var scatter; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: scatter = _StoreService["default"].get().state.scatter.clone(); scatter.settings.updateOrPushNetwork(network); _context3.next = 4; return _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter); case 4: _PluginRepository["default"].bustCaches(); return _context3.abrupt("return", true); case 6: case "end": return _context3.stop(); } } }, _callee3); })); function updateNetwork(_x3) { return _updateNetwork.apply(this, arguments); } return updateNetwork; }() }]); return NetworkService; }(); exports["default"] = NetworkService;