refactor(x/accounts): reuse calculated sum in func safeAdd (#20458)

This commit is contained in:
Zoro 2024-05-29 17:44:15 +08:00 committed by GitHub
parent 2b34f69e87
commit d8496bc698
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 6 deletions

View File

@ -395,10 +395,11 @@ func (a *Account) RegisterQueryHandlers(builder *accountstd.QueryBuilder) {
func safeAdd(nums ...uint64) (uint64, error) {
var sum uint64
for _, num := range nums {
if sum+num < sum {
if newSum := sum + num; newSum < sum {
return 0, errors.New("overflow")
} else {
sum = newSum
}
sum += num
}
return sum, nil
}

View File

@ -43,11 +43,11 @@ func (a Account) UpdateConfig(ctx context.Context, msg *v1.MsgUpdateConfig) (*v1
// verify that the new set of members and config are valid
// get the weight from the stored members
totalWeight := uint64(0)
var addErr error
err := a.Members.Walk(ctx, nil, func(_ []byte, value uint64) (stop bool, err error) {
var adderr error
totalWeight, adderr = safeAdd(totalWeight, value)
if adderr != nil {
return true, adderr
totalWeight, addErr = safeAdd(totalWeight, value)
if addErr != nil {
return true, addErr
}
return false, nil
})