From 5b8a5ea690b6f4158368c2f281dd2e614574d391 Mon Sep 17 00:00:00 2001 From: Chirantan Ekbote Date: Thu, 25 Aug 2022 17:51:17 +0900 Subject: [PATCH] staking: Fix potential division-by-zero `v.DelegatorShares` can be 0 so don't allow division in that case. --- x/staking/types/validator.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x/staking/types/validator.go b/x/staking/types/validator.go index e4dd25dc6..d26c46abf 100644 --- a/x/staking/types/validator.go +++ b/x/staking/types/validator.go @@ -304,6 +304,9 @@ func (v Validator) InvalidExRate() bool { // calculate the token worth of provided shares func (v Validator) TokensFromShares(shares sdk.Dec) sdk.Dec { + if v.DelegatorShares.IsZero() { + return sdk.Dec(sdk.ZeroInt()) + } return (shares.MulInt(v.Tokens)).Quo(v.DelegatorShares) }