mirror of
https://github.com/pezkuwichain/phishing.git
synced 2026-06-21 22:31:02 +00:00
Sort addresses
This commit is contained in:
+28
-12
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
a { color: #ff8c00 !important; text-decoration: none }
|
a { color: #ff8c00 !important; text-decoration: none }
|
||||||
body { color: #4e4e4e; font-family: var(--font-sans); height: 100vh; overflow-x: hidden; padding: 0 }
|
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 }
|
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 }
|
.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 }
|
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 { border-radius: 0.25em; color: white; font-size: 0.75rem; padding: 0.125em 0.375em }
|
||||||
td > span.active { background: darkred }
|
td > span.active { background: darkred }
|
||||||
td > span.inactive { background: darkgrey }
|
td > span.inactive { background: darkgrey; display: none }
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -81,7 +81,6 @@
|
|||||||
let metaJson;
|
let metaJson;
|
||||||
let addrJson;
|
let addrJson;
|
||||||
let urlStatus;
|
let urlStatus;
|
||||||
let addresses;
|
|
||||||
let balances = [];
|
let balances = [];
|
||||||
|
|
||||||
function draw () {
|
function draw () {
|
||||||
@@ -121,11 +120,28 @@
|
|||||||
table.appendChild(row);
|
table.appendChild(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fillAddresses () {
|
function fillAddressList (url, addresses) {
|
||||||
addresses.forEach((address, index) => {
|
if (addresses && addresses.length) {
|
||||||
const balance = balances[index] || '';
|
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 { data } = await response.json();
|
||||||
const [pre, post] = ((data && data.account.balance) || '0').split('.');
|
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) {
|
} catch (error) {
|
||||||
console.error(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`)));
|
const [addrBody, metaBody] = await Promise.all(['address', 'urlmeta'].map((j) => fetchTimeout(`${from}${j}.json`)));
|
||||||
|
|
||||||
[addrJson, metaJson] = await Promise.all([addrBody.json(), metaBody.json()]);
|
[addrJson, metaJson] = await Promise.all([addrBody.json(), metaBody.json()]);
|
||||||
addresses = Object
|
|
||||||
|
const addresses = Object
|
||||||
.values(addrJson)
|
.values(addrJson)
|
||||||
.reduce((all, addrs) => {
|
.reduce((all, addrs) => {
|
||||||
addrs.forEach((a) => !all.includes(a) && all.push(a));
|
addrs.forEach((a) => !all.includes(a) && all.push(a));
|
||||||
|
|
||||||
return all;
|
return all;
|
||||||
}, [])
|
}, []);
|
||||||
.sort((a, b) => a.localeCompare(b));
|
|
||||||
|
|
||||||
[balances, urlStatus] = await Promise.all([
|
[balances, urlStatus] = await Promise.all([
|
||||||
Promise.all(addresses.map(getBalance)),
|
Promise.all(addresses.map(getBalance)),
|
||||||
|
|||||||
Reference in New Issue
Block a user