Merge pull request #1487 from mempool/nymkappa/bugfix/invalid-pool-handling

Send 404 when accessing non existing mining pool
This commit is contained in:
softsimon 2022-04-03 17:37:09 +04:00 committed by GitHub
commit ba92284e44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 4 deletions

View File

@ -81,7 +81,7 @@ class PoolsRepository {
/**
* Get mining pool statistics for one pool
*/
public async $getPool(slug: string): Promise<PoolTag> {
public async $getPool(slug: string): Promise<PoolTag | null> {
const query = `
SELECT *
FROM pools
@ -94,6 +94,11 @@ class PoolsRepository {
const [rows] = await connection.query(query, [slug]);
connection.release();
if (rows.length < 1) {
logger.debug(`$getPool(): slug does not match any known pool`);
return null;
}
rows[0].regexes = JSON.parse(rows[0].regexes);
if (['testnet', 'signet'].includes(config.MEMPOOL.NETWORK)) {
rows[0].addresses = []; // pools.json only contains mainnet addresses

View File

@ -545,7 +545,11 @@ class Routes {
res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString());
res.json(stats);
} catch (e) {
res.status(500).send(e instanceof Error ? e.message : e);
if (e instanceof Error && e.message.indexOf('This mining pool does not exist') > -1) {
res.status(404).send(e.message);
} else {
res.status(500).send(e instanceof Error ? e.message : e);
}
}
}
@ -560,7 +564,11 @@ class Routes {
res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString());
res.json(poolBlocks);
} catch (e) {
res.status(500).send(e instanceof Error ? e.message : e);
if (e instanceof Error && e.message.indexOf('This mining pool does not exist') > -1) {
res.status(404).send(e.message);
} else {
res.status(500).send(e instanceof Error ? e.message : e);
}
}
}
@ -604,7 +612,11 @@ class Routes {
hashrates: hashrates,
});
} catch (e) {
res.status(500).send(e instanceof Error ? e.message : e);
if (e instanceof Error && e.message.indexOf('This mining pool does not exist') > -1) {
res.status(404).send(e.message);
} else {
res.status(500).send(e instanceof Error ? e.message : e);
}
}
}