Skip to content

Commit f08f05e

Browse files
authored
fixing voting power issue (#1285)
1 parent 6158b73 commit f08f05e

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

app/ante/commission.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ import (
1010
bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper"
1111
stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper"
1212
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
13+
commitmenttypes "github.com/elys-network/elys/x/commitment/types"
1314
parameterkeeper "github.com/elys-network/elys/x/parameter/keeper"
15+
ptypes "github.com/elys-network/elys/x/parameter/types"
1416
)
1517

1618
type MinCommissionDecorator struct {
@@ -168,6 +170,20 @@ func (min MinCommissionDecorator) AnteHandle(
168170
sdkerrors.ErrInvalidRequest,
169171
"This validator has a voting power of %s%%. Delegations not allowed to a validator whose post-delegation voting power is more than %s%%. Please redelegate to a validator with less bonded tokens", projectedVotingPower.Mul(sdkmath.LegacyNewDec(100)), maxVotingPower.Mul(sdkmath.LegacyNewDec(100)))
170172
}
173+
case *commitmenttypes.MsgStake:
174+
if msg.Asset == ptypes.Elys {
175+
val, err := min.getValidator(ctx, msg.ValidatorAddress)
176+
if err != nil {
177+
return err
178+
}
179+
180+
projectedVotingPower := min.CalculateDelegateProjectedVotingPower(ctx, val, msg.Amount.ToLegacyDec())
181+
if projectedVotingPower.GT(maxVotingPower) {
182+
return errorsmod.Wrapf(
183+
sdkerrors.ErrInvalidRequest,
184+
"This validator has a voting power of %s%%. Delegations not allowed to a validator whose post-delegation voting power is more than %s%%. Please delegate to a validator with less bonded tokens", projectedVotingPower.Mul(sdkmath.LegacyNewDec(100)), maxVotingPower.Mul(sdkmath.LegacyNewDec(100)))
185+
}
186+
}
171187
}
172188

173189
return nil

0 commit comments

Comments
 (0)