From 77a195409f37cb4eec614555370420559ea24083 Mon Sep 17 00:00:00 2001 From: Priojeet Das Priyom Date: Wed, 20 Dec 2023 00:23:24 +0100 Subject: [PATCH 1/3] Fix indexing gets stuck when self stake is set to zero --- .../blockchain-indexer/shared/indexer/utils/validator.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/blockchain-indexer/shared/indexer/utils/validator.js b/services/blockchain-indexer/shared/indexer/utils/validator.js index 6f3d5bd77b..f95c6ea278 100644 --- a/services/blockchain-indexer/shared/indexer/utils/validator.js +++ b/services/blockchain-indexer/shared/indexer/utils/validator.js @@ -75,6 +75,11 @@ const calcSelfStakeReward = async (generatorAddress, blockReward, commissionAmou { amount: BigInt('0') }, ); + // Return commission as 0 if self stake is 0 + if (selfStakes <= 0) { + return BigInt('0'); + } + const selfStakesQ = q96(selfStakes); const totalStakesQ = q96(totalStakes); const blockRewardQ = q96(blockReward); From f8e0fef2439759ac2f611cae84428289c03f161c Mon Sep 17 00:00:00 2001 From: Priojeet Das Priyom Date: Wed, 20 Dec 2023 13:04:02 +0100 Subject: [PATCH 2/3] Update condition to check for denominator --- services/blockchain-indexer/shared/indexer/utils/validator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/blockchain-indexer/shared/indexer/utils/validator.js b/services/blockchain-indexer/shared/indexer/utils/validator.js index f95c6ea278..bc56c79943 100644 --- a/services/blockchain-indexer/shared/indexer/utils/validator.js +++ b/services/blockchain-indexer/shared/indexer/utils/validator.js @@ -76,7 +76,7 @@ const calcSelfStakeReward = async (generatorAddress, blockReward, commissionAmou ); // Return commission as 0 if self stake is 0 - if (selfStakes <= 0) { + if (totalStakes <= BigInt('0')) { return BigInt('0'); } From a5b10f18bacc8ba568fe3d4317d4277eb599f973 Mon Sep 17 00:00:00 2001 From: Priojeet Das Priyom Date: Wed, 20 Dec 2023 13:12:42 +0100 Subject: [PATCH 3/3] :art: Refactor --- services/blockchain-indexer/shared/indexer/utils/validator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/blockchain-indexer/shared/indexer/utils/validator.js b/services/blockchain-indexer/shared/indexer/utils/validator.js index bc56c79943..5962907390 100644 --- a/services/blockchain-indexer/shared/indexer/utils/validator.js +++ b/services/blockchain-indexer/shared/indexer/utils/validator.js @@ -75,7 +75,7 @@ const calcSelfStakeReward = async (generatorAddress, blockReward, commissionAmou { amount: BigInt('0') }, ); - // Return commission as 0 if self stake is 0 + // Return commission as 0 if total stake is 0. Skip further calculations to avoid division by zero if (totalStakes <= BigInt('0')) { return BigInt('0'); }