Only include count in federation address and UTXO queries

This commit is contained in:
natsee 2024-01-23 09:46:15 +01:00
parent fa90eb84fc
commit cef060be2d
No known key found for this signature in database
GPG Key ID: 233CF3150A89BED8

View File

@ -356,27 +356,30 @@ class ElementsParser {
// Get all of the federation addresses one month ago, most balances first // Get all of the federation addresses one month ago, most balances first
public async $getFederationAddressesOneMonthAgo(): Promise<any> { public async $getFederationAddressesOneMonthAgo(): Promise<any> {
const query = ` const query = `
SELECT bitcoinaddress, SUM(amount) AS balance FROM federation_txos SELECT COUNT(*) AS addresses_count_one_month FROM (
WHERE SELECT bitcoinaddress, SUM(amount) AS balance
(blocktime < UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP()))) FROM federation_txos
AND WHERE
((unspent = 1) OR (unspent = 0 AND lasttimeupdate > UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP())))) (blocktime < UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP())))
GROUP BY bitcoinaddress ORDER BY balance DESC;`; AND
((unspent = 1) OR (unspent = 0 AND lasttimeupdate > UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP()))))
GROUP BY bitcoinaddress
) AS result;`;
const [rows] = await DB.query(query); const [rows] = await DB.query(query);
return rows; return rows[0];
} }
// Get all of the UTXOs held by the federation one month ago, most recent first // Get all of the UTXOs held by the federation one month ago, most recent first
public async $getFederationUtxosOneMonthAgo(): Promise<any> { public async $getFederationUtxosOneMonthAgo(): Promise<any> {
const query = ` const query = `
SELECT txid, txindex, bitcoinaddress, amount, blocknumber, blocktime, pegtxid, pegindex FROM federation_txos SELECT COUNT(*) AS utxos_count_one_month FROM federation_txos
WHERE WHERE
(blocktime < UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP()))) (blocktime < UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP())))
AND AND
((unspent = 1) OR (unspent = 0 AND lasttimeupdate > UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP())))) ((unspent = 1) OR (unspent = 0 AND lasttimeupdate > UNIX_TIMESTAMP(TIMESTAMPADD(DAY, -30, CURRENT_TIMESTAMP()))))
ORDER BY blocktime DESC;`; ORDER BY blocktime DESC;`;
const [rows] = await DB.query(query); const [rows] = await DB.query(query);
return rows; return rows[0];
} }
} }