Mining pool detail page draft PoC

This commit is contained in:
nymkappa
2022-02-09 19:41:05 +09:00
parent 52faab53e2
commit e3e3e9f02e
12 changed files with 313 additions and 93 deletions

View File

@@ -1,4 +1,6 @@
import { Common } from '../api/common';
import { DB } from '../database';
import logger from '../logger';
import { PoolInfo, PoolTag } from '../mempool.interfaces';
class PoolsRepository {
@@ -25,16 +27,21 @@ class PoolsRepository {
/**
* Get basic pool info and block count
*/
public async $getPoolsInfo(interval: string | null): Promise<PoolInfo[]> {
const query = `
SELECT COUNT(height) as blockCount, pool_id as poolId, pools.name as name, pools.link as link
FROM blocks
JOIN pools on pools.id = pool_id` +
(interval != null ? ` WHERE blocks.blockTimestamp BETWEEN DATE_SUB(NOW(), INTERVAL ${interval}) AND NOW()` : ``) +
` GROUP BY pool_id
ORDER BY COUNT(height) DESC
`;
public async $getPoolsInfo(interval: string | null = null): Promise<PoolInfo[]> {
interval = Common.getSqlInterval(interval);
let query = `SELECT COUNT(height) as blockCount, pool_id as poolId, pools.name as name, pools.link as link
FROM blocks
JOIN pools on pools.id = pool_id`;
if (interval) {
query += ` WHERE blocks.blockTimestamp BETWEEN DATE_SUB(NOW(), INTERVAL ${interval}) AND NOW()`;
}
query += ` GROUP BY pool_id
ORDER BY COUNT(height) DESC`;
logger.debug(query);
const connection = await DB.pool.getConnection();
const [rows] = await connection.query(query);
connection.release();
@@ -45,15 +52,15 @@ class PoolsRepository {
/**
* Get mining pool statistics for one pool
*/
public async $getPool(poolId: number) : Promise<object> {
public async $getPool(poolId: any): Promise<object> {
const query = `
SELECT *
FROM pools
WHERE pools.id = ${poolId}
`;
WHERE pools.id = ?`;
logger.debug(query);
const connection = await DB.pool.getConnection();
const [rows] = await connection.query(query);
const [rows] = await connection.query(query, [poolId]);
connection.release();
return rows[0];