UNPKG

@walletpack/core

Version:

> TODO: description

167 lines (136 loc) 5.38 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 _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;