UNPKG

@walletpack/core

Version:

> TODO: description

164 lines (146 loc) 5.42 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.SETTINGS_OPTIONS = exports.BACKUP_STRATEGIES = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _Network = _interopRequireDefault(require("./Network")); var _PluginRepository = _interopRequireDefault(require("../plugins/PluginRepository")); var _Token = _interopRequireDefault(require("./Token")); var _Explorer = _interopRequireDefault(require("./Explorer")); var BACKUP_STRATEGIES = { MANUAL: 'manual', AUTOMATIC: 'auto' }; exports.BACKUP_STRATEGIES = BACKUP_STRATEGIES; var SETTINGS_OPTIONS = { GENERAL: { locked: false, name: 'General' }, TOKENS: { locked: false, name: 'Tokens' }, EXPLORER: { locked: false, name: 'Explorers' }, BACKUP: { locked: false, name: 'Backup' }, FIREWALL: { locked: true, name: 'Firewall' }, PASSWORD: { locked: true, name: 'Password' }, DESTROY: { locked: true, name: 'Destroy' } }; exports.SETTINGS_OPTIONS = SETTINGS_OPTIONS; var Settings = /*#__PURE__*/ function () { function Settings() { (0, _classCallCheck2["default"])(this, Settings); this.networks = []; this.language = 'English'; this.autoBackup = BACKUP_STRATEGIES.AUTOMATIC; this.backupLocation = ''; this.explorers = _PluginRepository["default"].defaultExplorers(); this.showNotifications = true; // Tokens this.showMainnetsOnly = true; this.displayToken = null; this.displayCurrency = 'USD'; this.tokens = []; this.blacklistTokens = []; // {contract:[actions]} this.blacklistActions = { 'eos::eosio': ['updateauth', 'linkauth'], 'eos::eosio.msig': ['approve'] }; this.balanceFilters = {}; this.hideMainBalance = false; this.simpleMode = false; } (0, _createClass2["default"])(Settings, [{ key: "updateOrPushNetwork", value: function updateOrPushNetwork(network) { this.networks.find(function (n) { return n.id === network.id; }) ? this.networks = this.networks.map(function (n) { return n.id === network.id ? network : n; }) : this.networks.unshift(network); } }, { key: "removeNetwork", value: function removeNetwork(network) { this.networks = this.networks.filter(function (n) { return n.id !== network.id; }); } }, { key: "blacklistAction", value: function blacklistAction(blockchain, contract, action) { if (!contract.length || !action.length) return; if (!this.blacklistActions.hasOwnProperty("".concat(blockchain, "::").concat(contract))) { this.blacklistActions["".concat(blockchain, "::").concat(contract)] = []; } this.blacklistActions["".concat(blockchain, "::").concat(contract)].push(action); } }, { key: "removeBlacklistedAction", value: function removeBlacklistedAction(blockchain, contract, action) { if (!this.blacklistActions.hasOwnProperty("".concat(blockchain, "::").concat(contract))) return; if (!this.blacklistActions["".concat(blockchain, "::").concat(contract)].includes(action)) return; if (this.blacklistActions["".concat(blockchain, "::").concat(contract)].length === 1) return delete this.blacklistActions["".concat(blockchain, "::").concat(contract)]; this.blacklistActions["".concat(blockchain, "::").concat(contract)] = this.blacklistActions["".concat(blockchain, "::").concat(contract)].filter(function (x) { return x !== action; }); } }, { key: "isActionBlacklisted", value: function isActionBlacklisted(actionTag) { var _actionTag$split = actionTag.split('::'), _actionTag$split2 = (0, _slicedToArray2["default"])(_actionTag$split, 3), blockchain = _actionTag$split2[0], contract = _actionTag$split2[1], action = _actionTag$split2[2]; return this.blacklistActions.hasOwnProperty("".concat(blockchain, "::").concat(contract)) && this.blacklistActions["".concat(blockchain, "::").concat(contract)].includes(action); } }], [{ key: "placeholder", value: function placeholder() { return new Settings(); } }, { key: "fromJson", value: function fromJson(json) { var p = Object.assign(this.placeholder(), json); if (json.hasOwnProperty('networks')) p.networks = json.networks.map(function (x) { return _Network["default"].fromJson(x); }); if (json.hasOwnProperty('tokens')) p.tokens = json.tokens.map(function (x) { return _Token["default"].fromJson(x); }); if (json.hasOwnProperty('blacklistTokens')) p.blacklistTokens = json.blacklistTokens.map(function (x) { return _Token["default"].fromJson(x); }); if (json.hasOwnProperty('explorers')) p.explorers = Object.keys(json.explorers).reduce(function (acc, blockchain) { acc[blockchain] = _Explorer["default"].fromRaw(json.explorers[blockchain].raw); return acc; }, {}); return p; } }]); return Settings; }(); exports["default"] = Settings;