@walletpack/core
Version:
> TODO: description
164 lines (146 loc) • 5.42 kB
JavaScript
"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;