@walletpack/core
Version:
> TODO: description
167 lines (136 loc) • 5.38 kB
JavaScript
;
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 _StoreService = _interopRequireDefault(require("./StoreService"));
var _Blockchains = require("../../models/Blockchains");
var _PluginRepository = _interopRequireDefault(require("../../plugins/PluginRepository"));
var ContactService =
/*#__PURE__*/
function () {
function ContactService() {
(0, _classCallCheck2["default"])(this, ContactService);
}
(0, _createClass2["default"])(ContactService, null, [{
key: "addOrUpdate",
value: function () {
var _addOrUpdate = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee(contact) {
var scatter, c;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
contact.recipient = contact.recipient.trim();
contact.name = contact.name.trim();
scatter = _StoreService["default"].get().state.scatter.clone();
if (contact.name.length) {
_context.next = 5;
break;
}
return _context.abrupt("return", {
error: 'Invalid contact name'
});
case 5:
if (contact.recipient.length) {
_context.next = 7;
break;
}
return _context.abrupt("return", {
error: 'Invalid contact account / address'
});
case 7:
if (!scatter.contacts.find(function (x) {
return x.id !== contact.id && x.recipient.toLowerCase() === contact.recipient.toLowerCase();
})) {
_context.next = 9;
break;
}
return _context.abrupt("return", {
error: "Contact Exists"
});
case 9:
if (!scatter.contacts.find(function (x) {
return x.id !== contact.id && x.name.toLowerCase() === contact.name.toLowerCase();
})) {
_context.next = 11;
break;
}
return _context.abrupt("return", {
error: "Contact Name Exists"
});
case 11:
c = scatter.contacts.find(function (x) {
return x.id === contact.id;
});
if (c) {
c.recipient = contact.recipient;
c.name = contact.name;
c.blockchain = contact.blockchain;
} else {
scatter.contacts.push(contact);
}
return _context.abrupt("return", _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter));
case 14:
case "end":
return _context.stop();
}
}
}, _callee);
}));
function addOrUpdate(_x) {
return _addOrUpdate.apply(this, arguments);
}
return addOrUpdate;
}()
}, {
key: "remove",
value: function () {
var _remove = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee2(contact) {
var scatter;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
scatter = _StoreService["default"].get().state.scatter.clone();
scatter.contacts = scatter.contacts.filter(function (x) {
return x.id !== contact.id;
});
return _context2.abrupt("return", _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter));
case 3:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
function remove(_x2) {
return _remove.apply(this, arguments);
}
return remove;
}()
}, {
key: "validate",
value: function validate(blockchain, contact) {
// You can add unsupported blockchains which we have no logic for,
// so we will always default to true for those.
if (!_Blockchains.BlockchainsArray.map(function (x) {
return x.value;
}).includes(blockchain)) return true;
return _PluginRepository["default"].plugin(blockchain).isValidRecipient(contact);
}
}]);
return ContactService;
}();
exports["default"] = ContactService;