@walletpack/core
Version:
> TODO: description
261 lines (205 loc) • 7.9 kB
JavaScript
"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;