UNPKG

@walletpack/core

Version:

> TODO: description

235 lines (193 loc) 8 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 _bignumber = _interopRequireDefault(require("bignumber.js")); var _Token = _interopRequireDefault(require("../../models/Token")); var _StoreService = _interopRequireDefault(require("./StoreService")); var _BalanceService = _interopRequireDefault(require("../blockchain/BalanceService")); var filterOutToken = function filterOutToken(scatter, token) { scatter.settings.tokens = scatter.settings.tokens.filter(function (x) { return x.unique() !== token.unique(); }); scatter.settings.blacklistTokens = scatter.settings.blacklistTokens.filter(function (x) { return x.unique() !== token.unique(); }); if (scatter.settings.displayToken === token.unique()) scatter.settings.displayToken = null; }; var TokenService = /*#__PURE__*/ function () { function TokenService() { (0, _classCallCheck2["default"])(this, TokenService); } (0, _createClass2["default"])(TokenService, null, [{ key: "addToken", value: function () { var _addToken = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee(token) { var blacklist, scatter, _args = arguments; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: blacklist = _args.length > 1 && _args[1] !== undefined ? _args[1] : false; scatter = _StoreService["default"].get().state.scatter.clone(); // Never adding system tokens. if (!_StoreService["default"].get().state.scatter.networkTokens().find(function (x) { return x.unique() === token.unique(); })) { _context.next = 4; break; } return _context.abrupt("return", true); case 4: if (token.symbol.length) { _context.next = 6; break; } return _context.abrupt("return", { error: "Symbol Missing" }); case 6: if (token.contract.length) { _context.next = 8; break; } return _context.abrupt("return", { error: "Contract missing" }); case 8: if (!(!blacklist && scatter.settings.tokens.find(function (x) { return x.unique() === token.unique(); }))) { _context.next = 10; break; } return _context.abrupt("return", { error: "Token exists already (whitelist)" }); case 10: if (!(blacklist && scatter.settings.blacklistTokens.find(function (x) { return x.unique() === token.unique(); }))) { _context.next = 12; break; } return _context.abrupt("return", { error: "Token exists already (blacklist)" }); case 12: if (!token.name.trim().length) token.name = token.symbol; filterOutToken(scatter, token); if (!blacklist) scatter.settings.tokens.unshift(token);else scatter.settings.blacklistTokens.unshift(token); return _context.abrupt("return", _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter)); case 16: case "end": return _context.stop(); } } }, _callee); })); function addToken(_x) { return _addToken.apply(this, arguments); } return addToken; }() }, { key: "removeToken", value: function removeToken(token) { var scatter = _StoreService["default"].get().state.scatter.clone(); // Never removing system tokens. if (_StoreService["default"].get().state.scatter.networkTokens().find(function (x) { return x.unique() === token.unique(); })) return true; filterOutToken(scatter, token); _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter); } }, { key: "hasToken", value: function hasToken(token) { var scatter = _StoreService["default"].get().state.scatter.clone(); return !!_BalanceService["default"].totalBalances().totals[token.unique()] || !!scatter.settings.tokens.find(function (x) { return x.unique() === token.unique(); }) || !!scatter.settings.blacklistTokens.find(function (x) { return x.unique() === token.unique(); }); } }, { key: "setDisplayCurrency", value: function () { var _setDisplayCurrency = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee2(ticker) { 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.settings.displayCurrency = ticker; return _context2.abrupt("return", _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter)); case 3: case "end": return _context2.stop(); } } }, _callee2); })); function setDisplayCurrency(_x2) { return _setDisplayCurrency.apply(this, arguments); } return setDisplayCurrency; }() }, { key: "setDisplayToken", value: function () { var _setDisplayToken = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee3(token) { 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.displayToken = token instanceof _Token["default"] ? token.uniqueWithChain() : token; return _context3.abrupt("return", _StoreService["default"].get().dispatch(Actions.SET_SCATTER, scatter)); case 3: case "end": return _context3.stop(); } } }, _callee3); })); function setDisplayToken(_x3) { return _setDisplayToken.apply(this, arguments); } return setDisplayToken; }() }, { key: "formatAmount", value: function formatAmount(amount, token) { var div = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var operator = div ? 'div' : 'times'; var decimalString = ''; for (var i = 0; i < token.decimals; i++) { decimalString += '0'; } return new _bignumber["default"](amount.toString(10), 10)[operator]("1".concat(decimalString)).toString(10); } }]); return TokenService; }(); exports["default"] = TokenService;