diff --git a/index.html b/index.html index df2ef2cb4..c3b764b63 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ a { color: #ff8c00 !important; text-decoration: none } body { color: #4e4e4e; font-family: var(--font-sans); height: 100vh; overflow-x: hidden; padding: 0 } - h3 { font-family: var(--font-sans); font-weight: 400; margin: 1rem 0; opacity: 0.95; text-transform: lowercase } + h3 { font-family: var(--font-sans); font-size: 1em; font-weight: 400; margin: 1rem 0; opacity: 0.95; text-transform: lowercase } p { line-height: 1.5rem; margin: 0.75rem 0 } .box { background: rgba(255, 255, 255, 0.85); border-radius: 0.25rem; flex: 1 1; margin: 0.5rem; min-width: 15rem; max-width: 40rem; padding: 0 1.5rem; text-align: center; white-space: nowrap; width: 40rem; z-index: 2 } @@ -35,7 +35,7 @@ tr + tr > td > h3 { margin-top: 0.5rem } td > span { border-radius: 0.25em; color: white; font-size: 0.75rem; padding: 0.125em 0.375em } td > span.active { background: darkred } - td > span.inactive { background: darkgrey } + td > span.inactive { background: darkgrey; display: none }
@@ -81,7 +81,6 @@ let metaJson; let addrJson; let urlStatus; - let addresses; let balances = []; function draw () { @@ -121,11 +120,28 @@ table.appendChild(row); } - function fillAddresses () { - addresses.forEach((address, index) => { - const balance = balances[index] || ''; + function fillAddressList (url, addresses) { + if (addresses && addresses.length) { + const c = document.createElement('h3'); - appendRow(balance === '0' ? '' : balance, address); + c.appendChild(document.createTextNode(url)); + appendRow(c); + + addresses.forEach((address) => { + const balance = balances.find(([a]) => a === address) || ['', ''] + + appendRow(balance[1], address); + }); + } + } + + function fillAddresses () { + metaJson.forEach(({ url }) => fillAddressList(url, addrJson[url])); + + Object.entries(addrJson).forEach(([url, addresses]) => { + if (!metaJson.find((m) => m.url === url)) { + fillAddressList(url, addresses); + } }); } @@ -231,10 +247,10 @@ const { data } = await response.json(); const [pre, post] = ((data && data.account.balance) || '0').split('.'); - return `${pre}.${`${post || ''}0000000000`.substr(0, 10)}`; + return [key, `${pre}.${`${post || ''}0000000000`.substr(0, 10)}`]; } catch (error) { console.error(error); - return ''; + return [key, '']; } } @@ -245,14 +261,14 @@ const [addrBody, metaBody] = await Promise.all(['address', 'urlmeta'].map((j) => fetchTimeout(`${from}${j}.json`))); [addrJson, metaJson] = await Promise.all([addrBody.json(), metaBody.json()]); - addresses = Object + + const addresses = Object .values(addrJson) .reduce((all, addrs) => { addrs.forEach((a) => !all.includes(a) && all.push(a)); return all; - }, []) - .sort((a, b) => a.localeCompare(b)); + }, []); [balances, urlStatus] = await Promise.all([ Promise.all(addresses.map(getBalance)),