From 9330c2199dd6a878b5a528da88014f9d38348075 Mon Sep 17 00:00:00 2001 From: jejolare Date: Wed, 30 Jul 2025 19:17:28 +0700 Subject: [PATCH 1/2] fix stats api crash --- src/controllers/stats.controller.ts | 34 +++++++++++++++-------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/controllers/stats.controller.ts b/src/controllers/stats.controller.ts index 6f9fad5..d9742e9 100644 --- a/src/controllers/stats.controller.ts +++ b/src/controllers/stats.controller.ts @@ -233,8 +233,8 @@ class StatsController { const entries = Object.entries(pairVolumes); - let maxPairId = Number(entries[0][0]); // берём первый элемент как старт - let maxVolume = entries[0][1]; + let maxPairId = Number(entries[0]?.[0]); + let maxVolume = entries[0]?.[1]; for (const [pairId, volume] of entries) { if (volume > maxVolume) { @@ -243,17 +243,19 @@ class StatsController { } } - const biggestPair = (await Pair.findByPk(maxPairId, { - attributes: [], - include: [ - { - model: Currency, - as: 'first_currency', - attributes: ['asset_id'], - required: true, - }, - ], - })) as PairWithFirstCurrency; + const biggestPair = maxPairId + ? ((await Pair.findByPk(maxPairId, { + attributes: [], + include: [ + { + model: Currency, + as: 'first_currency', + attributes: ['asset_id'], + required: true, + }, + ], + })) as PairWithFirstCurrency) + : null; const totalVolume = Object.values(pairVolumes).reduce( (sum, volume) => sum + volume, @@ -263,10 +265,10 @@ class StatsController { const period_data = { active_tokens: involvedPairs.length.toString(), most_traded: { - asset_id: biggestPair.first_currency.asset_id, - volume: maxVolume.toString(), + asset_id: biggestPair?.first_currency?.asset_id || '', + volume: maxVolume?.toString() || '0', }, - total_volume: totalVolume.toString(), + total_volume: totalVolume?.toString() || '0', }; response.period_data = period_data; From e4016f1f3f4d5e33d1a4c17beff187f1958f0f46 Mon Sep 17 00:00:00 2001 From: jejolare Date: Wed, 30 Jul 2025 19:25:50 +0700 Subject: [PATCH 2/2] add debug log --- src/controllers/stats.controller.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/controllers/stats.controller.ts b/src/controllers/stats.controller.ts index d9742e9..b929e01 100644 --- a/src/controllers/stats.controller.ts +++ b/src/controllers/stats.controller.ts @@ -231,6 +231,8 @@ class StatsController { {} as Record, ); + console.log(pairVolumes); + const entries = Object.entries(pairVolumes); let maxPairId = Number(entries[0]?.[0]);