diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index 274f3c6e0..65f6f4353 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -81,7 +81,7 @@ class PoolsRepository { /** * Get mining pool statistics for one pool */ - public async $getPool(slug: string): Promise { + public async $getPool(slug: string): Promise { 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 diff --git a/backend/src/routes.ts b/backend/src/routes.ts index 14942fd85..d558e3061 100644 --- a/backend/src/routes.ts +++ b/backend/src/routes.ts @@ -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); + } } }