@walletpack/core
Version:
> TODO: description
235 lines (193 loc) • 8 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 _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;