import pkg from '@/../package.json'; export function shorten(str = '') { return `${str.slice(0, 6)}...${str.slice(str.length - 4)}`; } export function jsonParse(input, fallback?) { if (typeof input !== 'string') { return fallback || {}; } try { return JSON.parse(input); } catch (err) { return fallback || {}; } } export function clone(item) { return JSON.parse(JSON.stringify(item)); } export function lsSet(key: string, value: any) { return localStorage.setItem(`${pkg.name}.${key}`, JSON.stringify(value)); } export function lsGet(key: string) { const item = localStorage.getItem(`${pkg.name}.${key}`); return jsonParse(item, ''); } export function lsRemove(key: string) { return localStorage.removeItem(`${pkg.name}.${key}`); } export function formatProposal(proposal) { proposal.msg = jsonParse(proposal.msg, proposal.msg); // v0.1.0 if (proposal.msg.version === '0.1.0') { proposal.msg.payload.start = 1595088000; proposal.msg.payload.end = 1595174400; proposal.msg.payload.snapshot = 10484400; proposal.bpt_voting_disabled = '1'; } // v0.1.1 if (proposal.msg.version === '0.1.0' || proposal.msg.version === '0.1.1') { proposal.msg.payload.metadata = {}; } /* if (proposal.msg.payload.snapshot < 10000000) proposal.msg.payload.snapshot = 20000000; */ return proposal; } export function formatProposals(proposals) { return Object.fromEntries( Object.entries(proposals).map(proposal => [ proposal[0], formatProposal(proposal[1]) ]) ); } export function filterNetworks(networks, spaces, q) { return Object.entries(networks) .map((network: any) => { network[1].spaces = Object.entries(spaces) .filter((space: any) => space[1].network === network[0]) .map(space => space[0]); return network[1]; }) .filter(network => JSON.stringify(network) .toLowerCase() .includes(q.toLowerCase()) ) .sort((a, b) => b.spaces.length - a.spaces.length); } export function formatSpace(key, space) { space = { key, ...space, members: space.members || [], filters: space.filters || {} }; if (!space.filters.invalids) space.filters.invalids = []; if (!space.filters.minScore) space.filters.minScore = 0; return space; }