Remove Div operation on tally() considering sum(Weight)=1
This commit is contained in:
parent
73c757dc4f
commit
5a082584c9
|
@ -60,17 +60,11 @@ func (keeper Keeper) Tally(ctx sdk.Context, proposal types.Proposal) (passes boo
|
||||||
delegatorShare := delegation.GetShares().Quo(val.DelegatorShares)
|
delegatorShare := delegation.GetShares().Quo(val.DelegatorShares)
|
||||||
votingPower := delegatorShare.MulInt(val.BondedTokens)
|
votingPower := delegatorShare.MulInt(val.BondedTokens)
|
||||||
|
|
||||||
totalRates := sdk.NewDec(0)
|
|
||||||
for _, option := range vote.Options {
|
for _, option := range vote.Options {
|
||||||
totalRates = totalRates.Add(option.Weight)
|
subPower := votingPower.Mul(option.Weight)
|
||||||
}
|
|
||||||
for _, option := range vote.Options {
|
|
||||||
subPower := sdk.NewDecFromBigInt(votingPower.BigInt().Div(votingPower.Mul(option.Weight).BigInt(), totalRates.BigInt()))
|
|
||||||
results[option.Option] = results[option.Option].Add(subPower)
|
results[option.Option] = results[option.Option].Add(subPower)
|
||||||
totalVotingPower = totalVotingPower.Add(subPower)
|
|
||||||
}
|
}
|
||||||
// TODO how should handle remainder?
|
totalVotingPower = totalVotingPower.Add(votingPower)
|
||||||
// TODO how should handle when totalRates == 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
@ -90,17 +84,11 @@ func (keeper Keeper) Tally(ctx sdk.Context, proposal types.Proposal) (passes boo
|
||||||
fractionAfterDeductions := sharesAfterDeductions.Quo(val.DelegatorShares)
|
fractionAfterDeductions := sharesAfterDeductions.Quo(val.DelegatorShares)
|
||||||
votingPower := fractionAfterDeductions.MulInt(val.BondedTokens)
|
votingPower := fractionAfterDeductions.MulInt(val.BondedTokens)
|
||||||
|
|
||||||
totalRates := sdk.NewDec(0)
|
|
||||||
for _, option := range val.Vote {
|
for _, option := range val.Vote {
|
||||||
totalRates = totalRates.Add(option.Weight)
|
subPower := votingPower.Mul(option.Weight)
|
||||||
}
|
|
||||||
for _, option := range val.Vote {
|
|
||||||
subPower := sdk.NewDecFromBigInt(votingPower.BigInt().Div(votingPower.Mul(option.Weight).BigInt(), totalRates.BigInt()))
|
|
||||||
results[option.Option] = results[option.Option].Add(subPower)
|
results[option.Option] = results[option.Option].Add(subPower)
|
||||||
totalVotingPower = totalVotingPower.Add(subPower)
|
|
||||||
// TODO how should handle remainder?
|
|
||||||
// TODO how should handle when totalRates == 0
|
|
||||||
}
|
}
|
||||||
|
totalVotingPower = totalVotingPower.Add(votingPower)
|
||||||
}
|
}
|
||||||
|
|
||||||
tallyParams := keeper.GetTallyParams(ctx)
|
tallyParams := keeper.GetTallyParams(ctx)
|
||||||
|
|
Loading…
Reference in New Issue