@funded-labs/plug-controller
Version:
Internet Computer Plug wallet's controller
18 lines (17 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const uuid_1 = require("uuid");
exports.default = (storage) => {
const walletIds = storage.wallets.map(() => (0, uuid_1.v4)());
const networkModule = storage.networkModuleBis || storage.networkModule;
const networks = networkModule && networkModule.networks;
const editedNetworks = ((networks && Object.values(networks)) || []).map((network) => (Object.assign(Object.assign({}, network), { registeredTokens: network.registeredTokens.map((token) => {
const registeredBy = token.registeredBy.map((walletNumber) => walletIds[walletNumber]);
return (Object.assign(Object.assign({}, token), { registeredBy }));
}) })));
const finalNetwork = editedNetworks.reduce((accum, network) => (Object.assign(Object.assign({}, accum), { [network.id]: network })), {});
return Object.assign(Object.assign(Object.assign({}, storage), { wallets: storage.wallets.reduce((walletsAccum, wallet, index) => {
const walletId = walletIds[index];
return (Object.assign(Object.assign({}, walletsAccum), { [walletId]: Object.assign(Object.assign({}, wallet), { walletId, orderNumber: index }) }));
}, {}), walletIds, mnemonicWalletCount: walletIds.length, currentWalletId: walletIds[0] }), (networks && { networkModule: Object.assign(Object.assign({}, storage.networkModule), { networks: finalNetwork }) }));
};